初步优化代码,非最终
authorp15692025051 <846603105@qq.com>
Tue, 20 Jun 2023 01:23:39 +0000 (09:23 +0800)
committerp15692025051 <846603105@qq.com>
Tue, 20 Jun 2023 01:23:39 +0000 (09:23 +0800)
624 files changed:
1.doc/EC800M-CN Open 文档/Quectel_ALIPAY_API说明_2023_01_31.pdf [new file with mode: 0644]
2.sdk/Helios_SDK/Makefile
2.sdk/Helios_SDK/components/GH301x/gh3011_example_port.c
2.sdk/Helios_SDK/components/audio/audio.mk
2.sdk/Helios_SDK/components/audio/audio_option.in
2.sdk/Helios_SDK/components/audio/helios_audio_amr.c
2.sdk/Helios_SDK/components/audio/helios_audio_montage.c
2.sdk/Helios_SDK/components/audio/helios_audio_mp3.c
2.sdk/Helios_SDK/components/audio/helios_audio_py.c
2.sdk/Helios_SDK/components/audio/helios_audio_py.h
2.sdk/Helios_SDK/components/audio/helios_audio_snd.c [new file with mode: 0644]
2.sdk/Helios_SDK/components/audio/helios_audio_snd.h [new file with mode: 0644]
2.sdk/Helios_SDK/components/poc/poc.c
2.sdk/Helios_SDK/components/poc/poc.h
2.sdk/Helios_SDK/components/poc/poc.mk
2.sdk/Helios_SDK/components/poc/qs/inc/poc_interface.h
2.sdk/Helios_SDK/components/poc/qs/src/poc_qs_adaper.c
2.sdk/Helios_SDK/components/poc/slpoc/lib/broad.lib
2.sdk/Helios_SDK/components/poc/slpoc/src/modpoc_slpoc.c
2.sdk/Helios_SDK/components/poc/ydwl/inc/poc_ydwl_api.h
2.sdk/Helios_SDK/components/poc/ydwl/src/poc_ydwl_api.c
2.sdk/Helios_SDK/config/autoconf.h
2.sdk/Helios_SDK/config/config.mk
2.sdk/Helios_SDK/peripheral/helios_flash.h
2.sdk/Helios_SDK/peripheral/helios_lcd.h
2.sdk/Helios_SDK/peripheral/helios_wlan5803.h
2.sdk/Helios_SDK/services/microPython/extmod/vfs_lfsx.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/.gitignore
2.sdk/Helios_SDK/services/microPython/lib/lvgl/Kconfig
2.sdk/Helios_SDK/services/microPython/lib/lvgl/README.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/README_zh.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/demos/README.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/demos/benchmark/README.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/demos/benchmark/lv_demo_benchmark.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/demos/benchmark/lv_demo_benchmark.h
2.sdk/Helios_SDK/services/microPython/lib/lvgl/demos/keypad_encoder/README.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/demos/keypad_encoder/lv_demo_keypad_encoder.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/demos/lv_demos.h
2.sdk/Helios_SDK/services/microPython/lib/lvgl/demos/lv_demos.mk
2.sdk/Helios_SDK/services/microPython/lib/lvgl/demos/music/README.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/demos/music/assets/spectrum.py
2.sdk/Helios_SDK/services/microPython/lib/lvgl/demos/music/lv_demo_music.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/demos/music/lv_demo_music_list.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/demos/music/lv_demo_music_main.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/demos/stress/README.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/demos/stress/lv_demo_stress.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/demos/widgets/lv_demo_widgets.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/demos/widgets/lv_demo_widgets.py
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/CHANGELOG.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/CODING_STYLE.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/CONTRIBUTING.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/_ext/lv_example.py
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/_static/css/custom.css
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/_templates/page.html
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/build.py
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/conf.py
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/example_list.py
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/get-started/index.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/get-started/quick-overview.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/index.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/intro/index.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/layouts/flex.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/layouts/grid.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/layouts/index.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/libs/bmp.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/libs/ffmpeg.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/libs/freetype.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/libs/fsdrv.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/libs/gif.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/libs/index.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/libs/png.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/libs/qrcode.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/libs/rlottie.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/libs/sjpg.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/others/gridnav.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/others/index.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/others/monkey.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/others/snapshot.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/overview/animation.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/overview/color.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/overview/coords.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/overview/display.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/overview/drawing.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/overview/event.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/overview/file-system.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/overview/font.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/overview/image.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/overview/indev.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/overview/index.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/overview/layer.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/overview/new_widget.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/overview/object.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/overview/scroll.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/overview/style-props.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/overview/style.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/overview/timer.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/porting/display.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/porting/gpu.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/porting/indev.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/porting/index.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/porting/log.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/porting/os.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/porting/project.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/porting/sleep.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/porting/tick.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/requirements.txt
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/widgets/core/arc.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/widgets/core/bar.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/widgets/core/btn.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/widgets/core/btnmatrix.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/widgets/core/canvas.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/widgets/core/checkbox.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/widgets/core/dropdown.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/widgets/core/img.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/widgets/core/index.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/widgets/core/label.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/widgets/core/line.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/widgets/core/roller.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/widgets/core/slider.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/widgets/core/switch.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/widgets/core/table.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/widgets/core/textarea.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/widgets/extra/animimg.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/widgets/extra/calendar.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/widgets/extra/chart.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/widgets/extra/colorwheel.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/widgets/extra/imgbtn.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/widgets/extra/index.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/widgets/extra/keyboard.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/widgets/extra/led.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/widgets/extra/list.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/widgets/extra/menu.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/widgets/extra/meter.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/widgets/extra/msgbox.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/widgets/extra/span.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/widgets/extra/spinbox.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/widgets/extra/spinner.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/widgets/extra/tabview.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/widgets/extra/tileview.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/widgets/extra/win.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/widgets/index.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/docs/widgets/obj.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/env_support/cmake/custom.cmake
2.sdk/Helios_SDK/services/microPython/lib/lvgl/env_support/cmake/esp.cmake
2.sdk/Helios_SDK/services/microPython/lib/lvgl/env_support/cmsis-pack/LVGL.lvgl.pdsc
2.sdk/Helios_SDK/services/microPython/lib/lvgl/env_support/cmsis-pack/README.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/env_support/cmsis-pack/gen_pack.sh
2.sdk/Helios_SDK/services/microPython/lib/lvgl/env_support/cmsis-pack/lv_cmsis_pack.txt
2.sdk/Helios_SDK/services/microPython/lib/lvgl/env_support/cmsis-pack/lv_conf_cmsis.h
2.sdk/Helios_SDK/services/microPython/lib/lvgl/env_support/rt-thread/SConscript
2.sdk/Helios_SDK/services/microPython/lib/lvgl/env_support/rt-thread/lv_rt_thread_conf.h
2.sdk/Helios_SDK/services/microPython/lib/lvgl/env_support/rt-thread/lv_rt_thread_port.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/anim/index.rst
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/anim/lv_example_anim_1.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/anim/lv_example_anim_1.py
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/anim/lv_example_anim_3.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/anim/lv_example_anim_3.py
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/anim/lv_example_anim_timeline_1.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/anim/lv_example_anim_timeline_1.py
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/arduino/LVGL_Arduino/LVGL_Arduino.ino
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/event/index.rst
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/event/lv_example_event_1.py
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/event/lv_example_event_2.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/event/lv_example_event_2.py
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/event/lv_example_event_3.py
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/event/lv_example_event_4.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/get_started/index.rst
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/get_started/lv_example_get_started_3.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/get_started/lv_example_get_started_3.py
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/layouts/flex/index.rst
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/layouts/flex/lv_example_flex_1.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/layouts/flex/lv_example_flex_6.py
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/layouts/grid/index.rst
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/layouts/grid/lv_example_grid_1.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/layouts/grid/lv_example_grid_2.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/layouts/grid/lv_example_grid_3.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/layouts/grid/lv_example_grid_4.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/layouts/grid/lv_example_grid_5.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/layouts/grid/lv_example_grid_6.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/layouts/grid/lv_example_grid_6.py
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/libs/freetype/lv_example_freetype_1.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/libs/freetype/lv_example_freetype_1.py
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/libs/gif/img_bulb_gif.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/libs/png/img_wink_png.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/libs/png/lv_example_png_1.py
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/libs/rlottie/lv_example_rlottie_2.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/libs/rlottie/lv_example_rlottie_approve.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/libs/rlottie/lv_example_rlottie_approve.py
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/libs/sjpg/lv_example_sjpg_1.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/others/gridnav/index.rst
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/others/gridnav/lv_example_gridnav.h
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/others/gridnav/lv_example_gridnav_3.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/others/lv_example_others.h
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/others/monkey/index.rst
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/others/snapshot/index.rst
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/others/snapshot/lv_example_snapshot_1.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/porting/lv_port_disp_template.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/porting/lv_port_disp_template.h
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/porting/lv_port_fs_template.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/porting/lv_port_fs_template.h
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/porting/lv_port_indev_template.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/porting/lv_port_indev_template.h
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/scroll/index.rst
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/scroll/lv_example_scroll_2.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/scroll/lv_example_scroll_2.py
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/scroll/lv_example_scroll_3.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/scroll/lv_example_scroll_3.py
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/scroll/lv_example_scroll_4.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/scroll/lv_example_scroll_5.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/scroll/lv_example_scroll_6.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/scroll/lv_example_scroll_6.py
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/styles/index.rst
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/styles/lv_example_style.h
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/styles/lv_example_style_1.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/styles/lv_example_style_12.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/styles/lv_example_style_14.py
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/styles/lv_example_style_5.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/styles/lv_example_style_6.py
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/styles/lv_example_style_8.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/styles/lv_example_style_9.py
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/animimg/index.rst
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/animimg/lv_example_animimg_1.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/animimg/lv_example_animimg_1.py
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/arc/index.rst
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/arc/lv_example_arc_1.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/arc/lv_example_arc_2.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/arc/lv_example_arc_2.py
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/bar/index.rst
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/bar/lv_example_bar_4.py
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/bar/lv_example_bar_6.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/btn/index.rst
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/btn/lv_example_btn_1.py
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/btn/lv_example_btn_3.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/btnmatrix/index.rst
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/btnmatrix/lv_example_btnmatrix_1.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/btnmatrix/lv_example_btnmatrix_2.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/btnmatrix/lv_example_btnmatrix_2.py
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/calendar/index.rst
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/calendar/lv_example_calendar_1.py
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/canvas/index.rst
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/canvas/lv_example_canvas_2.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/canvas/lv_example_canvas_2.py
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/chart/index.rst
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/chart/lv_example_chart_2.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/chart/lv_example_chart_3.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/chart/lv_example_chart_3.py
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/chart/lv_example_chart_4.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/chart/lv_example_chart_4.py
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/chart/lv_example_chart_5.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/chart/lv_example_chart_5.py
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/chart/lv_example_chart_6.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/chart/lv_example_chart_6.py
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/chart/lv_example_chart_7.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/chart/lv_example_chart_7.py
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/chart/lv_example_chart_8.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/chart/lv_example_chart_8.py
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/checkbox/lv_example_checkbox_2.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/dropdown/lv_example_dropdown_1.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/dropdown/lv_example_dropdown_1.py
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/dropdown/lv_example_dropdown_3.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/dropdown/lv_example_dropdown_3.py
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/img/index.rst
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/img/lv_example_img_1.py
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/img/lv_example_img_2.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/img/lv_example_img_2.py
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/img/lv_example_img_3.py
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/img/lv_example_img_4.py
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/imgbtn/index.rst
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/imgbtn/lv_example_imgbtn_1.py
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/keyboard/index.rst
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/keyboard/lv_example_keyboard_1.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/keyboard/lv_example_keyboard_1.py
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/label/index.rst
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/label/lv_example_label_1.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/label/lv_example_label_2.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/label/lv_example_label_3.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/label/lv_example_label_3.py
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/line/index.rst
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/line/lv_example_line_1.py
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/list/index.rst
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/list/lv_example_list_2.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/list/lv_example_list_2.py
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/lv_example_widgets.h
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/menu/index.rst
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/menu/lv_example_menu_2.py
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/menu/lv_example_menu_4.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/menu/lv_example_menu_5.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/meter/lv_example_meter_1.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/meter/lv_example_meter_3.py
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/meter/lv_example_meter_4.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/msgbox/index.rst
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/msgbox/lv_example_msgbox_1.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/obj/index.rst
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/roller/index.rst
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/roller/lv_example_roller_1.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/roller/lv_example_roller_2.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/roller/lv_example_roller_2.py
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/roller/lv_example_roller_3.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/roller/lv_example_roller_3.py
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/slider/index.rst
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/slider/lv_example_slider_1.py
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/slider/lv_example_slider_3.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/slider/lv_example_slider_3.py
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/span/lv_example_span_1.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/spinbox/index.rst
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/spinner/index.rst
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/switch/index.rst
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/table/index.rst
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/table/lv_example_table_1.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/table/lv_example_table_2.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/table/lv_example_table_2.py
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/tabview/index.rst
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/tabview/lv_example_tabview_1.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/tabview/lv_example_tabview_2.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/textarea/index.rst
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/textarea/lv_example_textarea_1.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/textarea/lv_example_textarea_1.py
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/textarea/lv_example_textarea_3.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/textarea/lv_example_textarea_3.py
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/tileview/index.rst
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/tileview/lv_example_tileview_1.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/win/index.rst
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/win/lv_example_win_1.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/examples/widgets/win/lv_example_win_1.py
2.sdk/Helios_SDK/services/microPython/lib/lvgl/idf_component.yml
2.sdk/Helios_SDK/services/microPython/lib/lvgl/library.json
2.sdk/Helios_SDK/services/microPython/lib/lvgl/library.properties
2.sdk/Helios_SDK/services/microPython/lib/lvgl/lv_conf.h
2.sdk/Helios_SDK/services/microPython/lib/lvgl/lvgl.h
2.sdk/Helios_SDK/services/microPython/lib/lvgl/scripts/build_html_examples.sh
2.sdk/Helios_SDK/services/microPython/lib/lvgl/scripts/changelog-template.hbs
2.sdk/Helios_SDK/services/microPython/lib/lvgl/scripts/changelog_gen.sh
2.sdk/Helios_SDK/services/microPython/lib/lvgl/scripts/code-format.cfg
2.sdk/Helios_SDK/services/microPython/lib/lvgl/scripts/code-format.py
2.sdk/Helios_SDK/services/microPython/lib/lvgl/scripts/jpg_to_sjpg.py
2.sdk/Helios_SDK/services/microPython/lib/lvgl/scripts/lv_conf_internal_gen.py
2.sdk/Helios_SDK/services/microPython/lib/lvgl/scripts/release/com.py
2.sdk/Helios_SDK/services/microPython/lib/lvgl/scripts/release/patch.py
2.sdk/Helios_SDK/services/microPython/lib/lvgl/scripts/release/release.py
2.sdk/Helios_SDK/services/microPython/lib/lvgl/scripts/style_api_gen.py
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/core/lv_core.mk
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/core/lv_disp.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/core/lv_disp.h
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/core/lv_event.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/core/lv_event.h
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/core/lv_group.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/core/lv_group.h
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/core/lv_indev.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/core/lv_indev.h
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/core/lv_indev_scroll.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/core/lv_obj.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/core/lv_obj.h
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/core/lv_obj_class.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/core/lv_obj_draw.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/core/lv_obj_draw.h
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/core/lv_obj_pos.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/core/lv_obj_pos.h
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/core/lv_obj_scroll.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/core/lv_obj_scroll.h
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/core/lv_obj_style.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/core/lv_obj_style.h
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/core/lv_obj_style_gen.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/core/lv_obj_style_gen.h
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/core/lv_obj_tree.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/core/lv_refr.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/core/lv_refr.h
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/draw/lv_draw.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/draw/lv_draw.h
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/draw/lv_draw.mk
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/draw/lv_draw_img.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/draw/lv_draw_img.h
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/draw/lv_draw_label.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/draw/lv_draw_mask.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/draw/lv_draw_mask.h
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/draw/lv_draw_rect.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/draw/lv_draw_rect.h
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/draw/lv_img_buf.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/draw/lv_img_buf.h
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/draw/lv_img_decoder.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/draw/lv_img_decoder.h
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/draw/sdl/lv_draw_sdl.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/draw/sdl/lv_draw_sdl.mk
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/draw/sdl/lv_draw_sdl_arc.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/draw/sdl/lv_draw_sdl_composite.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/draw/sdl/lv_draw_sdl_composite.h
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/draw/sdl/lv_draw_sdl_img.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/draw/sdl/lv_draw_sdl_img.h
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/draw/sdl/lv_draw_sdl_label.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/draw/sdl/lv_draw_sdl_line.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/draw/sdl/lv_draw_sdl_polygon.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/draw/sdl/lv_draw_sdl_priv.h
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/draw/sdl/lv_draw_sdl_rect.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/draw/sdl/lv_draw_sdl_rect.h
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/draw/sdl/lv_draw_sdl_texture_cache.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/draw/sdl/lv_draw_sdl_texture_cache.h
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/draw/stm32_dma2d/lv_gpu_stm32_dma2d.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/draw/stm32_dma2d/lv_gpu_stm32_dma2d.h
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/draw/sw/lv_draw_sw.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/draw/sw/lv_draw_sw.h
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/draw/sw/lv_draw_sw.mk
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/draw/sw/lv_draw_sw_arc.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/draw/sw/lv_draw_sw_blend.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/draw/sw/lv_draw_sw_gradient.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/draw/sw/lv_draw_sw_img.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/draw/sw/lv_draw_sw_letter.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/draw/sw/lv_draw_sw_rect.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/extra/README.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/extra/layouts/flex/lv_flex.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/extra/layouts/flex/lv_flex.h
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/extra/layouts/grid/lv_grid.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/extra/layouts/grid/lv_grid.h
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/extra/libs/bmp/lv_bmp.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/extra/libs/fsdrv/lv_fs_fatfs.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/extra/libs/fsdrv/lv_fs_posix.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/extra/libs/fsdrv/lv_fs_stdio.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/extra/libs/fsdrv/lv_fs_win32.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/extra/libs/gif/gifdec.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/extra/libs/gif/gifdec.h
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/extra/libs/gif/lv_gif.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/extra/libs/png/lodepng.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/extra/libs/png/lv_png.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/extra/libs/qrcode/lv_qrcode.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/extra/libs/qrcode/qrcodegen.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/extra/libs/qrcode/qrcodegen.h
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/extra/libs/sjpg/lv_sjpg.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/extra/libs/sjpg/tjpgd.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/extra/lv_extra.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/extra/lv_extra.h
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/extra/others/gridnav/lv_gridnav.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/extra/others/gridnav/lv_gridnav.h
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/extra/others/lv_others.h
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/extra/others/snapshot/lv_snapshot.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/extra/themes/basic/lv_theme_basic.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/extra/themes/default/lv_theme_default.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/extra/themes/mono/lv_theme_mono.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/extra/widgets/animimg/lv_animimg.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/extra/widgets/animimg/lv_animimg.h
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/extra/widgets/calendar/lv_calendar.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/extra/widgets/chart/lv_chart.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/extra/widgets/chart/lv_chart.h
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/extra/widgets/colorwheel/lv_colorwheel.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/extra/widgets/keyboard/lv_keyboard.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/extra/widgets/led/lv_led.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/extra/widgets/list/lv_list.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/extra/widgets/list/lv_list.h
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/extra/widgets/menu/lv_menu.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/extra/widgets/meter/lv_meter.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/extra/widgets/msgbox/lv_msgbox.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/extra/widgets/span/lv_span.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/extra/widgets/span/lv_span.h
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/extra/widgets/spinbox/lv_spinbox.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/extra/widgets/spinbox/lv_spinbox.h
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/extra/widgets/spinner/lv_spinner.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/extra/widgets/tabview/lv_tabview.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/extra/widgets/tabview/lv_tabview.h
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/extra/widgets/tileview/lv_tileview.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/font/lv_font.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/font/lv_font.h
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/font/lv_font_14_simsum.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/font/lv_font_16_simsum.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/font/lv_font_18_simsum.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/font/lv_font_21_light.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/font/lv_font_fmt_txt.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/font/lv_font_fmt_txt.h
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/font/lv_font_montserrat_14.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/hal/lv_hal.mk
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/hal/lv_hal_disp.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/hal/lv_hal_disp.h
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/hal/lv_hal_indev.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/hal/lv_hal_indev.h
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/lv_conf_internal.h
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/lv_conf_kconfig.h
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/misc/lv_anim.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/misc/lv_anim.h
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/misc/lv_area.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/misc/lv_area.h
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/misc/lv_async.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/misc/lv_async.h
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/misc/lv_bidi.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/misc/lv_color.h
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/misc/lv_fs.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/misc/lv_fs.h
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/misc/lv_gc.h
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/misc/lv_ll.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/misc/lv_log.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/misc/lv_log.h
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/misc/lv_lru.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/misc/lv_lru.h
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/misc/lv_math.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/misc/lv_mem.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/misc/lv_misc.mk
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/misc/lv_style.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/misc/lv_style.h
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/misc/lv_style_gen.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/misc/lv_style_gen.h
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/misc/lv_timer.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/misc/lv_timer.h
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/misc/lv_tlsf.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/misc/lv_tlsf.h
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/misc/lv_txt.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/misc/lv_txt.h
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/misc/lv_types.h
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/widgets/lv_arc.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/widgets/lv_arc.h
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/widgets/lv_bar.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/widgets/lv_btnmatrix.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/widgets/lv_btnmatrix.h
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/widgets/lv_canvas.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/widgets/lv_dropdown.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/widgets/lv_dropdown.h
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/widgets/lv_img.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/widgets/lv_img.h
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/widgets/lv_label.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/widgets/lv_label.h
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/widgets/lv_line.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/widgets/lv_line.h
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/widgets/lv_roller.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/widgets/lv_roller.h
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/widgets/lv_slider.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/widgets/lv_table.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/widgets/lv_textarea.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/widgets/lv_textarea.h
2.sdk/Helios_SDK/services/microPython/lib/lvgl/src/widgets/lv_widgets.mk
2.sdk/Helios_SDK/services/microPython/lib/lvgl/tests/CMakeLists.txt
2.sdk/Helios_SDK/services/microPython/lib/lvgl/tests/README.md
2.sdk/Helios_SDK/services/microPython/lib/lvgl/tests/main.py
2.sdk/Helios_SDK/services/microPython/lib/lvgl/tests/src/lv_test_conf.h
2.sdk/Helios_SDK/services/microPython/lib/lvgl/tests/src/lv_test_indev.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/tests/src/lv_test_indev.h
2.sdk/Helios_SDK/services/microPython/lib/lvgl/tests/src/lv_test_init.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/tests/src/test_cases/test_arc.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/tests/src/test_cases/test_bar.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/tests/src/test_cases/test_checkbox.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/tests/src/test_cases/test_config.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/tests/src/test_cases/test_demo_stress.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/tests/src/test_cases/test_dropdown.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/tests/src/test_cases/test_event.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/tests/src/test_cases/test_font_loader.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/tests/src/test_cases/test_obj_tree.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/tests/src/test_cases/test_snapshot.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/tests/src/test_cases/test_style.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/tests/src/test_cases/test_switch.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/tests/src/test_cases/test_txt.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/tests/unity/unity_support.c
2.sdk/Helios_SDK/services/microPython/lib/lvgl/tests/unity/unity_support.h
2.sdk/Helios_SDK/services/microPython/microPython.mk
2.sdk/Helios_SDK/services/microPython/ports/quectel/core/dataCall.py
2.sdk/Helios_SDK/services/microPython/ports/quectel/core/source/SL_Watch_Pedo_Kcal_Wrist_Sleep_Sway_L_Algorithm.h [deleted file]
2.sdk/Helios_SDK/services/microPython/ports/quectel/core/source/SL_Watch_Pedo_Kcal_Wrist_Sleep_Sway_L_Application.h [deleted file]
2.sdk/Helios_SDK/services/microPython/ports/quectel/core/source/audio_audio.c
2.sdk/Helios_SDK/services/microPython/ports/quectel/core/source/callbackdeal.c
2.sdk/Helios_SDK/services/microPython/ports/quectel/core/source/callbackdeal.h
2.sdk/Helios_SDK/services/microPython/ports/quectel/core/source/machine_hw_spi.c
2.sdk/Helios_SDK/services/microPython/ports/quectel/core/source/machine_iic.c
2.sdk/Helios_SDK/services/microPython/ports/quectel/core/source/machine_iic_simulation.c
2.sdk/Helios_SDK/services/microPython/ports/quectel/core/source/machine_key.c
2.sdk/Helios_SDK/services/microPython/ports/quectel/core/source/machine_lcd.c
2.sdk/Helios_SDK/services/microPython/ports/quectel/core/source/machine_one_wire.c [new file with mode: 0644]
2.sdk/Helios_SDK/services/microPython/ports/quectel/core/source/machine_uart.c
2.sdk/Helios_SDK/services/microPython/ports/quectel/core/source/misc_usbnet.c
2.sdk/Helios_SDK/services/microPython/ports/quectel/core/source/modGsensor_SC7A20.c
2.sdk/Helios_SDK/services/microPython/ports/quectel/core/source/modHsensor_GH3018.c
2.sdk/Helios_SDK/services/microPython/ports/quectel/core/source/modalipay.c
2.sdk/Helios_SDK/services/microPython/ports/quectel/core/source/modaudio.c
2.sdk/Helios_SDK/services/microPython/ports/quectel/core/source/modethernet_dm9051.c
2.sdk/Helios_SDK/services/microPython/ports/quectel/core/source/modextgpio_aw9523.c [new file with mode: 0644]
2.sdk/Helios_SDK/services/microPython/ports/quectel/core/source/modextgpio_aw9523.h [new file with mode: 0644]
2.sdk/Helios_SDK/services/microPython/ports/quectel/core/source/modextuart_wk2114.c [new file with mode: 0644]
2.sdk/Helios_SDK/services/microPython/ports/quectel/core/source/modextuart_wk2114.h [new file with mode: 0644]
2.sdk/Helios_SDK/services/microPython/ports/quectel/core/source/modgnss.c
2.sdk/Helios_SDK/services/microPython/ports/quectel/core/source/modlvgl.c
2.sdk/Helios_SDK/services/microPython/ports/quectel/core/source/modlwm2m_parase.c
2.sdk/Helios_SDK/services/microPython/ports/quectel/core/source/modmachine.c
2.sdk/Helios_SDK/services/microPython/ports/quectel/core/source/modmachine.h
2.sdk/Helios_SDK/services/microPython/ports/quectel/core/source/modnet.c
2.sdk/Helios_SDK/services/microPython/ports/quectel/core/source/modpoc.c
2.sdk/Helios_SDK/services/microPython/ports/quectel/core/source/modsim.c
2.sdk/Helios_SDK/services/microPython/ports/quectel/core/source/modsocket.c
2.sdk/Helios_SDK/services/microPython/ports/quectel/core/source/modwlan_ASR5803.c
2.sdk/Helios_SDK/services/microPython/ports/quectel/core/source/mpconfigport.h
2.sdk/Helios_SDK/services/microPython/ports/quectel/core/source/mpthreadport.c
2.sdk/Helios_SDK/services/microPython/ports/quectel/core/source/sensor_handmic_key.c
2.sdk/Helios_SDK/services/microPython/ports/quectel/core/source/tp_cst816.c
2.sdk/Helios_SDK/services/microPython/ports/quectel/core/umqtt.py
2.sdk/Helios_SDK/services/microPython/py/gc.c
2.sdk/Helios_SDK/services/microPython/py/modthread.c
2.sdk/Helios_SDK/services/microPython/py/objfun.c
2.sdk/Helios_SDK/services/microPython/py/scheduler.c
2.sdk/Helios_SDK/system/aliiot/helios_aliiot.h
2.sdk/Helios_SDK/system/debug/helios_debug.h
2.sdk/Helios_SDK/system/hal/helios_audio.h
2.sdk/Helios_SDK/system/hal/helios_one_wire.h [new file with mode: 0644]
2.sdk/Helios_SDK/system/hal/helios_pin.h
2.sdk/Helios_SDK/system/hal/helios_pwm.h
2.sdk/Helios_SDK/system/hal/helios_usbnet.h
2.sdk/Helios_SDK/system/lwip/EIGEN/include/lwip/sockets.h
2.sdk/Helios_SDK/system/network/helios_ftm.h [new file with mode: 0644]
2.sdk/Helios_SDK/system/platform/platform.json
2.sdk/Helios_SDK/utilities/helios_ringbuf.c
2.sdk/Helios_SDK/utilities/helios_ringbuf.h
2.sdk/project/K5/font/ext_font.bin
2.sdk/project/K5/new.bat
2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/EventMesh.py [moved from 2.sdk/Helios_SDK/services/microPython/ports/quectel/core/EventMesh.py with 100% similarity]
2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/Makefile
2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/alarm.py
2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/appAlipay.py
2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/appFactoryMode.py
2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/appWechat.py
2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/main.py
2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/main_1.py
2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/mgr.py
2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/protocol.py
2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/sleep_test.py
2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/ui.py
2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/ui_WatchFaceScreen.py
2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/ui_main_menu.py
2.sdk/project/K5/sdk/system/platform/ASR_1606/boards/EG810MCN_GA_ALIPAY/config/autoconf.h
2.sdk/project/K5/sdk/system/platform/ASR_1606/boards/EG810MCN_GA_ALIPAY/config/config.mk
2.sdk/project/K5/sdk/system/platform/ASR_1606/boards/EG810MCN_GA_ALIPAY/images/DBG.7z
2.sdk/project/K5/sdk/system/platform/ASR_1606/boards/EG810MCN_GA_ALIPAY/images/firmware_base_release_pack.zip
2.sdk/project/K5/sdk/system/platform/ASR_1606/boards/EG810MCN_GA_ALIPAY/include/app_link_start_addr.h
2.sdk/project/K5/sdk/system/platform/ASR_1606/boards/EG810MCN_GA_ALIPAY/libraries/libHeliosAPI.lib
2.sdk/project/K5/sdk/system/platform/ASR_1606/boards/EG810MCN_GA_ALIPAY/libraries/ql_common_api.lib
2.sdk/project/K5/usr/main.py

diff --git a/1.doc/EC800M-CN Open 文档/Quectel_ALIPAY_API说明_2023_01_31.pdf b/1.doc/EC800M-CN Open 文档/Quectel_ALIPAY_API说明_2023_01_31.pdf
new file mode 100644 (file)
index 0000000..ce2bd79
Binary files /dev/null and "b/1.doc/EC800M-CN Open \346\226\207\346\241\243/Quectel_ALIPAY_API\350\257\264\346\230\216_2023_01_31.pdf" differ
index 92a55a4..6449b46 100644 (file)
@@ -194,7 +194,7 @@ export APP_ENTRY :=
 
 export ROOT_PATH := ../
 
-export OUTPUT_DIR := output
+export OUTPUT_DIR := opt
 export OUTPUT_TMP_DIR := tmp
 export OUTPUT_OBJ_DIR := obj
 export OUTPUT_BIN_DIR := bin
index b37db66..2432105 100644 (file)
@@ -65,7 +65,11 @@ uint8_t hal_gh30x_i2c_write(uint8_t device_id, const uint8_t write_buffer[], uin
  *      \datalen  [in]       - the length of the data write
  * int HELIOS_I2C_Write(Helios_I2CEnum i2c_no, uint8_t slaveaddress, uint8_t *regaddr,size_t addrlen,void *data, size_t datalen);
  * */
-       HELIOS_I2C_Write(0, GH3018_ADDR, reg_addr, 2, reg_data, length-2);
+       if(HELIOS_I2C_Write(0, GH3018_ADDR, reg_addr, 2, reg_data, length-2) != 0)
+       {
+               ret = GH30X_EXAMPLE_ERR_VAL;
+               GH301x_LOG("hal_gh30x_i2c_write:error\r\n");
+       }
        // code implement by user
        return ret;
 }
@@ -90,7 +94,11 @@ uint8_t hal_gh30x_i2c_read(uint8_t device_id, const uint8_t write_buffer[], uint
        * return:
        *      read i2c data result, 0 for success,-1 for failure
        */
-       HELIOS_I2C_Read(0, GH3018_ADDR, write_buffer, write_length, (void*)read_buffer, read_length, 0);
+       if(HELIOS_I2C_Read(0, GH3018_ADDR, write_buffer, write_length, (void*)read_buffer, read_length, 0) != 0)
+       {
+               GH301x_LOG("hal_gh30x_i2c_read:error\r\n");
+               ret = GH30X_EXAMPLE_ERR_VAL;
+       }
        //read_buffer[read_length] = 0;
        //int32_t addr = 0;
        //memcpy(&addr,write_buffer,2);
index a5ad0e8..90be90f 100644 (file)
@@ -10,6 +10,8 @@ $(NAME)_SRCS += \
        helios_audio_montage.c \
        helios_audio_fs.c
        
+GLOBAL_INCS += \
+       ./      
        
 endif
 
@@ -154,6 +156,18 @@ $(NAME)_SRCS += \
        amr/amrnb/dec/src/sp_dec.cpp            \
        amr/amrnb/dec/src/wmf_to_ets.cpp
 
+GLOBAL_INCS += \
+       amr/include             \
+       amr/amrnb/common/include        \
+       amr/amrnb/dec/api       \
+       amr/amrnb/dec/src       \
+       amr/amrnb/enc/api       \
+       amr/amrnb/enc/src       \
+       amr/amrwb/include       \
+       amr/amrwb/api           \
+       amr/amrwb/src           \
+       amr/amrwbenc/api
+
 endif
 
 
@@ -198,27 +212,25 @@ $(NAME)_SRCS +=    \
                   mp3/mp3_dec/src/api/mp3dec_api.cpp \
                   mp3/mp3_dec/src/api/mp3reader.cpp    
 
-endif
-
-GLOBAL_INCS += \
-       ./      \
-       amr/include             \
-       amr/amrnb/common/include        \
-       amr/amrnb/dec/api       \
-       amr/amrnb/dec/src       \
-       amr/amrnb/enc/api       \
-       amr/amrnb/enc/src       \
-       amr/amrwb/include       \
-       amr/amrwb/api           \
-       amr/amrwb/src           \
-       amr/amrwbenc/api                \
-
 
 GLOBAL_INCS += \
        mp3/mp3_dec/include             \
        mp3/mp3_dec/api \
        mp3/mp3_dec
 
+endif
+
+ifeq ($(CONFIG_AUDIO_WAV), y)
+$(NAME)_SRCS +=    \
+                       helios_audio_snd.c
+endif
+
+
+
+
+
+
+
 
 ifeq ($(CONFIG_AUDIO_G711_COMPRESS), y)
 GLOBAL_INCS += \
index f1540dc..a9ae528 100644 (file)
@@ -31,6 +31,13 @@ config AUDIO_WAV
 help 
     Enable wav format, which is pcm data.
 
+config AUDIO_SND
+    bool "Enable SND format"
+    depends on AUDIO
+    default n
+help 
+    Enable snd format, which is pcm data.
+
 config AUDIO_MP3
     bool "Enable mp3 format"
     depends on AUDIO
index 7dc0d0f..19b6d9e 100644 (file)
@@ -98,6 +98,26 @@ static int amr_vm_deinit(void)
        return 0;
 }
 
+
+#if defined(PLAT_ASR_1803s)    || defined(BOARD_EC600MCN_CC_EXT) || defined(BOARD_EC600MCN_LF_SLPOC)
+static void __pcm_play_cb(void *handle, int event){
+       AUDLOGE("__pcm_play_cb event[%d]\n",event);
+
+       
+       if(event == HELIOS_AUD_PLAYER_NODATA_STRAT || event == HELIOS_AUD_PLAYER_FINISHED || event == HELIOS_AUD_PLAYER_CLOSE || event == HELIOS_AUD_PLAYER_REQURST_CLOSE) {
+               if(g_arm_stream_cxt.pcm_whdl){
+                       Helios_PCM_Close(g_arm_stream_cxt.pcm_whdl);
+                       g_arm_stream_cxt.pcm_whdl = NULL;
+               }
+       }
+       
+       if(aud_play_cb != NULL) {
+               aud_play_cb("stream", 0, event);
+       }
+}
+#endif
+
+
 static void amr_dec_task(void *arg)
 {
        int ret = 0;
@@ -131,6 +151,10 @@ static void amr_dec_task(void *arg)
                g_arm_stream_cxt.pcm_whdl = Helios_Aud_PWM_Open(CONFIG_AUDIO_PWM_PIN, 1, 8000, QL_PCM_WRITE_FLAG | QL_PCM_BLOCK_FLAG);
 #else
                g_arm_stream_cxt.pcm_whdl = Helios_PCM_Open(1, 8000, QL_PCM_WRITE_FLAG | QL_PCM_BLOCK_FLAG);
+#if defined(PLAT_ASR_1803s) || defined(PLAT_ASR_1606) || defined(BOARD_EC600MCN_LF_SLPOC)
+               Helios_PCM_Play_Cb(g_arm_stream_cxt.pcm_whdl, __pcm_play_cb);
+#endif
+
 #endif
 
                AUDLOGD("pcm_whdl[%x]\n", g_arm_stream_cxt.pcm_whdl);
@@ -147,7 +171,9 @@ static void amr_dec_task(void *arg)
                {
                        if (aud_play_cb)
                        {
+#if !defined(PLAT_ASR_1803s) && !defined(PLAT_ASR_1606) || defined(BOARD_EC600MCN_LF_SLPOC)
                                aud_play_cb(NULL, 0, HELIOS_AUD_PLAYER_START);
+#endif
                        }
                }
                while (g_arm_stream_cxt.is_playing)
@@ -255,7 +281,9 @@ static void amr_dec_task(void *arg)
                {
                        if (aud_play_cb)
                        {
+#if !defined(PLAT_ASR_1803s) && !defined(BOARD_EC600MCN_CC_EXT) && !defined(BOARD_EC600MCN_LF_SLPOC)
                                aud_play_cb(NULL, 0, HELIOS_AUD_PLAYER_FINISHED);
+#endif
                        }
                }
                else
@@ -306,7 +334,7 @@ static int arm_dec_task_init()
        Helios_ThreadAttr attr = {0};
        attr.name = "amr_dec_task";
        attr.stack_size = 1024 * 6;
-       attr.priority = 90;
+       attr.priority = 75;
        attr.entry = amr_dec_task;
 
        g_arm_stream_cxt.task_ref = Helios_Thread_Create(&attr);
index 1ec1066..cfe2fb2 100644 (file)
@@ -525,7 +525,7 @@ static int helios_audio_play_morefiles(montage_play_elem *play_elem)
                                if(format == HELIOS_AUDIO_FORMAT_WAVPCM){
                                        Helios_msleep(5);
                                } else {
-                                       Helios_msleep(100);
+                                       Helios_msleep(20);
                                }
                 
                 if (montage_is_break || (0 != ret))
@@ -658,7 +658,7 @@ int Helios_Audio_MontageFilePlayStart(char *montage_name, char *file_name, Helio
     {
         attr.name = "audio_montage_play";
         attr.stack_size = 1024*2;
-        attr.priority = 90;
+        attr.priority = 74;
         attr.entry = Helios_Montage_play_task;
 
         montage_play_task_id = Helios_Thread_Create(&attr);
index 842646e..54aa782 100644 (file)
@@ -82,12 +82,15 @@ static const int kBitrateV3[] = {
        80, 96, 112, 128, 144, 160};
 
 
-#if defined(PLAT_ASR_1803s)    
+
+
+
+
+#if defined(PLAT_ASR_1803s)    || defined(BOARD_EC600MCN_CC_EXT) || defined(BOARD_EC600MCN_LF_SLPOC)
 static void __pcm_play_cb(void *handle, int event){
        AUDLOGE("__pcm_play_cb event[%d]\n",event);
-
        
-       if(event == HELIOS_AUD_PLAYER_NODATA_STRAT || event == HELIOS_AUD_PLAYER_FINISHED || event == HELIOS_AUD_PLAYER_CLOSE) {
+       if(event == HELIOS_AUD_PLAYER_NODATA_STRAT || event == HELIOS_AUD_PLAYER_FINISHED || event == HELIOS_AUD_PLAYER_CLOSE || event == HELIOS_AUD_PLAYER_REQURST_CLOSE) {
                if(mp3_pcm_whdl){
                        Helios_PCM_Close(mp3_pcm_whdl);
                        mp3_pcm_whdl = NULL;
@@ -662,7 +665,7 @@ int Helios_play_stream_start(unsigned int rate, unsigned int ch, unsigned short
                mp3_pcm_whdl = Helios_Aud_PWM_Open(CONFIG_AUDIO_PWM_PIN, 1, rate, HELIOS_PCM_WRITE_FLAG | HELIOS_PCM_BLOCK_FLAG);
 #else
                mp3_pcm_whdl = Helios_PCM_Open(ch, rate, HELIOS_PCM_WRITE_FLAG | HELIOS_PCM_BLOCK_FLAG);
-#if defined(PLAT_ASR_1803s)
+#if defined(PLAT_ASR_1803s) || defined(BOARD_EC600MCN_CC_EXT) || defined(BOARD_EC600MCN_LF_SLPOC)
                Helios_PCM_Play_Cb(mp3_pcm_whdl, __pcm_play_cb);
 #endif
 #endif
@@ -730,7 +733,7 @@ int Helios_mp3_dec(void)
 
        if (aud_play_cb)
        {
-#if !defined(PLAT_ASR_1803s)
+#if !defined(PLAT_ASR_1803s) && !defined(BOARD_EC600MCN_CC_EXT) && !defined(BOARD_EC600MCN_LF_SLPOC)
                aud_play_cb(NULL, 0, HELIOS_AUD_PLAYER_START);
 #endif
        }
@@ -851,7 +854,7 @@ int Helios_mp3_dec(void)
                Helios_Aud_PWM_Close(mp3_pcm_whdl);
                mp3_pcm_whdl = NULL;
 #else
-#if !defined(PLAT_ASR_1803s)
+#if !defined(PLAT_ASR_1803s) && !defined(BOARD_EC600MCN_CC_EXT) && !defined(BOARD_EC600MCN_LF_SLPOC)
                Helios_PCM_Close(mp3_pcm_whdl);
                mp3_pcm_whdl = NULL;
 #endif
@@ -865,7 +868,7 @@ int Helios_mp3_dec(void)
 
                if (aud_play_cb)
                {
-#if !defined(PLAT_ASR_1803s)
+#if !defined(PLAT_ASR_1803s) && !defined(BOARD_EC600MCN_CC_EXT) && !defined(BOARD_EC600MCN_LF_SLPOC)
                        aud_play_cb(NULL, 0, HELIOS_AUD_PLAYER_FINISHED);
 #endif
                }
@@ -958,7 +961,7 @@ void Helios_mp3_stream_dec_task_init(void)
        }
 }
 
-#define MP3_RINGBUFF_LEN (2*1024)
+#define MP3_RINGBUFF_LEN (6*1024)
 
 int Helios_play_mp3_stream_start(void *mp3_buff, int mp3_size)
 {
@@ -1287,7 +1290,7 @@ int Helios_mp3_file_start(char *file_name, cb_on_player aud_cb)
        {
                aud_play_cb = aud_cb;
        }
-#if defined(PLAT_ASR_1803s)
+#if defined(PLAT_ASR_1803s) || defined(BOARD_EC600MCN_CC_EXT) || defined(BOARD_EC600MCN_LF_SLPOC)
        Helios_aud_stop_play_flag = 0;
 #endif
 
@@ -1357,7 +1360,7 @@ int Helios_mp3_file_start(char *file_name, cb_on_player aud_cb)
                if (frame_count == __jump_count) {
                    break;
                }
-               Helios_Aud_fseek(fd, frame_length - 4, SEEK_CUR); // Ìø¹ýÖ¡Êý¾Ý
+               Helios_Aud_fseek(fd, frame_length - 4, SEEK_CUR); // è·³è¿\87帧æ\95°æ\8d?
                frame_count++;
            }
                AUDLOGD("jump size[%d],pos[%d],offset[%d]\n",pos + offset, pos, offset);
@@ -1380,7 +1383,7 @@ int Helios_mp3_file_start(char *file_name, cb_on_player aud_cb)
        while (1)
        {
                // memset(mp3_buf, 0, read_size);
-#if defined(PLAT_ASR_1803s)
+#if defined(PLAT_ASR_1803s) || defined(BOARD_EC600MCN_CC_EXT) || defined(BOARD_EC600MCN_LF_SLPOC)
                if(Helios_aud_stop_play_flag){
                        break;
                }
@@ -1426,7 +1429,7 @@ int Helios_mp3_file_stop()
                AUDLOGE("error, mp3 is not playing\n");
                return -1;
        }
-#if !defined(PLAT_ASR_1803s)   
+#if !defined(PLAT_ASR_1803s) && !defined(BOARD_EC600MCN_CC_EXT)        && !defined(BOARD_EC600MCN_LF_SLPOC)
        Helios_aud_stop_play_flag = 1;
 #endif
 
@@ -1437,7 +1440,7 @@ int Helios_mp3_file_stop()
                Helios_msleep(15);
                count++;
        }
-#if defined(PLAT_ASR_1803s)
+#if defined(PLAT_ASR_1803s) || defined(BOARD_EC600MCN_CC_EXT) || defined(BOARD_EC600MCN_LF_SLPOC)
        Helios_mp3_Clear_Cache();
 #endif
        AUDLOGD("mp3Stop finish");
index 9a16efb..cdfb845 100644 (file)
@@ -9,6 +9,7 @@
 #include "helios_audio_fs.h"
 #include "helios_audio_mp3.h"
 #include "helios_audio_wav.h"
+#include "helios_audio_snd.h"
 #include "helios_os.h"
 
 static helios_cb_on_player play_user_cb = NULL;
@@ -616,6 +617,26 @@ struct data_chunk{
         return 0;
  }
 
+
+ 
+ static int check_snd_file(HeliosAudFILE *fd, aud_input_para_t *para)
+ {
+        int bytesRead = 0;
+        int ret = 0;
+        char header[4] = {0};
+        ret = Helios_Aud_fseek(fd, 0, SEEK_SET);
+        if(ret < 0)
+        {
+                return -1;
+        }
+        // Validate the input AMR file
+        bytesRead = Helios_Aud_fread(header, 1, 4, fd);
+        if (bytesRead != 4 || memcmp(header, ".snd", 4)) {
+                return -1;
+        }
+        return 0;
+ }
+
  
  static int check_audio_format(const char *fname, HeliosAudFILE *fd, aud_input_para_t *para)
  {
@@ -635,7 +656,11 @@ struct data_chunk{
         else if(!check_amr_file(fd, para))
         {
                 return AUD_STREAM_FORMAT_AMR;
-        }else
+        }
+        else if(!check_snd_file(fd, para)){
+               return AUD_STREAM_FORMAT_SND;
+        }
+        else
                 return -1;
  }
 
@@ -766,6 +791,15 @@ static int __Helios_file_play(void){
                                        return -1;
                                }
                                break;
+#endif
+#if CONFIG_AUDIO_SND
+                       case AUD_STREAM_FORMAT_SND:
+                               is_play = 4;
+                               if (Helios_snd_file_start(__audio_play_file, helios_audio_play_callback) != 0)
+                               {
+                                       return -1;
+                               }
+                               break;
 #endif
                        default:
                                return -1;
@@ -776,7 +810,7 @@ static void __Helios_audio_file_play_task_init(void)
  {
         static int inited = 0;
         size_t audio_stackSize = 1024*2;
-        int audio_thread_priority = 75;
+        int audio_thread_priority = 74;
         
  
         if (!inited)
@@ -868,6 +902,11 @@ static void __Helios_audio_file_play_task_init(void)
                  case 3:
                          helios_amr_file_end();
                          break;
+#endif
+#if CONFIG_AUDIO_SND
+                 case 4:
+                       Helios_snd_file_stop();
+                       break;
 #endif
                  default:break;
          
index 8b52e2c..b0f1086 100644 (file)
@@ -38,7 +38,8 @@ typedef enum
        HELIOS_AUD_PLAYER_RESUME,        // resume player from pause
        HELIOS_AUD_PLAYER_MOREDATA,
        HELIOS_AUD_PLAYER_NODATA_STRAT,
-       HELIOS_AUD_PLAYER_DATA_RESUME
+       HELIOS_AUD_PLAYER_DATA_RESUME,
+       HELIOS_AUD_PLAYER_REQURST_CLOSE
 } Helios_EnumAudPlayerState;
 
 typedef int (*helios_cb_on_player)(char *p_data, size_t len, Helios_EnumAudPlayerState state);
@@ -86,6 +87,7 @@ typedef enum{
        AUD_STREAM_FORMAT_PCM = 2,
        AUD_STREAM_FORMAT_AMRNB,
        AUD_STREAM_FORMAT_AMRWB,
+       AUD_STREAM_FORMAT_SND,
        AUD_STREAM_FORMAT_END
 }aud_stream_format;
 
diff --git a/2.sdk/Helios_SDK/components/audio/helios_audio_snd.c b/2.sdk/Helios_SDK/components/audio/helios_audio_snd.c
new file mode 100644 (file)
index 0000000..ce232c3
--- /dev/null
@@ -0,0 +1,505 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <assert.h>
+
+
+#include "helios_os.h"
+#include "helios_audio_py.h"
+#include "watermark.h"
+
+#include "helios_include.h"
+#include "helios_audio_fs.h"
+#include "helios_audio_snd.h"
+
+
+
+
+
+//////////////////////////////////////
+typedef enum{
+       SND_PLAY_STOP,
+       SND_PLAY_SENDING_MESSAGE,
+       SND_PLAY_PLAYING,
+       SND_PLAY_STOPPING,
+}SND_PLAY_STATUS;
+
+static cb_on_player aud_play_cb = NULL;
+
+
+static PCM_HANDLE_T snd_pcm_whdl = NULL;
+
+
+int is_snd_file_playing = SND_PLAY_STOP;
+static char snd_file_name[256];
+static void* snd_file_stack_ptr = NULL;
+static Helios_Sem_t snd_file_play_Sema;
+static Helios_OSFlag_t snd_file_pcm_flag_Ref = 0;
+static Helios_Thread_t snd_file_task_Ref = 0;
+static int snd_file_play_mode = 0;
+static int snd_file_pcm_pingpong_index = 0;
+static unsigned short snd_file_pcm_pingpong_buffer[48*20*2*2]; // max 48K 20ms stereo * 2
+static ring_buffer_handler_t snd_ring_buff = NULL;
+static int file_length = 0;
+
+#define SND_FILE_PCM_TASK_CONTINUE   (0x01)
+#define SND_FILE_PCM_STOP   (0x02)
+#define SND_FILE_PCM_TASK_MASK       (SND_FILE_PCM_STOP | SND_FILE_PCM_TASK_CONTINUE)
+
+enum{
+       SND_FILE_MODE,
+       SND_STREAM_MODE,
+}SND_PLAY_MODE;
+static ring_buffer_handler_t snd_file_Ringbuf;
+
+
+#define HELIOS_PCM_BLOCK_FLAG (0x01)
+#define HELIOS_PCM_NONBLOCK_FLAG (0x02)
+#define HELIOS_PCM_READ_FLAG (0x04)
+#define HELIOS_PCM_WRITE_FLAG (0x08)
+
+#define Helios_PCM_TASK_CONTINUE (0x01)
+#define Helios_PCM_STOP (0x02)
+#define Helios_PCM_TASK_MASK (Helios_PCM_STOP | Helios_PCM_TASK_CONTINUE)
+
+
+#define SND_FILE_RINGBUF_SIZE (30*1024)
+//////////////////////////////////////
+
+
+static int Helios_play_stream_start(unsigned int rate, unsigned int ch, unsigned short *pcm_buf, unsigned int frameByteSize)
+{
+       int ret = 0;
+       if (snd_pcm_whdl == NULL)
+       {
+#ifdef CONFIG_AUDIO_PWM
+               snd_pcm_whdl = Helios_Aud_PWM_Open(CONFIG_AUDIO_PWM_PIN, 1, rate, HELIOS_PCM_WRITE_FLAG | HELIOS_PCM_BLOCK_FLAG);
+#else
+               snd_pcm_whdl = Helios_PCM_Open(ch, rate, HELIOS_PCM_WRITE_FLAG | HELIOS_PCM_BLOCK_FLAG);
+#endif
+       }
+
+       if (snd_pcm_whdl == NULL)
+       {
+               return -1;
+       }
+#ifdef CONFIG_AUDIO_PWM
+       ret = Helios_Aud_PWM_Write(snd_pcm_whdl, pcm_buf, frameByteSize);
+#else
+       ret = Helios_PCM_Write(snd_pcm_whdl, pcm_buf, frameByteSize);
+#endif
+       if (ret < 0)
+       {
+               AUDLOGE("kOutputBufferSize[%d] ret[%d]\n", frameByteSize, ret);
+               return -1;
+       }
+       Helios_Flag_Release(snd_file_pcm_flag_Ref, Helios_PCM_TASK_CONTINUE, Helios_FLAG_OR);
+       
+
+       return 0;
+}
+
+
+
+static void snd_file_pcm_stop(void)
+{
+       if (snd_pcm_whdl)
+       {
+#ifdef CONFIG_AUDIO_PWM
+               Helios_Aud_PWM_Close(snd_pcm_whdl);
+#else
+               Helios_PCM_Close(snd_pcm_whdl);
+#endif
+               snd_pcm_whdl = NULL;
+       }
+}
+
+
+#ifndef min
+#define min(a, b) ((a) < (b) ? (a) : (b))
+#endif
+static uint32_t get_snd_ringbuf_free_size(void) {
+       uint32_t freesize = 0;
+       quec_ring_buffer_get_free_size(snd_file_Ringbuf, &freesize);
+       return freesize;
+}
+static uint32_t get_snd_ringbuf_data_size(void) {
+       uint32_t dataize = 0;
+       if(snd_file_play_mode == SND_FILE_MODE)
+               quec_ring_buffer_get_used_size(snd_file_Ringbuf, &dataize);
+       else
+               quec_ring_buffer_get_used_size(snd_ring_buff, &dataize);
+       return dataize;
+}
+
+
+#define FORMAT_PCM     1
+
+static bool is_support_samplerate(unsigned int rate)
+{
+       switch(rate) {
+       case 8000:
+       case 11025:
+       case 12000:
+       case 16000:
+       case 22050:
+       case 24000:
+       case 32000:
+       case 44100:
+       case 48000:
+               return true;
+       }
+       return false;
+}
+
+
+uint32_t my_ntohl(uint32_t value) {
+    uint32_t result = 0;
+
+    result |= (value & 0xFF000000) >> 24;
+    result |= (value & 0x00FF0000) >> 8;
+    result |= (value & 0x0000FF00) << 8;
+    result |= (value & 0x000000FF) << 24;
+
+    return result;
+}
+
+
+
+static int check_snd_header(unsigned int temp, HeliosAudFILE *fd, ring_buffer_handler_t *snd_ring_buff, int *sample, int *channel){
+       HELIOS_SND_HEADER snd_hdr;
+       int ret = 0, i = 0;
+       unsigned int chunk_id = 0,chunk_size = 0,chunk_len = 0;
+       unsigned int data = 0,data_size = 0;
+       if((fd == NULL && temp == 0) || (snd_ring_buff == NULL && temp == 1)){
+               AUDLOGE("error\n");
+               return -1;
+       }
+       if(temp == 0){
+               ret = Helios_Aud_fseek(fd, 0, SEEK_SET);
+               if(ret < 0)
+               {
+                       AUDLOGE("error\n");
+                       return -1;
+               }
+               ret = Helios_Aud_fread(&snd_hdr, sizeof(snd_hdr), 1, fd);                                                       //riff
+               if(ret < sizeof(snd_hdr))
+               {
+                       Helios_Aud_fseek(fd, 0, SEEK_SET);
+                       AUDLOGE("error\n");
+                       return -1;
+               }
+       }else if(temp == 1){
+               quec_ring_buffer_read_ex(snd_ring_buff, &snd_hdr, sizeof(snd_hdr), &ret);
+               if(ret < sizeof(snd_hdr)) {
+                       AUDLOGE("error\n");
+                       return -1;
+               }
+                       
+       }
+
+       
+
+       snd_hdr.magic = my_ntohl(snd_hdr.magic);
+    snd_hdr.dataOffset = my_ntohl(snd_hdr.dataOffset);
+    snd_hdr.dataSize = my_ntohl(snd_hdr.dataSize);
+    snd_hdr.encoding = my_ntohl(snd_hdr.encoding);
+    snd_hdr.sampleRate = my_ntohl(snd_hdr.sampleRate);
+    snd_hdr.channels = my_ntohl(snd_hdr.channels);
+
+       
+       AUDLOGI("snd magic[%x],dataOffset[%d],dataSize[%d],encoding[%d],sampleRate[%d],channels[%d]\n",snd_hdr.magic, 
+               snd_hdr.dataOffset, snd_hdr.dataSize, snd_hdr.encoding, snd_hdr.sampleRate, snd_hdr.channels);
+
+       if (snd_hdr.magic != 0x2e736e64) {
+        AUDLOGE("Invalid SND file\n");
+        return -1;
+    }
+
+       if (snd_hdr.encoding != 3) {
+        AUDLOGE("Unsupported encoding\n");
+        return -1;
+    }
+
+       
+       if(is_support_samplerate(snd_hdr.sampleRate) == false){
+               return -1;
+       }
+
+       *sample = snd_hdr.sampleRate;
+       *channel = snd_hdr.channels;
+
+       
+       Helios_Aud_fseek(fd, snd_hdr.dataOffset+1, SEEK_SET);
+
+       return snd_hdr.dataSize;
+
+}
+static int snd_file_play_func() 
+{      
+    int                                        first_time      = 1;
+    unsigned int                       event           = 0;  
+       int                     rc                      = 0;    
+       int                                     retVal          = -1;
+       
+       void*                                   tempBuf         = NULL;
+       
+    int                                        channels        = 0;
+    int                                        samplerate      = 0;
+       uint32_t                                bytesRead       = 0;
+       bool                                    isReadEnd = false;
+       int                                             data = 0;
+       HeliosAudFILE                                   *fd = NULL;
+
+    // Open the file.
+    if(snd_file_play_mode == SND_FILE_MODE){
+       fd = Helios_Aud_fopen(snd_file_name, "r");
+               if(fd == NULL) {
+                        AUDLOGI("%s:open file fail\r\n", __func__);
+                        goto end;
+               }
+    }
+       file_length =  check_snd_header(snd_file_play_mode, fd, snd_ring_buff, &samplerate, &channels);
+       if(file_length < 0){
+               AUDLOGE("check snd header error! \n");
+               goto end;
+       }
+       if(snd_file_play_mode == SND_FILE_MODE)
+               tempBuf = malloc(SND_FILE_RINGBUF_SIZE/2);
+       
+    while (1) {
+               if(snd_file_play_mode == SND_FILE_MODE){
+                       while (!isReadEnd && get_snd_ringbuf_free_size() >= SND_FILE_RINGBUF_SIZE/2)  {
+                       // Read input from the file.
+                       uint32_t freesize = 0;
+                               freesize = get_snd_ringbuf_free_size();
+                               bytesRead = min(freesize, SND_FILE_RINGBUF_SIZE/2);
+                       retVal = Helios_Aud_fread(tempBuf, bytesRead, 1, fd);
+                               if (retVal <= 0) {
+                                       isReadEnd = true;
+                                       break;
+                               }
+                       //quec_ring_buffer_write(snd_file_Ringbuf, tempBuf, retVal);
+                       rc = Helios_play_stream_start(samplerate, channels, tempBuf, retVal);
+                       }
+               }else
+                       isReadEnd = true;
+        
+        Helios_Flag_Wait(snd_file_pcm_flag_Ref, SND_FILE_PCM_TASK_MASK, Helios_FLAG_OR_CLEAR, &event, HELIOS_WAIT_FOREVER); 
+               if(isReadEnd){
+                       while((0 != get_snd_ringbuf_data_size()) 
+                                       && (SND_FILE_PCM_STOP != (SND_FILE_PCM_STOP & event))){
+                               Helios_Flag_Wait(snd_file_pcm_flag_Ref, SND_FILE_PCM_TASK_MASK, Helios_FLAG_OR_CLEAR, &event, HELIOS_WAIT_FOREVER); 
+                       }
+               }
+
+                       
+        if(SND_FILE_PCM_STOP == (SND_FILE_PCM_STOP & event) || isReadEnd){
+            break;
+        }
+               
+    }
+       
+end:   
+//     if(AUDIOHAL_ERR_NO == rc){
+       snd_file_pcm_stop();
+//     }
+    // Free allocated memory.
+    if(tempBuf)        free(tempBuf);
+       if(fd) {
+               Helios_Aud_fclose(fd);
+       }
+       if(snd_file_play_mode == SND_STREAM_MODE){
+               quec_ring_buffer_deinit(&snd_ring_buff);
+               snd_ring_buff = NULL;
+       }else
+       quec_ring_buffer_reset(snd_file_Ringbuf);
+       return retVal;
+}
+
+
+static int snd_file_play(void)
+{
+    int status;
+       unsigned char first_entry = 0;
+       while(1){
+
+        if(0 != first_entry) {
+                       is_snd_file_playing = SND_PLAY_STOP;
+               }
+               else {
+                       first_entry = !first_entry;
+               }
+        status = Helios_Semaphore_Acquire(snd_file_play_Sema, HELIOS_WAIT_FOREVER);
+//        assert(status != 0); 
+
+               if (aud_play_cb) {
+                       aud_play_cb(snd_file_name, 0, HELIOS_AUD_PLAYER_START);
+               }
+               
+               if(SND_PLAY_SENDING_MESSAGE == is_snd_file_playing) {
+                       is_snd_file_playing = SND_PLAY_PLAYING;
+                       snd_file_play_func();
+               }
+               is_snd_file_playing = SND_PLAY_STOPPING;
+               
+               if (aud_play_cb) {
+                       aud_play_cb(snd_file_name, 0, HELIOS_AUD_PLAYER_FINISHED);
+               }       
+       }
+       return 0;
+}
+
+
+static void snd_file_play_task_init(void)
+{
+    int status;
+    static int inited = 0;     
+    size_t snd_stackSize = 1024*10;
+    int snd_thread_priority = 90;      
+               
+    if(!inited){
+               quec_ring_buffer_init(&snd_file_Ringbuf, SND_FILE_RINGBUF_SIZE);
+       
+        snd_file_pcm_flag_Ref = Helios_Flag_Create();
+        assert(snd_file_pcm_flag_Ref != 0);
+               
+        snd_file_stack_ptr = malloc(snd_stackSize);
+               assert(snd_file_stack_ptr != NULL);
+
+               
+               Helios_ThreadAttr attr = {0};
+               attr.name = "Helios_snd_stream_play";
+               attr.stack_size = snd_stackSize;
+               attr.priority = snd_thread_priority;
+               attr.entry = snd_file_play;
+
+               snd_file_task_Ref = Helios_Thread_Create(&attr);
+               
+        assert(snd_file_task_Ref != 0);       
+
+        inited = 1;
+    }
+}
+
+typedef unsigned char           BOOL;
+
+static BOOL helios_find_file(char *name)
+{
+       HeliosAudFILE *fileID = NULL;
+
+       fileID = Helios_Aud_fopen(name, "r");
+       if (fileID)
+       {
+               Helios_Aud_fclose(fileID);
+
+               return TRUE;
+       }
+       return FALSE;
+}
+
+
+int Helios_snd_file_start(char *file_name, cb_on_player aud_cb)
+{
+       OSA_STATUS status;
+       uint32_t ret = 0;
+
+       if(!file_name){
+           AUDLOGE("%s:file_name NULL\r\n", __func__);
+               return -1;
+       }
+
+       AUDLOGI("%s:play file_name %s\r\n", __func__, file_name);
+       
+    if((0 == strlen(file_name))
+               || (strlen(file_name) > 250)
+               || (!helios_find_file(file_name))) {
+               AUDLOGE("%s:file_name error!!\r\n", __func__);
+        return -1;
+    }
+
+       if (aud_cb)
+       {
+               aud_play_cb = aud_cb;
+       }
+
+    if(SND_PLAY_STOP != is_snd_file_playing) {
+               AUDLOGE("%s:snd file is in playing\r\n", __func__);
+        return -2;
+    }
+    is_snd_file_playing = SND_PLAY_SENDING_MESSAGE;
+    
+       snd_file_play_mode = SND_FILE_MODE;
+       memset(snd_file_name, 0, sizeof(snd_file_name));
+    memcpy(snd_file_name, file_name, strlen(file_name) + 1);
+               
+    if(snd_file_task_Ref == 0) {
+               
+               snd_file_play_Sema = Helios_Semaphore_Create(1, 0);
+               assert(snd_file_play_Sema != 0);
+               
+        snd_file_play_task_init();
+
+               
+               Helios_Semaphore_Poll(snd_file_play_Sema, &ret);
+               if (ret == 0)
+               {
+                       Helios_Semaphore_Release(snd_file_play_Sema);
+               }
+    } else {
+        Helios_Semaphore_Release(snd_file_play_Sema);
+    }
+    return 0;
+}
+
+int Helios_play_snd_stream_start(char *data, unsigned int size)
+{
+       OSA_STATUS status;
+
+       if(data == NULL){
+           AUDLOGI("%s:data error\r\n", __func__);
+               return -1;
+       }
+       
+    if(SND_PLAY_STOP != is_snd_file_playing) {
+               AUDLOGI("%s:snd file is in playing\r\n", __func__);
+        return -2;
+    }
+    is_snd_file_playing = SND_PLAY_SENDING_MESSAGE;
+       
+       snd_file_play_mode = SND_STREAM_MODE;
+
+       quec_ring_buffer_init(&snd_ring_buff, size);
+       quec_ring_buffer_write(snd_ring_buff, (uint8 *)data, size);
+               
+    if(snd_file_task_Ref == 0) {
+               snd_file_play_Sema = Helios_Semaphore_Create(1, 0);
+               assert(snd_file_play_Sema != 0);
+               
+        snd_file_play_task_init();
+    } else {
+        Helios_Semaphore_Release(snd_file_play_Sema);
+    }
+    return 0;
+}
+
+int Helios_snd_file_stop(void)
+{  
+    AUDLOGI("%s:stop\r\n", __func__);
+    int count = 0;
+    if(SND_PLAY_STOP == is_snd_file_playing) {
+               AUDLOGI("%s:error, snd is not playing\r\n", __func__);
+        return -1;
+    }
+
+    if(SND_PLAY_SENDING_MESSAGE == is_snd_file_playing) {
+               is_snd_file_playing = SND_PLAY_STOPPING;
+    }
+       
+    Helios_Flag_Release(snd_file_pcm_flag_Ref, SND_FILE_PCM_STOP, Helios_FLAG_OR);
+       while ((SND_PLAY_STOP != is_snd_file_playing) && count < 100) {
+               Helios_msleep(15);
+               count++;
+       }
+    return 0;
+}
+
diff --git a/2.sdk/Helios_SDK/components/audio/helios_audio_snd.h b/2.sdk/Helios_SDK/components/audio/helios_audio_snd.h
new file mode 100644 (file)
index 0000000..9020e12
--- /dev/null
@@ -0,0 +1,21 @@
+
+#ifndef __HELIOS_AUDIO_SND_H__
+#define __HELIOS_AUDIO_SND_H__
+
+// SND header structure
+typedef struct {
+    uint32_t magic;
+    uint32_t dataOffset;
+    uint32_t dataSize;
+    uint32_t encoding;
+    uint32_t sampleRate;
+    uint32_t channels;
+} HELIOS_SND_HEADER;
+
+
+int Helios_snd_file_start(char *file_name, cb_on_player aud_cb);
+int Helios_snd_file_stop(void);
+
+
+
+#endif
index 3d25e15..33f3883 100644 (file)
@@ -179,7 +179,24 @@ static const poc_ops_t poc_ops = {
     .get_isenable_friend        =  py_qs_poc_get_isenable_friend,
     .request_flush_member       =  py_qs_poc_request_flush_member,
     .set_ptt_status             =  py_qs_poc_set_ptt_status,
+    
+    .get_is_support_location    = py_qs_poc_get_is_support_location,
+    .get_is_support_gps         = py_qs_poc_get_is_support_gps,
+    .get_is_support_wifi        = py_qs_poc_get_is_support_wifi,
+    .open_gps                   = py_qs_poc_open_gps,
+    .close_gps                  = py_qs_poc_close_gps,
+    .upload_gps_data            = py_qs_poc_upload_gps_data,
+    .get_gps_set_value          = py_qs_poc_get_gps_set_value,
+    .play_tts_request_location_permission    = py_qs_poc_play_tts_request_location_permission,
+    .is_in_gps_information_ui   = py_qs_poc_is_in_gps_information_ui,
+    .start_scan_wifi            = py_qs_poc_start_scan_wifi,
+    .update_network_mcc_mnc_lac_cid_infomation    = py_qs_poc_update_network_mcc_mnc_lac_cid_infomation,
+    .upload_wifi_data           = py_qs_poc_upload_wifi_data,
+    .send_heart_package         = py_qs_poc_send_heart_package,
+    .set_tone_enable                   = py_qs_poc_pttTone_Switch,
+    .set_dev_location_type      = py_qs_poc_set_dev_location_type,
 };
+
 #elif defined(CONFIG_POC_ZZD)
 
 static const poc_ops_t poc_ops = {
@@ -247,6 +264,8 @@ static const poc_ops_t poc_ops = {
     .record_stop_play = py_ydwl_poc_record_stop_play,
     // .record_save_flash = py_ydwl_poc_record_save_flash,
     .record_get_state = py_ydwl_poc_record_get_state,
+    .tts_init = py_ydwl_tts_init,
+    .tts_play = py_ydwl_tts_play,
 };
 
 #else 
index 476c691..d224bd2 100644 (file)
@@ -120,8 +120,15 @@ typedef struct {
     int (*record_stop_play)(void);
     // int (*record_save_flash)(void);
     int (*record_get_state)(void);
+    void (*tts_init)(ydwl_tts_cb_type usr_cb);
+    void (*tts_play)(const char* string, unsigned int len);
 #endif
 
+#if defined(CONFIG_POC_QS)
+       int (*set_tone_enable)(int flags);
+#endif
+
+
 #if !defined(CONFIG_POC_QS) && !defined(CONFIG_POC_ZZD) && !defined(CONFIG_POC_YDWL)
     AUDIO_STATE (*get_audiostate)();
        
@@ -198,6 +205,21 @@ typedef struct {
     int (*get_isenable_friend)();
     void (*request_flush_member)(int type);
     void (*set_ptt_status)(int status);
+
+    int  (*get_is_support_location)(void);
+    int  (*get_is_support_gps)(void);
+    int  (*get_is_support_wifi)(void);
+    void (*open_gps)(void);
+    void (*close_gps)(void);
+    void (*upload_gps_data)(double longitude,double latitude,double accuracy);
+    int  (*get_gps_set_value)(void);
+    void (*play_tts_request_location_permission)(void);
+    int  (*is_in_gps_information_ui)(void);
+    void (*start_scan_wifi)(void);
+    void (*update_network_mcc_mnc_lac_cid_infomation)(int *arg1,int *arg2,int *arg3,int *arg4,int *arg5);
+    void (*upload_wifi_data)(char* arg1,int arg2,int* arg3,int arg4,int arg5);
+    void (*send_heart_package)(void);
+    void (*set_dev_location_type)(LOCATION_TYPE location_type,int is_enable);
     #endif
 }poc_ops_t;
 
index 9b560e8..8050b81 100644 (file)
@@ -44,7 +44,6 @@ ifeq ($(CONFIG_POC_YDWL), y)
 GLOBAL_INCS += ydwl/inc
 $(NAME)_SRCS += \
     ydwl/src/poc_ydwl_api.c
-$(NAME)_ARCHIVES := ydwl/lib/libydpoc.a
 endif
 
 ifeq ($(CONFIG_POC_SLPOC), y)
index 2561f78..1eaedcd 100644 (file)
@@ -87,6 +87,12 @@ typedef enum AUDIO_STATE{
     BND_REC_PLAY_STOP,
 }AUDIO_STATE;
 
+typedef enum __LOCATION_TYPE_E{
+       LOCATION_TYPE_GPS=0,
+       LOCATION_TYPE_CELL,
+       LOCATION_TYPE_WIFI
+}LOCATION_TYPE;
+
 //群组结构
 typedef struct QS_group_t
 {
@@ -427,6 +433,29 @@ void POC_register_called_cb(called_cb cb);
 int poc_state_transation(int state);
 void POC_set_ptt_status(int status);
 
+int Device_getIsSupportLocation(void);
+int Device_getIsSupportGps(void);
+int Device_getIsSupportWifi(void);
+void Device_open_gps(void);
+void Device_close_gps(void);
+void Device_upload_gps_data(double longitude,double latitude,double accuracy);
+int Device_getGpsSettingValue(void);
+void Device_PlayTts_request_location_permission(void);
+int Device_isInGpsInformationUI(void);
+void Device_updateNetworkMccMncLacCIdInformation(
+       int *pMobileCountryCode,int *pMobileNetworkCode,int *pLocationAreaCode,
+       int *pCellTowerId,int *pRssi
+       );
+void Device_startScanWifi(void);
+void Device_uploadWifiData(char* pLocationWifiMac32bytesArray,int locationWifiMac32bytesArrayBytesLength,
+       int* pLocationWifiRssiArray,int locationWifiRssiArrayBytesLength,
+       int locationWifiMacCount);
+void Device_restartHeartTimerAndSendHeartPackage(void);
+
+void Device_PTTtone_switch(int onoff);
+
+   
+void Device_quec_set_location_support_type(LOCATION_TYPE location_type,int is_enable);
 void py_qs_poc_init(init_cb cb);
 void py_qs_poc_free(void);
 int py_qs_poc_login(login_state_cb cb);
@@ -461,4 +490,21 @@ int py_qs_poc_get_isenable_friend(void);
 void POC_notify_network_status(int status);
 void py_qs_poc_request_flush_member(int type );
 void  py_qs_poc_set_ptt_status(int status );
+
+int   py_qs_poc_get_is_support_location(void);
+int   py_qs_poc_get_is_support_gps(void);
+int   py_qs_poc_get_is_support_wifi(void);
+void  py_qs_poc_open_gps(void);
+void  py_qs_poc_close_gps(void);
+void  py_qs_poc_upload_gps_data(double longitude,double latitude,double accuracy);
+int   py_qs_poc_get_gps_set_value(void);
+void  py_qs_poc_play_tts_request_location_permission(void);
+int   py_qs_poc_is_in_gps_information_ui(void);
+void  py_qs_poc_start_scan_wifi(void);
+void  py_qs_poc_update_network_mcc_mnc_lac_cid_infomation(int *pMobileCountryCode,int *pMobileNetworkCode,int *pLocationAreaCode,int *pCellTowerId,int *pRssi);
+void  py_qs_poc_upload_wifi_data(char* pLocationWifiMac32bytesArray,int locationWifiMac32bytesArrayBytesLength,        int* pLocationWifiRssiArray,int locationWifiRssiArrayBytesLength,int locationWifiMacCount);
+void  py_qs_poc_send_heart_package(void);
+void  py_qs_poc_pttTone_Switch(int onoff);
+
+void  py_qs_poc_set_dev_location_type(LOCATION_TYPE location_type,int is_enable);
 #endif
index 6f33654..6ac8fd1 100644 (file)
@@ -400,3 +400,58 @@ int py_qs_poc_get_friend_list(qs_member_t *friend_list,int count){
     }
 }
 
+int  py_qs_poc_get_is_support_location(void){
+    return Device_getIsSupportLocation();
+}
+int  py_qs_poc_get_is_support_gps(void){
+    return Device_getIsSupportGps();
+}
+int  py_qs_poc_get_is_support_wifi(void){
+    return Device_getIsSupportWifi();
+}
+void  py_qs_poc_open_gps(void){
+    return Device_open_gps();
+}
+void  py_qs_poc_close_gps(void){
+    return Device_close_gps();
+}
+void  py_qs_poc_upload_gps_data(double longitude,double latitude,double accuracy){
+    return Device_upload_gps_data(longitude,latitude,accuracy);
+}
+int  py_qs_poc_get_gps_set_value(void){
+    return Device_getGpsSettingValue();
+}
+void  py_qs_poc_play_tts_request_location_permission(void){
+    return Device_PlayTts_request_location_permission();
+}
+int  py_qs_poc_is_in_gps_information_ui(void){
+    return Device_isInGpsInformationUI();
+}
+void  py_qs_poc_start_scan_wifi(void){
+    return Device_startScanWifi();
+}
+void  py_qs_poc_update_network_mcc_mnc_lac_cid_infomation(int *pMobileCountryCode,int *pMobileNetworkCode,int *pLocationAreaCode,int *pCellTowerId,int *pRssi)
+{
+    return Device_updateNetworkMccMncLacCIdInformation(pMobileCountryCode,pMobileNetworkCode,pLocationAreaCode,pCellTowerId,pRssi);
+}
+void  py_qs_poc_upload_wifi_data(char* pLocationWifiMac32bytesArray,int locationWifiMac32bytesArrayBytesLength,        int* pLocationWifiRssiArray,int locationWifiRssiArrayBytesLength,int locationWifiMacCount)
+{
+    return Device_uploadWifiData(pLocationWifiMac32bytesArray,locationWifiMac32bytesArrayBytesLength,pLocationWifiRssiArray,locationWifiRssiArrayBytesLength,locationWifiMacCount);
+}
+void  py_qs_poc_send_heart_package(void)
+{
+    return Device_restartHeartTimerAndSendHeartPackage();
+}
+
+void  py_qs_poc_pttTone_Switch(int onoff)
+{
+    return Device_PTTtone_switch(onoff);
+}
+void  py_qs_poc_set_dev_location_type(LOCATION_TYPE location_type,int is_enable){
+    return Device_quec_set_location_support_type(location_type,is_enable);
+}
+
+
+
+
+
index 1a83324..b612032 100644 (file)
Binary files a/2.sdk/Helios_SDK/components/poc/slpoc/lib/broad.lib and b/2.sdk/Helios_SDK/components/poc/slpoc/lib/broad.lib differ
index 30ce9e2..4d2eed5 100644 (file)
@@ -249,6 +249,7 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(qpy_poc_config_obj,4,4,qpy_poc_config
 
 STATIC mp_obj_t qpy_poc_init(size_t n_args,const mp_obj_t *args){
     // 2023/4/27  burols.wang change
+    Helios_USB_Log_Enable();
     poc_ops_t *poc_ops = poc_get_ops();
     if ( n_args == 4  ){
         // n_args =4 for compatible old call style,n_args =1  for same as others poc platform interface.
@@ -908,28 +909,8 @@ STATIC mp_obj_t qpy_poc_write_custom_type(mp_obj_t custom_type, mp_obj_t name)
 STATIC MP_DEFINE_CONST_FUN_OBJ_2(qpy_poc_write_custom_obj, qpy_poc_write_custom_type);
 
 
-extern void user_audio_speakerpa_callback(unsigned int event);
 void qpy_poc_register_audio_callback(AUDIO_STATE state, poc_uid_t uid, const char* name, int flag) {
        
-       
-       switch (state)
-       {
-               case BROAD_SPEAK_START:
-               case BROAD_TTS_START:
-               case BROAD_TONE_START:
-               case BROAD_REC_PLAY_START:
-                       user_audio_speakerpa_callback(1);
-                       break;
-               
-               case BROAD_LISTEN_STOP:
-               case BROAD_TTS_STOP:
-               case BROAD_TONE_STOP:
-               case BROAD_REC_PLAY_STOP:
-                       user_audio_speakerpa_callback(0);
-                       break;
-               default:
-                       break;
-       }
 
 
     if(!(poc_obj.audio_callback.cb)) return;
index 364df62..525de5f 100644 (file)
@@ -27,7 +27,7 @@ WHEN                          WHO                     WHAT, WHERE, WHY
 #include <stdint.h>
 
 #include "ip4_addr.h"
-
+#include "helios_audio.h"
 typedef unsigned char boolean;
 
 typedef unsigned int   ydwl_uid_t;
@@ -95,6 +95,7 @@ typedef struct
        unsigned char ucTotRecord;
        unsigned char ucAddPtr;
        unsigned char ucFoldercnt;
+    char FolderName[RECORD_MAX_SIZE][FILE_NAME_MAX_SIZE];
        char ucFolderName[RECORD_MAX_SIZE][FILE_NAME_MAX_SIZE];
        char ucFileName[RECORD_MAX_SIZE][FILE_NAME_MAX_SIZE];
        char ucUserName[RECORD_MAX_SIZE][FILE_NAME_MAX_SIZE];
@@ -227,5 +228,7 @@ int py_ydwl_poc_record_req_play(char* record_file);
 int py_ydwl_poc_record_stop_play(void);
 // int py_ydwl_poc_record_save_flash(void);
 record_state_e py_ydwl_poc_record_get_state(void);
+void py_ydwl_tts_init(ydwl_tts_cb_type usr_cb);
+void py_ydwl_tts_play(const char* string, unsigned int len);
 
 #endif // __POC_YDWL_API_H__
index d88006c..19aeed0 100644 (file)
@@ -12,6 +12,8 @@
 #include "helios_sim.h"
 #include "ql_fs.h"
 #include "helios_fs.h"
+#include "helios_audio.h"
+
 
 #include <stdlib.h>
 #include <stdarg.h>
@@ -1239,7 +1241,7 @@ static int record_folder_handle(void)
                {
 
                        iFileCnt++;//获取文件夹个数
-                       // ydwl_poc_debug("[ poc SD]name:%s iFileCnt:%d\r\n",pDirInfo->d_name,iFileCnt); 
+                       ydwl_poc_debug("[ poc SD]name:%s iFileCnt:%d\r\n",pDirInfo->d_name,iFileCnt); 
                }
                
        }
@@ -1253,7 +1255,7 @@ static int record_folder_handle(void)
        }
        iFileCnt = 0;
 
-    // ydwl_poc_debug("[ poc SD]readdir again iOffset:%d--iFileCnt:%d\r\n",iOffset,iFileCnt);
+    ydwl_poc_debug("[ poc SD]readdir again iOffset:%d--iFileCnt:%d\r\n",iOffset,iFileCnt);
        Helios_fdirseek(pSdRoot,0);
        while((pDirInfo = Helios_fdirread(pSdRoot))!=NULL)
        {
@@ -1265,7 +1267,7 @@ static int record_folder_handle(void)
                        {
                                memcpy(ydwl_record_list.ucFolderName[ydwl_record_list.ucFoldercnt], pDirInfo->d_name, 10);              
                                ydwl_record_list.ucFoldercnt++;
-                               // ydwl_poc_debug("[SD1]readdir ucFoldercnt :%d\r\n",ydwl_record_list.ucFoldercnt);
+                               ydwl_poc_debug("[SD1]readdir ucFoldercnt :%d\r\n",ydwl_record_list.ucFoldercnt);
                        }
                        else
                        {
@@ -1273,7 +1275,7 @@ static int record_folder_handle(void)
                                {
                                        memcpy(ydwl_record_list.ucFolderName[ydwl_record_list.ucFoldercnt], pDirInfo->d_name, 10);              
                                        ydwl_record_list.ucFoldercnt++;
-                                       // ydwl_poc_debug("[SD2]readdir ucFoldercnt :%d\r\n",ydwl_record_list.ucFoldercnt);
+                                       ydwl_poc_debug("[SD2]readdir ucFoldercnt :%d\r\n",ydwl_record_list.ucFoldercnt);
                                }
                        }
                        
@@ -1305,10 +1307,10 @@ int record_file_handle(void)
         {
             break;
         }
-        // ydwl_poc_debug("[SD1]record %d Folder name:%s\r\n",i,ydwl_record_list.ucFolderName[i-1]);
+        ydwl_poc_debug("[SD1]record %d Folder name:%s\r\n",i,ydwl_record_list.ucFolderName[i-1]);
 
         current_max_size = RECORD_MAX_SIZE - ydwl_record_list.ucTotRecord;
-        // ydwl_poc_debug("[SD1]current_max_size left is %d\r\n",current_max_size);
+        ydwl_poc_debug("[SD1]current_max_size left is %d\r\n",current_max_size);
         memset(recordFolder, 0, sizeof(recordFolder));
         memset(cFilePath, 0, sizeof(cFilePath));
 
@@ -1330,7 +1332,7 @@ int record_file_handle(void)
             if(pDirInfo->d_type == 8)
             {
                 iFileCnt++;//获取文件个数
-                // ydwl_poc_debug("[SD]name:%s file_cnt:%d\r\n",pDirInfo->d_name,iFileCnt); 
+                ydwl_poc_debug("[SD]name:%s file_cnt:%d\r\n",pDirInfo->d_name,iFileCnt); 
             }
             
         }
@@ -1346,7 +1348,7 @@ int record_file_handle(void)
         }
         iFileCnt = 0;
 
-        // ydwl_poc_debug("[SD]iOffset:%d ydwl_record_list.ucAddPtr:%d \r\n", iOffset,ydwl_record_list.ucAddPtr); 
+        ydwl_poc_debug("[SD]iOffset:%d ydwl_record_list.ucAddPtr:%d \r\n", iOffset,ydwl_record_list.ucAddPtr); 
         Helios_fdirseek(pSdRoot,0);
         // ydwl_poc_debug("[SD]readdir again iOffset:%d--offset:%d\r\n",iOffset,ql_seekdir(pSdRoot,0));
         while((pDirInfo = Helios_fdirread(pSdRoot))!=NULL)
@@ -1357,22 +1359,23 @@ int record_file_handle(void)
                 iFileCnt ++;
                 if(iOffset == 0)
                 {
-                    memcpy(ydwl_record_list.ucFolderName[ydwl_record_list.ucAddPtr + (RECORD_MAX_SIZE - current_max_size)], recordFolder, 10);
+                    memcpy(ydwl_record_list.FolderName[ydwl_record_list.ucAddPtr + (RECORD_MAX_SIZE - current_max_size)], recordFolder, 10);
                     memcpy(ydwl_record_list.ucFileName[ydwl_record_list.ucAddPtr + (RECORD_MAX_SIZE - current_max_size)], pDirInfo->d_name, 17);               
                     memcpy(ydwl_record_list.ucUserName[ydwl_record_list.ucAddPtr + (RECORD_MAX_SIZE - current_max_size)], &pDirInfo->d_name[7], strlen(pDirInfo->d_name)-11);  
                     ydwl_record_list.ucAddPtr--;
                     ydwl_record_list.ucTotRecord++; 
+                    // ydwl_poc_debug("[SD]ucAddPtr:%d ucTotRecord:%d,ucUserName:%s\r\n", ydwl_record_list.ucAddPtr+1,ydwl_record_list.ucTotRecord, ydwl_record_list.ucUserName[ydwl_record_list.ucAddPtr+1]);
                 }
                 else
                 {
                     if(iFileCnt > iOffset)
                     {
-                        memcpy(ydwl_record_list.ucFolderName[ydwl_record_list.ucAddPtr + (RECORD_MAX_SIZE - current_max_size)], recordFolder, 10);
+                        memcpy(ydwl_record_list.FolderName[ydwl_record_list.ucAddPtr + (RECORD_MAX_SIZE - current_max_size)], recordFolder, 10);
                         memcpy(ydwl_record_list.ucFileName[ydwl_record_list.ucAddPtr + (RECORD_MAX_SIZE - current_max_size)], pDirInfo->d_name, 17);           
                         memcpy(ydwl_record_list.ucUserName[ydwl_record_list.ucAddPtr + (RECORD_MAX_SIZE - current_max_size)], &pDirInfo->d_name[7], strlen(pDirInfo->d_name)-11);      
                         ydwl_record_list.ucAddPtr--;
                         ydwl_record_list.ucTotRecord++;
-                        // ydwl_poc_debug("[SD]ucAddPtr:%d ucTotRecord:%d,ucUserName:%s\r\n", ydwl_record_list.ucAddPtr,ydwl_record_list.ucTotRecord, ydwl_record_list.ucUserName[ydwl_record_list.ucAddPtr]);
+                        // ydwl_poc_debug("[SD]ucAddPtr:%d ucTotRecord:%d,ucUserName:%s\r\n", ydwl_record_list.ucAddPtr+1,ydwl_record_list.ucTotRecord, ydwl_record_list.ucUserName[ydwl_record_list.ucAddPtr+1]);
                     }
                     
                 }
@@ -1630,3 +1633,13 @@ void py_ydwl_poc_init(init_cb cb)
        }
     cb((int)ydwl_poc_is_init);
 }
+
+void py_ydwl_tts_init(ydwl_tts_cb_type usr_cb) {
+    Helios_ydwl_tts_init(usr_cb);
+}
+
+void py_ydwl_tts_play(const char* string, unsigned int len) {
+    Helios_ydwl_tts_play(string, len);
+}
+
+
index 8e952df..384631a 100644 (file)
@@ -35,4 +35,4 @@
 #define CONFIG_LVGL_SPINBOX 1
 #define CONFIG_LVGL_QRCODE 1
 #define CONFIG_LVGL_TILEVIEW 1
-#define CONFIG_LVGL_HANDLER_TASK_PRIORITY 90
+#define CONFIG_LVGL_HANDLER_TASK_PRIORITY 80
index 34a8792..aa98ec6 100644 (file)
@@ -44,7 +44,7 @@ CONFIG_LVGL_MSGBOX=y
 # CONFIG_LVGL_COLORWHEEL is not set
 CONFIG_LVGL_KEYBOARD=y
 CONFIG_LVGL_SPAN=y
-CONFIG_LVGL_HANDLER_TASK_PRIORITY=90
+CONFIG_LVGL_HANDLER_TASK_PRIORITY=80
 # CONFIG_QRCODE is not set
 # CONFIG_CAMERA is not set
 # CONFIG_QUECTHING is not set
index a5208b2..e2fd751 100644 (file)
@@ -42,6 +42,10 @@ int Helios_Flash_Erase(uint32_t addr, size_t size);
 int Helios_External_Flash_Read(int port, uint32_t addr, void *buffer, size_t size);
 #endif
 
+#if defined(BOARD_EC600MCN_CC_EXT)
+int Helios_Flash_Fs_Format(char *parti_name);
+#endif
+
 #ifdef CONFIG_SPINAND
 
 typedef unsigned int FILE_ID;
index a7e0778..5bf43bc 100644 (file)
@@ -82,6 +82,9 @@ typedef enum {
         uint32_t light_level_data_len;
         uint8_t te_sel;
         uint32_t te_pin;
+#if defined(BOARD_EC600MCN_LF_SLPOC)
+        uint8_t is_logo_exist;
+#endif
  }Helios_LCDInitStruct;
 
 
index 8af4cb5..9527b1e 100644 (file)
@@ -190,7 +190,7 @@ void Helios_WLAN_5803W_InitDriver(void);
 
 void Helios_WLAN_5803W_Get_DataSpeed(uint32_t *rx, uint32_t *tx);
 
-void Helios_WLAN_5803W_Get_ConnectionList(int *device_num, char device_list[][18]);
+void Helios_WLAN_5803W_Get_ConnectionList(int *output_num, Helios_WLAN_5803W_DeviceInfo_t **output_list);
 
 int Helios_WLAN_5803W_SetMAC(char *mac);
 
index 929c37b..ff4db35 100644 (file)
@@ -729,6 +729,13 @@ STATIC mp_obj_t MP_VFS_LFSx(mount)(mp_obj_t self_in, mp_obj_t readonly, mp_obj_t
         {
             mp_raise_ValueError("format fail");
         }
+    }
+    #elif defined(BOARD_EC600MCN_CC_EXT)
+    MP_OBJ_VFS_LFSx *self = MP_OBJ_TO_PTR(self_in);
+
+    if (mp_obj_is_true(mkfs)) 
+       {
+        Helios_Flash_Fs_Format(self->partition_name);
     }
        #endif
 #else
index 8fe14ec..23c2c25 100644 (file)
@@ -6,7 +6,7 @@ menu "LVGL configuration"
     # without lv_conf.h file, the lv_conf_internal.h and
     # lv_conf_kconfig.h files are used instead.
     config LV_CONF_SKIP
-        bool
+        bool "Uncheck this to use custom lv_conf.h"
         default y
 
     config LV_CONF_MINIMAL
@@ -42,11 +42,9 @@ menu "LVGL configuration"
 
         config LV_COLOR_SCREEN_TRANSP
             bool "Enable more complex drawing routines to manage screens transparency."
-            depends on LV_COLOR_DEPTH_32
             help
                 Can be used if the UI is above another layer, e.g. an OSD menu or video player.
-                Requires `LV_COLOR_DEPTH = 32` colors and the screen's `bg_opa` should be set to
-                non LV_OPA_COVER value
+                The screen's `bg_opa` should be set to non LV_OPA_COVER value
 
         config LV_COLOR_MIX_ROUND_OFS
             int "Adjust color mix functions rounding"
@@ -156,6 +154,15 @@ menu "LVGL configuration"
                     radiuses are saved).
                     Set to 0 to disable caching.
 
+            config LV_LAYER_SIMPLE_BUF_SIZE
+                int "Optimal size to buffer the widget with opacity"
+                default 24576
+                help
+                    "Simple layers" are used when a widget has `style_opa < 255`
+                    to buffer the widget into a layer and blend it as an image
+                    with the given opacity. Note that `bg_opa`, `text_opa` etc
+                    don't require buffering into layer.
+
             config LV_IMG_CACHE_DEF_SIZE
                 int "Default image cache size. 0 to disable caching."
                 default 0
@@ -205,8 +212,11 @@ menu "LVGL configuration"
         endmenu
 
         menu "GPU"
-            config LV_USE_EXTERNAL_RENDERER
-                bool
+            config LV_USE_GPU_ARM2D
+                bool "Enable Arm's 2D image processing library (Arm-2D) for all Cortex-M processors."
+                default n
+                help
+                    Must deploy arm-2d library to your project and add include PATH for "arm_2d.h".
 
             config LV_USE_GPU_STM32_DMA2D
                 bool "Enable STM32 DMA2D (aka Chrom Art) GPU."
@@ -218,6 +228,26 @@ menu "LVGL configuration"
                     Must be defined to include path of CMSIS header of target processor
                     e.g. "stm32f769xx.h" or "stm32f429xx.h"
 
+            config LV_USE_GPU_RA6M3_G2D
+                bool "Enable RA6M3 G2D GPU."
+            config LV_GPU_RA6M3_G2D_INCLUDE
+                string "include path of target processor"
+                depends on LV_USE_GPU_RA6M3_G2D
+                default "hal_data.h"
+                help
+                    Must be defined to include path of target processor
+                    e.g. "hal_data.h"
+
+            config LV_USE_GPU_SWM341_DMA2D
+                bool "Enable SWM341 DMA2D GPU."
+            config LV_GPU_SWM341_DMA2D_INCLUDE
+                string "include path of CMSIS header of target processor"
+                depends on LV_USE_GPU_SWM341_DMA2D
+                default "SWM341.h"
+                help
+                    Must be defined to include path of CMSIS header of target processor
+                    e.g. "SWM341.h"
+
             config LV_USE_GPU_NXP_PXP
                 bool "Use NXP's PXP GPU iMX RTxxx platforms."
             config LV_USE_GPU_NXP_PXP_AUTO_INIT
@@ -238,12 +268,17 @@ menu "LVGL configuration"
 
             config LV_USE_GPU_SDL
                 bool "Use SDL renderer API"
-                select LV_USE_EXTERNAL_RENDERER
                 default n
             config LV_GPU_SDL_INCLUDE_PATH
                 string "include path of SDL header"
                 depends on LV_USE_GPU_SDL
                 default "SDL2/SDL.h"
+            config LV_GPU_SDL_LRU_SIZE
+                int "Maximum buffer size to allocate for rotation"
+                depends on LV_USE_GPU_SDL
+                default 8388608
+                help
+                    Texture cache size, 8MB by default.
         endmenu
 
         menu "Logging"
@@ -374,7 +409,7 @@ menu "LVGL configuration"
                     bool "Left middle"
                 config LV_PERF_MONITOR_ALIGN_RIGHT_MID
                     bool "Right middle"
-                config LV_PERF_MONITOR_ALIGN_BOTTOM_CENTER
+                config LV_PERF_MONITOR_ALIGN_CENTER
                     bool "Center"
             endchoice
 
@@ -403,7 +438,7 @@ menu "LVGL configuration"
                     bool "Left middle"
                 config LV_MEM_MONITOR_ALIGN_RIGHT_MID
                     bool "Right middle"
-                config LV_MEM_MONITOR_ALIGN_BOTTOM_CENTER
+                config LV_MEM_MONITOR_ALIGN_CENTER
                     bool "Center"
             endchoice
 
@@ -628,6 +663,10 @@ menu "LVGL configuration"
                 Set the pixel order of the display.
                 Important only if "subpx fonts" are used.
                 With "normal" font it doesn't matter.
+
+        config LV_USE_FONT_PLACEHOLDER
+            bool "Enable drawing placeholders when glyph dsc is not found."
+            default y
     endmenu
 
     menu "Text Settings"
@@ -715,6 +754,7 @@ menu "LVGL configuration"
             default y if !LV_CONF_MINIMAL
         config LV_USE_CANVAS
             bool "Canvas. Dependencies: lv_img."
+            select LV_USE_IMG
             default y if !LV_CONF_MINIMAL
         config LV_USE_CHECKBOX
             bool "Check Box"
@@ -814,6 +854,13 @@ menu "LVGL configuration"
         config LV_USE_MSGBOX
             bool "Msgbox."
             default y if !LV_CONF_MINIMAL
+        config LV_USE_SPAN
+            bool "span"
+            default y if !LV_CONF_MINIMAL
+        config LV_SPAN_SNIPPET_STACK_SIZE
+            int "Maximum number of span descriptor"
+            default 64
+            depends on LV_USE_SPAN
         config LV_USE_SPINBOX
             bool "Spinbox."
             default y if !LV_CONF_MINIMAL
@@ -829,19 +876,12 @@ menu "LVGL configuration"
         config LV_USE_WIN
             bool "Win"
             default y if !LV_CONF_MINIMAL
-        config LV_USE_SPAN
-            bool "span"
-            default y if !LV_CONF_MINIMAL
-        config LV_SPAN_SNIPPET_STACK_SIZE
-            int "Maximum number of span descriptor"
-            default 64
-            depends on LV_USE_SPAN
     endmenu
 
     menu "Themes"
         config LV_USE_THEME_DEFAULT
             bool "A simple, impressive and very complete theme"
-            default y if !LV_CONF_MINIMAL
+            default y if !LV_COLOR_DEPTH_1 && !LV_CONF_MINIMAL
         config LV_THEME_DEFAULT_DARK
             bool "Yes to set dark mode, No to set light mode"
             depends on LV_USE_THEME_DEFAULT
@@ -855,7 +895,10 @@ menu "LVGL configuration"
             depends on LV_USE_THEME_DEFAULT
         config LV_USE_THEME_BASIC
             bool "A very simple theme that is a good starting point for a custom theme"
-            default y if !LV_CONF_MINIMAL
+            default y if !LV_COLOR_DEPTH_1 && !LV_CONF_MINIMAL
+        config LV_USE_THEME_MONO
+            bool "Monochrome theme, suitable for some E-paper & dot matrix displays"
+            default y if LV_COLOR_DEPTH_1 && !LV_CONF_MINIMAL
     endmenu
 
     menu "Layouts"
@@ -871,53 +914,55 @@ menu "LVGL configuration"
         config LV_USE_FS_STDIO
             bool "File system on top of stdio API"
         config LV_FS_STDIO_LETTER
-            string "Set an upper cased letter on which the drive will accessible (e.g. 'A' i.e. 65 )"
-            depends on LV_USE_FS_STDIO != 0
+            int "Set an upper cased letter on which the drive will accessible (e.g. 'A' i.e. 65 )"
+            default 0
+            depends on LV_USE_FS_STDIO
         config LV_FS_STDIO_PATH
             string "Set the working directory"
-            depends on LV_USE_FS_STDIO != 0
+            depends on LV_USE_FS_STDIO
         config LV_FS_STDIO_CACHE_SIZE
-            string ">0 to cache this number of bytes in lv_fs_read()"
-            depends on LV_USE_FS_STDIO != 0
+            int ">0 to cache this number of bytes in lv_fs_read()"
+            default 0
+            depends on LV_USE_FS_STDIO
 
         config LV_USE_FS_POSIX
             bool "File system on top of posix API"
         config LV_FS_POSIX_LETTER
             int "Set an upper cased letter on which the drive will accessible (e.g. 'A' i.e. 65)"
             default 0
-            depends on LV_USE_FS_POSIX != 0
+            depends on LV_USE_FS_POSIX
         config LV_FS_POSIX_PATH
             string "Set the working directory"
-            depends on LV_USE_FS_POSIX != 0
+            depends on LV_USE_FS_POSIX
         config LV_FS_POSIX_CACHE_SIZE
             int ">0 to cache this number of bytes in lv_fs_read()"
             default 0
-            depends on LV_USE_FS_POSIX != 0
+            depends on LV_USE_FS_POSIX
 
         config LV_USE_FS_WIN32
             bool "File system on top of Win32 API"
         config LV_FS_WIN32_LETTER
             int "Set an upper cased letter on which the drive will accessible (e.g. 'A' i.e. 65)"
             default 0
-            depends on LV_USE_FS_WIN32 != 0
+            depends on LV_USE_FS_WIN32
         config LV_FS_WIN32_PATH
             string "Set the working directory"
-            depends on LV_USE_FS_WIN32 != 0
+            depends on LV_USE_FS_WIN32
         config LV_FS_WIN32_CACHE_SIZE
             int ">0 to cache this number of bytes in lv_fs_read()"
             default 0
-            depends on LV_USE_FS_WIN32 != 0
+            depends on LV_USE_FS_WIN32
 
         config LV_USE_FS_FATFS
             bool "File system on top of FatFS"
         config LV_FS_FATFS_LETTER
             int "Set an upper cased letter on which the drive will accessible (e.g. 'A' i.e. 65)"
             default 0
-            depends on LV_USE_FS_FATFS != 0
+            depends on LV_USE_FS_FATFS
         config LV_FS_FATFS_CACHE_SIZE
             int ">0 to cache this number of bytes in lv_fs_read()"
             default 0
-            depends on LV_USE_FS_FATFS != 0
+            depends on LV_USE_FS_FATFS
 
         config LV_USE_PNG
             bool "PNG decoder library"
@@ -960,8 +1005,8 @@ menu "LVGL configuration"
 
         config LV_USE_FFMPEG
             bool "FFmpeg library"
-        config LV_FFMPEG_AV_DUMP_FORMAT
-            bool "Dump av format"
+        config LV_FFMPEG_DUMP_FORMAT
+            bool "Dump format"
             depends on LV_USE_FFMPEG
             default n
     endmenu
@@ -974,6 +1019,47 @@ menu "LVGL configuration"
         config LV_USE_MONKEY
             bool "Enable Monkey test"
             default n
+
+        config LV_USE_GRIDNAV
+            bool "Enable grid navigation"
+            default n
+
+        config LV_USE_FRAGMENT
+            bool "Enable lv_obj fragment"
+            default n
+
+        config LV_USE_IMGFONT
+            bool "draw img in label or span obj"
+            default n
+
+        config LV_USE_MSG
+            bool "Enable a published subscriber based messaging system"
+            default n
+
+        config LV_USE_IME_PINYIN
+            bool "Enable Pinyin input method"
+            default n
+        config LV_IME_PINYIN_USE_K9_MODE
+            bool "Enable Pinyin input method 9 key input mode"
+            depends on LV_USE_IME_PINYIN
+            default n
+        config LV_IME_PINYIN_K9_CAND_TEXT_NUM
+            int "Maximum number of candidate panels for 9-key input mode"
+            depends on LV_IME_PINYIN_USE_K9_MODE
+            default 3
+        config LV_IME_PINYIN_USE_DEFAULT_DICT
+            bool "Use built-in Thesaurus"
+            depends on LV_USE_IME_PINYIN
+            default y
+            help
+                If you do not use the default thesaurus, be sure to use lv_ime_pinyin after setting the thesauruss
+        config LV_IME_PINYIN_CAND_TEXT_NUM
+            int "Maximum number of candidate panels"
+            depends on LV_USE_IME_PINYIN
+            default 6
+            help
+                Set the maximum number of candidate panels that can be displayed.
+                This needs to be adjusted according to the size of the screen.
     endmenu
 
     menu "Examples"
@@ -998,6 +1084,10 @@ menu "LVGL configuration"
         config LV_USE_DEMO_BENCHMARK
             bool "Benchmark your system"
             default n
+        config LV_DEMO_BENCHMARK_RGB565A8
+            bool "Use RGB565A8 images with 16 bit color depth instead of ARGB8565"
+            depends on LV_USE_DEMO_BENCHMARK
+            default n
 
         config LV_USE_DEMO_STRESS
             bool "Stress test for LVGL"
index e8a452e..aea07a8 100644 (file)
@@ -17,7 +17,7 @@ LVGL provides everything you need to create an embedded GUI with easy-to-use gra
 </h4>
 
 
-**English** | [中文](./README_zh.md) |
+**English** | [中文](./README_zh.md) | [Português do Brasil](./README_pt_BR.md)
 
 
 ---
@@ -40,11 +40,11 @@ LVGL provides everything you need to create an embedded GUI with easy-to-use gra
 * Multi-language support with UTF-8 handling, CJK, Bidirectional and Arabic script support
 * Fully customizable graphical elements via [CSS-like styles](https://docs.lvgl.io/master/overview/style.html)
 * Powerful layouts inspired by CSS: [Flexbox](https://docs.lvgl.io/master/layouts/flex.html) and [Grid](https://docs.lvgl.io/master/layouts/grid.html)
-* OS, External memory and GPU are supported but not required. (built in support for STM32 DMA2D, and NXP PXP and VGLite)
+* OS, External memory and GPU are supported but not required. (built in support for STM32 DMA2D, SWM341 DMA2D, and NXP PXP and VGLite)
 * Smooth rendering even with a [single frame buffer](https://docs.lvgl.io/master/porting/display.html)
 * Written in C and compatible with C++
 * Micropython Binding exposes [LVGL API in Micropython](https://blog.lvgl.io/2019-02-20/micropython-bindings)
-* [Simulator](https://docs.lvgl.io/master/get-started/pc-simulator.html) to develop on PC without embedded hardware
+* [Simulator](https://docs.lvgl.io/master/get-started/platforms/pc-simulator.html) to develop on PC without embedded hardware
 * 100+ simple [Examples](https://github.com/lvgl/lvgl/tree/master/examples)
 * [Documentation](http://docs.lvgl.io/) and API references online and in PDF
 
@@ -93,26 +93,27 @@ Basically, every modern controller (which is able to drive a display) is suitabl
 *Note that the memory usage might vary depending on the architecture, compiler and build options.*
 
 ### Supported platforms
-LVGL is completely platform independent and can be used with any MCU that fulfills the requirements. 
+LVGL is completely platform independent and can be used with any MCU that fulfills the requirements.
 Just to mention some platforms:
 - NXP: Kinetis, LPC, iMX, iMX RT
 - STM32F1, STM32F3, STM32F4, STM32F7, STM32L4, STM32L5, STM32H7
 - Microchip dsPIC33, PIC24, PIC32MX, PIC32MZ
 - [Linux frame buffer](https://blog.lvgl.io/2018-01-03/linux_fb) (/dev/fb)
-- [Raspberry Pi](http://www.vk3erw.com/index.php/16-software/63-raspberry-pi-official-7-touchscreen-and-littlevgl)
+- [Raspberry Pi](https://github.com/lvgl/lv_port_linux_frame_buffer)
 - [Espressif ESP32](https://github.com/lvgl/lv_port_esp32)
 - [Infineon Aurix](https://github.com/lvgl/lv_port_aurix)
 - Nordic NRF52 Bluetooth modules
 - Quectel modems
+- [SYNWIT SWM341](http://www.synwit.cn/)
 
 LVGL is also available as:
-- [Arduino library](https://docs.lvgl.io/master/get-started/arduino.html)
-- [PlatformIO package](https://platformio.org/lib/show/12440/lvgl)
+- [Arduino library](https://docs.lvgl.io/master/get-started/platforms/arduino.html)
+- [PlatformIO package](https://registry.platformio.org/libraries/lvgl/lvgl)
 - [Zephyr library](https://docs.zephyrproject.org/latest/reference/kconfig/CONFIG_LVGL.html)
-- [ESP32 component](https://docs.lvgl.io/master/get-started/espressif.html)
+- [ESP32 component](https://docs.lvgl.io/master/get-started/platforms/espressif.html)
 - [NXP MCUXpresso component](https://www.nxp.com/design/software/embedded-software/lvgl-open-source-graphics-library:LITTLEVGL-OPEN-SOURCE-GRAPHICS-LIBRARY)
-- [NuttX library](https://docs.lvgl.io/master/get-started/nuttx.html)
-- [RT-Thread RTOS](https://docs.lvgl.io/master/get-started/rt-thread.html)
+- [NuttX library](https://docs.lvgl.io/master/get-started/os/nuttx.html)
+- [RT-Thread RTOS](https://docs.lvgl.io/master/get-started/os/rt-thread.html)
 
 
 ## Get started
@@ -120,7 +121,7 @@ This list shows the recommended way of learning the library:
 1. Check the [Online demos](https://lvgl.io/demos) to see LVGL in action (3 minutes)
 2. Read the [Introduction](https://docs.lvgl.io/master/intro/index.html) page of the documentation (5 minutes)
 3. Get familiar with the basics on the [Quick overview](https://docs.lvgl.io/master/get-started/quick-overview.html) page (15 minutes)
-4. Set up a [Simulator](https://docs.lvgl.io/master/get-started/pc-simulator.html) (10 minutes)
+4. Set up a [Simulator](https://docs.lvgl.io/master/get-started/platforms/pc-simulator.html) (10 minutes)
 5. Try out some [Examples](https://github.com/lvgl/lvgl/tree/master/examples)
 6. Port LVGL to a board. See the [Porting](https://docs.lvgl.io/master/porting/index.html) guide or check the ready to use [Projects](https://github.com/lvgl?q=lv_port_)
 7. Read the [Overview](https://docs.lvgl.io/master/overview/index.html) page to get a better understanding of the library (2-3 hours)
@@ -152,7 +153,7 @@ void btn_event_cb(lv_event_t * e)
 }
 ```
 ### Micropython
-Learn more about [Micropython](https://docs.lvgl.io/master/get-started/micropython.html).
+Learn more about [Micropython](https://docs.lvgl.io/master/get-started/bindings/micropython.html).
 ```python
 def btn_event_cb(e):
   print("Clicked")
index f8ede37..cac080d 100644 (file)
@@ -20,7 +20,7 @@ LVGL是一个高度可裁剪、低资源占用、界面美观且易用的嵌入
 </h4>
 
 
-[English](./README.md) | **中文** |
+[English](./README.md) | **中文** | [Português do Brasil](./README_pt_BR.md)
 
 
 ---
@@ -42,11 +42,11 @@ LVGL是一个高度可裁剪、低资源占用、界面美观且易用的嵌入
 * 配置可裁剪(最低资源占用:64 kB Flash,16 kB RAM)
 * 基于UTF-8的多语种支持,例如中文、日文、韩文、阿拉伯文等
 * 可以通过[类CSS](https://docs.lvgl.io/master/overview/style.html)的方式来设计、布局图形界面(例如:[Flexbox](https://docs.lvgl.io/master/layouts/flex.html)、[Grid](https://docs.lvgl.io/master/layouts/grid.html))
-* 支持操作系统、外置内存、以及硬件加速(LVGL已内建支持STM32 DMA2D、NXP PXP和VGLite)
+* 支持操作系统、外置内存、以及硬件加速(LVGL已内建支持STM32 DMA2D、SWM341 DMA2D、NXP PXP和VGLite)
 * 即便仅有[单缓冲区(frame buffer)](https://docs.lvgl.io/master/porting/display.html)的情况下,也可保证渲染如丝般顺滑
 * 全部由C编写完成,并支持C++调用
 * 支持Micropython编程,参见:[LVGL API in Micropython](https://blog.lvgl.io/2019-02-20/micropython-bindings)
-* 支持[模拟器](https://docs.lvgl.io/master/get-started/pc-simulator.html)仿真,可以无硬件依托进行开发
+* 支持[模拟器](https://docs.lvgl.io/master/get-started/platforms/pc-simulator.html)仿真,可以无硬件依托进行开发
 * 丰富详实的[例程](https://github.com/lvgl/lvgl/tree/master/examples)
 * 详尽的[文档](http://docs.lvgl.io/)以及API参考手册,可线上查阅或可下载为PDF格式
 
@@ -95,7 +95,7 @@ LVGL是一个高度可裁剪、低资源占用、界面美观且易用的嵌入
 *注意:资源占用情况与具体硬件平台、编译器等因素有关,上表中仅给出参考值*
 
 ### 已经支持的平台
-LVGL本身并不依赖特定的硬件平台,任何满足LVGL硬件配置要求的微控制器均可运行LVGL。 
+LVGL本身并不依赖特定的硬件平台,任何满足LVGL硬件配置要求的微控制器均可运行LVGL。
 如下仅列举其中一部分:
 
 - NXP: Kinetis, LPC, iMX, iMX RT
@@ -107,14 +107,15 @@ LVGL本身并不依赖特定的硬件平台,任何满足LVGL硬件配置要求
 - [Infineon Aurix](https://github.com/lvgl/lv_port_aurix)
 - Nordic NRF52 Bluetooth modules
 - Quectel modems
+- [SYNWIT SWM341](https://www.synwit.cn/)
 
 LVGL也支持:
-- [Arduino library](https://docs.lvgl.io/master/get-started/arduino.html)
+- [Arduino library](https://docs.lvgl.io/master/get-started/platforms/arduino.html)
 - [PlatformIO package](https://platformio.org/lib/show/12440/lvgl)
 - [Zephyr library](https://docs.zephyrproject.org/latest/reference/kconfig/CONFIG_LVGL.html)
-- [ESP32 component](https://docs.lvgl.io/master/get-started/espressif.html)
+- [ESP32 component](https://docs.lvgl.io/master/get-started/platforms/espressif.html)
 - [NXP MCUXpresso component](https://www.nxp.com/design/software/embedded-software/lvgl-open-source-graphics-library:LITTLEVGL-OPEN-SOURCE-GRAPHICS-LIBRARY)
-- [NuttX library](https://docs.lvgl.io/master/get-started/nuttx.html)
+- [NuttX library](https://docs.lvgl.io/master/get-started/os/nuttx.html)
 - [RT-Thread RTOS](https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/packages-manual/lvgl-docs/introduction)
 
 
@@ -123,7 +124,7 @@ LVGL也支持:
 1. 使用[网页在线例程](https://lvgl.io/demos)来体验LVGL(3分钟)
 2. 阅读文档[简介](https://docs.lvgl.io/master/intro/index.html)章节来初步了解LVGL(5分钟)
 3. 再来阅读一下文档快速[快速概览](https://docs.lvgl.io/master/get-started/quick-overview.html)章节来了解LVGL的基本知识(15分钟)
-4. 学习如何使用[模拟器](https://docs.lvgl.io/master/get-started/pc-simulator.html)来在电脑上仿真LVGL(10分钟)
+4. 学习如何使用[模拟器](https://docs.lvgl.io/master/get-started/platforms/pc-simulator.html)来在电脑上仿真LVGL(10分钟)
 5. 试着动手实践一些[例程](https://github.com/lvgl/lvgl/tree/master/examples)
 6. 参考[移植指南](https://docs.lvgl.io/master/porting/index.html)尝试将LVGL移植到一块开发板上,LVGL也已经提供了一些移植好的[工程](https://github.com/lvgl?q=lv_port_)
 7. 仔细阅读文档[总览](https://docs.lvgl.io/master/overview/index.html)章节来更加深入的了解和熟悉LVGL(2-3小时)
@@ -155,7 +156,7 @@ void btn_event_cb(lv_event_t * e)
 }
 ```
 ### Micropython
-更多信息请到 [Micropython官网](https://docs.lvgl.io/master/get-started/micropython.html) 查询.
+更多信息请到 [Micropython官网](https://docs.lvgl.io/master/get-started/bindings/micropython.html) 查询.
 ```python
 def btn_event_cb(e):
   print("Clicked")
@@ -190,4 +191,3 @@ LVGL是一个开源项目,非常欢迎您参与到社区贡献当中。您有
 - 修复bug
 
 请参见文档[如何向社区贡献](https://docs.lvgl.io/master/CONTRIBUTING.html)章节来获取更多信息。
-
index c44bdc9..d894ee3 100644 (file)
@@ -1,7 +1,7 @@
 # Demos for LVGL
 
 ## Add the examples to your projects
-1. demos can be found in the 'demos' folder once you clone the lvgl. 
+1. demos can be found in the 'demos' folder once you clone the lvgl.
 
 2. In the ***lv_conf.h*** or equivalent places, you can find demo related macros, change its value to enable or disable specified demos:
 
@@ -38,7 +38,7 @@
 ...
 ```
 
-3. If your development environment or toolchain does not add source files inside '***lvgl***' folder automatically, ensure the `demos` folder is included for compilation.  
+3. If your development environment or toolchain does not add source files inside '***lvgl***' folder automatically, ensure the `demos` folder is included for compilation.
 4. Include "***demos/lv_demos.h***" in your application source file, for example:
 
 ```c
 ## Demos
 
 ### Widgets
-Shows how the widgets look like out of the box using the built-in material theme.  
+Shows how the widgets look like out of the box using the built-in material theme.
 
-See in [lv_demo_widgets](https://github.com/lvgl/lv_examples/tree/master/src/lv_demo_widgets) folder.
+See in [widgets](https://github.com/lvgl/lvgl/tree/master/demos/widgets) folder.
 
-<img src="https://github.com/lvgl/lv_examples/blob/master/src/lv_demo_widgets/screenshot1.png?raw=true" width=600px alt="Basic demo to show the widgets of LVGL">
+<img src="https://github.com/lvgl/lvgl/tree/master/demos/widgets/screenshot1.png?raw=true" width=600px alt="Basic demo to show the widgets of LVGL">
 
 For running this demo properly, please make sure **LV_MEM_SIZE** is at least **38KB** (and **48KB** is recommended):
 
@@ -68,29 +68,29 @@ For running this demo properly, please make sure **LV_MEM_SIZE** is at least **3
 
 
 ### Music player
-The music player demo shows what kind of modern, smartphone-like user interfaces can be created on LVGL. It works the best with display with 480x272 or 272x480 resolution. 
+The music player demo shows what kind of modern, smartphone-like user interfaces can be created on LVGL. It works the best with display with 480x272 or 272x480 resolution.
 
-See in [lv_demo_music](https://github.com/lvgl/lv_examples/tree/master/src/lv_demo_music) folder.
+See in [music](https://github.com/lvgl/lvgl/tree/master/demos/music) folder.
 
-<img src="https://github.com/lvgl/lv_examples/blob/master/src/lv_demo_music/screenshot1.gif?raw=true" width=600px alt="Music player demo with LVGL">
+<img src="https://github.com/lvgl/lvgl/tree/master/demos/music/screenshot1.gif?raw=true" width=600px alt="Music player demo with LVGL">
 
 ### Keypad and encoder
-LVGL allows you to control the widgets with a keypad and/or encoder without a touchpad. This demo shows how to handle buttons, drop-down lists, rollers, sliders, switches, and text inputs without touchpad. 
-Learn more about the touchpad-less usage of LVGL [here](https://docs.lvgl.io/v7/en/html/overview/indev.html#keypad-and-encoder).
+LVGL allows you to control the widgets with a keypad and/or encoder without a touchpad. This demo shows how to handle buttons, drop-down lists, rollers, sliders, switches, and text inputs without touchpad.
+Learn more about the touchpad-less usage of LVGL [here](https://docs.lvgl.io/master/overview/indev.html#keypad-and-encoder).
 
-See in [lv_demo_keypad_encoder](https://github.com/lvgl/lv_examples/tree/master/src/lv_demo_keypad_encoder) folder.
+See in [keypad_encoder](https://github.com/lvgl/lvgl/tree/master/demos/keypad_encoder) folder.
 
-<img src="https://github.com/lvgl/lv_examples/blob/master/src/lv_demo_keypad_encoder/screenshot1.png?raw=true" width=600px alt="Keypad and encoder navigation in LVGL embedded GUI library">
+<img src="https://github.com/lvgl/lvgl/tree/master/demos/keypad_encoder/screenshot1.png?raw=true" width=600px alt="Keypad and encoder navigation in LVGL embedded GUI library">
 
 ### Benchmark
-A demo to measure the performance of LVGL or to compare different settings. 
-See in [lv_demo_benchmark](https://github.com/lvgl/lv_examples/tree/master/src/lv_demo_benchmark) folder.
-<img src="https://github.com/lvgl/lv_examples/blob/master/src/lv_demo_benchmark/screenshot1.png?raw=true" width=600px alt="Benchmark demo with LVGL embedded GUI library">
+A demo to measure the performance of LVGL or to compare different settings.
+See in [benchmark](https://github.com/lvgl/lvgl/tree/master/demos/benchmark) folder.
+<img src="https://github.com/lvgl/lvgl/tree/master/demos/benchmark/screenshot1.png?raw=true" width=600px alt="Benchmark demo with LVGL embedded GUI library">
 
 ### Stress
-A stress test for LVGL. It contains a lot of object creation, deletion, animations, style usage, and so on. It can be used if there is any memory corruption during heavy usage or any memory leaks. 
-See in [lv_demo_stress](https://github.com/lvgl/lv_examples/tree/master/src/lv_demo_stress) folder.
-<img src="https://github.com/lvgl/lv_examples/blob/master/src/lv_demo_stress/screenshot1.png?raw=true" width=600px alt="Stress test for LVGL">
+A stress test for LVGL. It contains a lot of object creation, deletion, animations, style usage, and so on. It can be used if there is any memory corruption during heavy usage or any memory leaks.
+See in [stress](https://github.com/lvgl/lvgl/tree/master/demos/stress) folder.
+<img src="https://github.com/lvgl/lvgl/tree/master/demos/stress/screenshot1.png?raw=true" width=600px alt="Stress test for LVGL">
 
 ## Contributing
 For contribution and coding style guidelines, please refer to the file docs/CONTRIBUTING.md in the main LVGL repo:
index 7e7c076..c913ae0 100644 (file)
 
 ## Overview
 
-The benchmark demo tests the performance in various cases. 
-For example rectangle, border, shadow, text, image blending, image transformation, blending modes, etc. 
+The benchmark demo tests the performance in various cases.
+For example rectangle, border, shadow, text, image blending, image transformation, blending modes, etc.
 All tests are repeated with 50% opacity.
 
-The size and position of the objects during testing are set with a pseudo random number to make the benchmark repeatable. 
+The size and position of the objects during testing are set with a pseudo random number to make the benchmark repeatable.
 
 On to top of the screen the title of the current test step, and the result of the previous step is displayed.
 
 ## Run the benchmark
 - In `lv_conf.h` or equivalent places set `LV_USE_DEMO_BENCHMARK 1`
 - After `lv_init()` and initializing the drivers call `lv_demo_benchmark()`
+- If you only want to run a specific scene for any purpose (e.g. debug, performance optimization etc.), you can call `lv_demo_benchmark_run_scene()` instead of `lv_demo_benchmark()`and pass the scene number.
+- If you enabled trace output by setting macro `LV_USE_LOG` to `1` and trace level `LV_LOG_LEVEL` to `LV_LOG_LEVEL_USER` or higher, benchmark results are printed out in `csv` format.
+- If you want to know when the testing is finished, you can register a callback function via `lv_demo_benchmark_register_finished_handler()` before calling `lv_demo_benchmark()` or `lv_demo_benchmark_run_scene()`. 
+- If you want to know the maximum rendering performance of the system, call `lv_demo_benchmark_set_max_speed(true)` before `lv_demo_benchmark()`.
 
 ## Interpret the result
 
 The FPS is measured like this:
 - load the next step
-- in the display driver's `monitor_cb` accumulate the time-to-render and the number of cycles 
+- in the display driver's `monitor_cb` accumulate the time-to-render and the number of cycles
 - measure for 1 second
 - calculate `FPS = time_sum / render_cnt`
 
-Note that it can result in very high FPS results for simple cases. 
-E.g. if some simple rectangles are drawn in 5 ms, the benchmark will tell it's 200 FPS. 
-So it ignores `LV_DISP_REFR_PERIOD` which tells LVGL how often it should refresh the screen. 
+Note that it can result in very high FPS results for simple cases.
+E.g. if some simple rectangles are drawn in 5 ms, the benchmark will tell it's 200 FPS.
+So it ignores `LV_DISP_REFR_PERIOD` which tells LVGL how often it should refresh the screen.
 In other words, the benchmark shows the FPS from the pure rendering time.
 
 By default, only the changed areas are refreshed. It means if only a few pixels are changed in 1 ms the benchmark will show 1000 FPS. To measure the performance with full screen refresh uncomment `lv_obj_invalidate(lv_scr_act())` in `monitor_cb()` in `lv_demo_benchmark.c`.
 
-![LVGL benchmark running](https://github.com/lvgl/lv_examples/blob/master/src/lv_demo_benchmark/screenshot1.png?raw=true)
+![LVGL benchmark running](screenshot1.png)
 
+If you are doing performance analysis for 2D image processing optimization, LCD latency (flushing data to LCD) introduced by `disp_flush()` might dilute the performance results of the LVGL drawing process, hence make it harder to see your optimization results (gain or loss). To avoid such problem, please:
 
-## Result summary 
+1. Use a flag to control the LCD flushing inside `disp_flush()`. For example:
+
+```c
+volatile bool disp_flush_enabled = true;
+
+/* Enable updating the screen (the flushing process) when disp_flush() is called by LVGL
+ */
+void disp_enable_update(void)
+{
+    disp_flush_enabled = true;
+}
+
+/* Disable updating the screen (the flushing process) when disp_flush() is called by LVGL
+ */
+void disp_disable_update(void)
+{
+    disp_flush_enabled = false;
+}
+
+static void disp_flush(lv_disp_drv_t * disp_drv, const lv_area_t * area, lv_color_t * color_p)
+{
+    if(disp_flush_enabled) {
+        GLCD_DrawBitmap(area->x1,                   //!< x
+                        area->y1,                   //!< y
+                        area->x2 - area->x1 + 1,    //!< width
+                        area->y2 - area->y1 + 1,    //!< height
+                        (const uint8_t *)color_p);
+    }
+
+    /*IMPORTANT!!!
+     *Inform the graphics library that you are ready with the flushing*/
+    lv_disp_flush_ready(disp_drv);
+}
+```
+
+2. Disable flushing before calling `lv_demo_benchmark()` or `lv_demo_benchmark_run_scene()`, for example:
+
+```c
+extern void disp_enable_update(void);
+extern void disp_disable_update(void);
+
+static void on_benchmark_finished(void)
+{
+    disp_enable_update();
+}
+
+int main(void)
+{    
+    lv_init();
+    lv_port_disp_init();
+    lv_port_indev_init();
+
+    LV_LOG("Running LVGL Benchmark...");
+    LV_LOG("Please stand by...");
+    LV_LOG("NOTE: You will NOT see anything until the end.");
+
+    disp_disable_update();
+    
+    lv_demo_benchmark_set_finished_cb(&on_benchmark_finished);
+    lv_demo_benchmark_set_max_speed(true);
+    lv_demo_benchmark();
+    
+    //lv_demo_benchmark_run_scene(43);      // run scene no 31
+
+    ...
+    while(1){
+        lv_timer_handler();                 //! run lv task at the max speed
+    }
+}
+```
+
+
+
+3. Alternatively, you can use trace output to get the benchmark results in csv format by:
+   - Setting macro `LV_USE_LOG` to `1` 
+   - Setting trace level `LV_LOG_LEVEL` to `LV_LOG_LEVEL_USER` or higher.
+
+
+
+
+## Result summary
 In the end, a table is created to display measured FPS values.
 
-On top of the summary screen, the "Weighted FPS" value is shown. 
-In this, the result of the more common cases are taken into account with a higher weight. 
+On top of the summary screen, the "Weighted FPS" value is shown.
+In this, the result of the more common cases are taken into account with a higher weight.
 
-"Opa. speed" shows the speed of the measurements with opacity compared to full opacity. 
-E.g. "Opa. speed = 90%" means that rendering with opacity is 10% slower. 
+"Opa. speed" shows the speed of the measurements with opacity compared to full opacity.
+E.g. "Opa. speed = 90%" means that rendering with opacity is 10% slower.
 
 In the first section of the table, "Slow but common cases", those cases are displayed which are considered common but were slower than 20 FPS.
 
 Below this in the "All cases section" all the results are shown. The < 10 FPS results are shown with red, the >= 10 but < 20 FPS values are displayed with orange.
 
 
-![LVGL benchmark result summary](https://github.com/lvgl/lv_examples/blob/master/src/lv_demo_benchmark/screenshot2.png?raw=true)
+![LVGL benchmark result summary](https://github.com/lvgl/lvgl/tree/master/demos/benchmark/screenshot2.png?raw=true)
index a277ec4..4c49a1d 100644 (file)
 #define LINE_POINT_DIFF_MAX LV_MAX(LV_HOR_RES / (LINE_POINT_NUM + 2), LINE_POINT_DIFF_MIN * 2)
 #define ARC_WIDTH_THIN LV_MAX(LV_DPI_DEF / 50, 2)
 #define ARC_WIDTH_THICK LV_MAX(LV_DPI_DEF / 10, 5)
+
+#ifndef dimof
+    #define dimof(__array)     (sizeof(__array) / sizeof(__array[0]))
+#endif
+
 /**********************
  *      TYPEDEFS
  **********************/
@@ -56,7 +61,7 @@ typedef struct {
     uint32_t fps_normal;
     uint32_t fps_opa;
     uint8_t weight;
-}scene_dsc_t;
+} scene_dsc_t;
 
 /**********************
  *  STATIC PROTOTYPES
@@ -64,8 +69,16 @@ typedef struct {
 
 static lv_style_t style_common;
 static bool opa_mode = true;
-
-LV_IMG_DECLARE(img_benchmark_cogwheel_argb);
+static bool run_max_speed = false;
+static finished_cb_t * benchmark_finished_cb = NULL;
+static uint32_t disp_ori_timer_period;
+static uint32_t anim_ori_timer_period;
+
+#if LV_DEMO_BENCHMARK_RGB565A8 && LV_COLOR_DEPTH == 16
+    LV_IMG_DECLARE(img_benchmark_cogwheel_rgb565a8);
+#else
+    LV_IMG_DECLARE(img_benchmark_cogwheel_argb);
+#endif
 LV_IMG_DECLARE(img_benchmark_cogwheel_rgb);
 LV_IMG_DECLARE(img_benchmark_cogwheel_chroma_keyed);
 LV_IMG_DECLARE(img_benchmark_cogwheel_indexed16);
@@ -85,6 +98,7 @@ static void arc_create(lv_style_t * style);
 static void fall_anim(lv_obj_t * obj);
 static void rnd_reset(void);
 static int32_t rnd_next(int32_t min, int32_t max);
+static void report_cb(lv_timer_t * timer);
 
 static void rectangle_cb(void)
 {
@@ -248,8 +262,12 @@ static void img_argb_cb(void)
 {
     lv_style_reset(&style_common);
     lv_style_set_img_opa(&style_common, opa_mode ? LV_OPA_50 : LV_OPA_COVER);
-    img_create(&style_common, &img_benchmark_cogwheel_argb, false, false, false);
 
+#if LV_DEMO_BENCHMARK_RGB565A8 && LV_COLOR_DEPTH == 16
+    img_create(&style_common, &img_benchmark_cogwheel_rgb565a8, false, false, false);
+#else
+    img_create(&style_common, &img_benchmark_cogwheel_argb, false, false, false);
+#endif
 }
 
 static void img_ckey_cb(void)
@@ -290,7 +308,11 @@ static void img_argb_recolor_cb(void)
     lv_style_reset(&style_common);
     lv_style_set_img_opa(&style_common, opa_mode ? LV_OPA_50 : LV_OPA_COVER);
     lv_style_set_img_recolor_opa(&style_common, LV_OPA_50);
+#if LV_DEMO_BENCHMARK_RGB565A8 && LV_COLOR_DEPTH == 16
+    img_create(&style_common, &img_benchmark_cogwheel_rgb565a8, false, false, false);
+#else
     img_create(&style_common, &img_benchmark_cogwheel_argb, false, false, false);
+#endif
 }
 
 static void img_ckey_recolor_cb(void)
@@ -328,14 +350,22 @@ static void img_argb_rot_cb(void)
 {
     lv_style_reset(&style_common);
     lv_style_set_img_opa(&style_common, opa_mode ? LV_OPA_50 : LV_OPA_COVER);
+#if LV_DEMO_BENCHMARK_RGB565A8 && LV_COLOR_DEPTH == 16
+    img_create(&style_common, &img_benchmark_cogwheel_rgb565a8, true, false, false);
+#else
     img_create(&style_common, &img_benchmark_cogwheel_argb, true, false, false);
+#endif
 }
 
 static void img_argb_rot_aa_cb(void)
 {
     lv_style_reset(&style_common);
     lv_style_set_img_opa(&style_common, opa_mode ? LV_OPA_50 : LV_OPA_COVER);
+#if LV_DEMO_BENCHMARK_RGB565A8 && LV_COLOR_DEPTH == 16
+    img_create(&style_common, &img_benchmark_cogwheel_rgb565a8, true, false, true);
+#else
     img_create(&style_common, &img_benchmark_cogwheel_argb, true, false, true);
+#endif
 }
 
 static void img_rgb_zoom_cb(void)
@@ -359,7 +389,11 @@ static void img_argb_zoom_cb(void)
 {
     lv_style_reset(&style_common);
     lv_style_set_img_opa(&style_common, opa_mode ? LV_OPA_50 : LV_OPA_COVER);
+#if LV_DEMO_BENCHMARK_RGB565A8 && LV_COLOR_DEPTH == 16
+    img_create(&style_common, &img_benchmark_cogwheel_rgb565a8, false, true, false);
+#else
     img_create(&style_common, &img_benchmark_cogwheel_argb, false, true, false);
+#endif
 }
 
 
@@ -367,7 +401,11 @@ static void img_argb_zoom_aa_cb(void)
 {
     lv_style_reset(&style_common);
     lv_style_set_img_opa(&style_common, opa_mode ? LV_OPA_50 : LV_OPA_COVER);
+#if LV_DEMO_BENCHMARK_RGB565A8 && LV_COLOR_DEPTH == 16
+    img_create(&style_common, &img_benchmark_cogwheel_rgb565a8, false, true, true);
+#else
     img_create(&style_common, &img_benchmark_cogwheel_argb, false, true, true);
+#endif
 }
 
 static void txt_small_cb(void)
@@ -491,8 +529,11 @@ static void sub_img_cb(void)
     lv_style_reset(&style_common);
     lv_style_set_img_opa(&style_common, opa_mode ? LV_OPA_50 : LV_OPA_COVER);
     lv_style_set_blend_mode(&style_common, LV_BLEND_MODE_SUBTRACTIVE);
+#if LV_DEMO_BENCHMARK_RGB565A8 && LV_COLOR_DEPTH == 16
+    img_create(&style_common, &img_benchmark_cogwheel_rgb565a8, false, false, false);
+#else
     img_create(&style_common, &img_benchmark_cogwheel_argb, false, false, false);
-
+#endif
 }
 static void sub_line_cb(void)
 {
@@ -527,66 +568,67 @@ static void sub_text_cb(void)
 /**********************
  *  STATIC VARIABLES
  **********************/
+
 static scene_dsc_t scenes[] = {
-        {.name = "Rectangle",                    .weight = 30, .create_cb = rectangle_cb},
-        {.name = "Rectangle rounded",            .weight = 20, .create_cb = rectangle_rounded_cb},
-        {.name = "Circle",                       .weight = 10, .create_cb = rectangle_circle_cb},
-        {.name = "Border",                       .weight = 20, .create_cb = border_cb},
-        {.name = "Border rounded",               .weight = 30, .create_cb = border_rounded_cb},
-        {.name = "Circle border",                .weight = 10, .create_cb = border_circle_cb},
-        {.name = "Border top",                   .weight = 3, .create_cb = border_top_cb},
-        {.name = "Border left",                  .weight = 3, .create_cb = border_left_cb},
-        {.name = "Border top + left",            .weight = 3, .create_cb = border_top_left_cb},
-        {.name = "Border left + right",          .weight = 3, .create_cb = border_left_right_cb},
-        {.name = "Border top + bottom",          .weight = 3, .create_cb = border_top_bottom_cb},
-
-        {.name = "Shadow small",                 .weight = 3, .create_cb = shadow_small_cb},
-        {.name = "Shadow small offset",        .weight = 5, .create_cb = shadow_small_ofs_cb},
-        {.name = "Shadow large",                 .weight = 5, .create_cb = shadow_large_cb},
-        {.name = "Shadow large offset",        .weight = 3, .create_cb = shadow_large_ofs_cb},
-
-        {.name = "Image RGB",                    .weight = 20, .create_cb = img_rgb_cb},
-        {.name = "Image ARGB",                   .weight = 20, .create_cb = img_argb_cb},
-        {.name = "Image chorma keyed",           .weight = 5, .create_cb = img_ckey_cb},
-        {.name = "Image indexed",                .weight = 5, .create_cb = img_index_cb},
-        {.name = "Image alpha only",             .weight = 5, .create_cb = img_alpha_cb},
-
-        {.name = "Image RGB recolor",            .weight = 5, .create_cb = img_rgb_recolor_cb},
-        {.name = "Image ARGB recolor",           .weight = 20, .create_cb = img_argb_recolor_cb},
-        {.name = "Image chorma keyed recolor",   .weight = 3, .create_cb = img_ckey_recolor_cb},
-        {.name = "Image indexed recolor",        .weight = 3, .create_cb = img_index_recolor_cb},
-
-        {.name = "Image RGB rotate",             .weight = 3, .create_cb = img_rgb_rot_cb},
-        {.name = "Image RGB rotate anti aliased",  .weight = 3, .create_cb = img_rgb_rot_aa_cb},
-        {.name = "Image ARGB rotate",            .weight = 5, .create_cb = img_argb_rot_cb},
-        {.name = "Image ARGB rotate anti aliased", .weight = 5, .create_cb = img_argb_rot_aa_cb},
-        {.name = "Image RGB zoom",               .weight = 3, .create_cb = img_rgb_zoom_cb},
-        {.name = "Image RGB zoom anti aliased",    .weight = 3, .create_cb = img_rgb_zoom_aa_cb},
-        {.name = "Image ARGB zoom",              .weight = 5, .create_cb = img_argb_zoom_cb},
-        {.name = "Image ARGB zoom anti aliased",   .weight = 5, .create_cb = img_argb_zoom_aa_cb},
-
-        {.name = "Text small",                   .weight = 20, .create_cb = txt_small_cb},
-        {.name = "Text medium",                  .weight = 30, .create_cb = txt_medium_cb},
-        {.name = "Text large",                   .weight = 20, .create_cb = txt_large_cb},
-
-        {.name = "Text small compressed",       .weight = 3, .create_cb = txt_small_compr_cb},
-        {.name = "Text medium compressed",      .weight = 5, .create_cb = txt_medium_compr_cb},
-        {.name = "Text large compressed",       .weight = 10, .create_cb = txt_large_compr_cb},
-
-        {.name = "Line",                        .weight = 10, .create_cb = line_cb},
-
-        {.name = "Arc think",                   .weight = 10, .create_cb = arc_think_cb},
-        {.name = "Arc thick",                   .weight = 10, .create_cb = arc_thick_cb},
-
-        {.name = "Substr. rectangle",          .weight = 10, .create_cb = sub_rectangle_cb},
-        {.name = "Substr. border",             .weight = 10, .create_cb = sub_border_cb},
-        {.name = "Substr. shadow",             .weight = 10, .create_cb = sub_shadow_cb},
-        {.name = "Substr. image",             .weight = 10, .create_cb = sub_img_cb},
-        {.name = "Substr. line",               .weight = 10, .create_cb = sub_line_cb},
-        {.name = "Substr. arc",                .weight = 10, .create_cb = sub_arc_cb},
-        {.name = "Substr. text",               .weight = 10, .create_cb = sub_text_cb},
-
-        {.name = "", .create_cb = NULL}
+    {.name = "Rectangle",                    .weight = 30, .create_cb = rectangle_cb},
+    {.name = "Rectangle rounded",            .weight = 20, .create_cb = rectangle_rounded_cb},
+    {.name = "Circle",                       .weight = 10, .create_cb = rectangle_circle_cb},
+    {.name = "Border",                       .weight = 20, .create_cb = border_cb},
+    {.name = "Border rounded",               .weight = 30, .create_cb = border_rounded_cb},
+    {.name = "Circle border",                .weight = 10, .create_cb = border_circle_cb},
+    {.name = "Border top",                   .weight = 3, .create_cb = border_top_cb},
+    {.name = "Border left",                  .weight = 3, .create_cb = border_left_cb},
+    {.name = "Border top + left",            .weight = 3, .create_cb = border_top_left_cb},
+    {.name = "Border left + right",          .weight = 3, .create_cb = border_left_right_cb},
+    {.name = "Border top + bottom",          .weight = 3, .create_cb = border_top_bottom_cb},
+
+    {.name = "Shadow small",                 .weight = 3, .create_cb = shadow_small_cb},
+    {.name = "Shadow small offset",          .weight = 5, .create_cb = shadow_small_ofs_cb},
+    {.name = "Shadow large",                 .weight = 5, .create_cb = shadow_large_cb},
+    {.name = "Shadow large offset",          .weight = 3, .create_cb = shadow_large_ofs_cb},
+
+    {.name = "Image RGB",                    .weight = 20, .create_cb = img_rgb_cb},
+    {.name = "Image ARGB",                   .weight = 20, .create_cb = img_argb_cb},
+    {.name = "Image chorma keyed",           .weight = 5, .create_cb = img_ckey_cb},
+    {.name = "Image indexed",                .weight = 5, .create_cb = img_index_cb},
+    {.name = "Image alpha only",             .weight = 5, .create_cb = img_alpha_cb},
+
+    {.name = "Image RGB recolor",            .weight = 5, .create_cb = img_rgb_recolor_cb},
+    {.name = "Image ARGB recolor",           .weight = 20, .create_cb = img_argb_recolor_cb},
+    {.name = "Image chorma keyed recolor",   .weight = 3, .create_cb = img_ckey_recolor_cb},
+    {.name = "Image indexed recolor",        .weight = 3, .create_cb = img_index_recolor_cb},
+
+    {.name = "Image RGB rotate",             .weight = 3, .create_cb = img_rgb_rot_cb},
+    {.name = "Image RGB rotate anti aliased", .weight = 3, .create_cb = img_rgb_rot_aa_cb},
+    {.name = "Image ARGB rotate",            .weight = 5, .create_cb = img_argb_rot_cb},
+    {.name = "Image ARGB rotate anti aliased", .weight = 5, .create_cb = img_argb_rot_aa_cb},
+    {.name = "Image RGB zoom",               .weight = 3, .create_cb = img_rgb_zoom_cb},
+    {.name = "Image RGB zoom anti aliased",  .weight = 3, .create_cb = img_rgb_zoom_aa_cb},
+    {.name = "Image ARGB zoom",              .weight = 5, .create_cb = img_argb_zoom_cb},
+    {.name = "Image ARGB zoom anti aliased", .weight = 5, .create_cb = img_argb_zoom_aa_cb},
+
+    {.name = "Text small",                   .weight = 20, .create_cb = txt_small_cb},
+    {.name = "Text medium",                  .weight = 30, .create_cb = txt_medium_cb},
+    {.name = "Text large",                   .weight = 20, .create_cb = txt_large_cb},
+
+    {.name = "Text small compressed",        .weight = 3, .create_cb = txt_small_compr_cb},
+    {.name = "Text medium compressed",       .weight = 5, .create_cb = txt_medium_compr_cb},
+    {.name = "Text large compressed",        .weight = 10, .create_cb = txt_large_compr_cb},
+
+    {.name = "Line",                         .weight = 10, .create_cb = line_cb},
+
+    {.name = "Arc think",                    .weight = 10, .create_cb = arc_think_cb},
+    {.name = "Arc thick",                    .weight = 10, .create_cb = arc_thick_cb},
+
+    {.name = "Substr. rectangle",            .weight = 10, .create_cb = sub_rectangle_cb},
+    {.name = "Substr. border",               .weight = 10, .create_cb = sub_border_cb},
+    {.name = "Substr. shadow",               .weight = 10, .create_cb = sub_shadow_cb},
+    {.name = "Substr. image",                .weight = 10, .create_cb = sub_img_cb},
+    {.name = "Substr. line",                 .weight = 10, .create_cb = sub_line_cb},
+    {.name = "Substr. arc",                  .weight = 10, .create_cb = sub_arc_cb},
+    {.name = "Substr. text",                 .weight = 10, .create_cb = sub_text_cb},
+
+    {.name = "", .create_cb = NULL}
 };
 
 static int32_t scene_act = -1;
@@ -596,23 +638,23 @@ static lv_obj_t * subtitle;
 static uint32_t rnd_act;
 
 
-static uint32_t rnd_map[] = {
-        0xbd13204f, 0x67d8167f, 0x20211c99, 0xb0a7cc05,
-        0x06d5c703, 0xeafb01a7, 0xd0473b5c, 0xc999aaa2,
-        0x86f9d5d9, 0x294bdb29, 0x12a3c207, 0x78914d14,
-        0x10a30006, 0x6134c7db, 0x194443af, 0x142d1099,
-        0x376292d5, 0x20f433c5, 0x074d2a59, 0x4e74c293,
-        0x072a0810, 0xdd0f136d, 0x5cca6dbc, 0x623bfdd8,
-        0xb645eb2f, 0xbe50894a, 0xc9b56717, 0xe0f912c8,
-        0x4f6b5e24, 0xfe44b128, 0xe12d57a8, 0x9b15c9cc,
-        0xab2ae1d3, 0xb4dc5074, 0x67d457c8, 0x8e46b00c,
-        0xa29a1871, 0xcee40332, 0x80f93aa1, 0x85286096,
-        0x09bd6b49, 0x95072088, 0x2093924b, 0x6a27328f,
-        0xa796079b, 0xc3b488bc, 0xe29bcce0, 0x07048a4c,
-        0x7d81bd99, 0x27aacb30, 0x44fc7a0e, 0xa2382241,
-        0x8357a17d, 0x97e9c9cc, 0xad10ff52, 0x9923fc5c,
-        0x8f2c840a, 0x20356ba2, 0x7997a677, 0x9a7f1800,
-        0x35c7562b, 0xd901fe51, 0x8f4e053d, 0xa5b94923,
+static const uint32_t rnd_map[] = {
+    0xbd13204f, 0x67d8167f, 0x20211c99, 0xb0a7cc05,
+    0x06d5c703, 0xeafb01a7, 0xd0473b5c, 0xc999aaa2,
+    0x86f9d5d9, 0x294bdb29, 0x12a3c207, 0x78914d14,
+    0x10a30006, 0x6134c7db, 0x194443af, 0x142d1099,
+    0x376292d5, 0x20f433c5, 0x074d2a59, 0x4e74c293,
+    0x072a0810, 0xdd0f136d, 0x5cca6dbc, 0x623bfdd8,
+    0xb645eb2f, 0xbe50894a, 0xc9b56717, 0xe0f912c8,
+    0x4f6b5e24, 0xfe44b128, 0xe12d57a8, 0x9b15c9cc,
+    0xab2ae1d3, 0xb4dc5074, 0x67d457c8, 0x8e46b00c,
+    0xa29a1871, 0xcee40332, 0x80f93aa1, 0x85286096,
+    0x09bd6b49, 0x95072088, 0x2093924b, 0x6a27328f,
+    0xa796079b, 0xc3b488bc, 0xe29bcce0, 0x07048a4c,
+    0x7d81bd99, 0x27aacb30, 0x44fc7a0e, 0xa2382241,
+    0x8357a17d, 0x97e9c9cc, 0xad10ff52, 0x9923fc5c,
+    0x8f2c840a, 0x20356ba2, 0x7997a677, 0x9a7f1800,
+    0x35c7562b, 0xd901fe51, 0x8f4e053d, 0xa5b94923,
 };
 
 /**********************
@@ -623,11 +665,23 @@ static uint32_t rnd_map[] = {
  *   GLOBAL FUNCTIONS
  **********************/
 
-void lv_demo_benchmark(void)
+static void benchmark_init(void)
 {
-    lv_disp_t * disp = lv_disp_get_next(NULL);
+    lv_disp_t * disp = lv_disp_get_default();
     disp->driver->monitor_cb = monitor_cb;
 
+    /*Force to run at maximum frame rate*/
+    if(run_max_speed) {
+        if(disp->refr_timer) {
+            disp_ori_timer_period = disp->refr_timer->period;
+            lv_timer_set_period(disp->refr_timer, 1);
+        }
+
+        lv_timer_t * anim_timer = lv_anim_get_timer();
+        anim_ori_timer_period = anim_timer->period;
+        lv_timer_set_period(anim_timer, 1);
+    }
+
     lv_obj_t * scr = lv_scr_act();
     lv_obj_remove_style_all(scr);
     lv_obj_set_style_bg_opa(scr, LV_OPA_COVER, 0);
@@ -646,11 +700,55 @@ void lv_demo_benchmark(void)
     lv_style_init(&style_common);
 
     lv_obj_update_layout(scr);
+}
+
+
+void lv_demo_benchmark(void)
+{
+    benchmark_init();
 
     /*Manually start scenes*/
     scene_next_task_cb(NULL);
 }
 
+
+void lv_demo_benchmark_run_scene(int_fast16_t scene_no)
+{
+    benchmark_init();
+
+    if(((scene_no >> 1) >= dimof(scenes))) {
+        /* invalid scene number */
+        return ;
+    }
+
+    opa_mode = scene_no & 0x01;
+    scene_act = scene_no >> 1;
+
+    if(scenes[scene_act].create_cb) {
+        lv_label_set_text_fmt(title, "%"LV_PRId32"/%"LV_PRId32": %s%s", scene_act * 2 + (opa_mode ? 1 : 0),
+                              (int32_t)(dimof(scenes) * 2) - 2,
+                              scenes[scene_act].name, opa_mode ? " + opa" : "");
+        lv_label_set_text(subtitle, "");
+
+        rnd_reset();
+        scenes[scene_act].create_cb();
+
+        lv_timer_t * t = lv_timer_create(report_cb, SCENE_TIME, NULL);
+        lv_timer_set_repeat_count(t, 1);
+    }
+}
+
+
+void lv_demo_benchmark_set_finished_cb(finished_cb_t * finished_cb)
+{
+    benchmark_finished_cb = finished_cb;
+}
+
+void lv_demo_benchmark_set_max_speed(bool en)
+{
+    run_max_speed = en;
+}
+
 /**********************
  *   STATIC FUNCTIONS
  **********************/
@@ -662,204 +760,280 @@ static void monitor_cb(lv_disp_drv_t * drv, uint32_t time, uint32_t px)
     if(opa_mode) {
         scenes[scene_act].refr_cnt_opa ++;
         scenes[scene_act].time_sum_opa += time;
-    } else {
+    }
+    else {
         scenes[scene_act].refr_cnt_normal ++;
         scenes[scene_act].time_sum_normal += time;
     }
 
-//    lv_obj_invalidate(lv_scr_act());
+    //    lv_obj_invalidate(lv_scr_act());
 }
 
-static void scene_next_task_cb(lv_timer_t * timer)
+static void generate_report(void)
 {
-    LV_UNUSED(timer);
-    lv_obj_clean(scene_bg);
+    uint32_t weight_sum = 0;
+    uint32_t weight_normal_sum = 0;
+    uint32_t weight_opa_sum = 0;
+    uint32_t fps_sum = 0;
+    uint32_t fps_normal_sum = 0;
+    uint32_t fps_opa_sum = 0;
+    uint32_t i;
+    for(i = 0; scenes[i].create_cb; i++) {
+        fps_normal_sum += scenes[i].fps_normal * scenes[i].weight;
+        weight_normal_sum += scenes[i].weight;
 
-    if(opa_mode) {
-        if(scene_act >= 0) {
-            if(scenes[scene_act].time_sum_opa == 0) scenes[scene_act].time_sum_opa = 1;
-            scenes[scene_act].fps_opa = (1000 * scenes[scene_act].refr_cnt_opa) / scenes[scene_act].time_sum_opa;
-            if(scenes[scene_act].create_cb) scene_act++;    /*If still there are scenes go to the next*/
-        } else {
-            scene_act ++;
-        }
-        opa_mode = false;
-    } else {
-        if(scenes[scene_act].time_sum_normal == 0) scenes[scene_act].time_sum_normal = 1;
-        scenes[scene_act].fps_normal = (1000 * scenes[scene_act].refr_cnt_normal) / scenes[scene_act].time_sum_normal;
-        opa_mode = true;
+        uint32_t w = LV_MAX(scenes[i].weight / 2, 1);
+        fps_opa_sum += scenes[i].fps_opa * w;
+        weight_opa_sum += w;
     }
 
-    if(scenes[scene_act].create_cb) {
-        lv_label_set_text_fmt(title, "%"LV_PRId32"/%d: %s%s", scene_act * 2 + (opa_mode ? 1 : 0), (sizeof(scenes) / sizeof(scene_dsc_t) * 2) - 2,  scenes[scene_act].name, opa_mode ? " + opa" : "");
-        if(opa_mode) {
-            lv_label_set_text_fmt(subtitle, "Result of \"%s\": %"LV_PRId32" FPS", scenes[scene_act].name, scenes[scene_act].fps_normal);
-        } else {
-            if(scene_act > 0) {
-                lv_label_set_text_fmt(subtitle, "Result of \"%s + opa\": %"LV_PRId32" FPS", scenes[scene_act - 1].name, scenes[scene_act - 1].fps_opa);
-            } else {
-                lv_label_set_text(subtitle, "");
-            }
-        }
 
-        rnd_reset();
-        scenes[scene_act].create_cb();
-        lv_timer_t * t = lv_timer_create(scene_next_task_cb, SCENE_TIME, NULL);
-        lv_timer_set_repeat_count(t, 1);
+    fps_sum = fps_normal_sum + fps_opa_sum;
+    weight_sum = weight_normal_sum + weight_opa_sum;
+
+    uint32_t fps_weighted = fps_sum / weight_sum;
+    uint32_t fps_normal_unweighted = fps_normal_sum / weight_normal_sum;
+    uint32_t fps_opa_unweighted = fps_opa_sum / weight_opa_sum;
 
+    uint32_t opa_speed_pct = (fps_opa_unweighted * 100) / fps_normal_unweighted;
+
+    if(NULL != benchmark_finished_cb) {
+        (*benchmark_finished_cb)();
     }
-    /*Ready*/
-    else {
-        uint32_t weight_sum = 0;
-        uint32_t weight_normal_sum = 0;
-        uint32_t weight_opa_sum = 0;
-        uint32_t fps_sum = 0;
-        uint32_t fps_normal_sum = 0;
-        uint32_t fps_opa_sum = 0;
-        uint32_t i;
-        for(i = 0; scenes[i].create_cb; i++) {
-            fps_normal_sum += scenes[i].fps_normal * scenes[i].weight;
-            weight_normal_sum += scenes[i].weight;
-
-            uint32_t w = LV_MAX(scenes[i].weight / 2, 1);
-            fps_opa_sum += scenes[i].fps_opa * w;
-            weight_opa_sum += w;
-        }
+
+    lv_obj_clean(lv_scr_act());
+    scene_bg = NULL;
 
 
-        fps_sum = fps_normal_sum + fps_opa_sum;
-        weight_sum = weight_normal_sum + weight_opa_sum;
+    lv_obj_set_flex_flow(lv_scr_act(), LV_FLEX_FLOW_COLUMN);
 
-        uint32_t fps_weighted = fps_sum / weight_sum;
-        uint32_t fps_normal_unweighted = fps_normal_sum / weight_normal_sum;
-        uint32_t fps_opa_unweighted = fps_opa_sum / weight_opa_sum;
+    title = lv_label_create(lv_scr_act());
+    lv_label_set_text_fmt(title, "Weighted FPS: %"LV_PRIu32, fps_weighted);
 
-        uint32_t opa_speed_pct = (fps_opa_unweighted * 100) / fps_normal_unweighted;
+    subtitle = lv_label_create(lv_scr_act());
+    lv_label_set_text_fmt(subtitle, "Opa. speed: %"LV_PRIu32"%%", opa_speed_pct);
 
-        lv_obj_clean(lv_scr_act());
-        scene_bg = NULL;
+    lv_coord_t w = lv_obj_get_content_width(lv_scr_act());
+    lv_obj_t * table = lv_table_create(lv_scr_act());
+    //        lv_obj_clean_style_list(table, LV_PART_MAIN);
+    lv_table_set_col_cnt(table, 2);
 
+    lv_table_set_col_width(table, 0, (w * 3) / 4 - 3);
+    lv_table_set_col_width(table, 1, w  / 4 - 3);
+    lv_obj_set_width(table, lv_pct(100));
 
-        lv_obj_set_flex_flow(lv_scr_act(), LV_FLEX_FLOW_COLUMN);
+    //        static lv_style_t style_cell_slow;
+    //        static lv_style_t style_cell_very_slow;
+    //        static lv_style_t style_cell_title;
+    //
+    //        lv_style_init(&style_cell_title);
+    //        lv_style_set_bg_color(&style_cell_title, LV_STATE_DEFAULT, lv_palette_main(LV_PALETTE_GREY));
+    //        lv_style_set_bg_opa(&style_cell_title, LV_STATE_DEFAULT, LV_OPA_50);
+    //
+    //        lv_style_init(&style_cell_slow);
+    //        lv_style_set_text_color(&style_cell_slow, LV_STATE_DEFAULT, LV_COLOR_ORANGE);
+    //
+    //        lv_style_init(&style_cell_very_slow);
+    //        lv_style_set_text_color(&style_cell_very_slow, LV_STATE_DEFAULT, lv_palette_main(LV_PALETTE_RED));
 
-        title = lv_label_create(lv_scr_act());
-        lv_label_set_text_fmt(title, "Weighted FPS: %"LV_PRIu32, fps_weighted);
+    //        lv_obj_add_style(table, LV_TABLE_PART_CELL2, &style_cell_slow);
+    //        lv_obj_add_style(table, LV_TABLE_PART_CELL3, &style_cell_very_slow);
+    //        lv_obj_add_style(table, LV_TABLE_PART_CELL4, &style_cell_title);
 
-        subtitle = lv_label_create(lv_scr_act());
-        lv_label_set_text_fmt(subtitle, "Opa. speed: %"LV_PRIu32"%%", opa_speed_pct);
 
-        lv_coord_t w = lv_obj_get_content_width(lv_scr_act());
-        lv_obj_t * table = lv_table_create(lv_scr_act());
-//        lv_obj_clean_style_list(table, LV_PART_MAIN);
-        lv_table_set_col_cnt(table, 2);
+    uint16_t row = 0;
+    lv_table_add_cell_ctrl(table, row, 0, LV_TABLE_CELL_CTRL_MERGE_RIGHT);
+    lv_table_set_cell_value(table, row, 0, "Slow but common cases");
+    //        lv_table_set_cell_type(table, row, 0, 4);
 
-        lv_table_set_col_width(table, 0, (w * 3) / 4 - 3);
-        lv_table_set_col_width(table, 1, w  / 4 - 3);
-        lv_obj_set_width(table, lv_pct(100));
+    LV_LOG("\r\n"
+           "LVGL v%d.%d.%d " LVGL_VERSION_INFO
+           " Benchmark (in csv format)\r\n",
+           LVGL_VERSION_MAJOR, LVGL_VERSION_MINOR, LVGL_VERSION_PATCH);
+    LV_LOG("Weighted FPS: %"LV_PRIu32"\r\n", fps_weighted);
+    LV_LOG("Opa. speed: %"LV_PRIu32"%%\r\n", opa_speed_pct);
 
-//        static lv_style_t style_cell_slow;
-//        static lv_style_t style_cell_very_slow;
-//        static lv_style_t style_cell_title;
-//
-//        lv_style_init(&style_cell_title);
-//        lv_style_set_bg_color(&style_cell_title, LV_STATE_DEFAULT, lv_palette_main(LV_PALETTE_GREY));
-//        lv_style_set_bg_opa(&style_cell_title, LV_STATE_DEFAULT, LV_OPA_50);
-//
-//        lv_style_init(&style_cell_slow);
-//        lv_style_set_text_color(&style_cell_slow, LV_STATE_DEFAULT, LV_COLOR_ORANGE);
-//
-//        lv_style_init(&style_cell_very_slow);
-//        lv_style_set_text_color(&style_cell_very_slow, LV_STATE_DEFAULT, lv_palette_main(LV_PALETTE_RED));
+    row++;
+    char buf[256];
+    for(i = 0; scenes[i].create_cb; i++) {
 
-//        lv_obj_add_style(table, LV_TABLE_PART_CELL2, &style_cell_slow);
-//        lv_obj_add_style(table, LV_TABLE_PART_CELL3, &style_cell_very_slow);
-//        lv_obj_add_style(table, LV_TABLE_PART_CELL4, &style_cell_title);
+        if(scenes[i].fps_normal < 20 && scenes[i].weight >= 10) {
+            lv_table_set_cell_value(table, row, 0, scenes[i].name);
+
+            lv_snprintf(buf, sizeof(buf), "%"LV_PRIu32, scenes[i].fps_normal);
+            lv_table_set_cell_value(table, row, 1, buf);
+
+            //                lv_table_set_cell_type(table, row, 0, 2);
+            //                lv_table_set_cell_type(table, row, 1, 2);
+
+            //LV_LOG("%s,%s\r\n", scenes[i].name, buf);
 
+            row++;
+        }
+
+        if(scenes[i].fps_opa < 20 && LV_MAX(scenes[i].weight / 2, 1) >= 10) {
+            lv_snprintf(buf, sizeof(buf), "%s + opa", scenes[i].name);
+            lv_table_set_cell_value(table, row, 0, buf);
 
-        uint16_t row = 0;
+            //LV_LOG("%s,", buf);
+
+            lv_snprintf(buf, sizeof(buf), "%"LV_PRIu32, scenes[i].fps_opa);
+            lv_table_set_cell_value(table, row, 1, buf);
+
+            //                lv_table_set_cell_type(table, row, 0, 2);
+            //                lv_table_set_cell_type(table, row, 1, 2);
+            //LV_LOG("%s\r\n", buf);
+
+            row++;
+        }
+    }
+
+    /*No 'slow but common cases'*/
+    if(row == 1) {
         lv_table_add_cell_ctrl(table, row, 0, LV_TABLE_CELL_CTRL_MERGE_RIGHT);
-        lv_table_set_cell_value(table, row, 0, "Slow but common cases");
-//        lv_table_set_cell_type(table, row, 0, 4);
+        lv_table_set_cell_value(table, row, 0, "All good");
         row++;
-        char buf[256];
-        for(i = 0; i < sizeof(scenes) / sizeof(scene_dsc_t) - 1; i++) {
+    }
 
-            if(scenes[i].fps_normal < 20 && scenes[i].weight >= 10) {
-                lv_table_set_cell_value(table, row, 0, scenes[i].name);
+    lv_table_add_cell_ctrl(table, row, 0, LV_TABLE_CELL_CTRL_MERGE_RIGHT);
+    lv_table_set_cell_value(table, row, 0, "All cases");
+    //        lv_table_set_cell_type(table, row, 0, 4);
+    row++;
 
-                lv_snprintf(buf, sizeof(buf), "%"LV_PRIu32, scenes[i].fps_normal);
-                lv_table_set_cell_value(table, row, 1, buf);
+    for(i = 0; scenes[i].create_cb; i++) {
+        lv_table_set_cell_value(table, row, 0, scenes[i].name);
 
-//                lv_table_set_cell_type(table, row, 0, 2);
-//                lv_table_set_cell_type(table, row, 1, 2);
+        lv_snprintf(buf, sizeof(buf), "%"LV_PRIu32, scenes[i].fps_normal);
+        lv_table_set_cell_value(table, row, 1, buf);
 
-                row++;
-            }
+        if(scenes[i].fps_normal < 10) {
+            //                lv_table_set_cell_type(table, row, 0, 3);
+            //                lv_table_set_cell_type(table, row, 1, 3);
+        }
+        else if(scenes[i].fps_normal < 20) {
+            //                lv_table_set_cell_type(table, row, 0, 2);
+            //                lv_table_set_cell_type(table, row, 1, 2);
+        }
 
-            if(scenes[i].fps_opa < 20 && LV_MAX(scenes[i].weight / 2, 1) >= 10) {
-                lv_snprintf(buf, sizeof(buf), "%s + opa", scenes[i].name);
-                lv_table_set_cell_value(table, row, 0, buf);
+        LV_LOG("%s,%s\r\n", scenes[i].name, buf);
 
-                lv_snprintf(buf, sizeof(buf), "%"LV_PRIu32, scenes[i].fps_opa);
-                lv_table_set_cell_value(table, row, 1, buf);
+        row++;
 
-//                lv_table_set_cell_type(table, row, 0, 2);
-//                lv_table_set_cell_type(table, row, 1, 2);
+        lv_snprintf(buf, sizeof(buf), "%s + opa", scenes[i].name);
+        lv_table_set_cell_value(table, row, 0, buf);
 
-                row++;
-            }
-        }
+        LV_LOG("%s,", buf);
 
-        /*No 'slow but common cases'*/
-        if(row == 1) {
-            lv_table_add_cell_ctrl(table, row, 0, LV_TABLE_CELL_CTRL_MERGE_RIGHT);
-            lv_table_set_cell_value(table, row, 0, "All good");
-            row++;
+        lv_snprintf(buf, sizeof(buf), "%"LV_PRIu32, scenes[i].fps_opa);
+        lv_table_set_cell_value(table, row, 1, buf);
+
+
+        if(scenes[i].fps_opa < 10) {
+            //                lv_table_set_cell_type(table, row, 0, 3);
+            //                lv_table_set_cell_type(table, row, 1, 3);
+        }
+        else if(scenes[i].fps_opa < 20) {
+            //                lv_table_set_cell_type(table, row, 0, 2);
+            //                lv_table_set_cell_type(table, row, 1, 2);
         }
 
-        lv_table_add_cell_ctrl(table, row, 0, LV_TABLE_CELL_CTRL_MERGE_RIGHT);
-        lv_table_set_cell_value(table, row, 0, "All cases");
-//        lv_table_set_cell_type(table, row, 0, 4);
+        LV_LOG("%s\r\n", buf);
+
         row++;
+    }
 
-        for(i = 0; i < sizeof(scenes) / sizeof(scene_dsc_t) - 1; i++) {
-            lv_table_set_cell_value(table, row, 0, scenes[i].name);
+    //        lv_page_set_scrl_layout(page, LV_LAYOUT_COLUMN_LEFT);
+}
 
-            lv_snprintf(buf, sizeof(buf), "%"LV_PRIu32, scenes[i].fps_normal);
-            lv_table_set_cell_value(table, row, 1, buf);
+static void report_cb(lv_timer_t * timer)
+{
+    if(NULL != benchmark_finished_cb) {
+        (*benchmark_finished_cb)();
+    }
 
-            if(scenes[i].fps_normal < 10) {
-//                lv_table_set_cell_type(table, row, 0, 3);
-//                lv_table_set_cell_type(table, row, 1, 3);
-            }
-            else if(scenes[i].fps_normal < 20) {
-//                lv_table_set_cell_type(table, row, 0, 2);
-//                lv_table_set_cell_type(table, row, 1, 2);
-            }
+    if(opa_mode) {
+        if(scene_act >= 0) {
+            if(scenes[scene_act].time_sum_opa == 0) scenes[scene_act].time_sum_opa = 1;
+            scenes[scene_act].fps_opa = (1000 * scenes[scene_act].refr_cnt_opa) / scenes[scene_act].time_sum_opa;
+        }
 
-            row++;
+        lv_label_set_text_fmt(subtitle, "Result : %"LV_PRId32" FPS",
+                              scenes[scene_act].fps_opa);
+        LV_LOG("Result of \"%s + opa\": %"LV_PRId32" FPS", scenes[scene_act].name,
+               scenes[scene_act].fps_opa);
+    }
+    else {
+        if(scenes[scene_act].time_sum_normal == 0) scenes[scene_act].time_sum_normal = 1;
+        scenes[scene_act].fps_normal = (1000 * scenes[scene_act].refr_cnt_normal) / scenes[scene_act].time_sum_normal;
 
-            lv_snprintf(buf, sizeof(buf), "%s + opa", scenes[i].name);
-            lv_table_set_cell_value(table, row, 0, buf);
+        lv_label_set_text_fmt(subtitle, "Result : %"LV_PRId32" FPS",
+                              scenes[scene_act].fps_normal);
+        LV_LOG("Result of \"%s\": %"LV_PRId32" FPS", scenes[scene_act].name,
+               scenes[scene_act].fps_normal);
+    }
+}
 
-            lv_snprintf(buf, sizeof(buf), "%"LV_PRIu32, scenes[i].fps_opa);
-            lv_table_set_cell_value(table, row, 1, buf);
+static void scene_next_task_cb(lv_timer_t * timer)
+{
+    LV_UNUSED(timer);
+    lv_obj_clean(scene_bg);
 
+    if(opa_mode) {
+        if(scene_act >= 0) {
+            if(scenes[scene_act].time_sum_opa == 0) scenes[scene_act].time_sum_opa = 1;
+            scenes[scene_act].fps_opa = (1000 * scenes[scene_act].refr_cnt_opa) / scenes[scene_act].time_sum_opa;
+            if(scenes[scene_act].create_cb) scene_act++;    /*If still there are scenes go to the next*/
+        }
+        else {
+            scene_act++;
+        }
+        opa_mode = false;
+    }
+    else {
+        if(scenes[scene_act].time_sum_normal == 0) scenes[scene_act].time_sum_normal = 1;
+        scenes[scene_act].fps_normal = (1000 * scenes[scene_act].refr_cnt_normal) / scenes[scene_act].time_sum_normal;
+        opa_mode = true;
+    }
 
-            if(scenes[i].fps_opa < 10) {
-//                lv_table_set_cell_type(table, row, 0, 3);
-//                lv_table_set_cell_type(table, row, 1, 3);
+    if(scenes[scene_act].create_cb) {
+        lv_label_set_text_fmt(title, "%"LV_PRId32"/%"LV_PRId32": %s%s", scene_act * 2 + (opa_mode ? 1 : 0),
+                              (int32_t)(dimof(scenes) * 2) - 2,  scenes[scene_act].name, opa_mode ? " + opa" : "");
+        if(opa_mode) {
+            lv_label_set_text_fmt(subtitle, "Result of \"%s\": %"LV_PRId32" FPS", scenes[scene_act].name,
+                                  scenes[scene_act].fps_normal);
+        }
+        else {
+            if(scene_act > 0) {
+                lv_label_set_text_fmt(subtitle, "Result of \"%s + opa\": %"LV_PRId32" FPS", scenes[scene_act - 1].name,
+                                      scenes[scene_act - 1].fps_opa);
             }
-            else if(scenes[i].fps_opa < 20) {
-//                lv_table_set_cell_type(table, row, 0, 2);
-//                lv_table_set_cell_type(table, row, 1, 2);
+            else {
+                lv_label_set_text(subtitle, "");
             }
-
-            row++;
         }
 
-//        lv_page_set_scrl_layout(page, LV_LAYOUT_COLUMN_LEFT);
+        rnd_reset();
+        scenes[scene_act].create_cb();
+        lv_timer_t * t = lv_timer_create(scene_next_task_cb, SCENE_TIME, NULL);
+        lv_timer_set_repeat_count(t, 1);
+
+    }
+    /*Ready*/
+    else {
+
+        /*Restore original frame rate*/
+        if(run_max_speed) {
+            lv_timer_t * anim_timer = lv_anim_get_timer();
+            lv_timer_set_period(anim_timer, anim_ori_timer_period);
+
+            lv_disp_t * disp = lv_disp_get_default();
+            lv_timer_t * refr_timer = _lv_disp_get_refr_timer(disp);
+            if(refr_timer) {
+                lv_timer_set_period(refr_timer, disp_ori_timer_period);
+            }
+        }
 
+        generate_report();      /* generate report */
     }
 }
 
@@ -928,7 +1102,7 @@ static void line_create(lv_style_t * style)
         uint32_t j;
         for(j = 1; j < LINE_POINT_NUM; j++) {
             points[i][j].x = points[i][j - 1].x + rnd_next(LINE_POINT_DIFF_MIN, LINE_POINT_DIFF_MAX);
-            points[i][j].y = rnd_next(LINE_POINT_DIFF_MIN, LINE_POINT_DIFF_MAX) ;
+            points[i][j].y = rnd_next(LINE_POINT_DIFF_MIN, LINE_POINT_DIFF_MAX);
         }
 
 
@@ -945,6 +1119,11 @@ static void line_create(lv_style_t * style)
 }
 
 
+static void arc_anim_end_angle_cb(void * var, int32_t v)
+{
+    lv_arc_set_end_angle(var, v);
+}
+
 static void arc_create(lv_style_t * style)
 {
     uint32_t i;
@@ -962,7 +1141,7 @@ static void arc_create(lv_style_t * style)
         lv_anim_t a;
         lv_anim_init(&a);
         lv_anim_set_var(&a, obj);
-        lv_anim_set_exec_cb(&a, (lv_anim_exec_xcb_t) lv_arc_set_end_angle);
+        lv_anim_set_exec_cb(&a, arc_anim_end_angle_cb);
         lv_anim_set_values(&a, 0, 359);
         lv_anim_set_time(&a, t);
         lv_anim_set_playback_time(&a, t);
@@ -974,6 +1153,11 @@ static void arc_create(lv_style_t * style)
 }
 
 
+static void fall_anim_y_cb(void * var, int32_t v)
+{
+    lv_obj_set_y(var, v);
+}
+
 static void fall_anim(lv_obj_t * obj)
 {
     lv_obj_set_x(obj, rnd_next(0, lv_obj_get_width(scene_bg) - lv_obj_get_width(obj)));
@@ -983,7 +1167,7 @@ static void fall_anim(lv_obj_t * obj)
     lv_anim_t a;
     lv_anim_init(&a);
     lv_anim_set_var(&a, obj);
-    lv_anim_set_exec_cb(&a, (lv_anim_exec_xcb_t) lv_obj_set_y);
+    lv_anim_set_exec_cb(&a, fall_anim_y_cb);
     lv_anim_set_values(&a, 0, lv_obj_get_height(scene_bg) - lv_obj_get_height(obj));
     lv_anim_set_time(&a, t);
     lv_anim_set_playback_time(&a, t);
index ec0aecd..6a0a4f6 100644 (file)
@@ -22,12 +22,24 @@ extern "C" {
 /**********************
  *      TYPEDEFS
  **********************/
+typedef void finished_cb_t(void);
+
 
 /**********************
  * GLOBAL PROTOTYPES
  **********************/
 void lv_demo_benchmark(void);
 
+void lv_demo_benchmark_run_scene(int_fast16_t scene_no);
+
+void lv_demo_benchmark_set_finished_cb(finished_cb_t * finished_cb);
+
+/**
+ * Make the benchmark work at the highest frame rate
+ * @param en true: highest frame rate; false: default frame rate
+ */
+void lv_demo_benchmark_set_max_speed(bool en);
+
 /**********************
  *      MACROS
  **********************/
index 3d4ce48..9fa792a 100644 (file)
@@ -2,9 +2,9 @@
 
 ## Overview
 
-LVGL allows you to control the widgets with keypad and/or encoder without touchpad. 
-This demo shows how to handle buttons, drop-down lists, rollers, sliders, switches and text inputs without touchpad. 
-Learn more about the touchpad-less usage of LVGL [here](https://docs.lvgl.io/master/porting/indev.html#keypad-or-keyboard).
+LVGL allows you to control the widgets with keypad and/or encoder without touchpad.
+This demo shows how to handle buttons, drop-down lists, rollers, sliders, switches and text inputs without touchpad.
+Learn more about the touchpad-less usage of LVGL [here](https://docs.lvgl.io/master/overview/indev.html#keypad-and-encoder).
 
 ![Keypad and encoder navigation in LVGL embedded GUI library](screenshot1.gif)
 
index 9a1bbcd..fdb9b94 100644 (file)
@@ -31,7 +31,7 @@ static void ta_event_cb(lv_event_t * e);
 /**********************
  *  STATIC VARIABLES
  **********************/
-static lv_group_t*  g;
+static lv_group_t * g;
 static lv_obj_t * tv;
 static lv_obj_t * t1;
 static lv_obj_t * t2;
@@ -49,18 +49,18 @@ void lv_demo_keypad_encoder(void)
     g = lv_group_create();
     lv_group_set_default(g);
 
-    lv_indev_t* cur_drv = NULL;
-    for (;;) {
+    lv_indev_t * cur_drv = NULL;
+    for(;;) {
         cur_drv = lv_indev_get_next(cur_drv);
-        if (!cur_drv) {
+        if(!cur_drv) {
             break;
         }
 
-        if (cur_drv->driver->type == LV_INDEV_TYPE_KEYPAD) {
+        if(cur_drv->driver->type == LV_INDEV_TYPE_KEYPAD) {
             lv_indev_set_group(cur_drv, g);
         }
 
-        if (cur_drv->driver->type == LV_INDEV_TYPE_ENCODER) {
+        if(cur_drv->driver->type == LV_INDEV_TYPE_ENCODER) {
             lv_indev_set_group(cur_drv, g);
         }
     }
@@ -152,7 +152,7 @@ static void text_input_create(lv_obj_t * parent)
     lv_textarea_set_one_line(ta2, true);
     lv_textarea_set_placeholder_text(ta2, "Type something");
 
-    lv_obj_t *kb = lv_keyboard_create(lv_scr_act());
+    lv_obj_t * kb = lv_keyboard_create(lv_scr_act());
     lv_obj_add_flag(kb, LV_OBJ_FLAG_HIDDEN);
 
     lv_obj_add_event_cb(ta1, ta_event_cb, LV_EVENT_ALL, kb);
@@ -166,9 +166,6 @@ static void msgbox_create(void)
     lv_obj_add_event_cb(mbox, msgbox_event_cb, LV_EVENT_ALL, NULL);
     lv_group_focus_obj(lv_msgbox_get_btns(mbox));
     lv_obj_add_state(lv_msgbox_get_btns(mbox), LV_STATE_FOCUS_KEY);
-#if LV_EX_MOUSEWHEEL
-    lv_group_set_editing(g, true);
-#endif
     lv_group_focus_freeze(g, true);
 
     lv_obj_align(mbox, LV_ALIGN_CENTER, 0, 0);
index 10aa7c6..46053e1 100644 (file)
@@ -16,23 +16,23 @@ extern "C" {
 #include "../lvgl.h"
 
 #if LV_USE_DEMO_WIDGETS
-    #include "widgets/lv_demo_widgets.h"
+#include "widgets/lv_demo_widgets.h"
 #endif
 
 #if LV_USE_DEMO_BENCHMARK
-    #include "benchmark/lv_demo_benchmark.h"
+#include "benchmark/lv_demo_benchmark.h"
 #endif
 
 #if LV_USE_DEMO_STRESS
-    #include "stress/lv_demo_stress.h"
+#include "stress/lv_demo_stress.h"
 #endif
 
 #if LV_USE_DEMO_KEYPAD_AND_ENCODER
-    #include "keypad_encoder/lv_demo_keypad_encoder.h"
+#include "keypad_encoder/lv_demo_keypad_encoder.h"
 #endif
 
 #if LV_USE_DEMO_MUSIC
-    #include "music/lv_demo_music.h"
+#include "music/lv_demo_music.h"
 #endif
 
 /*********************
index b4b9f64..ba5763d 100644 (file)
@@ -1 +1 @@
-lvgl_SRCS  += $(shell find -L $(LVGL_DIR)/$(LVGL_DIR_NAME)/demos -name "*.c")
+CSRCS += $(shell find -L $(LVGL_DIR)/$(LVGL_DIR_NAME)/demos -name "*.c")
index b9f8b27..90e9fd2 100644 (file)
@@ -1,10 +1,10 @@
 # Music player demo
 
 ## Overview
-The music player demo shows what kind of modern, smartphone-like user interfaces can be created on LVGL. It works the best with display with 480x272 or 272x480 resolution. 
+The music player demo shows what kind of modern, smartphone-like user interfaces can be created on LVGL. It works the best with display with 480x272 or 272x480 resolution.
 
 
-![Music player demo with LVGL embedded GUI library](https://github.com/lvgl/lv_examples/blob/master/src/lv_demo_music/screenshot1.gif?raw=true)
+![Music player demo with LVGL embedded GUI library](screenshot1.gif)
 
 ## Run the demo
 - In `lv_conf.h` or equivalent places set `LV_USE_DEMO_MUSIC 1`
@@ -15,7 +15,7 @@ The music player demo shows what kind of modern, smartphone-like user interfaces
 - `assets/spectrum.py` creates an array of spectrum values from a music. 4 band are created with 33 samples/sec: bass, bass-mid, mid, mid-treble.
 - The spectrum meter UI does the followings:
        - Zoom the album cover proportionality to the current bass value
-       - Display the 4 bands on the left side of a circle by default at 0°, 45°, 90°, 135° 
+       - Display the 4 bands on the left side of a circle by default at 0°, 45°, 90°, 135°
        - Add extra bars next to the "main bars" with a cosine shape. Add more bars for the lower bands.
        - If there is a large enough bass, add a random offset to the position of the bars. E.g. start from 63° instead of 0°. (bars greater than 180° start again from 0°)
        - If there is no bass, add 1 to the offset of the bars (it creates a "walking" effect)
index e6e75f1..aca3702 100644 (file)
@@ -18,7 +18,7 @@ fs = int(len(S) / fn)
 fout.write("const uint16_t spectrum[][4] = {\n")
 for t in range(0,len(S[0]-1)):
   fout.write("{ ")
-  f_prev = 0 
+  f_prev = 0
   for f in [8, 45, 300, 600]:
     v = 0
     for i in range(f_prev, f): v += S[i][t]
index 2bba09d..cb72ed1 100644 (file)
@@ -25,7 +25,7 @@
  *  STATIC PROTOTYPES
  **********************/
 #if LV_DEMO_MUSIC_AUTO_PLAY
-static void auto_step_cb(lv_timer_t * timer);
+    static void auto_step_cb(lv_timer_t * timer);
 #endif
 
 /**********************
@@ -87,20 +87,20 @@ static const char * genre_list[] = {
 };
 
 static const uint32_t time_list[] = {
-    1*60 + 14,
-    2*60 + 26,
-    1*60 + 54,
-    2*60 + 24,
-    2*60 + 37,
-    3*60 + 33,
-    1*60 + 56,
-    3*60 + 31,
-    2*60 + 20,
-    2*60 + 19,
-    2*60 + 20,
-    2*60 + 19,
-    2*60 + 20,
-    2*60 + 19,
+    1 * 60 + 14,
+    2 * 60 + 26,
+    1 * 60 + 54,
+    2 * 60 + 24,
+    2 * 60 + 37,
+    3 * 60 + 33,
+    1 * 60 + 56,
+    3 * 60 + 31,
+    2 * 60 + 20,
+    2 * 60 + 19,
+    2 * 60 + 20,
+    2 * 60 + 19,
+    2 * 60 + 20,
+    2 * 60 + 19,
 };
 
 /**********************
@@ -166,84 +166,84 @@ static void auto_step_cb(lv_timer_t * t)
 #endif
 
     switch(state) {
-    case 5:
-        _lv_demo_music_album_next(true);
-        break;
-
-    case 6:
-        _lv_demo_music_album_next(true);
-        break;
-    case 7:
-        _lv_demo_music_album_next(true);
-        break;
-    case 8:
-        _lv_demo_music_play(0);
-        break;
+        case 5:
+            _lv_demo_music_album_next(true);
+            break;
+
+        case 6:
+            _lv_demo_music_album_next(true);
+            break;
+        case 7:
+            _lv_demo_music_album_next(true);
+            break;
+        case 8:
+            _lv_demo_music_play(0);
+            break;
 #if LV_DEMO_MUSIC_SQUARE || LV_DEMO_MUSIC_ROUND
-    case 11:
-        lv_obj_scroll_by(ctrl, 0, -LV_VER_RES, LV_ANIM_ON);
-        break;
-    case 13:
-        lv_obj_scroll_by(ctrl, 0, -LV_VER_RES, LV_ANIM_ON);
-        break;
+        case 11:
+            lv_obj_scroll_by(ctrl, 0, -LV_VER_RES, LV_ANIM_ON);
+            break;
+        case 13:
+            lv_obj_scroll_by(ctrl, 0, -LV_VER_RES, LV_ANIM_ON);
+            break;
 #else
-    case 12:
-        lv_obj_scroll_by(ctrl, 0, -LV_VER_RES, LV_ANIM_ON);
-        break;
+        case 12:
+            lv_obj_scroll_by(ctrl, 0, -LV_VER_RES, LV_ANIM_ON);
+            break;
 #endif
-    case 15:
-        lv_obj_scroll_by(list, 0, -300, LV_ANIM_ON);
-        break;
-    case 16:
-        lv_obj_scroll_by(list, 0, 300, LV_ANIM_ON);
-        break;
-    case 18:
-        _lv_demo_music_play(1);
-        break;
-    case 19:
-        lv_obj_scroll_by(ctrl, 0, LV_VER_RES, LV_ANIM_ON);
-        break;
+        case 15:
+            lv_obj_scroll_by(list, 0, -300, LV_ANIM_ON);
+            break;
+        case 16:
+            lv_obj_scroll_by(list, 0, 300, LV_ANIM_ON);
+            break;
+        case 18:
+            _lv_demo_music_play(1);
+            break;
+        case 19:
+            lv_obj_scroll_by(ctrl, 0, LV_VER_RES, LV_ANIM_ON);
+            break;
 #if LV_DEMO_MUSIC_SQUARE || LV_DEMO_MUSIC_ROUND
-    case 20:
-        lv_obj_scroll_by(ctrl, 0, LV_VER_RES, LV_ANIM_ON);
-        break;
+        case 20:
+            lv_obj_scroll_by(ctrl, 0, LV_VER_RES, LV_ANIM_ON);
+            break;
 #endif
-    case 30:
-        _lv_demo_music_play(2);
-        break;
-    case 40: {
-          lv_obj_t * bg = lv_layer_top();
-          lv_obj_set_style_bg_color(bg, lv_color_hex(0x6f8af6), 0);
-          lv_obj_set_style_text_color(bg, lv_color_white(), 0);
-          lv_obj_set_style_bg_opa(bg, LV_OPA_COVER, 0);
-          lv_obj_fade_in(bg, 400, 0);
-          lv_obj_t * dsc = lv_label_create(bg);
-          lv_obj_set_style_text_font(dsc, font_small, 0);
-          lv_label_set_text(dsc, "The average FPS is");
-          lv_obj_align(dsc, LV_ALIGN_TOP_MID, 0, 90);
-
-          lv_obj_t * num = lv_label_create(bg);
-          lv_obj_set_style_text_font(num, font_large, 0);
+        case 30:
+            _lv_demo_music_play(2);
+            break;
+        case 40: {
+                lv_obj_t * bg = lv_layer_top();
+                lv_obj_set_style_bg_color(bg, lv_color_hex(0x6f8af6), 0);
+                lv_obj_set_style_text_color(bg, lv_color_white(), 0);
+                lv_obj_set_style_bg_opa(bg, LV_OPA_COVER, 0);
+                lv_obj_fade_in(bg, 400, 0);
+                lv_obj_t * dsc = lv_label_create(bg);
+                lv_obj_set_style_text_font(dsc, font_small, 0);
+                lv_label_set_text(dsc, "The average FPS is");
+                lv_obj_align(dsc, LV_ALIGN_TOP_MID, 0, 90);
+
+                lv_obj_t * num = lv_label_create(bg);
+                lv_obj_set_style_text_font(num, font_large, 0);
 #if LV_USE_PERF_MONITOR
-          lv_label_set_text_fmt(num, "%d", lv_refr_get_fps_avg());
+                lv_label_set_text_fmt(num, "%d", lv_refr_get_fps_avg());
 #endif
-          lv_obj_align(num, LV_ALIGN_TOP_MID, 0, 120);
+                lv_obj_align(num, LV_ALIGN_TOP_MID, 0, 120);
 
-          lv_obj_t * attr = lv_label_create(bg);
-          lv_obj_set_style_text_align(attr, LV_TEXT_ALIGN_CENTER, 0);
-          lv_obj_set_style_text_font(attr, font_small, 0);
+                lv_obj_t * attr = lv_label_create(bg);
+                lv_obj_set_style_text_align(attr, LV_TEXT_ALIGN_CENTER, 0);
+                lv_obj_set_style_text_font(attr, font_small, 0);
 #if LV_DEMO_MUSIC_SQUARE || LV_DEMO_MUSIC_ROUND
-          lv_label_set_text(attr, "Copyright 2020 LVGL Kft.\nwww.lvgl.io | lvgl@lvgl.io");
+                lv_label_set_text(attr, "Copyright 2020 LVGL Kft.\nwww.lvgl.io | lvgl@lvgl.io");
 #else
-          lv_label_set_text(attr, "Copyright 2020 LVGL Kft. | www.lvgl.io | lvgl@lvgl.io");
+                lv_label_set_text(attr, "Copyright 2020 LVGL Kft. | www.lvgl.io | lvgl@lvgl.io");
 #endif
-          lv_obj_align(attr, LV_ALIGN_BOTTOM_MID, 0, -10);
-          break;
-    }
-    case 41:
-        lv_scr_load(lv_obj_create(NULL));
-        _lv_demo_music_pause();
-        break;
+                lv_obj_align(attr, LV_ALIGN_BOTTOM_MID, 0, -10);
+                break;
+            }
+        case 41:
+            lv_scr_load(lv_obj_create(NULL));
+            _lv_demo_music_pause();
+            break;
     }
     state++;
 }
index e9e7691..88e79ec 100644 (file)
@@ -102,7 +102,7 @@ lv_obj_t * _lv_demo_music_list_create(lv_obj_t * parent)
 
     lv_style_init(&style_artist);
     lv_style_set_text_font(&style_artist, font_small);
-    lv_style_set_text_color(&style_artist,lv_color_hex(0xb1b0be));
+    lv_style_set_text_color(&style_artist, lv_color_hex(0xb1b0be));
 
     lv_style_init(&style_time);
     lv_style_set_text_font(&style_time, font_medium);
index 2867886..f7bc4b8 100644 (file)
 #define BAR_COLOR2          lv_color_hex(0x6f8af6)
 #define BAR_COLOR3          lv_color_hex(0xffffff)
 #if LV_DEMO_MUSIC_LARGE
-# define BAR_COLOR1_STOP     160
-# define BAR_COLOR2_STOP     200
+    #define BAR_COLOR1_STOP     160
+    #define BAR_COLOR2_STOP     200
 #else
-# define BAR_COLOR1_STOP     80
-# define BAR_COLOR2_STOP     100
+    #define BAR_COLOR1_STOP     80
+    #define BAR_COLOR2_STOP     100
 #endif
 #define BAR_COLOR3_STOP     (2 * LV_HOR_RES / 3)
 #define BAR_CNT             20
@@ -62,6 +62,7 @@ static void timer_cb(lv_timer_t * t);
 static void track_load(uint32_t id);
 static void stop_start_anim(lv_timer_t * t);
 static void spectrum_end_cb(lv_anim_t * a);
+static void album_fade_anim_cb(void * var, int32_t v);
 static int32_t get_cos(int32_t deg, int32_t a);
 static int32_t get_sin(int32_t deg, int32_t a);
 
@@ -82,7 +83,7 @@ static uint32_t bar_ofs = 0;
 static uint32_t spectrum_lane_ofs_start = 0;
 static uint32_t bar_rot = 0;
 static uint32_t time_act;
-static lv_timer_t *  sec_counter_timer;
+static lv_timer_t  * sec_counter_timer;
 static const lv_font_t * font_small;
 static const lv_font_t * font_large;
 static uint32_t track_id;
@@ -106,16 +107,18 @@ static const uint16_t rnd_array[30] = {994, 285, 553, 11, 792, 707, 966, 641, 85
  * Callback adapter function to convert parameter types to avoid compile-time
  * warning.
  */
-static void _img_set_zoom_anim_cb(void * obj, int32_t zoom) {
-  lv_img_set_zoom((lv_obj_t*)obj, (uint16_t)zoom);
+static void _img_set_zoom_anim_cb(void * obj, int32_t zoom)
+{
+    lv_img_set_zoom((lv_obj_t *)obj, (uint16_t)zoom);
 }
 
 /*
  * Callback adapter function to convert parameter types to avoid compile-time
  * warning.
  */
-static void _obj_set_x_anim_cb(void * obj, int32_t x) {
-  lv_obj_set_x((lv_obj_t*)obj, (lv_coord_t)x);
+static void _obj_set_x_anim_cb(void * obj, int32_t x)
+{
+    lv_obj_set_x((lv_obj_t *)obj, (lv_coord_t)x);
 }
 
 lv_obj_t * _lv_demo_music_main_create(lv_obj_t * parent)
@@ -145,16 +148,17 @@ lv_obj_t * _lv_demo_music_main_create(lv_obj_t * parent)
 #if LV_DEMO_MUSIC_SQUARE || LV_DEMO_MUSIC_ROUND
     static const lv_coord_t grid_cols[] = {LV_GRID_FR(1), LV_GRID_TEMPLATE_LAST};
     static lv_coord_t grid_rows[] = {LV_DEMO_MUSIC_HANDLE_SIZE,     /*Spacing*/
-                                           0,   /*Spectrum obj, set later*/
-                                           LV_GRID_CONTENT, /*Title box*/
-                                           LV_GRID_FR(3),   /*Spacer*/
-                                           LV_GRID_CONTENT, /*Icon box*/
-                                           LV_GRID_FR(3),   /*Spacer*/
-                                           LV_GRID_CONTENT, /*Control box*/
-                                           LV_GRID_FR(3),   /*Spacer*/
-                                           LV_GRID_CONTENT, /*Handle box*/
-                                           LV_DEMO_MUSIC_HANDLE_SIZE,     /*Spacing*/
-                                           LV_GRID_TEMPLATE_LAST};
+                                     0,   /*Spectrum obj, set later*/
+                                     LV_GRID_CONTENT, /*Title box*/
+                                     LV_GRID_FR(3),   /*Spacer*/
+                                     LV_GRID_CONTENT, /*Icon box*/
+                                     LV_GRID_FR(3),   /*Spacer*/
+                                     LV_GRID_CONTENT, /*Control box*/
+                                     LV_GRID_FR(3),   /*Spacer*/
+                                     LV_GRID_CONTENT, /*Handle box*/
+                                     LV_DEMO_MUSIC_HANDLE_SIZE,     /*Spacing*/
+                                     LV_GRID_TEMPLATE_LAST
+                                    };
 
     grid_rows[1] = LV_VER_RES;
 
@@ -184,7 +188,8 @@ lv_obj_t * _lv_demo_music_main_create(lv_obj_t * parent)
                                            LV_GRID_CONTENT, /*Handle box*/
                                            LV_GRID_FR(1),   /*Spacer*/
                                            LV_DEMO_MUSIC_HANDLE_SIZE,     /*Spacing*/
-                                           LV_GRID_TEMPLATE_LAST};
+                                           LV_GRID_TEMPLATE_LAST
+                                          };
 
     lv_obj_set_grid_dsc_array(cont, grid_cols, grid_rows);
     lv_obj_set_style_grid_row_align(cont, LV_GRID_ALIGN_SPACE_BETWEEN, 0);
@@ -207,7 +212,8 @@ lv_obj_t * _lv_demo_music_main_create(lv_obj_t * parent)
                                            LV_GRID_CONTENT, /*Handle box*/
                                            LV_GRID_FR(1),   /*Spacer*/
                                            LV_DEMO_MUSIC_HANDLE_SIZE,     /*Spacing*/
-                                           LV_GRID_TEMPLATE_LAST};
+                                           LV_GRID_TEMPLATE_LAST
+                                          };
 
     lv_obj_set_grid_dsc_array(cont, grid_cols, grid_rows);
     lv_obj_set_style_grid_row_align(cont, LV_GRID_ALIGN_SPACE_BETWEEN, 0);
@@ -292,17 +298,20 @@ void _lv_demo_music_album_next(bool next)
     if(next) {
         id++;
         if(id >= ACTIVE_TRACK_CNT) id = 0;
-    } else {
+    }
+    else {
         if(id == 0) {
             id = ACTIVE_TRACK_CNT - 1;
-        } else {
+        }
+        else {
             id--;
         }
     }
 
     if(playing) {
         _lv_demo_music_play(id);
-    } else {
+    }
+    else {
         track_load(id);
     }
 }
@@ -381,21 +390,21 @@ static lv_obj_t * create_cont(lv_obj_t * parent)
     lv_obj_t * placeholder1 = lv_obj_create(main_cont);
     lv_obj_remove_style_all(placeholder1);
     lv_obj_clear_flag(placeholder1, LV_OBJ_FLAG_CLICKABLE);
-//    lv_obj_set_style_bg_color(placeholder1, lv_color_hex(0xff0000), 0);
-//    lv_obj_set_style_bg_opa(placeholder1, LV_OPA_50, 0);
+    //    lv_obj_set_style_bg_color(placeholder1, lv_color_hex(0xff0000), 0);
+    //    lv_obj_set_style_bg_opa(placeholder1, LV_OPA_50, 0);
 
     lv_obj_t * placeholder2 = lv_obj_create(main_cont);
     lv_obj_remove_style_all(placeholder2);
     lv_obj_clear_flag(placeholder2, LV_OBJ_FLAG_CLICKABLE);
-//    lv_obj_set_style_bg_color(placeholder2, lv_color_hex(0x00ff00), 0);
-//    lv_obj_set_style_bg_opa(placeholder2, LV_OPA_50, 0);
+    //    lv_obj_set_style_bg_color(placeholder2, lv_color_hex(0x00ff00), 0);
+    //    lv_obj_set_style_bg_opa(placeholder2, LV_OPA_50, 0);
 
 #if LV_DEMO_MUSIC_SQUARE || LV_DEMO_MUSIC_ROUND
     lv_obj_t * placeholder3 = lv_obj_create(main_cont);
     lv_obj_remove_style_all(placeholder3);
     lv_obj_clear_flag(placeholder3, LV_OBJ_FLAG_CLICKABLE);
-//    lv_obj_set_style_bg_color(placeholder3, lv_color_hex(0x0000ff), 0);
-//    lv_obj_set_style_bg_opa(placeholder3, LV_OPA_20, 0);
+    //    lv_obj_set_style_bg_color(placeholder3, lv_color_hex(0x0000ff), 0);
+    //    lv_obj_set_style_bg_opa(placeholder3, LV_OPA_20, 0);
 
     lv_obj_set_size(placeholder1, lv_pct(100), LV_VER_RES);
     lv_obj_set_y(placeholder1, 0);
@@ -423,13 +432,13 @@ static void create_wave_images(lv_obj_t * parent)
     LV_IMG_DECLARE(img_lv_demo_music_wave_top);
     LV_IMG_DECLARE(img_lv_demo_music_wave_bottom);
     lv_obj_t * wave_top = lv_img_create(parent);
-    lv_img_set_src(wave_top,&img_lv_demo_music_wave_top);
+    lv_img_set_src(wave_top, &img_lv_demo_music_wave_top);
     lv_obj_set_width(wave_top, LV_HOR_RES);
     lv_obj_align(wave_top, LV_ALIGN_TOP_MID, 0, 0);
     lv_obj_add_flag(wave_top, LV_OBJ_FLAG_IGNORE_LAYOUT);
 
     lv_obj_t * wave_bottom = lv_img_create(parent);
-    lv_img_set_src(wave_bottom,&img_lv_demo_music_wave_bottom);
+    lv_img_set_src(wave_bottom, &img_lv_demo_music_wave_bottom);
     lv_obj_set_width(wave_bottom, LV_HOR_RES);
     lv_obj_align(wave_bottom, LV_ALIGN_BOTTOM_MID, 0, 0);
     lv_obj_add_flag(wave_bottom, LV_OBJ_FLAG_IGNORE_LAYOUT);
@@ -538,7 +547,7 @@ static lv_obj_t * create_ctrl_box(lv_obj_t * parent)
 #else
     lv_obj_set_style_pad_bottom(cont, 8, 0);
 #endif
-    static const lv_coord_t grid_col[] = {LV_GRID_FR(2), LV_GRID_FR(3),LV_GRID_FR(5), LV_GRID_FR(5), LV_GRID_FR(5), LV_GRID_FR(3), LV_GRID_FR(2), LV_GRID_TEMPLATE_LAST};
+    static const lv_coord_t grid_col[] = {LV_GRID_FR(2), LV_GRID_FR(3), LV_GRID_FR(5), LV_GRID_FR(5), LV_GRID_FR(5), LV_GRID_FR(3), LV_GRID_FR(2), LV_GRID_TEMPLATE_LAST};
     static const lv_coord_t grid_row[] = {LV_GRID_CONTENT, LV_GRID_CONTENT, LV_GRID_TEMPLATE_LAST};
     lv_obj_set_grid_dsc_array(cont, grid_col, grid_row);
 
@@ -659,9 +668,14 @@ static void track_load(uint32_t id)
     lv_label_set_text(artist_label, _lv_demo_music_get_artist(track_id));
     lv_label_set_text(genre_label, _lv_demo_music_get_genre(track_id));
 
-    lv_obj_fade_out(album_img_obj, 500, 0);
-
     lv_anim_t a;
+    lv_anim_init(&a);
+    lv_anim_set_var(&a, album_img_obj);
+    lv_anim_set_values(&a, lv_obj_get_style_img_opa(album_img_obj, 0), LV_OPA_TRANSP);
+    lv_anim_set_exec_cb(&a, album_fade_anim_cb);
+    lv_anim_set_time(&a, 500);
+    lv_anim_start(&a);
+
     lv_anim_init(&a);
     lv_anim_set_var(&a, album_img_obj);
     lv_anim_set_time(&a, 500);
@@ -669,13 +683,15 @@ static void track_load(uint32_t id)
 #if LV_DEMO_MUSIC_LANDSCAPE
     if(next) {
         lv_anim_set_values(&a, 0, - LV_HOR_RES / 7);
-    } else {
+    }
+    else {
         lv_anim_set_values(&a, 0, LV_HOR_RES / 7);
     }
 #else
     if(next) {
         lv_anim_set_values(&a, 0, - LV_HOR_RES / 2);
-    } else {
+    }
+    else {
         lv_anim_set_values(&a, 0, LV_HOR_RES / 2);
     }
 #endif
@@ -692,7 +708,6 @@ static void track_load(uint32_t id)
     lv_anim_start(&a);
 
     album_img_obj = album_img_create(spectrum_obj);
-    lv_obj_fade_in(album_img_obj, 500, 100);
 
     lv_anim_set_path_cb(&a, lv_anim_path_overshoot);
     lv_anim_set_var(&a, album_img_obj);
@@ -702,6 +717,14 @@ static void track_load(uint32_t id)
     lv_anim_set_exec_cb(&a, _img_set_zoom_anim_cb);
     lv_anim_set_ready_cb(&a, NULL);
     lv_anim_start(&a);
+
+    lv_anim_init(&a);
+    lv_anim_set_var(&a, album_img_obj);
+    lv_anim_set_values(&a, 0, LV_OPA_COVER);
+    lv_anim_set_exec_cb(&a, album_fade_anim_cb);
+    lv_anim_set_time(&a, 500);
+    lv_anim_set_delay(&a, 100);
+    lv_anim_start(&a);
 }
 
 int32_t get_cos(int32_t deg, int32_t a)
@@ -768,18 +791,18 @@ static void spectrum_draw_event_cb(lv_event_t * e)
             uint32_t f;
             uint32_t band_w = 0;    /*Real number of bars in this band.*/
             switch(s) {
-            case 0:
-                band_w = 20;
-                break;
-            case 1:
-                band_w = 8;
-                break;
-            case 2:
-                band_w = 4;
-                break;
-            case 3:
-                band_w = 2;
-                break;
+                case 0:
+                    band_w = 20;
+                    break;
+                case 1:
+                    band_w = 8;
+                    break;
+                case 2:
+                    band_w = 4;
+                    break;
+                case 3:
+                    band_w = 2;
+                    break;
             }
 
             /* Add "side bars" with cosine characteristic.*/
@@ -799,7 +822,7 @@ static void spectrum_draw_event_cb(lv_event_t * e)
         for(i = 0; i < BAR_CNT; i++) {
             uint32_t deg_space = 1;
             uint32_t deg = i * DEG_STEP + 90;
-            uint32_t j = (i + bar_rot + rnd_array[bar_ofs %10]) % BAR_CNT;
+            uint32_t j = (i + bar_rot + rnd_array[bar_ofs % 10]) % BAR_CNT;
             uint32_t k = (i + bar_rot + rnd_array[(bar_ofs + 1) % 10]) % BAR_CNT;
 
             uint32_t v = (r[k] * animv + r[j] * (amax - animv)) / amax;
@@ -811,8 +834,10 @@ static void spectrum_draw_event_cb(lv_event_t * e)
 
             if(v < BAR_COLOR1_STOP) draw_dsc.bg_color = BAR_COLOR1;
             else if(v > BAR_COLOR3_STOP) draw_dsc.bg_color = BAR_COLOR3;
-            else if(v > BAR_COLOR2_STOP) draw_dsc.bg_color = lv_color_mix(BAR_COLOR3, BAR_COLOR2, ((v - BAR_COLOR2_STOP) * 255) / (BAR_COLOR3_STOP-BAR_COLOR2_STOP));
-            else draw_dsc.bg_color = lv_color_mix(BAR_COLOR2, BAR_COLOR1, ((v - BAR_COLOR1_STOP) * 255) / (BAR_COLOR2_STOP - BAR_COLOR1_STOP));
+            else if(v > BAR_COLOR2_STOP) draw_dsc.bg_color = lv_color_mix(BAR_COLOR3, BAR_COLOR2,
+                                                                              ((v - BAR_COLOR2_STOP) * 255) / (BAR_COLOR3_STOP - BAR_COLOR2_STOP));
+            else draw_dsc.bg_color = lv_color_mix(BAR_COLOR2, BAR_COLOR1,
+                                                      ((v - BAR_COLOR1_STOP) * 255) / (BAR_COLOR2_STOP - BAR_COLOR1_STOP));
 
             uint32_t di = deg + deg_space;
 
@@ -859,7 +884,7 @@ static void spectrum_anim_cb(void * a, int32_t v)
     static int32_t last_bass = -1000;
     static int32_t dir = 1;
     if(spectrum[spectrum_i][0] > 12) {
-        if(spectrum_i-last_bass > 5) {
+        if(spectrum_i - last_bass > 5) {
             bass_cnt++;
             last_bass = spectrum_i;
             if(bass_cnt >= 2) {
@@ -869,7 +894,7 @@ static void spectrum_anim_cb(void * a, int32_t v)
             }
         }
     }
-    if(spectrum[spectrum_i][0] < 4) bar_rot+= dir;
+    if(spectrum[spectrum_i][0] < 4) bar_rot += dir;
 
     lv_img_set_zoom(album_img_obj, LV_IMG_ZOOM_NONE + spectrum[spectrum_i][0]);
 }
@@ -891,21 +916,21 @@ static lv_obj_t * album_img_create(lv_obj_t * parent)
     img = lv_img_create(parent);
 
     switch(track_id) {
-    case 2:
-        lv_img_set_src(img, &img_lv_demo_music_cover_3);
-        spectrum = spectrum_3;
-        spectrum_len = sizeof(spectrum_3) / sizeof(spectrum_3[0]);
-        break;
-    case 1:
-        lv_img_set_src(img, &img_lv_demo_music_cover_2);
-        spectrum = spectrum_2;
-        spectrum_len = sizeof(spectrum_2) / sizeof(spectrum_2[0]);
-        break;
-    case 0:
-        lv_img_set_src(img, &img_lv_demo_music_cover_1);
-        spectrum = spectrum_1;
-        spectrum_len = sizeof(spectrum_1) / sizeof(spectrum_1[0]);
-        break;
+        case 2:
+            lv_img_set_src(img, &img_lv_demo_music_cover_3);
+            spectrum = spectrum_3;
+            spectrum_len = sizeof(spectrum_3) / sizeof(spectrum_3[0]);
+            break;
+        case 1:
+            lv_img_set_src(img, &img_lv_demo_music_cover_2);
+            spectrum = spectrum_2;
+            spectrum_len = sizeof(spectrum_2) / sizeof(spectrum_2[0]);
+            break;
+        case 0:
+            lv_img_set_src(img, &img_lv_demo_music_cover_1);
+            spectrum = spectrum_1;
+            spectrum_len = sizeof(spectrum_1) / sizeof(spectrum_1[0]);
+            break;
     }
     lv_img_set_antialias(img, false);
     lv_obj_align(img, LV_ALIGN_CENTER, 0, 0);
@@ -929,7 +954,8 @@ static void play_event_click_cb(lv_event_t * e)
     lv_obj_t * obj = lv_event_get_target(e);
     if(lv_obj_has_state(obj, LV_STATE_CHECKED)) {
         _lv_demo_music_resume();
-    } else {
+    }
+    else {
         _lv_demo_music_pause();
     }
 }
@@ -970,5 +996,10 @@ static void stop_start_anim(lv_timer_t * t)
     start_anim = false;
     lv_obj_refresh_ext_draw_size(spectrum_obj);
 }
+
+static void album_fade_anim_cb(void * var, int32_t v)
+{
+    lv_obj_set_style_img_opa(var, v, 0);
+}
 #endif /*LV_USE_DEMO_MUSIC*/
 
index 321d14a..df6ad10 100644 (file)
@@ -2,10 +2,10 @@
 
 ## Overview
 
-A stress test for LVGL. 
-It contains a lot of object creation, deletion, animations, styles usage, and so on. It can be used if there is any memory corruption during heavy usage or any memory leaks. 
+A stress test for LVGL.
+It contains a lot of object creation, deletion, animations, styles usage, and so on. It can be used if there is any memory corruption during heavy usage or any memory leaks.
 
-![Printer demo with LVGL embedded GUI library](https://github.com/lvgl/lv_examples/blob/master/src/lv_demo_stress/screenshot1.gif?raw=true)
+![Stress demo with LVGL embedded GUI library](screenshot1.gif)
 
 ## Run the demo
 - In `lv_conf.h` or equivalent places set `LV_USE_DEMO_STRESS 1`
index feebfbc..b247443 100644 (file)
@@ -44,6 +44,7 @@ static uint32_t mem_free_start = 0;
 
 void lv_demo_stress(void)
 {
+    LV_LOG_USER("Starting stress test. (< 100 bytes permanent memory leak is normal due to fragmentation)");
     lv_timer_create(obj_test_task_cb, LV_DEMO_STRESS_TIME_STEP, NULL);
 }
 
@@ -59,28 +60,27 @@ static void obj_test_task_cb(lv_timer_t * tmr)
     lv_anim_t a;
     lv_obj_t * obj;
 
-//    printf("step start: %d\n", state);
+    //    printf("step start: %d\n", state);
 
     switch(state) {
-        case -1:
-        {
-            lv_res_t res = lv_mem_test();
-            if(res != LV_RES_OK) {
-                LV_LOG_ERROR("Memory integrity error");
-            }
+        case -1: {
+                lv_res_t res = lv_mem_test();
+                if(res != LV_RES_OK) {
+                    LV_LOG_ERROR("Memory integrity error");
+                }
 
-            lv_mem_monitor_t mon;
-            lv_mem_monitor(&mon);
+                lv_mem_monitor_t mon;
+                lv_mem_monitor(&mon);
 
-            if(mem_free_start == 0)  mem_free_start = mon.free_size;
+                if(mem_free_start == 0)  mem_free_start = mon.free_size;
 
-            LV_LOG_USER("mem leak since start: %d, frag: %3d %%",  mem_free_start - mon.free_size, mon.frag_pct);
-        }
+                LV_LOG_USER("mem leak since start: %d, frag: %3d %%",  mem_free_start - mon.free_size, mon.frag_pct);
+            }
             break;
         case 0:
             /* Holder for all object types */
             main_page = lv_obj_create(lv_scr_act());
-            lv_obj_set_size(main_page, LV_HOR_RES / 2 , LV_VER_RES);
+            lv_obj_set_size(main_page, LV_HOR_RES / 2, LV_VER_RES);
             lv_obj_set_flex_flow(main_page, LV_FLEX_FLOW_COLUMN);
 
 
@@ -90,25 +90,24 @@ static void obj_test_task_cb(lv_timer_t * tmr)
             lv_label_set_text(obj, "Multi line\n"LV_SYMBOL_OK LV_SYMBOL_CLOSE LV_SYMBOL_WIFI);
             break;
 
-        case 1:
-              {
-                  obj = lv_tabview_create(lv_scr_act(), LV_DIR_TOP, 50);
-                  lv_obj_set_size(obj, LV_HOR_RES / 2, LV_VER_RES / 2);
-                  lv_obj_align(obj, LV_ALIGN_BOTTOM_RIGHT, 0, 0);
-                  lv_obj_t * t = lv_tabview_add_tab(obj, "First");
-
-                  t = lv_tabview_add_tab(obj, "Second");
-                  lv_obj_t * c = lv_colorwheel_create(t, true);
-                  lv_obj_set_size(c,  150, 150);
-                  //                  c = lv_led_create(t, NULL);
-                  //                  lv_obj_set_pos(c, 160, 20);
-                  t = lv_tabview_add_tab(obj, LV_SYMBOL_EDIT " Edit");
-                  t = lv_tabview_add_tab(obj, LV_SYMBOL_CLOSE);
-
-                  lv_tabview_set_act(obj, 1, LV_ANIM_ON);
-                  auto_del(obj, LV_DEMO_STRESS_TIME_STEP * 5 + 30);
-              }
-              break;
+        case 1: {
+                obj = lv_tabview_create(lv_scr_act(), LV_DIR_TOP, 50);
+                lv_obj_set_size(obj, LV_HOR_RES / 2, LV_VER_RES / 2);
+                lv_obj_align(obj, LV_ALIGN_BOTTOM_RIGHT, 0, 0);
+                lv_obj_t * t = lv_tabview_add_tab(obj, "First");
+
+                t = lv_tabview_add_tab(obj, "Second");
+                lv_obj_t * c = lv_colorwheel_create(t, true);
+                lv_obj_set_size(c,  150, 150);
+                //                  c = lv_led_create(t, NULL);
+                //                  lv_obj_set_pos(c, 160, 20);
+                t = lv_tabview_add_tab(obj, LV_SYMBOL_EDIT " Edit");
+                t = lv_tabview_add_tab(obj, LV_SYMBOL_CLOSE);
+
+                lv_tabview_set_act(obj, 1, LV_ANIM_ON);
+                auto_del(obj, LV_DEMO_STRESS_TIME_STEP * 5 + 30);
+            }
+            break;
 
         case 2:
             obj = lv_btn_create(main_page);
@@ -147,12 +146,12 @@ static void obj_test_task_cb(lv_timer_t * tmr)
             lv_obj_set_style_bg_img_src(obj, LV_SYMBOL_DUMMY"Text from\nstyle", 0);
             lv_obj_del_async(obj);  /*Delete on next call of `lv_task_handler` (so not now)*/
 
-//            obj = lv_btn_create(main_page);
-//            lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT);
-//            lv_obj_set_style_bg_img_src(obj, LV_SYMBOL_LEFT);
-//            lv_obj_set_style_bg_img_opa(obj, LV_OPA_50);
-//            lv_obj_set_style_bg_img_tiled(obj, true);
-//            lv_obj_scroll_to_view(obj, LV_ANIM_ON);
+            //            obj = lv_btn_create(main_page);
+            //            lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT);
+            //            lv_obj_set_style_bg_img_src(obj, LV_SYMBOL_LEFT);
+            //            lv_obj_set_style_bg_img_opa(obj, LV_OPA_50);
+            //            lv_obj_set_style_bg_img_tiled(obj, true);
+            //            lv_obj_scroll_to_view(obj, LV_ANIM_ON);
             break;
 
         case 5:
@@ -183,19 +182,19 @@ static void obj_test_task_cb(lv_timer_t * tmr)
             break;
 
         case 8:
-              obj = lv_win_create(lv_scr_act(), 50);
-              lv_obj_set_size(obj, LV_HOR_RES / 2, LV_VER_RES / 2);
-              lv_obj_align(obj, LV_ALIGN_BOTTOM_RIGHT, 0, 0);
-              lv_win_add_title(obj, "Window title");
-              lv_win_add_btn(obj, LV_SYMBOL_CLOSE, 40);
-              lv_win_add_btn(obj, LV_SYMBOL_DOWN, 40);
-              auto_del(obj, LV_DEMO_STRESS_TIME_STEP * 3 + 5);
-
-              obj = lv_calendar_create(lv_win_get_content(obj));
-              break;
+            obj = lv_win_create(lv_scr_act(), 50);
+            lv_obj_set_size(obj, LV_HOR_RES / 2, LV_VER_RES / 2);
+            lv_obj_align(obj, LV_ALIGN_BOTTOM_RIGHT, 0, 0);
+            lv_win_add_title(obj, "Window title");
+            lv_win_add_btn(obj, LV_SYMBOL_CLOSE, 40);
+            lv_win_add_btn(obj, LV_SYMBOL_DOWN, 40);
+            auto_del(obj, LV_DEMO_STRESS_TIME_STEP * 3 + 5);
+
+            obj = lv_calendar_create(lv_win_get_content(obj));
+            break;
         case 9:
             lv_textarea_set_text(ta, "A very very long text which will should make the text area scrollable"
-                    "Here area some dummy sentences to be sure the text area will be really scrollable.");
+                                 "Here area some dummy sentences to be sure the text area will be really scrollable.");
             break;
         case 10:
             obj = lv_keyboard_create(lv_scr_act());
@@ -257,27 +256,26 @@ static void obj_test_task_cb(lv_timer_t * tmr)
             lv_textarea_set_one_line(ta, false);
             break;
 
-        case 16:
-        {
-              lv_obj_t * tv = lv_tileview_create(lv_scr_act());
-              lv_obj_set_size(tv, 200, 200);
-              auto_del(tv, LV_DEMO_STRESS_TIME_STEP * 4 + 5);
+        case 16: {
+                lv_obj_t * tv = lv_tileview_create(lv_scr_act());
+                lv_obj_set_size(tv, 200, 200);
+                auto_del(tv, LV_DEMO_STRESS_TIME_STEP * 4 + 5);
 
-              obj = lv_tileview_add_tile(tv, 0, 0, LV_DIR_ALL);
-              obj = lv_label_create(obj);
-              lv_label_set_text(obj, "Tile: 0;0");
+                obj = lv_tileview_add_tile(tv, 0, 0, LV_DIR_ALL);
+                obj = lv_label_create(obj);
+                lv_label_set_text(obj, "Tile: 0;0");
 
-              obj = lv_tileview_add_tile(tv, 0, 1, LV_DIR_ALL);
-              obj = lv_label_create(obj);
-              lv_label_set_text(obj, "Tile: 0;1");
+                obj = lv_tileview_add_tile(tv, 0, 1, LV_DIR_ALL);
+                obj = lv_label_create(obj);
+                lv_label_set_text(obj, "Tile: 0;1");
 
-              obj = lv_tileview_add_tile(tv, 1, 1, LV_DIR_ALL);
-              obj = lv_label_create(obj);
-              lv_label_set_text(obj, "Tile: 1;1");
+                obj = lv_tileview_add_tile(tv, 1, 1, LV_DIR_ALL);
+                obj = lv_label_create(obj);
+                lv_label_set_text(obj, "Tile: 1;1");
 
-              lv_obj_set_tile_id(tv, 1, 1, LV_ANIM_ON);
-        }
-        break;
+                lv_obj_set_tile_id(tv, 1, 1, LV_ANIM_ON);
+            }
+            break;
 
         case 18:
             obj = lv_list_create(main_page);
@@ -423,8 +421,8 @@ static void obj_test_task_cb(lv_timer_t * tmr)
             break;
     }
 
-//    printf("step end: %d\n", state);
-    state ++;
+    //    printf("step end: %d\n", state);
+    state++;
 }
 
 static void auto_del(lv_obj_t * obj, uint32_t delay)
index 0606adc..839b999 100644 (file)
@@ -11,7 +11,7 @@
 #if LV_USE_DEMO_WIDGETS
 
 #if LV_MEM_CUSTOM == 0 && LV_MEM_SIZE < (38ul * 1024ul)
-    #error Insufficient memory for lv_demo_widgets. Please set LV_MEM_SIZE to at least 38KB (38ul * 1024ul).  48KB is recommended. 
+    #error Insufficient memory for lv_demo_widgets. Please set LV_MEM_SIZE to at least 38KB (38ul * 1024ul).  48KB is recommended.
 #endif
 
 /*********************
@@ -25,7 +25,7 @@ typedef enum {
     DISP_SMALL,
     DISP_MEDIUM,
     DISP_LARGE,
-}disp_size_t;
+} disp_size_t;
 
 /**********************
  *  STATIC PROTOTYPES
@@ -35,8 +35,10 @@ static void analytics_create(lv_obj_t * parent);
 static void shop_create(lv_obj_t * parent);
 static void color_changer_create(lv_obj_t * parent);
 
-static lv_obj_t * create_meter_box(lv_obj_t * parent, const char * title, const char * text1, const char * text2, const char * text3);
-static lv_obj_t * create_shop_item(lv_obj_t * parent, const void * img_src, const char * name, const char * category, const char * price);
+static lv_obj_t * create_meter_box(lv_obj_t * parent, const char * title, const char * text1, const char * text2,
+                                   const char * text3);
+static lv_obj_t * create_shop_item(lv_obj_t * parent, const void * img_src, const char * name, const char * category,
+                                   const char * price);
 
 static void color_changer_event_cb(lv_event_t * e);
 static void color_event_cb(lv_event_t * e);
@@ -114,7 +116,8 @@ void lv_demo_widgets(void)
 #else
         LV_LOG_WARN("LV_FONT_MONTSERRAT_16 is not enabled for the widgets demo. Using LV_FONT_DEFAULT instead.");
 #endif
-    } else if(disp_size == DISP_MEDIUM) {
+    }
+    else if(disp_size == DISP_MEDIUM) {
         tab_h = 45;
 #if LV_FONT_MONTSERRAT_20
         font_large     = &lv_font_montserrat_20;
@@ -126,22 +129,24 @@ void lv_demo_widgets(void)
 #else
         LV_LOG_WARN("LV_FONT_MONTSERRAT_14 is not enabled for the widgets demo. Using LV_FONT_DEFAULT instead.");
 #endif
-    } else { /* disp_size == DISP_SMALL */
+    }
+    else {   /* disp_size == DISP_SMALL */
         tab_h = 45;
 #if LV_FONT_MONTSERRAT_18
         font_large     = &lv_font_montserrat_18;
 #else
-    LV_LOG_WARN("LV_FONT_MONTSERRAT_18 is not enabled for the widgets demo. Using LV_FONT_DEFAULT instead.");
+        LV_LOG_WARN("LV_FONT_MONTSERRAT_18 is not enabled for the widgets demo. Using LV_FONT_DEFAULT instead.");
 #endif
 #if LV_FONT_MONTSERRAT_12
         font_normal    = &lv_font_montserrat_12;
 #else
-    LV_LOG_WARN("LV_FONT_MONTSERRAT_12 is not enabled for the widgets demo. Using LV_FONT_DEFAULT instead.");
+        LV_LOG_WARN("LV_FONT_MONTSERRAT_12 is not enabled for the widgets demo. Using LV_FONT_DEFAULT instead.");
 #endif
     }
 
 #if LV_USE_THEME_DEFAULT
-    lv_theme_default_init(NULL, lv_palette_main(LV_PALETTE_BLUE), lv_palette_main(LV_PALETTE_RED), LV_THEME_DEFAULT_DARK, font_normal);
+    lv_theme_default_init(NULL, lv_palette_main(LV_PALETTE_BLUE), lv_palette_main(LV_PALETTE_RED), LV_THEME_DEFAULT_DARK,
+                          font_normal);
 #endif
 
     lv_style_init(&style_text_muted);
@@ -210,7 +215,7 @@ static void profile_create(lv_obj_t * parent)
 
     lv_obj_t * dsc = lv_label_create(panel1);
     lv_obj_add_style(dsc, &style_text_muted, 0);
-    lv_label_set_text(dsc, "This is a short description of me. Take a look at my profile!" );
+    lv_label_set_text(dsc, "This is a short description of me. Take a look at my profile!");
     lv_label_set_long_mode(dsc, LV_LABEL_LONG_WRAP);
 
     lv_obj_t * email_icn = lv_label_create(panel1);
@@ -325,14 +330,14 @@ static void profile_create(lv_obj_t * parent)
 
         static lv_coord_t grid_2_col_dsc[] = {LV_GRID_FR(1), LV_GRID_FR(1), LV_GRID_TEMPLATE_LAST};
         static lv_coord_t grid_2_row_dsc[] = {
-                LV_GRID_CONTENT,  /*Title*/
-                5,                /*Separator*/
-                LV_GRID_CONTENT,  /*Box title*/
-                30,               /*Boxes*/
-                5,                /*Separator*/
-                LV_GRID_CONTENT,  /*Box title*/
-                30,               /*Boxes*/
-                LV_GRID_TEMPLATE_LAST
+            LV_GRID_CONTENT,  /*Title*/
+            5,                /*Separator*/
+            LV_GRID_CONTENT,  /*Box title*/
+            30,               /*Boxes*/
+            5,                /*Separator*/
+            LV_GRID_CONTENT,  /*Box title*/
+            30,               /*Boxes*/
+            LV_GRID_TEMPLATE_LAST
         };
 
 
@@ -382,27 +387,28 @@ static void profile_create(lv_obj_t * parent)
         /*Create the top panel*/
         static lv_coord_t grid_1_col_dsc[] = {LV_GRID_CONTENT, 1, LV_GRID_CONTENT, LV_GRID_FR(1), LV_GRID_TEMPLATE_LAST};
         static lv_coord_t grid_1_row_dsc[] = {
-                LV_GRID_CONTENT, /*Name*/
-                LV_GRID_CONTENT, /*Description*/
-                LV_GRID_CONTENT, /*Email*/
-                -20,
-                LV_GRID_CONTENT, /*Phone*/
-                LV_GRID_CONTENT, /*Buttons*/
-                LV_GRID_TEMPLATE_LAST};
+            LV_GRID_CONTENT, /*Name*/
+            LV_GRID_CONTENT, /*Description*/
+            LV_GRID_CONTENT, /*Email*/
+            -20,
+            LV_GRID_CONTENT, /*Phone*/
+            LV_GRID_CONTENT, /*Buttons*/
+            LV_GRID_TEMPLATE_LAST
+        };
 
         static lv_coord_t grid_2_col_dsc[] = {LV_GRID_FR(1), LV_GRID_FR(1), LV_GRID_TEMPLATE_LAST};
         static lv_coord_t grid_2_row_dsc[] = {
-                LV_GRID_CONTENT,  /*Title*/
-                5,                /*Separator*/
-                LV_GRID_CONTENT,  /*Box title*/
-                40,               /*Box*/
-                LV_GRID_CONTENT,  /*Box title*/
-                40,               /*Box*/
-                LV_GRID_CONTENT,  /*Box title*/
-                40,               /*Box*/
-                LV_GRID_CONTENT,  /*Box title*/
-                40,               /*Box*/
-                LV_GRID_TEMPLATE_LAST
+            LV_GRID_CONTENT,  /*Title*/
+            5,                /*Separator*/
+            LV_GRID_CONTENT,  /*Box title*/
+            40,               /*Box*/
+            LV_GRID_CONTENT,  /*Box title*/
+            40,               /*Box*/
+            LV_GRID_CONTENT,  /*Box title*/
+            40,               /*Box*/
+            LV_GRID_CONTENT,  /*Box title*/
+            40,               /*Box*/
+            LV_GRID_TEMPLATE_LAST
         };
 
 
@@ -454,29 +460,30 @@ static void profile_create(lv_obj_t * parent)
         /*Create the top panel*/
         static lv_coord_t grid_1_col_dsc[] = {LV_GRID_CONTENT, LV_GRID_FR(1), LV_GRID_TEMPLATE_LAST};
         static lv_coord_t grid_1_row_dsc[] = {LV_GRID_CONTENT, /*Avatar*/
-                                               LV_GRID_CONTENT, /*Name*/
-                                               LV_GRID_CONTENT, /*Description*/
-                                               LV_GRID_CONTENT, /*Email*/
-                                               LV_GRID_CONTENT, /*Phone number*/
-                                               LV_GRID_CONTENT, /*Button1*/
-                                               LV_GRID_CONTENT, /*Button2*/
-                                               LV_GRID_TEMPLATE_LAST};
+                                              LV_GRID_CONTENT, /*Name*/
+                                              LV_GRID_CONTENT, /*Description*/
+                                              LV_GRID_CONTENT, /*Email*/
+                                              LV_GRID_CONTENT, /*Phone number*/
+                                              LV_GRID_CONTENT, /*Button1*/
+                                              LV_GRID_CONTENT, /*Button2*/
+                                              LV_GRID_TEMPLATE_LAST
+                                             };
 
         lv_obj_set_grid_dsc_array(panel1, grid_1_col_dsc, grid_1_row_dsc);
 
 
         static lv_coord_t grid_2_col_dsc[] = {LV_GRID_FR(1), LV_GRID_FR(1), LV_GRID_TEMPLATE_LAST};
         static lv_coord_t grid_2_row_dsc[] = {
-                LV_GRID_CONTENT,  /*Title*/
-                5,                /*Separator*/
-                LV_GRID_CONTENT,  /*Box title*/
-                40,               /*Box*/
-                LV_GRID_CONTENT,  /*Box title*/
-                40,               /*Box*/
-                LV_GRID_CONTENT,  /*Box title*/
-                40,               /*Box*/
-                LV_GRID_CONTENT,  /*Box title*/
-                40, LV_GRID_TEMPLATE_LAST               /*Box*/
+            LV_GRID_CONTENT,  /*Title*/
+            5,                /*Separator*/
+            LV_GRID_CONTENT,  /*Box title*/
+            40,               /*Box*/
+            LV_GRID_CONTENT,  /*Box title*/
+            40,               /*Box*/
+            LV_GRID_CONTENT,  /*Box title*/
+            40,               /*Box*/
+            LV_GRID_CONTENT,  /*Box title*/
+            40, LV_GRID_TEMPLATE_LAST               /*Box*/
         };
 
         lv_obj_set_grid_dsc_array(panel2, grid_2_col_dsc, grid_2_row_dsc);
@@ -638,7 +645,7 @@ static void analytics_create(lv_obj_t * parent)
     lv_chart_set_next_value(chart2, ser3, lv_rand(10, 80));
 
     lv_meter_scale_t * scale;
-    lv_meter_indicator_t *indic;
+    lv_meter_indicator_t * indic;
     meter1 = create_meter_box(parent, "Monthly Target", "Revenue: 63%", "Sales: 44%", "Costs: 58%");
     lv_obj_add_flag(lv_obj_get_parent(meter1), LV_OBJ_FLAG_FLEX_IN_NEW_TRACK);
     scale = lv_meter_add_scale(meter1);
@@ -715,7 +722,8 @@ static void analytics_create(lv_obj_t * parent)
     lv_meter_set_indicator_start_value(meter3, indic, 0);
     lv_meter_set_indicator_end_value(meter3, indic, 20);
 
-    indic = lv_meter_add_scale_lines(meter3, scale, lv_palette_darken(LV_PALETTE_RED, 3), lv_palette_darken(LV_PALETTE_RED, 3), true, 0);
+    indic = lv_meter_add_scale_lines(meter3, scale, lv_palette_darken(LV_PALETTE_RED, 3), lv_palette_darken(LV_PALETTE_RED,
+                                                                                                            3), true, 0);
     lv_meter_set_indicator_start_value(meter3, indic, 0);
     lv_meter_set_indicator_end_value(meter3, indic, 20);
 
@@ -723,7 +731,8 @@ static void analytics_create(lv_obj_t * parent)
     lv_meter_set_indicator_start_value(meter3, indic, 20);
     lv_meter_set_indicator_end_value(meter3, indic, 40);
 
-    indic = lv_meter_add_scale_lines(meter3, scale, lv_palette_darken(LV_PALETTE_BLUE, 3), lv_palette_darken(LV_PALETTE_BLUE, 3), true, 0);
+    indic = lv_meter_add_scale_lines(meter3, scale, lv_palette_darken(LV_PALETTE_BLUE, 3),
+                                     lv_palette_darken(LV_PALETTE_BLUE, 3), true, 0);
     lv_meter_set_indicator_start_value(meter3, indic, 20);
     lv_meter_set_indicator_end_value(meter3, indic, 40);
 
@@ -731,7 +740,8 @@ static void analytics_create(lv_obj_t * parent)
     lv_meter_set_indicator_start_value(meter3, indic, 40);
     lv_meter_set_indicator_end_value(meter3, indic, 60);
 
-    indic = lv_meter_add_scale_lines(meter3, scale, lv_palette_darken(LV_PALETTE_GREEN, 3), lv_palette_darken(LV_PALETTE_GREEN, 3), true, 0);
+    indic = lv_meter_add_scale_lines(meter3, scale, lv_palette_darken(LV_PALETTE_GREEN, 3),
+                                     lv_palette_darken(LV_PALETTE_GREEN, 3), true, 0);
     lv_meter_set_indicator_start_value(meter3, indic, 40);
     lv_meter_set_indicator_end_value(meter3, indic, 60);
 
@@ -758,7 +768,8 @@ static void analytics_create(lv_obj_t * parent)
         lv_obj_set_size(meter1, 200, 200);
         lv_obj_set_size(meter2, 200, 200);
         lv_obj_set_size(meter3, 200, 200);
-    } else {
+    }
+    else {
         lv_coord_t meter_w = lv_obj_get_width(meter1);
         lv_obj_set_height(meter1, meter_w);
         lv_obj_set_height(meter2, meter_w);
@@ -836,13 +847,14 @@ void shop_create(lv_obj_t * parent)
         lv_obj_set_grid_cell(amount, LV_GRID_ALIGN_START, 0, 1, LV_GRID_ALIGN_START, 3, 1);
         lv_obj_set_grid_cell(hint, LV_GRID_ALIGN_START, 0, 1, LV_GRID_ALIGN_START, 4, 1);
         lv_obj_set_grid_cell(chart3, LV_GRID_ALIGN_STRETCH, 1, 1, LV_GRID_ALIGN_STRETCH, 0, 5);
-    } else if(disp_size == DISP_MEDIUM) {
+    }
+    else if(disp_size == DISP_MEDIUM) {
         static lv_coord_t grid1_col_dsc[] = {LV_GRID_FR(1), LV_GRID_FR(1), LV_GRID_TEMPLATE_LAST};
         static lv_coord_t grid1_row_dsc[] = {
-                LV_GRID_CONTENT,  /*Title + Date*/
-                LV_GRID_CONTENT,  /*Amount + Hint*/
-                200,              /*Chart*/
-                LV_GRID_TEMPLATE_LAST
+            LV_GRID_CONTENT,  /*Title + Date*/
+            LV_GRID_CONTENT,  /*Amount + Hint*/
+            200,              /*Chart*/
+            LV_GRID_TEMPLATE_LAST
         };
 
         lv_obj_update_layout(panel1);
@@ -855,15 +867,16 @@ void shop_create(lv_obj_t * parent)
         lv_obj_set_grid_cell(amount, LV_GRID_ALIGN_START, 0, 1, LV_GRID_ALIGN_CENTER, 1, 1);
         lv_obj_set_grid_cell(hint, LV_GRID_ALIGN_START, 1, 1, LV_GRID_ALIGN_CENTER, 1, 1);
         lv_obj_set_grid_cell(chart3, LV_GRID_ALIGN_END, 0, 2, LV_GRID_ALIGN_STRETCH, 2, 1);
-    } else if(disp_size == DISP_SMALL) {
+    }
+    else if(disp_size == DISP_SMALL) {
         static lv_coord_t grid1_col_dsc[] = {LV_GRID_FR(1), LV_GRID_TEMPLATE_LAST};
         static lv_coord_t grid1_row_dsc[] = {
-                LV_GRID_CONTENT,  /*Title*/
-                LV_GRID_CONTENT,  /*Date*/
-                LV_GRID_CONTENT,  /*Amount*/
-                LV_GRID_CONTENT,  /*Hint*/
-                LV_GRID_CONTENT,  /*Chart*/
-                LV_GRID_TEMPLATE_LAST
+            LV_GRID_CONTENT,  /*Title*/
+            LV_GRID_CONTENT,  /*Date*/
+            LV_GRID_CONTENT,  /*Amount*/
+            LV_GRID_CONTENT,  /*Hint*/
+            LV_GRID_CONTENT,  /*Chart*/
+            LV_GRID_TEMPLATE_LAST
         };
 
         lv_obj_set_width(chart3, LV_PCT(95));
@@ -883,7 +896,8 @@ void shop_create(lv_obj_t * parent)
     if(disp_size == DISP_SMALL) {
         lv_obj_add_flag(list, LV_OBJ_FLAG_FLEX_IN_NEW_TRACK);
         lv_obj_set_height(list, LV_PCT(100));
-    } else {
+    }
+    else {
         lv_obj_set_height(list, LV_PCT(100));
         lv_obj_set_style_max_height(list, 300, 0);
     }
@@ -907,7 +921,8 @@ void shop_create(lv_obj_t * parent)
     if(disp_size == DISP_SMALL) {
         lv_obj_add_flag(notifications, LV_OBJ_FLAG_FLEX_IN_NEW_TRACK);
         lv_obj_set_height(notifications, LV_PCT(100));
-    } else  {
+    }
+    else  {
         lv_obj_set_height(notifications, LV_PCT(100));
         lv_obj_set_style_max_height(notifications, 300, 0);
     }
@@ -947,8 +962,9 @@ void shop_create(lv_obj_t * parent)
 static void color_changer_create(lv_obj_t * parent)
 {
     static lv_palette_t palette[] = {
-            LV_PALETTE_BLUE, LV_PALETTE_GREEN, LV_PALETTE_BLUE_GREY,  LV_PALETTE_ORANGE,
-            LV_PALETTE_RED, LV_PALETTE_PURPLE, LV_PALETTE_TEAL, _LV_PALETTE_LAST };
+        LV_PALETTE_BLUE, LV_PALETTE_GREEN, LV_PALETTE_BLUE_GREY,  LV_PALETTE_ORANGE,
+        LV_PALETTE_RED, LV_PALETTE_PURPLE, LV_PALETTE_TEAL, _LV_PALETTE_LAST
+    };
 
     lv_obj_t * color_cont = lv_obj_create(parent);
     lv_obj_remove_style_all(color_cont);
@@ -987,12 +1003,13 @@ static void color_changer_create(lv_obj_t * parent)
     lv_obj_set_style_bg_img_src(btn, LV_SYMBOL_TINT, 0);
 
     if(disp_size == DISP_SMALL) {
-         lv_obj_set_size(btn, LV_DPX(42), LV_DPX(42));
-         lv_obj_align(btn, LV_ALIGN_BOTTOM_RIGHT, -LV_DPX(15), -LV_DPX(15));
-     } else {
-         lv_obj_set_size(btn, LV_DPX(50), LV_DPX(50));
-         lv_obj_align(btn, LV_ALIGN_BOTTOM_RIGHT, -LV_DPX(15), -LV_DPX(15));
-     }
+        lv_obj_set_size(btn, LV_DPX(42), LV_DPX(42));
+        lv_obj_align(btn, LV_ALIGN_BOTTOM_RIGHT, -LV_DPX(15), -LV_DPX(15));
+    }
+    else {
+        lv_obj_set_size(btn, LV_DPX(50), LV_DPX(50));
+        lv_obj_align(btn, LV_ALIGN_BOTTOM_RIGHT, -LV_DPX(15), -LV_DPX(15));
+    }
 }
 
 static void color_changer_anim_cb(void * var, int32_t v)
@@ -1005,7 +1022,8 @@ static void color_changer_anim_cb(void * var, int32_t v)
         w = lv_map(v, 0, 256, LV_DPX(52), max_w);
         lv_obj_set_width(obj, w);
         lv_obj_align(obj, LV_ALIGN_BOTTOM_RIGHT, - LV_DPX(10),  - LV_DPX(10));
-    } else {
+    }
+    else {
         w = lv_map(v, 0, 256, LV_DPX(60), max_w);
         lv_obj_set_width(obj, w);
         lv_obj_align(obj, LV_ALIGN_BOTTOM_RIGHT, - LV_DPX(10),  - LV_DPX(10));
@@ -1020,7 +1038,7 @@ static void color_changer_anim_cb(void * var, int32_t v)
 
 }
 
-static void color_changer_event_cb(lv_event_t *e)
+static void color_changer_event_cb(lv_event_t * e)
 {
     if(lv_event_get_code(e) == LV_EVENT_CLICKED) {
         lv_obj_t * color_cont = lv_event_get_user_data(e);
@@ -1032,7 +1050,8 @@ static void color_changer_event_cb(lv_event_t *e)
             lv_anim_set_values(&a, 0, 256);
             lv_anim_set_time(&a, 200);
             lv_anim_start(&a);
-        } else {
+        }
+        else {
             lv_anim_t a;
             lv_anim_init(&a);
             lv_anim_set_var(&a, color_cont);
@@ -1064,9 +1083,10 @@ static void color_event_cb(lv_event_t * e)
         lv_palette_t * palette_primary = lv_event_get_user_data(e);
         lv_palette_t palette_secondary = (*palette_primary) + 3; /*Use another palette as secondary*/
         if(palette_secondary >= _LV_PALETTE_LAST) palette_secondary = 0;
-
-        lv_theme_default_init(NULL, lv_palette_main(*palette_primary), lv_palette_main(palette_secondary), LV_THEME_DEFAULT_DARK, font_normal);
-
+#if LV_USE_THEME_DEFAULT
+        lv_theme_default_init(NULL, lv_palette_main(*palette_primary), lv_palette_main(palette_secondary),
+                              LV_THEME_DEFAULT_DARK, font_normal);
+#endif
         lv_color_t color = lv_palette_main(*palette_primary);
         lv_style_set_text_color(&style_icon, color);
         lv_chart_set_series_color(chart1, ser1, color);
@@ -1074,7 +1094,8 @@ static void color_event_cb(lv_event_t * e)
     }
 }
 
-static lv_obj_t * create_meter_box(lv_obj_t * parent, const char * title, const char * text1, const char * text2, const char * text3)
+static lv_obj_t * create_meter_box(lv_obj_t * parent, const char * title, const char * text1, const char * text2,
+                                   const char * text3)
 {
     lv_obj_t * cont = lv_obj_create(parent);
     lv_obj_set_height(cont, LV_SIZE_CONTENT);
@@ -1114,7 +1135,7 @@ static lv_obj_t * create_meter_box(lv_obj_t * parent, const char * title, const
     lv_label_set_text(label3, text3);
 
     if(disp_size == DISP_MEDIUM) {
-        static lv_coord_t grid_col_dsc[] = {LV_GRID_CONTENT, LV_GRID_FR(1), LV_GRID_CONTENT,LV_GRID_FR(8), LV_GRID_TEMPLATE_LAST};
+        static lv_coord_t grid_col_dsc[] = {LV_GRID_CONTENT, LV_GRID_FR(1), LV_GRID_CONTENT, LV_GRID_FR(8), LV_GRID_TEMPLATE_LAST};
         static lv_coord_t grid_row_dsc[] = {LV_GRID_CONTENT, LV_GRID_FR(1), LV_GRID_CONTENT, LV_GRID_CONTENT, LV_GRID_CONTENT, LV_GRID_FR(1), LV_GRID_TEMPLATE_LAST};
 
         lv_obj_set_grid_dsc_array(cont, grid_col_dsc, grid_row_dsc);
@@ -1146,7 +1167,8 @@ static lv_obj_t * create_meter_box(lv_obj_t * parent, const char * title, const
 
 }
 
-static lv_obj_t * create_shop_item(lv_obj_t * parent, const void * img_src, const char * name, const char * category, const char * price)
+static lv_obj_t * create_shop_item(lv_obj_t * parent, const void * img_src, const char * name, const char * category,
+                                   const char * price)
 {
     static lv_coord_t grid_col_dsc[] = {LV_GRID_CONTENT, 5, LV_GRID_FR(1), LV_GRID_FR(1), LV_GRID_TEMPLATE_LAST};
     static lv_coord_t grid_row_dsc[] = {LV_GRID_FR(1), LV_GRID_FR(1), LV_GRID_TEMPLATE_LAST};
@@ -1257,9 +1279,10 @@ static void slider_event_cb(lv_event_t * e)
     lv_obj_t * obj = lv_event_get_target(e);
 
     if(code == LV_EVENT_REFR_EXT_DRAW_SIZE) {
-        lv_coord_t *s = lv_event_get_param(e);
+        lv_coord_t * s = lv_event_get_param(e);
         *s = LV_MAX(*s, 60);
-    } else if(code == LV_EVENT_DRAW_PART_END) {
+    }
+    else if(code == LV_EVENT_DRAW_PART_END) {
         lv_obj_draw_part_dsc_t * dsc = lv_event_get_param(e);
         if(dsc->part == LV_PART_KNOB && lv_obj_has_state(obj, LV_STATE_PRESSED)) {
             char buf[8];
@@ -1310,7 +1333,8 @@ static void chart_event_cb(lv_event_t * e)
             if(lv_chart_get_type(obj) == LV_CHART_TYPE_BAR) {
                 const char * month[] = {"I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX", "X", "XI", "XII"};
                 lv_snprintf(dsc->text, dsc->text_length, "%s", month[dsc->value]);
-            } else {
+            }
+            else {
                 const char * month[] = {"Jan", "Febr", "March", "Apr", "May", "Jun", "July", "Aug", "Sept", "Oct", "Nov", "Dec"};
                 lv_snprintf(dsc->text, dsc->text_length, "%s", month[dsc->value]);
             }
@@ -1322,13 +1346,15 @@ static void chart_event_cb(lv_event_t * e)
             /*Add  a line mask that keeps the area below the line*/
             if(dsc->p1 && dsc->p2) {
                 lv_draw_mask_line_param_t line_mask_param;
-                lv_draw_mask_line_points_init(&line_mask_param, dsc->p1->x, dsc->p1->y, dsc->p2->x, dsc->p2->y, LV_DRAW_MASK_LINE_SIDE_BOTTOM);
+                lv_draw_mask_line_points_init(&line_mask_param, dsc->p1->x, dsc->p1->y, dsc->p2->x, dsc->p2->y,
+                                              LV_DRAW_MASK_LINE_SIDE_BOTTOM);
                 int16_t line_mask_id = lv_draw_mask_add(&line_mask_param, NULL);
 
                 /*Add a fade effect: transparent bottom covering top*/
                 lv_coord_t h = lv_obj_get_height(obj);
                 lv_draw_mask_fade_param_t fade_mask_param;
-                lv_draw_mask_fade_init(&fade_mask_param, &obj->coords, LV_OPA_COVER, obj->coords.y1 + h / 8, LV_OPA_TRANSP, obj->coords.y2);
+                lv_draw_mask_fade_init(&fade_mask_param, &obj->coords, LV_OPA_COVER, obj->coords.y1 + h / 8, LV_OPA_TRANSP,
+                                       obj->coords.y2);
                 int16_t fade_mask_id = lv_draw_mask_add(&fade_mask_param, NULL);
 
                 /*Draw a rectangle that will be affected by the mask*/
@@ -1361,7 +1387,8 @@ static void chart_event_cb(lv_event_t * e)
                 if(lv_chart_get_type(obj) == LV_CHART_TYPE_LINE) {
                     dsc->rect_dsc->outline_color = lv_color_white();
                     dsc->rect_dsc->outline_width = 2;
-                } else {
+                }
+                else {
                     dsc->rect_dsc->shadow_color = ser->color;
                     dsc->rect_dsc->shadow_width = 15;
                     dsc->rect_dsc->shadow_spread = 0;
@@ -1380,11 +1407,13 @@ static void chart_event_cb(lv_event_t * e)
                     if(ser == lv_chart_get_series_next(obj, NULL)) {
                         txt_area.x1 = dsc->draw_area->x1 + lv_area_get_width(dsc->draw_area) / 2;
                         txt_area.x2 = txt_area.x1 + text_size.x;
-                    } else {
+                    }
+                    else {
                         txt_area.x2 = dsc->draw_area->x1 + lv_area_get_width(dsc->draw_area) / 2;
                         txt_area.x1 = txt_area.x2 - text_size.x;
                     }
-                } else {
+                }
+                else {
                     txt_area.x1 = dsc->draw_area->x1 + lv_area_get_width(dsc->draw_area) / 2 - text_size.x / 2;
                     txt_area.x2 = txt_area.x1 + text_size.x;
                     txt_area.y2 = dsc->draw_area->y1 - LV_DPX(15);
@@ -1408,7 +1437,8 @@ static void chart_event_cb(lv_event_t * e)
                 label_dsc.color = lv_color_white();
                 label_dsc.font = font_normal;
                 lv_draw_label(dsc->draw_ctx, &label_dsc, &txt_area,  buf, NULL);
-            } else {
+            }
+            else {
                 dsc->rect_dsc->outline_width = 0;
                 dsc->rect_dsc->shadow_width = 0;
             }
@@ -1455,15 +1485,15 @@ static void shop_chart_event_cb(lv_event_t * e)
             lv_draw_rect(dsc->draw_ctx, &draw_rect_dsc, &a);
 
             a.y1 = a.y2 - 4;                                    /*-4 to overlap the radius*/
-            a.y2 = a.y1 +  (clothes[dsc->id] * h) / 100;
+            a.y2 = a.y1 + (clothes[dsc->id] * h) / 100;
             draw_rect_dsc.bg_color = lv_palette_main(LV_PALETTE_BLUE);
             draw_rect_dsc.radius = 0;
-            lv_draw_rect( dsc->draw_ctx, &draw_rect_dsc, &a);
+            lv_draw_rect(dsc->draw_ctx, &draw_rect_dsc, &a);
 
             a.y1 = a.y2;
             a.y2 = a.y1 + (services[dsc->id] * h) / 100;
             draw_rect_dsc.bg_color = lv_palette_main(LV_PALETTE_GREEN);
-            lv_draw_rect( dsc->draw_ctx, &draw_rect_dsc, &a);
+            lv_draw_rect(dsc->draw_ctx, &draw_rect_dsc, &a);
         }
     }
 }
@@ -1509,7 +1539,8 @@ static void meter2_timer_cb(lv_timer_t * timer)
     if(down1) {
         session_desktop -= 137;
         if(session_desktop < 1400) down1 = false;
-    } else {
+    }
+    else {
         session_desktop += 116;
         if(session_desktop > 4500) down1 = true;
     }
@@ -1517,7 +1548,8 @@ static void meter2_timer_cb(lv_timer_t * timer)
     if(down2) {
         session_tablet -= 3;
         if(session_tablet < 1400) down2 = false;
-    } else {
+    }
+    else {
         session_tablet += 9;
         if(session_tablet > 4500) down2 = true;
     }
@@ -1525,7 +1557,8 @@ static void meter2_timer_cb(lv_timer_t * timer)
     if(down3) {
         session_mobile -= 57;
         if(session_mobile < 1400) down3 = false;
-    } else {
+    }
+    else {
         session_mobile += 76;
         if(session_mobile > 4500) down3 = true;
     }
index 149c780..ed2e059 100644 (file)
@@ -17,7 +17,7 @@ LV_DPI =130
 LV_ANIM_REPEAT_INFINITE = -1
 
 # Register SDL display driver.
-        
+
 disp_buf1 = lv.disp_buf_t()
 buf1_1 = bytes(480 * 10)
 disp_buf1.init(buf1_1, None, len(buf1_1)//4)
@@ -32,7 +32,7 @@ disp_drv.register()
 # Register SDL mouse driver
 
 indev_drv = lv.indev_drv_t()
-indev_drv.init() 
+indev_drv.init()
 indev_drv.type = lv.INDEV_TYPE.POINTER
 indev_drv.read_cb = SDL.mouse_read
 indev_drv.register()
@@ -55,7 +55,7 @@ def LV_DPX(n):
         return tmp
     else:
         return 1
-    
+
 def color_chg_event_cb(sw, e):
     if e == lv.EVENT.VALUE_CHANGED:
         flag = lv.THEME_MATERIAL_FLAG.LIGHT
@@ -63,7 +63,7 @@ def color_chg_event_cb(sw, e):
             flag=lv.THEME_MATERIAL_FLAG.DARK
         theme = lv.theme_material_init(LV_THEME_DEFAULT_COLOR_PRIMARY,LV_THEME_DEFAULT_COLOR_SECONDARY,flag,
                                        lv.theme_get_font_small(), lv.theme_get_font_normal(), lv.theme_get_font_subtitle(),
-                                       lv.theme_get_font_title())   
+                                       lv.theme_get_font_title())
 def slider_event_cb(slider, e):
     if e == lv.EVENT.VALUE_CHANGED:
         if slider.get_type() == lv.slider.TYPE.NORMAL:
@@ -75,19 +75,19 @@ def slider_event_cb(slider, e):
             slider_string = str(slider_left) + '-' + str(slider_right)
             # print("slider left value: %d, slider right value: %d"%(slider_left,slider_right))
             slider.set_style_local_value_str(lv.slider.PART.INDIC, lv.STATE.DEFAULT, slider_string)
-            
+
 def linemeter_anim(a,lmeter, value):
     lmeter.set_value(value)
     label = lmeter.get_child(None)
     label.set_text(str(value))
     label.align(lmeter, lv.ALIGN.CENTER, 0, 0)
-    
+
 def gauge_anim(a,gauge,val):
     gauge.set_value(0,val)
     label=gauge.get_child(None)
     label.set_text(str(val))
     label.align(gauge, lv.ALIGN.CENTER, 0, 0)
-    
+
 def bar_anim(task,bar):
     val = bar.get_value()
     # print("bar value: ",val)
@@ -95,11 +95,11 @@ def bar_anim(task,bar):
     val += 1
     if val > max_value:
         val=0
-    bar.set_value(val,lv.ANIM.OFF)    
+    bar.set_value(val,lv.ANIM.OFF)
     cpy_string = "Copying %d/%d"% (val, max_value)
     # print(cpy_string)
     bar.set_style_local_value_str(lv.bar.PART.BG, lv.STATE.DEFAULT, cpy_string)
-    
+
 def arc_phase1_ready_cb(a,arc):
     a_arc=lv.anim_t()
     a_arc.init()
@@ -117,19 +117,19 @@ def arc_phase2_ready_cb(a,arc):
     a_arc.set_values(0, 360)
     a_arc.set_ready_cb(lambda a: arc_phase1_ready_cb(a,arc))
     lv.anim_t.start(a_arc)
-    
+
 def anim_phase1(a,arc,val):
     arc.set_end_angle(val)
     label = arc.get_child(None)
     label.set_text(str(val))
     label.align(arc, lv.ALIGN.CENTER, 0, 0)
-    
+
 def anim_phase2(a,arc,val):
     arc.set_end_angle(val)
     label = arc.get_child(None)
     label.set_text(str(val))
     label.align(arc, lv.ALIGN.CENTER, 0, 0)
-    
+
 def controls_create(parent):
     lv.page.set_scrl_layout(lv.page.__cast__(parent), lv.LAYOUT.PRETTY_TOP)
     if LV_DEMO_WIDGETS_SLIDESHOW == 0:
@@ -139,15 +139,15 @@ def controls_create(parent):
         btnm = lv.btnmatrix.__cast__(m.get_btnmatrix())
         # print("type(btnm): ",type(btnm))
         btnm.set_btn_ctrl(1, lv.btnmatrix.CTRL.CHECK_STATE)
-        
+
     h = lv.cont(parent, None)
     h.set_layout(lv.LAYOUT.PRETTY_MID)
     h.add_style(lv.cont.PART.MAIN, style_box)
     h.set_drag_parent(True)
-    
+
     h.set_style_local_value_str(lv.cont.PART.MAIN, lv.STATE.DEFAULT, "Basics")
-    
-    disp_size = display.get_size_category()   
+
+    disp_size = display.get_size_category()
     if disp_size <= lv.DISP_SIZE.SMALL:
         grid_w= lv.page.get_width_grid(lv.page.__cast__(parent),1,1)
         # print("grid_w: ",grid_w)
@@ -157,23 +157,23 @@ def controls_create(parent):
 
     h.set_fit2(lv.FIT.NONE, lv.FIT.TIGHT)
     h.set_width(grid_w)
-    btn = lv.btn(h,None)    
+    btn = lv.btn(h,None)
     btn.set_fit2(lv.FIT.NONE, lv.FIT.TIGHT)
     if disp_size <= lv.DISP_SIZE.SMALL:
         button_width=h.get_width_grid(1,1)
     else:
         button_width=h.get_width_grid(2,1)
     # print("button_width: %d"%button_width)
-    
+
     btn.set_width(button_width)
     label = lv.label(btn, None)
     label.set_text("Button")
-    
+
     btn = lv.btn(h, btn)
     btn.toggle()
     label = lv.label(btn, None)
     label.set_text("Button")
-    
+
     lv.switch(h, None)
 
     lv.checkbox(h, None)
@@ -184,7 +184,7 @@ def controls_create(parent):
     slider.set_value(40, lv.ANIM.OFF)
     slider.set_event_cb(slider_event_cb)
     slider.set_width_margin(fit_w);
-    
+
     # Use the knobs style value the display the current value in focused state
     slider.set_style_local_margin_top(lv.slider.PART.BG, lv.STATE.DEFAULT, LV_DPX(25))
     slider.set_style_local_value_font(lv.slider.PART.KNOB, lv.STATE.DEFAULT, lv.theme_get_font_small())
@@ -194,7 +194,7 @@ def controls_create(parent):
     slider.set_style_local_transition_time(lv.slider.PART.KNOB, lv.STATE.DEFAULT, 300)
     slider.set_style_local_transition_prop_5(lv.slider.PART.KNOB, lv.STATE.DEFAULT, lv.STYLE.VALUE_OFS_Y)
     slider.set_style_local_transition_prop_6(lv.slider.PART.KNOB, lv.STATE.DEFAULT, lv.STYLE.VALUE_OPA)
-    
+
     slider = lv.slider(h, None)
     slider.set_type(lv.slider.TYPE.RANGE)
     slider.set_value(70, lv.ANIM.OFF)
@@ -206,11 +206,11 @@ def controls_create(parent):
     lv.event_send(slider,lv.EVENT.VALUE_CHANGED, None)      # To refresh the text
     if slider.get_width() > fit_w:
         slider.set_width(fit_w)
-        
+
     h = lv.cont(parent, h)
     h.set_fit(lv.FIT.NONE)
     h.set_style_local_value_str(lv.cont.PART.MAIN, lv.STATE.DEFAULT, "Text input")
-    
+
     ta = lv.textarea(h, None)
     lv.cont.set_fit2(h,lv.FIT.PARENT, lv.FIT.NONE)
     ta.set_text("")
@@ -258,7 +258,7 @@ def visuals_create(parent):
     chart.set_div_line_count(3, 0)
     chart.set_point_count(8)
     chart.set_type(lv.chart.TYPE.LINE)
-    
+
     if disp_size > lv.DISP_SIZE.SMALL:
         chart.set_style_local_pad_left(lv.chart.PART.BG, lv.STATE.DEFAULT, 4 * (LV_DPI // 10))
         chart.set_style_local_pad_bottom(lv.chart.PART.BG, lv.STATE.DEFAULT, 3 * (LV_DPI // 10))
@@ -268,7 +268,7 @@ def visuals_create(parent):
         chart.set_x_tick_length(0, 0)
         chart.set_y_tick_texts("600\n500\n400\n300\n200", 0, lv.chart.AXIS.DRAW_LAST_TICK)
         chart.set_x_tick_texts("Jan\nFeb\nMar\nApr\nMay\nJun\nJul\nAug", 0, lv.chart.AXIS.DRAW_LAST_TICK)
-        
+
     s1 = chart.add_series(LV_THEME_DEFAULT_COLOR_PRIMARY)
     s2 = chart.add_series(LV_THEME_DEFAULT_COLOR_SECONDARY)
 
@@ -282,7 +282,7 @@ def visuals_create(parent):
     chart.set_next(s1, 60)
     chart.set_next(s1, 10)
     chart.set_next(s1, 90)
-    
+
     chart.set_next(s2, 32)
     chart.set_next(s2, 66)
     chart.set_next(s2, 5)
@@ -333,7 +333,7 @@ def visuals_create(parent):
         grid_w_meter = lv.page.get_width_grid(page, 2, 1)
     else:
         grid_w_meter = lv.page.get_width_grid(page, 3, 1)
-        
+
     meter_h = lv.page.get_height_fit(page)
     if grid_w_meter < meter_h:
         meter_size = grid_w_meter
@@ -359,7 +359,7 @@ def visuals_create(parent):
     a_lm.set_playback_time(1000)
     a_lm.set_repeat_count(LV_ANIM_REPEAT_INFINITE)
     lv.anim_t.start(a_lm)
-    
+
     gauge = lv.gauge(parent, None)
     gauge.set_drag_parent(True)
     gauge.set_size(meter_size, meter_size)
@@ -378,7 +378,7 @@ def visuals_create(parent):
     a_ga.set_repeat_count(LV_ANIM_REPEAT_INFINITE)
     a_ga.set_custom_exec_cb(lambda a, val: gauge_anim(a,gauge,val))
     lv.anim_t.start(a_ga)
-    
+
     arc = lv.arc(parent,None)
     arc.set_drag_parent(True)
     arc.set_bg_angles(0, 360)
@@ -412,7 +412,7 @@ def visuals_create(parent):
         bar_h.set_width(lv.page.get_width_grid(page, 2, 1))
     else:
         bar_h.set_width(lv.page.get_width_grid(parent, 3, 2))
-    
+
     bar = lv.bar(bar_h,None)
     bar.set_width(lv.cont.get_width_fit(bar_h))
     bar.set_style_local_value_font(lv.bar.PART.BG, lv.STATE.DEFAULT, lv.theme_get_font_small())
@@ -421,7 +421,7 @@ def visuals_create(parent):
     bar.set_style_local_margin_bottom(lv.bar.PART.BG, lv.STATE.DEFAULT, LV_DPI // 7)
     bar.align(None, lv.ALIGN.CENTER, 0, 0)
     bar.set_value(30,lv.ANIM.OFF)
-    
+
     led_h = lv.cont(parent, None)
     led_h.set_layout(lv.LAYOUT.PRETTY_MID)
     if disp_size <= lv.DISP_SIZE.SMALL:
@@ -459,9 +459,9 @@ def visuals_create(parent):
 def selectors_create(parent):
     page = lv.page.__cast__(parent)
     lv.page.set_scrl_layout(page, lv.LAYOUT.PRETTY_MID)
-    
+
     grid_h = page.get_height_grid(1, 1)
-    
+
     if disp_size <= lv.DISP_SIZE.SMALL:
         grid_w = page.get_width_grid(1, 1)
     else:
@@ -497,7 +497,7 @@ def selectors_create(parent):
         h.set_style_local_pad_top(lv.cont.PART_MAIN, LV_STATE_DEFAULT, 0);
         h.set_size(min(grid_h, grid_w), min(grid_h, grid_w))
         h.set_layout(lv.LAYOUT.PRETTY_TOP)
-        
+
     roller = lv.roller(h, None)
     roller.add_style(lv.cont.PART.MAIN, style_box)
     roller.set_style_local_value_str(lv.cont.PART.MAIN, lv.STATE.DEFAULT, "Roller")
@@ -508,8 +508,8 @@ def selectors_create(parent):
         roller.set_width(lv.cont.get_width_grid(h, 1 , 1))
     else:
         roller.set_width(lv.cont.get_width_grid(h, 2 , 1))
-        
-        
+
+
     dd = lv.dropdown(h, None)
     dd.add_style(lv.cont.PART.MAIN, style_box)
     dd.set_style_local_value_str(lv.cont.PART.MAIN, lv.STATE.DEFAULT, "Dropdown")
@@ -517,20 +517,20 @@ def selectors_create(parent):
         dd.set_width(lv.cont.get_width_grid(h, 1 , 1))
     else:
         dd.set_width(lv.cont.get_width_grid(h, 2 , 1))
-        
+
     dd.set_options("Alpha\nBravo\nCharlie\nDelta\nEcho\nFoxtrot\nGolf\nHotel\nIndia\nJuliette\nKilo\nLima\nMike\nNovember\n"
                    "Oscar\nPapa\nQuebec\nRomeo\nSierra\nTango\nUniform\nVictor\nWhiskey\nXray\nYankee\nZulu")
-        
+
     list = lv.list(parent, None)
     list.set_scroll_propagation(True)
     list.set_size(grid_w, grid_h)
-    
+
     txts = [lv.SYMBOL.SAVE, "Save", lv.SYMBOL.CUT, "Cut", lv.SYMBOL.COPY, "Copy",
             lv.SYMBOL.OK, "This is a quite long text to scroll on the list", lv.SYMBOL.EDIT, "Edit", lv.SYMBOL.WIFI, "Wifi",
             lv.SYMBOL.BLUETOOTH, "Bluetooth",  lv.SYMBOL.GPS, "GPS", lv.SYMBOL.USB, "USB",
             lv.SYMBOL.SD_CARD, "SD card", lv.SYMBOL.CLOSE, "Close"]
-    
- 
+
+
     for i in range(0,len(txts)//2,2):
         btn = list.add_btn(txts[i], txts[i + 1]);
         lv.btn.set_checkable(lv.btn.__cast__(btn),True)
@@ -538,9 +538,9 @@ def selectors_create(parent):
         # Make a button disabled
         if i == 4:
             btn.set_state(lv.btn.STATE.DISABLED)
-            
+
     cal.set_highlighted_dates(hl, 2)
-    
+
 tv = lv.tabview(lv.scr_act(), None)
 display = scr.get_disp()
 disp_size = display.get_size_category()
@@ -549,7 +549,7 @@ tv.set_style_local_pad_left(lv.tabview.PART.TAB_BG, lv.STATE.DEFAULT, disp_drv.h
 sw = lv.switch(lv.scr_act(), None)
 if lv.theme_get_flags() & lv.THEME_MATERIAL_FLAG.DARK:
    sw.on(LV_ANIM_OFF)
-sw.set_event_cb(color_chg_event_cb)   
+sw.set_event_cb(color_chg_event_cb)
 sw.set_pos(LV_DPX(10), LV_DPX(10))
 sw.set_style_local_value_str(lv.switch.PART.BG, lv.STATE.DEFAULT, "Dark")
 sw.set_style_local_value_align(lv.switch.PART.BG, lv.STATE.DEFAULT, lv.ALIGN.OUT_RIGHT_MID)
@@ -567,6 +567,6 @@ style_box.set_value_ofs_y(lv.STATE.DEFAULT, - LV_DPX(10))
 style_box.set_margin_top(lv.STATE.DEFAULT, LV_DPX(30))
 
 controls_create(t1)
-visuals_create(t2)                            
+visuals_create(t2)
 selectors_create(t3)
 
index c65d07d..afc2b40 100644 (file)
 # Changelog
 
+## [v8.3.7](https://github.com/lvgl/lvgl/compare/v8.3.7...v8.3.6) 3 May 2023
+
+### New Features
+
+- feat(btnmatrix): review ctrl map and allow width values to be max 15 [`a150b15`](https://github.com/lvgl/lvgl/commit/a150b15e45a922eb5497fe5a31a480e1cd689246)
+
+### Fixes
+
+- fix (spinbox):  doubling characters entered from the keyboard [`4190`](https://github.com/lvgl/lvgl/pull/4190)
+- fix(arm-2d): fix transform-chrome-keying issue [`4178`](https://github.com/lvgl/lvgl/pull/4178)
+- fix(menu): prevent setting the current page again [`4136`](https://github.com/lvgl/lvgl/pull/4136)
+- fix(esp): fix ESP-IDF pedantic builds (backport v8.3) [`4135`](https://github.com/lvgl/lvgl/pull/4135)
+- fix: color mixing with LV_COLOR_SWAP == 1 [`4101`](https://github.com/lvgl/lvgl/pull/4101)
+
+- fix(indev): fix integer overflow in recursive zoom calculation [`a0795b4`](https://github.com/lvgl/lvgl/commit/a0795b49e82102ad68a27c86c36c37fffbe66d3c)
+- fix(style): fix trasition on bg_grad color [`48d7878`](https://github.com/lvgl/lvgl/commit/48d7878bac3f607322957ed6f710d6615d5e72e0)
+
+
+## [v8.3.6](https://github.com/lvgl/lvgl/compare/v8.3.6...v8.3.5) 3 April 2023
+
+### New Features
+
+- feat(msg): add lv_msg_unsubcribe_obj [`6af0179`](https://github.com/lvgl/lvgl/commit/6af01798d82f90f0c2ba6a9da39c4f10fb427df7)
+
+### Performance
+
+### Fixes
+
+- fix(group): fix default_group becomes wild pointer when deleted [`4076`](https://github.com/lvgl/lvgl/pull/4076)
+- fix(fs_posix): allow creating new file and set permission. [`3976`](https://github.com/lvgl/lvgl/pull/3976)
+- fix(img): support negative angles [`3846`](https://github.com/lvgl/lvgl/pull/3846)
+- fix(gif): synchronize with master [`4003`](https://github.com/lvgl/lvgl/pull/4003)
+- fix(gpu): fix STM GPU drivers for some variants [`4004`](https://github.com/lvgl/lvgl/pull/4004)
+- fix(img): possible divide by 0 exception (lvgl#3988) [`3990`](https://github.com/lvgl/lvgl/pull/3990)
+- fix(arc): fix knob area invalidation [`d0e19eb`](https://github.com/lvgl/lvgl/commit/d0e19eb2d38ba8a500399b0496d7a8363be4003e)
+- fix(slider): consider animations on pressing [`0b7777f`](https://github.com/lvgl/lvgl/commit/0b7777f27a7932efe3d594be426e1beb59d80ae3)
+- fix(bar): delete running animations when a new value is set without animation [`aa31380`](https://github.com/lvgl/lvgl/commit/aa313806d0ebde475fc2bc360a15172cc1b658a7)
+- docs: use a fixed commit of lv_web_emscripten [`501230e`](https://github.com/lvgl/lvgl/commit/501230e0fc95936199b3187d350873c3bb4a94e4)
+
+### Examples
+
+### Docs
+
+- docs(arduino): add note to not use lv_examles library [`2f294aa`](https://github.com/lvgl/lvgl/commit/2f294aa76c8fece98a4fa72304bc6f267ed2a228)
+- docs: use a fixed commit of lv_web_emscripten [`501230e`](https://github.com/lvgl/lvgl/commit/501230e0fc95936199b3187d350873c3bb4a94e4)
+
+### CI and tests
+
+### Others
+
+- chore(cmsis-pack): update cmsis-pack for v8.3.6 [`4108`](https://github.com/lvgl/lvgl/pull/4108)
+- chore: update the version numbers to v8.3.5-dev [`77670fb`](https://github.com/lvgl/lvgl/commit/77670fb1a55e0f2012ff7a057e535830e7253e22)
+- Update build_html_examples.sh [`399069b`](https://github.com/lvgl/lvgl/commit/399069b4a2423c11823581668fe71ce9a7c88e7d)
+
+
+## [v8.3.5](https://github.com/lvgl/lvgl/compare/v8.3.4...v8.3.5) 7 February 2023
+
+### Performance
+
+- perf(gpu): improve NXP's PXP and VGLite accelerators [`3952`](https://github.com/lvgl/lvgl/pull/3952)
+- perf(dam2d): rework stm32 dma2d  [`3904`](https://github.com/lvgl/lvgl/pull/3904)
+
+### Fixes
+
+- fix(monkey): remove executable permissions from source files [`3971`](https://github.com/lvgl/lvgl/pull/3971)
+- fix(ci): set Ubuntu version for MicroPython test [`3865`](https://github.com/lvgl/lvgl/pull/3865)
+- fix(Kconfig): fix wrong type of LV_FS_STDIO_CACHE_SIZE (v8.3) [`3906`](https://github.com/lvgl/lvgl/pull/3906)
+- docs(indev): fix the name of long_press_repeat_time (was long_press_rep_time) [`34c545e`](https://github.com/lvgl/lvgl/commit/34c545ef19dc97c8952a412e533a4cd3924b9fbc)
+- fix(roller): consider the recolor setting of the label [`39f4247`](https://github.com/lvgl/lvgl/commit/39f424767fa57376c4cb08cf22951fd56d854fd6)
+
+### Examples
+
+### Docs
+
+- docs(indev): fix the name of long_press_repeat_time (was long_press_rep_time) [`34c545e`](https://github.com/lvgl/lvgl/commit/34c545ef19dc97c8952a412e533a4cd3924b9fbc)
+
+### CI and tests
+
+- ci(esp): fix push to the component registry on tag [`e529230`](https://github.com/lvgl/lvgl/commit/e529230f4bb97b4506c430aac96d5ddaef685dc4)
+
+### Others
+
+- chore(cmsis-pack): update cmsis-pack for v8.3.5 [`3972`](https://github.com/lvgl/lvgl/pull/3972)
+- chore: add an option to "LV_TICK_CUSTOM" [`3879`](https://github.com/lvgl/lvgl/pull/3879)
+
+- bump version numbers to v8.3.5-dev [`47c8f8f`](https://github.com/lvgl/lvgl/commit/47c8f8f9822f4c0c0ffbe2f12b380bddefcec475)
+- Update layer.md [`9faca8a`](https://github.com/lvgl/lvgl/commit/9faca8a8d4125e21dedbf6e46aa1586a6b57e5b8)
+
+## [v8.3.4](https://github.com/lvgl/lvgl/compare/v8.3.4...v8.3.3) 15 December 2022
+
+### New Features
+
+- feat(keyboard): ported arabic keyboard from release 7.10.0 [`3728`](https://github.com/lvgl/lvgl/pull/3728)
+- feat(table): scroll to the selected cell with key navigation [`39d03a8`](https://github.com/lvgl/lvgl/commit/39d03a80f45847a1977cfe9cc6a509b1613d0aca)
+
+### Fixes
+
+- fix(rt-thread): sync rt-thread v5.0.0 rt_align [`3864`](https://github.com/lvgl/lvgl/pull/3864)
+- fix(draw): SDL2 gradient support  #3848 [`3856`](https://github.com/lvgl/lvgl/pull/3856)
+- fix(esp.cmake): add demos and examples [`3784`](https://github.com/lvgl/lvgl/pull/3784)
+- fix(indev): fix scrolling on transformed obejcts [`84cf05d`](https://github.com/lvgl/lvgl/commit/84cf05d8b23b31e000db757a278545e58fcbcbe8)
+- fix(style): add the missing support for pct pivot in tranasform style properties [`c8e584f`](https://github.com/lvgl/lvgl/commit/c8e584f879a1e1427e7a8f5ff496af39f17df41d)
+- fix(flex): be sure obj-&gt;w_layout and h_layout can't be set at the same time [`c4c4007`](https://github.com/lvgl/lvgl/commit/c4c400716e80a279e7b3d43b8992915fe94441eb)
+- fix(chart): fix very dense bar charts [`bb2c2ac`](https://github.com/lvgl/lvgl/commit/bb2c2ac34ac943978513c7ed51885078979b1c10)
+- fix(draw): handle LV_COLOR_DEPTH == 1 too in lv_draw_sw_transform [`bd11ad8`](https://github.com/lvgl/lvgl/commit/bd11ad8542eac9ff51420e5afb80f7e6fcf36a5c)
+- fix(example): fix warnings [`1e3ca25`](https://github.com/lvgl/lvgl/commit/1e3ca25fed13bbf85c32a60d4b7041cf8bd525ab)
+- fix(benchmark): fix warnings [`1ed026c`](https://github.com/lvgl/lvgl/commit/1ed026ca7307957568fe419f1ff39a15b2535b3e)
+- fix(draw): fix text color with sub pixel rendering and BGR order [`e050f5c`](https://github.com/lvgl/lvgl/commit/e050f5ca156f79d752894f38f0a437c946205cb4)
+- fix(meter): fix setting part_draw_dsc.id in needle img drawing [`716e5e2`](https://github.com/lvgl/lvgl/commit/716e5e2c8bd2a22e7d56e8d7ca33054a11a1f4ed)
+- fix(gridnav): fix stucking in pressed state with encoder [`ad56dfa`](https://github.com/lvgl/lvgl/commit/ad56dfaf7046a9bb8c05e877a8c8852cd14a59af)
+- fix(darw): add back the disappeared antialising=0 support [`2c17b28`](https://github.com/lvgl/lvgl/commit/2c17b28ac476c95a4153ab6cabb77b1c7208bb74)
+- fix(msg): fix typos in API by adding wrappers [`41fa416`](https://github.com/lvgl/lvgl/commit/41fa41613455260ccdeb87ecb890ce026ff0a435)
+- fix(draw): fix transformation accuracy [`e06f03d`](https://github.com/lvgl/lvgl/commit/e06f03db72f98439078118518158f52439dd7bf8)
+- fix(style): remove the reduntant define of LV_GRADIENT_MAX_STOPS [`903e94b`](https://github.com/lvgl/lvgl/commit/903e94b716ca1b32cdb51de11df679953699e53b)
+- demo(benchmark): fix lv_label_set_text_fmt format strings [`ae38258`](https://github.com/lvgl/lvgl/commit/ae3825871e31cd42cad2f310bdfc605150670511)
+- demo(benchmark): fix warning [`1173dcb`](https://github.com/lvgl/lvgl/commit/1173dcba96621e20c9a7240c8572bd6573bce6a0)
+
+## [v8.3.3](https://github.com/lvgl/lvgl/compare/v8.3.2...v8.3.3) 06 October 2022
+
+v8.3.3 is the same as v8.3.2. It was released only because the version number was set incorrectly in lvgl.h.
+
+## [v8.3.2](https://github.com/lvgl/lvgl/compare/v8.3.1...v8.3.2) 27 September 2022
+
+### Fixes
+
+- fix(fragment): fixed child fragment event dispatch [`3683`](https://github.com/lvgl/lvgl/pull/3683)
+- fix(sdl): clear streaming/target texture with FillRect [`3682`](https://github.com/lvgl/lvgl/pull/3682)
+- fix(sdl): transformation with alpha (#3576) [`3678`](https://github.com/lvgl/lvgl/pull/3678)
+- fix(draw_sw): fix image cache to access the freed stack space [`3584`](https://github.com/lvgl/lvgl/pull/3584)
+- fix(style): use compile time prop_cnt for const styles [`3609`](https://github.com/lvgl/lvgl/pull/3609)
+- fix(demo): can not found lvgl.h file [`3477`](https://github.com/lvgl/lvgl/pull/3477)
+- fix(ci) checkout lv_micropython release/v8 branch [`3524`](https://github.com/lvgl/lvgl/pull/3524)
+- fix(canvas): fix clipéping on transformation [`b884aba`](https://github.com/lvgl/lvgl/commit/b884abae26f3824b27783a85d18ed51e550347c1)
+- fix(draw): allow drawing outline with LV_DRAW_COMPLEX == 0 too [`ece3495`](https://github.com/lvgl/lvgl/commit/ece34950040e218fc73605a4e88f1060c2a274f8)
+- fix(colorwheel): fix updating color when using lv_colorwheel_set_hsv [`d59bba1`](https://github.com/lvgl/lvgl/commit/d59bba12db115afb4b6aa53eed2625221dfff2fd)
+- fix(slider): find the nearest value on click instead of floor [`dfd14fa`](https://github.com/lvgl/lvgl/commit/dfd14fa778aef25d0db61748a58aa9989ce5e2c8)
+- fix(draw): fix border drawing with thick borders [`d5b2a9b`](https://github.com/lvgl/lvgl/commit/d5b2a9b2562cbfa327bf0ec03c11d28576037a14)
+- fix(refr): fix true double double buffering logic with transparent screens [`8b605cc`](https://github.com/lvgl/lvgl/commit/8b605cc48224d0497cdd936fa77229e0c3d606d2)
+- fix(group): be sure obj is removed from its current group in lv_group_add_obj [`5156ee0`](https://github.com/lvgl/lvgl/commit/5156ee058d5de674a00ffd84d15d460de7f0e53b)
+- fix(style): add missing invalidation in lv_obj_remove_local_style_prop [`a0515ba`](https://github.com/lvgl/lvgl/commit/a0515ba30dd74b8b22a6709d334eb03782ee1a4d)
+
+### Docs
+
+- docs(draw) remove reference to old lv_fs_add_drv function [`3564`](https://github.com/lvgl/lvgl/pull/3564)
+- docs(disp): LV_COLOR_SCREEN_TRANSP remove dependency on LV_COLOR_DEPTH_32 as transparency is supported across all color depths [`3556`](https://github.com/lvgl/lvgl/pull/3556)
+
+### CI and tests
+
+- ci: protect test.c with #if LV_BUILD_TEST [`be485d7`](https://github.com/lvgl/lvgl/commit/be485d7605136d2a5d6a633c7cb5b7c525cae7ee)
+
+### Others
+
+- chore(rt-thread) backport fixes from v9 [`3604`](https://github.com/lvgl/lvgl/pull/3604)
+
+- chore: fix warnings [`7640950`](https://github.com/lvgl/lvgl/commit/76409502163ffe67cfbab9c7f24f2226cc8a5941)
+- remove accidentally added code [`5022476`](https://github.com/lvgl/lvgl/commit/5022476edc8676f2a6ef7b919d3578159edeef7c)
+
+
+## [v8.3.1](https://github.com/lvgl/lvgl/compare/v8.3.0...v8.3.1) 25 July 2022
+
+### Fixes
+
+- fix(led): add bg_color draw descriptors back to led draw event to support LV_DRAW_COMPLEX 0 [`3515`](https://github.com/lvgl/lvgl/pull/3515)
+- fix(slider): fix knob drawing in symmetrical mode [`2967172`](https://github.com/lvgl/lvgl/commit/2967172bee806e77da6ee2307c79e867af3f76bc)
+- fix(refr): fix lv_refr_get_top_obj [`9750c97`](https://github.com/lvgl/lvgl/commit/9750c97aff4dc3de80559b150852b829f006d6bf)
+- fix(arc): fix arc knob invalidation in SYMMETRICAL mode [`a283273`](https://github.com/lvgl/lvgl/commit/a283273bd27599dae6b044a941b6591ad45e059b)
+
+### Examples
+
+- example(freetype): Update the Micropython example to use the Lato font [`71913d3`](https://github.com/lvgl/lvgl/commit/71913d300dde25d1b87d1b44fa1fa47854defd59)
+- example(freetype): replace the arial font with lato to avoid licensing issues [`8544cc3`](https://github.com/lvgl/lvgl/commit/8544cc38062d9c817013bbe6aedbb47112e580ad)
+
+### Docs
+
+- docs(readme): fix LVGL version typo (8.3.0) [`3462`](https://github.com/lvgl/lvgl/pull/3462)
+- docs(tasmota): support LVGL 8.3.0 (#3511) [`62662f6`](https://github.com/lvgl/lvgl/commit/62662f68e9cf90adcb96d42030eca5fa135b96a5)
+
+
+
+## [v8.3.0](https://github.com/lvgl/lvgl/compare/v8.2.0...v8.3.0) 6 July 2022
+
+
+### Overview
+
+- **Layers** Support transforming (zoom and rotate) any widgets and their children drawn by LVGL. To do this LVGL renders the transformed widgets into a layer and draws that layer as an image applying all the transformations. Layers are also used when `opa` (not `bg_opa`, `border_opa`, etc) and `blend_mode` are set. This way nested objects are blended as one layer to avoid color bleeding. See more [here](https://docs.lvgl.io/master/overview/style.html#opacity-blend-modes-and-transformations).
+- **inherit and initial style properties** Besides setting "normal values" for style properties now you can set them to `inherit` (inherit the parent's value) and `initial` (set the system default). See more [here](https://docs.lvgl.io/master/overview/style.html#forced-value-inheritance-default-value)
+- **NXP-PXP and VGLITE GPU support** The support for NXP GPUs are added again
+- **Color font support** You can use emojis and images in texts with this great new features. See more [here](https://docs.lvgl.io/master/others/imgfont.html).
+- **ARM2D GPU support** Get support for ARM's own GPU.
+- **PubSub messaging** A publisher-subscriber based messaging system is added to make communication between components easier. See more [here](https://docs.lvgl.io/master/others/msg.html).
+- **Pinyin IME** Add support for Pinyin IME Chinese input. See more [here](https://docs.lvgl.io/master/others/ime_pinyin.html).
+- **render_start_cb** A new callback is added to `lv_disp_drv_t` to indicate when the rendering starts. It's useful to make synchronization, e.g. wait for a TE signal.
+
+
+### New Features
+
+- feat(ime_pinyin): add API to support 9-key input mode [`3447`](https://github.com/lvgl/lvgl/pull/3447)
+- feat(font): add font placeholder drawing configuration [`3446`](https://github.com/lvgl/lvgl/pull/3446)
+- feat(fsdrv): add posix lseek() error checking [`3444`](https://github.com/lvgl/lvgl/pull/3444)
+- feat(misc): add asynchronous call function cancellation function [`3439`](https://github.com/lvgl/lvgl/pull/3439)
+- feat(ime_pinyin): add API to use Pinyin IME(Chinese input) [`3408`](https://github.com/lvgl/lvgl/pull/3408)
+- feat(style) add 'inherit' and 'initial' CSS properties [`3390`](https://github.com/lvgl/lvgl/pull/3390)
+- feat(porting): add flushing control to the template [`3384`](https://github.com/lvgl/lvgl/pull/3384)
+- feat(anim): add deleted callback (#3279) [`3295`](https://github.com/lvgl/lvgl/pull/3295)
+- feat(cmsis-pack): monthly update for May [`3394`](https://github.com/lvgl/lvgl/pull/3394)
+- feat(textarea): make it possible to customize the bullet character [`3388`](https://github.com/lvgl/lvgl/pull/3388)
+- feat(disp): add a temporary invalidation disable interface [`3378`](https://github.com/lvgl/lvgl/pull/3378)
+- feat(group): add edge callbacks when trying to move focus past beginning or end [`3374`](https://github.com/lvgl/lvgl/pull/3374)
+- feat(benchmark): make lvgl render at the highest frame rate [`3352`](https://github.com/lvgl/lvgl/pull/3352)
+- feat(rt-thread): allow users to control refresh period in the lvgl thread [`3375`](https://github.com/lvgl/lvgl/pull/3375)
+- feat(cmsis-pack): Monthly update for May (alpha) [`3359`](https://github.com/lvgl/lvgl/pull/3359)
+- feat(demos): add a callback for benchmark [`3353`](https://github.com/lvgl/lvgl/pull/3353)
+- feat(gpu): Update lv_gpu_arm2d with new features [`3340`](https://github.com/lvgl/lvgl/pull/3340)
+- feat(draw): improve acceleration for LV_IMG_CF_ALPHA_8BIT [`3337`](https://github.com/lvgl/lvgl/pull/3337)
+- feat(anim): add the function of getting global animation refresher timer [`3331`](https://github.com/lvgl/lvgl/pull/3331)
+- feat(demo): add Weighted FPS and Opa speed log output [`3326`](https://github.com/lvgl/lvgl/pull/3326)
+- feat(gpu): Update gpu arm 2d  [`3320`](https://github.com/lvgl/lvgl/pull/3320)
+- feat(cmsis-pack): Monthly update for April [`3300`](https://github.com/lvgl/lvgl/pull/3300)
+- feat(fsdrv) fix issues for win32 backends [`3284`](https://github.com/lvgl/lvgl/pull/3284)
+- feat(cmake-build): Option to allow building shared libraries. [`3278`](https://github.com/lvgl/lvgl/pull/3278)
+- feat(hal): add render_start_cb to disp_drv [`3274`](https://github.com/lvgl/lvgl/pull/3274)
+- feat(cmsis-pack): monthly update for April (v1.0.3-alpha) [`3271`](https://github.com/lvgl/lvgl/pull/3271)
+- feat(benchmark): add trace output for running a specific scenario [`3245`](https://github.com/lvgl/lvgl/pull/3245)
+- feat(env_support): cmsis pack monthly update [`3209`](https://github.com/lvgl/lvgl/pull/3209)
+- feat(tabview): support vertical scrolling [`3184`](https://github.com/lvgl/lvgl/pull/3184)
+- feat(span): add an interface for setting the number of lines [`3200`](https://github.com/lvgl/lvgl/pull/3200)
+- feat(indev): add possibility to enable/disable all input devices at once [`3179`](https://github.com/lvgl/lvgl/pull/3179)
+- feat(font): add imgfont - can be used to add emojis to label/span  [`3160`](https://github.com/lvgl/lvgl/pull/3160)
+- feat(gpu): add gpu arm2d [`3162`](https://github.com/lvgl/lvgl/pull/3162)
+- feat(dma2d): add lv_draw_stm32_dma2d_buffer_copy function [`3147`](https://github.com/lvgl/lvgl/pull/3147)
+- feat(disp): add screen out animations [`3081`](https://github.com/lvgl/lvgl/pull/3081)
+- feat(menu): make menu widget more compatible with encoder [`3061`](https://github.com/lvgl/lvgl/pull/3061)
+- feat(label): added animation style property to apply it to circular scrolling animation of label widget [`3128`](https://github.com/lvgl/lvgl/pull/3128)
+- feat(script): add pre-commit configuration for code formatting [`3092`](https://github.com/lvgl/lvgl/pull/3092)
+- feat(refr): prevents dirty areas from being modified during rendering [`3107`](https://github.com/lvgl/lvgl/pull/3107)
+- feat(log): improve lv_log and add log the result from lv_demo_benchmark [`3084`](https://github.com/lvgl/lvgl/pull/3084)
+- feat(fragment): add fragment manager (a UI Controller concept) [`2940`](https://github.com/lvgl/lvgl/pull/2940)
+- feat(porting): add a macro lv_run_timer_handler_in_period to simplify porting [`3063`](https://github.com/lvgl/lvgl/pull/3063)
+- feat(gpu): reattach nxp pxp vglite accelerators(#3322) [`029eef7`](https://github.com/lvgl/lvgl/commit/029eef79c4cf6fef4ad46f7e335011ba4172381b)
+- feat(draw): support transforming widgets and improfe sw transform [`318146a`](https://github.com/lvgl/lvgl/commit/318146a2c25362eabf258470be263a4cfeaefe87)
+- feat(msg): add publisher-subscriber messaging [`79a29d7`](https://github.com/lvgl/lvgl/commit/79a29d749d3e261ebadbe31fccbff896f63b4d93)
+- feat(benchmark): add an API to run specific scene (#3089) [`305ad00`](https://github.com/lvgl/lvgl/commit/305ad00893c0d18d9a65e28ee03d65f76f8abb0a)
+- feat(gpu): add SWM341 gpu support (synwit) [`07b7eea`](https://github.com/lvgl/lvgl/commit/07b7eea56c048a0654c254cadebee8caf5f7933b)
+- feat(arc): add lv_arc_align_obj_to_angle and lv_arc_rotate_obj_to_angle [`a76bb70`](https://github.com/lvgl/lvgl/commit/a76bb70a79dfa5b841328f07ede0907c700a039a)
+- feat(draw): add draw_ctx-&gt;buffer_copy [`d034511`](https://github.com/lvgl/lvgl/commit/d034511bba3a27aa1a29d2e1b612b1adeb4e2ae1)
+- feat(dropdown): add lv_dropdown_get_option_index [`9997fb0`](https://github.com/lvgl/lvgl/commit/9997fb00aa60b4478c76fa8387a74ca5b3c595b2)
+- feat(tabview) add API to rename tab. [`2c9695a`](https://github.com/lvgl/lvgl/commit/2c9695afb4ed6597ae54806c5eb2a287925343f8)
+- feat(indev): send LV_EVENT_PRESS_LOST on release with wait_until_release [`cc18518`](https://github.com/lvgl/lvgl/commit/cc18518e96df63c2a02ee9d423cb7bc23382e5a7)
+- feat(style) add 'inherit' and 'initial' CSS properties (#3390) [`9a48de0`](https://github.com/lvgl/lvgl/commit/9a48de0f8b19ec02a44aaf6b330066eed7d0a105)
+- feat(draw): improve acceleration for LV_IMG_CF_ALPHA_8BIT (#3337) [`8d3c41d`](https://github.com/lvgl/lvgl/commit/8d3c41d5170dad0455fea3d95b2765db70d3c7c2)
+- feat(label): added animation style property to apply it to circular scrolling animation of label widget (#3128) [`340d45c`](https://github.com/lvgl/lvgl/commit/340d45cfa91b7108d43af906fc51b1c431877827)
+- feat(gridnav): add lv_gridnav_set_focused [`b6d2daa`](https://github.com/lvgl/lvgl/commit/b6d2daa4935128ca8193863d4deaf58fa40b3154)
+
+### Performance
+
+- perf(draw): speed up non normal blend modes [`5a06fce`](https://github.com/lvgl/lvgl/commit/5a06fce472c103b4204002a7932dd6c6d05eb13c)
+- perf(draw): minor optimiziation in point transformation [`c6c2864`](https://github.com/lvgl/lvgl/commit/c6c286404898bf559eca6eb5bb007251790c572c)
+- perf(layer): cache the layer_type [`ac2e2f1`](https://github.com/lvgl/lvgl/commit/ac2e2f132e264d5f0f0313f4e6adbcf56d937a14)
+
+### Fixes
+
+- fix(draw): conflict with external ALIGN define [`3336`](https://github.com/lvgl/lvgl/pull/3336)
+- fix(arc): fix bug with LV_ARC_MODE_REVERSE (#3417) [`3418`](https://github.com/lvgl/lvgl/pull/3418)
+- fix(fragment): memory leak of fragments #3438 [`3442`](https://github.com/lvgl/lvgl/pull/3442)
+- fix(draw): solve memory leaking issue [`3437`](https://github.com/lvgl/lvgl/pull/3437)
+- fix(gridnav) correct logic in find_last_focusable [`3423`](https://github.com/lvgl/lvgl/pull/3423)
+- fix(examples) correct comment in slider example [`3419`](https://github.com/lvgl/lvgl/pull/3419)
+- fix(sdl): add transformation support for the SDL backend [`3403`](https://github.com/lvgl/lvgl/pull/3403)
+- fix(bmp): fix with LV_COLOR_16_SWAP [`3412`](https://github.com/lvgl/lvgl/pull/3412)
+- fix(sdl): fix LRU, reported in #3402 [`3404`](https://github.com/lvgl/lvgl/pull/3404)
+- fix(draw) avoid use-after-free when drawing arcs [`3399`](https://github.com/lvgl/lvgl/pull/3399)
+- fix(subpx): fix subpixel rendering font is not displaying bug [`3387`](https://github.com/lvgl/lvgl/pull/3387)
+- fix(style): reset style lookup table after gc sweep/lv_deinit [`3385`](https://github.com/lvgl/lvgl/pull/3385)
+- fix(benchmark): fix the issue that wrong scene number is used [`3372`](https://github.com/lvgl/lvgl/pull/3372)
+- fix(draw): fix colour supports for indexed and alpha-only [`3371`](https://github.com/lvgl/lvgl/pull/3371)
+- fix(mem): fix TLSF returning the wrong pointer when the requested size is too large [`3325`](https://github.com/lvgl/lvgl/pull/3325)
+- fix(demo): fix warning. [`3344`](https://github.com/lvgl/lvgl/pull/3344)
+- fix(config): add LV_GPU_SDL_LRU_SIZE [`3348`](https://github.com/lvgl/lvgl/pull/3348)
+- feat(draw): improve acceleration for LV_IMG_CF_ALPHA_8BIT [`3337`](https://github.com/lvgl/lvgl/pull/3337)
+- fix(txt): fix returned value of lv_txt_iso8859_1_next(..., NULL) [`3338`](https://github.com/lvgl/lvgl/pull/3338)
+- fix(benchmark): remove redundant string for the small screens  [`3335`](https://github.com/lvgl/lvgl/pull/3335)
+- fix(chart): fix accessing uninitialized point_area [`3327`](https://github.com/lvgl/lvgl/pull/3327)
+- fix(config): add LV_LAYER_SIMPLE_BUF_SIZE to Kconfig [`3312`](https://github.com/lvgl/lvgl/pull/3312)
+- fix(config): Keep the sequence of widget in order [`3314`](https://github.com/lvgl/lvgl/pull/3314)
+- fix(config): fix typo in LV_USE_PERF_MONITOR and LV_USE_MEM_MONITOR [`3313`](https://github.com/lvgl/lvgl/pull/3313)
+- fix(refr): initializing row_cnt is to silence the warning [`3309`](https://github.com/lvgl/lvgl/pull/3309)
+- fix(meter): fix typo [`3308`](https://github.com/lvgl/lvgl/pull/3308)
+- fix(draw): update Makefiles [`3303`](https://github.com/lvgl/lvgl/pull/3303)
+- fix(lodepng): fix NULL pointer access [`3307`](https://github.com/lvgl/lvgl/pull/3307)
+- fix(Kconfig): change the type of LV_FS_STDIO_LETTER from string to int [`3282`](https://github.com/lvgl/lvgl/pull/3282)
+- fix(demo): fix Wformat warning [`3290`](https://github.com/lvgl/lvgl/pull/3290)
+- fix(snapshot): add missing ASSERT checks [`3292`](https://github.com/lvgl/lvgl/pull/3292)
+- fix(Kconfig): Add LV_USE_GRIDNAV and LV_USE_FRAGMENT to Kconfig [`3270`](https://github.com/lvgl/lvgl/pull/3270)
+- fix(msgbox): do not execute init obj when obj == NULL [`3264`](https://github.com/lvgl/lvgl/pull/3264)
+- fix(menu): use LV_ASSERT_MALLOC check for new_node [`3263`](https://github.com/lvgl/lvgl/pull/3263)
+- fix(canvas):image cache may expire after set canvas's buff [`3267`](https://github.com/lvgl/lvgl/pull/3267)
+- fix(obj_style): prevent access to class null pointer [`3252`](https://github.com/lvgl/lvgl/pull/3252)
+- fix(png): fix possible memory leak when decoding fails [`3249`](https://github.com/lvgl/lvgl/pull/3249)
+- fix(libs): fix possible buffer underflow caused by extension matching [`3250`](https://github.com/lvgl/lvgl/pull/3250)
+- fix(fs): track multiple directory handles with win32 backends [`3243`](https://github.com/lvgl/lvgl/pull/3243)
+- fix(png): use LV_IMG_CF_TRUE_COLOR_ALPHA instead of LV_IMG_CF_RAW_ALPHA [`3212`](https://github.com/lvgl/lvgl/pull/3212)
+- fix(Keil-AC5): slience warnings in Keil-AC5 [`3221`](https://github.com/lvgl/lvgl/pull/3221)
+- fix(meter): fix infinite loop caused by loop variable type mismatch [`3232`](https://github.com/lvgl/lvgl/pull/3232)
+- fix(chart): remove invalid decision branches [`3231`](https://github.com/lvgl/lvgl/pull/3231)
+- fix(gradient): assert before dividing by 0 [`3228`](https://github.com/lvgl/lvgl/pull/3228)
+- fix(calendar): fix infinite loop caused by loop variable type mismatch [`3230`](https://github.com/lvgl/lvgl/pull/3230)
+- fix(flex): assert before dividing by 0 [`3237`](https://github.com/lvgl/lvgl/pull/3237)
+- fix(hal): fix LV_ASSERT_MALLOC wrong placement [`3236`](https://github.com/lvgl/lvgl/pull/3236)
+- fix(disp): fix missing null pointer judgment [`3238`](https://github.com/lvgl/lvgl/pull/3238)
+- fix(obj_class): fix possible memory leak when the default disp is NULL [`3235`](https://github.com/lvgl/lvgl/pull/3235)
+- fix(draw_sw_letter): fix incorrect use of sizeof for a pointer [`3234`](https://github.com/lvgl/lvgl/pull/3234)
+- fix(indev): fix null pointer access caused by typo [`3229`](https://github.com/lvgl/lvgl/pull/3229)
+- fix(event): remove invalid decision branches [`3233`](https://github.com/lvgl/lvgl/pull/3233)
+- fix(draw_mask): remove invalid decision branches [`3225`](https://github.com/lvgl/lvgl/pull/3225)
+- fix(spinbox): remove invalid judgment [`3227`](https://github.com/lvgl/lvgl/pull/3227)
+- fix(gradient): remove invalid decision branches [`3226`](https://github.com/lvgl/lvgl/pull/3226)
+- fix(txt): return 0 if letter_uni is out of range [`3224`](https://github.com/lvgl/lvgl/pull/3224)
+- fix(calendar): fix possible array access out of bounds [`3223`](https://github.com/lvgl/lvgl/pull/3223)
+- fix(style): remove useless null pointer judgment [`3222`](https://github.com/lvgl/lvgl/pull/3222)
+- fix(obj): scrolling exception when use lv_obj_set_parent() [`3210`](https://github.com/lvgl/lvgl/pull/3210)
+- fix(libs): fix memcmp memory access overflow [`3205`](https://github.com/lvgl/lvgl/pull/3205)
+- fix(png): fix possible file leaks [`3204`](https://github.com/lvgl/lvgl/pull/3204)
+- fix(docs): rename task-handler.md to timer-handler.md [`3203`](https://github.com/lvgl/lvgl/pull/3203)
+- fix(lru): Fix use of undefined variables [`3181`](https://github.com/lvgl/lvgl/pull/3181)
+- fix(rt-thread): Sconscript use LOCAL_CFLAGS to replace LOCAL_CCFLAGS [`3196`](https://github.com/lvgl/lvgl/pull/3196)
+- fix(make) make files under draw/gpu [`3202`](https://github.com/lvgl/lvgl/pull/3202)
+- fix(docs-CN):fix broken links to docs in dir get-started [`3195`](https://github.com/lvgl/lvgl/pull/3195)
+- fix broken links to docs in dir get-started [`3190`](https://github.com/lvgl/lvgl/pull/3190)
+- fix(indev): fix warning about formatting uint32_t with %d [`3193`](https://github.com/lvgl/lvgl/pull/3193)
+- fix(Kconfig): move LV_USE_IMGFONT to others menu [`3176`](https://github.com/lvgl/lvgl/pull/3176)
+- fix(draw): src_buf_tmp will be NULL when LV_DRAW_COMPLEX is '0' [`3163`](https://github.com/lvgl/lvgl/pull/3163)
+- fix(span): align the baselines [`3164`](https://github.com/lvgl/lvgl/pull/3164)
+- fix(menu): fix crash on delete [`3154`](https://github.com/lvgl/lvgl/pull/3154)
+- fix(Kconfig): add missing LV_USE_THEME_MONO [`3146`](https://github.com/lvgl/lvgl/pull/3146)
+- fix(demo/stress): remove the unused assets [`3139`](https://github.com/lvgl/lvgl/pull/3139)
+- fix(jpg): swap high and low bytes when macro LV_COLOR_16_SWAP is 1 [`3138`](https://github.com/lvgl/lvgl/pull/3138)
+- fix(script): in lv_conf_internal fix some widget dependencies when using Kconfig [`3119`](https://github.com/lvgl/lvgl/pull/3119)
+- fix(demo): minor fix for benchmark [`3114`](https://github.com/lvgl/lvgl/pull/3114)
+- fix(misc): in lv_map() handle if maximum value less than minimum value [`3113`](https://github.com/lvgl/lvgl/pull/3113)
+- fix(extra): adjust image decoder initialization order [`3085`](https://github.com/lvgl/lvgl/pull/3085)
+- fix(chart): optimize chart invalidation [`3028`](https://github.com/lvgl/lvgl/pull/3028)
+- fix(refr): fix performance monitor NULL pointer access [`3105`](https://github.com/lvgl/lvgl/pull/3105)
+- fix(misc): Remove duplicate declaration of _lv_log_add. [`3103`](https://github.com/lvgl/lvgl/pull/3103)
+- fix(gridnav): get key code from the actual event [`3101`](https://github.com/lvgl/lvgl/pull/3101)
+- fix(draw_rect): delete __STDC_VERSION__ to ensure C++ compatibility [`3099`](https://github.com/lvgl/lvgl/pull/3099)
+- fix(font):draw placeholder if get_glyph_dsc() returns false [`3000`](https://github.com/lvgl/lvgl/pull/3000)
+- fix(conf): work around GCC bug [`3082`](https://github.com/lvgl/lvgl/pull/3082)
+- fix(fsdrv): replacing sprintf with lv_snprintf for safety [`3079`](https://github.com/lvgl/lvgl/pull/3079)
+- fix(cmsis-pack): add PIDX for cmsis-pack [`3064`](https://github.com/lvgl/lvgl/pull/3064)
+- feat(gpu): add SWM341 gpu support (synwit) [`07b7eea`](https://github.com/lvgl/lvgl/commit/07b7eea56c048a0654c254cadebee8caf5f7933b)
+- fix(fs): fix cached read and add unit test for lv_fs [`98660a8`](https://github.com/lvgl/lvgl/commit/98660a861d874d29e8356452baff21788b6a9ef1)
+- fix(table): invalidate only the changed cell [`306fa19`](https://github.com/lvgl/lvgl/commit/306fa1968238fe33dd95e2865e147bceb4706ad5)
+- fix(draw): handle non BLEND_MODE_NORMAL for ARGB drawing [`9ac8ce6`](https://github.com/lvgl/lvgl/commit/9ac8ce69f67234563d4254e29e1903a638bb8f4e)
+- fix(draw): revert handling of style_opa on not MAIN parts [`51a7a61`](https://github.com/lvgl/lvgl/commit/51a7a61df365685a7cd04b0512ba3844dcfa7209)
+- fix(draw): clip the bg img to the rectangle's area in lv_draw_sw_rect [`77d726e`](https://github.com/lvgl/lvgl/commit/77d726efb2467ff86691dee487f97aac79ea45c2)
+- fix(obj): fix LV_OBJ_FLAG_OVERFLOW_VISIBLE [`c742f2c`](https://github.com/lvgl/lvgl/commit/c742f2c8888ad0102cebe91b4069b376068baa81)
+- fix(scroll): do not fire scroll begin/end event on every scroll step [`25ce6e3`](https://github.com/lvgl/lvgl/commit/25ce6e3ae9e144e2df5dad34475dda3542015f6a)
+- fix(indev): do not send keys to objects in disabled state [`b0a46c4`](https://github.com/lvgl/lvgl/commit/b0a46c4837c922cb1303ef768da3209e7efa45ae)
+- fix(disp): make lv_scr_load work better with lv_scr_load_anim and auto_del = true [`52287fd`](https://github.com/lvgl/lvgl/commit/52287fd64ad59c35794d1f4486b777f4eb686abc)
+- fix(draw): create intermediate layer for blend modes too [`8b15007`](https://github.com/lvgl/lvgl/commit/8b150075681455c6424ddd536e991307ac828eb4)
+- fix(group): in lv_group_remove() fix if the object to focus is deleted [`72cb683`](https://github.com/lvgl/lvgl/commit/72cb683c799f65cd4fbae22dafc3a35c123bb66b)
+- fix(draw): be sure angle values are in the correct range [`e624b90`](https://github.com/lvgl/lvgl/commit/e624b90db3515816eee8f6ce72677350487f3a02)
+- fix(scroll): send LV_EVENT_SCROLL_BEGIN/END with no animation too [`777fe1e`](https://github.com/lvgl/lvgl/commit/777fe1ea706f38b82ab8ee180548ecb85334a469)
+- fix(arc): fix arc image drawing issue [`7153e3f`](https://github.com/lvgl/lvgl/commit/7153e3f8b7b660474b8907954c80e21eb2f0bd21)
+- fix(refr): fix memory write out of bounds issue [`13c99fc`](https://github.com/lvgl/lvgl/commit/13c99fc4b66d3e8d0ffcd6fda21d3b5a40b0771c)
+- fix(gif): fix rare issue when drawing the gif's background [`b1e2c06`](https://github.com/lvgl/lvgl/commit/b1e2c0665829aa489f444169ce80fcd7cdf487bb)
+- fix(chart): fix misaligned horizontal tick lines on bar charts [`4572a0c`](https://github.com/lvgl/lvgl/commit/4572a0c6c92b126e229ce9aada551d71b4f4296b)
+- fix(font): use 0 width for non printable characters [`7cf5709`](https://github.com/lvgl/lvgl/commit/7cf5709b0669ab64e437a796c50f6bdb97b9d0d5)
+- revert(group): 72cb683c799f65cd4fbae22dafc3a35c123bb66b [`b7b22c1`](https://github.com/lvgl/lvgl/commit/b7b22c190c6d9e11a841289708f55be0be86830f)
+- fix(keyboard): don't show popovers on map change [`ac202e7`](https://github.com/lvgl/lvgl/commit/ac202e7b96510b9b12beb8a1eee3dfd65bc56a3d)
+- fix(refr): consider masks with LV_OBJ_FLAG_OVERFLOW_VISIBLE [`a7f9dfa`](https://github.com/lvgl/lvgl/commit/a7f9dfa8c3e4fd56cc2db5c3f3926b9391d3661f)
+- fix(draw): fix the calculation of the transformed coordinates [`76de7c6`](https://github.com/lvgl/lvgl/commit/76de7c6b7bce6da62f5e961ee477bfa324675683)
+- fix(style): fix heap use after free with transition styles [`d9ae58b`](https://github.com/lvgl/lvgl/commit/d9ae58b6977ccfda90e02fa6f5b852d398f8600a)
+- fix(tabview, tileview): fix scrolling [`22854ff`](https://github.com/lvgl/lvgl/commit/22854ff3fba236f50893221805c9cc4d378baaca)
+- fix(draw): fix disp_bg_img drawing [`dea75d9`](https://github.com/lvgl/lvgl/commit/dea75d9b4a90601bf81bf69d533c4f13e62aa88c)
+- fix(textarea): fix max length handling [`127d8e8`](https://github.com/lvgl/lvgl/commit/127d8e82e344cd8762672e787b1ee06390050b65)
+- fix(btnmatrix): fix extra draw size calculation to not clip shadow [`7ada130`](https://github.com/lvgl/lvgl/commit/7ada1301c2ee113a5184618538b979f6d9912239)
+- fix(indev): scroll_ throw_vect cannot converge to 0 when vect is negative [`e5c11f1`](https://github.com/lvgl/lvgl/commit/e5c11f1f68275d294d5b8892366aa424a5a14bca)
+- fix(theme): make the basic theme even more simpler [`62d6f3c`](https://github.com/lvgl/lvgl/commit/62d6f3c533ca6d13fce3056074c1e44ffea355b1)
+- fix(color): color mix rounding error [`523062b`](https://github.com/lvgl/lvgl/commit/523062b9ee8a106ad4b3b7bd0ee7baca743f2e5f)
+- fix(style): _lv_style_prop_lookup_flags tell all flags for LV_STYLE_PROP_ANY [`e53f602`](https://github.com/lvgl/lvgl/commit/e53f60259c01ab1243b0cf56eb228b7f5eedc203)
+- fix(list): use  for icon [`b171f7d`](https://github.com/lvgl/lvgl/commit/b171f7dde2a895142385ea1275f3f51255cb2811)
+- fix(layout): fix the handling of FLOATING children [`48728a7`](https://github.com/lvgl/lvgl/commit/48728a7839d6859d7d6fc4f86f5fbcbcd9939348)
+- fix(style): make color filter inherited [`5546b9d`](https://github.com/lvgl/lvgl/commit/5546b9d740de8d774071328251413ec29c12d288)
+- fix(spinbox): set its default width in its class [`3d92972`](https://github.com/lvgl/lvgl/commit/3d9297269598ca40e2f8dd2d8f31150d41e94cb8)
+- fix: fix warning [`6c00552`](https://github.com/lvgl/lvgl/commit/6c005526295aeb277edad42b3a05b0c7e6d72eaf)
+- fix(draw): fix transformations on subdivided areas [`cbff8e8`](https://github.com/lvgl/lvgl/commit/cbff8e83e50fecc2b4b43d661deb91d8d81d6696)
+- fix(slider): fix left knob in ranged mode [`17f5e0a`](https://github.com/lvgl/lvgl/commit/17f5e0accb15871040a6225a9c0471ceadd6dc16)
+- fix(Kconfig): allow unchecking LV_CONF_SKIP [`f3a07a3`](https://github.com/lvgl/lvgl/commit/f3a07a3e8a21f3f9f2c48a2803b8bd991968cb05)
+- fix(style): fix using width for both width and height in radius transition [`6acbdaa`](https://github.com/lvgl/lvgl/commit/6acbdaa53d941b891db377e65111bd999f04631d)
+- fix(dropdown): fix scrolling when options are CENTER aligned [`e651383`](https://github.com/lvgl/lvgl/commit/e651383688dd29ab2e990cd997118435832d959c)
+- fix(grid): fix dead branch [`46bf27d`](https://github.com/lvgl/lvgl/commit/46bf27d50bb668bdd1f84489cb70986ee0ef9fab)
+- fix(hal): disable driver-&gt;screen_transp by default regardless to LV_COLOR_SCREEN_TRANSP [`ff7204e`](https://github.com/lvgl/lvgl/commit/ff7204ecadd10132b436b11c8948b9a882b58798)
+- fix(theme): fix mono theme init [`5ec6694`](https://github.com/lvgl/lvgl/commit/5ec6694f7874f3c99a764e7ee2d45a933865c91c)
+- fix(bmp) fix typo in BPP condition [`cbc38af`](https://github.com/lvgl/lvgl/commit/cbc38afb3a0d3ca02159ab89242749809e64df0c)
+- fix(theme): in the basic theme show the textarea cursor only in focuses state [`bb03fb1`](https://github.com/lvgl/lvgl/commit/bb03fb197c7083680fd7dc730794a52561cabfd4)
+- fix(draw): fix img recolor [`23eecce`](https://github.com/lvgl/lvgl/commit/23eecce008dacd8e5f5d56d017e4e5705f0c31e6)
+- fix(theme) add disabled style to textarea in the default theme [`00f6759`](https://github.com/lvgl/lvgl/commit/00f67597d3c87ff811e5e682c10ef20227218651)
+- fix(meter): improve the precision of tick line drawing [`0255c6d`](https://github.com/lvgl/lvgl/commit/0255c6dd39640d7ec639cbd339a0fbdcdfb2bb82)
+- fix(gpu): fix warning with NXP GPU [`6be43b8`](https://github.com/lvgl/lvgl/commit/6be43b83b3dc9340263552167dbbb07c1069bdb0)
+- fix(color): compensate rounding error during blending [`42d9c07`](https://github.com/lvgl/lvgl/commit/42d9c07eeb0abfdbf8746da3569a5f8bc156ae71)
+- fix(examples) use type-safe function for retrieving event param [`71d535d`](https://github.com/lvgl/lvgl/commit/71d535defd730fc20ed8d57faa2550781be4f3d7)
+- fix(draw) ensure variable is initialized to avoid warning [`276f28a`](https://github.com/lvgl/lvgl/commit/276f28a8a2f4ac2f6268a4363879faa6296e14ad)
+- feat(draw): improve acceleration for LV_IMG_CF_ALPHA_8BIT (#3337) [`8d3c41d`](https://github.com/lvgl/lvgl/commit/8d3c41d5170dad0455fea3d95b2765db70d3c7c2)
+- fix(spinbox): rename lv_spinbox_set_pos to lv_spinbox_set_cursor_pos [`a99eb6b`](https://github.com/lvgl/lvgl/commit/a99eb6bb6ae12f3fcb86f5268a0c000fb165e159)
+- fix(layout): use uint16_t LV_LAYOUT_FLEX/GRID [`c596a36`](https://github.com/lvgl/lvgl/commit/c596a36d9ecf92ae5ce1ecc812210bf3a7df4999)
+- fix(event) avoid using a boolean as a pointer [`06fff4b`](https://github.com/lvgl/lvgl/commit/06fff4b9bac35d63564de87fa63f7bedd8a0f9f2)
+- fix(theme): properly disable transitions if LV_THEME_DEFAULT_TRANSITION_TIME==0 [`242112b`](https://github.com/lvgl/lvgl/commit/242112b2df8b6cc12aa9920cc3b2fdc9a11d807f)
+- fix(scroll): fix scroll to view to the left [`7c74f65`](https://github.com/lvgl/lvgl/commit/7c74f6556abbc299a79b1490c06151a43c902f61)
+- fix(fs): mark the read cache as invalid by default [`54f9987`](https://github.com/lvgl/lvgl/commit/54f99870b3cac619fb7057618637d7ee19d58bb3)
+- fix(menu): fix crash on delete (#3154) [`a6c4c13`](https://github.com/lvgl/lvgl/commit/a6c4c134902f9a4c156672a70108e809b58fa18c)
+- fix(roller): fix unexpected jump in infinite mode [`18f2d78`](https://github.com/lvgl/lvgl/commit/18f2d78728c758179e4ef01ebc632da4e1263be7)
+- fix(conf): work around GCC bug (#3082) [`c6b34bc`](https://github.com/lvgl/lvgl/commit/c6b34bc85bb6f5e57e1c87857e03d1a0bd225e4c)
+
+### Examples
+- example(ime_pinyin): improved lv_example_ime_pinyin_1 [`3428`](https://github.com/lvgl/lvgl/pull/3428)
+- example(imgfont): fix lvgl.h include path [`3405`](https://github.com/lvgl/lvgl/pull/3405)
+- example(btnmatrix): update lv_example_btnmatrix_2 to expicitly check which part is drawn [`6b2eac1`](https://github.com/lvgl/lvgl/commit/6b2eac1dd70df62916b46cee8d4b981ff088b1a7)
+- example(slider): make lv_example_slider_3 work with dark theme too [`4a766c5`](https://github.com/lvgl/lvgl/commit/4a766c516db7c2572a075ec5ffe748d30af8c7b9)
+- example(span): avoid ambiguous meaing [`7bb09e3`](https://github.com/lvgl/lvgl/commit/7bb09e358026aff3d55d881237624baac77db890)
+- demo(benchmark): add LV_DEMO_BENCHMARK_RGB565A8 option [`afaa8c9`](https://github.com/lvgl/lvgl/commit/afaa8c93006a88db9f115b2b318eef790928d2a6)
+
+### Docs
+
+- docs(indev): add comment in input device part [`3422`](https://github.com/lvgl/lvgl/pull/3422)
+- docs(slider) mention that VALUE_CHANGED is not sent on release [`3397`](https://github.com/lvgl/lvgl/pull/3397)
+- docs(readme): add version portuguese brazilian [`3349`](https://github.com/lvgl/lvgl/pull/3349)
+- docs(pc-simulator): add MDK with FastModel [`3318`](https://github.com/lvgl/lvgl/pull/3318)
+- docs(intro): update for v8.2.0 [`3316`](https://github.com/lvgl/lvgl/pull/3316)
+- docs(readme) update link to the PlatformIO Registry [`3296`](https://github.com/lvgl/lvgl/pull/3296)
+- docs(gesture): fix typo lv_indev_act() -&gt; lv_indev_get_act() [`3291`](https://github.com/lvgl/lvgl/pull/3291)
+- docs(scroll) add information about scroll coordinates [`3088`](https://github.com/lvgl/lvgl/pull/3088)
+- docs(msgbox) fix typo [`3095`](https://github.com/lvgl/lvgl/pull/3095)
+- docs(scroll): use LV_DIR_VER instead of LV_DIR_TOP [`3066`](https://github.com/lvgl/lvgl/pull/3066)
+- docs: rearrange the get-started section [`8a81532`](https://github.com/lvgl/lvgl/commit/8a8153219163b689e8f96d6a97c1f128eefd7ce2)
+- docs: add section for renderers and gpus [`378aaa6`](https://github.com/lvgl/lvgl/commit/378aaa637bdcaef8f06667ab9d56c914e0a61beb)
+- docs collapse APIs by default [`ebd20af`](https://github.com/lvgl/lvgl/commit/ebd20af6e9cbd68230f49b6c85d940569a7db81c)
+- docs(images): fix notes about breaking change inf v8.2 [`9a1e385`](https://github.com/lvgl/lvgl/commit/9a1e385b2b3498ed70704bf0ed33e4bd263747d8)
+- docs(sim): add link to qt-creator [`88bbef1`](https://github.com/lvgl/lvgl/commit/88bbef14bf69725a1ab62bffa6ab79355ea31c2d)
+- docs(chart): describe how to set the space between columns [`746917d`](https://github.com/lvgl/lvgl/commit/746917dcca74c53f6b2dc3849c9d588a0bf91b60)
+- docs(README): fix broken link [`c2c44c6`](https://github.com/lvgl/lvgl/commit/c2c44c68ee69cdee16fce7833cbf6d6dc0d551ab)
+- docs(examples) avoid redirects when loading examples [`d367bb7`](https://github.com/lvgl/lvgl/commit/d367bb7cf17dc34863f4439bba9b66a820088951)
+- docs(gesture): describe how prevent sending events after a gesture [`65db5c9`](https://github.com/lvgl/lvgl/commit/65db5c99e05f86d2ec69ebae9f1fc50fe30a3145)
+- docs(get-started): add quick-overview to the index [`91ebf81`](https://github.com/lvgl/lvgl/commit/91ebf810aacfe972f0ae140a1a61031eea9cda0c)
+- docs(others): add imgfont to the index [`656a0e5`](https://github.com/lvgl/lvgl/commit/656a0e5167dca8c6c29497130e374080397fa45f)
+
+### CI and tests
+
+- ci(slider): add unit test [`3198`](https://github.com/lvgl/lvgl/pull/3198)
+- test(line): add unit tests for line widget [`3104`](https://github.com/lvgl/lvgl/pull/3104)
+- test(table): replicate issue when reducing table cells [`3121`](https://github.com/lvgl/lvgl/pull/3121)
+- test(textarea): add unit test [`3074`](https://github.com/lvgl/lvgl/pull/3074)
+- test(table): add unit tests [`3040`](https://github.com/lvgl/lvgl/pull/3040)
+- ci(docs) replace use of sed with proper configuration variables [`1816fa5`](https://github.com/lvgl/lvgl/commit/1816fa576cc40ef1795e95ed127d93df5390b0cf)
+- ci add Makefile test [`ea79cee`](https://github.com/lvgl/lvgl/commit/ea79cee01a6bec9b3ce5b6c232dd7ca0d020d5c9)
+- test(mem) add test for #3324 [`9700664`](https://github.com/lvgl/lvgl/commit/97006647d8ed3af65fd2113ddf01c7882a4dba19)
+- test(img): fix image error diff handler [`48d87e1`](https://github.com/lvgl/lvgl/commit/48d87e1ed2d362e9c3bd84eb60c311ad6519ae85)
+- ci update docs builder to work with Python 3.10 [`a3d66c9`](https://github.com/lvgl/lvgl/commit/a3d66c9b67d226f8ab4555616ecf2ea62e307962)
+- ci make sure LVGL assertions cause tests to fail [`b83c5aa`](https://github.com/lvgl/lvgl/commit/b83c5aa9bc4a278a6758f76e77ac9c403e483948)
+- ci remove formatting comment [`d345f76`](https://github.com/lvgl/lvgl/commit/d345f76d02a23d94550b1b60be90585f6f5276b7)
+- ci don't run workflows twice on PRs [`fcc1152`](https://github.com/lvgl/lvgl/commit/fcc1152f9c14494f128f26a6b47b00864a70c741)
+- ci bump test timeout to 30 seconds [skip ci] [`85e3e23`](https://github.com/lvgl/lvgl/commit/85e3e2387845bd29c9f85b406623e41d36b66808)
+- ci limit tests to 15 seconds [`003f18f`](https://github.com/lvgl/lvgl/commit/003f18f86c5c728920575cf1d34dd0f811607a51)
+- ci(makefile) fix typo in GitHub action [`a101e70`](https://github.com/lvgl/lvgl/commit/a101e70ebd4120549236abd637049678dd6800e7)
+- ci(switch): fix mem leak test [`8481e3a`](https://github.com/lvgl/lvgl/commit/8481e3a33bc3313b679babac31e6193ec4319bcd)
+- ci(stale) bump action version [`5977eef`](https://github.com/lvgl/lvgl/commit/5977eeff3c559c0473d5abd8a99687eeb4659c61)
+- ci use GCC problem matcher on ARM tests as well [`9fcefe5`](https://github.com/lvgl/lvgl/commit/9fcefe5a49a024054a3cee08d273b8fe5cf8840e)
+
 
 ## [v8.2.0](https://github.com/littlevgl/lvgl/compare/v8.1.0...v8.2.0) 31 January 2022
 
 
 ### Overview
 
-Among many fixes and minor updates these are the most important features in v8.2.0: 
-- Abstract render layer to make it easier to attack external draw engines
+Among many fixes and minor updates these are the most important features in v8.2.0:
+- Abstract render layer to make it easier to attach external draw engines
 - Add `LV_FLAD_OVERFLOW_VISIBLE`. If enabled the children of an object won't be clipped to the boundary of the object
 - Add ffmpeg decoder support to play videos and open a wide variety of image formats
-- Add font fallback support 
+- Add font fallback support
 - Add gradient dithering support
-- Add "monkey test" 
+- Add "monkey test"
 - Add cmsis-pack support
 - Add Grid navigation (`lv_gridnav`)
 
@@ -23,6 +491,7 @@ The GPU support for NXP microcontrollers is still not updated to the new draw ar
 - :warning: feat(fs): add caching option for lv_fs-read [`2979`](https://github.com/littlevgl/lvgl/pull/2979)
 - :warning: feat(span): lv_spangroup_get_expand_width() adds a parameter [`2968`](https://github.com/littlevgl/lvgl/pull/2968)
 - :warning: arch(draw): allow replacing the draw engine [`db53ea9`](https://github.com/littlevgl/lvgl/commit/db53ea925c9502b20f38db0fc30c4ef599bdfc33)
+- :warning: indexed images are not chroma keyed. Use the alpha chaneel instead.
 
 ### Architectural
 
@@ -63,7 +532,7 @@ The GPU support for NXP microcontrollers is still not updated to the new draw ar
 - feat(scrollbar): add more control over scrollbar paddings [`4197b2f`](https://github.com/littlevgl/lvgl/commit/4197b2fd6ebec4b4dcfeeb2c41b724e09b77d1d0)
 - feat(dropdown): keep the list on open/close for simpler styling [`9d3134b`](https://github.com/littlevgl/lvgl/commit/9d3134b66e40882c232afa79498c41294603f437)
 - feat(qrcode) use destructor instead of lv_qrcode_delete() [`318edd8`](https://github.com/littlevgl/lvgl/commit/318edd8a3f61a65be3ed15a97c0870de0ad4125a)
-- feat(disp) allow decouplig the disp_refr timer [`85cc84a`](https://github.com/littlevgl/lvgl/commit/85cc84ad947786bb3d4857290503047946a55c43)
+- feat(disp) allow decoupling the disp_refr timer [`85cc84a`](https://github.com/littlevgl/lvgl/commit/85cc84ad947786bb3d4857290503047946a55c43)
 - feat(obj): add lv_obj_get_event_user_data() [`53ececc`](https://github.com/littlevgl/lvgl/commit/53ececc5ec6f62ee4ab47ea66a847679e3836f52)
 - feat(obj) add LV_OBJ_FLAG_SCROLL_WITH_ARROW [`70327bd`](https://github.com/littlevgl/lvgl/commit/70327bdb2d758336340c5a3b378ab876bfee2d53)
 - feat(slider): consider ext_click_area on the knob with LV_OBJ_FLAG_ADV_HITTEST [`9d3fb41`](https://github.com/littlevgl/lvgl/commit/9d3fb418969c13b93f01a6b0342a1cd8d02e9b6c)
@@ -107,7 +576,7 @@ The GPU support for NXP microcontrollers is still not updated to the new draw ar
 - fix(indev) add braces to avoid compiler warning [`2947`](https://github.com/littlevgl/lvgl/pull/2947)
 - fix: fix parameter order in function prototypes [`2929`](https://github.com/littlevgl/lvgl/pull/2929)
 - fix(style):add const qualifier for lv_style_get_prop() [`2933`](https://github.com/littlevgl/lvgl/pull/2933)
-- fix(dropdown): in lv_dropdpwn_get_selected_str handle if there are no options [`2925`](https://github.com/littlevgl/lvgl/pull/2925)
+- fix(dropdown): in lv_dropdown_get_selected_str handle if there are no options [`2925`](https://github.com/littlevgl/lvgl/pull/2925)
 - fix: lv_deinit/lv_init crash or hang [`2910`](https://github.com/littlevgl/lvgl/pull/2910)
 - fix(rt-thread): improve the structure [`2912`](https://github.com/littlevgl/lvgl/pull/2912)
 - fix: removed string format warnings for int32_t and uint32_t [`2924`](https://github.com/littlevgl/lvgl/pull/2924)
@@ -168,7 +637,7 @@ The GPU support for NXP microcontrollers is still not updated to the new draw ar
 - fix(label): dot not add dots if the label height &gt; 1 font line height [`4d61f38`](https://github.com/littlevgl/lvgl/commit/4d61f3802013b31b0af5f08f66bb86f5179db141)
 - fix(event): crash if an object was deleted in an event [`9810920`](https://github.com/littlevgl/lvgl/commit/9810920fc5d34a984bddf6e41156e87e509cfd27)
 - fix(build) fix sdl build with make [`43729d1`](https://github.com/littlevgl/lvgl/commit/43729d1502dad0ca797b4b6fb8c69a48c81a2af7)
-- fix(config): fix anonymus choice [`71c739c`](https://github.com/littlevgl/lvgl/commit/71c739cc2dbcebf16e8adc805dda182011e725da)
+- fix(config): fix anonymous choice [`71c739c`](https://github.com/littlevgl/lvgl/commit/71c739cc2dbcebf16e8adc805dda182011e725da)
 - chore(docs): fix lv_list_add_text [`a5fbf22`](https://github.com/littlevgl/lvgl/commit/a5fbf22d415a52cb2641c6dfda6937a10e4952cc)
 - fix(png) check png magic number to be sure it's a png image [`1092550`](https://github.com/littlevgl/lvgl/commit/1092550775c464f9ae8c406786fe02115776d5c6)
 - fix(btnmatrix): fix crash if an empty btnmatrix is pressed [`2392f58`](https://github.com/littlevgl/lvgl/commit/2392f585bb9317153f6fb648d2a660cbdc3e276f)
@@ -203,7 +672,7 @@ The GPU support for NXP microcontrollers is still not updated to the new draw ar
 - docs: spelling fixes [`2828`](https://github.com/littlevgl/lvgl/pull/2828)
 - docs(style) minor style fix [`2818`](https://github.com/littlevgl/lvgl/pull/2818)
 - docs(porting/display) fix formatting [`2812`](https://github.com/littlevgl/lvgl/pull/2812)
-- docs(roadmap) udpate [`084439e`](https://github.com/littlevgl/lvgl/commit/084439e9476339ff571820e38bb677157edef135)
+- docs(roadmap) update [`084439e`](https://github.com/littlevgl/lvgl/commit/084439e9476339ff571820e38bb677157edef135)
 - docs(widgets) fix edit links [`7ed1a56`](https://github.com/littlevgl/lvgl/commit/7ed1a5625a5139ede832c0058b2bc6309b395321)
 - docs(contributing) update commit message format [`1cd851f`](https://github.com/littlevgl/lvgl/commit/1cd851f8c09e813d75feaf9bf312f887f5ba76f0)
 - docs(porting): add more details about adding lvgl to your project [`6ce7348`](https://github.com/littlevgl/lvgl/commit/6ce73486d319bfdb1c379d090036a7eeaabf5b43)
@@ -274,12 +743,12 @@ The GPU support for NXP microcontrollers is still not updated to the new draw ar
 ## [v8.1.0](https://github.com/lvgl/lvgl/compare/v8.0.2...v8.1.0) 10 November 2021
 
 ### Overview
-v8.1 is minor release so besides many fixes it contains a lot of new features too. 
+v8.1 is a minor release, so besides many fixes it contains a lot of new features too.
 
 Some of the most important features are
 - Built in support for SDL based GPU drawing
 - Much faster circle drawing in the software renderer
-- Several [3rd party libraries](https://docs.lvgl.io/master/libs/index.html) are merged directly into LVGL. 
+- Several [3rd party libraries](https://docs.lvgl.io/master/libs/index.html) are merged directly into LVGL.
 - Add LVGL as an [RT-Thread](https://packages.rt-thread.org/en/detail.html?package=LVGL) and [ESP32](https://components.espressif.com/component/lvgl/lvgl) component
 
 ### Breaking Changes
@@ -327,7 +796,7 @@ Some of the most important features are
 - feat(spinbox ) add function to set cursor to specific position [`2314`](https://github.com/lvgl/lvgl/pull/2314)
 
 - feat(timer) check if lv_tick_inc is called [`aa6641a`](https://github.com/lvgl/lvgl/commit/aa6641a6f1c1311ce7e0f94783ee7f582452a88f)
-- feat(event, widgets) improve the paramter of LV_EVENT_DRAW_PART_BEGIN/END [`88c4859`](https://github.com/lvgl/lvgl/commit/88c485949fca2686357a7dee88d5730678ba9bc7)
+- feat(event, widgets) improve the parameter of LV_EVENT_DRAW_PART_BEGIN/END [`88c4859`](https://github.com/lvgl/lvgl/commit/88c485949fca2686357a7dee88d5730678ba9bc7)
 - feat(docs) improvements to examples [`4b8c73a`](https://github.com/lvgl/lvgl/commit/4b8c73a5770657ab55bbe825f7887e28c55a8a4a)
 - feat(obj) send LV_EVENT_DRAW_PART_BEGIN/END for MAIN and SCROLLBAR parts [`b203167`](https://github.com/lvgl/lvgl/commit/b203167c7583905e2cb4006e57a16432841a2353)
 - feat(led) send LV_EVENT_DRAW_PART_BEGIN/END [`fcd4aa3`](https://github.com/lvgl/lvgl/commit/fcd4aa3924469c2a92ab6a04b7bc6de6304cc54a)
@@ -336,7 +805,7 @@ Some of the most important features are
 - feat(conf) add better check for Kconfig default [`f8fe536`](https://github.com/lvgl/lvgl/commit/f8fe5366bb051cd5090e4a06658eb0d32decc0b3)
 - feat(draw) add LV_BLEND_MODE_MULTIPLY [`cc78ef4`](https://github.com/lvgl/lvgl/commit/cc78ef450649a10f260649dc3ba19ac8a6b88e86)
 - feat(test) add assert for screenshot compare [`2f7a005`](https://github.com/lvgl/lvgl/commit/2f7a005bd31c10d0a048f55641e4af11bcb5bbfa)
-- feat(event) pass the scroll aniamtion to LV_EVENT_SCROLL_BEGIN [`ca54ecf`](https://github.com/lvgl/lvgl/commit/ca54ecfe0eac880203d23b2d2244b9b63b9f7b77)
+- feat(event) pass the scroll animation to LV_EVENT_SCROLL_BEGIN [`ca54ecf`](https://github.com/lvgl/lvgl/commit/ca54ecfe0eac880203d23b2d2244b9b63b9f7b77)
 - feat(obj) place the scrollbar to the left with RTL base dir. [`906448e`](https://github.com/lvgl/lvgl/commit/906448ef6321f160859f21c5937180bb89d8ef1e)
 - feat(log) allow overwriting LV_LOG_... macros [`17b8a76`](https://github.com/lvgl/lvgl/commit/17b8a76c4a887c9cf464484406a6631ea0194ad5)
 - feat(arc) add support to LV_OBJ_FLAG_ADV_HITTEST [`dfa4f5c`](https://github.com/lvgl/lvgl/commit/dfa4f5cff561a60b4ffcec17e025f1e056854fff)
@@ -477,7 +946,7 @@ Some of the most important features are
 - fix(pxp): update RTOS macro for SDK 2.10 [`00c3eb1`](https://github.com/lvgl/lvgl/commit/00c3eb197cb85e480809d97eb722589d75d81d94)
 - fix(textarea) style update in oneline mode + improve sroll to cursor [`60d9a5e`](https://github.com/lvgl/lvgl/commit/60d9a5e493bf17ee9887ba44890d00905bc55970)
 - feat(led) send LV_EVENT_DRAW_PART_BEGIN/END [`fcd4aa3`](https://github.com/lvgl/lvgl/commit/fcd4aa3924469c2a92ab6a04b7bc6de6304cc54a)
-- fix warnigs introduced by 3fb8baf5 [`e302403`](https://github.com/lvgl/lvgl/commit/e3024032dc5de2ece4fa17059ebad4189a5fa670)
+- fix warnings introduced by 3fb8baf5 [`e302403`](https://github.com/lvgl/lvgl/commit/e3024032dc5de2ece4fa17059ebad4189a5fa670)
 - fix(roller) fix partial redraw of the selected area [`6bc40f8`](https://github.com/lvgl/lvgl/commit/6bc40f8c4417a94ab26b25220324e471e03ce443)
 - fix(flex) fix layout update and invalidation issues [`5bd82b0`](https://github.com/lvgl/lvgl/commit/5bd82b038b841c0f7c93bbdacdbd61d6b9585846)
 - fix(indev) focus on objects on release instead of press [`76a8293`](https://github.com/lvgl/lvgl/commit/76a8293375b705a5e02e4f9c8f8a42d99db762e2)
@@ -498,19 +967,19 @@ Some of the most important features are
 - fix(README) improve grammar [`de81889`](https://github.com/lvgl/lvgl/commit/de81889cbdc889360e8bc00684f9ca77ff97d89f)
 - fix(printf) skip defining attribute if pycparser is used [`ee9bbea`](https://github.com/lvgl/lvgl/commit/ee9bbea29c807707353e8b9ec09048990de18e4e)
 - fix(README) spelling correction [`41869f2`](https://github.com/lvgl/lvgl/commit/41869f238e773e599959c9ef2fee0b7206712ee2)
-- fix(color) overflow with 16 bit color depth [`fe6d8d7`](https://github.com/lvgl/lvgl/commit/fe6d8d7636ae283afda68e85b2d1f143d8d05462)
+- fix(color) overflow with 16-bit color depth [`fe6d8d7`](https://github.com/lvgl/lvgl/commit/fe6d8d7636ae283afda68e85b2d1f143d8d05462)
 - fix(docs) consider an example to be visible over a wider area [`145a0fa`](https://github.com/lvgl/lvgl/commit/145a0fad0857dad7f2066e7d22436827e0d3fd7d)
 - fix(codecov) disable uploading coverage for pull requests [`27d88de`](https://github.com/lvgl/lvgl/commit/27d88de899e91cd5bb9fc69fe9d71cb180cfb44b)
 - fix(arc) disable LV_OBJ_FLAG_SCROLL_CHAIN by default [`f172eb3`](https://github.com/lvgl/lvgl/commit/f172eb3fd78481d6076ead395abfd765646ad21e)
-- fix(template) updpate lv_objx_template to v8 [`38bb8af`](https://github.com/lvgl/lvgl/commit/38bb8afc16720e8d8fe6e72be6fae4f9da593bbc)
+- fix(template) update lv_objx_template to v8 [`38bb8af`](https://github.com/lvgl/lvgl/commit/38bb8afc16720e8d8fe6e72be6fae4f9da593bbc)
 - fix(align) avoid circular references with LV_SIZE_CONTENT [`038b781`](https://github.com/lvgl/lvgl/commit/038b78122e72db67cec886d09eb2d21aaa019df7)
-- fix(draw) with additive blending with 32 bit color depth [`786db2a`](https://github.com/lvgl/lvgl/commit/786db2afe6458e24681b8a40fa798429956d3420)
+- fix(draw) with additive blending with 32-bit color depth [`786db2a`](https://github.com/lvgl/lvgl/commit/786db2afe6458e24681b8a40fa798429956d3420)
 - fix(arc) fix arc invalidation again [`5ced080`](https://github.com/lvgl/lvgl/commit/5ced08001c384bf7c840750c0e254b5f0115a070)
 - fix(align) fix lv_obj_align_to [`93b38e9`](https://github.com/lvgl/lvgl/commit/93b38e92be9ed3ae050a1ee6e5b680ab43fd4850)
 - fix(scroll) keep the scroll position on object deleted [`52edbb4`](https://github.com/lvgl/lvgl/commit/52edbb46b0741d2761a11ef1b3d516ec96a7c8b3)
 - fix(dropdown) handle LV_KEY_ENTER [`8a50edd`](https://github.com/lvgl/lvgl/commit/8a50edd0689c7133ca18fd476596ddc4088f86a9)
 - fix various minor warnings [`924bc75`](https://github.com/lvgl/lvgl/commit/924bc754adcbabaf3518bac6067e7ea37f2f0f04)
-- fix(textarea) various cursor darwing fixes [`273a0eb`](https://github.com/lvgl/lvgl/commit/273a0eb32f04e81f326288a71682bea1c812c76a)
+- fix(textarea) various cursor drawing fixes [`273a0eb`](https://github.com/lvgl/lvgl/commit/273a0eb32f04e81f326288a71682bea1c812c76a)
 - fix(label) consider base dir lv_label_get_letter_pos in special cases [`6df5122`](https://github.com/lvgl/lvgl/commit/6df51225c261b252f0935804b0357d6e585da53d)
 - fix(imgbtn) add lv_imgbtn_set_state [`26e15fa`](https://github.com/lvgl/lvgl/commit/26e15fa577f97d510b218fb95fc9a4bd440b00bc)
 - fix(printf) add (int) casts to log messages to avoid warnings on %d [`d9d3f27`](https://github.com/lvgl/lvgl/commit/d9d3f271267e760c8459b65c392914143a58b89c)
@@ -518,9 +987,9 @@ Some of the most important features are
 - fix(test) silence make [`37fd9d8`](https://github.com/lvgl/lvgl/commit/37fd9d8a24c276079ed26b5d6704bcefc9f8dc70)
 - fix(calendar) update the MP example [`0bab4a7`](https://github.com/lvgl/lvgl/commit/0bab4a72cf769872a9adfd5bfa1c4536e6f909a8)
 - fix(scroll) fix scroll_area_into_view with objects larger than the parent [`5240fdd`](https://github.com/lvgl/lvgl/commit/5240fdda5ccc33d166f8201818868add5d1d6d0d)
-- fix(msgbox) handle NULL btn map paramter [`769c4a3`](https://github.com/lvgl/lvgl/commit/769c4a30cf962be1f74e0b1cd7ebaefbd6ba8a8b)
+- fix(msgbox) handle NULL btn map parameter [`769c4a3`](https://github.com/lvgl/lvgl/commit/769c4a30cf962be1f74e0b1cd7ebaefbd6ba8a8b)
 - fix (scroll) do not send unnecessary scroll end events [`3ce5226`](https://github.com/lvgl/lvgl/commit/3ce5226c9d9db279904c4f076ae77e6e03572e4c)
-- fix(obj_pos) consider all alignements in contnt size calculation but only if x and y = 0 [`5b27ebb`](https://github.com/lvgl/lvgl/commit/5b27ebb4097166f8c4a50ee5d39249939bf79814)
+- fix(obj_pos) consider all alignments in content size calculation but only if x and y = 0 [`5b27ebb`](https://github.com/lvgl/lvgl/commit/5b27ebb4097166f8c4a50ee5d39249939bf79814)
 - fix(img decoder) add error handling if the dsc-&gt;data = NULL [`d0c1c67`](https://github.com/lvgl/lvgl/commit/d0c1c673a8ec17b842ebf97d5f21938ec8901346)
 - fix(txt): skip basic arabic vowel characters when processing conjunction [`5b54800`](https://github.com/lvgl/lvgl/commit/5b548006eda0695cabf2ee237a7faee8c69e4659)
 - fix(typo) rename LV_OBJ_FLAG_SNAPABLE to LV_OBJ_FLAG_SNAPPABLE [`e697807`](https://github.com/lvgl/lvgl/commit/e697807cf5c01be2531fc52df78ecad75ce39a7a)
@@ -551,7 +1020,7 @@ Some of the most important features are
 - fix(dropdown) add missing invalidations [`33b5d4a`](https://github.com/lvgl/lvgl/commit/33b5d4a4fe6f28962ee7988f74d5ae842dc49b04)
 - fix(dropdown) adjust the handling of keys sent to the dropdown [`e41c507`](https://github.com/lvgl/lvgl/commit/e41c50780495c7d6ac6a2b0edf12fc98c9d85a6b)
 - fix(disp) be sure the pending scr load animation is finished in lv_scr_load_anim [`eb6ae52`](https://github.com/lvgl/lvgl/commit/eb6ae526432453e4b9dbc7a760cd65d164050548)
-- fix(color) fox color premult precision with 16 bit color depth [`f334226`](https://github.com/lvgl/lvgl/commit/f3342269f272c474265700527f52d3ba92111531)
+- fix(color) fox color premult precision with 16-bit color depth [`f334226`](https://github.com/lvgl/lvgl/commit/f3342269f272c474265700527f52d3ba92111531)
 - fix(obj_pos) save x,y even if the object is on a layout [`a9b660c`](https://github.com/lvgl/lvgl/commit/a9b660c278658224f05fbe43d0199c48711db9fd)
 - fix(scrollbar) hide the scrollbar if the scrollable flag is removed [`d9c6ad0`](https://github.com/lvgl/lvgl/commit/d9c6ad0425e761d605124e4555adc72854fec4a6)
 - fix(dropdown) fix list position with RTL base direction [`79edb37`](https://github.com/lvgl/lvgl/commit/79edb37b0ab5015111bade6074fda81ae101b91b)
@@ -574,7 +1043,7 @@ Some of the most important features are
 - fix(group) allow refocusing objects [`1520208`](https://github.com/lvgl/lvgl/commit/1520208b14c38713719f507273024624a0f54f1a)
 - fix(tabview) fix with left and right tabs [`17c5744`](https://github.com/lvgl/lvgl/commit/17c57449eeae8a693ad5601cf4169cf44d57d5c9)
 - fix(msgbox) create modals on top layer instead of act screen [`5cf6303`](https://github.com/lvgl/lvgl/commit/5cf6303e741ec22e2e87f69af4109855eb637e63)
-- fix(theme) show disabled state on buttons of btnmatrix, msgbox and kayboard [`0be582b`](https://github.com/lvgl/lvgl/commit/0be582b391e60774d6158411b835b679b010a99b)
+- fix(theme) show disabled state on buttons of btnmatrix, msgbox and keyboard [`0be582b`](https://github.com/lvgl/lvgl/commit/0be582b391e60774d6158411b835b679b010a99b)
 - fix(label) update lv_label_get_letter_pos to work with LV_BASE_DIR_AUTO too [`580e05a`](https://github.com/lvgl/lvgl/commit/580e05a0e1531d86d5229ade4ced2c336fbce634)
 - fix(label) fix in lv_label_get_letter_pos with when pos==line_start [`58f3f56`](https://github.com/lvgl/lvgl/commit/58f3f5625c2b29278c3e122d8eeba4d9bc597db9)
 - fix(gif) replace printf statement with LVGL logging [`56f62b8`](https://github.com/lvgl/lvgl/commit/56f62b8d7356017319d21d44a8f450705ec6486b)
@@ -592,7 +1061,7 @@ Some of the most important features are
 - fix(docs) use let instead of const for variable which gets changed [`3cf5751`](https://github.com/lvgl/lvgl/commit/3cf5751461d6a85974da4e5c66593736ae140a1a)
 - fix(theme) fix the switch style in the default theme [`0c0dc8e`](https://github.com/lvgl/lvgl/commit/0c0dc8ea30289254732cbba7ada7fd4f092caf22)
 - fix(tlsf) undef printf before define-ing it [`cc935b8`](https://github.com/lvgl/lvgl/commit/cc935b87f69e6107d12d9ba4a2c83103f7dd4356)
-- fix(msgbox) prevent the buttons being wider than the msbgox [`73e036b`](https://github.com/lvgl/lvgl/commit/73e036bba748e8677f219f573cba5f82c4158a17)
+- fix(msgbox) prevent the buttons being wider than the msgbox [`73e036b`](https://github.com/lvgl/lvgl/commit/73e036bba748e8677f219f573cba5f82c4158a17)
 - fix(chart) don't draw series lines with &lt; 1 points [`655f42b`](https://github.com/lvgl/lvgl/commit/655f42b852669f27ab8bfde84bf70cf0b7ea027d)
 - fix(tests) remove src/test_runners when cleaning [`6726b0f`](https://github.com/lvgl/lvgl/commit/6726b0f5df3f4689368782b601bb01f76498123b)
 - fix(label) remove duplicated lv_obj_refresh_self_size [`a070ecf`](https://github.com/lvgl/lvgl/commit/a070ecfe8c1cf7c07c035ba6c35c3ffaef56d6e1)
@@ -730,7 +1199,7 @@ Some of the most important features are
 - docs update changelog [`c386110`](https://github.com/lvgl/lvgl/commit/c386110e2390399ab97936622e59c510ba414e19)
 - docs(extra) add extra/README.md [`8cd504d`](https://github.com/lvgl/lvgl/commit/8cd504d58bb679fe1f260e3eee59fcb0b85cb589)
 - docs add lazy load to the iframes of the examples [`c49e830`](https://github.com/lvgl/lvgl/commit/c49e830aad2c847611f3398767e85c193909559a)
-- docs(os) add example and clarify some poinits [`d996453`](https://github.com/lvgl/lvgl/commit/d996453207caa50a90a66d05565431fa288be96b)
+- docs(os) add example and clarify some points [`d996453`](https://github.com/lvgl/lvgl/commit/d996453207caa50a90a66d05565431fa288be96b)
 - docs(rlottie) fix build error [`ce0b564`](https://github.com/lvgl/lvgl/commit/ce0b56458846daa65288f901e9b8ef1083eab468)
 - docs include paths in libs [`f5f9562`](https://github.com/lvgl/lvgl/commit/f5f956233657f95b45a45d872e5d6e68c05eecd4)
 - docs libs fixes [`8e7bba6`](https://github.com/lvgl/lvgl/commit/8e7bba6acec66a4f6b80496de9fd21a8e3c4c6ee)
@@ -775,7 +1244,7 @@ Some of the most important features are
 - test convert Makefile to CMake [`2495`](https://github.com/lvgl/lvgl/pull/2495)
 - test Refactor unit test scripts. [`2473`](https://github.com/lvgl/lvgl/pull/2473)
 
-- test(font_loader) migrate the exisiting font loader test [`bc5b3be`](https://github.com/lvgl/lvgl/commit/bc5b3be61f7751852dc99509a6ab83faaf6d1235)
+- test(font_loader) migrate the existing font loader test [`bc5b3be`](https://github.com/lvgl/lvgl/commit/bc5b3be61f7751852dc99509a6ab83faaf6d1235)
 - test add build test again, add dropdown test, integrate gcov and gvocr [`e35b1d0`](https://github.com/lvgl/lvgl/commit/e35b1d04bdc7d531d72ebce7d1f031be2631e776)
 - test(dropdown) add tess for keypad and encoder [`4143b80`](https://github.com/lvgl/lvgl/commit/4143b804c8f4b4324141ad0f529bac4e9acf1442)
 - test add keypad and encoder emulators [`e536bb6`](https://github.com/lvgl/lvgl/commit/e536bb6325728db21ef5c729a99f2161a8125625)
@@ -786,7 +1255,7 @@ Some of the most important features are
 - ci add config for 8bpp [`3eacc59`](https://github.com/lvgl/lvgl/commit/3eacc5923c0a554e7ff4489776a8982dfc142115)
 - test move more source files to src folder [`3672f87`](https://github.com/lvgl/lvgl/commit/3672f873328b4471ac9d5d23696f7bc99a87bc43)
 - test update CI for the new tests [`a3898b9`](https://github.com/lvgl/lvgl/commit/a3898b931e81860acf197bc88fd3dd6f8885eb2c)
-- test cleant up report folder [`b9b4ba5`](https://github.com/lvgl/lvgl/commit/b9b4ba5b2608f5709678463f62b3d3f937780235)
+- test cleaned up report folder [`b9b4ba5`](https://github.com/lvgl/lvgl/commit/b9b4ba5b2608f5709678463f62b3d3f937780235)
 - test fix build error [`61cda59`](https://github.com/lvgl/lvgl/commit/61cda59cbe8569326ef9d366c520b89be292f5ea)
 - test(font_loader) migrate the existing font loader test [`d6dbbaa`](https://github.com/lvgl/lvgl/commit/d6dbbaaa34304b4c889415439ab562056e0840a5)
 - test add move tests to test_cases and test_runners directories [`d2e735e`](https://github.com/lvgl/lvgl/commit/d2e735ef36bd99c16ccaa281dcaa5f418e2dec98)
@@ -843,7 +1312,7 @@ Some of the most important features are
 - Update ROADMAP.md [`2b1ae3c`](https://github.com/lvgl/lvgl/commit/2b1ae3c107539dec130b988cddca5ddb2b5af652)
 - Create .codecov.yml [`e53aa82`](https://github.com/lvgl/lvgl/commit/e53aa82658a1d7324f328c986cb5b7b669803ba2)
 - refactor(examples) drop JS-specific code from header.py [`ef41450`](https://github.com/lvgl/lvgl/commit/ef41450ed87f4f4dd936b63349b5a0c9ce880618)
-- make test run on mseter and release/v8.* [`227402a`](https://github.com/lvgl/lvgl/commit/227402a81a1cdd34cd57ec04682166d3961c4481)
+- make test run on master and release/v8.* [`227402a`](https://github.com/lvgl/lvgl/commit/227402a81a1cdd34cd57ec04682166d3961c4481)
 - Update release.yml [`0838f12`](https://github.com/lvgl/lvgl/commit/0838f1296b2c55c0b265650ee4310a79730536dd)
 - refactor(examples) drop usys import from header.py [`ad1f91a`](https://github.com/lvgl/lvgl/commit/ad1f91ab32c38cab7f0d1448ce3c4e67b47f4526)
 - Update ROADMAP.md [`a38fcf2`](https://github.com/lvgl/lvgl/commit/a38fcf2c7aa5fd156d3f2b6965ec4f81d7ff5503)
@@ -884,104 +1353,104 @@ Some of the most important features are
 - fix(imgbtn) use the correct src in LV_EVENT_GET_SELF_SIZE
 - fix(color) remove extraneous cast for 8-bit color
 - fix(obj style) fix children reposition if the parent's padding changes.
-- fix(color) remove extraneous _LV_COLOR_MAKE_TYPE_HELPER (#2372) 
-- fix(spinner) should not be clickable (#2373) 
-- fix(obj) improve how the focusing indev is determined  
-- fix(template) update indev template for v8 
-- fix(printf) skip defining attribute if pycparser is used  
-- refactor(printf) add printf-like function attribute to _lv_txt_set_text_vfmt and lv_label_set_text_fmt (#2332) 
-- fix(template) include lvgl.h in lv_port_*_template.c files 
-- fix(obj) detecting which indev sent LV_EVENT_FOCUS  
-- fix (span) fill LV_EVENT_GET_SELF_SIZE (#2360) 
-- fix(arc) disable LV_OBJ_FLAG_SCROLL_CHAIN by default 
-- fix (draw) fix arc bg image drawing with full arcs 
-- fix(disp) fix memory leak in lv_disp_remove (#2355) 
-- fix warnings introduced by 3fb8baf5 
-- fix(widgets) use lv_obj_class for all the widgets  
+- fix(color) remove extraneous _LV_COLOR_MAKE_TYPE_HELPER (#2372)
+- fix(spinner) should not be clickable (#2373)
+- fix(obj) improve how the focusing indev is determined
+- fix(template) update indev template for v8
+- fix(printf) skip defining attribute if pycparser is used
+- refactor(printf) add printf-like function attribute to _lv_txt_set_text_vfmt and lv_label_set_text_fmt (#2332)
+- fix(template) include lvgl.h in lv_port_*_template.c files
+- fix(obj) detecting which indev sent LV_EVENT_FOCUS
+- fix (span) fill LV_EVENT_GET_SELF_SIZE (#2360)
+- fix(arc) disable LV_OBJ_FLAG_SCROLL_CHAIN by default
+- fix (draw) fix arc bg image drawing with full arcs
+- fix(disp) fix memory leak in lv_disp_remove (#2355)
+- fix warnings introduced by 3fb8baf5
+- fix(widgets) use lv_obj_class for all the widgets
 - fix(obj) move clean ups from lv_obj_del to lv_obj_destructor
-- fix(roller) fix partial redraw of the selected area 
-- fix(roller) adjust the size of the selected area correctly  
-- fix(obj) delete useless type conversion (#2343)  
+- fix(roller) fix partial redraw of the selected area
+- fix(roller) adjust the size of the selected area correctly
+- fix(obj) delete useless type conversion (#2343)
 - fix(lv_obj_scroll.h) typos (#2345)
 - fix(scroll) fire LV_EVENT_SCROLL_BEGIN in the same spot for both axes
-- fix(btnmatrix) fix button invalidation on focus change 
-- fix(textarea) style update in oneline mode + improve scroll to cursor  
-- fix(tlsf) do not use <assert.h>  
-- fix(imgbtn) consider width==LV_SIZE_CONTENT if only mid. img is set 
-- fix(refr) reduce the nesting level in lv_refr_area 
-- fix(txt) enhance the function of break_chars (#2327) 
-- fix(pxp): update RTOS macro for SDK 2.10  
-- fix(vglite): update for v8  
-- fix(pxp): update for v8  
-- fix(flex) fix layout update and invalidation issues 
-- fix(flex) fix NULL pointer dereference 
-- fix(obj, switch) do not send LV_EVENT_VALUE_CHANGED twice  
-- fix(color) overflow with 16-bit color depth  
-- fix(coords) fix using large coordinates  
-- fix(chart) fix crash if no series are added 
-- fix(chart) invalidation with LV_CHART_UPDATE_MODE_SHIFT 
+- fix(btnmatrix) fix button invalidation on focus change
+- fix(textarea) style update in oneline mode + improve scroll to cursor
+- fix(tlsf) do not use <assert.h>
+- fix(imgbtn) consider width==LV_SIZE_CONTENT if only mid. img is set
+- fix(refr) reduce the nesting level in lv_refr_area
+- fix(txt) enhance the function of break_chars (#2327)
+- fix(pxp): update RTOS macro for SDK 2.10
+- fix(vglite): update for v8
+- fix(pxp): update for v8
+- fix(flex) fix layout update and invalidation issues
+- fix(flex) fix NULL pointer dereference
+- fix(obj, switch) do not send LV_EVENT_VALUE_CHANGED twice
+- fix(color) overflow with 16-bit color depth
+- fix(coords) fix using large coordinates
+- fix(chart) fix crash if no series are added
+- fix(chart) invalidation with LV_CHART_UPDATE_MODE_SHIFT
 - fix(align) fix lv_obj_align_to  G
-- fix(table) invalidate the table on cell value change  
-- fix(label) remove duplicated lv_obj_refresh_self_size 
-- fix(draw) underflow in subpixel font drawing 
-- fix (scroll) do not send unnecessary scroll end events  
+- fix(table) invalidate the table on cell value change
+- fix(label) remove duplicated lv_obj_refresh_self_size
+- fix(draw) underflow in subpixel font drawing
+- fix (scroll) do not send unnecessary scroll end events
 
 
 ## v8.0.1 (14.06.2021)
-- docs(filesystem) update to v8 <a href="https://github.com/lvgl/lvgl/commit/7971ade4">7971ade4</a> 
-- fix(msgbox) create modals on top layer instead of act screen <a href="https://github.com/lvgl/lvgl/commit/5cf6303e">5cf6303e</a> 
-- fix(colorwheel) disable LV_OBJ_FLAG_SCROLL_CHAIN by default <a href="https://github.com/lvgl/lvgl/commit/48d1c292">48d1c292</a> 
-- docs(grid) typo fix (#2310) <a href="https://github.com/lvgl/lvgl/commit/69d109d2">69d109d2</a> 
-- fix(arduino) fix the prototype of my_touchpad_read in the LVGL_Arduino.ino <a href="https://github.com/lvgl/lvgl/commit/1a62f7a6">1a62f7a6</a> 
-- fix(meter) fix needle image invalidation <a href="https://github.com/lvgl/lvgl/commit/54d8e817">54d8e817</a> 
-- fix(mem) add lv_ prefix to tlsf functions and types <a href="https://github.com/lvgl/lvgl/commit/0d52b59c">0d52b59c</a> 
-- fix(calendar) fix the position calculation today <a href="https://github.com/lvgl/lvgl/commit/ad05e196">ad05e196</a> 
-- fix(typo) rename LV_OBJ_FLAG_SNAPABLE to LV_OBJ_FLAG_SNAPPABLE <a href="https://github.com/lvgl/lvgl/commit/e697807c">e697807c</a> 
-- docs(color) language fixes (#2302) <a href="https://github.com/lvgl/lvgl/commit/07ecc9f1">07ecc9f1</a> 
-- fix(tick) minor optimization on lv_tick_inc call test <a href="https://github.com/lvgl/lvgl/commit/b4305df5">b4305df5</a> 
-- Spelling and other language fixes to documentation (#2293) <a href="https://github.com/lvgl/lvgl/commit/d0aaacaf">d0aaacaf</a> 
-- fix(theme) show disabled state on buttons of btnmatrix, msgbox and keyboard <a href="https://github.com/lvgl/lvgl/commit/0be582b3">0be582b3</a> 
-- fix(scroll) keep the scroll position on object deleted <a href="https://github.com/lvgl/lvgl/commit/52edbb46">52edbb46</a> 
-- fix(msgbox) handle NULL btn map parameter <a href="https://github.com/lvgl/lvgl/commit/769c4a30">769c4a30</a> 
-- fix(group) allow refocusing objects <a href="https://github.com/lvgl/lvgl/commit/1520208b">1520208b</a> 
-- docs(overview) spelling fixes <a href="https://github.com/lvgl/lvgl/commit/d2efb8c6">d2efb8c6</a> 
-- Merge branch 'master' of https://github.com/lvgl/lvgl <a href="https://github.com/lvgl/lvgl/commit/45960838">45960838</a> 
-- feat(timer) check if lv_tick_inc is called <a href="https://github.com/lvgl/lvgl/commit/aa6641a6">aa6641a6</a> 
-- feat(docs) add view on GitHub link <a href="https://github.com/lvgl/lvgl/commit/a716ac6e">a716ac6e</a> 
-- fix(theme) fix the switch style in the default theme <a href="https://github.com/lvgl/lvgl/commit/0c0dc8ea">0c0dc8ea</a> 
-- docs fix typo <a href="https://github.com/lvgl/lvgl/commit/8ab80645">8ab80645</a> 
-- Merge branch 'master' of https://github.com/lvgl/lvgl <a href="https://github.com/lvgl/lvgl/commit/e796448f">e796448f</a> 
-- feat(event) pass the scroll animation to LV_EVENT_SCROLL_BEGIN <a href="https://github.com/lvgl/lvgl/commit/ca54ecfe">ca54ecfe</a> 
-- fix(tabview) fix with left and right tabs <a href="https://github.com/lvgl/lvgl/commit/17c57449">17c57449</a> 
-- chore(docs) force docs rebuild <a href="https://github.com/lvgl/lvgl/commit/4a0f4139">4a0f4139</a> 
-- chore(docs) always deploy master to docs/master as well <a href="https://github.com/lvgl/lvgl/commit/6d05692d">6d05692d</a> 
-- fix(template) update lv_objx_template to v8 <a href="https://github.com/lvgl/lvgl/commit/38bb8afc">38bb8afc</a> 
-- docs(extra) add extra/README.md <a href="https://github.com/lvgl/lvgl/commit/8cd504d5">8cd504d5</a> 
-- Update CHANGELOG.md <a href="https://github.com/lvgl/lvgl/commit/48fd73d2">48fd73d2</a> 
-- Update quick-overview.md (#2295) <a href="https://github.com/lvgl/lvgl/commit/5616471c">5616471c</a> 
-- fix(pxp) change LV_COLOR_TRANSP to LV_COLOR_CHROMA_KEY to v8 compatibility <a href="https://github.com/lvgl/lvgl/commit/81f3068d">81f3068d</a> 
-- adding micropython examples (#2286) <a href="https://github.com/lvgl/lvgl/commit/c60ed68e">c60ed68e</a> 
-- docs(color) minor fix <a href="https://github.com/lvgl/lvgl/commit/ac8f4534">ac8f4534</a> 
-- fix(example) revert test code <a href="https://github.com/lvgl/lvgl/commit/77e2c1ff">77e2c1ff</a> 
-- fix(draw) with additive blending with 32-bit color depth <a href="https://github.com/lvgl/lvgl/commit/786db2af">786db2af</a> 
-- docs(color) update colors' docs <a href="https://github.com/lvgl/lvgl/commit/9056b5ee">9056b5ee</a> 
-- Merge branch 'master' of https://github.com/lvgl/lvgl <a href="https://github.com/lvgl/lvgl/commit/a711a1dd">a711a1dd</a> 
-- perf(refresh) optimize where to wait for lv_disp_flush_ready with 2 buffers <a href="https://github.com/lvgl/lvgl/commit/d0172f14">d0172f14</a> 
-- docs(lv_obj_style) update add_style and remove_style function headers (#2287) <a href="https://github.com/lvgl/lvgl/commit/60f7bcbf">60f7bcbf</a> 
-- fix memory leak of spangroup (#2285) <a href="https://github.com/lvgl/lvgl/commit/33e0926a">33e0926a</a> 
-- fix make lv_img_cache.h public because cache invalidation is public <a href="https://github.com/lvgl/lvgl/commit/38ebcd81">38ebcd81</a> 
-- Merge branch 'master' of https://github.com/lvgl/lvgl <a href="https://github.com/lvgl/lvgl/commit/2b292495">2b292495</a> 
-- fix(btnmatrix) fix focus event handling <a href="https://github.com/lvgl/lvgl/commit/3b58ef14">3b58ef14</a> 
-- Merge pull request #2280 from lvgl/dependabot/pip/docs/urllib3-1.26.5 <a href="https://github.com/lvgl/lvgl/commit/a2f45b26">a2f45b26</a> 
-- fix(label) calculating the clip area <a href="https://github.com/lvgl/lvgl/commit/57e211cc">57e211cc</a> 
-- chore(deps): bump urllib3 from 1.26.4 to 1.26.5 in /docs <a href="https://github.com/lvgl/lvgl/commit/b2f77dfc">b2f77dfc</a> 
-- fix(docs) add docs about the default group <a href="https://github.com/lvgl/lvgl/commit/29bfe604">29bfe604</a> 
+- docs(filesystem) update to v8 <a href="https://github.com/lvgl/lvgl/commit/7971ade4">7971ade4</a>
+- fix(msgbox) create modals on top layer instead of act screen <a href="https://github.com/lvgl/lvgl/commit/5cf6303e">5cf6303e</a>
+- fix(colorwheel) disable LV_OBJ_FLAG_SCROLL_CHAIN by default <a href="https://github.com/lvgl/lvgl/commit/48d1c292">48d1c292</a>
+- docs(grid) typo fix (#2310) <a href="https://github.com/lvgl/lvgl/commit/69d109d2">69d109d2</a>
+- fix(arduino) fix the prototype of my_touchpad_read in the LVGL_Arduino.ino <a href="https://github.com/lvgl/lvgl/commit/1a62f7a6">1a62f7a6</a>
+- fix(meter) fix needle image invalidation <a href="https://github.com/lvgl/lvgl/commit/54d8e817">54d8e817</a>
+- fix(mem) add lv_ prefix to tlsf functions and types <a href="https://github.com/lvgl/lvgl/commit/0d52b59c">0d52b59c</a>
+- fix(calendar) fix the position calculation today <a href="https://github.com/lvgl/lvgl/commit/ad05e196">ad05e196</a>
+- fix(typo) rename LV_OBJ_FLAG_SNAPABLE to LV_OBJ_FLAG_SNAPPABLE <a href="https://github.com/lvgl/lvgl/commit/e697807c">e697807c</a>
+- docs(color) language fixes (#2302) <a href="https://github.com/lvgl/lvgl/commit/07ecc9f1">07ecc9f1</a>
+- fix(tick) minor optimization on lv_tick_inc call test <a href="https://github.com/lvgl/lvgl/commit/b4305df5">b4305df5</a>
+- Spelling and other language fixes to documentation (#2293) <a href="https://github.com/lvgl/lvgl/commit/d0aaacaf">d0aaacaf</a>
+- fix(theme) show disabled state on buttons of btnmatrix, msgbox and keyboard <a href="https://github.com/lvgl/lvgl/commit/0be582b3">0be582b3</a>
+- fix(scroll) keep the scroll position on object deleted <a href="https://github.com/lvgl/lvgl/commit/52edbb46">52edbb46</a>
+- fix(msgbox) handle NULL btn map parameter <a href="https://github.com/lvgl/lvgl/commit/769c4a30">769c4a30</a>
+- fix(group) allow refocusing objects <a href="https://github.com/lvgl/lvgl/commit/1520208b">1520208b</a>
+- docs(overview) spelling fixes <a href="https://github.com/lvgl/lvgl/commit/d2efb8c6">d2efb8c6</a>
+- Merge branch 'master' of https://github.com/lvgl/lvgl <a href="https://github.com/lvgl/lvgl/commit/45960838">45960838</a>
+- feat(timer) check if lv_tick_inc is called <a href="https://github.com/lvgl/lvgl/commit/aa6641a6">aa6641a6</a>
+- feat(docs) add view on GitHub link <a href="https://github.com/lvgl/lvgl/commit/a716ac6e">a716ac6e</a>
+- fix(theme) fix the switch style in the default theme <a href="https://github.com/lvgl/lvgl/commit/0c0dc8ea">0c0dc8ea</a>
+- docs fix typo <a href="https://github.com/lvgl/lvgl/commit/8ab80645">8ab80645</a>
+- Merge branch 'master' of https://github.com/lvgl/lvgl <a href="https://github.com/lvgl/lvgl/commit/e796448f">e796448f</a>
+- feat(event) pass the scroll animation to LV_EVENT_SCROLL_BEGIN <a href="https://github.com/lvgl/lvgl/commit/ca54ecfe">ca54ecfe</a>
+- fix(tabview) fix with left and right tabs <a href="https://github.com/lvgl/lvgl/commit/17c57449">17c57449</a>
+- chore(docs) force docs rebuild <a href="https://github.com/lvgl/lvgl/commit/4a0f4139">4a0f4139</a>
+- chore(docs) always deploy master to docs/master as well <a href="https://github.com/lvgl/lvgl/commit/6d05692d">6d05692d</a>
+- fix(template) update lv_objx_template to v8 <a href="https://github.com/lvgl/lvgl/commit/38bb8afc">38bb8afc</a>
+- docs(extra) add extra/README.md <a href="https://github.com/lvgl/lvgl/commit/8cd504d5">8cd504d5</a>
+- Update CHANGELOG.md <a href="https://github.com/lvgl/lvgl/commit/48fd73d2">48fd73d2</a>
+- Update quick-overview.md (#2295) <a href="https://github.com/lvgl/lvgl/commit/5616471c">5616471c</a>
+- fix(pxp) change LV_COLOR_TRANSP to LV_COLOR_CHROMA_KEY to v8 compatibility <a href="https://github.com/lvgl/lvgl/commit/81f3068d">81f3068d</a>
+- adding micropython examples (#2286) <a href="https://github.com/lvgl/lvgl/commit/c60ed68e">c60ed68e</a>
+- docs(color) minor fix <a href="https://github.com/lvgl/lvgl/commit/ac8f4534">ac8f4534</a>
+- fix(example) revert test code <a href="https://github.com/lvgl/lvgl/commit/77e2c1ff">77e2c1ff</a>
+- fix(draw) with additive blending with 32-bit color depth <a href="https://github.com/lvgl/lvgl/commit/786db2af">786db2af</a>
+- docs(color) update colors' docs <a href="https://github.com/lvgl/lvgl/commit/9056b5ee">9056b5ee</a>
+- Merge branch 'master' of https://github.com/lvgl/lvgl <a href="https://github.com/lvgl/lvgl/commit/a711a1dd">a711a1dd</a>
+- perf(refresh) optimize where to wait for lv_disp_flush_ready with 2 buffers <a href="https://github.com/lvgl/lvgl/commit/d0172f14">d0172f14</a>
+- docs(lv_obj_style) update add_style and remove_style function headers (#2287) <a href="https://github.com/lvgl/lvgl/commit/60f7bcbf">60f7bcbf</a>
+- fix memory leak of spangroup (#2285) <a href="https://github.com/lvgl/lvgl/commit/33e0926a">33e0926a</a>
+- fix make lv_img_cache.h public because cache invalidation is public <a href="https://github.com/lvgl/lvgl/commit/38ebcd81">38ebcd81</a>
+- Merge branch 'master' of https://github.com/lvgl/lvgl <a href="https://github.com/lvgl/lvgl/commit/2b292495">2b292495</a>
+- fix(btnmatrix) fix focus event handling <a href="https://github.com/lvgl/lvgl/commit/3b58ef14">3b58ef14</a>
+- Merge pull request #2280 from lvgl/dependabot/pip/docs/urllib3-1.26.5 <a href="https://github.com/lvgl/lvgl/commit/a2f45b26">a2f45b26</a>
+- fix(label) calculating the clip area <a href="https://github.com/lvgl/lvgl/commit/57e211cc">57e211cc</a>
+- chore(deps): bump urllib3 from 1.26.4 to 1.26.5 in /docs <a href="https://github.com/lvgl/lvgl/commit/b2f77dfc">b2f77dfc</a>
+- fix(docs) add docs about the default group <a href="https://github.com/lvgl/lvgl/commit/29bfe604">29bfe604</a>
 
 ## v8.0.0 (01.06.2021)
 
 v8.0 brings many new features like simplified and more powerful scrolling, new layouts inspired by CSS Flexbox and Grid, simplified and improved widgets, more powerful events, hookable drawing, and more.
 
-v8 is a major change and therefore it's not backward compatible with v7. 
+v8 is a major change and therefore it's not backward compatible with v7.
 
 ### Directory structure
 - The `lv_` prefix is removed from the folder names
@@ -1025,7 +1494,7 @@ v8 is a major change and therefore it's not backward compatible with v7.
 - `lv_disp_drv_t`, `lv_indev_drv_t`, `lv_fs_drv_t` needs to be `static`
 - `...disp_buf...` is renamed to `draw_buf`. See an initialization example [here](https://github.com/lvgl/lv_sim_eclipse_sdl/blob/release/v8.0/main.c#L128-L141).
 - No partial update if two screen sized buffers are set
-- `disp_drv->full_refresh = 1` makes always the whole display redraw. 
+- `disp_drv->full_refresh = 1` makes always the whole display redraw.
 - `hor_res` and `ver_res` need to be set in `disp_drv`
 - `indev_read_cb` returns `void`. To indicate that there is more that to read set `data->continue_reading = 1` in the `read_cb`
 
@@ -1054,7 +1523,7 @@ v8 is a major change and therefore it's not backward compatible with v7.
   - Use the new layouts instead of `lv_cont` features
   - Use `lv_obj` instead of `lv_page`
   - See the changes in [Colors](https://docs.lvgl.io/8.0/overview/color.html)
-  - The other parts are mainly minor renames and refactoring. See the functions' documentation for descriptions. 
+  - The other parts are mainly minor renames and refactoring. See the functions' documentation for descriptions.
 
 ## v7.11.0 (16.03.2021)
 
@@ -1068,7 +1537,7 @@ v8 is a major change and therefore it's not backward compatible with v7.
 
 ## v7.10.1 (16.02.2021)
 
-### Bugfixes 
+### Bugfixes
 - fix(draw) overlap outline with background to prevent aliasing artifacts
 - fix(indev) clear the indev's `act_obj` in `lv_indev_reset`
 - fix(text) fix out of bounds read in `_lv_txt_get_width`
@@ -1126,7 +1595,7 @@ v8 is a major change and therefore it's not backward compatible with v7.
 ## v7.8.0 (01.12.2020)
 
 ### New features
-- make DMA2D non blocking 
+- make DMA2D non blocking
 - add unscii-16 built-in font
 - add KConfig
 - add lv_refr_get_fps_avg()
@@ -1143,7 +1612,7 @@ v8 is a major change and therefore it's not backward compatible with v7.
 - fix(slider) adjusting the left knob too with encoder
 - fix reference to LV_DRAW_BUF_MAX_NUM in lv_mem.c
 - fix(polygon draw) join adjacent points if they are on the same coordinate
-- fix(linemeter) fix invalidation when setting new value 
+- fix(linemeter) fix invalidation when setting new value
 - fix(table) add missing invalidation when changing cell type
 - refactor(roller) rename LV_ROLLER_MODE_INIFINITE -> LV_ROLLER_MODE_INFINITE
 
@@ -1155,7 +1624,7 @@ v8 is a major change and therefore it's not backward compatible with v7.
 - label: Repair calculate back `dot` character logical error which cause infinite loop.
 - fix(theme_material): remove the bottom border from tabview header
 - fix(imgbtn) guess the closest available state with valid src
-- fix(spinbox) update cursor position in lv_spinbox_set_step 
+- fix(spinbox) update cursor position in lv_spinbox_set_step
 
 ## v7.7.1 (03.11.2020)
 ### Bugfixes
@@ -1200,7 +1669,7 @@ v8 is a major change and therefore it's not backward compatible with v7.
 - Check whether any style property has changed on a state change to decide if any redraw is required
 
 ### Bugfixes
-- Fix selection of options with non-ASCII letters in dropdown list 
+- Fix selection of options with non-ASCII letters in dropdown list
 - Fix font loader to support LV_FONT_FMT_TXT_LARGE
 
 ## v7.5.0 (15.09.2020)
@@ -1247,7 +1716,7 @@ The main new features of v7.4 are run-time font loading, style caching and arc k
 - Rename  `lv_chart_clear_serie` to `lv_chart_clear_series` and `lv_obj_align_origo` to `lv_obj_align_mid`
 - Add linemeter's mirror feature again
 - Fix text decor (underline strikethrough) with older versions of font converter
-- Fix setting local style property multiple times 
+- Fix setting local style property multiple times
 - Add missing background drawing and radius handling to image button
 - Allow adding extra label to list buttons
 - Fix crash if `lv_table_set_col_cnt` is called before `lv_table_set_row_cnt` for the first time
@@ -1299,7 +1768,7 @@ The main new features of v7.4 are run-time font loading, style caching and arc k
 
 ### Bugfixes
 - `tileview` fix navigation when not screen sized
-- Use 14px font by default to for better compatibility with smaller displays 
+- Use 14px font by default to for better compatibility with smaller displays
 - `linemeter` fix conversation of current value to "level"
 - Fix drawing on right border
 - Set the cursor image non-clickable by default
@@ -1356,7 +1825,7 @@ The main new features of v7.4 are run-time font loading, style caching and arc k
 
 ### Bugfixes
 - Make Micropython working by adding the required variables as GC_ROOT
-- Prefix some internal API functions with `_` to reduce the API of LVGL 
+- Prefix some internal API functions with `_` to reduce the API of LVGL
 - Fix built-in SimSun CJK font
 - Fix UTF-8 encoding when `LV_USE_ARABIC_PERSIAN_CHARS` is enabled
 - Fix DMA2D usage when 32 bit images directly blended
@@ -1381,12 +1850,12 @@ The name of the project is changed to LVGL and the new website is on https://lvg
 LVGL remains free under the same conditions (MIT license) and a company is created to manage LVGL and offer services.
 
 ### New drawing system
-Complete rework of LVGL's draw engine to use "masks" for more advanced and higher quality graphical effects. 
+Complete rework of LVGL's draw engine to use "masks" for more advanced and higher quality graphical effects.
 A possible use-case of this system is to remove the overflowing content from the rounded edges.
 It also allows drawing perfectly anti-aliased circles, lines, and arcs.
-Internally, the drawings happen by defining masks (such as rounded rectangle, line, angle). 
-When something is drawn the currently active masks can make some pixels transparent. 
-For example, rectangle borders are drawn by using 2 rectangle masks: one mask removes the inner part and another the outer part. 
+Internally, the drawings happen by defining masks (such as rounded rectangle, line, angle).
+When something is drawn the currently active masks can make some pixels transparent.
+For example, rectangle borders are drawn by using 2 rectangle masks: one mask removes the inner part and another the outer part.
 
 The API in this regard remained the same but some new functions were added:
 - `lv_img_set_zoom`: set image object's zoom factor
@@ -1396,12 +1865,12 @@ The API in this regard remained the same but some new functions were added:
 The new drawing engine brought new drawing features too. They are highlighted in the "style" section.
 
 ### New style system
-The old style system is replaced with a new more flexible and lightweighted one. 
-It uses an approach similar to CSS: support cascading styles, inheriting properties and local style properties per object. 
-As part of these updates, a lot of objects were reworked and the APIs have been changed. 
+The old style system is replaced with a new more flexible and lightweighted one.
+It uses an approach similar to CSS: support cascading styles, inheriting properties and local style properties per object.
+As part of these updates, a lot of objects were reworked and the APIs have been changed.
 
 - more shadows options: *offset* and *spread*
-- gradient stop position to shift the gradient area and horizontal gradient 
+- gradient stop position to shift the gradient area and horizontal gradient
 - `LV_BLEND_MODE_NORMAL/ADDITIVE/SUBTRACTIVE` blending modes
 - *clip corner*: crop the content on the rounded corners
 - *text underline* and *strikethrough*
@@ -1445,16 +1914,16 @@ The following object types are renamed:
 - `linemeter`, `gauge`: can have background if the related style properties are set. Padding makes the scale/lines smaller. scale_border_width and scale_end_border_width allow to draw an arc on the outer part of the scale lines.
 - `gauge`: `lv_gauge_set_needle_img` allows use image as needle
 - `canvas`: allow drawing to true color alpha and alpha only canvas, add `lv_canvas_blur_hor/ver` and rename `lv_canvas_rotate` to `lv_canvas_transform`
-- `textarea`: If available in the font use bullet (`U+2022`) character in text area password 
+- `textarea`: If available in the font use bullet (`U+2022`) character in text area password
 
 ### New object types
-- `lv_objmask`: masks can be added to it. The children will be masked accordingly. 
+- `lv_objmask`: masks can be added to it. The children will be masked accordingly.
 
 ### Others
 - Change the built-in fonts to [Montserrat](https://fonts.google.com/specimen/Montserrat) and add built-in fonts from 12 px to 48 px for every 2nd size.
 - Add example CJK and Arabic/Persian/Hebrew built-in font
 - Add ° and "bullet" to the built-in fonts
-- Add Arabic/Persian script support: change the character according to its position in the text. 
+- Add Arabic/Persian script support: change the character according to its position in the text.
 - Add `playback_time` to animations.
 - Add `repeat_count` to animations instead of the current "repeat forever".
 - Replace `LV_LAYOUT_PRETTY` with `LV_LAYOUT_PRETTY_TOP/MID/BOTTOM`
@@ -1471,4 +1940,4 @@ The following object types are renamed:
 - First and foremost, create a new `lv_conf.h` based on `lv_conf_template.h`.
 - To try the new version it suggested using a simulator project and see the examples.
 - If you have a running project, the most difficult part of the migration is updating to the new style system. Unfortunately, there is no better way than manually updating to the new format.
-- The other parts are mainly minor renames and refactoring as described above. 
+- The other parts are mainly minor renames and refactoring as described above.
index f1a6c8b..d45f0fc 100644 (file)
@@ -87,3 +87,38 @@ void lv_label_set_text(lv_obj_t * label, const char * text)
 Use 4 spaces indentation instead of tab.
 
 You can use **astyle** to format the code. Run `code-formatter.sh` from the `scrips` folder.
+
+#### pre-commit
+
+[pre-commit](https://pre-commit.com/) is a multi-language package manager for pre-commit hooks.
+See the [instalation guide](https://pre-commit.com/#installation) to get pre-commit python package
+installed into your development machine.
+
+Once you have `pre-commit` installed you will need to [set up the git hook scripts](https://pre-commit.com/#3-install-the-git-hook-scripts) with:
+```console
+pre-commit install
+```
+
+now `pre-commit` will run automatically on `git commit`!
+
+##### Hooks
+
+The `format-source` local hook (see `.pre-commit-config.yaml`) runs **astyle** on all the staged source and header
+files (that are not excluded, see `exclude` key of the hook configuration) before entering the commit message,
+if any file gets formatted by **astyle** you will need to add the change to the staging area and run `git commit` again.
+
+The `trailing-whitespace` hook fixes trailing whitespaces on all of the files.
+
+##### Skipping hooks
+
+If you want to skip any particular hook you can do so with:
+```console
+SKIP=name-of-the-hook git commit
+```
+
+##### Testing hooks
+
+It's no necessary to do a commit to test the hooks, you can test hooks by adding the files into the staging area and run:
+```console
+pre-commit run name-of-the-hook
+```
\ No newline at end of file
index 0d57789..67590e1 100644 (file)
@@ -1,7 +1,3 @@
-```eval_rst
-.. include:: /header.rst 
-:github_url: |github_link_base|/CONTRIBUTING.md
-```
 
 # Contributing
 
@@ -9,22 +5,22 @@
 
 Join LVGL's community and leave your footprint in the library!
 
-There are a lot of ways to contribute to LVGL even if you are new to the library or even new to programming. 
+There are a lot of ways to contribute to LVGL even if you are new to the library or even new to programming.
 
-It might be scary to make the first step but you have nothing to be afraid of. 
+It might be scary to make the first step but you have nothing to be afraid of.
 A friendly and helpful community is waiting for you. Get to know like-minded people and make something great together.
 
 So let's find which contribution option fits you the best and help you join the development of LVGL!
 
 Before getting started here are some guidelines to make contribution smoother:
-- Be kind and friendly. 
+- Be kind and friendly.
 - Be sure to read the relevant part of the documentation before posting a question.
 - Ask questions in the [Forum](https://forum.lvgl.io/) and use [GitHub](https://github.com/lvgl/) for development-related discussions.
 - Always fill out the post or issue templates in the Forum or GitHub (or at least provide equivalent information). It makes understanding your contribution or issue easier and you will get a useful response faster.
 - If possible send an absolute minimal but buildable code example in order to reproduce the issue. Be sure it contains all the required variable declarations, constants, and assets (images, fonts).
 - Use [Markdown](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet) to format your posts. You can learn it in 10 minutes.
 - Speak about one thing in one issue or topic. It makes your post easier to find later for someone with the same question.
-- Give feedback and close the issue or mark the topic as solved if your question is answered. 
+- Give feedback and close the issue or mark the topic as solved if your question is answered.
 - For non-trivial fixes and features, it's better to open an issue first to discuss the details instead of sending a pull request directly.
 - Please read and follow the <a href="https://github.com/lvgl/lvgl/blob/master/docs/CODING_STYLE.md">Coding style</a> guide.
 
@@ -32,7 +28,7 @@ Before getting started here are some guidelines to make contribution smoother:
 
 Merging new code into the lvgl, documentation, blog, examples, and other repositories happen via *Pull requests* (PR for short).
 A PR is a notification like "Hey, I made some updates to your project. Here are the changes, you can add them if you want."
-To do this you need a copy (called fork) of the original project under your account, make some changes there, and notify the original repository about your updates. 
+To do this you need a copy (called fork) of the original project under your account, make some changes there, and notify the original repository about your updates.
 You can see what it looks like on GitHub for LVGL here: [https://github.com/lvgl/lvgl/pulls](https://github.com/lvgl/lvgl/pulls).
 
 To add your changes you can edit files online on GitHub and send a new Pull request from there (recommended for small changes) or
@@ -48,13 +44,13 @@ To add your changes you can edit files online on GitHub and send a new Pull requ
 ### From command line
 
 The instructions describe the main `lvgl` repository but it works the same way for the other repositories.
-1. Fork the [lvgl repository](https://github.com/lvgl/lvgl). To do this click the "Fork" button in the top right corner. 
+1. Fork the [lvgl repository](https://github.com/lvgl/lvgl). To do this click the "Fork" button in the top right corner.
 It will "copy" the `lvgl` repository to your GitHub account (`https://github.com/<YOUR_NAME>?tab=repositories`)
 2. Clone your forked repository.
-3. Add your changes. You can create a *feature branch* from *master* for the updates: `git checkout -b the-new-feature` 
+3. Add your changes. You can create a *feature branch* from *master* for the updates: `git checkout -b the-new-feature`
 4. Commit and push your changes to the forked `lvgl` repository.
 5. Create a PR on GitHub from the page of your `lvgl` repository (`https://github.com/<YOUR_NAME>/lvgl`) by clicking the *"New pull request"* button. Don't forget to select the branch where you added your changes.
-7. Set the base branch. It means where you want to merge your update. In the `lvgl` repo both the fixes and new features go to `master` branch. 
+7. Set the base branch. It means where you want to merge your update. In the `lvgl` repo both the fixes and new features go to `master` branch.
 8. Describe what is in the update. An example code is welcome if applicable.
 9. If you need to make more changes, just update your forked `lvgl` repo with new commits. They will automatically appear in the PR.
 
@@ -72,7 +68,7 @@ The following structure should be used:
 
 Possible `<type>`s:
 - `fix` bugfix in the source code.
-- `feat` new feature  
+- `feat` new feature
 - `arch` architectural changes
 - `perf` changes that affect the performance
 - `example` anything related to examples (even fixes and new examples)
@@ -91,8 +87,8 @@ For example `img`, `layout`, `txt`, `anim`. The scope can be omitted.
 
 `<body>` optional and can be used to describe the details of this change.
 
-`<footer>` shall contain 
-- the words "BREAKING CHANGE" if the changes break the API 
+`<footer>` shall contain
+- the words "BREAKING CHANGE" if the changes break the API
 - reference to the GitHub issue or Pull Request if applicable.
 
 Some examples:
@@ -137,7 +133,7 @@ To make the DCO easier to digest, here are some practical guides about specific
 
 #### Your own work
 
-The simplest case is when the contribution is solely your own work. 
+The simplest case is when the contribution is solely your own work.
 In this case you can just send a Pull Request without worrying about any licensing issues.
 
 #### Use code from online source
@@ -161,14 +157,14 @@ As LVGL is MIT licensed, other MIT licensed code can be integrated without issue
 The MIT license requires a copyright notice be added to the derived work. Any derivative work based on MIT licensed code must copy the original work's license file or text.
 
 #### Use GPL licensed code
-The GPL license is not compatible with the MIT license. Therefore, LVGL can not accept GPL licensed code. 
- 
+The GPL license is not compatible with the MIT license. Therefore, LVGL can not accept GPL licensed code.
+
 ## Ways to contribute
 
-Even if you're just getting started with LVGL there are plenty of ways to get your feet wet. 
-Most of these options don't even require knowing a single line of LVGL code. 
+Even if you're just getting started with LVGL there are plenty of ways to get your feet wet.
+Most of these options don't even require knowing a single line of LVGL code.
 
-Below we have collected some opportunities about the ways you can contribute to LVGL.  
+Below we have collected some opportunities about the ways you can contribute to LVGL.
 
 ### Give LVGL a Star
 
@@ -178,36 +174,36 @@ Show that you like LVGL by giving it star on GitHub!
 <!-- Place this tag where you want the button to render. -->
 <a class="github-button" href="https://github.com/lvgl/lvgl" data-icon="octicon-star" data-size="large" data-show-count="true" aria-label="Star lvgl/lvgl on GitHub">Star</a>
 
-This simple click makes LVGL more visible on GitHub and makes it more attractive to other people. 
-So with this, you already helped a lot! 
+This simple click makes LVGL more visible on GitHub and makes it more attractive to other people.
+So with this, you already helped a lot!
 
 ### Tell what you have achieved
 
-Have you already started using LVGL in a [Simulator](/get-started/pc-simulator), a development board, or on your custom hardware? 
-Was it easy or were there some obstacles? Are you happy with the result? 
+Have you already started using LVGL in a [Simulator](/get-started/platforms/pc-simulator), a development board, or on your custom hardware?
+Was it easy or were there some obstacles? Are you happy with the result?
 Showing your project to others is a win-win situation because it increases your and LVGL's reputation at the same time.
 
-You can post about your project on Twitter, Facebook, LinkedIn, create a YouTube video, and so on. 
-Only one thing: On social media don't forget to add a link to `https://lvgl.io` or `https://github.com/lvgl` and use the hashtag `#lvgl`. Thank you! :) 
+You can post about your project on Twitter, Facebook, LinkedIn, create a YouTube video, and so on.
+Only one thing: On social media don't forget to add a link to `https://lvgl.io` or `https://github.com/lvgl` and use the hashtag `#lvgl`. Thank you! :)
 
 You can also open a new topic in the [My projects](https://forum.lvgl.io/c/my-projects/10) category of the Forum.
 
-The [LVGL Blog](https://blog.lvgl.io) welcomes posts from anyone. 
+The [LVGL Blog](https://blog.lvgl.io) welcomes posts from anyone.
 It's a good place to talk about a project you created with LVGL, write a tutorial, or share some nice tricks.
 The latest blog posts are shown on the [homepage of LVGL](https://lvgl.io) to make your work more visible.
 
-The blog is hosted on GitHub. If you add a post GitHub automatically turns it into a website. 
+The blog is hosted on GitHub. If you add a post GitHub automatically turns it into a website.
 See the [README](https://github.com/lvgl/blog) of the blog repo to see how to add your post.
- 
+
 Any of these help to spread the word and familiarize new developers with LVGL.
 
-If you don't want to speak about your project publicly, feel free to use [Contact form](https://lvgl.io/#contact) on lvgl.io to private message to us. 
+If you don't want to speak about your project publicly, feel free to use [Contact form](https://lvgl.io/#contact) on lvgl.io to private message to us.
 
 ### Write examples
 As you learn LVGL you will probably play with the features of widgets. Why not publish your experiments?
 
-Each widgets' documentation contains examples. For instance, here are the examples of the [Drop-down list](/widgets/core/dropdown#examples) widget. 
-The examples are directly loaded from the [lvgl/examples](https://github.com/lvgl/lvgl/tree/master/examples) folder. 
+Each widgets' documentation contains examples. For instance, here are the examples of the [Drop-down list](/widgets/core/dropdown#examples) widget.
+The examples are directly loaded from the [lvgl/examples](https://github.com/lvgl/lvgl/tree/master/examples) folder.
 
 So all you need to do is send a [Pull request](#pull-request) to the [lvgl](https://github.com/lvgl/lvgl) repository and follow some conventions:
 - Name the examples like `lv_example_<widget_name>_<index>`.
@@ -219,14 +215,14 @@ So all you need to do is send a [Pull request](#pull-request) to the [lvgl](http
 ### Improve the docs
 
 As you read the documentation you might see some typos or unclear sentences. All the documentation is located in the [lvgl/docs](https://github.com/lvgl/lvgl/tree/master/docs) folder.
-For typos and straightforward fixes, you can simply edit the file on GitHub. 
+For typos and straightforward fixes, you can simply edit the file on GitHub.
 
-Note that the documentation is also formatted in [Markdown](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet). 
+Note that the documentation is also formatted in [Markdown](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet).
 
 ### Report bugs
 As you use LVGL you might find bugs. Before reporting them be sure to check the relevant parts of the documentation.
 
-If it really seems like a bug feel free to open an [issue on GitHub](https://github.com/lvgl/lvgl/issues). 
+If it really seems like a bug feel free to open an [issue on GitHub](https://github.com/lvgl/lvgl/issues).
 
 When filing the issue be sure to fill out the template. It helps find the root of the problem while avoiding extensive questions and exchanges with other developers.
 
@@ -249,17 +245,17 @@ Just read the titles and if you are familiar with the topic don't hesitate to sh
 Participating in the discussions is one of the best ways to become part of the project and get to know like-minded people!
 
 ### Add features
-If you have created a cool widget, or added useful feature to LVGL feel free to open a new PR for it. 
-We collect the optional features (a.k.a. plugins) in [lvgl/src/extra](https://github.com/lvgl/lvgl/tree/master/src/extra) folder so if you are interested in adding a new features please use this folder. 
+If you have created a cool widget, or added useful feature to LVGL feel free to open a new PR for it.
+We collect the optional features (a.k.a. plugins) in [lvgl/src/extra](https://github.com/lvgl/lvgl/tree/master/src/extra) folder so if you are interested in adding a new features please use this folder.
 The [README](https://github.com/lvgl/lvgl/blob/master/src/extra/README.md) file describes the basics rules of contribution and also lists some ideas.
 
 For further ideas take a look at the [Roadmap](/ROADMAP) page. If you are interested in any of them feel free to share your opinion and/or participate in the implementation.
 
-Other features which are (still) not on the road map are listed in the [Feature request](https://forum.lvgl.io/c/feature-request/9) category of the Forum. 
+Other features which are (still) not on the road map are listed in the [Feature request](https://forum.lvgl.io/c/feature-request/9) category of the Forum.
 
 When adding a new features the followings also needs to be updated:
 - Update [lv_conf_template.h](https://github.com/lvgl/lvgl/blob/master/lv_conf_template.h)
-- Add description in the [docs](https://github.com/lvgl/lvgl/tree/master/docs) 
+- Add description in the [docs](https://github.com/lvgl/lvgl/tree/master/docs)
 - Add [examples](https://github.com/lvgl/lvgl/tree/master/examples)
 - Update the [changelog](https://github.com/lvgl/lvgl/tree/master/docs/CHANGELOG.md)
 
@@ -279,22 +275,22 @@ You can become a maintainer by invitation, however the following conditions need
 2. Send > 5 non-trivial pull requests to the repo where you would like to be a maintainer
 
 
-If you are interested, just send a message (e.g. from the Forum) to the current maintainers of the repository. They will check if the prerequisites are met. 
-Note that meeting the prerequisites is not a guarantee of acceptance, i.e. if the conditions are met you won't automatically become a maintainer. 
+If you are interested, just send a message (e.g. from the Forum) to the current maintainers of the repository. They will check if the prerequisites are met.
+Note that meeting the prerequisites is not a guarantee of acceptance, i.e. if the conditions are met you won't automatically become a maintainer.
 It's up to the current maintainers to make the decision.
 
 ### Move your project repository under LVGL organization
-Besides the core `lvgl` repository there are other repos for ports to development boards, IDEs or other environment. 
+Besides the core `lvgl` repository there are other repos for ports to development boards, IDEs or other environment.
 If you ported LVGL to a new platform we can host it under the LVGL organization among the other repos.
 
-This way your project will become part of the whole LVGL project and can get more visibility. 
-If you are interested in this opportunity just open an [issue in lvgl repo](https://github.com/lvgl/lvgl/issues) and tell what you have! 
+This way your project will become part of the whole LVGL project and can get more visibility.
+If you are interested in this opportunity just open an [issue in lvgl repo](https://github.com/lvgl/lvgl/issues) and tell what you have!
 
-If we agree that your port fit well into the LVGL organization, we will open a repository for your project where you will have admin rights.  
+If we agree that your port fit well into the LVGL organization, we will open a repository for your project where you will have admin rights.
 
 To make this concept sustainable there a few rules to follow:
 - You need to add a README to your repo.
 - We expect to maintain the repo to some extent:
-  - Follow at least the major versions of LVGL 
+  - Follow at least the major versions of LVGL
   - Respond to the issues (in a reasonable time)
 - If there is no activity in a repo for 1 year it will be archived
index 08fcf9f..1a818e2 100644 (file)
@@ -57,7 +57,7 @@ class LvExample(Directive):
         env = self.state.document.settings.env
 
         iframe_html = ""
-        
+
         c_path = self.get_example_code_path(example_path, 'c')
         py_path = self.get_example_code_path(example_path, 'py')
 
@@ -69,9 +69,9 @@ class LvExample(Directive):
             '<i class="fa fa-play"></i>&nbsp;Simulator': f"https://sim.lvgl.io/v{env.config.version}/micropython/ports/javascript/index.html?script_startup=https://raw.githubusercontent.com/lvgl/lvgl/{env.config.repo_commit_hash}/examples/header.py&script=https://raw.githubusercontent.com/lvgl/lvgl/{env.config.repo_commit_hash}/examples/{example_path}.py"
         })
 
-        if not 'c' in excluded_languages:   
+        if not 'c' in excluded_languages:
             if env.app.tags.has('html'):
-                iframe_html = f"<div class='lv-example' data-real-src='/{env.config.version}/_static/built_lv_examples?example={example_name}&w=320&h=240'></div>"
+                iframe_html = f"<div class='lv-example' data-real-src='/{env.config.version}/_static/built_lv_examples/index.html?example={example_name}&w=320&h=240'></div>"
 
         description_html = f"<div class='lv-example-description'>{self.options.get('description', '')}</div>"
         layout_node = nodes.raw(text=f"<div class='lv-example-container'>{iframe_html}{description_html}</div>", format='html')
index 8b69e89..93a95be 100644 (file)
@@ -7,12 +7,12 @@ td {
   text-align:center;
 }
 span.pre
-{  
+{
   padding-right:8px;
 }
 
 span.pre:first-child
-{  
+{
   padding-right:0px;
 }
 
@@ -26,18 +26,18 @@ code.sig-name
     display: block;
     clear: both;
     cursor: pointer;
-    font-weight: bold; 
+    font-weight: bold;
 }
 
 .toggle .header:before {
    font-family: FontAwesome, "Lato","proxima-nova","Helvetica Neue",Arial,sans-serif;
-   content: "\f0da \00a0 Show "; 
+   content: "\f0da \00a0 Show ";
    display: inline-block;
    font-size: 1.1em;
 }
 
 .toggle .header.open:before {
-   content: "\f0d7 \00a0 Hide "; 
+   content: "\f0d7 \00a0 Hide ";
 }
 
 .header p {
@@ -56,7 +56,7 @@ code.sig-name
 
 
 .home-img {
-  width:32%; 
+  width:32%;
   transition: transform .3s ease-out;
 }
 
@@ -111,3 +111,23 @@ code.sig-name
 .lv-example-link-button:visited {
     color: white;
 }
+
+dl.cpp.unexpanded dd {
+    display: none;
+}
+
+.lv-api-expansion-button {
+    padding: 4px;
+}
+.lv-api-expansion-button::before {
+    font-family: FontAwesome, "Lato","proxima-nova","Helvetica Neue",Arial,sans-serif;
+    display: inline-block;
+    font-size: 1.1em;
+    cursor: pointer;
+}
+.unexpanded .lv-api-expansion-button::before {
+    content: "\f0da \00a0";
+}
+.expanded .lv-api-expansion-button::before {
+    content: "\f0d7 \00a0";
+}
\ No newline at end of file
index 42dcda4..90320b1 100644 (file)
@@ -29,7 +29,7 @@ function add_version_selector()
             p.innerHTML = `
             <select name="versions" id="versions" onchange="ver_sel()" style="border-radius:5px; margin-bottom:15px">
             ${versions.map(version => {
-                let versionName = "";  
+                let versionName = "";
                 if(version == "master") versionName = "master (latest)";
                 else versionName = "v" + ((version.indexOf(".") != -1) ? version : (version + " (latest minor)"));
                 return `<option value="${version}">${versionName}</option>`;
@@ -49,7 +49,7 @@ document.addEventListener('DOMContentLoaded', (event) => {
         var value = window.location.pathname.split('/')[1];
         document.getElementById("versions").value = value;
     });
-    
+
 })
 document.addEventListener('DOMContentLoaded', (event) => {
     function onIntersection(entries) {
index 0bd8ae8..7a1f797 100644 (file)
@@ -18,7 +18,7 @@ def cmd(s):
   print(s)
   print("-------------------------------------")
   r = os.system(s)
-  if r != 0: 
+  if r != 0:
     print("Exit build due to previous error")
     exit(-1)
 
@@ -31,15 +31,9 @@ br = re.sub('\* ', '', br)
 ex.exec()
 
 urlpath = re.sub('release/', '', br)
- 
-# Be sure the GitHub links point to the right branch
-f = open("header.rst", "w")
-f.write(".. |github_link_base| replace:: https://github.com/lvgl/lvgl/blob/" + gitcommit + "/docs")
-f.close()
 
-base_html = "html_baseurl = 'https://docs.lvgl.io/" + urlpath + "/en/html/'"
-
-os.system("sed -i \"s|html_baseurl = .*|" + base_html +"|\" conf.py")
+os.environ['LVGL_URLPATH'] = urlpath
+os.environ['LVGL_GITCOMMIT'] = gitcommit
 
 clean = 0
 trans = 0
@@ -48,7 +42,7 @@ args = sys.argv[1:]
 if len(args) >= 1:
   if "clean" in args: clean = 1
   if "skip_latex" in args: skip_latex = True
-  
+
 lang = "en"
 print("")
 print("****************")
index deb3eb3..75d5ae3 100644 (file)
 # documentation root, use os.path.abspath to make it absolute, like shown here.
 #
 import os
-import sys
 import subprocess
+import sys
+
 sys.path.insert(0, os.path.abspath('./_ext'))
 
+from subprocess import PIPE, Popen
+
 import recommonmark
 from recommonmark.transform import AutoStructify
 from sphinx.builders.html import StandaloneHTMLBuilder
-from subprocess import Popen, PIPE
 
 # -- General configuration ------------------------------------------------
 
@@ -49,7 +51,7 @@ extensions = ['sphinx.ext.autodoc',
 # Add any paths that contain templates here, relative to this directory.
 templates_path = ['_templates']
 
-# The default language to highlight source code in. The default is 'python'. 
+# The default language to highlight source code in. The default is 'python'.
 # The value should be a valid Pygments lexer name, see Showing code examples for more details.
 
 
@@ -88,8 +90,8 @@ language = None
 # List of patterns, relative to source directory, that match files and
 # directories to ignore when looking for source files.
 # This patterns also effect to html_static_path and html_extra_path
-exclude_patterns = ['_build', 'doxygen_html', 'Thumbs.db', '.DS_Store', 
-                    'README.md', 'lv_examples', 'out_html' ]
+exclude_patterns = ['_build', 'doxygen_html', 'Thumbs.db', '.DS_Store',
+                    'README.md', 'lv_examples', 'out_html', 'env' ]
 
 # The name of the Pygments (syntax highlighting) style to use.
 pygments_style = 'sphinx'
@@ -114,9 +116,23 @@ html_theme_options = {
     'logo_only': True,
 }
 # For site map generation
-html_baseurl = 'https://docs.lvgl.io/' + version + "/"
+html_baseurl = f"https://docs.lvgl.io/{os.environ['LVGL_URLPATH']}/en/html/"
+
 sitemap_url_scheme = "{link}"
 
+#lvgl_github_url = f"https://github.com/lvgl/lvgl/blob/{os.environ['LVGL_GITCOMMIT']}/docs"
+
+#extlinks = {'github_link_base': (github_url + '%s', github_url)}
+
+html_context = {
+    'github_version': os.environ['LVGL_GITCOMMIT'],
+    'github_user': 'lvgl',
+    'github_repo': 'lvgl',
+    'display_github': True,
+    'conf_py_path': '/docs/'
+}
+
+
 # Add any paths that contain custom static files (such as style sheets) here,
 # relative to this directory. They are copied after the builtin static files,
 # so a file named "default.css" will overwrite the builtin "default.css".
@@ -134,6 +150,10 @@ html_sidebars = {
     ]
 }
 
+html_js_files = [
+    'js/custom.js'
+]
+
 html_favicon = 'favicon.png'
 html_logo = 'logo_lvgl.png'
 
@@ -164,7 +184,7 @@ latex_elements = {
     # Latex figure (float) alignment
     #
     # 'figure_align': 'htbp',
-    
+
     'inputenc': '',
     'utf8extra': '',
     'classoptions': ',openany,oneside',
index 4f19596..c65554e 100644 (file)
@@ -21,13 +21,13 @@ def process_index_rst(path):
       line = fp.readline()
 
     return(d)
-      
+
 h1= {
-  "get_started":"Get started", 
-  "styles":"Styles", 
-  "anim":"Animations", 
-  "event":"Events", 
-  "layouts":"Layouts", 
+  "get_started":"Get started",
+  "styles":"Styles",
+  "anim":"Animations",
+  "event":"Events",
+  "layouts":"Layouts",
   "scroll":"Scrolling",
   "widgets":"Widgets"
 }
@@ -103,7 +103,6 @@ def exec():
      d_all.update(d_act)
 
   fout.write("```eval_rst\n")
-  fout.write(".. include:: /header.rst\n") 
   fout.write(":github_url: |github_link_base|/examples.md\n")
   fout.write("```\n")
   fout.write("\n")
@@ -111,7 +110,7 @@ def exec():
 
   for h in h1:
     fout.write("## " + h1[h] + "\n")
-    
+
     if h == "widgets":
       for w in widgets:
         fout.write("### " + widgets[w] + "\n")
@@ -121,7 +120,6 @@ def exec():
         fout.write("### " + layouts[l] + "\n")
         print_item(h + "/" + l, 4, d_all, fout)
     else:
-      print_item(h, 3, d_all, fout)   
-      
+      print_item(h, 3, d_all, fout)
+
     fout.write("")
-  
index f95c0cc..5d0c4fb 100644 (file)
@@ -1,21 +1,17 @@
-```eval_rst
-.. include:: /header.rst 
-:github_url: |github_link_base|/get-started/index.md
-```
 # Get started
 
 There are several ways to get your feet wet with LVGL. Here is one recommended order of documents to read and things to play with when you are learning to use LVGL:
 1. Check the [Online demos](https://lvgl.io/demos) to see LVGL in action (3 minutes)
 2. Read the [Introduction](https://docs.lvgl.io/latest/en/html/intro/index.html) page of the documentation (5 minutes)
 3. Read the [Quick overview](https://docs.lvgl.io/master/get-started/quick-overview.html) page of the documentation (15 minutes)
-4. Set up a [Simulator](https://docs.lvgl.io/master/get-started/pc-simulator.html) (10 minutes)
+4. Set up a [Simulator](https://docs.lvgl.io/master/get-started/platforms/pc-simulator.html) (10 minutes)
 5. Try out some [Examples](https://docs.lvgl.io/master/examples.html)
-6. Check out the Platform-specific tutorials. (in this section below). (10 minutes) 
+6. Check out the Platform-specific tutorials. (in this section below). (10 minutes)
 7. Port LVGL to a board. See the [Porting](https://docs.lvgl.io/master/porting/index.html) guide or check the ready to use [Projects](https://github.com/lvgl?q=lv_port_&type=&language=)
 8. Read the [Overview](https://docs.lvgl.io/master/overview/index.html) page to get a better understanding of the library. (2-3 hours)
 9. Check the documentation of the [Widgets](https://docs.lvgl.io/master/widgets/index.html) to see their features and usage
 10. If you have questions got to the [Forum](http://forum.lvgl.io/)
-11. Read the [Contributing](https://docs.lvgl.io/master/CONTRIBUTING.html) guide to see how you can help to improve LVGL (15 minutes) 
+11. Read the [Contributing](https://docs.lvgl.io/master/CONTRIBUTING.html) guide to see how you can help to improve LVGL (15 minutes)
 
 
 ```eval_rst
@@ -24,15 +20,8 @@ There are several ways to get your feet wet with LVGL. Here is one recommended o
    :maxdepth: 2
 
    quick-overview
-   pc-simulator
-   stm32
-   nxp
-   espressif
-   arduino
-   micropython
-   tasmota-berry
-   nuttx
-   rt-thread
-   cmake
+   platforms/index
+   os/index
+   bindings/index
 ```
 
index 5723a4c..163cfdf 100644 (file)
@@ -1,7 +1,3 @@
-```eval_rst
-.. include:: /header.rst 
-:github_url: |github_link_base|/get-started/quick-overview.md
-```
 
 # Quick overview
 
@@ -10,11 +6,11 @@ You should read this first to get a general impression and read the detailed [Po
 
 ## Get started in a simulator
 
-Instead of porting LVGL to embedded hardware straight away, it's highly recommended to get started in a simulator first. 
+Instead of porting LVGL to embedded hardware straight away, it's highly recommended to get started in a simulator first.
 
-LVGL is ported to many IDEs to be sure you will find your favorite one. 
-Go to the [Simulators](/get-started/pc-simulator) section to get ready-to-use projects that can be run on your PC. 
-This way you can save the time of porting for now and get some experience with LVGL immediately. 
+LVGL is ported to many IDEs to be sure you will find your favorite one.
+Go to the [Simulators](/get-started/pc-simulator) section to get ready-to-use projects that can be run on your PC.
+This way you can save the time of porting for now and get some experience with LVGL immediately.
 
 ## Add LVGL into your project
 If you would rather try LVGL on your own project follow these steps:
@@ -23,11 +19,11 @@ If you would rather try LVGL on your own project follow these steps:
 - Copy the `lvgl` folder into your project.
 - Copy `lvgl/lv_conf_template.h` as `lv_conf.h` next to the `lvgl` folder, change the first `#if 0` to `1` to enable the file's content and set the `LV_COLOR_DEPTH` defines.
 - Include `lvgl/lvgl.h` in files where you need to use LVGL related functions.
-- Call `lv_tick_inc(x)` every `x` milliseconds in a Timer or Task (`x` should be between 1 and 10). It is required for the internal timing of LVGL. 
+- Call `lv_tick_inc(x)` every `x` milliseconds in a Timer or Task (`x` should be between 1 and 10). It is required for the internal timing of LVGL.
 Alternatively, configure `LV_TICK_CUSTOM` (see `lv_conf.h`) so that LVGL can retrieve the current time directly.
 - Call `lv_init()`
-- Create a draw buffer: LVGL will render the graphics here first, and send the rendered image to the display. 
-The buffer size can be set freely but 1/10 screen size is a good starting point. 
+- Create a draw buffer: LVGL will render the graphics here first, and send the rendered image to the display.
+The buffer size can be set freely but 1/10 screen size is a good starting point.
 ```c
 static lv_disp_draw_buf_t draw_buf;
 static lv_color_t buf1[DISP_HOR_RES * DISP_VER_RES / 10];                        /*Declare a buffer for 1/10 screen size*/
@@ -76,7 +72,7 @@ void my_touchpad_read(lv_indev_t * indev, lv_indev_data_t * data)
     } else {
       data->state = LV_INDEV_STATE_RELEASED;
     }
- 
+
 }
 ```
 - Call `lv_timer_handler()` periodically every few milliseconds in the main `while(1)` loop or in an operating system task.
@@ -90,13 +86,13 @@ For a more detailed guide go to the [Porting](/porting/index) section.
 
 The graphical elements like Buttons, Labels, Sliders, Charts etc. are called objects or widgets. Go to [Widgets](/widgets/index) to see the full list of available widgets.
 
-Every object has a parent object where it is created. For example, if a label is created on a button, the button is the parent of label. 
+Every object has a parent object where it is created. For example, if a label is created on a button, the button is the parent of label.
 
-The child object moves with the parent and if the parent is deleted the children will be deleted too. 
+The child object moves with the parent and if the parent is deleted the children will be deleted too.
 
 Children can be visible only within their parent's bounding area. In other words, the parts of the children outside the parent are clipped.
 
-A Screen is the "root" parent. You can have any number of screens. 
+A Screen is the "root" parent. You can have any number of screens.
 
 To get the current screen call `lv_scr_act()`, and to load a screen use `lv_scr_load(scr1)`.
 
@@ -124,8 +120,8 @@ To see the full API visit the documentation of the widgets or the related header
 
 
 ### Events
-Events are used to inform the user that something has happened with an object. 
-You can assign one or more callbacks to an object which will be called if the object is clicked, released, dragged, being deleted, etc. 
+Events are used to inform the user that something has happened with an object.
+You can assign one or more callbacks to an object which will be called if the object is clicked, released, dragged, being deleted, etc.
 
 A callback is assigned like this:
 
@@ -140,7 +136,7 @@ void btn_event_cb(lv_event_t * e)
 }
 ```
 
-`LV_EVENT_ALL` can be used instead of `LV_EVENT_CLICKED` to invoke the callback for any event. 
+`LV_EVENT_ALL` can be used instead of `LV_EVENT_CLICKED` to invoke the callback for any event.
 
 From `lv_event_t * e` the current event code can be retrieved with:
 ```c
@@ -166,13 +162,13 @@ Read the widgets' documentation to learn which parts each uses.
 LVGL objects can be in a combination of the following states:
 - `LV_STATE_DEFAULT`  Normal, released state
 - `LV_STATE_CHECKED`  Toggled or checked state
-- `LV_STATE_FOCUSED` Focused via keypad or encoder or clicked via touchpad/mouse 
-- `LV_STATE_FOCUS_KEY`  Focused via keypad or encoder but not via touchpad/mouse 
+- `LV_STATE_FOCUSED` Focused via keypad or encoder or clicked via touchpad/mouse
+- `LV_STATE_FOCUS_KEY`  Focused via keypad or encoder but not via touchpad/mouse
 - `LV_STATE_EDITED` Edit by an encoder
 - `LV_STATE_HOVERED` Hovered by mouse (not supported now)
 - `LV_STATE_PRESSED` Being pressed
 - `LV_STATE_SCROLLED` Being scrolled
-- `LV_STATE_DISABLED` Disabled 
+- `LV_STATE_DISABLED` Disabled
 
 For example, if you press an object it will automatically go to the `LV_STATE_FOCUSED` and `LV_STATE_PRESSED` states and when you release it the `LV_STATE_PRESSED` state will be removed while focus remains active.
 
@@ -219,8 +215,8 @@ lv_obj_add_style(btn1, &style1, 0); /*Equal to LV_PART_MAIN | LV_STATE_DEFAULT*/
 ```
 
 
-Styles can be cascaded (similarly to CSS). It means you can add more styles to a part of an object. 
-For example `style_btn` can set a default button appearance, and `style_btn_red` can overwrite the background color to make the button red: 
+Styles can be cascaded (similarly to CSS). It means you can add more styles to a part of an object.
+For example `style_btn` can set a default button appearance, and `style_btn_red` can overwrite the background color to make the button red:
 ```c
 lv_obj_add_style(btn1, &style_btn, 0);
 lv_obj_add_style(btn1, &style1_btn_red, 0);
@@ -229,23 +225,23 @@ lv_obj_add_style(btn1, &style1_btn_red, 0);
 
 If a property is not set on for the current state, the style with `LV_STATE_DEFAULT` will be used. A default value is used if the property is not defined in the default state.
 
-Some properties (typically the text-related ones) can be inherited. This means if a property is not set in an object it will be searched for in its parents too. 
-For example, you can set the font once in the screen's style and all text on that screen will inherit it by default. 
+Some properties (typically the text-related ones) can be inherited. This means if a property is not set in an object it will be searched for in its parents too.
+For example, you can set the font once in the screen's style and all text on that screen will inherit it by default.
 
 
 Local style properties also can be added to objects. This creates a style which resides inside the object and is used only by the object:
 ```c
 lv_obj_set_style_bg_color(slider1, lv_color_hex(0x2080bb), LV_PART_INDICATOR | LV_STATE_PRESSED);
-``` 
+```
 
 To learn all the features of styles see the [Style overview](/overview/style) section.
 
 
 ### Themes
 
-Themes are the default styles for objects. Styles from a theme are applied automatically when objects are created. 
+Themes are the default styles for objects. Styles from a theme are applied automatically when objects are created.
 
-The theme for your application is a compile time configuration set in `lv_conf.h`. 
+The theme for your application is a compile time configuration set in `lv_conf.h`.
 
 ## Examples
 
index fabc07d..f89f953 100644 (file)
@@ -1,7 +1,3 @@
-```eval_rst
-.. include:: /header.rst 
-:github_url: |github_link_base|/index.md
-```
 
 ```eval_rst
 
@@ -13,20 +9,20 @@ PDF version: :download:`LVGL.pdf <LVGL.pdf>`
 <img src="_static/img/home_banner.jpg" style="width:100%">
 
 
-<div style="margin-bottom:48px"> 
+<div style="margin-bottom:48px">
     <a href="intro/index.html"><img class="home-img" src="_static/img/home_1.png" alt="Get familiar with the LVGL project"></a>
     <a href="get-started/index.html"><img class="home-img" src="_static/img/home_2.png" alt="Learn the basic of LVGL and its usage on various platforms"></a>
     <a href="porting/index.html"><img class="home-img" src="_static/img/home_3.png" alt="See how to port LVGL to any platform"></a>
     <a href="overview/index.html"><img class="home-img" src="_static/img/home_4.png" alt="Learn the how LVGL works in more detail"></a>
     <a href="widgets/index.html"><img class="home-img" src="_static/img/home_5.png" alt="Take a look at the description of the available widgets"></a>
     <a href="CONTRIBUTING.html"><img class="home-img" src="_static/img/home_6.png" alt="Be part of the development of LVGL"></a>
-</div> 
- 
+</div>
+
 
 ```eval_rst
 .. toctree::
    :maxdepth: 2
-   
+
    intro/index
    examples
    get-started/index
index dbad09b..0d20b28 100644 (file)
@@ -1,7 +1,3 @@
-```eval_rst
-.. include:: /header.rst 
-:github_url: |github_link_base|/intro/index.md
-```
 
 # Introduction
 
@@ -32,48 +28,45 @@ Basically, every modern controller which is able to drive a display is suitable
 <li> 16, 32 or 64 bit microcontroller or processor</li>
 <li>&gt; 16 MHz clock speed is recommended</li>
 <li> Flash/ROM: &gt; 64 kB for the very essential components (&gt; 180 kB is recommended)</li>
-<li> RAM: 
+<li> RAM:
   <ul>
     <li> Static RAM usage: ~2 kB depending on the used features and object types</li>
     <li> Stack: &gt; 2kB (&gt; 8 kB is recommended)</li>
-    <li> Dynamic data (heap): &gt; 4 KB (&gt; 32 kB is recommended if using several objects).
+    <li> Dynamic data (heap): &gt; 4 KB (&gt; 48 kB is recommended if using several objects).
            Set by <em>LV_MEM_SIZE</em> in <em>lv_conf.h</em>. </li>
     <li> Display buffer:  &gt; <em>"Horizontal resolution"</em> pixels (&gt; 10 &times; <em>"Horizontal resolution"</em> is recommended) </li>
     <li> One frame buffer in the MCU or in an external display controller</li>
        </ul>
 </li>
 <li> C99 or newer compiler</li>
-<li> Basic C (or C++) knowledge: 
-          <a href="https://www.tutorialspoint.com/cprogramming/c_pointers.htm">pointers</a>, 
-          <a href="https://www.tutorialspoint.com/cprogramming/c_structures.htm">structs</a>, 
+<li> Basic C (or C++) knowledge:
+          <a href="https://www.tutorialspoint.com/cprogramming/c_pointers.htm">pointers</a>,
+          <a href="https://www.tutorialspoint.com/cprogramming/c_structures.htm">structs</a>,
           <a href="https://www.geeksforgeeks.org/callbacks-in-c/">callbacks</a>.</li>
 </ul>
 <em>Note that memory usage may vary depending on architecture, compiler and build options.</em>
 
 ## License
-The LVGL project (including all repositories) is licensed under [MIT license](https://github.com/lvgl/lvgl/blob/master/LICENCE.txt). 
+The LVGL project (including all repositories) is licensed under [MIT license](https://github.com/lvgl/lvgl/blob/master/LICENCE.txt).
 This means you can use it even in commercial projects.
 
 It's not mandatory, but we highly appreciate it if you write a few words about your project in the [My projects](https://forum.lvgl.io/c/my-projects/10) category of the forum or a private message to [lvgl.io](https://lvgl.io/#contact).
 
 Although you can get LVGL for free there is a massive amount of work behind it. It's created by a group of volunteers who made it available for you in their free time.
 
-To make the LVGL project sustainable, please consider [contributing](/CONTRIBUTING) to the project. 
+To make the LVGL project sustainable, please consider [contributing](/CONTRIBUTING) to the project.
 You can choose from [many different ways of contributing](/CONTRIBUTING) such as simply writing a tweet about you using LVGL, fixing bugs, translating the documentation, or even becoming a maintainer.
 
 ## Repository layout
 All repositories of the LVGL project are hosted on GitHub: https://github.com/lvgl
 
 You will find these repositories there:
-- [lvgl](https://github.com/lvgl/lvgl) The library itself with many [examples](https://github.com/lvgl/lvgl/blob/master/examples/).
-- [lv_demos](https://github.com/lvgl/lv_demos) Demos created with LVGL.
+- [lvgl](https://github.com/lvgl/lvgl) The library itself with many [examples](https://github.com/lvgl/lvgl/blob/master/examples/) and [demos](https://github.com/lvgl/lvgl/blob/master/demos/).
 - [lv_drivers](https://github.com/lvgl/lv_drivers) Display and input device drivers
 - [blog](https://github.com/lvgl/blog) Source of the blog's site (https://blog.lvgl.io)
 - [sim](https://github.com/lvgl/sim) Source of the online simulator's site (https://sim.lvgl.io)
-- [lv_sim_...](https://github.com/lvgl?q=lv_sim&type=&language=) Simulator projects for various IDEs and platforms
-- [lv_port_...](https://github.com/lvgl?q=lv_port&type=&language=) LVGL ports to development boards
+- [lv_port_...](https://github.com/lvgl?q=lv_port&type=&language=) LVGL ports to development boards or environments
 - [lv_binding_..](https://github.com/lvgl?q=lv_binding&type=&language=l) Bindings to other languages
-- [lv_...](https://github.com/lvgl?q=lv_&type=&language=) Ports to other platforms
 
 ## Release policy
 
@@ -91,7 +84,7 @@ Tags like `vX.Y.Z` are created for every release.
 
 ### Branches
 The core repositories have at least the following branches:
-- `master` latest version, patches are merged directly here. 
+- `master` latest version, patches are merged directly here.
 - `release/vX.Y` stable versions of the minor releases
 - `fix/some-description` temporary branches for bug fixes
 - `feat/some-description` temporary branches for features
@@ -102,26 +95,26 @@ The core repositories have at least the following branches:
 The changes are recorded in [CHANGELOG.md](/CHANGELOG).
 
 ### Version support
-Before v8 every minor release of major releases is supported for 1 year.
+Before v8 the last minor release of each major series was supported for 1 year.
 Starting from v8, every minor release is supported for 1 year.
 
 | Version | Release date | Support end | Active |
 |---------|--------------|-------------|--------|
 | v5.3    | Feb 1, 2019  |Feb 1, 2020  | No     |
 | v6.1    | Nov 26, 2019 |Nov 26, 2020 | No     |
-| v7.11   | Mar 16, 2021 |Mar 16, 2022 | Yes    |
+| v7.11   | Mar 16, 2021 |Mar 16, 2022 | No     |
 | v8.0    | 1 Jun, 2021  |1 Jun, 2022  | Yes    |
 | v8.1    | 10 Nov, 2021 |10 Nov, 2022 | Yes    |
-| v8.2    | In progress  |             |        |
-
+| v8.2    | 31 Jan, 2022 |31 Jan, 2023 | Yes    |
+| v8.3    | In progress  |             |        |
 
 ## FAQ
 
 ### Where can I ask questions?
 You can ask questions in the forum: [https://forum.lvgl.io/](https://forum.lvgl.io/).
 
-We use [GitHub issues](https://github.com/lvgl/lvgl/issues) for development related discussion. 
-You should use them only if your question or issue is tightly related to the development of the library. 
+We use [GitHub issues](https://github.com/lvgl/lvgl/issues) for development related discussion.
+You should use them only if your question or issue is tightly related to the development of the library.
 
 Before posting a question, please ready this FAQ section as you might find answer to your issue here too.
 
@@ -129,17 +122,17 @@ Before posting a question, please ready this FAQ section as you might find answe
 Every MCU which is capable of driving a display via parallel port, SPI, RGB interface or anything else and fulfills the [Requirements](#requirements) is supported by LVGL.
 
 This includes:
-- "Common" MCUs like STM32F, STM32H, NXP Kinetis, LPC, iMX, dsPIC33, PIC32 etc. 
+- "Common" MCUs like STM32F, STM32H, NXP Kinetis, LPC, iMX, dsPIC33, PIC32, SWM341 etc.
 - Bluetooth, GSM, Wi-Fi modules like Nordic NRF and Espressif ESP32
 - Linux with frame buffer device such as /dev/fb0. This includes Single-board computers like the Raspberry Pi
 - Anything else with a strong enough MCU and a peripheral to drive a display
 
 ### Is my display supported?
-LVGL needs just one simple driver function to copy an array of pixels into a given area of the display. 
+LVGL needs just one simple driver function to copy an array of pixels into a given area of the display.
 If you can do this with your display then you can use it with LVGL.
 
 Some examples of the supported display types:
-- TFTs with 16 or 24 bit color depth 
+- TFTs with 16 or 24 bit color depth
 - Monitors with an HDMI port
 - Small monochrome displays
 - Gray-scale displays
@@ -161,10 +154,10 @@ See the [Porting](/porting/display) section to learn more.
 ### My display driver is not called. What have I missed?
 Be sure you are calling `lv_tick_inc(x)` in an interrupt and `lv_timer_handler()` in your main `while(1)`.
 
-Learn more in the [Tick](/porting/tick) and [Task handler](/porting/task-handler) sections.
+Learn more in the [Tick](/porting/tick) and [Timer handler](/porting/timer-handler) sections.
 
-### Why is the display driver called only once? Only the upper part of the display is refreshed. 
-Be sure you are calling `lv_disp_flush_ready(drv)` at the end of your "*display flush callback*". 
+### Why is the display driver called only once? Only the upper part of the display is refreshed.
+Be sure you are calling `lv_disp_flush_ready(drv)` at the end of your "*display flush callback*".
 
 ### Why do I see only garbage on the screen?
 Probably there a bug in your display driver. Try the following code without using LVGL. You should see a square with red-blue gradient.
@@ -192,16 +185,16 @@ a.y2 = a.y1 + BUF_H - 1;
 my_flush_cb(NULL, &a, buf);
 ```
 
-### Why do I see nonsense colors on the screen? 
+### Why do I see nonsense colors on the screen?
 Probably LVGL's color format is not compatible with your display's color format. Check `LV_COLOR_DEPTH` in *lv_conf.h*.
 
-If you are using 16-bit colors with SPI (or another byte-oriented interface) you probably need to set `LV_COLOR_16_SWAP  1` in *lv_conf.h*. 
+If you are using 16-bit colors with SPI (or another byte-oriented interface) you probably need to set `LV_COLOR_16_SWAP  1` in *lv_conf.h*.
 It swaps the upper and lower bytes of the pixels.
 
 ### How to speed up my UI?
 - Turn on compiler optimization and enable cache if your MCU has it
 - Increase the size of the display buffer
-- Use two display buffers and flush the buffer with DMA (or similar peripheral) in the background 
+- Use two display buffers and flush the buffer with DMA (or similar peripheral) in the background
 - Increase the clock speed of the SPI or parallel port if you use them to drive the display
 - If your display has an SPI port consider changing to a model with a parallel interface because it has much higher throughput
 - Keep the display buffer in internal RAM (not in external SRAM) because LVGL uses it a lot and it should have a fast access time
@@ -209,10 +202,10 @@ It swaps the upper and lower bytes of the pixels.
 ### How to reduce flash/ROM usage?
 You can disable all the unused features (such as animations, file system, GPU etc.) and object types in *lv_conf.h*.
 
-If you are using GCC you can add `-fdata-sections -ffunction-sections` compiler flags and `--gc-sections` linker flag to remove unused functions and variables from the final binary.
+If you are using GCC/CLANG you can add `-fdata-sections -ffunction-sections` compiler flags and `--gc-sections` linker flag to remove unused functions and variables from the final binary. If possible, add the `-flto` compiler flag to enable link-time-optimisation together with `-Os` for GCC or `-Oz` for CLANG. 
 
 ### How to reduce the RAM usage
-- Lower the size of the *Display buffer* 
+- Lower the size of the *Display buffer*
 - Reduce `LV_MEM_SIZE` in *lv_conf.h*. This memory is used when you create objects like buttons, labels, etc.
 - To work with lower `LV_MEM_SIZE` you can create objects only when required and delete them when they are not needed anymore
 
index a08897e..ff5ef34 100644 (file)
@@ -1,7 +1,3 @@
-```eval_rst
-.. include:: /header.rst 
-:github_url: |github_link_base|/layouts/flex.md
-```
 
 # Flex
 
@@ -13,14 +9,14 @@ It can arrange items into rows or columns (tracks), handle wrapping, adjust the
 
 To make an object flex container call `lv_obj_set_layout(obj, LV_LAYOUT_FLEX)`.
 
-Note that the flex layout feature of LVGL needs to be globally enabled with `LV_USE_FLEX` in `lv_conf.h`. 
+Note that the flex layout feature of LVGL needs to be globally enabled with `LV_USE_FLEX` in `lv_conf.h`.
 
 ## Terms
 - tracks: the rows or columns
 - main direction: row or column, the direction in which the items are placed
 - cross direction: perpendicular to the main direction
 - wrap: if there is no more space in the track a new track is started
-- grow: if set on an item it will grow to fill the remaining space on the track. 
+- grow: if set on an item it will grow to fill the remaining space on the track.
 The available space will be distributed among items respective to their grow value (larger value means more space)
 - gap: the space between the rows and columns or the items on a track
 
@@ -54,8 +50,8 @@ The possible values are:
 - `LV_FLEX_ALIGN_END` means right on a horizontally and bottom vertically
 - `LV_FLEX_ALIGN_CENTER` simply center
 - `LV_FLEX_ALIGN_SPACE_EVENLY` items are distributed so that the spacing between any two items (and the space to the edges) is equal. Does not apply to `track_cross_place`.
-- `LV_FLEX_ALIGN_SPACE_AROUND` items are evenly distributed in the track with equal space around them. 
-Note that visually the spaces aren’t equal, since all the items have equal space on both sides. 
+- `LV_FLEX_ALIGN_SPACE_AROUND` items are evenly distributed in the track with equal space around them.
+Note that visually the spaces aren’t equal, since all the items have equal space on both sides.
 The first item will have one unit of space against the container edge, but two units of space between the next item because that next item has its own spacing that applies. Not applies to `track_cross_place`.
 - `LV_FLEX_ALIGN_SPACE_BETWEEN` items are evenly distributed in the track: first item is on the start line, last item on the end line. Not applies to `track_cross_place`.
 
@@ -87,13 +83,13 @@ All the Flex-related values are style properties under the hood and you can use
 
 To modify the minimum space flexbox inserts between objects, the following properties can be set on the flex container style:
 
-- `pad_row` Sets the padding between the rows. 
+- `pad_row` Sets the padding between the rows.
 
 - `pad_column` Sets the padding between the columns.
 
 These can for example be used if you don't want any padding between your objects: `lv_style_set_pad_column(&row_container_style,0)`
 
-## Other features 
+## Other features
 
 ### RTL
 If the base direction of the container is set the `LV_BASE_DIR_RTL` the meaning of `LV_FLEX_ALIGN_START` and `LV_FLEX_ALIGN_END` is swapped on `ROW` layouts. I.e. `START` will mean right.
index 3806f65..ed552cf 100644 (file)
@@ -1,7 +1,3 @@
-```eval_rst
-.. include:: /header.rst 
-:github_url: |github_link_base|/layouts/grid.md
-```
 
 # Grid
 
@@ -14,11 +10,11 @@ The track's size can be set in pixel, to the largest item (`LV_GRID_CONTENT`) or
 
 To make an object a grid container call `lv_obj_set_layout(obj, LV_LAYOUT_GRID)`.
 
-Note that the grid layout feature of LVGL needs to be globally enabled with `LV_USE_GRID` in `lv_conf.h`. 
+Note that the grid layout feature of LVGL needs to be globally enabled with `LV_USE_GRID` in `lv_conf.h`.
 
 ## Terms
 - tracks: the rows or columns
-- free unit (FR): if set on track's size is set in `FR` it will grow to fill the remaining space on the parent. 
+- free unit (FR): if set on track's size is set in `FR` it will grow to fill the remaining space on the parent.
 - gap: the space between the rows and columns or the items on a track
 
 ## Simple interface
@@ -42,7 +38,7 @@ Besides simple settings the size in pixel you can use two special values:
 - `LV_GRID_FR(X)` tell what portion of the remaining space should be used by this track. Larger value means larger space.
 
 ### Grid items
-By default, the children are not added to the grid. They need to be added manually to a cell. 
+By default, the children are not added to the grid. They need to be added manually to a cell.
 
 To do this call `lv_obj_set_grid_cell(child, column_align, column_pos, column_span, row_align, row_pos, row_span)`.
 
@@ -51,9 +47,9 @@ To do this call `lv_obj_set_grid_cell(child, column_align, column_pos, column_sp
 - `LV_GRID_ALIGN_END` means right on a horizontally and bottom vertically
 - `LV_GRID_ALIGN_CENTER` simply center
 
-`colum_pos` and `row_pos` means the zero based index of the cell into the item should be placed. 
+`colum_pos` and `row_pos` means the zero based index of the cell into the item should be placed.
 
-`colum_span` and `row_span` means how many tracks should the item involve from the start cell. Must be &gt; 1. 
+`colum_span` and `row_span` means how many tracks should the item involve from the start cell. Must be &gt; 1.
 
 ### Grid align
 
@@ -62,8 +58,8 @@ If there are some empty space the track can be aligned several ways:
 - `LV_GRID_ALIGN_END` means right on a horizontally and bottom vertically
 - `LV_GRID_ALIGN_CENTER` simply center
 - `LV_GRID_ALIGN_SPACE_EVENLY` items are distributed so that the spacing between any two items (and the space to the edges) is equal. Not applies to `track_cross_place`.
-- `LV_GRID_ALIGN_SPACE_AROUND` items are evenly distributed in the track with equal space around them. 
-Note that visually the spaces aren’t equal, since all the items have equal space on both sides. 
+- `LV_GRID_ALIGN_SPACE_AROUND` items are evenly distributed in the track with equal space around them.
+Note that visually the spaces aren’t equal, since all the items have equal space on both sides.
 The first item will have one unit of space against the container edge, but two units of space between the next item because that next item has its own spacing that applies. Not applies to `track_cross_place`.
 - `LV_GRID_ALIGN_SPACE_BETWEEN` items are evenly distributed in the track: first item is on the start line, last item on the end line. Not applies to `track_cross_place`.
 
@@ -88,10 +84,10 @@ All the Grid related values are style properties under the hood and you can use
 
 To modify the minimum space Grid inserts between objects, the following properties can be set on the Grid container style:
 
-- `pad_row` Sets the padding between the rows. 
+- `pad_row` Sets the padding between the rows.
 - `pad_column` Sets the padding between the columns.
 
-## Other features 
+## Other features
 
 ### RTL
 If the base direction of the container is set to `LV_BASE_DIR_RTL`, the meaning of `LV_GRID_ALIGN_START` and `LV_GRID_ALIGN_END` is swapped. I.e. `START` will mean right-most.
index 32b0a2e..44108d3 100644 (file)
@@ -1,7 +1,3 @@
-```eval_rst
-.. include:: /header.rst 
-:github_url: |github_link_base|/layouts/index.md
-```
 
 # Layouts
 
@@ -9,7 +5,7 @@
 ```eval_rst
 .. toctree::
    :maxdepth: 2
-   
+
    flex
    grid
 ```
index 4c12e8b..3aace9e 100644 (file)
@@ -1,23 +1,19 @@
-```eval_rst
-.. include:: /header.rst 
-:github_url: |github_link_base|/libs/bmp.md
-```
 
-# BMP decoder 
+# BMP decoder
 
-This extension allows the use of BMP images in LVGL. 
+This extension allows the use of BMP images in LVGL.
 This implementation uses [bmp-decoder](https://github.com/caj-johnson/bmp-decoder) library.
-The pixels are read on demand (not the whole image is loaded) so using BMP images requires very little RAM. 
+The pixels are read on demand (not the whole image is loaded) so using BMP images requires very little RAM.
 
 If enabled in `lv_conf.h` by `LV_USE_BMP` LVGL will register a new image decoder automatically so BMP files can be directly used as image sources. For example:
 ```
 lv_img_set_src(my_img, "S:path/to/picture.bmp");
 ```
 
-Note that, a file system driver needs to registered to open images from files. Read more about it [here](https://docs.lvgl.io/master/overview/file-system.html) or just enable one in `lv_conf.h` with `LV_USE_FS_...` 
+Note that, a file system driver needs to registered to open images from files. Read more about it [here](https://docs.lvgl.io/master/overview/file-system.html) or just enable one in `lv_conf.h` with `LV_USE_FS_...`
 
 ## Limitations
-- Only BMP files are supported and BMP images as C array (`lv_img_dsc_t`) are not. It's because there is no practical differences between how the BMP files and LVGL's image format stores the image data. 
+- Only BMP files are supported and BMP images as C array (`lv_img_dsc_t`) are not. It's because there is no practical differences between how the BMP files and LVGL's image format stores the image data.
 - BMP files can be loaded only from file. If you want to store them in flash it's better to convert them to C array with [LVGL's image converter](https://lvgl.io/tools/imageconverter).
 - The BMP files color format needs to match with `LV_COLOR_DEPTH`. Use GIMP to save the image in the required format.
   Both RGB888 and ARGB888 works with `LV_COLOR_DEPTH 32`
index 69faf08..b68712d 100644 (file)
@@ -1,7 +1,3 @@
-```eval_rst
-.. include:: /header.rst 
-:github_url: |github_link_base|/libs/ffmpeg.md
-```
 
 # FFmpeg support
 [FFmpeg](https://www.ffmpeg.org/) A complete, cross-platform solution to record, convert and stream audio and video.
@@ -21,7 +17,7 @@ Enable `LV_USE_FFMPEG` in `lv_conf.h`.
 
 See the examples below.
 
-Note that, the FFmpeg extension doesn't use LVGL's file system. 
+Note that, the FFmpeg extension doesn't use LVGL's file system.
 You can simply pass the path to the image or video as usual on your operating system or platform.
 
 ## Example
index 6824b2b..a734bba 100644 (file)
@@ -1,7 +1,3 @@
-```eval_rst
-.. include:: /header.rst 
-:github_url: |github_link_base|/libs/freetype.md
-```
 
 # FreeType support
 Interface to [FreeType](https://www.freetype.org/) to generate font bitmaps run time.
@@ -34,7 +30,7 @@ Font style supports bold and italic, you can use the following macros to set:
 
 They can be combined.eg:`FT_FONT_STYLE_BOLD | FT_FONT_STYLE_ITALIC`.
 
-Note that, the FreeType extension doesn't use LVGL's file system. 
+Note that, the FreeType extension doesn't use LVGL's file system.
 You can simply pass the path to the font as usual on your operating system or platform.
 
 ## Example
@@ -44,7 +40,7 @@ You can simply pass the path to the font as usual on your operating system or pl
 
 
 ## Learn more
-- FreeType [tutorial](https://www.freetype.org/freetype2/docs/tutorial/step1.html) 
+- FreeType [tutorial](https://www.freetype.org/freetype2/docs/tutorial/step1.html)
 - LVGL's [font interface](https://docs.lvgl.io/v7/en/html/overview/font.html#add-a-new-font-engine)
 
 
index 5e60f61..7b9015a 100644 (file)
@@ -1,7 +1,3 @@
-```eval_rst
-.. include:: /header.rst 
-:github_url: |github_link_base|/libs/fsdrv.md
-```
 
 # File System Interfaces
 
@@ -20,6 +16,6 @@ You still need to provide the drivers and libraries, this extension provides onl
 In `lv_conf.h` enable `LV_USE_FS_...` and assign an upper cased letter to `LV_FS_..._LETTER` (e.g. `'S'`).
 After that you can access files using that driver letter. E.g. `"S:path/to/file.txt"`.
 
-The work directory can be set with `LV_FS_..._PATH`. E.g. `"/home/joe/projects/"` The actual file/directory paths will be appended to it. 
+The work directory can be set with `LV_FS_..._PATH`. E.g. `"/home/joe/projects/"` The actual file/directory paths will be appended to it.
 
-Cached reading is also supported if `LV_FS_..._CACHE_SIZE` is set to not `0` value. `lv_fs_read` caches this size of data to lower the number of actual reads from the storage. 
+Cached reading is also supported if `LV_FS_..._CACHE_SIZE` is set to not `0` value. `lv_fs_read` caches this size of data to lower the number of actual reads from the storage.
index ca1ac2e..f3ae758 100644 (file)
@@ -1,7 +1,3 @@
-```eval_rst
-.. include:: /header.rst 
-:github_url: |github_link_base|/libs/gif.md
-```
 
 # GIF decoder
 Allow using GIF images in LVGL. Based on https://github.com/lecram/gifdec
@@ -13,7 +9,7 @@ When enabled in `lv_conf.h` with `LV_USE_GIF` `lv_gif_create(parent)` can be use
 
 ## Convert GIF files to C array
 To convert a GIF file to byte values array use [LVGL's online converter](https://lvgl.io/tools/imageconverter). Select "Raw" color format and "C array" Output format.
- 
+
 
 ## Use GIF images from file
 For example:
@@ -21,14 +17,14 @@ For example:
 lv_gif_set_src(obj, "S:path/to/example.gif");
 ```
 
-Note that, a file system driver needs to be registered to open images from files. Read more about it [here](https://docs.lvgl.io/master/overview/file-system.html) or just enable one in `lv_conf.h` with `LV_USE_FS_...` 
+Note that, a file system driver needs to be registered to open images from files. Read more about it [here](https://docs.lvgl.io/master/overview/file-system.html) or just enable one in `lv_conf.h` with `LV_USE_FS_...`
 
 
 ## Memory requirements
 To decode and display a GIF animation the following amount of RAM is required:
-- `LV_COLOR_DEPTH 8`: 3 x image width x image height 
-- `LV_COLOR_DEPTH 16`: 4 x image width x image height 
-- `LV_COLOR_DEPTH 32`: 5 x image width x image height 
+- `LV_COLOR_DEPTH 8`: 3 x image width x image height
+- `LV_COLOR_DEPTH 16`: 4 x image width x image height
+- `LV_COLOR_DEPTH 32`: 5 x image width x image height
 
 ## Example
 ```eval_rst
index e11f0a9..8217e91 100644 (file)
@@ -1,7 +1,3 @@
-```eval_rst
-.. include:: /header.rst 
-:github_url: |github_link_base|/libs/index.md
-```
 # 3rd party libraries
 
 
@@ -9,7 +5,7 @@
 
 .. toctree::
    :maxdepth: 1
-   
+
    fsdrv
    bmp
    sjpg
index 98bf17c..96a8024 100644 (file)
@@ -1,7 +1,3 @@
-```eval_rst
-.. include:: /header.rst 
-:github_url: |github_link_base|/libs/png.md
-```
 
 # PNG decoder
 
@@ -9,11 +5,11 @@ Allow the use of PNG images in LVGL. This implementation uses [lodepng](https://
 
 If enabled in `lv_conf.h` by `LV_USE_PNG` LVGL will register a new image decoder automatically so PNG files can be directly used as any other image  sources.
 
-Note that, a file system driver needs to registered to open images from files. Read more about it [here](https://docs.lvgl.io/master/overview/file-system.html) or just enable one in `lv_conf.h` with `LV_USE_FS_...` 
+Note that, a file system driver needs to registered to open images from files. Read more about it [here](https://docs.lvgl.io/master/overview/file-system.html) or just enable one in `lv_conf.h` with `LV_USE_FS_...`
 
 The whole PNG image is decoded so during decoding RAM equals to `image width x image height x 4` bytes are required.
 
-As it might take significant time to decode PNG images LVGL's [images caching](https://docs.lvgl.io/master/overview/image.html#image-caching) feature can be useful. 
+As it might take significant time to decode PNG images LVGL's [images caching](https://docs.lvgl.io/master/overview/image.html#image-caching) feature can be useful.
 
 ## Example
 ```eval_rst
index b4464c0..85b5654 100644 (file)
@@ -1,7 +1,3 @@
-```eval_rst
-.. include:: /header.rst
-:github_url: |github_link_base|/libs/rlottie.md
-```
 
 
 # Lottie player
@@ -93,7 +89,7 @@ The default animation mode is **play forward with loop**.
 
 If you don't enable looping, a `LV_EVENT_READY` is sent when the animation can not make more progress without looping.
 
-To get the number of frames in an animation or the current frame index, you can cast the `lv_obj_t` instance to a `lv_rlottie_t` instance and inspect the `current_frame` and `total_frames` members. 
+To get the number of frames in an animation or the current frame index, you can cast the `lv_obj_t` instance to a `lv_rlottie_t` instance and inspect the `current_frame` and `total_frames` members.
 
 ## Example
 ```eval_rst
index 95f97c0..3ee7858 100644 (file)
@@ -1,7 +1,3 @@
-```eval_rst
-.. include:: /header.rst 
-:github_url: |github_link_base|/libs/sjpg.md
-```
 
 # JPG decoder
 
@@ -26,17 +22,17 @@ If enabled in `lv_conf.h` by `LV_USE_SJPG` LVGL will register a new image decode
 lv_img_set_src(my_img, "S:path/to/picture.jpg");
 ```
 
-Note that, a file system driver needs to registered to open images from files. Read more about it [here](https://docs.lvgl.io/master/overview/file-system.html) or just enable one in `lv_conf.h` with `LV_USE_FS_...` 
+Note that, a file system driver needs to registered to open images from files. Read more about it [here](https://docs.lvgl.io/master/overview/file-system.html) or just enable one in `lv_conf.h` with `LV_USE_FS_...`
 
 
 
 ## Converter
 
 ### Converting JPG to C array
-  - Use lvgl online tool https://lvgl.io/tools/imageconverter 
+  - Use lvgl online tool https://lvgl.io/tools/imageconverter
   - Color format = RAW, output format = C Array
-  
-### Converting JPG to SJPG  
+
+### Converting JPG to SJPG
 python3 and the PIL library required. (PIL can be installed with `pip3 install pillow`)
 
 To create SJPG from JPG:
index 3d9acb6..1e863d4 100644 (file)
@@ -1,7 +1,3 @@
-```eval_rst
-.. include:: /header.rst 
-:github_url: |github_link_base|/others/gridnav.md
-```
 # Grid navigation
 
 Grid navigation (gridnav for short) is a feature that changes the currently focused child object as arrow keys are pressed.
@@ -10,35 +6,35 @@ If the children are arranged into a grid-like layout then the up, down, left and
 in the respective direction.
 
 It doesn't matter how the children are positioned, as only the current x and y coordinates are considered.
-This means that gridnav works with manually positioned children, as well as [Flex](/layouts/flex.html) and [Grid](/layouts/grid.html) layouts.
+This means that gridnav works with manually positioned children, as well as [Flex](/layouts/flex) and [Grid](/layouts/grid) layouts.
 
 Gridnav also works if the children are arranged into a single row or column.
-That makes it useful, for example, to simplify navigation on a [List widget](/widgets/extra/list.html).
+That makes it useful, for example, to simplify navigation on a [List widget](/widgets/extra/list).
 
-Gridnav assumes that the object to which gridnav is added is part of a [group](/overview/indev.html#groups). 
+Gridnav assumes that the object to which gridnav is added is part of a [group](/overview/indev.html#groups).
 This way, if the object with gridnav is focused, the arrow key presses are automatically forwarded to the object
 so that gridnav can process the arrow keys.
 
-To move the focus to the next widget of the group use `LV_KEY_NEXT/PREV` or `lv_group_focus_next/prev()` or the `TAB` key on keyboard as usual. 
- 
+To move the focus to the next widget of the group use `LV_KEY_NEXT/PREV` or `lv_group_focus_next/prev()` or the `TAB` key on keyboard as usual.
+
 If the container is scrollable and the focused child is out of the view, gridnav will automatically scroll the child into view.
- 
+
 ## Usage
 
 To add the gridnav feature to an object use `lv_gridnav_add(cont, flags)`.
 
 `flags` control the behavior of gridnav:
-- `LV_GRIDNAV_CTRL_NONE` Default settings 
-- `LV_GRIDNAV_CTRL_ROLLOVER`  If there is no next/previous object in a direction, 
-the focus goes to the object in the next/previous row (on left/right keys) or first/last row (on up/down keys 
+- `LV_GRIDNAV_CTRL_NONE` Default settings
+- `LV_GRIDNAV_CTRL_ROLLOVER`  If there is no next/previous object in a direction,
+the focus goes to the object in the next/previous row (on left/right keys) or first/last row (on up/down keys
 - `LV_GRIDNAV_CTRL_SCROLL_FIRST` If an arrow is pressed and the focused object can be scrolled in that direction
-then it will be scrolled instead of going to the next/previous object.  If there is no more room for scrolling the next/previous object will be focused normally 
+then it will be scrolled instead of going to the next/previous object.  If there is no more room for scrolling the next/previous object will be focused normally
 
 `lv_gridnav_remove(cont)` Removes gridnav from an object.
 
 ## Focusable objects
 
-An object needs to be clickable or click focusable (`LV_OBJ_FLAG_CLICKABLE` or `LV_OBJ_FLAG_CLICK_FOCUSABLE`) 
+An object needs to be clickable or click focusable (`LV_OBJ_FLAG_CLICKABLE` or `LV_OBJ_FLAG_CLICK_FOCUSABLE`)
 and not hidden (`LV_OBJ_FLAG_HIDDEN`) to be focusable by gridnav.
 
 
index 977363f..e45d1ca 100644 (file)
@@ -1,7 +1,3 @@
-```eval_rst
-.. include:: /header.rst 
-:github_url: |github_link_base|/others/index.md
-```
 # Others
 
 
@@ -9,9 +5,13 @@
 
 .. toctree::
    :maxdepth: 1
-   
+
    snapshot
    monkey
    gridnav
+   fragment
+   msg
+   imgfont
+   ime_pinyin
 ```
 
index fdde96d..f230d58 100644 (file)
@@ -1,7 +1,3 @@
-```eval_rst
-.. include:: /header.rst 
-:github_url: |github_link_base|/others/monkey.md
-```
 # Monkey
 
 A simple monkey test. Use random input to stress test the application.
index 149b90c..fc54ca3 100644 (file)
@@ -1,7 +1,3 @@
-```eval_rst
-.. include:: /header.rst 
-:github_url: |github_link_base|/others/snapshot.md
-```
 # Snapshot
 
 Snapshot provides APIs to take snapshot image for LVGL object together with its children. The image will look exactly like the object.
index 16d97bb..d4800e6 100644 (file)
@@ -1,7 +1,3 @@
-```eval_rst
-.. include:: /header.rst 
-:github_url: |github_link_base|/overview/animation.md
-```
 # Animations
 
 You can automatically change the value of a variable between a start and an end value using animations.
@@ -29,10 +25,10 @@ lv_anim_init(&a);
  *------------------*/
 
 /*Set the "animator" function*/
-lv_anim_set_exec_cb(&a, (lv_anim_exec_xcb_t) lv_obj_set_x); 
+lv_anim_set_exec_cb(&a, (lv_anim_exec_xcb_t) lv_obj_set_x);
 
 /*Set target of the animation*/
-lv_anim_set_var(&a, obj); 
+lv_anim_set_var(&a, obj);
 
 /*Length of the animation [ms]*/
 lv_anim_set_time(&a, duration);
@@ -52,6 +48,9 @@ lv_anim_set_path(&a, lv_anim_path_ease_in);
 /*Set a callback to indicate when the animation is ready (idle).*/
 lv_anim_set_ready_cb(&a, ready_cb);
 
+/*Set a callback to indicate when the animation is deleted (idle).*/
+lv_anim_set_deleted_cb(&a, deleted_cb);
+
 /*Set a callback to indicate when the animation is started (after delay).*/
 lv_anim_set_start_cb(&a, start_cb);
 
index 7de1a71..0ee97da 100644 (file)
@@ -1,7 +1,3 @@
-```eval_rst
-.. include:: /header.rst 
-:github_url: |github_link_base|/overview/color.md
-```
 # Colors
 
 The color module handles all color-related functions like changing color depth, creating colors from hex code, converting between color depths, mixing colors, etc.
@@ -19,10 +15,10 @@ Create colors from Red, Green and Blue channel values:
 lv_color_t c = lv_color_make(red, green, blue);
 
 //From hex code 0x000000..0xFFFFFF interpreted as RED + GREEN + BLUE
-lv_color_t c = lv_color_hex(0x123456); 
+lv_color_t c = lv_color_hex(0x123456);
 
 //From 3 digits. Same as lv_color_hex(0x112233)
-lv_color_t c = lv_color_hex3(0x123); 
+lv_color_t c = lv_color_hex3(0x123);
 ```
 
 ### HSV
index a14a380..5d56750 100644 (file)
@@ -1,7 +1,3 @@
-```eval_rst
-.. include:: /header.rst 
-:github_url: |github_link_base|/overview/coords.md
-```
 # Positions, sizes, and layouts
 
 ## Overview
@@ -10,11 +6,11 @@ Similarly to many other parts of LVGL, the concept of setting the coordinates wa
 In short this means:
 - Explicitly set coordinates are stored in styles (size, position, layouts, etc.)
 - support min-width, max-width, min-height, max-height
-- have pixel, percentage, and "content" units 
+- have pixel, percentage, and "content" units
 - x=0; y=0 coordinate means the top-left corner of the parent plus the left/top padding plus border width
-- width/height means the full size, the "content area" is smaller with padding and border width 
+- width/height means the full size, the "content area" is smaller with padding and border width
 - a subset of flexbox and grid layouts are supported
- 
+
 ###  Units
 - pixel: Simply a position in pixels. An integer always means pixels. E.g. `lv_obj_set_x(btn, 10)`
 - percentage: The percentage of the size of the object or its parent (depending on the property). `lv_pct(value)` converts a value to percentage. E.g. `lv_obj_set_width(btn, lv_pct(50))`
@@ -24,13 +20,13 @@ In short this means:
 LVGL follows CSS's [border-box](https://developer.mozilla.org/en-US/docs/Web/CSS/box-sizing) model.
 An object's "box" is built from the following parts:
 - bounding box: the width/height of the elements.
-- border width: the width of the border. 
-- padding: space between the sides of the object and its children. 
+- border width: the width of the border.
+- padding: space between the sides of the object and its children.
 - content: the content area which is the size of the bounding box reduced by the border width and padding.
 
 ![The box models of LVGL: The content area is smaller than the bounding box with the padding and border width](/misc/boxmodel.png)
 
-The border is drawn inside the bounding box. Inside the border LVGL keeps a "padding margin" when placing an object's children. 
+The border is drawn inside the bounding box. Inside the border LVGL keeps a "padding margin" when placing an object's children.
 
 The outline is drawn outside the bounding box.
 
@@ -38,19 +34,19 @@ The outline is drawn outside the bounding box.
 This section describes special cases in which LVGL's behavior might be unexpected.
 
 #### Postponed coordinate calculation
-LVGL doesn't recalculate all the coordinate changes immediately. This is done to improve performance. 
+LVGL doesn't recalculate all the coordinate changes immediately. This is done to improve performance.
 Instead, the objects are marked as "dirty" and before redrawing the screen LVGL checks if there are any "dirty" objects. If so it refreshes their position, size and layout.
 
-In other words, if you need to get the coordinate of an object and the coordinates were just changed, LVGL needs to be forced to recalculate the coordinates. 
+In other words, if you need to get the coordinate of an object and the coordinates were just changed, LVGL needs to be forced to recalculate the coordinates.
 To do this call `lv_obj_update_layout(obj)`.
 
 The size and position might depend on the parent or layout. Therefore `lv_obj_update_layout` recalculates the coordinates of all objects on the screen of `obj`.
 
 #### Removing styles
-As it's described in the [Using styles](#using-styles) section, coordinates can also be set via style properties. 
+As it's described in the [Using styles](#using-styles) section, coordinates can also be set via style properties.
 To be more precise, under the hood every style coordinate related property is stored as a style property. If you use `lv_obj_set_x(obj, 20)` LVGL saves `x=20` in the local style of the object.
 
-This is an internal mechanism and doesn't matter much as you use LVGL. However, there is one case in which you need to be aware of the implementation. If the style(s) of an object are removed by 
+This is an internal mechanism and doesn't matter much as you use LVGL. However, there is one case in which you need to be aware of the implementation. If the style(s) of an object are removed by
 ```c
 lv_obj_remove_style_all(obj)
 ```
@@ -83,20 +79,20 @@ lv_obj_set_y(obj, 20);
 lv_obj_set_pos(obj, 10, 20);   //Or in one function
 ```
 
-By default, the x and y coordinates are measured from the top left corner of the parent's content area. 
+By default, the x and y coordinates are measured from the top left corner of the parent's content area.
 For example if the parent has five pixels of padding on every side the above code will place `obj` at (15, 25) because the content area starts after the padding.
 
-Percentage values are calculated from the parent's content area size. 
+Percentage values are calculated from the parent's content area size.
 ```c
 lv_obj_set_x(btn, lv_pct(10)); //x = 10 % of parent content area width
 ```
 
 ### Align
-In some cases it's convenient to change the origin of the positioning from the default top left. If the origin is changed e.g. to bottom-right, the (0,0) position means: align to the bottom-right corner. 
+In some cases it's convenient to change the origin of the positioning from the default top left. If the origin is changed e.g. to bottom-right, the (0,0) position means: align to the bottom-right corner.
 To change the origin use:
 ```c
 lv_obj_set_align(obj, align);
-``` 
+```
 
 To change the alignment and set new coordinates:
 ```c
@@ -149,7 +145,7 @@ For example to align a label above a button and center the label horizontally:
 lv_obj_align_to(label, btn, LV_ALIGN_OUT_TOP_MID, 0, -10);
 ```
 
-Note that, unlike with `lv_obj_align()`, `lv_obj_align_to()` can not realign the object if its coordinates or the reference object's coordinates change. 
+Note that, unlike with `lv_obj_align()`, `lv_obj_align_to()` can not realign the object if its coordinates or the reference object's coordinates change.
 
 ## Size
 
@@ -166,7 +162,7 @@ Percentage values are calculated based on the parent's content area size. For ex
 lv_obj_set_height(obj, lv_pct(100));
 ```
 
-The size settings support a special value: `LV_SIZE_CONTENT`. It means the object's size in the respective direction will be set to the size of its children. 
+The size settings support a special value: `LV_SIZE_CONTENT`. It means the object's size in the respective direction will be set to the size of its children.
 Note that only children on the right and bottom sides will be considered and children on the top and left remain cropped. This limitation makes the behavior more predictable.
 
 Objects with `LV_OBJ_FLAG_HIDDEN` or `LV_OBJ_FLAG_FLOATING` will be ignored by the `LV_SIZE_CONTENT` calculation.
@@ -186,15 +182,15 @@ lv_coord_t content_h = lv_obj_get_content_height(obj);
 ```
 
 ## Using styles
-Under the hood the position, size and alignment properties are style properties. 
+Under the hood the position, size and alignment properties are style properties.
 The above described "simple functions" hide the style related code for the sake of simplicity and set the position, size, and alignment properties in the local styles of the object.
 
 However, using styles to set the coordinates has some great advantages:
-- It makes it easy to set the width/height/etc. for several objects together. E.g. make all the sliders 100x10 pixels sized. 
+- It makes it easy to set the width/height/etc. for several objects together. E.g. make all the sliders 100x10 pixels sized.
 - It also makes possible to modify the values in one place.
 - The values can be partially overwritten by other styles. For example `style_btn` makes the object `100x50` by default but adding `style_full_width` overwrites only the width of the object.
 - The object can have different position or size depending on state. E.g. 100 px wide in `LV_STATE_DEFAULT` but 120 px in `LV_STATE_PRESSED`.
-- Style transitions can be used to make the coordinate changes smooth. 
+- Style transitions can be used to make the coordinate changes smooth.
 
 
 Here are some examples to set an object's size using a style:
@@ -207,13 +203,13 @@ lv_obj_t * btn = lv_btn_create(lv_scr_act());
 lv_obj_add_style(btn, &style, LV_PART_MAIN);
 ```
 
-As you will see below there are some other great features of size and position setting. 
-However, to keep the LVGL API lean, only the most common coordinate setting features have a "simple" version and the more complex features can be used via styles. 
+As you will see below there are some other great features of size and position setting.
+However, to keep the LVGL API lean, only the most common coordinate setting features have a "simple" version and the more complex features can be used via styles.
 
 ## Translation
 
-Let's say the there are 3 buttons next to each other. Their position is set as described above. 
-Now you want to move a button up a little when it's pressed. 
+Let's say the there are 3 buttons next to each other. Their position is set as described above.
+Now you want to move a button up a little when it's pressed.
 
 One way to achieve this is by setting a new Y coordinate for the pressed state:
 ```c
@@ -255,7 +251,7 @@ lv_obj_add_style(btn3, &style_normal, LV_STATE_DEFAULT);
 lv_obj_add_style(btn3, &style_pressed, LV_STATE_PRESSED);
 ```
 
-Translation is applied from the current position of the object. 
+Translation is applied from the current position of the object.
 
 Percentage values can be used in translations as well. The percentage is relative to the size of the object (and not to the size of the parent). For example `lv_pct(50)` will move the object with half of its width/height.
 
@@ -265,11 +261,11 @@ The translation actually moves the object. That means it makes the scrollbars an
 
 
 ## Transformation
-Similarly to position, an object's size can be changed relative to the current size as well. 
+Similarly to position, an object's size can be changed relative to the current size as well.
 The transformed width and height are added on both sides of the object. This means a 10 px transformed width makes the object 2x10 pixels wider.
 
-Unlike position translation, the size transformation doesn't make the object "really" larger. In other words scrollbars, layouts, and `LV_SIZE_CONTENT` will not react to the transformed size. 
-Hence, size transformation is "only" a visual effect. 
+Unlike position translation, the size transformation doesn't make the object "really" larger. In other words scrollbars, layouts, and `LV_SIZE_CONTENT` will not react to the transformed size.
+Hence, size transformation is "only" a visual effect.
 
 This code enlarges a button when it's pressed:
 ```c
@@ -282,7 +278,7 @@ lv_obj_add_style(btn, &style_pressed, LV_STATE_PRESSED);
 ```
 
 ### Min and Max size
-Similarly to CSS, LVGL also supports `min-width`, `max-width`, `min-height` and `max-height`. These are limits preventing an object's size from becoming smaller/larger than these values. 
+Similarly to CSS, LVGL also supports `min-width`, `max-width`, `min-height` and `max-height`. These are limits preventing an object's size from becoming smaller/larger than these values.
 They are especially useful if the size is set by percentage or `LV_SIZE_CONTENT`.
 ```c
 static lv_style_t style_max_height;
@@ -306,9 +302,9 @@ lv_obj_add_style(obj, &style_max_height, LV_STATE_DEFAULT); //Limit the height t
 ## Layout
 
 ### Overview
-Layouts can update the position and size of an object's children. They can be used to automatically arrange the children into a line or column, or in much more complicated forms. 
+Layouts can update the position and size of an object's children. They can be used to automatically arrange the children into a line or column, or in much more complicated forms.
 
-The position and size set by the layout overwrites the "normal" x, y, width, and height settings. 
+The position and size set by the layout overwrites the "normal" x, y, width, and height settings.
 
 There is only one function that is the same for every layout: `lv_obj_set_layout(obj, <LAYOUT_NAME>)` sets the layout on an object.
 For further settings of the parent and children see the documentation of the given layout.
index 92112c6..b756b77 100644 (file)
@@ -1,7 +1,3 @@
-```eval_rst
-.. include:: /header.rst 
-:github_url: |github_link_base|/overview/display.md
-```
 # Displays
 
 ``` important:: The basic concept of a *display* in LVGL is explained in the [Porting](/porting/display) section. So before reading further, please read the [Porting](/porting/display) section first.
@@ -9,7 +5,7 @@
 
 ## Multiple display support
 
-In LVGL you can have multiple displays, each with their own driver and objects. The only limitation is that every display needs to have the same color depth (as defined in `LV_COLOR_DEPTH`). 
+In LVGL you can have multiple displays, each with their own driver and objects. The only limitation is that every display needs to have the same color depth (as defined in `LV_COLOR_DEPTH`).
 If the displays are different in this regard the rendered image can be converted to the correct format in the drivers `flush_cb`.
 
 Creating more displays is easy: just initialize more display buffers and register another driver for every display.
@@ -61,17 +57,16 @@ Screens can be deleted with `lv_obj_del(scr)`, but ensure that you do not delete
 
 ### Transparent screens
 
-Usually, the opacity of the screen is `LV_OPA_COVER` to provide a solid background for its children. If this is not the case (opacity &lt; 100%) the display's background color or image will be visible. 
-See the [Display background](#display-background) section for more details. If the display's background opacity is also not `LV_OPA_COVER` LVGL has no solid background to draw. 
+Usually, the opacity of the screen is `LV_OPA_COVER` to provide a solid background for its children. If this is not the case (opacity &lt; 100%) the display's background color or image will be visible.
+See the [Display background](#display-background) section for more details. If the display's background opacity is also not `LV_OPA_COVER` LVGL has no solid background to draw.
 
 This configuration (transparent screen and display) could be used to create for example OSD menus where a video is played on a lower layer, and a menu is overlayed on an upper layer.
- 
-To handle transparent displays, special (slower) color mixing algorithms need to be used by LVGL so this feature needs to enabled with `LV_COLOR_SCREEN_TRANSP` in `lv_conf.h`. 
-As this mode operates on the Alpha channel of the pixels `LV_COLOR_DEPTH = 32` is also required. The Alpha channel of 32-bit colors will be 0 where there are no objects and 255 where there are solid objects.
+
+To handle transparent displays, special (slower) color mixing algorithms need to be used by LVGL so this feature needs to enabled with `LV_COLOR_SCREEN_TRANSP` in `lv_conf.h`.
+The Alpha channel of 32-bit colors will be 0 where there are no objects and 255 where there are solid objects.
 
 In summary, to enable transparent screens and displays for OSD menu-like UIs:
 - Enable `LV_COLOR_SCREEN_TRANSP` in `lv_conf.h`
-- Be sure to use `LV_COLOR_DEPTH 32`
 - Set the screen's opacity to `LV_OPA_TRANSP` e.g. with `lv_obj_set_style_local_bg_opa(lv_scr_act(), LV_OBJMASK_PART_MAIN, LV_STATE_DEFAULT, LV_OPA_TRANSP)`
 - Set the display opacity to `LV_OPA_TRANSP` with `lv_disp_set_bg_opa(NULL, LV_OPA_TRANSP);`
 
@@ -92,7 +87,7 @@ The background color is a simple color to fill the display. It can be adjusted w
 The display background image is a path to a file or a pointer to an `lv_img_dsc_t` variable (converted image data) to be used as wallpaper. It can be set with `lv_disp_set_bg_image(disp, &my_img)`;
 If a background image is configured the background won't be filled with `bg_color`.
 
-The opacity of the background color or image can be adjusted with `lv_disp_set_bg_opa(disp, opa)`. 
+The opacity of the background color or image can be adjusted with `lv_disp_set_bg_opa(disp, opa)`.
 
 The `disp` parameter of these functions can be `NULL` to select the default display.
 
index 2da0b12..d1b2d7a 100644 (file)
@@ -1,24 +1,20 @@
-```eval_rst
-.. include:: /header.rst 
-:github_url: |github_link_base|/overview/drawing.md
-```
 # Drawing
 
 With LVGL, you don't need to draw anything manually. Just create objects (like buttons, labels, arc, etc.), move and change them, and LVGL will refresh and redraw what is required.
 
 However, it can be useful to have a basic understanding of how drawing happens in LVGL to add customization, make it easier to find bugs or just out of curiosity.
 
-The basic concept is to not draw directly onto the display but rather to first draw on an internal draw buffer. When a drawing (rendering) is ready that buffer is copied to the display. 
+The basic concept is to not draw directly onto the display but rather to first draw on an internal draw buffer. When a drawing (rendering) is ready that buffer is copied to the display.
 
 The draw buffer can be smaller than a display's size. LVGL will simply render in "tiles" that fit into the given draw buffer.
 
 This approach has two main advantages compared to directly drawing to the display:
 1. It avoids flickering while the layers of the UI are drawn. For example, if LVGL drew directly onto the display, when drawing a *background + button + text*, each "stage" would be visible for a short time.
-2. It's faster to modify a buffer in internal RAM and finally write one pixel only once than reading/writing the display directly on each pixel access. 
-(e.g. via a display controller with SPI interface). 
+2. It's faster to modify a buffer in internal RAM and finally write one pixel only once than reading/writing the display directly on each pixel access.
+(e.g. via a display controller with SPI interface).
 
-Note that this concept is different from "traditional" double buffering where there are two display sized frame buffers: 
-one holds the current image to show on the display, and rendering happens to the other (inactive) frame buffer, and they are swapped when the rendering is finished. 
+Note that this concept is different from "traditional" double buffering where there are two display sized frame buffers:
+one holds the current image to show on the display, and rendering happens to the other (inactive) frame buffer, and they are swapped when the rendering is finished.
 The main difference is that with LVGL you don't have to store two frame buffers (which usually requires external RAM) but only smaller draw buffer(s) that can easily fit into internal RAM.
 
 
@@ -35,7 +31,7 @@ LVGL refreshes the screen in the following steps:
     - Objects on other screens are not added.
 3. In every `LV_DISP_DEF_REFR_PERIOD` (set in `lv_conf.h`) the following happens:
     - LVGL checks the invalid areas and joins those that are adjacent or intersecting.
-    - Takes the first joined area, if it's smaller than the *draw buffer*, then simply renders the area's content into the *draw buffer*. 
+    - Takes the first joined area, if it's smaller than the *draw buffer*, then simply renders the area's content into the *draw buffer*.
       If the area doesn't fit into the buffer, draw as many lines as possible to the *draw buffer*.
     - When the area is rendered, call `flush_cb` from the display driver to refresh the display.
     - If the area was larger than the buffer, render the remaining parts too.
@@ -50,27 +46,27 @@ The difference between buffering modes regarding the drawing mechanism is the fo
 3. **Double buffering** -  `flush_cb` should only swap the addresses of the frame buffers.
 
 ## Masking
-*Masking* is the basic concept of LVGL's draw engine. 
-To use LVGL it's not required to know about the mechanisms described here but you might find interesting to know how drawing works under hood. 
+*Masking* is the basic concept of LVGL's draw engine.
+To use LVGL it's not required to know about the mechanisms described here but you might find interesting to know how drawing works under hood.
 Knowing about masking comes in handy if you want to customize drawing.
 
-To learn about masking let's see the steps of drawing first. 
+To learn about masking let's see the steps of drawing first.
 LVGL performs the following steps to render any shape, image or text. It can be considered as a drawing pipeline.
 
-1. **Prepare the draw descriptors** Create a draw descriptor from an object's styles (e.g. `lv_draw_rect_dsc_t`).  This gives us the parameters for drawing, for example colors, widths, opacity, fonts, radius, etc. 
-2. **Call the draw function** Call the draw function with the draw descriptor and some other parameters (e.g. `lv_draw_rect()`).  It will render the primitive shape to the current draw buffer. 
+1. **Prepare the draw descriptors** Create a draw descriptor from an object's styles (e.g. `lv_draw_rect_dsc_t`).  This gives us the parameters for drawing, for example colors, widths, opacity, fonts, radius, etc.
+2. **Call the draw function** Call the draw function with the draw descriptor and some other parameters (e.g. `lv_draw_rect()`).  It will render the primitive shape to the current draw buffer.
 3. **Create masks** If the shape is very simple and doesn't require masks, go to #5. Otherwise, create the required masks in the draw function. (e.g. a rounded rectangle mask)
-4. **Calculate all the added mask** It composites opacity values into a *mask buffer* with the "shape" of the created masks. 
+4. **Calculate all the added mask** It composites opacity values into a *mask buffer* with the "shape" of the created masks.
 E.g. in case of a "line mask" according to the parameters of the mask, keep one side of the buffer as it is (255 by default) and set the rest to 0 to indicate that this side should be removed.
 5. **Blend a color or image** During blending, masking (make some pixels transparent or opaque), blending modes (additive, subtractive, etc.) and color/image opacity are handled.
 
 LVGL has the following built-in mask types which can be calculated and applied real-time:
-- `LV_DRAW_MASK_TYPE_LINE` Removes a side from a line (top, bottom, left or right). `lv_draw_line` uses four instances of it. 
+- `LV_DRAW_MASK_TYPE_LINE` Removes a side from a line (top, bottom, left or right). `lv_draw_line` uses four instances of it.
 Essentially, every (skew) line is bounded with four line masks forming a rectangle.
-- `LV_DRAW_MASK_TYPE_RADIUS` Removes the inner or outer corners of a rectangle with a radiused transition. It's also used to create circles by setting the radius to large value (`LV_RADIUS_CIRCLE`) 
-- `LV_DRAW_MASK_TYPE_ANGLE` Removes a circular sector. It is used by `lv_draw_arc` to remove the "empty" sector. 
-- `LV_DRAW_MASK_TYPE_FADE` Create a vertical fade (change opacity) 
-- `LV_DRAW_MASK_TYPE_MAP` The mask is stored in a bitmap array and the necessary parts are applied 
+- `LV_DRAW_MASK_TYPE_RADIUS` Removes the inner or outer corners of a rectangle with a radiused transition. It's also used to create circles by setting the radius to large value (`LV_RADIUS_CIRCLE`)
+- `LV_DRAW_MASK_TYPE_ANGLE` Removes a circular sector. It is used by `lv_draw_arc` to remove the "empty" sector.
+- `LV_DRAW_MASK_TYPE_FADE` Create a vertical fade (change opacity)
+- `LV_DRAW_MASK_TYPE_MAP` The mask is stored in a bitmap array and the necessary parts are applied
 
 Masks are used to create almost every basic primitive:
 - **letters** Create a mask from the letter and draw a rectangle with the letter's color using the mask.
@@ -91,18 +87,18 @@ Every mask type has a related parameter structure to describe the mask's data. T
 - `lv_draw_mask_map_param_t`
 
 1. Initialize a mask parameter with `lv_draw_mask_<type>_init`. See `lv_draw_mask.h` for the whole API.
-2. Add the mask parameter to the draw engine with `int16_t mask_id = lv_draw_mask_add(&param, ptr)`. `ptr` can be any pointer to identify the mask, (`NULL` if unused). 
+2. Add the mask parameter to the draw engine with `int16_t mask_id = lv_draw_mask_add(&param, ptr)`. `ptr` can be any pointer to identify the mask, (`NULL` if unused).
 3. Call the draw functions
 4. Remove the mask from the draw engine with `lv_draw_mask_remove_id(mask_id)` or `lv_draw_mask_remove_custom(ptr)`.
 5. Free the parameter with `lv_draw_mask_free_param(&param)`.
 
-A parameter can be added and removed any number of times, but it needs to be freed when not required anymore. 
+A parameter can be added and removed any number of times, but it needs to be freed when not required anymore.
 
-`lv_draw_mask_add` saves only the pointer of the mask so the parameter needs to be valid while in use. 
+`lv_draw_mask_add` saves only the pointer of the mask so the parameter needs to be valid while in use.
 
 ## Hook drawing
-Although widgets can be easily customized by styles there might be cases when something more custom is required. 
-To ensure a great level of flexibility LVGL sends a lot of events during drawing with parameters that tell what LVGL is about to draw. 
+Although widgets can be easily customized by styles there might be cases when something more custom is required.
+To ensure a great level of flexibility LVGL sends a lot of events during drawing with parameters that tell what LVGL is about to draw.
 Some fields of these parameters can be modified to draw something else or any custom drawing operations can be added manually.
 
 A good use case for this is the [Button matrix](/widgets/core/btnmatrix) widget. By default, its buttons can be styled in different states, but you can't style the buttons one by one.
@@ -114,7 +110,7 @@ Each of these events is described in detail below.
 
 These events are related to the actual drawing of an object. E.g. the drawing of buttons, texts, etc. happens here.
 
-`lv_event_get_clip_area(event)` can be used to get the current clip area. The clip area is required in draw functions to make them draw only on a limited area. 
+`lv_event_get_clip_area(event)` can be used to get the current clip area. The clip area is required in draw functions to make them draw only on a limited area.
 
 #### LV_EVENT_DRAW_MAIN_BEGIN
 
@@ -131,7 +127,7 @@ Called when the main drawing is finished. You can draw anything here as well and
 
 ### Post drawing
 
-Post drawing events are called when all the children of an object are drawn. For example LVGL use the post drawing phase to draw scrollbars because they should be above all of the children. 
+Post drawing events are called when all the children of an object are drawn. For example LVGL use the post drawing phase to draw scrollbars because they should be above all of the children.
 
 `lv_event_get_clip_area(event)` can be used to get the current clip area.
 
@@ -152,7 +148,7 @@ Called when post drawing has finished. If masks were not removed in `LV_EVENT_DR
 When LVGL draws a part of an object (e.g. a slider's indicator, a table's cell or a button matrix's button) it sends events before and after drawing that part with some context of the drawing.
 This allows changing the parts on a very low level with masks, extra drawing, or changing the parameters that LVGL is planning to use for drawing.
 
-In these events an `lv_obj_draw_part_t` structure is used to describe the context of the drawing. Not all fields are set for every part and widget. 
+In these events an `lv_obj_draw_part_t` structure is used to describe the context of the drawing. Not all fields are set for every part and widget.
 To see which fields are set for a widget refer to the widget's documentation.
 
 `lv_obj_draw_part_t` has the following fields:
@@ -170,14 +166,14 @@ lv_draw_line_dsc_t * line_dsc;      // A draw descriptor that can be modified to
 lv_draw_img_dsc_t *  img_dsc;       // A draw descriptor that can be modified to changed what LVGL will draw. Set only for image-like parts
 lv_draw_arc_dsc_t *  arc_dsc;       // A draw descriptor that can be modified to changed what LVGL will draw. Set only for arc-like parts
 
-// Other parameters 
+// Other parameters
 lv_area_t * draw_area;              // The area of the part being drawn
 const lv_point_t * p1;              // A point calculated during drawing. E.g. a point of a chart or the center of an arc.
 const lv_point_t * p2;              // A point calculated during drawing. E.g. a point of a chart.
 char text[16];                      // A text calculated during drawing. Can be modified. E.g. tick labels on a chart axis.
 lv_coord_t radius;                  // E.g. the radius of an arc (not the corner radius).
 int32_t value;                      // A value calculated during drawing. E.g. Chart's tick line value.
-const void * sub_part_ptr;          // A pointer the identifies something in the part. E.g. chart series. 
+const void * sub_part_ptr;          // A pointer the identifies something in the part. E.g. chart series.
 ```
 
 `lv_event_get_draw_part_dsc(event)` can be used to get a pointer to `lv_obj_draw_part_t`.
@@ -185,16 +181,16 @@ const void * sub_part_ptr;          // A pointer the identifies something in the
 #### LV_EVENT_DRAW_PART_BEGIN
 
 Start the drawing of a part. This is a good place to modify the draw descriptors (e.g. `rect_dsc`), or add masks.
- 
+
 #### LV_EVENT_DRAW_PART_END
- 
+
 Finish the drawing of a part. This is a good place to draw extra content on the part or remove masks added in `LV_EVENT_DRAW_PART_BEGIN`.
 
 ### Others
 
-#### LV_EVENT_COVER_CHECK   
+#### LV_EVENT_COVER_CHECK
 
-This event is used to check whether an object fully covers an area or not. 
+This event is used to check whether an object fully covers an area or not.
 
 `lv_event_get_cover_area(event)` returns a pointer to an area to check and `lv_event_set_cover_res(event, res)` can be used to set one of these results:
 - `LV_COVER_RES_COVER` the area is fully covered by the object
@@ -207,19 +203,19 @@ Here are some reasons why an object would be unable to fully cover an area:
 - It doesn't have 100% background opacity
 - It's an ARGB or chroma keyed image
 - It does not have normal blending mode. In this case LVGL needs to know the colors under the object to apply blending properly
-- It's a text, etc 
+- It's a text, etc
 
 In short if for any reason the area below an object is visible than the object doesn't cover that area.
 
 Before sending this event LVGL checks if at least the widget's coordinates fully cover the area or not. If not the event is not called.
 
-You need to check only the drawing you have added. The existing properties known by a widget are handled in its internal events. 
-E.g. if a widget has &gt; 0 radius it might not cover an area, but you need to handle `radius` only if you will modify it and the widget won't know about it. 
+You need to check only the drawing you have added. The existing properties known by a widget are handled in its internal events.
+E.g. if a widget has &gt; 0 radius it might not cover an area, but you need to handle `radius` only if you will modify it and the widget won't know about it.
 
 #### LV_EVENT_REFR_EXT_DRAW_SIZE
 
-If you need to draw outside a widget, LVGL needs to know about it to provide extra space for drawing. 
+If you need to draw outside a widget, LVGL needs to know about it to provide extra space for drawing.
 Let's say you create an event which writes the current value of a slider above its knob. In this case LVGL needs to know that the slider's draw area should be larger with the size required for the text.
 
-You can simply set the required draw area with `lv_event_set_ext_draw_size(e, size)`. 
+You can simply set the required draw area with `lv_event_set_ext_draw_size(e, size)`.
 
index 8813ee7..e6dd730 100644 (file)
@@ -1,7 +1,3 @@
-```eval_rst
-.. include:: /header.rst 
-:github_url: |github_link_base|/overview/event.md
-```
 # Events
 
 Events are triggered in LVGL when something happens which might be interesting to the user, e.g. when an object
@@ -42,7 +38,7 @@ lv_obj_add_event_cb(obj, increment_on_click, LV_EVENT_CLICKED, &num1);
 lv_obj_add_event_cb(obj, increment_on_click, LV_EVENT_CLICKED, &num2);
 ```
 
-The events will be called in the order as they were added. 
+The events will be called in the order as they were added.
 
 
 Other objects can use the same *event callback*.
@@ -50,7 +46,7 @@ Other objects can use the same *event callback*.
 
 ## Remove event(s) from an object
 
-Events can be removed from an object with the `lv_obj_remove_event_cb(obj, event_cb)` function or `lv_obj_remove_event_dsc(obj, event_dsc)`. `event_dsc` is a pointer returned by `lv_obj_add_event_cb`. 
+Events can be removed from an object with the `lv_obj_remove_event_cb(obj, event_cb)` function or `lv_obj_remove_event_dsc(obj, event_dsc)`. `event_dsc` is a pointer returned by `lv_obj_add_event_cb`.
 
 ## Event codes
 
@@ -61,9 +57,9 @@ The event codes can be grouped into these categories:
 - Special events
 - Custom events
 
-All objects (such as Buttons/Labels/Sliders etc.) regardless their type receive the *Input device*, *Drawing* and *Other* events. 
+All objects (such as Buttons/Labels/Sliders etc.) regardless their type receive the *Input device*, *Drawing* and *Other* events.
 
-However, the *Special events* are specific to a particular widget type. See the [widgets' documentation](/widgets/index) to learn when they are sent, 
+However, the *Special events* are specific to a particular widget type. See the [widgets' documentation](/widgets/index) to learn when they are sent,
 
 *Custom events* are added by the user and are never sent by LVGL.
 
@@ -72,21 +68,21 @@ The following event codes exist:
 ### Input device events
 - `LV_EVENT_PRESSED`      An object has been pressed
 - `LV_EVENT_PRESSING`     An object is being pressed (called continuously while pressing)
-- `LV_EVENT_PRESS_LOST`   An object is still being pressed but slid cursor/finger off of the object 
+- `LV_EVENT_PRESS_LOST`   An object is still being pressed but slid cursor/finger off of the object
 - `LV_EVENT_SHORT_CLICKED`    An object was pressed for a short period of time, then released. Not called if scrolled.
 - `LV_EVENT_LONG_PRESSED` An object has been pressed for at least the `long_press_time` specified in the input device driver.  Not called if scrolled.
 - `LV_EVENT_LONG_PRESSED_REPEAT`  Called after `long_press_time` in every `long_press_repeat_time` ms.  Not called if scrolled.
 - `LV_EVENT_CLICKED`      Called on release if an object did not scroll (regardless of long press)
 - `LV_EVENT_RELEASED`     Called in every case when an object has been released
-- `LV_EVENT_SCROLL_BEGIN` Scrolling begins. The event parameter is `NULL` or an `lv_anim_t *` with a scroll animation descriptor that can be modified if required. 
+- `LV_EVENT_SCROLL_BEGIN` Scrolling begins. The event parameter is `NULL` or an `lv_anim_t *` with a scroll animation descriptor that can be modified if required.
 - `LV_EVENT_SCROLL_END`   Scrolling ends.
 - `LV_EVENT_SCROLL`       An object was scrolled
 - `LV_EVENT_GESTURE`      A gesture is detected. Get the gesture with `lv_indev_get_gesture_dir(lv_indev_get_act());`
 - `LV_EVENT_KEY`          A key is sent to an object. Get the key with `lv_indev_get_key(lv_indev_get_act());`
-- `LV_EVENT_FOCUSED`      An object is focused 
+- `LV_EVENT_FOCUSED`      An object is focused
 - `LV_EVENT_DEFOCUSED`    An object is unfocused
 - `LV_EVENT_LEAVE`        An object is unfocused but still selected
-- `LV_EVENT_HIT_TEST`     Perform advanced hit-testing. Use `lv_hit_test_info_t * a = lv_event_get_hit_test_info(e)` and check if `a->point` can click the object or not. If not set `a->res = false` 
+- `LV_EVENT_HIT_TEST`     Perform advanced hit-testing. Use `lv_hit_test_info_t * a = lv_event_get_hit_test_info(e)` and check if `a->point` can click the object or not. If not set `a->res = false`
 
 
 ### Drawing events
@@ -102,7 +98,7 @@ The following event codes exist:
 - `LV_EVENT_DRAW_PART_END`   Finishing to draw a part. The event parameter is `lv_obj_draw_dsc_t *`. Learn more [here](/overview/drawing).
 
 In `LV_EVENT_DRAW_...` events it's not allowed to adjust the widgets' properties. E.g. you can not call `lv_obj_set_width()`.
-In other words only `get` functions can be called. 
+In other words only `get` functions can be called.
 
 ### Other events
 - `LV_EVENT_DELETE`       Object is being deleted
@@ -123,11 +119,11 @@ In other words only `get` functions can be called.
 - `LV_EVENT_INSERT`       Text is being inserted into the object. The event data is `char *` being inserted.
 - `LV_EVENT_REFRESH`      Notify the object to refresh something on it (for the user)
 - `LV_EVENT_READY`        A process has finished
-- `LV_EVENT_CANCEL`       A process has been canceled 
+- `LV_EVENT_CANCEL`       A process has been canceled
 
 
 ### Custom events
-Any custom event codes can be registered by `uint32_t MY_EVENT_1 = lv_event_register_id();` 
+Any custom event codes can be registered by `uint32_t MY_EVENT_1 = lv_event_register_id();`
 
 They can be sent to any object with `lv_event_send(obj, MY_EVENT_1, &some_data)`
 
@@ -157,14 +153,14 @@ lv_event_send(mbox, LV_EVENT_VALUE_CHANGED, &btn_id);
 - `lv_event_get_current_target(e)` get the object to which an event was sent. I.e. the object whose event handler is being called.
 - `lv_event_get_target(e)` get the object that originally triggered the event (different from `lv_event_get_target` if [event bubbling](#event-bubbling) is enabled)
 - `lv_event_get_user_data(e)` get the pointer passed as the last parameter of `lv_obj_add_event_cb`.
-- `lv_event_get_param(e)` get the parameter passed as the last parameter of `lv_event_send` 
+- `lv_event_get_param(e)` get the parameter passed as the last parameter of `lv_event_send`
 
 
 ## Event bubbling
 
-If `lv_obj_add_flag(obj, LV_OBJ_FLAG_EVENT_BUBBLE)` is enabled all events will be sent to an object's parent too. If the parent also has `LV_OBJ_FLAG_EVENT_BUBBLE` enabled the event will be sent to its parent and so on. 
+If `lv_obj_add_flag(obj, LV_OBJ_FLAG_EVENT_BUBBLE)` is enabled all events will be sent to an object's parent too. If the parent also has `LV_OBJ_FLAG_EVENT_BUBBLE` enabled the event will be sent to its parent and so on.
 
-The *target* parameter of the event is always the current target object, not the original object. To get the original target call `lv_event_get_original_target(e)` in the event handler.  
+The *target* parameter of the event is always the current target object, not the original object. To get the original target call `lv_event_get_original_target(e)` in the event handler.
 
 
 
index 5ef5bc5..34d3898 100644 (file)
@@ -1,7 +1,3 @@
-```eval_rst
-.. include:: /header.rst 
-:github_url: |github_link_base|/overview/file-system.md
-```
 # File system
 
 LVGL has a 'File system' abstraction module that enables you to attach any type of file system.
@@ -21,7 +17,7 @@ static lv_fs_drv_t drv;                   /*Needs to be static or global*/
 lv_fs_drv_init(&drv);                     /*Basic initialization*/
 
 drv.letter = 'S';                         /*An uppercase letter to identify the drive */
-drv.cache_size = my_cahce_size;           /*Cache size for reading in bytes. 0 to not cache.*/
+drv.cache_size = my_cache_size;           /*Cache size for reading in bytes. 0 to not cache.*/
 
 drv.ready_cb = my_ready_cb;               /*Callback to tell if the drive is ready to use */
 drv.open_cb = my_open_cb;                 /*Callback to open a file */
@@ -54,7 +50,7 @@ void * (*open_cb)(lv_fs_drv_t * drv, const char * path, lv_fs_mode_t mode);
 
 `path` is the path after the drive letter (e.g. "S:path/to/file.txt" -> "path/to/file.txt"). `mode` can be `LV_FS_MODE_WR` or `LV_FS_MODE_RD` to open for writes or reads.
 
-The return value is a pointer to a *file object* that describes the opened file or `NULL` if there were any issues (e.g. the file wasn't found). 
+The return value is a pointer to a *file object* that describes the opened file or `NULL` if there were any issues (e.g. the file wasn't found).
 The returned file object will be passed to other file system related callbacks. (see below)
 
 ### Other callbacks
@@ -63,7 +59,7 @@ The other callbacks are quite similar. For example `write_cb` looks like this:
 lv_fs_res_t (*write_cb)(lv_fs_drv_t * drv, void * file_p, const void * buf, uint32_t btw, uint32_t * bw);
 ```
 
-For `file_p`, LVGL passes the return value of `open_cb`, `buf` is the data to write, `btw` is the Bytes To Write, `bw` is the actually written bytes. 
+For `file_p`, LVGL passes the return value of `open_cb`, `buf` is the data to write, `btw` is the Bytes To Write, `bw` is the actually written bytes.
 
 For a template of these callbacks see [lv_fs_template.c](https://github.com/lvgl/lvgl/blob/master/examples/porting/lv_port_fs_template.c).
 
index df5cf0d..9e1265c 100644 (file)
@@ -1,10 +1,6 @@
-```eval_rst
-.. include:: /header.rst 
-:github_url: |github_link_base|/overview/font.md
-```
 # Fonts
 
-In LVGL fonts are collections of bitmaps and other information required to render images of individual letters (glyph). 
+In LVGL fonts are collections of bitmaps and other information required to render images of individual letters (glyph).
 A font is stored in a `lv_font_t` variable and can be set in a style's *text_font* field. For example:
 ```c
 lv_style_set_text_font(&my_style, &lv_font_montserrat_28);  /*Set a larger font*/
@@ -13,7 +9,7 @@ lv_style_set_text_font(&my_style, &lv_font_montserrat_28);  /*Set a larger font*
 Fonts have a **bpp (bits per pixel)** property. It shows how many bits are used to describe a pixel in a font. The value stored for a pixel determines the pixel's opacity.
 This way, with higher *bpp*, the edges of the letter can be smoother. The possible *bpp* values are 1, 2, 4 and 8 (higher values mean better quality).
 
-The *bpp* property also affects the amount of memory needed to store a font. For example, *bpp = 4* makes a font nearly four times larger compared to *bpp = 1*.  
+The *bpp* property also affects the amount of memory needed to store a font. For example, *bpp = 4* makes a font nearly four times larger compared to *bpp = 1*.
 
 ## Unicode support
 
@@ -54,7 +50,7 @@ Containing all the ASCII characters, the degree symbol (U+00B0), the bullet symb
 - `LV_FONT_MONTSERRAT_48` 48 px font
 
 ### Special fonts
-- `LV_FONT_MONTSERRAT_12_SUBPX` Same as normal 12 px font but with [subpixel rendering](#subpixel-rendering) 
+- `LV_FONT_MONTSERRAT_12_SUBPX` Same as normal 12 px font but with [subpixel rendering](#subpixel-rendering)
 - `LV_FONT_MONTSERRAT_28_COMPRESSED` Same as normal 28 px font but stored as a [compressed font](#compress-fonts) with 3 bpp
 - `LV_FONT_DEJAVU_16_PERSIAN_HEBREW` 16 px font with normal range + Hebrew, Arabic, Persian letters and all their forms
 - `LV_FONT_SIMSUN_16_CJK`16 px font with normal range plus 1000 of the most common CJK radicals
@@ -75,7 +71,7 @@ The symbols can be used singly as:
 lv_label_set_text(my_label, LV_SYMBOL_OK);
 ```
 
-Or with together with strings (compile time string concatenation):
+Or together with strings (compile time string concatenation):
 ```c
 lv_label_set_text(my_label, LV_SYMBOL_OK "Apply");
 ```
@@ -88,7 +84,7 @@ lv_label_set_text(my_label, LV_SYMBOL_OK LV_SYMBOL_WIFI LV_SYMBOL_PLAY);
 ## Special features
 
 ### Bidirectional support
-Most languages use a Left-to-Right (LTR for short) writing direction, however some languages (such as Hebrew, Persian or Arabic) use Right-to-Left (RTL for short) direction. 
+Most languages use a Left-to-Right (LTR for short) writing direction, however some languages (such as Hebrew, Persian or Arabic) use Right-to-Left (RTL for short) direction.
 
 LVGL not only supports RTL texts but supports mixed (a.k.a. bidirectional, BiDi) text rendering too. Some examples:
 
@@ -97,8 +93,8 @@ LVGL not only supports RTL texts but supports mixed (a.k.a. bidirectional, BiDi)
 BiDi support is enabled by `LV_USE_BIDI` in *lv_conf.h*
 
 All texts have a base direction (LTR or RTL) which determines some rendering rules and the default alignment of the text (Left or Right).
-However, in LVGL, the base direction is not only applied to labels. It's a general property which can be set for every object. 
-If not set then it will be inherited from the parent. 
+However, in LVGL, the base direction is not only applied to labels. It's a general property which can be set for every object.
+If not set then it will be inherited from the parent.
 This means it's enough to set the base direction of a screen and every object will inherit it.
 
 The default base direction for screens can be set by `LV_BIDI_BASE_DIR_DEF` in *lv_conf.h* and other objects inherit the base direction from their parent.
@@ -119,12 +115,12 @@ This list summarizes the effect of RTL base direction on objects:
 - The texts in `lv_table`, `lv_btnmatrix`, `lv_keyboard`, `lv_tabview`, `lv_dropdown`, `lv_roller` are "BiDi processed" to be displayed correctly
 
 ### Arabic and Persian support
-There are some special rules to display Arabic and Persian characters: the *form* of a character depends on its position in the text. 
-A different form of the same letter needs to be used if is isolated, at start, middle or end positions. Besides these, some conjunction rules should also be taken into account.
+There are some special rules to display Arabic and Persian characters: the *form* of a character depends on its position in the text.
+A different form of the same letter needs to be used when it is isolated, at start, middle or end positions. Besides these, some conjunction rules should also be taken into account.
 
 LVGL supports these rules if `LV_USE_ARABIC_PERSIAN_CHARS` is enabled.
 
-However, there some limitations:
+However, there are some limitations:
 - Only displaying text is supported (e.g. on labels), text inputs (e.g. text area) don't support this feature.
 - Static text (i.e. const) is not processed. E.g. texts set by `lv_label_set_text()` will be "Arabic processed" but `lv_lable_set_text_static()` won't.
 - Text get functions (e.g. `lv_label_get_text()`) will return the processed text.
@@ -133,21 +129,21 @@ However, there some limitations:
 
 Subpixel rendering allows for tripling the horizontal resolution by rendering anti-aliased edges on Red, Green and Blue channels instead of at pixel level granularity. This takes advantage of the position of physical color channels of each pixel, resulting in higher quality letter anti-aliasing. Learn more [here](https://en.wikipedia.org/wiki/Subpixel_rendering).
 
-For subpixel rendering, the fonts need to be generated with special settings: 
+For subpixel rendering, the fonts need to be generated with special settings:
 - In the online converter tick the `Subpixel` box
 - In the command line tool use `--lcd` flag. Note that the generated font needs about three times more memory.
 
-Subpixel rendering works only if the color channels of the pixels have a horizontal layout. That is the R, G, B channels are next each other and not above each other. 
+Subpixel rendering works only if the color channels of the pixels have a horizontal layout. That is the R, G, B channels are next to each other and not above each other.
 The order of color channels also needs to match with the library settings. By default, LVGL assumes `RGB` order, however this can be swapped by setting `LV_SUBPX_BGR  1` in *lv_conf.h*.
 
 ### Compressed fonts
-The bitmaps of fonts can be compressed by 
+The bitmaps of fonts can be compressed by
 - ticking the `Compressed` check box in the online converter
-- not passing the `--no-compress` flag to the offline converter (compression is applied by default) 
+- not passing the `--no-compress` flag to the offline converter (compression is applied by default)
 
 Compression is more effective with larger fonts and higher bpp. However, it's about 30% slower to render compressed fonts.
-Therefore it's recommended to compress only the largest fonts of a user interface, because
-- they need the most memory 
+Therefore, it's recommended to compress only the largest fonts of a user interface, because
+- they need the most memory
 - they can be compressed better
 - and probably they are used less frequently then the medium-sized fonts, so the performance cost is smaller.
 
@@ -161,13 +157,13 @@ There are several ways to add a new font to your project:
 
 To declare a font in a file, use `LV_FONT_DECLARE(my_font_name)`.
 
-To make fonts globally available (like the builtin fonts), add them to `LV_FONT_CUSTOM_DECLARE` in *lv_conf.h*.
+To make fonts globally available (like the built-in fonts), add them to `LV_FONT_CUSTOM_DECLARE` in *lv_conf.h*.
 
 ## Add new symbols
-The built-in symbols are created from the [FontAwesome](https://fontawesome.com/) font. 
+The built-in symbols are created from the [FontAwesome](https://fontawesome.com/) font.
 
 1. Search for a symbol on [https://fontawesome.com](https://fontawesome.com). For example the [USB symbol](https://fontawesome.com/icons/usb?style=brands). Copy its Unicode ID which is `0xf287` in this case.
-2. Open the [Online font converter](https://lvgl.io/tools/fontconverter). Add [FontAwesome.woff](https://lvgl.io/assets/others/FontAwesome5-Solid+Brands+Regular.woff). . 
+2. Open the [Online font converter](https://lvgl.io/tools/fontconverter). Add [FontAwesome.woff](https://lvgl.io/assets/others/FontAwesome5-Solid+Brands+Regular.woff). .
 3. Set the parameters such as Name, Size, BPP. You'll use this name to declare and use the font in your code.
 4. Add the Unicode ID of the symbol to the range field. E.g.` 0xf287` for the USB symbol. More symbols can be enumerated with `,`.
 5. Convert the font and copy the generated source code to your project. Make sure to compile the .c file of your font.
@@ -178,10 +174,10 @@ The built-in symbols are created from the [FontAwesome](https://fontawesome.com/
 2. Create a `define` string from the UTF8 values: `#define MY_USB_SYMBOL "\xEF\x8A\x87"`
 3. Create a label and set the text. Eg. `lv_label_set_text(label, MY_USB_SYMBOL)`
 
-Note - `lv_label_set_text(label, MY_USB_SYMBOL)` searches for this symbol in the font defined in `style.text.font` properties. To use the symbol you may need to change it. Eg ` style.text.font = my_font_name` 
+Note - `lv_label_set_text(label, MY_USB_SYMBOL)` searches for this symbol in the font defined in `style.text.font` properties. To use the symbol you may need to change it. Eg ` style.text.font = my_font_name`
 
 ## Load a font at run-time
-`lv_font_load` can be used to load a font from a file. The font needs to have a special binary format. (Not TTF or WOFF). 
+`lv_font_load` can be used to load a font from a file. The font needs to have a special binary format. (Not TTF or WOFF).
 Use [lv_font_conv](https://github.com/lvgl/lv_font_conv/) with the `--format bin` option to generate an LVGL compatible font file.
 
 Note that to load a font [LVGL's filesystem](/overview/file-system) needs to be enabled and a driver must be added.
@@ -209,8 +205,8 @@ To do this, a custom `lv_font_t` variable needs to be created:
 ```c
 /*Describe the properties of a font*/
 lv_font_t my_font;
-my_font.get_glyph_dsc = my_get_glyph_dsc_cb;        /*Set a callback to get info about gylphs*/
-my_font.get_glyph_bitmap = my_get_glyph_bitmap_cb;  /*Set a callback to get bitmap of a glyp*/
+my_font.get_glyph_dsc = my_get_glyph_dsc_cb;        /*Set a callback to get info about glyphs*/
+my_font.get_glyph_bitmap = my_get_glyph_bitmap_cb;  /*Set a callback to get bitmap of a glyph*/
 my_font.line_height = height;                       /*The real line height where any text fits*/
 my_font.base_line = base_line;                      /*Base line measured from the top of line_height*/
 my_font.dsc = something_required;                   /*Store any implementation specific data here*/
@@ -254,7 +250,7 @@ const uint8_t * my_get_glyph_bitmap_cb(const lv_font_t * font, uint32_t unicode_
 
 ## Use font fallback
 
-You can specify `fallback` in `lv_font_t` to provide fallback to the font. When the font 
+You can specify `fallback` in `lv_font_t` to provide fallback to the font. When the font
 fails to find glyph to a letter, it will try to let font from `fallback` to handle.
 
 `fallback` can be chained, so it will try to solve until there is no `fallback` set.
index 3e18773..32d2641 100644 (file)
@@ -1,7 +1,3 @@
-```eval_rst
-.. include:: /header.rst 
-:github_url: |github_link_base|/overview/image.md
-```
 # Images
 
 An image can be a file or a variable which stores the bitmap itself and some metadata.
@@ -267,8 +263,8 @@ To indicate that the *line read* function should be used, set `dsc->img_data = N
 
 LVGL will use registered image decoders automatically if you try and draw a raw image (i.e. using the `lv_img` object) but you can use them manually too. Create an `lv_img_decoder_dsc_t` variable to describe the decoding session and call `lv_img_decoder_open()`.
 
-The `color` parameter is used only with `LV_IMG_CF_ALPHA_1/2/4/8BIT` images to tell color of the image. 
-`frame_id` can be used if the image to open is an animation. 
+The `color` parameter is used only with `LV_IMG_CF_ALPHA_1/2/4/8BIT` images to tell color of the image.
+`frame_id` can be used if the image to open is an animation.
 
 
 ```c
index e10c0f2..87428ac 100644 (file)
@@ -1,7 +1,3 @@
-```eval_rst
-.. include:: /header.rst 
-:github_url: |github_link_base|/overview/indev.md
-```
 # Input devices
 
 An input device usually means:
@@ -66,6 +62,8 @@ To prevent passing the gesture event to the parent from an object use `lv_obj_cl
 
 Note that, gestures are not triggered if an object is being scrolled.
 
+If you did some action on a gesture you can call `lv_indev_wait_release(lv_indev_get_act())` in the event handler to prevent LVGL sending further input device related events. 
+
 ## Keypad and encoder
 
 You can fully control the user interface without a touchpad or mouse by using a keypad or encoder(s). It works similar to the *TAB* key on the PC to select an element in an application or a web page.
@@ -124,9 +122,9 @@ Don't forget to assign one or more input devices to the default group with ` lv_
 
 ### Styling
 
-If an object is focused either by clicking it via touchpad or focused via an encoder or keypad it goes to the `LV_STATE_FOCUSED` state. Hence, focused styles will be applied to it. 
+If an object is focused either by clicking it via touchpad or focused via an encoder or keypad it goes to the `LV_STATE_FOCUSED` state. Hence, focused styles will be applied to it.
 
-If an object switches to edit mode it enters the `LV_STATE_FOCUSED | LV_STATE_EDITED` states so these style properties will be shown. 
+If an object switches to edit mode it enters the `LV_STATE_FOCUSED | LV_STATE_EDITED` states so these style properties will be shown.
 
 For a more detailed description read the [Style](https://docs.lvgl.io/v7/en/html/overview/style.html) section.
 
index b0d806f..2b33ecd 100644 (file)
@@ -1,7 +1,3 @@
-```eval_rst
-.. include:: /header.rst 
-:github_url: |github_link_base|/overview/index.md
-```
 
 # Overview
 
@@ -27,6 +23,7 @@
    animation
    timer
    drawing
+   renderers/index
    new_widget
 ```
 
index fc68bf7..dd4301b 100644 (file)
@@ -1,7 +1,3 @@
-```eval_rst
-.. include:: /header.rst 
-:github_url: |github_link_base|/overview/layer.md
-```
 
 # Layers
 
@@ -12,7 +8,7 @@ By default, LVGL draws new objects on top of old objects.
 For example, assume we add a button to a parent object named button1 and then another button named button2. Then button1 (along with its child object(s)) will be in the background and can be covered by button2 and its children.
 
 
-![](/misc/layers.png "Creating graphical objects in LVGL")  
+![](/misc/layers.png "Creating graphical objects in LVGL")
 
 ```c
 /*Create a screen*/
@@ -38,11 +34,11 @@ lv_label_set_text(label2, "Button 2");              /*Set the text of the label*/
 lv_obj_del(label2);
 ```
 
-## Bring to the foreground
+## Change order
 
 There are four explicit ways to bring an object to the foreground:
 - Use `lv_obj_move_foreground(obj)` to bring an object to the foreground. Similarly, use `lv_obj_move_background(obj)` to move it to the background.
-- Use `lv_obj_move_up(obj)` to move an object one position up in the hierarchy, Similarly, use `lv_obj_move_down(obj)` to move an object one position down in the hierarchy. 
+- Use `lv_obj_move_to_index(obj, idx)` to move an object to a given index in the order of children. (0: backgroud, child_num - 1: foreground, <0: count from the top, to move forward (up): `lv_obj_move_to_index(obj, lv_obj_get_index(obj) - 1)`)
 - Use `lv_obj_swap(obj1, obj2)` to swap the relative layer position of two objects.
 - When `lv_obj_set_parent(obj, new_parent)` is used, `obj` will be on the foreground of the `new_parent`.
 
index 7761859..a2849dc 100644 (file)
@@ -1,7 +1,3 @@
-```eval_rst
-.. include:: /header.rst 
-:github_url: |github_link_base|/overview/object.md
-```
 # Objects
 
 In LVGL the **basic building blocks** of a user interface are the objects, also called *Widgets*.
@@ -73,7 +69,7 @@ lv_obj_set_pos(obj1, 10, 10);                      /*Set the position of the new
 
 Modify the position of the parent:
 
-![](/misc/par_child2.png "Graphical objects are moving together 2")  
+![](/misc/par_child2.png "Graphical objects are moving together 2")
 
 ```c
 lv_obj_set_pos(parent, 50, 50);        /*Move the parent. The child will move with it.*/
@@ -85,7 +81,7 @@ lv_obj_set_pos(parent, 50, 50);       /*Move the parent. The child will move with it.*
 
 If a child is partially or fully outside its parent then the parts outside will not be visible.
 
-![](/misc/par_child3.png "A graphical object is visible on its parent")  
+![](/misc/par_child3.png "A graphical object is visible on its parent")
 
 ```c
 lv_obj_set_x(obj1, -30);       /*Move the child a little bit off the parent*/
@@ -101,7 +97,7 @@ In LVGL, objects can be created and deleted dynamically at run time. It means on
 This allows for the creation of a screen just when a button is clicked to open it, and for deletion of screens when a new screen is loaded.
 
 UIs can be created based on the current environment of the device. For example one can create meters, charts, bars and sliders based on the currently attached sensors.
- 
+
 Every widget has its own **create** function with a prototype like this:
 ```c
 lv_obj_t * lv_<widget>_create(lv_obj_t * parent, <other parameters if any>);
@@ -124,7 +120,7 @@ This is useful e.g. if you want to delete the parent of an object in the child's
 
 You can remove all the children of an object (but not the object itself) using `lv_obj_clean(obj)`.
 
-You can use `lv_obj_del_delayed(obj, 1000)` to delete an object after some time. The delay is expressed in milliseconds. 
+You can use `lv_obj_del_delayed(obj, 1000)` to delete an object after some time. The delay is expressed in milliseconds.
 
 
 ## Screens
@@ -140,7 +136,7 @@ Screens can be created with any object type. For example, a [Base object](/widge
 ### Get the active screen
 There is always an active screen on each display. By default, the library creates and loads a "Base object" as a screen for each display.
 
-To get the currently active screen use the `lv_scr_act()` function. 
+To get the currently active screen use the `lv_scr_act()` function.
 
 ### Load screens
 
@@ -164,12 +160,14 @@ Read the [Layer overview](/overview/layer) section to learn more about layers.
 A new screen can be loaded with animation by using `lv_scr_load_anim(scr, transition_type, time, delay, auto_del)`. The following transition types exist:
 - `LV_SCR_LOAD_ANIM_NONE` Switch immediately after `delay` milliseconds
 - `LV_SCR_LOAD_ANIM_OVER_LEFT/RIGHT/TOP/BOTTOM` Move the new screen over the current towards the given direction
+- `LV_SCR_LOAD_ANIM_OUT_LEFT/RIGHT/TOP/BOTTOM` Move out the old screen over the current towards the given direction
 - `LV_SCR_LOAD_ANIM_MOVE_LEFT/RIGHT/TOP/BOTTOM` Move both the current and new screens towards the given direction
-- `LV_SCR_LOAD_ANIM_FADE_ON` Fade the new screen over the old screen
+- `LV_SCR_LOAD_ANIM_FADE_IN/OUT` Fade the new screen over the old screen, or vice versa
 
 Setting `auto_del` to `true` will automatically delete the old screen when the animation is finished.
 
 The new screen will become active (returned by `lv_scr_act()`) when the animation starts after `delay` time.
+All inputs are disabled during the screen animation.
 
 ### Handling multiple displays
 Screens are created on the currently selected *default display*.
@@ -181,7 +179,7 @@ Visit [Multi-display support](/overview/display) to learn more.
 
 ## Parts
 
-The widgets are built from multiple parts. For example a [Base object](/widgets/obj) uses the main and scrollbar parts but a [Slider](/widgets/core/slider) uses the main, indicator and knob parts. 
+The widgets are built from multiple parts. For example a [Base object](/widgets/obj) uses the main and scrollbar parts but a [Slider](/widgets/core/slider) uses the main, indicator and knob parts.
 Parts are similar to *pseudo-elements* in CSS.
 
 The following predefined parts exist in LVGL:
@@ -195,15 +193,15 @@ The following predefined parts exist in LVGL:
 - `LV_PART_CURSOR` Mark a specific place e.g. text area's or chart's cursor
 - `LV_PART_CUSTOM_FIRST` Custom parts can be added from here.
 
-The main purpose of parts is to allow styling the "components" of the widgets. 
+The main purpose of parts is to allow styling the "components" of the widgets.
 They are described in more detail in the [Style overview](/overview/style) section.
 
 ## States
 The object can be in a combination of the following states:
 - `LV_STATE_DEFAULT` Normal, released state
 - `LV_STATE_CHECKED` Toggled or checked state
-- `LV_STATE_FOCUSED` Focused via keypad or encoder or clicked via touchpad/mouse 
-- `LV_STATE_FOCUS_KEY` Focused via keypad or encoder but not via touchpad/mouse 
+- `LV_STATE_FOCUSED` Focused via keypad or encoder or clicked via touchpad/mouse
+- `LV_STATE_FOCUS_KEY` Focused via keypad or encoder but not via touchpad/mouse
 - `LV_STATE_EDITED` Edit by an encoder
 - `LV_STATE_HOVERED` Hovered by mouse (not supported now)
 - `LV_STATE_PRESSED` Being pressed
@@ -214,8 +212,8 @@ The object can be in a combination of the following states:
 - `LV_STATE_USER_3` Custom state
 - `LV_STATE_USER_4` Custom state
 
-The states are usually automatically changed by the library as the userinteracts qith an object (presses, releases, focuses, etc.). 
-However, the states can be changed manually too. 
+The states are usually automatically changed by the library as the user interacts with an object (presses, releases, focuses, etc.).
+However, the states can be changed manually too.
 To set or clear given state (but leave the other states untouched) use `lv_obj_add/clear_state(obj, LV_STATE_...)`
 In both cases OR-ed state values can be used as well. E.g. `lv_obj_add_state(obj, part, LV_STATE_PRESSED | LV_PRESSED_CHECKED)`.
 
index 5ae47ed..554b141 100644 (file)
@@ -1,7 +1,3 @@
-```eval_rst
-.. include:: /header.rst 
-:github_url: |github_link_base|/overview/scroll.md
-```
 # Scroll
 
 ## Overview
@@ -12,7 +8,7 @@ Any object can be scrollable including `lv_obj_t`, `lv_img`, `lv_btn`, `lv_meter
 The object can either be scrolled horizontally or vertically in one stroke; diagonal scrolling is not possible.
 
 ### Scrollbar
- 
+
 #### Mode
 Scrollbars are displayed according to a configured `mode`. The following `mode`s exist:
 - `LV_SCROLLBAR_MODE_OFF`  Never show the scrollbars
@@ -47,16 +43,16 @@ lv_style_set_bg_color(&style_blue, lv_color_blue());
 lv_obj_add_style(obj, &style_blue, LV_STATE_SCROLLED | LV_PART_SCROLLBAR);
 ```
 
-If the base direction of the `LV_PART_SCROLLBAR` is RTL (`LV_BASE_DIR_RTL`) the vertical scrollbar will be placed on the left. 
+If the base direction of the `LV_PART_SCROLLBAR` is RTL (`LV_BASE_DIR_RTL`) the vertical scrollbar will be placed on the left.
 Note that, the `base_dir` style property is inherited. Therefore, it can be set directly on the `LV_PART_SCROLLBAR` part of an object
-or on the object's or any parent's main part to make a scrollbar inherit the base direction. 
+or on the object's or any parent's main part to make a scrollbar inherit the base direction.
 
-`pad_left/right/top/bottom` sets the spacing around the scrollbars and `width` sets the scrollbar's width. 
+`pad_left/right/top/bottom` sets the spacing around the scrollbars and `width` sets the scrollbar's width.
 
 ### Events
 The following events are related to scrolling:
-- `LV_EVENT_SCROLL_BEGIN` Scrolling begins
-- `LV_EVENT_SCROLL_END` Scrolling ends
+- `LV_EVENT_SCROLL_BEGIN` Scrolling begins. The event parameter is `NULL` or an `lv_anim_t *` with a scroll animation descriptor that can be modified if required.
+- `LV_EVENT_SCROLL_END` Scrolling ends.
 - `LV_EVENT_SCROLL` Scroll happened. Triggered on every position change.
 Scroll events
 
@@ -81,7 +77,7 @@ The following values are possible for the direction:
 - `LV_DIR_BOTTOM` only scroll down
 - `LV_DIR_RIGHT` only scroll right
 - `LV_DIR_HOR` only scroll horizontally
-- `LV_DIR_TOP` only scroll vertically
+- `LV_DIR_VER` only scroll vertically
 - `LV_DIR_ALL` scroll any directions
 
 OR-ed values are also possible. E.g. `LV_DIR_TOP | LV_DIR_LEFT`.
@@ -95,15 +91,15 @@ The propagation on scrolling is called "scroll chaining" and it can be enabled/d
 If chaining is disabled the propagation stops on the object and the parent(s) won't be scrolled.
 
 ### Scroll momentum
-When the user scrolls an object and releases it, LVGL can emulate inertial momentum for the scrolling. It's like the object was thrown and scrolling slows down smoothly. 
+When the user scrolls an object and releases it, LVGL can emulate inertial momentum for the scrolling. It's like the object was thrown and scrolling slows down smoothly.
 
-The scroll momentum can be enabled/disabled with the `LV_OBJ_FLAG_SCROLL_MOMENTUM` flag. 
+The scroll momentum can be enabled/disabled with the `LV_OBJ_FLAG_SCROLL_MOMENTUM` flag.
 
 ### Elastic scroll
-Normally an object can't be scrolled past the extremeties of its content. That is the top side of the content can't be below the top side of the object. 
+Normally an object can't be scrolled past the extremeties of its content. That is the top side of the content can't be below the top side of the object.
 
-However, with `LV_OBJ_FLAG_SCROLL_ELASTIC` a fancy effect is added when the user "over-scrolls" the content. The scrolling slows down, and the content can be scrolled inside the object. 
-When the object is released the content scrolled in it will be animated back to the valid position. 
+However, with `LV_OBJ_FLAG_SCROLL_ELASTIC` a fancy effect is added when the user "over-scrolls" the content. The scrolling slows down, and the content can be scrolled inside the object.
+When the object is released the content scrolled in it will be animated back to the valid position.
 
 ### Snapping
 The children of an object can be snapped according to specific rules when scrolling ends. Children can be made snappable individually with the `LV_OBJ_FLAG_SNAPPABLE` flag.
@@ -113,26 +109,26 @@ An object can align snapped children in four ways:
 - `LV_SCROLL_SNAP_START` Align the children to the left/top side of a scrolled object
 - `LV_SCROLL_SNAP_END` Align the children to the right/bottom side of a scrolled object
 - `LV_SCROLL_SNAP_CENTER` Align the children to the center of a scrolled object
-  
+
 Snap alignment is set with `lv_obj_set_scroll_snap_x/y(obj, LV_SCROLL_SNAP_...)`:
- 
+
 Under the hood the following happens:
 1. User scrolls an object and releases the screen
 2. LVGL calculates where the scroll would end considering scroll momentum
 3. LVGL finds the nearest scroll point
 4. LVGL scrolls to the snap point with an animation
- 
+
 ### Scroll one
-The "scroll one" feature tells LVGL to allow scrolling only one snappable child at a time. 
+The "scroll one" feature tells LVGL to allow scrolling only one snappable child at a time.
 This requires making the children snappable and setting a scroll snap alignment different from `LV_SCROLL_SNAP_NONE`.
 
 This feature can be enabled by the `LV_OBJ_FLAG_SCROLL_ONE` flag.
 
 ### Scroll on focus
-Imagine that there a lot of objects in a group that are on a scrollable object. Pressing the "Tab" button focuses the next object but it might be outside the visible area of the scrollable object. 
-If the "scroll on focus" feature is enabled LVGL will automatically scroll objects to bring their children into view. 
-The scrolling happens recursively therefore even nested scrollable objects are handled properly. 
-The object will be scrolled into view even if it's on a different page of a tabview. 
+Imagine that there a lot of objects in a group that are on a scrollable object. Pressing the "Tab" button focuses the next object but it might be outside the visible area of the scrollable object.
+If the "scroll on focus" feature is enabled LVGL will automatically scroll objects to bring their children into view.
+The scrolling happens recursively therefore even nested scrollable objects are handled properly.
+The object will be scrolled into view even if it's on a different page of a tabview.
 
 ## Scroll manually
 The following API functions allow manual scrolling of objects:
@@ -141,12 +137,35 @@ The following API functions allow manual scrolling of objects:
 - `lv_obj_scroll_to_x(obj, x, LV_ANIM_ON/OFF)` scroll to bring the given coordinate to the left side
 - `lv_obj_scroll_to_y(obj, y, LV_ANIM_ON/OFF)` scroll to bring the given coordinate to the top side
 
+From time to time you may need to retrieve the scroll position of an element, either to restore it later, or to display dynamically some elements according to the current scroll.
+Here is an example to see how to combine scroll event and store the scroll top position.
+```c
+static int scroll_value = 0;
+
+static void store_scroll_value_event_cb(lv_event_t* e) {
+  lv_obj_t* screen = lv_event_get_target(e);
+  scroll_value = lv_obj_get_scroll_top(screen);
+  printf("%d pixels are scrolled out on the top\n", scroll_value);
+}
+
+lv_obj_t* container = lv_obj_create(NULL);
+lv_obj_add_event_cb(container, store_scroll_value_event_cb, LV_EVENT_SCROLL, NULL);
+```
+
+Scrool coordinates can be retrieve from differents axes with these functions:
+- `lv_obj_get_scroll_x(obj)` Get the `x` coordinate of object
+- `lv_obj_get_scroll_y(obj)` Get the `y` coordinate of object
+- `lv_obj_get_scroll_top(obj)` Get the scroll coordinate from the top
+- `lv_obj_get_scroll_bottom(obj)` Get the scroll coordinate from the bottom
+- `lv_obj_get_scroll_left(obj)` Get the scroll coordinate from the left
+- `lv_obj_get_scroll_right(obj)` Get the scroll coordinate from the right
+
 ## Self size
 
 Self size is a property of an object. Normally, the user shouldn't use this parameter but if a custom widget is created it might be useful.
 
-In short, self size establishes the size of an object's content. To understand it better take the example of a table. 
-Let's say it has 10 rows each with 50 px height. So the total height of the content is 500 px. In other words the "self height" is 500 px. 
+In short, self size establishes the size of an object's content. To understand it better take the example of a table.
+Let's say it has 10 rows each with 50 px height. So the total height of the content is 500 px. In other words the "self height" is 500 px.
 If the user sets only 200 px height for the table LVGL will see that the self size is larger and make the table scrollable.
 
 This means not only the children can make an object scrollable but a larger self size will too.
@@ -155,12 +174,12 @@ LVGL uses the `LV_EVENT_GET_SELF_SIZE` event to get the self size of an object.
 ```c
 if(event_code == LV_EVENT_GET_SELF_SIZE) {
        lv_point_t * p = lv_event_get_param(e);
-  
+
   //If x or y < 0 then it doesn't neesd to be calculated now
   if(p->x >= 0) {
     p->x = 200;        //Set or calculate the self width
   }
-  
+
   if(p->y >= 0) {
     p->y = 50; //Set or calculate the self height
   }
index 3eeaa8d..74a0cd5 100644 (file)
@@ -121,7 +121,7 @@ Move the object with this value in Y direction. Applied after layouts, aligns an
 </ul>
 
 ### transform_zoom
-Zoom image-like objects. Multiplied with the zoom set on the object. The value 256 (or `LV_IMG_ZOOM_NONE`) means normal size, 128 half size, 512 double size, and so on
+Zoom an objects. The value 256 (or `LV_IMG_ZOOM_NONE`) means normal size, 128 half size, 512 double size, and so on
 <ul>
 <li style='display:inline; margin-right: 20px; margin-left: 0px'><strong>Default</strong> 0</li>
 <li style='display:inline; margin-right: 20px; margin-left: 0px'><strong>Inherited</strong> No</li>
@@ -130,7 +130,7 @@ Zoom image-like objects. Multiplied with the zoom set on the object. The value 2
 </ul>
 
 ### transform_angle
-Rotate image-like objects. Added to the rotation set on the object. The value is interpreted in 0.1 degree units. E.g. 45 deg. = 450
+Rotate an objects. The value is interpreted in 0.1 degree units. E.g. 450 means 45 deg.
 <ul>
 <li style='display:inline; margin-right: 20px; margin-left: 0px'><strong>Default</strong> 0</li>
 <li style='display:inline; margin-right: 20px; margin-left: 0px'><strong>Inherited</strong> No</li>
@@ -138,6 +138,24 @@ Rotate image-like objects. Added to the rotation set on the object. The value is
 <li style='display:inline; margin-right: 20px; margin-left: 0px'><strong>Ext. draw</strong> Yes</li>
 </ul>
 
+### transform_pivot_x
+Set the pivot point's X coordinate for transformations. Relative to the object's top left corner'
+<ul>
+<li style='display:inline; margin-right: 20px; margin-left: 0px'><strong>Default</strong> 0</li>
+<li style='display:inline; margin-right: 20px; margin-left: 0px'><strong>Inherited</strong> No</li>
+<li style='display:inline; margin-right: 20px; margin-left: 0px'><strong>Layout</strong> No</li>
+<li style='display:inline; margin-right: 20px; margin-left: 0px'><strong>Ext. draw</strong> No</li>
+</ul>
+
+### transform_pivot_y
+Set the pivot point's Y coordinate for transformations. Relative to the object's top left corner'
+<ul>
+<li style='display:inline; margin-right: 20px; margin-left: 0px'><strong>Default</strong> 0</li>
+<li style='display:inline; margin-right: 20px; margin-left: 0px'><strong>Inherited</strong> No</li>
+<li style='display:inline; margin-right: 20px; margin-left: 0px'><strong>Layout</strong> No</li>
+<li style='display:inline; margin-right: 20px; margin-left: 0px'><strong>Ext. draw</strong> No</li>
+</ul>
+
 ## Padding
 Properties to describe spacing between the parent's sides and the children and among the children. Very similar to the padding properties in HTML.
 
@@ -253,7 +271,7 @@ Set the point from which the background's gradient color should start. 0 means t
 </ul>
 
 ### bg_grad
-Set the gradient definition. The pointed instance must exist while the object is alive. NULL to disable. It wraps `BG_GRAD_COLOR`, `BG_GRAD_DIR`, `BG_MAIN_STOP` and `BG_GRAD_STOP` into one descriptor and allows craeting gradients with more colors too.
+Set the gradient definition. The pointed instance must exist while the object is alive. NULL to disable. It wraps `BG_GRAD_COLOR`, `BG_GRAD_DIR`, `BG_MAIN_STOP` and `BG_GRAD_STOP` into one descriptor and allows creating gradients with more colors too.
 <ul>
 <li style='display:inline; margin-right: 20px; margin-left: 0px'><strong>Default</strong> `NULL`</li>
 <li style='display:inline; margin-right: 20px; margin-left: 0px'><strong>Inherited</strong> No</li>
@@ -708,6 +726,15 @@ The intensity of mixing of color filter.
 <li style='display:inline; margin-right: 20px; margin-left: 0px'><strong>Ext. draw</strong> No</li>
 </ul>
 
+### anim
+The animation template for the object's animation. Should be a pointer to `lv_anim_t`. The animation parameters are widget specific, e.g. animation time could be the E.g. blink time of the cursor on the text area or scroll time of a roller. See the widgets' documentation to learn more.
+<ul>
+<li style='display:inline; margin-right: 20px; margin-left: 0px'><strong>Default</strong> `NULL`</li>
+<li style='display:inline; margin-right: 20px; margin-left: 0px'><strong>Inherited</strong> No</li>
+<li style='display:inline; margin-right: 20px; margin-left: 0px'><strong>Layout</strong> No</li>
+<li style='display:inline; margin-right: 20px; margin-left: 0px'><strong>Ext. draw</strong> No</li>
+</ul>
+
 ### anim_time
 The animation time in milliseconds. Its meaning is widget specific. E.g. blink time of the cursor on the text area or scroll time of a roller. See the widgets' documentation to learn more.
 <ul>
index 3b3f549..25d8ce6 100644 (file)
@@ -1,21 +1,17 @@
-```eval_rst
-.. include:: /header.rst 
-:github_url: |github_link_base|/overview/style.md
-```
 # Styles
 
 *Styles* are used to set the appearance of objects. Styles in lvgl are heavily inspired by CSS. The concept in a nutshell is as follows:
-- A style is an `lv_style_t` variable which can hold properties like border width, text color and so on. It's similar to a `class` in CSS. 
+- A style is an `lv_style_t` variable which can hold properties like border width, text color and so on. It's similar to a `class` in CSS.
 - Styles can be assigned to objects to change their appearance. Upon assignment, the target part (*pseudo-element* in CSS) and target state (*pseudo class*) can be specified.
 For example one can add `style_blue` to the knob of a slider when it's in pressed state.
 - The same style can be used by any number of objects.
-- Styles can be cascaded which means multiple styles may be assigned to an object and each style can have different properties. 
+- Styles can be cascaded which means multiple styles may be assigned to an object and each style can have different properties.
 Therefore, not all properties have to be specified in a style. LVGL will search for a property until a style defines it or use a default if it's not specified by any of the styles.
 For example `style_btn` can result in a default gray button and `style_btn_red` can add only a `background-color=red` to overwrite the background color.
 - The most recently added style has higher precedence. This means if a property is specified in two styles the newest style in the object will be used.
-- Some properties (e.g. text color) can be inherited from a parent(s) if it's not specified in an object. 
+- Some properties (e.g. text color) can be inherited from a parent(s) if it's not specified in an object.
 - Objects can also have local styles with higher precedence than "normal" styles.
-- Unlike CSS (where pseudo-classes describe different states, e.g. `:focus`), in LVGL a property is assigned to a given state. 
+- Unlike CSS (where pseudo-classes describe different states, e.g. `:focus`), in LVGL a property is assigned to a given state.
 - Transitions can be applied when the object changes state.
 
 
@@ -23,8 +19,8 @@ For example `style_btn` can result in a default gray button and `style_btn_red`
 The objects can be in the combination of the following states:
 - `LV_STATE_DEFAULT` (0x0000) Normal, released state
 - `LV_STATE_CHECKED` (0x0001) Toggled or checked state
-- `LV_STATE_FOCUSED` (0x0002) Focused via keypad or encoder or clicked via touchpad/mouse 
-- `LV_STATE_FOCUS_KEY` (0x0004) Focused via keypad or encoder but not via touchpad/mouse 
+- `LV_STATE_FOCUSED` (0x0002) Focused via keypad or encoder or clicked via touchpad/mouse
+- `LV_STATE_FOCUS_KEY` (0x0004) Focused via keypad or encoder but not via touchpad/mouse
 - `LV_STATE_EDITED` (0x0008) Edit by an encoder
 - `LV_STATE_HOVERED` (0x0010) Hovered by mouse (not supported now)
 - `LV_STATE_PRESSED` (0x0020) Being pressed
@@ -34,15 +30,15 @@ The objects can be in the combination of the following states:
 - `LV_STATE_USER_2` (0x2000) Custom state
 - `LV_STATE_USER_3` (0x4000) Custom state
 - `LV_STATE_USER_4` (0x8000) Custom state
-  
-An object can be in a combination of states such as being focused and pressed at the same time. This is represented as `LV_STATE_FOCUSED | LV_STATE_PRESSED`. 
 
-A style can be added to any state or state combination. 
-For example, setting a different background color for the default and pressed states. 
+An object can be in a combination of states such as being focused and pressed at the same time. This is represented as `LV_STATE_FOCUSED | LV_STATE_PRESSED`.
+
+A style can be added to any state or state combination.
+For example, setting a different background color for the default and pressed states.
 If a property is not defined in a state the best matching state's property will be used. Typically this means the property with `LV_STATE_DEFAULT` is used.˛
 If the property is not set even for the default state the default value will be used. (See later)
 
-But what does the "best matching state's property" really mean? 
+But what does the "best matching state's property" really mean?
 States have a precedence which is shown by their value (see in the above list). A higher value means higher precedence.
 To determine which state's property to use let's take an example. Imagine the background color is defined like this:
 - `LV_STATE_DEFAULT`: white
@@ -50,47 +46,64 @@ To determine which state's property to use let's take an example. Imagine the ba
 - `LV_STATE_FOCUSED`: red
 
 1. Initially the object is in the default state, so it's a simple case: the property is perfectly defined in the object's current state as white.
-2. When the object is pressed there are 2 related properties: default with white (default is related to every state) and pressed with gray. 
+2. When the object is pressed there are 2 related properties: default with white (default is related to every state) and pressed with gray.
 The pressed state has 0x0020 precedence which is higher than the default state's 0x0000 precedence, so gray color will be used.
 3. When the object is focused the same thing happens as in pressed state and red color will be used. (Focused state has higher precedence than default state).
 4. When the object is focused and pressed both gray and red would work, but the pressed state has higher precedence than focused so gray color will be used.
-5. It's possible to set e.g. rose color for `LV_STATE_PRESSED | LV_STATE_FOCUSED`. 
+5. It's possible to set e.g. rose color for `LV_STATE_PRESSED | LV_STATE_FOCUSED`.
 In this case, this combined state has 0x0020 + 0x0002 = 0x0022 precedence, which is higher than the pressed state's precedence so rose color would be used.
 6. When the object is in the checked state there is no property to set the background color for this state. So for lack of a better option, the object remains white from the default state's property.
 
 Some practical notes:
-- The precedence (value) of states is quite intuitive, and it's something the user would expect naturally. E.g. if an object is focused the user will still want to see if it's pressed, therefore the pressed state has a higher precedence. 
+- The precedence (value) of states is quite intuitive, and it's something the user would expect naturally. E.g. if an object is focused the user will still want to see if it's pressed, therefore the pressed state has a higher precedence.
 If the focused state had a higher precedence it would overwrite the pressed color.
 - If you want to set a property for all states (e.g. red background color) just set it for the default state. If the object can't find a property for its current state it will fall back to the default state's property.
 - Use ORed states to describe the properties for complex cases. (E.g. pressed + checked + focused)
-- It might be a good idea to use different style elements for different states. 
-For example, finding background colors for released, pressed, checked + pressed, focused, focused + pressed, focused + pressed + checked, etc. states is quite difficult. 
-Instead, for example, use the background color for pressed and checked states and indicate the focused state with a different border color. 
+- It might be a good idea to use different style elements for different states.
+For example, finding background colors for released, pressed, checked + pressed, focused, focused + pressed, focused + pressed + checked, etc. states is quite difficult.
+Instead, for example, use the background color for pressed and checked states and indicate the focused state with a different border color.
 
 ## Cascading styles
 It's not required to set all the properties in one style. It's possible to add more styles to an object and have the latter added style modify or extend appearance.
-For example, create a general gray button style and create a new one for red buttons where only the new background color is set. 
+For example, create a general gray button style and create a new one for red buttons where only the new background color is set.
 
 This is much like in CSS when used classes are listed like `<div class=".btn .btn-red">`.
 
-Styles added later have precedence over ones set earlier. So in the gray/red button example above, the normal button style should be added first and the red style second. 
-However, the precedence of the states are still taken into account. 
+Styles added later have precedence over ones set earlier. So in the gray/red button example above, the normal button style should be added first and the red style second.
+However, the precedence of the states are still taken into account.
 So let's examine the following case:
 - the basic button style defines dark-gray color for the default state and light-gray color for the pressed state
 - the red button style defines the background color as red only in the default state
 
-In this case, when the button is released (it's in default state) it will be red because a perfect match is found in the most recently added style (red). 
-When the button is pressed the light-gray color is a better match because it describes the current state perfectly, so the button will be light-gray. 
+In this case, when the button is released (it's in default state) it will be red because a perfect match is found in the most recently added style (red).
+When the button is pressed the light-gray color is a better match because it describes the current state perfectly, so the button will be light-gray.
 
-## Inheritance 
-Some properties (typically those related to text) can be inherited from the parent object's styles. 
-Inheritance is applied only if the given property is not set in the object's styles (even in default state). 
-In this case, if the property is inheritable, the property's value will be searched in the parents until an object specifies a value for the property. The parents will use their own state to determine the value. 
+## Inheritance
+Some properties (typically those related to text) can be inherited from the parent object's styles.
+Inheritance is applied only if the given property is not set in the object's styles (even in default state).
+In this case, if the property is inheritable, the property's value will be searched in the parents until an object specifies a value for the property. The parents will use their own state to determine the value.
 So if a button is pressed, and the text color comes from here, the pressed text color will be used.
 
+## Forced value inheritance/default value
+Sometimes you may want to force a child object to use the parent's value for a given style property. To do this you can use
+one of the following (depending on what type of style you're using):
+
+```c
+/* regular style */
+lv_style_set_prop_meta(&style, LV_STYLE_TEXT_COLOR, LV_STYLE_PROP_META_INHERIT);
+/* local style */
+lv_obj_set_local_style_prop_meta(child, LV_STYLE_TEXT_COLOR, LV_STYLE_PROP_META_INHERIT, LV_PART_MAIN);
+```
+
+This acts like a value has been set on the style, so setting the value of the property afterwards will remove the flag.
+
+You may also want to force the default value of a property to be used, without needing to hardcode it in your application.
+To do this you can use the same API but with `LV_STYLE_PROP_META_INITIAL` instead. In future versions of LVGL, this
+will use the value based upon the current theme, but for now it just selects the internal default regardless of theme.
+
 
 ## Parts
-Objects can be composed of *parts* which may each have their own styles. 
+Objects can be composed of *parts* which may each have their own styles.
 
 The following predefined parts exist in LVGL:
 - `LV_PART_MAIN` A background like rectangle
@@ -113,12 +126,12 @@ This means all three parts of the slider can have their own styles. See later ho
 
 ## Initialize styles and set/get properties
 
-Styles are stored in `lv_style_t` variables. Style variables should be `static`, global or dynamically allocated. 
-In other words they cannot be local variables in functions which are destroyed when the function exits. 
-Before using a style it should be initialized with `lv_style_init(&my_style)`. 
+Styles are stored in `lv_style_t` variables. Style variables should be `static`, global or dynamically allocated.
+In other words they cannot be local variables in functions which are destroyed when the function exits.
+Before using a style it should be initialized with `lv_style_init(&my_style)`.
 After initializing a style, properties can be added or changed.
 
-Property set functions looks like this: `lv_style_set_<property_name>(&style, <value>);` For example: 
+Property set functions looks like this: `lv_style_set_<property_name>(&style, <value>);` For example:
 ```c
 static lv_style_t style_btn;
 lv_style_init(&style_btn);
@@ -165,7 +178,7 @@ const lv_style_const_prop_t style1_props[] = {
    LV_STYLE_CONST_HEIGHT(50),
    LV_STYLE_PROP_INV,
 };
-     
+
 LV_STYLE_CONST_INIT(style1, style1_props);
 ```
 
@@ -181,10 +194,10 @@ To add a style to an object use `lv_obj_add_style(obj, &style, <selector>)`. `<s
 - `LV_STATE_PRESSED`: The main part in pressed state. `LV_PART_MAIN` can be omitted
 - `LV_PART_SCROLLBAR`: The scrollbar part in the default state. `LV_STATE_DEFAULT` can be omitted.
 - `LV_PART_SCROLLBAR | LV_STATE_SCROLLED`: The scrollbar part when the object is being scrolled
-- `0` Same as `LV_PART_MAIN | LV_STATE_DEFAULT`. 
+- `0` Same as `LV_PART_MAIN | LV_STATE_DEFAULT`.
 - `LV_PART_INDICATOR | LV_STATE_PRESSED | LV_STATE_CHECKED` The indicator part when the object is pressed and checked at the same time.
 
-Using `lv_obj_add_style`: 
+Using `lv_obj_add_style`:
 ```c
 lv_obj_add_style(btn, &style_btn, 0);                                    /*Default button style*/
 lv_obj_add_style(btn, &btn_red, LV_STATE_PRESSED);  /*Overwrite only some colors to red when pressed*/
@@ -193,20 +206,20 @@ lv_obj_add_style(btn, &btn_red, LV_STATE_PRESSED);  /*Overwrite only some color
 ### Remove styles
 To remove all styles from an object use `lv_obj_remove_style_all(obj)`.
 
-To remove specific styles use `lv_obj_remove_style(obj, style, selector)`. This function will remove `style` only if the `selector` matches with the `selector` used in `lv_obj_add_style`. 
+To remove specific styles use `lv_obj_remove_style(obj, style, selector)`. This function will remove `style` only if the `selector` matches with the `selector` used in `lv_obj_add_style`.
 `style` can be `NULL` to check only the `selector` and remove all matching styles. The `selector` can use the `LV_STATE_ANY` and `LV_PART_ANY` values to remove the style from any state or part.
 
 
 ### Report style changes
 If a style which is already assigned to an object changes (i.e. a property is added or changed), the objects using that style should be notified. There are 3 options to do this:
-1. If you know that the changed properties can be applied by a simple redraw (e.g. color or opacity changes) just call `lv_obj_invalidate(obj)` or `lv_obj_invalidate(lv_scr_act())`. 
-2. If more complex style properties were changed or added, and you know which object(s) are affected by that style call `lv_obj_refresh_style(obj, part, property)`. 
+1. If you know that the changed properties can be applied by a simple redraw (e.g. color or opacity changes) just call `lv_obj_invalidate(obj)` or `lv_obj_invalidate(lv_scr_act())`.
+2. If more complex style properties were changed or added, and you know which object(s) are affected by that style call `lv_obj_refresh_style(obj, part, property)`.
 To refresh all parts and properties use `lv_obj_refresh_style(obj, LV_PART_ANY, LV_STYLE_PROP_ANY)`.
 3. To make LVGL check all objects to see if they use a style and refresh them when needed, call `lv_obj_report_style_change(&style)`. If `style` is `NULL` all objects will be notified about a style change.
 
 ### Get a property's value on an object
-To get a final value of property - considering cascading, inheritance, local styles and transitions (see below) - property get functions like this can be used: 
-`lv_obj_get_style_<property_name>(obj, <part>)`. 
+To get a final value of property - considering cascading, inheritance, local styles and transitions (see below) - property get functions like this can be used:
+`lv_obj_get_style_<property_name>(obj, <part>)`.
 These functions use the object's current state and if no better candidate exists they return a default value.  
 For example:
 ```c
@@ -214,7 +227,7 @@ lv_color_t color = lv_obj_get_style_bg_color(btn, LV_PART_MAIN);
 ```
 
 ## Local styles
-In addition to "normal" styles, objects can also store local styles. This concept is similar to inline styles in CSS (e.g. `<div style="color:red">`) with some modification. 
+In addition to "normal" styles, objects can also store local styles. This concept is similar to inline styles in CSS (e.g. `<div style="color:red">`) with some modification.
 
 Local styles are like normal styles, but they can't be shared among other objects. If used, local styles are allocated automatically, and freed when the object is deleted.
 They are useful to add local customization to an object.
@@ -244,15 +257,15 @@ In the documentation of the widgets you will see sentences like "The widget uses
 By default, when an object changes state (e.g. it's pressed) the new properties from the new state are set immediately. However, with transitions it's possible to play an animation on state change.
 For example, on pressing a button its background color can be animated to the pressed color over 300 ms.
 
-The parameters of the transitions are stored in the styles. It's possible to set 
+The parameters of the transitions are stored in the styles. It's possible to set
 - the time of the transition
-- the delay before starting the transition 
+- the delay before starting the transition
 - the animation path (also known as the timing or easing function)
-- the properties to animate 
+- the properties to animate
 
-The transition properties can be defined for each state. For example, setting a 500 ms transition time in the default state means that when the object goes to the default state a 500 ms transition time is applied. 
+The transition properties can be defined for each state. For example, setting a 500 ms transition time in the default state means that when the object goes to the default state a 500 ms transition time is applied.
 Setting a 100 ms transition time in the pressed state causes a 100 ms transition when going to the pressed state.
-This example configuration results in going to the pressed state quickly and then going back to default slowly. 
+This example configuration results in going to the pressed state quickly and then going back to default slowly.
 
 To describe a transition an `lv_transition_dsc_t` variable needs to be initialized and added to a style:
 ```c
@@ -268,6 +281,22 @@ lv_style_transition_dsc_init(&trans1, trans_props, lv_anim_path_ease_out, durati
 lv_style_set_transition(&style1, &trans1);
 ```
 
+## Opacity, Blend modes and Transformations
+If the `opa`, `blend_mode`, `transform_angle`, or `transform_zoom` properties are set to their non-default value LVGL creates a snapshot about the widget and all its children in order to blend the whole widget with the set opacity, blend mode and transformation properties.
+
+These properties have this effect only on the `MAIN` part of the widget.
+
+The created snapshot is called "intermediate layer" or simply "layer". If only `opa` and/or `blend_mode` is set to a non-default value LVGL can build the layer from smaller chunks. The size of these chunks can be configured by the following properties in `lv_conf.h`:
+ - `LV_LAYER_SIMPLE_BUF_SIZE`: [bytes] the optimal target buffer size. LVGL will try to allocate this size of memory.
+ - `LV_LAYER_SIMPLE_FALLBACK_BUF_SIZE`: [bytes]  used if `LV_LAYER_SIMPLE_BUF_SIZE` couldn't be allocated.
+
+If transformation properties were also used the layer can not be rendered in chunks, but one larger memory needs to be allocated. The required memory depends on the angle, zoom and pivot parameters, and the size of the area to redraw, but it's never larger than the size of the widget (including the extra draw size used for shadow, outline, etc).
+
+If the widget can fully cover the area to redraw, LVGL creates an RGB layer (which is faster to render and uses less memory). If the opposite case ARGB rendering needs to be used. A widget might not cover its area if it has radius, `bg_opa != 255`, has shadow, outline, etc.
+
+The click area of the widget is also transformed accordingly.
+
+
 ## Color filter
 TODO
 
@@ -284,11 +313,11 @@ To set a theme for a display, two steps are required:
 
 Theme initialization functions can have different prototypes. This example shows how to set the "default" theme:
 ```c
-lv_theme_t * th = lv_theme_default_init(display,  /*Use the DPI, size, etc from this display*/ 
+lv_theme_t * th = lv_theme_default_init(display,  /*Use the DPI, size, etc from this display*/
                                         LV_COLOR_PALETTE_BLUE, LV_COLOR_PALETTE_CYAN,   /*Primary and secondary palette*/
-                                        false,    /*Light or dark mode*/ 
+                                        false,    /*Light or dark mode*/
                                         &lv_font_montserrat_10, &lv_font_montserrat_14, &lv_font_montserrat_18); /*Small, normal, large fonts*/
-                                        
+
 lv_disp_set_theme(display, th); /*Assign the theme to the display*/
 ```
 
@@ -297,8 +326,8 @@ The included themes are enabled in `lv_conf.h`. If the default theme is enabled
 
 ### Extending themes
 
-Built-in themes can be extended. 
-If a custom theme is created, a parent theme can be selected. The parent theme's styles will be added before the custom theme's styles. 
+Built-in themes can be extended.
+If a custom theme is created, a parent theme can be selected. The parent theme's styles will be added before the custom theme's styles.
 Any number of themes can be chained this way. E.g. default theme -> custom theme -> dark theme.
 
 `lv_theme_set_parent(new_theme, base_theme)` extends the `base_theme` with the `new_theme`.
@@ -324,9 +353,9 @@ There is an example for it below.
 
 .. doxygenfile:: lv_obj_style_gen.h
   :project: lvgl
-  
+
 .. doxygenfile:: lv_style_gen.h
   :project: lvgl
-  
+
 
 ```
index 82ef07d..ca014c7 100644 (file)
@@ -1,11 +1,7 @@
-```eval_rst
-.. include:: /header.rst 
-:github_url: |github_link_base|/overview/timer.md
-```
 # Timers
 
 LVGL has a built-in timer system. You can register a function to have it be called periodically. The timers are handled and called in `lv_timer_handler()`, which needs to be called every few milliseconds.
-See [Porting](/porting/task-handler) for more information.
+See [Porting](/porting/timer-handler) for more information.
 
 Timers are non-preemptive, which means a timer cannot interrupt another timer. Therefore, you can call any LVGL related function in a timer.
 
@@ -52,7 +48,7 @@ You can modify some timer parameters later:
 
 ## Repeat count
 
-You can make a timer repeat only a given number of times with `lv_timer_set_repeat_count(timer, count)`. The timer will automatically be deleted after it's called the defined number of times. Set the count to `-1` to repeat indefinitely. 
+You can make a timer repeat only a given number of times with `lv_timer_set_repeat_count(timer, count)`. The timer will automatically be deleted after it's called the defined number of times. Set the count to `-1` to repeat indefinitely.
 
 
 ## Measure idle time
@@ -65,6 +61,7 @@ It can be misleading if you use an operating system and call `lv_timer_handler`
 In some cases, you can't perform an action immediately. For example, you can't delete an object because something else is still using it, or you don't want to block the execution now.
 For these cases, `lv_async_call(my_function, data_p)` can be used to call `my_function` on the next invocation of `lv_timer_handler`. `data_p` will be passed to the function when it's called.
 Note that only the data pointer is saved, so you need to ensure that the variable will be "alive" while the function is called. It can be *static*, global or dynamically allocated data.
+If you want to cancel an asynchronous call, call `lv_async_call_cancel(my_function, data_p)`, which will clear all asynchronous calls matching `my_function` and `data_p`.
 
 For example:
 ```c
@@ -73,7 +70,7 @@ void my_screen_clean_up(void * scr)
   /*Free some resources related to `scr`*/
 
   /*Finally delete the screen*/
-  lv_obj_del(scr);  
+  lv_obj_del(scr);
 }
 
 ...
index 63b1264..f06d48d 100644 (file)
@@ -1,7 +1,3 @@
-```eval_rst
-.. include:: /header.rst 
-:github_url: |github_link_base|/porting/display.md
-```
 # Display interface
 
 To register a display for LVGL, a `lv_disp_draw_buf_t` and a `lv_disp_drv_t` variable have to be initialized.
@@ -10,7 +6,7 @@ To register a display for LVGL, a `lv_disp_draw_buf_t` and a `lv_disp_drv_t` var
 
 ## Draw buffer
 
-Draw buffer(s) are simple array(s) that LVGL uses to render the screen content. 
+Draw buffer(s) are simple array(s) that LVGL uses to render the screen content.
 Once rendering is ready the content of the draw buffer is sent to the display using the `flush_cb` function set in the display driver (see below).
 
 A draw buffer can be initialized via a `lv_disp_draw_buf_t` variable like this:
@@ -31,35 +27,35 @@ Note that `lv_disp_draw_buf_t` must be a static, global or dynamically allocated
 As you can see above, the draw buffer may be smaller than the screen. In this case, larger areas are redrawn in smaller segments that fit into the draw buffer(s).
 If only a small area changes (e.g. a button is pressed) then only that area will be refreshed.
 
-A larger buffer results in better performance but above 1/10 screen sized buffer(s) there is no significant performance improvement. 
+A larger buffer results in better performance but above 1/10 screen sized buffer(s) there is no significant performance improvement.
 Therefore it's recommended to choose the size of the draw buffer(s) to be at least 1/10 screen sized.
 
 ## Buffering modes
 
 There are several settings to adjust the number draw buffers and buffering/refreshing modes.
 
-You can measure the performance of different configurations using the [benchmark example](https://github.com/lvgl/lv_demos/tree/master/src/lv_demo_benchmark).
+You can measure the performance of different configurations using the [benchmark example](https://github.com/lvgl/lvgl/tree/master/demos/benchmark).
 
 ### One buffer
-If only one buffer is used LVGL draws the content of the screen into that draw buffer and sends it to the display. 
+If only one buffer is used LVGL draws the content of the screen into that draw buffer and sends it to the display.
 LVGL then needs to wait until the content of the buffer is sent to the display before drawing something new in it.
 
 ### Two buffers
-If two buffers  are used LVGL can draw into one buffer while the content of the other buffer is sent to the display in the background. 
+If two buffers  are used LVGL can draw into one buffer while the content of the other buffer is sent to the display in the background.
 DMA or other hardware should be used to transfer data to the display so the MCU can continue drawing.
-This way, the rendering and refreshing of the display become parallel operations. 
+This way, the rendering and refreshing of the display become parallel operations.
 
 ### Full refresh
 In the display driver (`lv_disp_drv_t`) enabling the `full_refresh` bit will force LVGL to always redraw the whole screen. This works in both *one buffer* and *two buffers* modes.
-If `full_refresh` is enabled and two screen sized draw buffers are provided, LVGL's display handling works like "traditional" double buffering. 
+If `full_refresh` is enabled and two screen sized draw buffers are provided, LVGL's display handling works like "traditional" double buffering.
 This means the `flush_cb` callback only has to update the address of the framebuffer (`color_p` parameter).
 This configuration should be used if the MCU has an LCD controller peripheral and not with an external display controller (e.g. ILI9341 or SSD1963) accessed via serial link. The latter will generally be too slow to maintain high frame rates with full screen redraws.
 
 ### Direct mode
-If the `direct_mode` flag is enabled in the display driver LVGL will draw directly into a **screen sized frame buffer**. That is the draw buffer(s) needs to be screen sized. 
+If the `direct_mode` flag is enabled in the display driver LVGL will draw directly into a **screen sized frame buffer**. That is the draw buffer(s) needs to be screen sized.
 It this case `flush_cb` will be called only once when all dirty areas are redrawn.
-With `direct_mode` the frame buffer always contains the current frame as it should be displayed on the screen. 
-If 2 frame buffers are provided as draw buffers LVGL will alter the buffers but always draw only the dirty areas. 
+With `direct_mode` the frame buffer always contains the current frame as it should be displayed on the screen.
+If 2 frame buffers are provided as draw buffers LVGL will alter the buffers but always draw only the dirty areas.
 Therefore the 2 buffers needs to synchronized in `flush_cb` like this:
 1. Display the frame buffer pointed by `color_p`
 2. Copy the redrawn areas from `color_p` to the other buffer.
@@ -77,18 +73,18 @@ Once the buffer initialization is ready a `lv_disp_drv_t` display driver needs t
 2. its fields need to be set
 3. it needs to be registered in LVGL with `lv_disp_drv_register(&disp_drv)`
 
-Note that `lv_disp_drv_t` also needs to be a static, global or dynamically allocated variable. 
+Note that `lv_disp_drv_t` also needs to be a static, global or dynamically allocated variable.
 
 ### Mandatory fields
 In the most simple case only the following fields of `lv_disp_drv_t` need to be set:
 - `draw_buf` pointer to an initialized `lv_disp_draw_buf_t` variable.
-- `hor_res` horizontal resolution of the display in pixels. 
+- `hor_res` horizontal resolution of the display in pixels.
 - `ver_res` vertical resolution of the display in pixels.
-- `flush_cb` a callback function to copy a buffer's content to a specific area of the display. 
-`lv_disp_flush_ready(&disp_drv)` needs to be called when flushing is ready. 
+- `flush_cb` a callback function to copy a buffer's content to a specific area of the display.
+`lv_disp_flush_ready(&disp_drv)` needs to be called when flushing is ready.
 LVGL might render the screen in multiple chunks and therefore call `flush_cb` multiple times. To see if the current one is the last chunk of rendering use `lv_disp_flush_is_last(&disp_drv)`.
 
-### Optional fields 
+### Optional fields
 There are some optional display driver data fields:
 - `physical_hor_res` horizontal resolution of the full / physical display in pixels. Only set this when _not_ using the full screen (defaults to -1 / same as `hor_res`).
 - `physical_ver_res` vertical resolution of the full / physical display in pixels. Only set this when _not_ using the full screen (defaults to -1 / same as `ver_res`).
@@ -107,8 +103,9 @@ Some other optional callbacks to make it easier and more optimal to work with mo
 It can be used if the display controller can refresh only areas with specific height or width (usually 8 px height with monochrome displays).
 - `set_px_cb` a custom function to write the draw buffer. It can be used to store the pixels more compactly in the draw buffer if the display has a special color format. (e.g. 1-bit monochrome, 2-bit grayscale etc.)
 This way the buffers used in `lv_disp_draw_buf_t` can be smaller to hold only the required number of bits for the given area size. Note that rendering with `set_px_cb` is slower than normal rendering.
-- `monitor_cb` A callback function that tells how many pixels were refreshed and in how much time. Called when the last chunk is rendered and sent to the display. 
+- `monitor_cb` A callback function that tells how many pixels were refreshed and in how much time. Called when the last chunk is rendered and sent to the display.
 - `clean_dcache_cb` A callback for cleaning any caches related to the display.
+- `render_start_cb` A callback function that notifies the display driver that rendering has started. It also could be used to wait for VSYNC to start rendering. It's useful if rendering is faster than a VSYNC period.
 
 LVGL has built-in support to several GPUs (see `lv_conf.h`) but if something else is required these functions can be used to make LVGL use a GPU:
 - `gpu_fill_cb` fill an area in the memory with a color.
@@ -191,13 +188,15 @@ void my_clean_dcache_cb(lv_disp_drv_t * disp_drv, uint32)
 }
 ```
 
-## Rotation
+## Other options
+
+### Rotation
 
 LVGL supports rotation of the display in 90 degree increments. You can select whether you'd like software rotation or hardware rotation.
 
 If you select software rotation (`sw_rotate` flag set to 1), LVGL will perform the rotation for you. Your driver can and should assume that the screen width and height have not changed. Simply flush pixels to the display as normal. Software rotation requires no additional logic in your `flush_cb` callback.
 
-There is a noticeable amount of overhead to performing rotation in software. Hardware rotation is available to avoid unwanted slowdowns. In this mode, LVGL draws into the buffer as if your screen width and height were swapped. You are responsible for rotating the provided pixels yourself. 
+There is a noticeable amount of overhead to performing rotation in software. Hardware rotation is available to avoid unwanted slowdowns. In this mode, LVGL draws into the buffer as if your screen width and height were swapped. You are responsible for rotating the provided pixels yourself.
 
 The default rotation of your display when it is initialized can be set using the `rotated` flag. The available options are `LV_DISP_ROT_NONE`, `LV_DISP_ROT_90`, `LV_DISP_ROT_180`, or `LV_DISP_ROT_270`. The rotation values are relative to how you would rotate the physical display in the clockwise direction. Thus, `LV_DISP_ROT_90` means you rotate the hardware 90 degrees clockwise, and the display rotates 90 degrees counterclockwise to compensate.
 
@@ -207,6 +206,27 @@ Display rotation can also be changed at runtime using the `lv_disp_set_rotation(
 
 Support for software rotation is a new feature, so there may be some glitches/bugs depending on your configuration. If you encounter a problem please open an issue on [GitHub](https://github.com/lvgl/lvgl/issues).
 
+### Decoupling the display refresh timer
+Normally the dirty (a.k.a invalid) areas are checked and redrawn in every `LV_DISP_DEF_REFR_PERIOD` milliseconds (set in `lv_conf.h`).
+However, in some cases you might need more control on when the display refreshing happen, for example to synchronize rendering with VSYNC or the TE signal.
+
+You can do this in the following way:
+```c
+/*Delete the original display refresh timer*/
+lv_timer_del(disp->refr_timer);
+disp->refr_timer = NULL;
+
+
+/*Call this anywhere you want to refresh the dirty areas*/
+_lv_disp_refr_timer(NULL);
+```
+
+If you have multiple displays call `lv_disp_set_deafult(disp1);` to select the display to refresh before `_lv_disp_refr_timer(NULL);`.
+
+Note that `lv_timer_handler()` and `_lv_disp_refr_timer()` can not run at the same time.
+
+If the performance monitor is enabled, the value of `LV_DISP_DEF_REFR_PERIOD` needs to be set to be consistent with the refresh period of the display to ensure that the statistical results are correct.
+
 ## Further reading
 
 - [lv_port_disp_template.c](https://github.com/lvgl/lvgl/blob/master/examples/porting/lv_port_disp_template.c) for a template for your own driver.
index 83d0a75..d09613a 100644 (file)
@@ -1,22 +1,18 @@
-```eval_rst
-.. include:: /header.rst 
-:github_url: |github_link_base|/porting/gpu.md
-```
 # Add custom GPU
 LVGL has a flexible and extendable draw pipeline. You can hook it to do some rendering with a GPU or even completely replace the built-in software renderer.
 
 ## Draw context
-The core structure of drawing is `lv_draw_ctx_t`. 
-It contains a pointer to a buffer where drawing should happen and a couple of callbacks to draw rectangles, texts, and other primitives. 
+The core structure of drawing is `lv_draw_ctx_t`.
+It contains a pointer to a buffer where drawing should happen and a couple of callbacks to draw rectangles, texts, and other primitives.
 
 ### Fields
 `lv_draw_ctx_t` has the following fields:
 - `void * buf` Pointer to a buffer to draw into
 - `lv_area_t * buf_area` The position and size of `buf` (absolute coordinates)
 - `const lv_area_t * clip_area` The current clip area with absolute coordinates, always the same or smaller than `buf_area`. All drawings should be clipped to this area.
-- `void (*draw_rect)()` Draw a rectangle with shadow, gradient, border, etc. 
+- `void (*draw_rect)()` Draw a rectangle with shadow, gradient, border, etc.
 - `void (*draw_arc)()` Draw an arc
-- `void (*draw_img_decoded)()` Draw an (A)RGB image that is already decoded by LVGL. 
+- `void (*draw_img_decoded)()` Draw an (A)RGB image that is already decoded by LVGL.
 - `lv_res_t (*draw_img)()` Draw an image before decoding it (it bypasses LVGL's internal image decoders)
 - `void (*draw_letter)()` Draw a letter
 - `void (*draw_line)()` Draw a line
@@ -28,22 +24,22 @@ It contains a pointer to a buffer where drawing should happen and a couple of ca
 (For the sake of simplicity the parameters of the callbacks are not shown here.)
 
 All `draw_*` callbacks receive a pointer to the current `draw_ctx` as their first parameter. Among the other parameters there is a descriptor that tells what to draw,
-e.g. for `draw_rect` it's called [lv_draw_rect_dsc_t](https://github.com/lvgl/lvgl/blob/master/src/draw/lv_draw_rect.h), 
-for `lv_draw_line` it's called [lv_draw_line_dsc_t](https://github.com/lvgl/lvgl/blob/master/src/draw/lv_draw_line.h), etc. 
+e.g. for `draw_rect` it's called [lv_draw_rect_dsc_t](https://github.com/lvgl/lvgl/blob/master/src/draw/lv_draw_rect.h),
+for `lv_draw_line` it's called [lv_draw_line_dsc_t](https://github.com/lvgl/lvgl/blob/master/src/draw/lv_draw_line.h), etc.
 
 To correctly render according to a `draw_dsc` you need to be familiar with the [Boxing model](https://docs.lvgl.io/master/overview/coords.html#boxing-model) of LVGL and the meanings of the fields. The name and meaning of the fields are identical to name and meaning of the [Style properties](https://docs.lvgl.io/master/overview/style-props.html).
 
 ### Initialization
 The `lv_disp_drv_t` has 4 fields related to the draw context:
-- `lv_draw_ctx_t * draw_ctx` Pointer to the `draw_ctx` of this display 
-- `void (*draw_ctx_init)(struct _lv_disp_drv_t * disp_drv, lv_draw_ctx_t * draw_ctx)` Callback to initialize a `draw_ctx` 
+- `lv_draw_ctx_t * draw_ctx` Pointer to the `draw_ctx` of this display
+- `void (*draw_ctx_init)(struct _lv_disp_drv_t * disp_drv, lv_draw_ctx_t * draw_ctx)` Callback to initialize a `draw_ctx`
 - `void (*draw_ctx_deinit)(struct _lv_disp_drv_t * disp_drv, lv_draw_ctx_t * draw_ctx)` Callback to de-initialize a `draw_ctx`
 - `size_t draw_ctx_size` Size of the draw context structure. E.g. `sizeof(lv_draw_sw_ctx_t)`
 
 When you ignore these fields, LVGL will set default values for callbacks and size in `lv_disp_drv_init()` based on the configuration in `lv_conf.h`.
 `lv_disp_drv_register()` will allocate a `draw_ctx` based on `draw_ctx_size` and call `draw_ctx_init()` on it.
 
-However, you can overwrite the callbacks and the size values before calling `lv_disp_drv_register()`. 
+However, you can overwrite the callbacks and the size values before calling `lv_disp_drv_register()`.
 It makes it possible to use your own `draw_ctx` with your own callbacks.
 
 
@@ -67,7 +63,7 @@ draw_sw_ctx->base_draw.draw_letter = lv_draw_sw_letter;
 ```
 
 ### Blend callback
-As you saw above the software renderer adds the `blend` callback field. It's a special callback related to how the software renderer works. 
+As you saw above the software renderer adds the `blend` callback field. It's a special callback related to how the software renderer works.
 All draw operations end up in the `blend` callback which can either fill an area or copy an image to an area by considering an optional mask.
 
 The `lv_draw_sw_blend_dsc_t` parameter describes what and how to blend. It has the following fields:
@@ -81,11 +77,11 @@ The `lv_draw_sw_blend_dsc_t` parameter describes what and how to blend. It has t
 - `lv_blend_mode_t blend_mode` E.g. `LV_BLEND_MODE_ADDITIVE`
 
 
-## Extend the software renderer 
+## Extend the software renderer
 
 ### New blend callback
 
-Let's take a practical example: you would like to use your MCUs GPU for color fill operations only. 
+Let's take a practical example: you would like to use your MCUs GPU for color fill operations only.
 
 As all draw callbacks call `blend` callback to fill an area in the end only the `blend` callback needs to be overwritten.
 
@@ -142,10 +138,10 @@ void my_draw_blend(lv_draw_ctx_t * draw_ctx, const lv_draw_sw_blend_dsc_t * dsc)
 
         /*Make the blend area relative to the buffer*/      
         lv_area_move(&blend_area, -draw_ctx->buf_area->x1, -draw_ctx->buf_area->y1);
-        
+       
         /*Call your custom gou fill function to fill blend_area, on dest_buf with dsc->color*/  
         my_gpu_fill(dest_buf, dest_stride, &blend_area, dsc->color);
-    } 
+    }
     /*Fallback: the GPU doesn't support these settings. Call the SW renderer.*/
     else {
       lv_draw_sw_blend_basic(draw_ctx, dsc);
@@ -158,7 +154,7 @@ The implementation of wait callback is much simpler:
 void my_gpu_wait(lv_draw_ctx_t * draw_ctx)
 {
     while(my_gpu_is_working());
-    
+   
     /*Call SW renderer's wait callback too*/
     lv_draw_sw_wait_for_finish(draw_ctx);
 }
@@ -171,21 +167,21 @@ A custom `draw_rect` callback might look like this:
 void my_draw_rect(lv_draw_ctx_t * draw_ctx, const lv_draw_rect_dsc_t * dsc, const lv_area_t * coords)
 {
   if(lv_draw_mask_is_any(coords) == false && dsc->grad == NULL && dsc->bg_img_src == NULL &&
-     dsc->shadow_width == 0 && dsc->blend_mode = LV_BLEND_MODE_NORMAL) 
+     dsc->shadow_width == 0 && dsc->blend_mode = LV_BLEND_MODE_NORMAL)
   {
     /*Draw the background*/
     my_bg_drawer(draw_ctx, coords, dsc->bg_color, dsc->radius);
-    
+   
     /*Draw the border if any*/
     if(dsc->border_width) {
       my_border_drawer(draw_ctx, coords, dsc->border_width, dsc->border_color, dsc->border_opa)
     }
-    
+   
     /*Draw the outline if any*/
     if(dsc->outline_width) {
       my_outline_drawer(draw_ctx, coords, dsc->outline_width, dsc->outline_color, dsc->outline_opa, dsc->outline_pad)
     }
-  } 
+  }
   /*Fallback*/
   else {
     lv_draw_sw_rect(draw_ctx, dsc, coords);
@@ -197,6 +193,6 @@ void my_draw_rect(lv_draw_ctx_t * draw_ctx, const lv_draw_rect_dsc_t * dsc, cons
 
 ## Fully custom draw engine
 
-For example if your MCU/MPU supports a powerful vector graphics engine you might use only that instead of LVGL's SW renderer. 
+For example if your MCU/MPU supports a powerful vector graphics engine you might use only that instead of LVGL's SW renderer.
 In this case, you need to base the renderer on the basic `lv_draw_ctx_t` (instead of `lv_draw_sw_ctx_t`) and extend/initialize it as you wish.
 
index d06c421..50958a0 100644 (file)
@@ -1,7 +1,3 @@
-```eval_rst
-.. include:: /header.rst 
-:github_url: |github_link_base|/porting/indev.md
-```
 # Input device interface
 
 ## Types of input devices
@@ -9,6 +5,7 @@
 To register an input device an `lv_indev_drv_t` variable has to be initialized. **Be sure to register at least one display before you register any input devices.**
 
 ```c
+/*Register at least one display before you register any input devices*/
 lv_disp_drv_register(&disp_drv);
 
 static lv_indev_drv_t indev_drv;
@@ -45,7 +42,7 @@ void my_input_read(lv_indev_drv_t * drv, lv_indev_data_t*data)
     data->point.y = touchpad_y;
     data->state = LV_INDEV_STATE_PRESSED;
   } else {
-    data->state = LV_INDEV_STATE_RELEASED; 
+    data->state = LV_INDEV_STATE_RELEASED;
   }
 }
 ```
@@ -108,7 +105,7 @@ void encoder_read(lv_indev_drv_t * drv, lv_indev_data_t*data){
 ```
 
 #### Using buttons with Encoder logic
-In addition to standard encoder behavior, you can also utilize its logic to navigate(focus) and edit widgets using buttons. 
+In addition to standard encoder behavior, you can also utilize its logic to navigate(focus) and edit widgets using buttons.
 This is especially handy if you have only few buttons available, or you want to use other buttons in addition to encoder wheel.
 
 You need to have 3 buttons available:
@@ -117,7 +114,7 @@ You need to have 3 buttons available:
 - `LV_KEY_RIGHT` will simulate turning encoder right
 - other keys will be passed to the focused widget
 
-If you hold the keys it will simulate an encoder advance with period specified in `indev_drv.long_press_rep_time`.
+If you hold the keys it will simulate an encoder advance with period specified in `indev_drv.long_press_repeat_time`.
 
 ```c
 indev_drv.type = LV_INDEV_TYPE_ENCODER;
@@ -141,7 +138,7 @@ void encoder_with_keys_read(lv_indev_drv_t * drv, lv_indev_data_t*data){
 *Buttons* mean external "hardware" buttons next to the screen which are assigned to specific coordinates of the screen.
 If a button is pressed it will simulate the pressing on the assigned coordinate. (Similarly to a touchpad)
 
-To assign buttons to coordinates use `lv_indev_set_button_points(my_indev, points_array)`.   
+To assign buttons to coordinates use `lv_indev_set_button_points(my_indev, points_array)`.
 `points_array` should look like `const lv_point_t points_array[] = { {12,30},{60,90}, ...}`
 
 ``` important::  The points_array can't go out of scope. Either declare it as a global variable or as a static variable inside a function.
@@ -175,7 +172,7 @@ The default value of the following parameters can be changed in `lv_indev_drv_t`
 - `scroll_limit` Number of pixels to slide before actually scrolling the object.
 - `scroll_throw`  Scroll throw (momentum) slow-down in [%]. Greater value means faster slow-down.
 - `long_press_time` Press time to send `LV_EVENT_LONG_PRESSED` (in milliseconds)
-- `long_press_rep_time` Interval of sending `LV_EVENT_LONG_PRESSED_REPEAT` (in milliseconds)
+- `long_press_repeat_time` Interval of sending `LV_EVENT_LONG_PRESSED_REPEAT` (in milliseconds)
 - `read_timer` pointer to the `lv_timer` which reads the input device. Its parameters can be changed by `lv_timer_...()` functions. `LV_INDEV_DEF_READ_PERIOD` in `lv_conf.h` sets the default read period.
 
 ### Feedback
@@ -189,9 +186,9 @@ Every input device is associated with a display. By default, a new input device
 The associated display is stored and can be changed in `disp` field of the driver.
 
 ### Buffered reading
-By default, LVGL calls `read_cb` periodically. Because of this intermittent polling there is a chance that some user gestures are missed. 
+By default, LVGL calls `read_cb` periodically. Because of this intermittent polling there is a chance that some user gestures are missed.
 
-To solve this you can write an event driven driver for your input device that buffers measured data. In `read_cb` you can report the buffered data instead of directly reading the input device. 
+To solve this you can write an event driven driver for your input device that buffers measured data. In `read_cb` you can report the buffered data instead of directly reading the input device.
 Setting the `data->continue_reading` flag will tell LVGL there is more data to read and it should call `read_cb` again.
 
 ## Further reading
index 70f926e..2bf1dce 100644 (file)
@@ -1,7 +1,3 @@
-```eval_rst
-.. include:: /header.rst 
-:github_url: |github_link_base|/porting/index.md
-```
 
 # Porting
 
    display
    indev
    tick
-   task-handler
+   timer-handler
    sleep
    os
    log
    gpu
-   
+
 ```
 
index fac928d..9264ebb 100644 (file)
@@ -1,7 +1,3 @@
-```eval_rst
-.. include:: /header.rst 
-:github_url: |github_link_base|/porting/log.md
-```
 # Logging
 
 LVGL has a built-in *Log* module to inform the user about what is happening in the library.
@@ -24,7 +20,7 @@ If your system supports `printf`, you just need to enable `LV_LOG_PRINTF` in `lv
 
 
 ### Custom log function
-If you can't use `printf` or want to use a custom function to log, you can register a "logger" callback with `lv_log_register_print_cb()`. 
+If you can't use `printf` or want to use a custom function to log, you can register a "logger" callback with `lv_log_register_print_cb()`.
 
 For example:
 
@@ -43,4 +39,11 @@ lv_log_register_print_cb(my_log_cb);
 
 ## Add logs
 
-You can also use the log module via the `LV_LOG_TRACE/INFO/WARN/ERROR/USER(text)` functions.
+You can also use the log module via the `LV_LOG_TRACE/INFO/WARN/ERROR/USER(text)` or `LV_LOG(text)` functions. Here:
+
+-  `LV_LOG_TRACE/INFO/WARN/ERROR/USER(text)` append following information to your `text`
+  - Log Level
+  - \_\_FILE\_\_
+  - \_\_LINE\_\_
+  - \_\_func\_\_
+- `LV_LOG(text)` is similar to `LV_LOG_USER` but has no extra information attached.
index cf82f79..2dc4166 100644 (file)
@@ -1,7 +1,3 @@
-```eval_rst
-.. include:: /header.rst 
-:github_url: |github_link_base|/porting/os.md
-```
 # Operating system and interrupts
 
 LVGL is **not thread-safe** by default.
@@ -37,7 +33,7 @@ void other_thread(void)
     mutex_lock(&lvgl_mutex);
     lv_obj_t *img = lv_img_create(lv_scr_act());
     mutex_unlock(&lvgl_mutex);
-    
+
     while(1) {
         mutex_lock(&lvgl_mutex);
         /* change to the next image */
index c11cbf2..6d025b9 100644 (file)
@@ -1,7 +1,3 @@
-```eval_rst
-.. include:: /header.rst 
-:github_url: |github_link_base|/porting/project.md
-```
 
 # Set up a project
 
@@ -16,7 +12,7 @@ You can clone it or [Download](https://github.com/lvgl/lvgl/archive/refs/heads/m
 The graphics library itself is the `lvgl` directory. It contains a couple of folders but to use `lvgl` you only need `.c` and `.h` files from the `src` folder.
 
 ### Automatically add files
-If your IDE automatically adds the files from the folders copied to the project folder (as Eclipse or VSCode does), you can simply copy the `lvgl` folder as it is into your project. 
+If your IDE automatically adds the files from the folders copied to the project folder (as Eclipse or VSCode does), you can simply copy the `lvgl` folder as it is into your project.
 
 ### Make and CMake
 LVGL also supports `make` and `CMake` build systems out of the box. To add LVGL to your Makefile based build system add these lines to your main Makefile:
@@ -26,7 +22,7 @@ LVGL_DIR ?= ${shell pwd}  #The path where the lvgl folder is
 include $(LVGL_DIR)/$(LVGL_DIR_NAME)/lvgl.mk
 ```
 
-For integration with CMake take a look this section of the [Documentation](/get-started/cmake).
+For integration with CMake take a look this section of the [Documentation](/get-started/platforms/cmake).
 
 ### Other platforms and tools
 The [Get started](/get-started/index.html) section contains many platform specific descriptions e.g. for ESP32, Arduino, NXP, RT-Thread, NuttX, etc.
@@ -48,13 +44,13 @@ To get `lv_conf.h` **copy lvgl/lv_conf_template.h** next to the `lvgl` directory
 
 Comments in the config file explain the meaning of the options. Be sure to set at least `LV_COLOR_DEPTH` according to your display's color depth. Note that, the examples and demos explicitly need to be enabled in `lv_conf.h`.
 
-Alternatively, `lv_conf.h` can be copied to another place but then you should add the `LV_CONF_INCLUDE_SIMPLE` define to your compiler options (e.g. `-DLV_CONF_INCLUDE_SIMPLE` for GCC compiler) and set the include path manually (e.g. `-I../include/gui`). 
+Alternatively, `lv_conf.h` can be copied to another place but then you should add the `LV_CONF_INCLUDE_SIMPLE` define to your compiler options (e.g. `-DLV_CONF_INCLUDE_SIMPLE` for GCC compiler) and set the include path manually (e.g. `-I../include/gui`).
 In this case LVGL will attempt to include `lv_conf.h` simply with `#include "lv_conf.h"`.
 
 You can even use a different name for `lv_conf.h`. The custom path can be set via the `LV_CONF_PATH` define.
 For example `-DLV_CONF_PATH="/home/joe/my_project/my_custom_conf.h"`
 
-If `LV_CONF_SKIP` is defined, LVGL will not try to include `lv_conf.h`. Instead you can pass the config defines using build options. For example `"-DLV_COLOR_DEPTH=32 -DLV_USE_BTN 1"`. The unset options will get a default value which is the same as the ones in `lv_conf_template.h`.
+If `LV_CONF_SKIP` is defined, LVGL will not try to include `lv_conf.h`. Instead you can pass the config defines using build options. For example `"-DLV_COLOR_DEPTH=32 -DLV_USE_BTN=1"`. The unset options will get a default value which is the same as the ones in `lv_conf_template.h`.
 
 LVGL also can be used via `Kconfig` and `menuconfig`.  You can use `lv_conf.h` together with Kconfig, but keep in mind that the value from `lv_conf.h` or build settings (`-D...`) overwrite the values set in Kconfig. To ignore the configs from `lv_conf.h` simply remove its content, or define `LV_CONF_SKIP`. 
 
@@ -67,4 +63,4 @@ To use the graphics library you have to initialize it and setup required compone
 2. Initialize your drivers.
 3. Register the display and input devices drivers in LVGL.  Learn more about [Display](/porting/display) and [Input device](/porting/indev) registration.
 4. Call `lv_tick_inc(x)` every `x` milliseconds in an interrupt to report the elapsed time to LVGL. [Learn more](/porting/tick).
-5. Call `lv_timer_handler()` every few milliseconds to handle LVGL related tasks. [Learn more](/porting/task-handler).
+5. Call `lv_timer_handler()` every few milliseconds to handle LVGL related tasks. [Learn more](/porting/timer-handler).
index a209cc0..b0a877c 100644 (file)
@@ -1,7 +1,3 @@
-```eval_rst
-.. include:: /header.rst 
-:github_url: |github_link_base|/porting/sleep.md
-```
 # Sleep management
 
 The MCU can go to sleep when no user input happens. In this case, the main `while(1)` should look like this:
index 7de2db0..a3e8e94 100644 (file)
@@ -1,7 +1,3 @@
-```eval_rst
-.. include:: /header.rst 
-:github_url: |github_link_base|/porting/tick.md
-```
 # Tick interface
 
 LVGL needs a system tick to know elapsed time for animations and other tasks.
index 0640008..0ce2698 100644 (file)
@@ -7,7 +7,7 @@ commonmark==0.9.1
 docutils==0.16
 idna==2.10
 imagesize==1.2.0
-importlib-metadata==4.0.1
+importlib-metadata==4.8.1
 Jinja2==2.11.3
 Markdown==3.3.4
 MarkupSafe==1.1.1
@@ -19,16 +19,16 @@ recommonmark==0.6.0
 requests==2.25.1
 six==1.16.0
 snowballstemmer==2.1.0
-Sphinx==4.0.1
+Sphinx==4.5.0
 sphinx-markdown-tables==0.0.15
 sphinx-rtd-theme==0.5.2
 sphinx-sitemap==2.2.0
 sphinxcontrib-applehelp==1.0.2
 sphinxcontrib-devhelp==1.0.2
-sphinxcontrib-htmlhelp==1.0.3
+sphinxcontrib-htmlhelp==2.0.0
 sphinxcontrib-jsmath==1.0.1
 sphinxcontrib-qthelp==1.0.3
-sphinxcontrib-serializinghtml==1.1.4
+sphinxcontrib-serializinghtml==1.1.5
 typing-extensions==3.10.0.0
 urllib3==1.26.5
 zipp==3.4.1
index 245c723..5b50271 100644 (file)
@@ -1,7 +1,3 @@
-```eval_rst
-.. include:: /header.rst 
-:github_url: |github_link_base|/widgets/core/arc.md
-```
 # Arc (lv_arc)
 
 ## Overview
@@ -10,20 +6,20 @@ The Arc consists of a background and a foreground arc. The foreground (indicator
 
 ## Parts and Styles
 - `LV_PART_MAIN`  Draws a background using the typical background style properties and an arc using the arc style properties. The arc's size and position will respect the *padding* style properties.
-- `LV_PART_INDICATOR` Draws another arc using the *arc* style properties. Its padding values are interpreted relative to the background arc. 
-- `LV_PART_KNOB` Draws a handle on the end of the indicator using all background properties and padding values. With zero padding the knob size is the same as the indicator's width. 
-Larger padding makes it larger, smaller padding makes it smaller. 
+- `LV_PART_INDICATOR` Draws another arc using the *arc* style properties. Its padding values are interpreted relative to the background arc.
+- `LV_PART_KNOB` Draws a handle on the end of the indicator using all background properties and padding values. With zero padding the knob size is the same as the indicator's width.
+Larger padding makes it larger, smaller padding makes it smaller.
 
 ## Usage
 
 ### Value and range
 
-A new value can be set using `lv_arc_set_value(arc, new_value)`. 
+A new value can be set using `lv_arc_set_value(arc, new_value)`.
 The value is interpreted in a range (minimum and maximum values) which can be modified with `lv_arc_set_range(arc, min, max)`.
 The default range is 0..100.
 
 The indicator arc is drawn on the main part's arc. This if the value is set to maximum the indicator arc will cover the entire "background" arc.
-To set the start and end angle of the background arc use the `lv_arc_set_bg_angles(arc, start_angle, end_angle)` functions or `lv_arc_set_bg_start/end_angle(arc, angle)`. 
+To set the start and end angle of the background arc use the `lv_arc_set_bg_angles(arc, start_angle, end_angle)` functions or `lv_arc_set_bg_start/end_angle(arc, angle)`.
 
 Zero degrees is at the middle right (3 o'clock) of the object and the degrees are increasing in clockwise direction.
 The angles should be in the [0;360] range.
@@ -42,7 +38,7 @@ The arc can be one of the following modes:
 The mode can be set by `lv_arc_set_mode(arc, LV_ARC_MODE_...)` and used only if the angle is set by `lv_arc_set_value()` or the arc is adjusted by finger.
 
 ### Change rate
-If the arc is pressed the current value will set with a limited speed according to the set *change rate*. 
+If the arc is pressed the current value will set with a limited speed according to the set *change rate*.
 The change rate is defined in degree/second unit and can be set with `lv_arc_set_change_rage(arc, rate)`
 
 
@@ -60,20 +56,27 @@ lv_obj_clear_flag(arc, LV_OBJ_FLAG_CLICKABLE);
 
 ### Advanced hit test
 
-If the `LV_OBJ_FLAG_ADV_HITTEST` flag is enabled the arc can be clicked through in the middle. Clicks are recognized only on the ring of the background arc. `lv_obj_set_ext_click_size()` makes the sensitive area larger inside and outside with the given number of pixels. 
+If the `LV_OBJ_FLAG_ADV_HITTEST` flag is enabled the arc can be clicked through in the middle. Clicks are recognized only on the ring of the background arc. `lv_obj_set_ext_click_size()` makes the sensitive area larger inside and outside with the given number of pixels.
+
 
+### Place another object to the knob
 
+Another object can be positioned according to the current position of the arc in order to follow the arc's current value (angle).
+To do this use `lv_arc_align_obj_to_angle(arc, obj_to_align, radius_offset)`.
 
+Similarly `lv_arc_rotate_obj_to_angle(arc, obj_to_rotate, radius_offset)` can be used to rotate the object to the current value of the arc.
+
+It's a typical use case to call these functions in the `VALUE_CHANGED` event of the arc.
 
 ## Events
 - `LV_EVENT_VALUE_CHANGED` sent when the arc is pressed/dragged to set a new value.
 - `LV_EVENT_DRAW_PART_BEGIN` and `LV_EVENT_DRAW_PART_END` are sent with the following types:
-    - `LV_ARC_DRAW_PART_BACKGROUND` The background arc. 
+    - `LV_ARC_DRAW_PART_BACKGROUND` The background arc.
         - `part`: `LV_PART_MAIN`
         - `p1`: center of the arc
         - `radius`: radius of the arc
         - `arc_dsc`
-    - `LV_ARC_DRAW_PART_FOREGROUND` The foreground arc.  
+    - `LV_ARC_DRAW_PART_FOREGROUND` The foreground arc.
         - `part`: `LV_PART_INDICATOR`
         - `p1`: center of the arc
         - `radius`: radius of the arc
@@ -82,9 +85,9 @@ If the `LV_OBJ_FLAG_ADV_HITTEST` flag is enabled the arc can be clicked through
         - `part`: `LV_PART_KNOB`
         - `draw_area`: the area of the knob
         - `rect_dsc`:
-    
+
 See the events of the [Base object](/widgets/obj) too.
-    
+
 Learn more about [Events](/overview/event).
 
 ## Keys
index 838d8cd..a18f7d7 100644 (file)
@@ -1,12 +1,8 @@
-```eval_rst
-.. include:: /header.rst 
-:github_url: |github_link_base|/widgets/core/bar.md
-```
 # Bar (lv_bar)
 
 ## Overview
 
-The bar object has a background and an indicator on it. The width of the indicator is set according to the current value of the bar. 
+The bar object has a background and an indicator on it. The width of the indicator is set according to the current value of the bar.
 
 Vertical bars can be created if the width of the object is smaller than its height.
 
@@ -16,7 +12,7 @@ Not only the end, but also the start value of the bar can be set, which changes
 ## Parts and Styles
 - `LV_PART_MAIN` The background of the bar and it uses the typical background style properties. Adding padding makes the indicator smaller or larger. The `anim_time` style property sets the animation time if the values set with `LV_ANIM_ON`.
 - `LV_PART_INDICATOR` The indicator itself; also uses all the typical background properties.
- 
+
 ## Usage
 
 ### Value and range
@@ -35,10 +31,10 @@ The bar can be one of the following modes:
 ## Events
 - `LV_EVENT_DRAW_PART_BEGIN` and `LV_EVENT_DRAW_PART_END` are sent for the following parts:
     - `LV_BAR_DRAW_PART_INDICATOR` The indicator of the bar
-        - `part`: `LV_PART_INDICATOR` 
+        - `part`: `LV_PART_INDICATOR`
         - `draw_area`: area of the indicator
         - `rect_dsc`
-        
+
 See the events of the [Base object](/widgets/obj) too.
 
 Learn more about [Events](/overview/event).
index 6824d19..152ef58 100644 (file)
@@ -1,7 +1,3 @@
-```eval_rst
-.. include:: /header.rst 
-:github_url: |github_link_base|/widgets/core/btnmatrix.md
-```
 # Button matrix (lv_btnmatrix)
 
 ## Overview
@@ -12,7 +8,7 @@ The Button matrix is added to the default group (if one is set). Besides the But
 
 ## Parts and Styles
 - `LV_PART_MAIN` The background of the button matrix, uses the typical background style properties. `pad_row` and `pad_column` sets the space between the buttons.
-- `LV_PART_ITEMS` The buttons all use the text and typical background style properties except translations and transformations. 
+- `LV_PART_ITEMS` The buttons all use the text and typical background style properties except translations and transformations.
 
 ## Usage
 
@@ -27,9 +23,9 @@ So in the example the first row will have 2 buttons each with 50% width and a se
 
 ### Control buttons
 The buttons' width can be set relative to the other button in the same row with `lv_btnmatrix_set_btn_width(btnm, btn_id, width)`
-E.g. in a line with two buttons: *btnA, width = 1* and *btnB, width = 2*, *btnA* will have 33 % width and *btnB* will have 66 % width. 
+E.g. in a line with two buttons: *btnA, width = 1* and *btnB, width = 2*, *btnA* will have 33 % width and *btnB* will have 66 % width.
 It's similar to how the [`flex-grow`](https://developer.mozilla.org/en-US/docs/Web/CSS/flex-grow) property works in CSS.
-The width must be in the \[1..7\] range and the default width is 1.
+The width must be in the \[1..15\] range and the default width is 1.
 
 In addition to the width, each button can be customized with the following parameters:
 - `LV_BTNMATRIX_CTRL_HIDDEN` Makes a button hidden (hidden buttons still take up space in the layout, they are just not visible or clickable)
@@ -45,14 +41,14 @@ In addition to the width, each button can be customized with the following param
 
 By default, all flags are disabled.
 
-To set or clear a button's control attribute, use `lv_btnmatrix_set_btn_ctrl(btnm, btn_id, LV_BTNM_CTRL_...)` and 
+To set or clear a button's control attribute, use `lv_btnmatrix_set_btn_ctrl(btnm, btn_id, LV_BTNM_CTRL_...)` and
 `lv_btnmatrix_clear_btn_ctrl(btnm, btn_id, LV_BTNMATRIX_CTRL_...)` respectively. More `LV_BTNM_CTRL_...` values can be OR-ed
 
-To set/clear the same control attribute for all buttons of a button matrix, use `lv_btnmatrix_set_btn_ctrl_all(btnm, LV_BTNM_CTRL_...)` and 
+To set/clear the same control attribute for all buttons of a button matrix, use `lv_btnmatrix_set_btn_ctrl_all(btnm, LV_BTNM_CTRL_...)` and
 `lv_btnmatrix_clear_btn_ctrl_all(btnm, LV_BTNMATRIX_CTRL_...)`.
 
 The set a control map for a button matrix (similarly to the map for the text), use `lv_btnmatrix_set_ctrl_map(btnm, ctrl_map)`.
-An element of `ctrl_map` should look like `ctrl_map[0] = width | LV_BTNM_CTRL_NO_REPEAT |  LV_BTNM_CTRL_CHECHKABLE`. 
+An element of `ctrl_map` should look like `ctrl_map[0] = width | LV_BTNM_CTRL_NO_REPEAT |  LV_BTNM_CTRL_CHECHKABLE`.
 The number of elements should be equal to the number of buttons (excluding newlines characters).
 
 ### One check
@@ -63,7 +59,7 @@ The "One check" feature can be enabled with `lv_btnmatrix_set_one_checked(btnm,
 - `LV_EVENT_DRAW_PART_BEGIN` and `LV_EVENT_DRAW_PART_END` are sent for the following types:
     - `LV_BTNMATRIX_DRAW_PART_BTN` The individual buttons.
         - `part`: `LV_PART_ITEMS`
-        - `id`:index of the button being drawn 
+        - `id`:index of the button being drawn
         - `draw_area`: the area of teh button
         - `rect_dsc`
 
index 04f9bbc..27f6236 100644 (file)
@@ -1,14 +1,10 @@
-```eval_rst
-.. include:: /header.rst 
-:github_url: |github_link_base|/widgets/core/canvas.md
-```
 # Canvas (lv_canvas)
 
 
 ## Overview
 
-A Canvas inherits from [Image](/widgets/core/img) where the user can draw anything. 
-Rectangles, texts, images, lines, arcs can be drawn here using lvgl's drawing engine. 
+A Canvas inherits from [Image](/widgets/core/img) where the user can draw anything.
+Rectangles, texts, images, lines, arcs can be drawn here using lvgl's drawing engine.
 Additionally "effects" can be applied, such as rotation, zoom and blur.
 
 
@@ -19,31 +15,31 @@ Additionally "effects" can be applied, such as rotation, zoom and blur.
 
 ### Buffer
 The Canvas needs a buffer in which stores the drawn image.
-To assign a buffer to a Canvas, use `lv_canvas_set_buffer(canvas, buffer, width, height, LV_IMG_CF_...)`. 
+To assign a buffer to a Canvas, use `lv_canvas_set_buffer(canvas, buffer, width, height, LV_IMG_CF_...)`.
 Where  `buffer` is a static buffer (not just a local variable) to hold the image of the canvas.
 For example,
-`static lv_color_t buffer[LV_CANVAS_BUF_SIZE_TRUE_COLOR(width, height)]`. 
+`static lv_color_t buffer[LV_CANVAS_BUF_SIZE_TRUE_COLOR(width, height)]`.
 `LV_CANVAS_BUF_SIZE_...` macros help to determine the size of the buffer with different color formats.
 
-The canvas supports all the built-in color formats like `LV_IMG_CF_TRUE_COLOR` or `LV_IMG_CF_INDEXED_2BIT`. 
+The canvas supports all the built-in color formats like `LV_IMG_CF_TRUE_COLOR` or `LV_IMG_CF_INDEXED_2BIT`.
 See the full list in the [Color formats](/overview/image.html#color-formats) section.
 
 ### Indexed colors
-For `LV_IMG_CF_INDEXED_1/2/4/8` color formats a palette needs to be 
+For `LV_IMG_CF_INDEXED_1/2/4/8` color formats a palette needs to be
 initialized with  `lv_canvas_set_palette(canvas, 3, LV_COLOR_RED)`. It sets pixels with *index=3* to red.
 
 ### Drawing
 To set a pixel's color on the canvas, use `lv_canvas_set_px_color(canvas, x, y, LV_COLOR_RED)`.
-With `LV_IMG_CF_INDEXED_...`  the index of the color needs to be passed as color. 
+With `LV_IMG_CF_INDEXED_...`  the index of the color needs to be passed as color.
 E.g. `lv_color_t c; c.full = 3;`
 
 To set a pixel's opacity with `LV_IMG_CF_TRUE_COLOR_ALPHA` or `LV_IMG_CF_ALPHA_...` format on the canvas, use `lv_canvas_set_px_opa(canvas, x, y, opa)`.
 
 
-`lv_canvas_fill_bg(canvas, LV_COLOR_BLUE, LV_OPA_50)` fills the whole canvas to blue with 50% opacity. Note that if the current color format doesn't support colors (e.g. `LV_IMG_CF_ALPHA_2BIT`) the color will be ignored. 
+`lv_canvas_fill_bg(canvas, LV_COLOR_BLUE, LV_OPA_50)` fills the whole canvas to blue with 50% opacity. Note that if the current color format doesn't support colors (e.g. `LV_IMG_CF_ALPHA_2BIT`) the color will be ignored.
 Similarly, if opacity is not supported (e.g. `LV_IMG_CF_TRUE_COLOR`) it will be ignored.
 
-An array of pixels can be copied to the canvas with `lv_canvas_copy_buf(canvas, buffer_to_copy, x, y, width, height)`. 
+An array of pixels can be copied to the canvas with `lv_canvas_copy_buf(canvas, buffer_to_copy, x, y, width, height)`.
 The color format of the buffer and the canvas need to match.
 
 To draw something to the canvas use
@@ -59,7 +55,7 @@ To draw something to the canvas use
 The draw function can draw to any color format. For example, it's possible to draw a text to an `LV_IMG_VF_ALPHA_8BIT` canvas and use the result image as a [draw mask](/overview/drawing) later.
 
 ### Transformations
-`lv_canvas_transform()` can be used to rotate and/or scale the image of an image and store the result on the canvas. 
+`lv_canvas_transform()` can be used to rotate and/or scale the image of an image and store the result on the canvas.
 The function needs the following parameters:
 - `canvas` pointer to a canvas object to store the result of the transformation.
 - `img pointer` to an image descriptor to transform. Can be the image descriptor of another canvas too (`lv_canvas_get_img()`).
@@ -70,16 +66,16 @@ The function needs the following parameters:
 - `pivot_x` pivot X of rotation. Relative to the source canvas. Set to `source width / 2` to rotate around the center
 - `pivot_y` pivot Y of rotation. Relative to the source canvas. Set to `source height / 2` to rotate around the center
 - `antialias` true: apply anti-aliasing during the transformation. Looks better but slower.
- 
+
 Note that a canvas can't be rotated on itself.  You need a source and destination canvas or image.
 
 ### Blur
-A given area of the canvas can be blurred horizontally with `lv_canvas_blur_hor(canvas, &area, r)` or vertically with `lv_canvas_blur_ver(canvas, &area, r)`. 
+A given area of the canvas can be blurred horizontally with `lv_canvas_blur_hor(canvas, &area, r)` or vertically with `lv_canvas_blur_ver(canvas, &area, r)`.
 `r` is the radius of the blur (greater value means more intensive burring). `area` is the area where the blur should be applied (interpreted relative to the canvas).
 
 ## Events
 No special events are sent by canvas objects.
-The same events are sent as for the 
+The same events are sent as for the
 
 See the events of the [Images](/widgets/core/img) too.
 
index 46c6795..99a54fc 100644 (file)
@@ -1,7 +1,3 @@
-```eval_rst
-.. include:: /header.rst 
-:github_url: |github_link_base|/widgets/core/checkbox.md
-```
 # Checkbox (lv_checkbox)
 
 
 The Checkbox object is created from a "tick box" and a label. When the Checkbox is clicked the tick box is toggled.
 
 ## Parts and Styles
-- `LV_PART_MAIN` The is the background of the Checkbox and it uses the text and all the typical background style properties. 
+- `LV_PART_MAIN` The is the background of the Checkbox and it uses the text and all the typical background style properties.
 `pad_column` adjusts the spacing between the tickbox and the label
-- `LV_PART_INDICATOR` The "tick box" is a square that uses all the typical background style properties. 
+- `LV_PART_INDICATOR` The "tick box" is a square that uses all the typical background style properties.
 By default, its size is equal to the height of the main part's font. Padding properties make the tick box larger in the respective directions.
 
-The Checkbox is added to the default group (if it is set). 
+The Checkbox is added to the default group (if it is set).
 
 ## Usage
 
@@ -23,7 +19,7 @@ The Checkbox is added to the default group (if it is set).
 ### Text
 The text can be modified with the `lv_checkbox_set_text(cb, "New text")` function and will be dynamically allocated.
 
-To set a static text, 
+To set a static text,
 use `lv_checkbox_set_static_text(cb, txt)`. This way, only a pointer to `txt` will be stored. The text then shouldn't be deallocated while the checkbox exists.
 
 ### Check, uncheck, disable
@@ -38,7 +34,7 @@ lv_obj_add_state(cb, LV_STATE_CHECKED | LV_STATE_DISABLED); /*Make the checkbox
 - `LV_EVENT_VALUE_CHANGED` Sent when the checkbox is toggled.
 - `LV_EVENT_DRAW_PART_BEGIN` and `LV_EVENT_DRAW_PART_END` are sent for the following types:
     - `LV_CHECKBOX_DRAW_PART_BOX` The tickbox of the checkbox
-        - `part`: `LV_PART_INDICATOR` 
+        - `part`: `LV_PART_INDICATOR`
         - `draw_area`: the area of the tickbox
         - `rect_dsc`
 
index 7ed20dc..c14b933 100644 (file)
@@ -1,16 +1,12 @@
-```eval_rst
-.. include:: /header.rst 
-:github_url: |github_link_base|/widgets/core/dropdown.md
-```
 # Drop-down list (lv_dropdown)
 
 
 ## Overview
 
-The drop-down list allows the user to select one value from a list. 
+The drop-down list allows the user to select one value from a list.
 
-The drop-down list is closed by default and displays a single value or a predefined text. 
-When activated (by click on the drop-down list), a list is created from which the user may select one option. 
+The drop-down list is closed by default and displays a single value or a predefined text.
+When activated (by click on the drop-down list), a list is created from which the user may select one option.
 When the user selects a new value, the list is deleted again.
 
 The Drop-down list is added to the default group (if it is set). Besides the Drop-down list is an editable object to allow selecting an option with encoder navigation too.
@@ -25,9 +21,9 @@ The Dropdown widget is built from the elements: "button" and "list" (both not re
 The button goes to `LV_STATE_CHECKED` when it's opened.
 
 ### List
-- `LV_PART_MAIN` The list itself. Uses the typical background properties. `max_height` can be used to limit the height of the list. 
+- `LV_PART_MAIN` The list itself. Uses the typical background properties. `max_height` can be used to limit the height of the list.
 - `LV_PART_SCROLLBAR` The scrollbar background, border, shadow properties and width (for its own width) and right padding for the spacing on the right.
-- `LV_PART_SELECTED` Refers to the currently pressed, checked or pressed+checked option. Also uses the typical background properties. 
+- `LV_PART_SELECTED` Refers to the currently pressed, checked or pressed+checked option. Also uses the typical background properties.
 
 The list is hidden/shown on open/close. To add styles to it use `lv_dropdown_get_list(dropdown)`  to get the list object. For example:
 
@@ -36,8 +32,8 @@ lv_obj_t * list = lv_dropdown_get_list(dropdown) /*Get the list*/
 lv_obj_add_style(list, &my_style, ...)           /*Add the styles to the list*/}`
 ```
 
-Alternatively the theme can be extended with the new styles. 
- 
+Alternatively the theme can be extended with the new styles.
+
 ## Usage
 
 ## Overview
@@ -47,7 +43,7 @@ Options are passed to the drop-down list as a string with `lv_dropdown_set_optio
 
 The `lv_dropdown_add_option(dropdown, "New option", pos)` function inserts a new option to `pos` index.
 
-To save memory the options can set from a static(constant) string too with `lv_dropdown_set_static_options(dropdown, options)`. 
+To save memory the options can set from a static(constant) string too with `lv_dropdown_set_static_options(dropdown, options)`.
 In this case the options string should be alive while the drop-down list exists and `lv_dropdown_add_option` can't be used
 
 You can select an option manually with `lv_dropdown_set_selected(dropdown, id)`, where `id` is the index of an option.
index da98e9d..ee1e6ac 100644 (file)
@@ -1,7 +1,3 @@
-```eval_rst
-.. include:: /header.rst 
-:github_url: |github_link_base|/widgets/core/img.md
-```
 # Image (lv_img)
 
 
@@ -35,7 +31,7 @@ To set an image sourced from a file, use `lv_img_set_src(img, "S:folder1/my_img.
 You can also set a symbol similarly to [Labels](/widgets/core/label). In this case, the image will be rendered as text according to the *font* specified in the style.  It enables to use of light-weight monochrome "letters" instead of real images. You can set symbol like `lv_img_set_src(img1, LV_SYMBOL_OK)`.
 
 ### Label as an image
-Images and labels are sometimes used to convey the same thing. For example, to describe what a button does. 
+Images and labels are sometimes used to convey the same thing. For example, to describe what a button does.
 Therefore, images and labels are somewhat interchangeable, that is the images can display texts by using `LV_SYMBOL_DUMMY` as the prefix of the text. For example, `lv_img_set_src(img, LV_SYMBOL_DUMMY "Some text")`.
 
 
@@ -75,7 +71,7 @@ Using the offset parameter a [Texture atlas](https://en.wikipedia.org/wiki/Textu
 
 ## Transformations
 
-Using the `lv_img_set_zoom(img, factor)` the images will be zoomed. Set `factor` to `256` or `LV_IMG_ZOOM_NONE` to disable zooming. 
+Using the `lv_img_set_zoom(img, factor)` the images will be zoomed. Set `factor` to `256` or `LV_IMG_ZOOM_NONE` to disable zooming.
 A larger value enlarges the images (e.g. `512` double size), a smaller value shrinks it (e.g. `128` half size).
 Fractional scale works as well. E.g. `281` for 10% enlargement.
 
@@ -87,16 +83,21 @@ By default, the pivot point of the rotation is the center of the image. It can b
 
 The quality of the transformation can be adjusted with `lv_img_set_antialias(img, true/false)`. With enabled anti-aliasing the transformations are higher quality but slower.
 
-The transformations require the whole image to be available. Therefore indexed images (`LV_IMG_CF_INDEXED_...`), alpha only images (`LV_IMG_CF_ALPHA_...`) or images from files can not be transformed. 
+The transformations require the whole image to be available. Therefore indexed images (`LV_IMG_CF_INDEXED_...`), alpha only images (`LV_IMG_CF_ALPHA_...`) or images from files can not be transformed.
 In other words transformations work only on true color images stored as C array, or if a custom [Image decoder](/overview/images#image-edecoder) returns the whole image.
 
 Note that the real coordinates of image objects won't change during transformation. That is `lv_obj_get_width/height/x/y()` will return the original, non-zoomed coordinates.
 
+**IMPORTANT**
+The transformation of the image is independent of the transformation properties coming from styles. (See [here](/overview/style#opacity-and-transformations)). The main differences are that pure image widget transformation
+- doesn't transform the children of the image widget
+- image is transformed directly without creating an intermediate layer (buffer) to snapshot the widget
+
 ### Size mode
 
-By default, when the image is zoomed or rotated the real coordinates of the image object are not changed. 
-The larger content simply overflows the object's boundaries. 
-It also means the layouts are not affected the by the transformations. 
+By default, when the image is zoomed or rotated the real coordinates of the image object are not changed.
+The larger content simply overflows the object's boundaries.
+It also means the layouts are not affected the by the transformations.
 
 If you need the object size to be updated to the transformed size set `lv_img_set_size_mode(img, LV_IMG_SIZE_MODE_REAL)`. (The previous mode is the default and called `LV_IMG_SIZE_MODE_VIRTUAL`).
 In this case if the width/height of the object is set to `LV_SIZE_CONTENT` the object's size will be set to the zoomed and rotated size.
@@ -104,8 +105,8 @@ If an explicit size is set then the overflowing content will be cropped.
 
 ### Rounded image
 
-You can use `lv_obj_set_style_radius` to set radius to an image, and enable `lv_obj_set_style_clip_corner` to clip the 
-content to rounded rectangle or circular shape. Please note this will have some negative performance impact to CPU 
+You can use `lv_obj_set_style_radius` to set radius to an image, and enable `lv_obj_set_style_clip_corner` to clip the
+content to rounded rectangle or circular shape. Please note this will have some negative performance impact to CPU
 based renderers.
 
 ## Events
index 852b02c..be6bd8a 100644 (file)
@@ -1,14 +1,10 @@
-```eval_rst
-.. include:: /header.rst 
-:github_url: |github_link_base|/object-types/index.md
-```
 # Core widgets
 
 ```eval_rst
 
 .. toctree::
    :maxdepth: 1
-   
+
    arc
    bar
    btn
@@ -24,7 +20,7 @@
    switch
    table
    textarea
-   
+
 ```
 
 
index 5911748..cf2b3c8 100644 (file)
@@ -1,29 +1,25 @@
-```eval_rst
-.. include:: /header.rst 
-:github_url: |github_link_base|/widgets/core/core/label.md
-```
 # Label (lv_label)
 
 ## Overview
-A label is the basic object type that is used to display text. 
+A label is the basic object type that is used to display text.
 
 ## Parts and Styles
 - `LV_PART_MAIN`  Uses all the typical background properties and the text properties.  The padding values can be used to add space between the text and the background.
 - `LV_PART_SCROLLBAR` The scrollbar that is shown when the text is larger than the widget's size.
-- `LV_PART_SELECTED` Tells the style of the [selected text](#text-selection). Only `text_color` and `bg_color` style properties can be used. 
+- `LV_PART_SELECTED` Tells the style of the [selected text](#text-selection). Only `text_color` and `bg_color` style properties can be used.
 
 ## Usage
 
 ### Set text
-You can set the text on a label at runtime with `lv_label_set_text(label, "New text")`. 
-This will allocate a buffer dynamically, and the provided string will be copied into that buffer. 
+You can set the text on a label at runtime with `lv_label_set_text(label, "New text")`.
+This will allocate a buffer dynamically, and the provided string will be copied into that buffer.
 Therefore, you don't need to keep the text you pass to `lv_label_set_text` in scope after that function returns.
 
 With `lv_label_set_text_fmt(label, "Value: %d", 15)` printf formatting can be used to set the text.
 
-Labels are able to show text from a static character buffer.  To do so, use `lv_label_set_text_static(label, "Text")`. 
-In this case, the text is not stored in the dynamic memory and the given buffer is used directly instead. 
-This means that the array can't be a local variable which goes out of scope when the function exits. 
+Labels are able to show text from a static character buffer.  To do so, use `lv_label_set_text_static(label, "Text")`.
+In this case, the text is not stored in the dynamic memory and the given buffer is used directly instead.
+This means that the array can't be a local variable which goes out of scope when the function exits.
 Constant strings are safe to use with `lv_label_set_text_static` (except when used with `LV_LABEL_LONG_DOT`, as it modifies the buffer in-place), as they are stored in ROM memory, which is always accessible.
 
 ### Newline
@@ -31,33 +27,37 @@ Constant strings are safe to use with `lv_label_set_text_static` (except when us
 Newline characters are handled automatically by the label object. You can use `\n` to make a line break. For example: `"line1\nline2\n\nline4"`
 
 ### Long modes
-By default, the width and height of the label is set to `LV_SIZE_CONTENT`. Therefore, the size of the label is automatically expanded to the text size. 
-Otherwise, if the width or height are explicitly set (using  e.g.`lv_obj_set_width` or a layout), the lines wider than the label's width can be manipulated according to several long mode policies. 
+By default, the width and height of the label is set to `LV_SIZE_CONTENT`. Therefore, the size of the label is automatically expanded to the text size.
+Otherwise, if the width or height are explicitly set (using  e.g.`lv_obj_set_width` or a layout), the lines wider than the label's width can be manipulated according to several long mode policies.
 Similarly, the policies can be applied if the height of the text is greater than the height of the label.
 - `LV_LABEL_LONG_WRAP` Wrap too long lines. If the height is `LV_SIZE_CONTENT` the label's height will be expanded, otherwise the text will be clipped. (Default)
-- `LV_LABEL_LONG_DOT` Replaces the last 3 characters from bottom right corner of the label with dots (`.`) 
+- `LV_LABEL_LONG_DOT` Replaces the last 3 characters from bottom right corner of the label with dots (`.`)
 - `LV_LABEL_LONG_SCROLL` If the text is wider than the label scroll it horizontally back and forth. If it's higher, scroll vertically. Only one direction is scrolled and horizontal scrolling has higher precedence.
 - `LV_LABEL_LONG_SCROLL_CIRCULAR` If the text is wider than the label scroll it horizontally continuously. If it's higher, scroll vertically. Only one direction is scrolled and horizontal scrolling has higher precedence.
 - `LV_LABEL_LONG_CLIP` Simply clip the parts of the text outside the label.
 
 You can specify the long mode with `lv_label_set_long_mode(label, LV_LABEL_LONG_...)`
 
-Note that `LV_LABEL_LONG_DOT` manipulates the text buffer in-place in order to add/remove the dots.  
-When `lv_label_set_text` or `lv_label_set_array_text` are used, a separate buffer is allocated and this implementation detail is unnoticed. 
+Note that `LV_LABEL_LONG_DOT` manipulates the text buffer in-place in order to add/remove the dots.
+When `lv_label_set_text` or `lv_label_set_array_text` are used, a separate buffer is allocated and this implementation detail is unnoticed.
 This is not the case with `lv_label_set_text_static`. The buffer you pass to `lv_label_set_text_static` must be writable if you plan to use `LV_LABEL_LONG_DOT`.
 
 ### Text recolor
-In the text, you can use commands to recolor parts of the text. For example: `"Write a #ff0000 red# word"`. 
-This feature can be enabled individually for each label by `lv_label_set_recolor()` function. 
+In the text, you can use commands to recolor parts of the text. For example: `"Write a #ff0000 red# word"`.
+This feature can be enabled individually for each label by `lv_label_set_recolor()` function.
 
 ### Text selection
-If enabled by `LV_LABEL_TEXT_SELECTION` part of the text can be selected. It's similar to when you use your mouse on a PC to select a text. 
+If enabled by `LV_LABEL_TEXT_SELECTION` part of the text can be selected. It's similar to when you use your mouse on a PC to select a text.
 The whole mechanism (click and select the text as you drag your finger/mouse) is implemented in [Text area](/widgets/core/textarea) and the Label widget only allows manual text selection with
 `lv_label_get_text_selection_start(label, start_char_index)` and `lv_label_get_text_selection_start(label, end_char_index)`.
- 
+
 ### Very long texts
 LVGL can efficiently handle very long (e.g. > 40k characters) labels by saving some extra data (~12 bytes) to speed up drawing. To enable this feature, set `LV_LABEL_LONG_TXT_HINT   1` in `lv_conf.h`.
 
+### Custom scrolling animations
+Some aspects of the scrolling animations in long modes `LV_LABEL_LONG_SCROLL` and `LV_LABEL_LONG_SCROLL_CIRCULAR` can be customized by setting the animation property of a style, using `lv_style_set_anim()`.
+Currently, only the start and repeat delay of the circular scrolling animation can be customized. If you need to customize another aspect of the scrolling animation, feel free to open an [issue on Github](https://github.com/lvgl/lvgl/issues) to request the feature.
+
 ### Symbols
 The labels can display symbols alongside letters (or on their own). Read the [Font](/overview/font) section to learn more about the symbols.
 
@@ -81,12 +81,12 @@ Learn more about [Keys](/overview/indev).
 
 ```
 
-## API 
+## API
 
 ```eval_rst
 
 .. doxygenfile:: lv_label.h
   :project: lvgl
-        
+
 ```
 
index 078b6ff..31ae3c1 100644 (file)
@@ -1,7 +1,3 @@
-```eval_rst
-.. include:: /header.rst 
-:github_url: |github_link_base|/widgets/core/line.md
-```
 # Line (lv_line)
 
 ## Overview
@@ -12,14 +8,14 @@ The Line object is capable of drawing straight lines between a set of points.
 
 ## Usage
 
-### Set points 
-The points have to be stored in an `lv_point_t` array and passed to the object by the `lv_line_set_points(lines, point_array, point_cnt)` function. 
+### Set points
+The points have to be stored in an `lv_point_t` array and passed to the object by the `lv_line_set_points(lines, point_array, point_cnt)` function.
 
 ### Auto-size
 By default, the Line's width and height are set to `LV_SIZE_CONTENT`. This means it will automatically set its size to fit all the points. If the size is set explicitly, parts on the line may not be visible.
 
 ### Invert y
-By default, the *y == 0* point is in the top of the object. It might be counter-intuitive in some cases so the y coordinates can be inverted with `lv_line_set_y_invert(line, true)`. In this case,  *y == 0* will be the bottom of the object. 
+By default, the *y == 0* point is in the top of the object. It might be counter-intuitive in some cases so the y coordinates can be inverted with `lv_line_set_y_invert(line, true)`. In this case,  *y == 0* will be the bottom of the object.
 *y invert* is disabled by default.
 
 ## Events
@@ -42,11 +38,11 @@ Learn more about [Keys](/overview/indev).
 
 ```
 
-## API 
+## API
 
 ```eval_rst
 
 .. doxygenfile:: lv_line.h
   :project: lvgl
-        
+
 ```
index 9e01c4a..491d9d2 100644 (file)
@@ -1,15 +1,11 @@
-```eval_rst
-.. include:: /header.rst 
-:github_url: |github_link_base|/widgets/core/roller.md
-```
 # Roller (lv_roller)
 
 ## Overview
 
-Roller allows you to simply select one option from a list by scrolling. 
+Roller allows you to simply select one option from a list by scrolling.
 
 ## Parts and Styles
-- `LV_PART_MAIN` The background of the roller uses all the typical background properties and text style properties. `style_text_line_space` adjusts the space between the options. 
+- `LV_PART_MAIN` The background of the roller uses all the typical background properties and text style properties. `style_text_line_space` adjusts the space between the options.
 When the Roller is scrolled and doesn't stop exactly on an option it will scroll to the nearest valid option automatically in `anim_time` milliseconds as specified in the style.
 - `LV_PART_SELECTED` The selected option in the middle. Besides the typical background properties it uses the text style properties to change the appearance of the text in the selected area.
 
@@ -30,7 +26,7 @@ To get the *index* of the currently selected option use `lv_roller_get_selected(
 ### Visible rows
 The number of visible rows can be adjusted with `lv_roller_set_visible_row_count(roller, num)`.
 
-This function calculates the height with the current style. If the font, line space, border width, etc. of the roller changes this function needs to be called again. 
+This function calculates the height with the current style. If the font, line space, border width, etc. of the roller changes this function needs to be called again.
 
 ## Events
 - `LV_EVENT_VALUE_CHANGED` Sent when a new option is selected.
@@ -42,7 +38,7 @@ Learn more about [Events](/overview/event).
 ## Keys
 - `LV_KEY_RIGHT/DOWN` Select the next option
 - `LV_KEY_LEFT/UP` Select the previous option
-- `LY_KEY_ENTER` Apply the selected option (Send `LV_EVENT_VALUE_CHANGED` event) 
+- `LY_KEY_ENTER` Apply the selected option (Send `LV_EVENT_VALUE_CHANGED` event)
 
 ## Example
 
@@ -52,11 +48,11 @@ Learn more about [Events](/overview/event).
 
 ```
 
-## API 
+## API
 
 ```eval_rst
 
 .. doxygenfile:: lv_roller.h
   :project: lvgl
-        
+
 ```
index 101eb91..d45a4ea 100644 (file)
@@ -1,7 +1,3 @@
-```eval_rst
-.. include:: /header.rst 
-:github_url: |github_link_base|/widgets/core/slider.md
-```
 # Slider (lv_slider)
 
 ## Overview
@@ -9,10 +5,10 @@
 The Slider object looks like a [Bar](/widgets/core/bar) supplemented with a knob. The knob can be dragged to set a value. Just like Bar, Slider can be vertical or horizontal.
 
 
-## Parts and Styles 
+## Parts and Styles
 - `LV_PART_MAIN` The background of the slider. Uses all the typical background style properties. `padding` makes the indicator smaller in the respective direction.
 - `LV_PART_INDICATOR` The indicator that shows the current state of the slider. Also uses all the typical background style properties.
-- `LV_PART_KNOB` A rectangle (or circle) drawn at the current value. Also uses all the typical background properties to describe the knob(s). By default, the knob is square (with an optional corner radius) with side length equal to the smaller side of the slider. The knob can be made larger with the `padding` values. Padding values can be asymmetric too. 
+- `LV_PART_KNOB` A rectangle (or circle) drawn at the current value. Also uses all the typical background properties to describe the knob(s). By default, the knob is square (with an optional corner radius) with side length equal to the smaller side of the slider. The knob can be made larger with the `padding` values. Padding values can be asymmetric too.
 
 ## Usage
 
@@ -30,22 +26,22 @@ The slider can be one of the following modes:
 The mode can be changed with `lv_slider_set_mode(slider, LV_SLIDER_MODE_...)`
 
 ### Knob-only mode
-Normally, the slider can be adjusted either by dragging the knob, or by clicking on the slider bar. 
+Normally, the slider can be adjusted either by dragging the knob, or by clicking on the slider bar.
 In the latter case the knob moves to the point clicked and slider value changes accordingly. In some cases it is desirable to set the slider to react on dragging the knob only. This feature is enabled by adding the `LV_OBJ_FLAG_ADV_HITTEST`: `lv_obj_add_flag(slider, LV_OBJ_FLAG_ADV_HITTEST)`.
 
 The extended click area (set by `lv_obj_set_ext_click_area(slider, value)`) increases to knob's click area.
 
 ## Events
-- `LV_EVENT_VALUE_CHANGED` Sent while the slider is being dragged or changed with keys. 
-The event is sent continuously while the slider is dragged and once when released. Use `lv_slider_is_dragged` to determine whether the Slider is still being dragged or has just been released.
-- `LV_EVENT_DRAW_PART_BEGIN` and `LV_EVENT_DRAW_PART_END` are sent for the following parts. 
+- `LV_EVENT_VALUE_CHANGED` Sent while the slider is being dragged or changed with keys. The event is sent continuously while the slider is being dragged.
+- `LV_EVENT_RELEASED` Sent when the slider has just been released.
+- `LV_EVENT_DRAW_PART_BEGIN` and `LV_EVENT_DRAW_PART_END` are sent for the following parts.
     - `LV_SLIDER_DRAW_PART_KNOB` The main (right) knob of the slider
-        - `part`: `LV_PART_KNOB` 
+        - `part`: `LV_PART_KNOB`
         - `draw_area`: area of the indicator
         - `rect_dsc`
         - `id`: 0
     - `LV_SLIDER_DRAW_PART_KNOB`  The left knob of the slider
-        - `part`: `LV_PART_KNOB` 
+        - `part`: `LV_PART_KNOB`
         - `draw_area`: area of the indicator
         - `rect_dsc`
         - `id`: 1
@@ -68,11 +64,11 @@ Learn more about [Keys](/overview/indev).
 
 ```
 
-## API 
+## API
 
 ```eval_rst
 
 .. doxygenfile:: lv_slider.h
   :project: lvgl
-        
+
 ```
index 2c7a747..f08dd8b 100644 (file)
@@ -1,26 +1,22 @@
-```eval_rst
-.. include:: /header.rst 
-:github_url: |github_link_base|/widgets/core/switch.md
-```
 
 # Switch (lv_switch)
 
 ## Overview
 
-The Switch looks like a little slider and can be used to turn something on and off. 
+The Switch looks like a little slider and can be used to turn something on and off.
 
 
 ## Parts and Styles
 - `LV_PART_MAIN` The background of the switch uses all the typical background style properties. `padding` makes the indicator smaller in the respective direction.
 - `LV_PART_INDICATOR` The indicator that shows the current state of the switch. Also uses all the typical background style properties.
-- `LV_PART_KNOB` A rectangle (or circle) drawn at left or right side of the indicator. Also uses all the typical background properties to describe the knob(s). By default, the knob is square (with an optional corner radius) with side length equal to the smaller side of the slider. The knob can be made larger with the `padding` values. Padding values can be asymmetric too. 
+- `LV_PART_KNOB` A rectangle (or circle) drawn at left or right side of the indicator. Also uses all the typical background properties to describe the knob(s). By default, the knob is square (with an optional corner radius) with side length equal to the smaller side of the slider. The knob can be made larger with the `padding` values. Padding values can be asymmetric too.
 
 ## Usage
 
 ### Change state
 The switch uses the standard `LV_STATE_CHECKED` state.
 
-To get the current state of the switch (with `true` being on), use `lv_obj_has_state(switch, LV_STATE_CHECKED)`. 
+To get the current state of the switch (with `true` being on), use `lv_obj_has_state(switch, LV_STATE_CHECKED)`.
 
 Call `lv_obj_add_state(switch, LV_STATE_CHECKED)` to turn it on, or `lv_obj_clear_state(switch, LV_STATE_CHECKED)` to turn it off.
 
@@ -35,7 +31,7 @@ Learn more about [Events](/overview/event).
 ## Keys
 - `LV_KEY_UP/RIGHT` Turns on the slider
 - `LV_KEY_DOWN/LEFT` Turns off the slider
-- `LV_KEY_ENTER` Toggles the switch 
+- `LV_KEY_ENTER` Toggles the switch
 
 Learn more about [Keys](/overview/indev).
 
@@ -47,11 +43,11 @@ Learn more about [Keys](/overview/indev).
 
 ```
 
-## API 
+## API
 
 ```eval_rst
 
 .. doxygenfile:: lv_switch.h
   :project: lvgl
-        
+
 ```
index dc86a7c..df42c8e 100644 (file)
@@ -1,7 +1,3 @@
-```eval_rst
-.. include:: /header.rst 
-:github_url: |github_link_base|/widgets/core/table.md
-```
 # Table (lv_table)
 
 ## Overview
@@ -27,7 +23,7 @@ The cells can store only text so numbers need to be converted to text before dis
 
 Line breaks can be used in the text like `"Value\n60.3"`.
 
-New rows and columns are automatically added is required 
+New rows and columns are automatically added is required
 
 ### Rows and Columns
 
@@ -44,7 +40,7 @@ The height is calculated automatically from the cell styles (font, padding etc)
 Cells can be merged horizontally with `lv_table_add_cell_ctrl(table, row, col, LV_TABLE_CELL_CTRL_MERGE_RIGHT)`. To merge more adjacent cells call this function for each cell.
 
 ### Scroll
-If the label's width or height is set to `LV_SIZE_CONTENT` that size will be used to show the whole table in the respective direction. 
+If the label's width or height is set to `LV_SIZE_CONTENT` that size will be used to show the whole table in the respective direction.
 E.g. `lv_obj_set_size(table, LV_SIZE_CONTENT, LV_SIZE_CONTENT)` automatically sets the table size to show all the columns and rows.
 
 If the width or height is set to a smaller number than the "intrinsic" size then the table becomes scrollable.
@@ -53,11 +49,11 @@ If the width or height is set to a smaller number than the "intrinsic" size then
 - `LV_EVENT_VALUE_CHANGED` Sent when a new cell is selected with keys.
 - `LV_EVENT_DRAW_PART_BEGIN` and `LV_EVENT_DRAW_PART_END` are sent for the following types:
     - `LV_TABLE_DRAW_PART_CELL` The individual cells of the table
-        - `part`: `LV_PART_ITEMS` 
+        - `part`: `LV_PART_ITEMS`
         - `draw_area`: area of the indicator
         - `rect_dsc`
         - `label_dsc`
-        - `id`: current row &times; col count + current column 
+        - `id`: current row &times; col count + current column
 
 See the events of the [Base object](/widgets/obj) too.
 
@@ -85,11 +81,11 @@ Learn more about [Keys](/overview/indev).
 ### MicroPython
 No examples yet.
 
-## API 
+## API
 
 ```eval_rst
 
 .. doxygenfile:: lv_table.h
   :project: lvgl
-        
+
 ```
index deb64c2..3beadd5 100644 (file)
@@ -1,13 +1,9 @@
-```eval_rst
-.. include:: /header.rst 
-:github_url: |github_link_base|/widgets/core/textarea.md
-```
 # Text area (lv_textarea)
 
 ## Overview
 
-The Text Area is a [Base object](widgets/obj) with a [Label](/widgets/core/label) and a cursor on it. 
-Texts or characters can be added to it. 
+The Text Area is a [Base object](widgets/obj) with a [Label](/widgets/core/label) and a cursor on it.
+Texts or characters can be added to it.
 Long lines are wrapped and when the text becomes long enough the Text area can be scrolled.
 
 One line mode and password modes are supported.
@@ -16,9 +12,9 @@ One line mode and password modes are supported.
 - `LV_PART_MAIN` The background of the text area. Uses all the typical background style properties and the text related style properties including `text_align` to align the text to the left, right or center.
 - `LV_PART_SCROLLBAR` The scrollbar that is shown when the text is too long.
 - `LV_PART_SELECTED` Determines the style of the [selected text](/widgets/core/label.html#text-selection). Only `text_color` and `bg_color` style properties can be used. `bg_color` should be set directly on the label of the text area.
-- `LV_PART_CURSOR` Marks the position where the characters are inserted. The cursor's area is always the bounding box of the current character. 
-A block cursor can be created by adding a background color and background opacity to `LV_PART_CURSOR`'s style. The create line cursor leave the cursor transparent and set a left border. 
-The `anim_time` style property sets the cursor's blink time. 
+- `LV_PART_CURSOR` Marks the position where the characters are inserted. The cursor's area is always the bounding box of the current character.
+A block cursor can be created by adding a background color and background opacity to `LV_PART_CURSOR`'s style. The create line cursor leave the cursor transparent and set a left border.
+The `anim_time` style property sets the cursor's blink time.
 - `LV_PART_TEXTAREA_PLACEHOLDER` Unique to Text Area, allows styling the placeholder text.
 
 ## Usage
@@ -40,13 +36,13 @@ A placeholder text can be specified - which is displayed when the Text area is e
 
 ### Delete character
 
-To delete a character from the left of the current cursor position use `lv_textarea_del_char(textarea)`. 
+To delete a character from the left of the current cursor position use `lv_textarea_del_char(textarea)`.
 To delete from the right use `lv_textarea_del_char_forward(textarea)`
 
 ### Move the cursor
 
-The cursor position can be modified directly like `lv_textarea_set_cursor_pos(textarea, 10)`. 
-The `0` position means "before the first characters", 
+The cursor position can be modified directly like `lv_textarea_set_cursor_pos(textarea, 10)`.
+The `0` position means "before the first characters",
 `LV_TA_CURSOR_LAST` means "after the last character"
 
 You can step the cursor with
@@ -58,45 +54,44 @@ You can step the cursor with
 If `lv_textarea_set_cursor_click_pos(textarea, true)` is applied the cursor will jump to the position where the Text area was clicked.
 
 ### Hide the cursor
-The cursor is always visible, however it can be a good idea to style it to be visible only in `LV_STATE_FOCUSED` state. 
+The cursor is always visible, however it can be a good idea to style it to be visible only in `LV_STATE_FOCUSED` state.
 
 ### One line mode
-The Text area can be configured to be on a single line with `lv_textarea_set_one_line(textarea, true)`. 
-In this mode the height is set automatically to show only one line, line break characters are ignored, and word wrap is disabled. 
+The Text area can be configured to be on a single line with `lv_textarea_set_one_line(textarea, true)`.
+In this mode the height is set automatically to show only one line, line break characters are ignored, and word wrap is disabled.
 
 ### Password mode
-The text area supports password mode which can be enabled with `lv_textarea_set_password_mode(textarea, true)`. 
+The text area supports password mode which can be enabled with `lv_textarea_set_password_mode(textarea, true)`.
 
-If the `•` ([Bullet, U+2022](http://www.fileformat.info/info/unicode/char/2022/index.htm)) character exists in the font, the entered characters are converted to it after some time or when a new character is entered. 
-If `•` not exists, `*` will be used.
+By default, if the `•` ([Bullet, U+2022](http://www.fileformat.info/info/unicode/char/2022/index.htm)) character exists in the font, the entered characters are converted to it after some time or when a new character is entered. If `•` does not exist in the font, `*` will be used. You can override the default character with `lv_textarea_set_password_bullet(textarea, "x")`.
 
 In password mode `lv_textarea_get_text(textarea)` returns the actual text entered, not the bullet characters.
 
 The visibility time can be adjusted with `LV_TEXTAREA_DEF_PWD_SHOW_TIME)` in `lv_conf.h`.
 
 ### Accepted characters
-You can set a list of accepted characters with `lv_textarea_set_accepted_chars(textarea, "0123456789.+-")`. 
-Other characters will be ignored. 
+You can set a list of accepted characters with `lv_textarea_set_accepted_chars(textarea, "0123456789.+-")`.
+Other characters will be ignored.
 
 ### Max text length
 The maximum number of characters can be limited with `lv_textarea_set_max_length(textarea, max_char_num)`
 
 
 ### Very long texts
-If there is a very long text in the Text area (e.g. > 20k characters), scrolling and drawing might be slow. 
-However, by enabling `LV_LABEL_LONG_TXT_HINT   1` in `lv_conf.h` the performance can be hugely improved. 
-This will save some additional information about the label to speed up its drawing. 
+If there is a very long text in the Text area (e.g. > 20k characters), scrolling and drawing might be slow.
+However, by enabling `LV_LABEL_LONG_TXT_HINT   1` in `lv_conf.h` the performance can be hugely improved.
+This will save some additional information about the label to speed up its drawing.
 Using `LV_LABEL_LONG_TXT_HINT` the scrolling and drawing will as fast as with "normal" short texts.
 
 ### Select text
-Any part of the text can be selected if enabled with `lv_textarea_set_text_selection(textarea, true)`. 
-This works much like when you select text on your PC with your mouse. 
+Any part of the text can be selected if enabled with `lv_textarea_set_text_selection(textarea, true)`.
+This works much like when you select text on your PC with your mouse.
 
 ## Events
-- `LV_EVENT_INSERT` Sent right before a character or text is inserted. 
-The event parameter is the text about to be inserted. `lv_textarea_set_insert_replace(textarea, "New text")` replaces the text to insert. 
+- `LV_EVENT_INSERT` Sent right before a character or text is inserted.
+The event parameter is the text about to be inserted. `lv_textarea_set_insert_replace(textarea, "New text")` replaces the text to insert.
 The new text cannot be in a local variable which is destroyed when the event callback exists. `""` means do not insert anything.
-- `LV_EVENT_VALUE_CHANGED` Sent when the content of the text area has been changed. 
+- `LV_EVENT_VALUE_CHANGED` Sent when the content of the text area has been changed.
 - `LV_EVENT_READY` Sent when `LV_KEY_ENTER` is pressed (or sent) to a one line text area.
 
 See the events of the [Base object](/widgets/obj) too.
@@ -117,11 +112,11 @@ Learn more about [Keys](/overview/indev).
 
 ```
 
-## API 
+## API
 
 ```eval_rst
 
 .. doxygenfile:: lv_textarea.h
   :project: lvgl
-        
+
 ```
index e36adf0..4727033 100644 (file)
@@ -1,7 +1,3 @@
-```eval_rst
-.. include:: /header.rst 
-:github_url: |github_link_base|/widgets/extra/animimg.md
-```
 # Animation Image (lv_animimg)
 
 ## Overview
@@ -13,13 +9,13 @@ You can specify a duration and repeat count.
 
 ## Parts and Styles
 - `LV_PART_MAIN` A background rectangle that uses the typical background style properties and the image itself using the image style properties.
- 
+
 
 ## Usage
 
 ### Image sources
 To set the image in a state, use the `lv_animimg_set_src(imgbtn, dsc[], num)`.
- 
+
 
 ## Events
 No special events are sent by image objects.
index 6ce18b2..5dd601d 100644 (file)
@@ -1,14 +1,10 @@
-```eval_rst
-.. include:: /header.rst 
-:github_url: |github_link_base|/widgets/extra/calendar.md
-```
 # Calendar (lv_calendar)
 
 ## Overview
 
 The Calendar object is a classic calendar which can:
-- show the days of any month in a 7x7 matrix 
-- Show the name of the days 
+- show the days of any month in a 7x7 matrix
+- Show the name of the days
 - highlight the current day (today)
 - highlight any user-defined dates
 
@@ -45,7 +41,7 @@ The name of the days can be adjusted with `lv_calendar_set_day_names(calendar, d
 Only the pointer of the day names is saved so the elements should be static, global or constant variables.
 
 ## Events
-- `LV_EVENT_VALUE_CHANGED` Sent if a date is clicked. `lv_calendar_get_pressed_date(calendar, &date)` set `date` to the date currently being pressed. Returns `LV_RES_OK` if there is a valid pressed date, else `LV_RES_INV`. 
+- `LV_EVENT_VALUE_CHANGED` Sent if a date is clicked. `lv_calendar_get_pressed_date(calendar, &date)` set `date` to the date currently being pressed. Returns `LV_RES_OK` if there is a valid pressed date, else `LV_RES_INV`.
 
 Learn more about [Events](/overview/event).
 
@@ -66,7 +62,7 @@ Learn more about [Keys](/overview/indev).
 
 ### Drop-down
 `lv_calendar_header_dropdown_create(calendar)` creates a header that contains 2 drop-drown lists: one for the year and another for the month.
- 
+
 
 ## Example
 
index e6924ac..4123fbc 100644 (file)
@@ -1,7 +1,3 @@
-```eval_rst
-.. include:: /header.rst 
-:github_url: |github_link_base|/widgets/extra/chart.md
-```
 # Chart (lv_chart)
 
 ## Overview
@@ -16,11 +12,11 @@ Charts can have:
 - scrolling and zooming
 
 ## Parts and Styles
-- `LV_PART_MAIN` The background of the chart. Uses all the typical background and *line* (for the division lines) related style properties. *Padding* makes the series area smaller.
+- `LV_PART_MAIN` The background of the chart. Uses all the typical background and *line* (for the division lines) related style properties. *Padding* makes the series area smaller. For column charts `pad_column` sets the space between the columns of the adjacent indices.
 - `LV_PART_SCROLLBAR` The scrollbar used if the chart is zoomed. See the [Base object](/widgets/obj)'s documentation for details.
 - `LV_PART_ITEMS` Refers to the line or bar series.
     - Line chart: The *line* properties are used by the lines. `width`, `height`, `bg_color` and `radius` is used to set the appearance of points.
-    - Bar chart: The typical background properties are used to style the bars. 
+    - Bar chart: The typical background properties are used to style the bars. `pad_column` sets the space between the columns on the same index.
 - `LV_PART_INDICATOR` Refers to the points on line and scatter chart (small circles or squares).
 - `LV_PART_CURSOR` *Line* properties are used to style the cursors.  `width`, `height`, `bg_color` and `radius` are used to set the appearance of points.
 - `LV_PART_TICKS` *Line* and *Text* style properties are used to style the ticks
@@ -35,7 +31,7 @@ The following data display types exist:
 - `LV_CHART_TYPE_BAR` - Draw bars.
 - `LV_CHART_TYPE_SCATTER` - X/Y chart drawing point's and lines between the points. .
 
-You can specify the display type with `lv_chart_set_type(chart, LV_CHART_TYPE_...)`. 
+You can specify the display type with `lv_chart_set_type(chart, LV_CHART_TYPE_...)`.
 
 
 ### Data series
@@ -49,9 +45,9 @@ You can add any number of series to the charts by `lv_chart_add_series(chart, co
 
 `axis` tells which axis's range should be used te scale the values.
 
-`lv_chart_set_ext_y_array(chart, ser, value_array)` makes the chart use an external array for the given series. 
+`lv_chart_set_ext_y_array(chart, ser, value_array)` makes the chart use an external array for the given series.
 `value_array` should look like this: `lv_coord_t * value_array[num_points]`. The array size needs to be large enough to hold all the points of that series.
-The array's pointer will be saved in the chart so it needs to be global, static or dynamically allocated. 
+The array's pointer will be saved in the chart so it needs to be global, static or dynamically allocated.
 Note: you should call `lv_chart_refresh(chart)` after the external data source has been updated to update the chart.
 
 The value array of a series can be obtained with `lv_chart_get_y_array(chart, ser)`, which can be used with `ext_array` or *normal array*s.
@@ -79,22 +75,22 @@ The update mode can be changed with `lv_chart_set_update_mode(chart, LV_CHART_UP
 
 ### Number of points
 The number of points in the series can be modified by `lv_chart_set_point_count(chart, point_num)`. The default value is 10.
-Note: this also affects the number of points processed when an external buffer is assigned to a series, so you need to be sure the external array is large enough. 
+Note: this also affects the number of points processed when an external buffer is assigned to a series, so you need to be sure the external array is large enough.
 
 #### Handling large number of points
-On line charts, if the number of points is greater than the pixels horizontally, the Chart will draw only vertical lines to make the drawing of large amount of data effective. 
+On line charts, if the number of points is greater than the pixels horizontally, the Chart will draw only vertical lines to make the drawing of large amount of data effective.
 If there are, let's say, 10 points to a pixel, LVGL searches the smallest and the largest value and draws a vertical lines between them to ensure no peaks are missed.
 
 ### Vertical range
-You can specify the minimum and maximum values in y-direction with `lv_chart_set_range(chart, axis, min, max)`. 
+You can specify the minimum and maximum values in y-direction with `lv_chart_set_range(chart, axis, min, max)`.
 `axis` can be `LV_CHART_AXIS_PRIMARY` (left axis) or `LV_CHART_AXIS_SECONDARY` (right axis).
 
 The value of the points will be scaled proportionally. The default range is: 0..100.
 
 ### Division lines
-The number of horizontal and vertical division lines can be modified by `lv_chart_set_div_line_count(chart, hdiv_num, vdiv_num)`. 
-The default settings are 3 horizontal and 5 vertical division lines. 
-If there is a visible border on a side and no padding on that side, the division line would be drawn on top of the border and therefore it won't be drawn. 
+The number of horizontal and vertical division lines can be modified by `lv_chart_set_div_line_count(chart, hdiv_num, vdiv_num)`.
+The default settings are 3 horizontal and 5 vertical division lines.
+If there is a visible border on a side and no padding on that side, the division line would be drawn on top of the border and therefore it won't be drawn.
 
 ### Override default start point for series
 If you want a plot to start from a point other than the default which is `point[0]` of the series, you can set an alternative
@@ -119,15 +115,15 @@ If `factor` is 256 there is no zoom. 512 means double zoom, etc. Fractional valu
 
 ### Cursor
 
-A cursor can be added with `lv_chart_cursor_t * c1 = lv_chart_add_cursor(chart, color, dir);`. 
-The possible values of `dir`  `LV_DIR_NONE/RIGHT/UP/LEFT/DOWN/HOR/VER/ALL` or their OR-ed values to tell in which direction(s) should the cursor be drawn.  
+A cursor can be added with `lv_chart_cursor_t * c1 = lv_chart_add_cursor(chart, color, dir);`.
+The possible values of `dir`  `LV_DIR_NONE/RIGHT/UP/LEFT/DOWN/HOR/VER/ALL` or their OR-ed values to tell in which direction(s) should the cursor be drawn.
 
-`lv_chart_set_cursor_pos(chart, cursor, &point)` sets the position of the cursor. 
+`lv_chart_set_cursor_pos(chart, cursor, &point)` sets the position of the cursor.
 `pos` is a pointer to an `lv_point_t` variable. E.g. `lv_point_t point = {10, 20};`. If the chart is scrolled the cursor will remain in the same place.
 
 `lv_chart_get_point_pos_by_id(chart, series, id, &point_out)` gets the coordinate of a given point. It's useful to place the cursor at a given point.
 
-`lv_chart_set_cursor_point(chart, cursor, series, point_id)` sticks the cursor at a point. If the point's position changes (new value or scrolling) the cursor will move with the point.  
+`lv_chart_set_cursor_point(chart, cursor, series, point_id)` sticks the cursor at a point. If the point's position changes (new value or scrolling) the cursor will move with the point.
 
 ## Events
 - `LV_EVENT_VALUE_CHANGED` Sent when a new point is clicked pressed.  `lv_chart_get_pressed_point(chart)` returns the zero-based index of the pressed point.
@@ -135,12 +131,12 @@ The possible values of `dir`  `LV_DIR_NONE/RIGHT/UP/LEFT/DOWN/HOR/VER/ALL` or th
    - `LV_CHART_DRAW_PART_DIV_LINE_INIT`  Used before/after drawn the div lines to add masks to any extra drawings. The following fields are set:
        -  `part`: `LV_PART_MAIN`
        - `line_dsc`
-   - `LV_CHART_DRAW_PART_DIV_LINE_HOR`, `LV_CHART_DRAW_PART_DIV_LINE_VER` Used for each horizontal and vertical division lines.  
-       - `part`: `LV_PART_MAIN` 
+   - `LV_CHART_DRAW_PART_DIV_LINE_HOR`, `LV_CHART_DRAW_PART_DIV_LINE_VER` Used for each horizontal and vertical division lines.
+       - `part`: `LV_PART_MAIN`
        - `id`: index of the line
        - `p1`, `p2`: points of the line
        - `line_dsc`
-   - `LV_CHART_DRAW_PART_LINE_AND_POINT` Used on line and scatter charts for lines and points. 
+   - `LV_CHART_DRAW_PART_LINE_AND_POINT` Used on line and scatter charts for lines and points.
        - `part`: `LV_PART_ITEMS`
        - `id`: index of the point
        - `value`: value of `id`th point
@@ -149,29 +145,29 @@ The possible values of `dir`  `LV_DIR_NONE/RIGHT/UP/LEFT/DOWN/HOR/VER/ALL` or th
        - `line_dsc`
        - `rect_dsc`
        - `sub_part_ptr`: pointer to the series
-   - `LV_CHART_DRAW_PART_BAR` Used on bar charts for the rectangles. 
+   - `LV_CHART_DRAW_PART_BAR` Used on bar charts for the rectangles.
         - `part`: `LV_PART_ITEMS`
         - `id`: index of the point
-        - `value`: value of `id`th point 
+        - `value`: value of `id`th point
         - `draw_area`: area of the point
         - `rect_dsc`:
         - `sub_part_ptr`: pointer to the series
    - `LV_CHART_DRAW_PART_CURSOR`  Used on cursor lines and points.
-        - `part`: `LV_PART_CURSOR` 
+        - `part`: `LV_PART_CURSOR`
         - `p1`, `p2`: points of the line
         - `line_dsc`
         - `rect_dsc`
         - `draw_area`: area of the points
    - `LV_CHART_DRAW_PART_TICK_LABEL`  Used on tick lines and labels.
-        - `part`: `LV_PART_TICKS`  
+        - `part`: `LV_PART_TICKS`
         - `id`: axis
         - `value`: value of the tick
         - `text`: `value` converted to decimal or `NULL` for minor ticks
         - `line_dsc`,
         - `label_dsc`,
-  
+
 See the events of the [Base object](/widgets/obj) too.
-  
+
 Learn more about [Events](/overview/event).
 
 ## Keys
index e0132b7..4c8d7c6 100644 (file)
@@ -1,11 +1,7 @@
-```eval_rst
-.. include:: /header.rst 
-:github_url: |github_link_base|/widgets/extra/colorwheel.md
-```
 # Color wheel (lv_colorwheel)
 
 ## Overview
-As its name implies *Color wheel* allows the user to select a color. The Hue, Saturation and Value of the color can be selected separately. 
+As its name implies *Color wheel* allows the user to select a color. The Hue, Saturation and Value of the color can be selected separately.
 
 Long pressing the object, the color wheel will change to the next parameter of the color (hue, saturation or value). A double click will reset the current parameter.
 
@@ -17,7 +13,7 @@ Long pressing the object, the color wheel will change to the next parameter of t
 
 ### Create a color wheel
 
-`lv_colorwheel_create(parent, knob_recolor)` creates a new color wheel. With `knob_recolor=true` the knob's background color will be set to the current color. 
+`lv_colorwheel_create(parent, knob_recolor)` creates a new color wheel. With `knob_recolor=true` the knob's background color will be set to the current color.
 
 ### Set color
 
index 11c5f2c..2df4010 100644 (file)
@@ -1,7 +1,3 @@
-```eval_rst
-.. include:: /header.rst 
-:github_url: |github_link_base|/widgets/extra/imgbtn.md
-```
 # Image button (lv_imgbtn)
 
 ## Overview
@@ -19,7 +15,7 @@ You can set a left, right and center image, and the center image will be repeate
 
 ### Image sources
 To set the image in a state, use the `lv_imgbtn_set_src(imgbtn, LV_IMGBTN_STATE_..., src_left, src_center, src_right)`.
- 
+
 The image sources work the same as described in the [Image object](/widgets/core/img) except that "Symbols" are not supported by the Image button.
 Any of the sources can `NULL`.
 
@@ -31,7 +27,7 @@ The possible states are:
 - `LV_IMGBTN_STATE_CHECKED_PRESSED`
 - `LV_IMGBTN_STATE_CHECKED_DISABLED`
 
-If you set sources only in `LV_IMGBTN_STATE_RELEASED`, these sources will be used in other states too. 
+If you set sources only in `LV_IMGBTN_STATE_RELEASED`, these sources will be used in other states too.
 If you set e.g. `LV_IMGBTN_STATE_PRESSED` they will be used in pressed state instead of the released images.
 
 
index 5e539c1..cb5cf29 100644 (file)
@@ -1,14 +1,10 @@
-```eval_rst
-.. include:: /header.rst 
-:github_url: |github_link_base|/object-types/index.md
-```
 # Extra widgets
 
 ```eval_rst
 
 .. toctree::
    :maxdepth: 1
-   
+
    animimg
    calendar
    chart
index f03255a..037c0e9 100644 (file)
@@ -1,7 +1,3 @@
-```eval_rst
-.. include:: /header.rst 
-:github_url: |github_link_base|/widgets/extra/keyboard.md
-```
 
 
 # Keyboard (lv_keyboard)
@@ -11,7 +7,7 @@
 The Keyboard object is a special [Button matrix](/widgets/core/btnmatrix) with predefined keymaps and other features to realize a virtual keyboard to write texts into a [Text area](/widgets/core/textarea).
 
 ## Parts and Styles
-Similarly to Button matrices Keyboards consist of 2 part: 
+Similarly to Button matrices Keyboards consist of 2 part:
 - `LV_PART_MAIN` The main part. Uses all the typical background properties
 - `LV_PART_ITEMS` The buttons. Also uses all typical background properties as well as the *text* properties.
 
@@ -43,7 +39,7 @@ The popovers currently are merely a visual effect and don't allow selecting addi
 ### New Keymap
 You can specify a new map (layout) for the keyboard with `lv_keyboard_set_map(kb, map)` and `lv_keyboard_set_ctrl_map(kb, ctrl_map)`.
 Learn more about the [Button matrix](/widgets/core/btnmatrix) object.
-Keep in mind that using following keywords will have the same effect as with the original map:  
+Keep in mind that using following keywords will have the same effect as with the original map:
 - `LV_SYMBOL_OK` Apply.
 - `LV_SYMBOL_CLOSE` or `LV_SYMBOL_KEYBOARD` Close.
 - `LV_SYMBOL_BACKSPACE` Delete on the left.
index c4b5d75..586c70c 100644 (file)
@@ -1,7 +1,3 @@
-```eval_rst
-.. include:: /header.rst 
-:github_url: |github_link_base|/widgets/extra/led.md
-```
 # LED (lv_led)
 
 ## Overview
@@ -25,11 +21,11 @@ Use `lv_led_on(led)` and `lv_led_off(led)` to set the brightness to a predefined
 
 ## Events
 - `LV_EVENT_DRAW_PART_BEGIN` and `LV_EVENT_DRAW_PART_END` is sent for the following types:
-    - `LV_LED_DRAW_PART_RECTANGLE` The main rectangle. `LV_OBJ_DRAW_PART_RECTANGLE` is not sent by the base object. 
+    - `LV_LED_DRAW_PART_RECTANGLE` The main rectangle. `LV_OBJ_DRAW_PART_RECTANGLE` is not sent by the base object.
        - `part`: `LV_PART_MAIN`
        - `rect_dsc`
        - `draw_area`: the area of the rectangle
-       
+
 
 See the events of the [Base object](/widgets/obj) too.
 
@@ -48,11 +44,11 @@ Learn more about [Keys](/overview/indev).
 
 ```
 
-## API 
+## API
 
 ```eval_rst
 
 .. doxygenfile:: lv_led.h
   :project: lvgl
-        
+
 ```
index c77a526..0742b2a 100644 (file)
@@ -1,11 +1,7 @@
-```eval_rst
-.. include:: /header.rst 
-:github_url: |github_link_base|/widgets/extra/list.md
-```
 # List (lv_list)
 
 ## Overview
-The List is basically a rectangle with vertical layout to which Buttons and Texts can be added 
+The List is basically a rectangle with vertical layout to which Buttons and Texts can be added
 
 ## Parts and Styles
 
@@ -45,11 +41,11 @@ Learn more about [Keys](/overview/indev).
 
 ```
 
-## API 
+## API
 
 ```eval_rst
 
 .. doxygenfile:: lv_list.h
   :project: lvgl
-        
+
 ```
index e737684..bb8992b 100644 (file)
@@ -1,7 +1,3 @@
-```eval_rst
-.. include:: /header.rst 
-:github_url: |github_link_base|/widgets/extra/menu.md
-```
 # Menu (lv_menu)
 
 ## Overview
@@ -31,7 +27,7 @@ The following header modes exist:
 - `LV_MENU_HEADER_TOP_UNFIXED` Header is positioned at the top and can be scrolled out of view.
 - `LV_MENU_HEADER_BOTTOM_FIXED` Header is positioned at the bottom.
 
-You can set header modes with `lv_menu_set_mode_header(menu, LV_MENU_HEADER...)`. 
+You can set header modes with `lv_menu_set_mode_header(menu, LV_MENU_HEADER...)`.
 
 ### Root back button mode
 The following root back button modes exist:
@@ -66,7 +62,7 @@ The following objects can be created so that it is easier to style the menu:
 - `LV_EVENT_VALUE_CHANGED` Sent when a page is shown.
   - `lv_menu_get_cur_main_page(menu)` returns a pointer to menu page that is currently displayed in main.
   - `lv_menu_get_cur_sidebar_page(menu)` returns a pointer to menu page that is currently displayed in sidebar.
-- `LV_EVENT_CLICKED` Sent when a back btn in a header from either main or sidebar is clicked. `LV_OBJ_FLAG_EVENT_BUBBLE` is enabled on the buttons so you can add events to the menu itself. 
+- `LV_EVENT_CLICKED` Sent when a back btn in a header from either main or sidebar is clicked. `LV_OBJ_FLAG_EVENT_BUBBLE` is enabled on the buttons so you can add events to the menu itself.
   - `lv_menu_back_btn_is_root(menu, btn)` to check if btn is root back btn
 
 See the events of the [Base object](/widgets/obj) too.
@@ -85,10 +81,10 @@ Learn more about [Keys](/overview/indev).
 .. include:: ../../../examples/widgets/menu/index.rst
 ```
 
-## API 
+## API
 
 ```eval_rst
 .. doxygenfile:: lv_menu.h
   :project: lvgl
-        
+
 ```
\ No newline at end of file
index c831d7c..2d9a0f9 100644 (file)
@@ -1,14 +1,10 @@
-```eval_rst
-.. include:: /header.rst 
-:github_url: |github_link_base|/widgets/extra/meter.md
-```
 # Meter (lv_meter)
 
 ## Overview
 The Meter widget can visualize data in very flexible ways. In can show arcs, needles, ticks lines and labels.
 
 ## Parts and Styles
-- `LV_PART_MAIN` The background of the Meter. Uses the typical background properties. 
+- `LV_PART_MAIN` The background of the Meter. Uses the typical background properties.
 - `LV_PART_TICK` The tick lines a labels using the *line* and *text* style properties.
 - `LV_PART_INDICATOR` The needle line or image using the *line* and *img* style properties, as well as the background properties to draw a square (or circle) on the pivot of the needles. Padding makes the square larger.
 - `LV_PART_ITEMS` The arcs using the *arc* properties.
@@ -17,7 +13,7 @@ The Meter widget can visualize data in very flexible ways. In can show arcs, nee
 
 ### Add a scale
 
-First a *Scale* needs to be added to the Meter with `lv_meter_scale_t * scale = lv_meter_add_scale(meter)`. 
+First a *Scale* needs to be added to the Meter with `lv_meter_scale_t * scale = lv_meter_add_scale(meter)`.
 The Scale has minor and major ticks and labels on the major ticks. Later indicators (needles, arcs, tick modifiers) can be added to the meter
 
 Any number of scales can be added to Meter.
@@ -45,22 +41,22 @@ All the indicator add functions return `lv_meter_indicator_t *`.
 #### Needle image
 
 `indic = lv_meter_add_needle_img(meter, scale, img_src, pivot_x, pivot_y)` sets an image that will be used as a needle. `img_src` should be a needle pointing to the right like this `-O--->`.
-`pivot_x` and `pivot_y` sets the pivot point of the rotation relative to the top left corner of the image. 
+`pivot_x` and `pivot_y` sets the pivot point of the rotation relative to the top left corner of the image.
 
 `lv_meter_set_indicator_value(meter, inidicator, value)` sets the value of the indicator.
 
 #### Arc
 `indic = lv_meter_add_arc(meter, scale, arc_width, arc_color, r_mod)` adds and arc indicator. . By default, the radius of the arc is the same as the scale's radius but `r_mod` changes the radius.
 
-`lv_meter_set_indicator_start_value(meter, indic, value)` and `lv_meter_set_indicator_end_value(meter, inidicator, value)` sets the value of the indicator. 
+`lv_meter_set_indicator_start_value(meter, indic, value)` and `lv_meter_set_indicator_end_value(meter, inidicator, value)` sets the value of the indicator.
 
 #### Scale lines (ticks)
-`indic = lv_meter_add_scale_lines(meter, scale, color_start, color_end, local, width_mod)` adds an indicator that modifies the ticks lines. 
-If `local` is `true` the ticks' color will be faded from `color_start` to `color_end` in the indicator's  start and end value range. 
+`indic = lv_meter_add_scale_lines(meter, scale, color_start, color_end, local, width_mod)` adds an indicator that modifies the ticks lines.
+If `local` is `true` the ticks' color will be faded from `color_start` to `color_end` in the indicator's  start and end value range.
 If `local` is `false` `color_start` and `color_end` will be mapped to the start and end value of the scale and only a "slice" of that color gradient will be visible in the indicator's start and end value range.
 `width_mod` modifies the width of the tick lines.
 
-`lv_meter_set_indicator_start_value(meter, inidicator, value)` and `lv_meter_set_indicator_end_value(meter, inidicator, value)` sets the value of the indicator. 
+`lv_meter_set_indicator_start_value(meter, inidicator, value)` and `lv_meter_set_indicator_end_value(meter, inidicator, value)` sets the value of the indicator.
 
 ## Events
 - `LV_EVENT_DRAW_PART_BEGIN` and `LV_EVENT_DRAW_PART_END` is sent for the following types:
@@ -85,12 +81,12 @@ If `local` is `false` `color_start` and `color_end` will be mapped to the start
        - `value`: the value of the line
        - `text`: `value` converted to decimal or `NULL` on minor lines
        - `label_dsc`: label draw descriptor or `NULL` on minor lines
-       - `line_dsc`: 
-       - `id`: the index of the line      
-    
-    
+       - `line_dsc`:
+       - `id`: the index of the line
+
+
 See the events of the [Base object](/widgets/obj) too.
-    
+
 Learn more about [Events](/overview/event).
 
 ## Keys
@@ -107,11 +103,11 @@ Learn more about [Keys](/overview/indev).
 
 ```
 
-## API 
+## API
 
 ```eval_rst
 
 .. doxygenfile:: lv_meter.h
   :project: lvgl
-        
+
 ```
index 3ff6784..a0bdbf3 100644 (file)
@@ -1,11 +1,7 @@
-```eval_rst
-.. include:: /header.rst 
-:github_url: |github_link_base|/widgets/extra/msgbox.md
-```
 # Message box (lv_msgbox)
 
 ## Overview
-The Message boxes act as pop-ups. 
+The Message boxes act as pop-ups.
 They are built from a background container, a title, an optional close button, a text and optional buttons.
 
 The text will be broken into multiple lines automatically and the height will be set automatically to include the text and the buttons.
@@ -25,13 +21,13 @@ The message box is built from other widgets, so you can check these widgets' doc
 
 `lv_msgbox_create(parent, title, txt, btn_txts[], add_close_btn)` creates a message box.
 
-If `parent` is `NULL` the message box will be modal. `title` and `txt` are strings for the title and the text. 
+If `parent` is `NULL` the message box will be modal. `title` and `txt` are strings for the title and the text.
 `btn_txts[]` is an array with the buttons' text. E.g. `const char * btn_txts[] = {"Ok", "Cancel", NULL}`.
-`add_colse_btn` can be `true` or `false` to add/don't add a close button.
+`add_close_btn` can be `true` or `false` to add/don't add a close button.
 
 ### Get the parts
 The building blocks of the message box can be obtained using the following functions:
-```c 
+```c
 lv_obj_t * lv_msgbox_get_title(lv_obj_t * mbox);
 lv_obj_t * lv_msgbox_get_close_btn(lv_obj_t * mbox);
 lv_obj_t * lv_msgbox_get_text(lv_obj_t * mbox);
@@ -42,7 +38,7 @@ lv_obj_t * lv_msgbox_get_btns(lv_obj_t * mbox);
 `lv_msgbox_close(msgbox)` closes (deletes) the message box.
 
 ## Events
-- `LV_EVENT_VALUE_CHANGED` is sent by the buttons if one of them is clicked. `LV_OBJ_FLAG_EVENT_BUBBLE` is enabled on the buttons so you can add events to the message box itself. 
+- `LV_EVENT_VALUE_CHANGED` is sent by the buttons if one of them is clicked. `LV_OBJ_FLAG_EVENT_BUBBLE` is enabled on the buttons so you can add events to the message box itself.
 In the event handler, `lv_event_get_target(e)` will return the button matrix and `lv_event_get_current_target(e)` will return the message box. `lv_msgbox_get_active_btn(msgbox)` and `lv_msgbox_get_active_btn_text(msgbox)` can be used to get the index and text of the clicked button.
 
 Learn more about [Events](/overview/event).
@@ -61,11 +57,11 @@ Learn more about [Keys](/overview/indev).
 
 ```
 
-## API 
+## API
 
 ```eval_rst
 
 .. doxygenfile:: lv_msgbox.h
   :project: lvgl
-        
+
 ```
index f3ddb44..fb18a60 100644 (file)
@@ -1,7 +1,3 @@
-```eval_rst
-.. include:: /header.rst 
-:github_url: |github_link_base|/widgets/extra/span.md
-```
 # Span (lv_span)
 
 ## Overview
@@ -10,7 +6,7 @@ A spangroup is the object that is used to display rich text. Different from the
 
 ## Parts and Styles
 - `LV_PART_MAIN` The spangroup has only one part.
- 
+
 ## Usage
 
 ### Set text and style
@@ -58,8 +54,11 @@ Use `lv_spangroup_set_overflow(spangroup, LV_SPAN_OVERFLOW_CLIP)` to set object
 ### first line indent
 Use `lv_spangroup_set_indent(spangroup, 20)` to set the indent of the first line. all modes support pixel units, in addition to LV_SPAN_MODE_FIXED and LV_SPAN_MODE_BREAK mode supports percentage units too.
 
+### lines
+Use `lv_spangroup_set_lines(spangroup, 10)` to set the maximum number of lines to be displayed in LV_SPAN_MODE_BREAK mode, negative values indicate no limit.
+
 ## Events
-No special events are sent by this widget. 
+No special events are sent by this widget.
 
 Learn more about [Events](/overview/event).
 
index 1b4444e..425b2c3 100644 (file)
@@ -1,11 +1,7 @@
-```eval_rst
-.. include:: /header.rst 
-:github_url: |github_link_base|/widgets/extra/spinbox.md
-```
 # Spinbox (lv_spinbox)
 
 ## Overview
-The Spinbox contains a number as text which can be increased or decreased by *Keys* or API functions. 
+The Spinbox contains a number as text which can be increased or decreased by *Keys* or API functions.
 Under the hood the Spinbox is a modified [Text area](/widgets/core/textarea).
 
 ## Parts and Styles
@@ -14,13 +10,13 @@ The parts of the Spinbox are identical to the [Text area](/widgets/core/textarea
 ### Value, range and step
 `lv_spinbox_set_value(spinbox, 1234)` sets a new value on the Spinbox.
 
-`lv_spinbox_increment(spinbox)` and `lv_spinbox_decrement(spinbox)` increments/decrements the value of the Spinbox according to the currently selected digit. 
+`lv_spinbox_increment(spinbox)` and `lv_spinbox_decrement(spinbox)` increments/decrements the value of the Spinbox according to the currently selected digit.
 
 `lv_spinbox_set_range(spinbox, -1000, 2500)` sets a range. If the value is changed by `lv_spinbox_set_value`, by *Keys*,`lv_spinbox_increment/decrement` this range will be respected.
 
-`lv_spinbox_set_step(spinbox, 100)` sets which digits to change on increment/decrement. Only multiples of ten can be set, and not for example 3. 
+`lv_spinbox_set_step(spinbox, 100)` sets which digits to change on increment/decrement. Only multiples of ten can be set, and not for example 3.
 
-`lv_spinbox_set_pos(spinbox, 1)` sets the cursor to a specific digit to change on increment/decrement. For example position '0' sets the cursor to the least significant digit.
+`lv_spinbox_set_cursor_pos(spinbox, 1)` sets the cursor to a specific digit to change on increment/decrement. For example position '0' sets the cursor to the least significant digit.
 
 If an encoder is used as input device, the selected digit is shifted to the right by default whenever the encoder button is clicked. To change this behaviour to shifting to the left, the `lv_spinbox_set_digit_step_direction(spinbox, LV_DIR_LEFT)` can be used
 
@@ -30,7 +26,7 @@ If an encoder is used as input device, the selected digit is shifted to the righ
 `separator_position` is the number of digits before the decimal point. If 0, no decimal point is displayed.
 
 ### Rollover
-`lv_spinbox_set_rollover(spinbox, true/false)` enables/disabled rollover mode. If either the minimum or maximum value is reached with rollover enabled, the value will change to the other limit. If rollover is disabled the value will remain at the minimum or maximum value. 
+`lv_spinbox_set_rollover(spinbox, true/false)` enables/disabled rollover mode. If either the minimum or maximum value is reached with rollover enabled, the value will change to the other limit. If rollover is disabled the value will remain at the minimum or maximum value.
 
 ## Events
 - `LV_EVENT_VALUE_CHANGED` Sent when the value has changed.
@@ -40,9 +36,9 @@ See the events of the [Text area](/widgets/core/textarea) too.
 Learn more about [Events](/overview/event).
 
 ## Keys
-- `LV_KEY_LEFT/RIGHT` With *Keypad* move the cursor left/right. With *Encoder* decrement/increment the selected digit. 
-- `LV_KEY_UP/DOWN` With *Keypad* and *Encoder* increment/decrement the value.  
-- `LV_KEY_ENTER` With *Encoder* got the net digit. Jump to the first after the last. 
+- `LV_KEY_LEFT/RIGHT` With *Keypad* move the cursor left/right. With *Encoder* decrement/increment the selected digit.
+- `LV_KEY_UP/DOWN` With *Keypad* and *Encoder* increment/decrement the value.
+- `LV_KEY_ENTER` With *Encoder* got the net digit. Jump to the first after the last.
 
 ## Example
 
@@ -52,12 +48,12 @@ Learn more about [Events](/overview/event).
 
 ```
 
-## API 
+## API
 
 ```eval_rst
 
 .. doxygenfile:: lv_spinbox.h
   :project: lvgl
-        
+
 ```
 ## Example
index 520e3d9..8c9b37c 100644 (file)
@@ -1,11 +1,7 @@
-```eval_rst
-.. include:: /header.rst 
-:github_url: |github_link_base|/widgets/extra/spinner.md
-```
 # Spinner (lv_spinner)
 
 ## Overview
-The Spinner object is a spinning arc over a ring. 
+The Spinner object is a spinning arc over a ring.
 
 ## Parts and Styles
 The parts are identical to the parts of [lv_arc](/widgets/core/arc).
@@ -38,11 +34,11 @@ Learn more about [Keys](/overview/indev).
 
 ```
 
-## API 
+## API
 
 ```eval_rst
 
 .. doxygenfile:: lv_spinner.h
   :project: lvgl
-        
+
 ```
index b08b88c..51466cf 100644 (file)
@@ -1,7 +1,3 @@
-```eval_rst
-.. include:: /header.rst 
-:github_url: |github_link_base|/widgets/extra/tabview.md
-```
 
 # Tabview (lv_tabview)
 
@@ -14,7 +10,7 @@ The Tab view is built from other widgets:
   - Container for the tabs: [lv_obj](/widgets/obj)
      - Content of the tabs: [lv_obj](/widgets/obj)
 
-The tab buttons can be positioned on the top, bottom, left and right side of the Tab view. 
+The tab buttons can be positioned on the top, bottom, left and right side of the Tab view.
 
 A new tab can be selected either by clicking on a tab button or by sliding horizontally on the content.
 
@@ -25,13 +21,17 @@ There are no special parts on the Tab view but the `lv_obj` and `lv_btnnmatrix`
 
 ### Create a Tab view
 
-`lv_tabview_create(parent, tab_pos, tab_size);` creates a new empty Tab view.  `tab_pos` can be `LV_DIR_TOP/BOTTOM/LEFT/RIGHT` to position the tab buttons to a side. 
+`lv_tabview_create(parent, tab_pos, tab_size);` creates a new empty Tab view.  `tab_pos` can be `LV_DIR_TOP/BOTTOM/LEFT/RIGHT` to position the tab buttons to a side.
 `tab_size` is the height (in case of `LV_DIR_TOP/BOTTOM`) or width (in case of `LV_DIR_LEFT/RIGHT`) tab buttons.
 
 ### Add tabs
 
 New tabs can be added with `lv_tabview_add_tab(tabview, "Tab name")`. This will return a pointer to an [lv_obj](/widgets/obj) object where the tab's content can be created.
 
+### Rename tabs
+
+A tab can be renamed with `lv_tabview_rename_tab(tabview, tab_id, "New Name")`.
+
 ### Change tab
 
 To select a new tab you can:
index 9d8feb4..efe3bc6 100644 (file)
@@ -1,14 +1,10 @@
-```eval_rst
-.. include:: /header.rst 
-:github_url: |github_link_base|/widgets/extra/tileview.md
-```
 # Tile view (lv_tileview)
 
 ## Overview
 
-The Tile view is a container object whose elements (called *tiles*) can be arranged in grid form. 
-A user can navigate between the tiles by swiping. 
-Any direction of swiping can be disabled on the tiles individually to not allow moving from one tile to another. 
+The Tile view is a container object whose elements (called *tiles*) can be arranged in grid form.
+A user can navigate between the tiles by swiping.
+Any direction of swiping can be disabled on the tiles individually to not allow moving from one tile to another.
 
 If the Tile view is screen sized, the user interface resembles what you may have seen on smartwatches.
 
@@ -21,8 +17,8 @@ The parts and styles work the same as for [lv_obj](/widgets/obj).
 
 ### Add a tile
 
-`lv_tileview_add_tile(tileview, row_id, col_id, dir)` creates a new tile on the `row_id`th row and `col_id`th column. 
-`dir` can be `LV_DIR_LEFT/RIGHT/TOP/BOTTOM/HOR/VER/ALL` or OR-ed values to enable moving to the adjacent tiles into the given direction by swiping. 
+`lv_tileview_add_tile(tileview, row_id, col_id, dir)` creates a new tile on the `row_id`th row and `col_id`th column.
+`dir` can be `LV_DIR_LEFT/RIGHT/TOP/BOTTOM/HOR/VER/ALL` or OR-ed values to enable moving to the adjacent tiles into the given direction by swiping.
 
 The returned value is an `lv_obj_t *` on which the content of the tab can be created.
 
@@ -48,11 +44,11 @@ Learn more about [Keys](/overview/indev).
 ```
 
 
-## API 
+## API
 
 ```eval_rst
 
 .. doxygenfile:: lv_tileview.h
   :project: lvgl
-        
+
 ```
index 0262adc..1db641e 100644 (file)
@@ -1,13 +1,9 @@
-```eval_rst
-.. include:: /header.rst 
-:github_url: |github_link_base|/widgets/extra/win.md
-```
 # Window (lv_win)
 
 ## Overview
 
-The Window is container-like object built from a header with title and buttons and a content area. 
- 
+The Window is container-like object built from a header with title and buttons and a content area.
+
 ## Parts and Styles
 The Window is built from other widgets so you can check their documentation for details:
 - Background: [lv_obj](/widgets/obj)
@@ -25,12 +21,12 @@ The Window is built from other widgets so you can check their documentation for
 
 ### Title and buttons
 
-Any number of texts (but typically only one) can be added to the header with `lv_win_add_title(win, "The title")`. 
+Any number of texts (but typically only one) can be added to the header with `lv_win_add_title(win, "The title")`.
 
 Control buttons can be added to the window's header with `lv_win_add_btn(win, icon, btn_width)`. `icon` can be any image source, and `btn_width` is the width of the button.
 
 The title and the buttons will be added in the order the functions are called. So adding a button, a text and two other buttons will result in a button on the left, a title, and 2 buttons on the right.
-The width of the title is set to take all the remaining space on the header. In other words: it pushes to the right all the buttons that are added after the title. 
+The width of the title is set to take all the remaining space on the header. In other words: it pushes to the right all the buttons that are added after the title.
 
 ## Get the parts
 `lv_win_get_header(win)` returns a pointer to the header, `lv_win_get_content(win)` returns a pointer to the content container to which the content of the window can be added.
@@ -41,7 +37,7 @@ No special events are sent by the windows, however events can be added manually
 Learn more about [Events](/overview/event).
 
 ## Keys
-No *Keys* are handled by the window. 
+No *Keys* are handled by the window.
 
 Learn more about [Keys](/overview/indev).
 
@@ -55,11 +51,11 @@ Learn more about [Keys](/overview/indev).
 ```
 
 
-## API 
+## API
 
 ```eval_rst
 
 .. doxygenfile:: lv_win.h
   :project: lvgl
-        
+
 ```
index 4bff916..0d716c2 100644 (file)
@@ -1,14 +1,10 @@
-```eval_rst
-.. include:: /header.rst 
-:github_url: |github_link_base|/object-types/index.md
-```
 # Widgets
 
 ```eval_rst
 
 .. toctree::
    :maxdepth: 1
-   
+
    obj
    core/index
    extra/index
index f8540bc..c635468 100644 (file)
@@ -1,7 +1,3 @@
-```eval_rst
-.. include:: /header.rst 
-:github_url: |github_link_base|/widgets/obj.md
-```
 # Base object (lv_obj)
 
 ## Overview
@@ -13,7 +9,7 @@ The 'Base Object' implements the basic properties of widgets on a screen, such a
 - contains the styles
 - attributes like *Clickable*, *Scrollable*, etc.
 
-In object-oriented thinking, it is the base class from which all other objects in LVGL are inherited. 
+In object-oriented thinking, it is the base class from which all other objects in LVGL are inherited.
 
 The functions and functionalities of the Base object can be used with other widgets too. For example `lv_obj_set_width(slider, 100)`
 
@@ -69,7 +65,7 @@ for(i = 0; i < lv_obj_get_child_cnt(parent); i++) {
 
 You can bring an object to the foreground or send it to the background with `lv_obj_move_foreground(obj)` and `lv_obj_move_background(obj)`.
 
-You can change the index of an object in its parent using  `lv_obj_move_to_index(obj, index)`. 
+You can change the index of an object in its parent using  `lv_obj_move_to_index(obj, index)`.
 
 You can swap the position of two objects with `lv_obj_swap(obj1, obj2)`.
 
@@ -95,10 +91,10 @@ Read the [Event overview](/overview/event) to learn more about events.
 ### Styles
 Be sure to read the [Style overview](/overview/style). Here only the most essential functions are described.
 
-A new style can be added to an object with the `lv_obj_add_style(obj, &new_style, selector)` function. 
+A new style can be added to an object with the `lv_obj_add_style(obj, &new_style, selector)` function.
 `selector` is an ORed combination of part and state(s). E.g. `LV_PART_SCROLLBAR | LV_STATE_PRESSED`.
 
-The base objects use `LV_PART_MAIN` style properties and `LV_PART_SCROLLBAR` with the typical background style properties. 
+The base objects use `LV_PART_MAIN` style properties and `LV_PART_SCROLLBAR` with the typical background style properties.
 
 
 ### Flags
index cf6f843..5616982 100644 (file)
@@ -11,11 +11,19 @@ option(LV_CONF_INCLUDE_SIMPLE
 option(LV_CONF_PATH "Path defined for lv_conf.h")
 get_filename_component(LV_CONF_DIR ${LV_CONF_PATH} DIRECTORY)
 
+# Option to build shared libraries (as opposed to static), default: OFF
+option(BUILD_SHARED_LIBS "Build shared libraries" OFF)
+
 file(GLOB_RECURSE SOURCES ${LVGL_ROOT_DIR}/src/*.c)
 file(GLOB_RECURSE EXAMPLE_SOURCES ${LVGL_ROOT_DIR}/examples/*.c)
 file(GLOB_RECURSE DEMO_SOURCES ${LVGL_ROOT_DIR}/demos/*.c)
 
-add_library(lvgl STATIC ${SOURCES})
+if (BUILD_SHARED_LIBS)
+  add_library(lvgl SHARED ${SOURCES})
+else()
+  add_library(lvgl STATIC ${SOURCES})
+endif()
+
 add_library(lvgl::lvgl ALIAS lvgl)
 add_library(lvgl_examples STATIC ${EXAMPLE_SOURCES})
 add_library(lvgl::examples ALIAS lvgl_examples)
@@ -59,9 +67,13 @@ set_target_properties(
   lvgl
   PROPERTIES OUTPUT_NAME lvgl
              ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
+             LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
+             RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
              PUBLIC_HEADER "${LVGL_PUBLIC_HEADERS}")
 
 install(
   TARGETS lvgl
   ARCHIVE DESTINATION "${LIB_INSTALL_DIR}"
+  LIBRARY DESTINATION "${LIB_INSTALL_DIR}"
+  RUNTIME DESTINATION "${LIB_INSTALL_DIR}"
   PUBLIC_HEADER DESTINATION "${INC_INSTALL_DIR}")
index a8671da..edc3709 100644 (file)
@@ -12,22 +12,43 @@ if(LV_MICROPYTHON)
     ${LVGL_ROOT_DIR}/../
     REQUIRES
     main)
+else()
+  if(CONFIG_LV_BUILD_EXAMPLES)
+    file(GLOB_RECURSE EXAMPLE_SOURCES ${LVGL_ROOT_DIR}/examples/*.c)
+    set_source_files_properties(${EXAMPLE_SOURCES} COMPILE_FLAGS "-Wno-unused-variable -Wno-format")
+  endif()
 
-  target_compile_definitions(${COMPONENT_LIB}
-                             INTERFACE "-DLV_CONF_INCLUDE_SIMPLE")
-
-  if(CONFIG_LV_ATTRIBUTE_FAST_MEM_USE_IRAM)
-    target_compile_definitions(${COMPONENT_LIB}
-                               INTERFACE "-DLV_ATTRIBUTE_FAST_MEM=IRAM_ATTR")
+  if(CONFIG_LV_USE_DEMO_WIDGETS)
+    file(GLOB_RECURSE DEMO_WIDGETS_SOURCES ${LVGL_ROOT_DIR}/demos/widgets/*.c)
+    list(APPEND DEMO_SOURCES ${DEMO_WIDGETS_SOURCES})
   endif()
-else()
-  idf_component_register(SRCS ${SOURCES} INCLUDE_DIRS ${LVGL_ROOT_DIR}
-                         ${LVGL_ROOT_DIR}/src ${LVGL_ROOT_DIR}/../)
+  if(CONFIG_LV_USE_DEMO_KEYPAD_AND_ENCODER)
+    file(GLOB_RECURSE DEMO_KEYPAD_AND_ENCODER_SOURCES ${LVGL_ROOT_DIR}/demos/keypad_encoder/*.c)
+    list(APPEND DEMO_SOURCES ${DEMO_KEYPAD_AND_ENCODER_SOURCES})
+  endif()
+  if(CONFIG_LV_USE_DEMO_BENCHMARK)
+    file(GLOB_RECURSE DEMO_BENCHMARK_SOURCES ${LVGL_ROOT_DIR}/demos/benchmark/*.c)
+    list(APPEND DEMO_SOURCES ${DEMO_BENCHMARK_SOURCES})
+  endif()
+  if(CONFIG_LV_USE_DEMO_STRESS)
+    file(GLOB_RECURSE DEMO_STRESS_SOURCES ${LVGL_ROOT_DIR}/demos/stress/*.c)
+    list(APPEND DEMO_SOURCES ${DEMO_STRESS_SOURCES})
+  endif()
+  if(CONFIG_LV_USE_DEMO_MUSIC)
+    file(GLOB_RECURSE DEMO_MUSIC_SOURCES ${LVGL_ROOT_DIR}/demos/music/*.c)
+    list(APPEND DEMO_SOURCES ${DEMO_MUSIC_SOURCES})
+    set_source_files_properties(${DEMO_MUSIC_SOURCES} COMPILE_FLAGS "-Wno-format")
+  endif()
+
+  idf_component_register(SRCS ${SOURCES} ${EXAMPLE_SOURCES} ${DEMO_SOURCES}
+      INCLUDE_DIRS ${LVGL_ROOT_DIR} ${LVGL_ROOT_DIR}/src ${LVGL_ROOT_DIR}/../
+                   ${LVGL_ROOT_DIR}/examples ${LVGL_ROOT_DIR}/demos
+      REQUIRES esp_timer)
+endif()
 
-  target_compile_definitions(${COMPONENT_LIB} PUBLIC "-DLV_CONF_INCLUDE_SIMPLE")
+target_compile_definitions(${COMPONENT_LIB} PUBLIC "-DLV_CONF_INCLUDE_SIMPLE")
 
-  if(CONFIG_LV_ATTRIBUTE_FAST_MEM_USE_IRAM)
-    target_compile_definitions(${COMPONENT_LIB}
-                               PUBLIC "-DLV_ATTRIBUTE_FAST_MEM=IRAM_ATTR")
-  endif()
+if(CONFIG_LV_ATTRIBUTE_FAST_MEM_USE_IRAM)
+  target_compile_definitions(${COMPONENT_LIB}
+                             PUBLIC "-DLV_ATTRIBUTE_FAST_MEM=IRAM_ATTR")
 endif()
index 9f3699a..53eb987 100644 (file)
   <supportContact>https://github.com/lvgl/lvgl/issues/new/choose</supportContact>
   <license>LICENCE.txt</license>
   <!-- optional license file -->
-  <!-- 
+  <!--
   <license>
   </license>
   -->
-  
+
   <repository type="git">https://github.com/lvgl/lvgl.git</repository>
-  
+
   <releases>
-    <release date="2022-01-31" version="1.0.0" url="https://raw.githubusercontent.com/lvgl/lvgl/master/env_support/cmsis-pack/LVGL.lvgl.1.0.0.pack">
+    <release date="2023-04-28" version="8.3.7" url="https://raw.githubusercontent.com/lvgl/lvgl/master/env_support/cmsis-pack/LVGL.lvgl.8.3.7.pack">
+      - LVGL 8.3.7
+      - Minor updates
+    </release>
+    <release date="2023-04-02" version="8.3.6" url="https://raw.githubusercontent.com/lvgl/lvgl/master/env_support/cmsis-pack/LVGL.lvgl.8.3.6.pack">
+      - LVGL 8.3.6 release
+      - Various fixes, See CHANGELOG.md
+    </release>
+    <release date="2023-02-06" version="8.3.5" url="https://github.com/lvgl/lvgl/raw/e7e8cf846dce96f7542e27b5c9655bab680c31a1/env_support/cmsis-pack/LVGL.lvgl.8.3.5.pack">
+      - LVGL 8.3.5 release
+      - Use LVGL version as the cmsis-pack version
+      - Fix GPU support for NXP PXP and NXP VGLite
+      - Rework stm32 DMA2D support
+      - Various fixes
+    </release>
+    <release date="2022-12-31" version="1.0.6-p1" url="https://github.com/lvgl/lvgl/raw/dbb15bb3ea0365373bc1ba8b182556f937e61e7d/env_support/cmsis-pack/LVGL.lvgl.1.0.6-p1.pack">
+      - LVGL 8.3.4 release
+      - Update GPU Arm-2D support
+      - Various fixes
+    </release>
+    <release date="2022-06-29" version="1.0.5" url="https://github.com/GorgonMeducer/lvgl/raw/922108dbbe6d1c0be1069c342ca8693afee8c169/env_support/cmsis-pack/LVGL.lvgl.1.0.5.pack">
+      - LVGL 8.3.0-dev
+      - Monthly update for June
+      - Add Pinyin as input method
+      - Update benchmark to support RGB565-A8
+      - Update support for layers
+    </release>
+    <release date="2022-05-31" version="1.0.4" url="https://github.com/lvgl/lvgl/raw/ce0605182c31e43abc8137ba21f237ec442735bc/env_support/cmsis-pack/LVGL.lvgl.1.0.4.pack">
+      - LVGL 8.3.0-dev
+      - Monthly update for May
+      - Update drawing service
+      - Update GPU support for Arm-2D library
+      - Update GPU support for NXP PXP/VGLite
+      - Improving the accuracy of benchmark. 
+      - Add new colour support for RGB565A8
+    </release>
+    <release date="2022-04-27" version="1.0.3" url="https://github.com/lvgl/lvgl/raw/b81437e96423826272cd42d5555373f15bfdf03a/env_support/cmsis-pack/LVGL.lvgl.1.0.3.pack">
+      - LVGL 8.3.0-dev
+      - Monthly update for April
+      - Add GPU support for SWM341-DMA2D
+    </release>
+    <release date="2022-03-27" version="1.0.2" url="https://github.com/lvgl/lvgl/raw/a5b9a1c210821f122fb7582378a9f1819b1dc821/env_support/cmsis-pack/LVGL.lvgl.1.0.2.pack">
+      - LVGL 8.3.0-dev
+      - Monthly update for March
+      - Add GPU support for Arm-2D library
+    </release>
+    <release date="2022-02-26" version="1.0.1" url="https://github.com/lvgl/lvgl/raw/44f6f752386617a8812228b9c1357f180e73e4ff/env_support/cmsis-pack/LVGL.lvgl.1.0.1.pack">
+      - LVGL 8.3.0-dev
+      - Monthly update for February
+    </release>
+    <release date="2022-01-31" version="1.0.0" url="https://github.com/lvgl/lvgl/blob/d851fe0528fcb920fee86c944fe9dbbaf6fbb0c9/env_support/cmsis-pack/LVGL.lvgl.1.0.0.pack?raw=true">
       - LVGL 8.2.0
       - Enable LV_TICK_CUSTOM when perf_counter is detected.
       - Celebrate Spring Festival
@@ -49,8 +99,8 @@
     <keyword>SysTick</keyword>
     <keyword>Performance Analaysis</keyword>
   </keywords>
-  
-    <conditions> 
+
+    <conditions>
         <!--
         <condition id="Arm Compiler">
             <description>Arm Compiler 5 (armcc) or Arm Compiler 6 (armclang).</description>
             <accept  Dcore="ARMV8MBL"/>
             <accept  Dcore="ARMV8MML"/>
         </condition>
-        
+
         <condition id="CMSIS-CORE">
             <description>Require CMSIS-CORE Support</description>
             <require Cclass="CMSIS" Cgroup="CORE"/>
         </condition>
-        
 
-        
+
+
         <condition id="Cortex-M Arm GCC">
             <description>Compile Cortex-M Processors with GNU Tools for Arm Embedded Processors.</description>
             <require condition="Arm GCC"/>
             <require condition="Arm Compiler"/>
             <require condition="Cortex-M Processors"/>
         </condition>
-        
+
         <condition id="Cortex-M Arm GCC CMSIS-CORE">
             <description>Compile Cortex-M Processors with GNU Tools for Arm Embedded Processors.</description>
             <require condition="Arm GCC"/>
             <require condition="CMSIS-CORE"/>
         </condition>
         -->
-        
+
         <condition id="LVGL-Essential">
             <description>Require LVGL Essential Service</description>
             <require Cclass="LVGL" Cgroup="lvgl" Csub="Essential"/>
         </condition>
+
+        <condition id="Arm-2D">
+            <description>Require Arm-2D Support</description>
+            <require Cclass="Acceleration" Cgroup="Arm-2D"/>
+        </condition>
+
+        <condition id="LVGL-GPU-Arm-2D">
+            <description>Enable LVGL Arm-2D GPU Support</description>
+            <require Cclass="LVGL" Cgroup="lvgl" Csub="Essential"/>
+            <!--<deny Cclass="LVGL" Cgroup="lvgl" Csub="GPU Arm-2D"/>-->
+            <deny Cclass="LVGL" Cgroup="lvgl" Csub="GPU STM32-DMA2D"/>
+            <deny Cclass="LVGL" Cgroup="lvgl" Csub="GPU SWM341-DMA2D"/>
+            <deny Cclass="LVGL" Cgroup="lvgl" Csub="GPU NXP-PXP"/>
+            <deny Cclass="LVGL" Cgroup="lvgl" Csub="GPU NXP-VGLite"/>
+            <deny Cclass="LVGL" Cgroup="lvgl" Csub="GPU GD32-IPA"/>
+        </condition>
+        
+        <condition id="LVGL-GPU-STM32-DMA2D">
+            <description>Enable LVGL Arm-2D GPU Support</description>
+            <require Cclass="LVGL" Cgroup="lvgl" Csub="Essential"/>
+            <deny Cclass="LVGL" Cgroup="lvgl" Csub="GPU Arm-2D"/>
+            <!--<deny Cclass="LVGL" Cgroup="lvgl" Csub="GPU STM32-DMA2D"/>-->
+            <deny Cclass="LVGL" Cgroup="lvgl" Csub="GPU SWM341-DMA2D"/>
+            <deny Cclass="LVGL" Cgroup="lvgl" Csub="GPU NXP-PXP"/>
+            <deny Cclass="LVGL" Cgroup="lvgl" Csub="GPU NXP-VGLite"/>
+            <deny Cclass="LVGL" Cgroup="lvgl" Csub="GPU GD32-IPA"/>
+        </condition>
+        
+        <condition id="LVGL-GPU-SWM341-DMA2D">
+            <description>Enable LVGL Arm-2D GPU Support</description>
+            <require Cclass="LVGL" Cgroup="lvgl" Csub="Essential"/>
+            <deny Cclass="LVGL" Cgroup="lvgl" Csub="GPU Arm-2D"/>
+            <deny Cclass="LVGL" Cgroup="lvgl" Csub="GPU STM32-DMA2D"/>
+            <!--<deny Cclass="LVGL" Cgroup="lvgl" Csub="GPU SWM341-DMA2D"/>-->
+            <deny Cclass="LVGL" Cgroup="lvgl" Csub="GPU NXP-PXP"/>
+            <deny Cclass="LVGL" Cgroup="lvgl" Csub="GPU NXP-VGLite"/>
+            <deny Cclass="LVGL" Cgroup="lvgl" Csub="GPU GD32-IPA"/>
+        </condition>
+        
+        <condition id="LVGL-GPU-NXP-PXP">
+            <description>Enable LVGL Arm-2D GPU Support</description>
+            <require Cclass="LVGL" Cgroup="lvgl" Csub="Essential"/>
+            <deny Cclass="LVGL" Cgroup="lvgl" Csub="GPU Arm-2D"/>
+            <deny Cclass="LVGL" Cgroup="lvgl" Csub="GPU STM32-DMA2D"/>
+            <deny Cclass="LVGL" Cgroup="lvgl" Csub="GPU SWM341-DMA2D"/>
+            <!--<deny Cclass="LVGL" Cgroup="lvgl" Csub="GPU NXP-PXP"/>-->
+            <deny Cclass="LVGL" Cgroup="lvgl" Csub="GPU NXP-VGLite"/>
+            <deny Cclass="LVGL" Cgroup="lvgl" Csub="GPU GD32-IPA"/>
+        </condition>
+        
+        <condition id="LVGL-GPU-NXP-VGLite">
+            <description>Enable LVGL Arm-2D GPU Support</description>
+            <require Cclass="LVGL" Cgroup="lvgl" Csub="Essential"/>
+            <deny Cclass="LVGL" Cgroup="lvgl" Csub="GPU Arm-2D"/>
+            <deny Cclass="LVGL" Cgroup="lvgl" Csub="GPU STM32-DMA2D"/>
+            <deny Cclass="LVGL" Cgroup="lvgl" Csub="GPU SWM341-DMA2D"/>
+            <deny Cclass="LVGL" Cgroup="lvgl" Csub="GPU NXP-PXP"/>
+            <!--<deny Cclass="LVGL" Cgroup="lvgl" Csub="GPU NXP-VGLite"/>-->
+            <deny Cclass="LVGL" Cgroup="lvgl" Csub="GPU GD32-IPA"/>
+        </condition>
         
+        <condition id="LVGL-GPU-GD32-IPA">
+            <description>Enable LVGL Arm-2D GPU Support</description>
+            <require Cclass="LVGL" Cgroup="lvgl" Csub="Essential"/>
+            <deny Cclass="LVGL" Cgroup="lvgl" Csub="GPU Arm-2D"/>
+            <deny Cclass="LVGL" Cgroup="lvgl" Csub="GPU STM32-DMA2D"/>
+            <deny Cclass="LVGL" Cgroup="lvgl" Csub="GPU SWM341-DMA2D"/>
+            <deny Cclass="LVGL" Cgroup="lvgl" Csub="GPU NXP-PXP"/>
+            <deny Cclass="LVGL" Cgroup="lvgl" Csub="GPU NXP-VGLite"/>
+            <!--<deny Cclass="LVGL" Cgroup="lvgl" Csub="GPU GD32-IPA"/>-->
+        </condition>
+
     </conditions>
   <!-- apis section (optional - for Application Programming Interface descriptions) -->
-  <!-- 
+  <!--
   <apis>
   </apis>
   -->
 
   <!-- boards section (mandatory for Board Support Packs) -->
-  <!-- 
+  <!--
   <boards>
   </boards>
   -->
   <examples>
   </examples>
   -->
-  
+
   <!-- conditions section (optional for all Software Packs)-->
   <!--
   <conditions>
   -->
 
     <components>
-        <bundle Cbundle="LVGL" Cclass="LVGL" Cversion="8.2.0">
+        <bundle Cbundle="LVGL" Cclass="LVGL" Cversion="8.3.7">
             <description>LVGL (Light and Versatile Graphics Library) is a free and open-source graphics library providing everything you need to create an embedded GUI with easy-to-use graphical elements, beautiful visual effects and a low memory footprint.</description>
             <doc></doc>
             <component Cgroup="lvgl" Csub="Essential" >
                 <file category="sourceC"            name="src/core/lv_obj_tree.c" />
                 <file category="sourceC"            name="src/core/lv_refr.c" />
                 <file category="sourceC"            name="src/core/lv_theme.c" />
-                
+
                 <!-- src/draw -->
                 <file category="sourceC"            name="src/draw/lv_draw.c" />
                 <file category="sourceC"            name="src/draw/lv_draw_arc.c" />
                 <file category="sourceC"            name="src/draw/lv_draw_img.c" />
                 <file category="sourceC"            name="src/draw/lv_draw_label.c" />
+                <file category="sourceC"            name="src/draw/lv_draw_layer.c" />
                 <file category="sourceC"            name="src/draw/lv_draw_line.c" />
                 <file category="sourceC"            name="src/draw/lv_draw_mask.c" />
                 <file category="sourceC"            name="src/draw/lv_draw_rect.c" />
+                <file category="sourceC"            name="src/draw/lv_draw_transform.c" />
                 <file category="sourceC"            name="src/draw/lv_draw_triangle.c" />
                 <file category="sourceC"            name="src/draw/lv_img_buf.c" />
                 <file category="sourceC"            name="src/draw/lv_img_cache.c" />
                 <file category="sourceC"            name="src/draw/lv_img_decoder.c" />
-                
+
                 <!-- src/draw/sw -->
                 <file category="sourceC"            name="src/draw/sw/lv_draw_sw.c" />
                 <file category="sourceC"            name="src/draw/sw/lv_draw_sw_arc.c" />
                 <file category="sourceC"            name="src/draw/sw/lv_draw_sw_dither.c" />
                 <file category="sourceC"            name="src/draw/sw/lv_draw_sw_gradient.c" />
                 <file category="sourceC"            name="src/draw/sw/lv_draw_sw_img.c" />
+                <file category="sourceC"            name="src/draw/sw/lv_draw_sw_layer.c" />
                 <file category="sourceC"            name="src/draw/sw/lv_draw_sw_letter.c" />
                 <file category="sourceC"            name="src/draw/sw/lv_draw_sw_line.c" />
                 <file category="sourceC"            name="src/draw/sw/lv_draw_sw_polygon.c" />
                 <file category="sourceC"            name="src/draw/sw/lv_draw_sw_rect.c" />
+                <file category="sourceC"            name="src/draw/sw/lv_draw_sw_transform.c" />
                 
+
                 <!-- src/font -->
                 <file category="sourceC"            name="src/font/lv_font.c" />
                 <file category="sourceC"            name="src/font/lv_font_dejavu_16_persian_hebrew.c" />
                 <file category="sourceC"            name="src/font/lv_font_simsun_16_cjk.c" />
                 <file category="sourceC"            name="src/font/lv_font_unscii_8.c" />
                 <file category="sourceC"            name="src/font/lv_font_unscii_16.c" />
-                
+
                 <!-- src/hal -->
                 <file category="sourceC"            name="src/hal/lv_hal_disp.c" />
                 <file category="sourceC"            name="src/hal/lv_hal_indev.c" />
                 <file category="sourceC"            name="src/hal/lv_hal_tick.c" />
-                
+
                 <!-- src/misc-->
                 <file category="sourceC"            name="src/misc/lv_anim.c" />
                 <file category="sourceC"            name="src/misc/lv_anim_timeline.c" />
                 <file category="sourceC"            name="src/misc/lv_txt.c" />
                 <file category="sourceC"            name="src/misc/lv_txt_ap.c" />
                 <file category="sourceC"            name="src/misc/lv_utils.c" />
-                
+
                 <!-- src/widgets -->
                 <file category="sourceC"            name="src/widgets/lv_arc.c" />
                 <file category="sourceC"            name="src/widgets/lv_bar.c" />
                 <file category="sourceC"            name="src/widgets/lv_switch.c" />
                 <file category="sourceC"            name="src/widgets/lv_table.c" />
                 <file category="sourceC"            name="src/widgets/lv_textarea.c" />
-                
+
                 <!-- general -->
-                <file category="preIncludeGlobal"   name="lv_conf_cmsis.h" attr="config" version="1.0.0" />
+                <file category="preIncludeGlobal"   name="lv_conf_cmsis.h" attr="config" version="1.0.3" />
                 <file category="sourceC"            name="lv_cmsis_pack.c" attr="config" version="1.0.0" />
                 <file category="header"             name="lvgl.h" />
                 <file category="doc"                name="README.md"/>
                 
+                <!-- code template -->
+                <file category="header"       name="examples/porting/lv_port_disp_template.h"   attr="template" select="Display port template"          version="2.0.0"/>
+                <file category="sourceC"      name="examples/porting/lv_port_disp_template.c"   attr="template" select="Display port template"          version="2.0.0"/>
+                <file category="header"       name="examples/porting/lv_port_indev_template.h"  attr="template" select="Input devices port template"    version="2.0.0"/>
+                <file category="sourceC"      name="examples/porting/lv_port_indev_template.c"  attr="template" select="Input devices port template"    version="2.0.0"/>
+                <file category="header"       name="examples/porting/lv_port_fs_template.h"     attr="template" select="File system port template"      version="2.0.0"/>
+                <file category="sourceC"      name="examples/porting/lv_port_fs_template.c"     attr="template" select="File system port template"      version="2.0.0"/>
+
               </files>
-              
+
               <Pre_Include_Global_h>
-              
+
 /*! \brief use lv_config_cmsis.h which will be pre-included */
 #define LV_CONF_SKIP
+#define LV_LVGL_H_INCLUDE_SIMPLE    1
               </Pre_Include_Global_h>
-              
+
                <RTE_Components_h>
-               
+
 /*! \brief Enable LVGL */
-#define RTE_GRAPHICS_LVGL               
+#define RTE_GRAPHICS_LVGL
                </RTE_Components_h>
-              
+
             </component>
 
             <component Cgroup="lvgl" Csub="Porting"  condition="LVGL-Essential">
               <description>Porting Templates</description>
               <files>
-                <file category="header"     name="examples/porting/lv_port_disp_template.h" attr="config" version="1.0.0" />
-                <file category="sourceC"    name="examples/porting/lv_port_disp_template.c" attr="config" version="1.0.0" />
-                
+                <file category="header"     name="examples/porting/lv_port_disp_template.h" attr="config" version="1.0.1" />
+                <file category="sourceC"    name="examples/porting/lv_port_disp_template.c" attr="config" version="1.0.1" />
+
                 <file category="header"     name="examples/porting/lv_port_indev_template.h" attr="config" version="1.0.0" />
                 <file category="sourceC"    name="examples/porting/lv_port_indev_template.c" attr="config" version="1.0.0" />
 
               </files>
             </component>
 
-            <component Cgroup="lvgl" Csub="GPU STM32-DMA2D"  condition="LVGL-Essential">
+            <component Cgroup="lvgl" Csub="GPU Arm-2D"  condition="LVGL-GPU-Arm-2D" Cversion="1.2.2">
+              <description>A 2D image processing library from Arm (i.e. Arm-2D) for All Cortex-M processors including Cortex-M0</description>
+              <files>
+              <file category="sourceC"      name="src/draw/arm2d/lv_gpu_arm2d.c" condition="Arm-2D"/>
+              </files>
+
+              <RTE_Components_h>
+
+/*! \brief enable Arm-2D support*/
+#define LV_USE_GPU_ARM2D 1
+
+              </RTE_Components_h>
+
+            </component>
+
+            <component Cgroup="lvgl" Csub="GPU STM32-DMA2D"  condition="LVGL-GPU-STM32-DMA2D">
               <description>An hardware acceleration from STM32-DMA2D</description>
               <files>
               <file category="sourceC"            name="src/draw/stm32_dma2d/lv_gpu_stm32_dma2d.c" />
               </files>
-              
+
               <RTE_Components_h>
-              
+
 /*! \brief enable STM32 DMA2D */
 #define LV_USE_GPU_STM32_DMA2D      1
               </RTE_Components_h>
-              
+
             </component>
 
-            <component Cgroup="lvgl" Csub="GPU NXP-PXP"  condition="LVGL-Essential">
-              <description>An hardware acceleration from NXP-PXP</description>
+            <component Cgroup="lvgl" Csub="GPU SWM341-DMA2D"  condition="LVGL-GPU-SWM341-DMA2D">
+              <description>An hardware acceleration from SWM341-DMA2D</description>
               <files>
-              <file category="sourceC"            name="src/draw/nxp_pxp/lv_gpu_nxp_pxp.c" />
-              <file category="sourceC"            name="src/draw/nxp_pxp/lv_gpu_nxp_pxp_osa.c" />
+              <file category="sourceC"            name="src/draw/swm341_dma2d/lv_gpu_swm341_dma2d.c" />
               </files>
               
               <RTE_Components_h>
               
+/*! \brief enable SWM341 DMA2D */
+#define LV_USE_GPU_SWM341_DMA2D      1
+              </RTE_Components_h>
+              
+            </component>
+            
+            <component Cgroup="lvgl" Csub="GPU NXP-PXP"  condition="LVGL-GPU-NXP-PXP">
+              <description>An hardware acceleration from NXP-PXP</description>
+              <files>
+                <file category="sourceC"            name="src/draw/nxp/pxp/lv_draw_pxp.c" />
+                <file category="sourceC"            name="src/draw/nxp/pxp/lv_draw_pxp_blend.c" />
+                <file category="sourceC"            name="src/draw/nxp/pxp/lv_gpu_nxp_pxp.c" />
+                <file category="sourceC"            name="src/draw/nxp/pxp/lv_gpu_nxp_pxp_osa.c" />
+              </files>
+
+              <RTE_Components_h>
+
 /*! \brief enable NXP PXP */
 #define LV_USE_GPU_NXP_PXP          1
               </RTE_Components_h>
-              
+
             </component>
 
-            <component Cgroup="lvgl" Csub="GPU NXP-VGLite"  condition="LVGL-Essential">
+            <component Cgroup="lvgl" Csub="GPU NXP-VGLite"  condition="LVGL-GPU-NXP-VGLite">
               <description>An hardware acceleration from NXP-VGLite</description>
               <files>
-              <file category="sourceC"            name="src/draw/nxp_vglite/lv_gpu_nxp_vglite.c" />
+                <file category="sourceC"            name="src/draw/nxp/vglite/lv_draw_vglite.c" />
+                <file category="sourceC"            name="src/draw/nxp/vglite/lv_draw_vglite_arc.c" />
+                <file category="sourceC"            name="src/draw/nxp/vglite/lv_draw_vglite_blend.c" />
+                <file category="sourceC"            name="src/draw/nxp/vglite/lv_draw_vglite_line.c" />
+                <file category="sourceC"            name="src/draw/nxp/vglite/lv_draw_vglite_rect.c" />
+                <file category="sourceC"            name="src/draw/nxp/vglite/lv_vglite_buf.c" />
+                <file category="sourceC"            name="src/draw/nxp/vglite/lv_vglite_utils.c" />
               </files>
-              
+
               <RTE_Components_h>
-              
+
 /*! \brief enable NXP VGLite */
 #define LV_USE_GPU_NXP_VG_LITE          1
               </RTE_Components_h>
-              
+
             </component>
-            
+
             <component Cgroup="lvgl" Csub="Extra Themes"  condition="LVGL-Essential">
               <description>Extra Themes, Widgets and Layouts</description>
               <files>
                 <file category="sourceC"            name="src/extra/lv_extra.c" />
-              
+
                 <!-- src/extra/themes -->
                 <file category="sourceC"            name="src/extra/themes/default/lv_theme_default.c" />
                 <file category="sourceC"            name="src/extra/themes/basic/lv_theme_basic.c" />
                 <file category="sourceC"            name="src/extra/themes/mono/lv_theme_mono.c" />
-                
+
                 <!-- src/extra/widgets -->
                 <file category="sourceC"            name="src/extra/widgets/animimg/lv_animimg.c" />
                 <file category="sourceC"            name="src/extra/widgets/calendar/lv_calendar.c" />
                 <file category="sourceC"            name="src/extra/widgets/tabview/lv_tabview.c" />
                 <file category="sourceC"            name="src/extra/widgets/tileview/lv_tileview.c" />
                 <file category="sourceC"            name="src/extra/widgets/win/lv_win.c" />
-                
+
                 <!-- src/extra/layouts -->
                 <file category="sourceC"            name="src/extra/layouts/flex/lv_flex.c" />
                 <file category="sourceC"            name="src/extra/layouts/grid/lv_grid.c" />
               </files>
-              
+
               <RTE_Components_h>
-               
+
 /*! \brief use extra themes, widgets and layouts */
-#define RTE_GRAPHICS_LVGL_USE_EXTRA_THEMES               
+#define RTE_GRAPHICS_LVGL_USE_EXTRA_THEMES
               </RTE_Components_h>
-              
+
             </component>
-            
+
             <component Cgroup="lvgl" Csub="Libs PNG"  condition="LVGL-Essential">
               <description>Add PNG support</description>
               <files>
                 <file category="sourceC"            name="src/extra/libs/png/lodepng.c" />
                 <file category="sourceC"            name="src/extra/libs/png/lv_png.c" />
               </files>
-              
+
               <RTE_Components_h>
-              
+
 /*! \brief enable PNG support */
 #define LV_USE_PNG          1
               </RTE_Components_h>
-              
+
             </component>
 
             <component Cgroup="lvgl" Csub="Libs BMP"  condition="LVGL-Essential">
                 <!-- src/extra/libs/bmp -->
                 <file category="sourceC"            name="src/extra/libs/bmp/lv_bmp.c" />
               </files>
-              
+
               <RTE_Components_h>
-              
+
 /*! \brief enable BMP support */
 #define LV_USE_BMP          1
               </RTE_Components_h>
-              
+
             </component>
 
             <component Cgroup="lvgl" Csub="Libs freetype"  condition="LVGL-Essential">
                 <!-- src/extra/libs/freetype -->
                 <file category="sourceC"            name="src/extra/libs/freetype/lv_freetype.c" />
               </files>
-              
+
               <RTE_Components_h>
-              
+
 /*! \brief enable freetype support */
 #define LV_USE_FREETYPE          1
               </RTE_Components_h>
-              
+
             </component>
 
             <component Cgroup="lvgl" Csub="Libs GIF"  condition="LVGL-Essential">
                 <file category="sourceC"            name="src/extra/libs/gif/lv_gif.c" />
                 <file category="sourceC"            name="src/extra/libs/gif/gifdec.c" />
               </files>
-              
+
               <RTE_Components_h>
-              
+
 /*! \brief enable gif support */
 #define LV_USE_GIF         1
               </RTE_Components_h>
-              
+
             </component>
 
             <component Cgroup="lvgl" Csub="Libs sJPG"  condition="LVGL-Essential">
                 <file category="sourceC"            name="src/extra/libs/sjpg/lv_sjpg.c" />
                 <file category="sourceC"            name="src/extra/libs/sjpg/tjpgd.c" />
               </files>
-              
+
               <RTE_Components_h>
-              
+
 /*! \brief enable sJPG support */
 #define LV_USE_SJPG         1
               </RTE_Components_h>
-              
+
             </component>
 
             <component Cgroup="lvgl" Csub="Libs QRCode"  condition="LVGL-Essential">
                 <file category="sourceC"            name="src/extra/libs/qrcode/lv_qrcode.c" />
                 <file category="sourceC"            name="src/extra/libs/qrcode/qrcodegen.c" />
               </files>
-              
+
               <RTE_Components_h>
-              
+
 /*! \brief enable QRCode support */
 #define LV_USE_QRCODE         1
               </RTE_Components_h>
-              
+
             </component>
 
             <component Cgroup="lvgl" Csub="Libs FileSystem"  condition="LVGL-Essential">
                 <file category="sourceC"            name="src/extra/libs/fsdrv/lv_fs_posix.c" />
                 <file category="sourceC"            name="src/extra/libs/fsdrv/lv_fs_stdio.c" />
               </files>
-              
+
             </component>
-            
+
             <component Cgroup="lvgl" Csub="Libs RLOTTIE"  condition="LVGL-Essential">
               <description>Add RLOTTIE support, an extra librbary is required.</description>
               <files>
                 <!-- src/extra/libs/rlottie -->
                 <file category="sourceC"            name="src/extra/libs/rlottie/lv_rlottie.c" />
               </files>
-              
+
               <RTE_Components_h>
-              
+
 /*! \brief enable RLOTTIE support */
 #define LV_USE_RLOTTIE         1
               </RTE_Components_h>
-              
+
             </component>
-            
+
             <component Cgroup="lvgl" Csub="Libs ffmpeg"  condition="LVGL-Essential">
               <description>Add ffmpeg support, an extra librbary is required.</description>
               <files>
                 <!-- src/extra/libs/ffmpeg -->
                 <file category="sourceC"            name="src/extra/libs/ffmpeg/lv_ffmpeg.c" />
               </files>
-              
+
               <RTE_Components_h>
-              
+
 /*! \brief enable ffmpeg support */
 #define LV_USE_FFMPEG         1
               </RTE_Components_h>
-              
+
             </component>
-            
+
+            <component Cgroup="lvgl" Csub="Pinyin"  condition="LVGL-Essential">
+              <description>Add Pinyin input method</description>
+              <files>
+                <!-- src/extra/others/ime -->
+                <file category="sourceC"            name="src/extra/others/ime/lv_ime_pinyin.c" />
+              </files>
+
+              <RTE_Components_h>
+
+/*! \brief enable ffmpeg support */
+#define LV_USE_IME_PINYIN         1
+              </RTE_Components_h>
+
+            </component>
+
             <component Cgroup="lvgl" Csub="Benchmark"  condition="LVGL-Essential">
               <description>Add the official benchmark.</description>
               <files>
                 <!-- demos/benchmark -->
                 <file category="sourceC"            name="demos/benchmark/lv_demo_benchmark.c" />
                 <file category="header"            name="demos/benchmark/lv_demo_benchmark.h" />
-                
+
                 <file category="sourceC"            name="demos/benchmark/assets/img_benchmark_cogwheel_alpha16.c" />
                 <file category="sourceC"            name="demos/benchmark/assets/img_benchmark_cogwheel_argb.c" />
                 <file category="sourceC"            name="demos/benchmark/assets/img_benchmark_cogwheel_chroma_keyed.c" />
                 <file category="sourceC"            name="demos/benchmark/assets/img_benchmark_cogwheel_indexed16.c" />
                 <file category="sourceC"            name="demos/benchmark/assets/img_benchmark_cogwheel_rgb.c" />
+                <file category="sourceC"            name="demos/benchmark/assets/img_benchmark_cogwheel_rgb565a8.c" />
+                
                 <file category="sourceC"            name="demos/benchmark/assets/lv_font_bechmark_montserrat_12_compr_az.c.c" />
                 <file category="sourceC"            name="demos/benchmark/assets/lv_font_bechmark_montserrat_16_compr_az.c.c" />
                 <file category="sourceC"            name="demos/benchmark/assets/lv_font_bechmark_montserrat_28_compr_az.c.c" />
-                
+
                 <file category="doc"            name="demos/benchmark/README.md" />
               </files>
-              
+
               <RTE_Components_h>
-              
+
 /*! \brief enable demo:bencharmk */
 #define LV_USE_DEMO_BENCHMARK         1
               </RTE_Components_h>
-              
+
             </component>
-            
+
             <component Cgroup="lvgl" Csub="Demo:Widgets"  condition="LVGL-Essential">
               <description>Add the demo:widgets</description>
               <files>
                 <!-- demos/widgets -->
                 <file category="sourceC"            name="demos/widgets/lv_demo_widgets.c" />
                 <file category="header"             name="demos/widgets/lv_demo_widgets.h" />
-                
+
                 <file category="sourceC"            name="demos/widgets/assets/img_clothes.c" />
                 <file category="sourceC"            name="demos/widgets/assets/img_demo_widgets_avatar.c" />
                 <file category="sourceC"            name="demos/widgets/assets/img_lvgl_logo.c" />
               </files>
-              
+
               <RTE_Components_h>
-              
+
 /*! \brief enable demo:widgets support */
 #define LV_USE_DEMO_WIDGETS         1
               </RTE_Components_h>
-              
+
             </component>
         </bundle>
     </components>
-  
+
   <!-- optional taxonomy section for defining new component Class and Group names -->
   <!--
   <taxonomy>
   </taxonomy>
   -->
-  
+
 </package>
index df2074b..5a73e4e 100644 (file)
@@ -6,7 +6,7 @@
 
 1. Copy the **lv_conf_template.h** to '**cmsis-pack**' directory
 
-2. Set the macro protector to '1'
+2. Set the macro protector to '1' 
 
 ```c
 ...
 ...
 ```
 
+remove the misleading guide above this code segment.
+
+```c
+/*
+ * Copy this file as `lv_conf.h`
+ * 1. simply next to the `lvgl` folder
+ * 2. or any other places and
+ *    - define `LV_CONF_INCLUDE_SIMPLE`
+ *    - add the path as include path
+ */
+```
+
 
 3. Add including for '**RTE_Components.h**'
 
 ...
 ```
 
-4. Remove macro definitions for 
+4. Remove macro definitions for
    - LV_USE_GPU_STM32_DMA2D
    - LV_USE_GPU_NXP_PXP
    - LV_USE_GPU_NXP_VG_LITE
-5. Update macro LV_ATTRIBUTE_MEM_ALIGN to force a WORD alignment.
+   - LV_USE_GPU_SWM341_DMA2D
+   - LV_USE_GPU_ARM2D
+   - LV_USE_IME_PINYIN
+5. Update macro `LV_ATTRIBUTE_MEM_ALIGN` and `LV_ATTRIBUTE_MEM_ALIGN_SIZE`  to force a WORD alignment.
 ```c
-#define LV_ATTRIBUTE_MEM_ALIGN      __attribute__((aligned(4)))
+#define LV_ATTRIBUTE_MEM_ALIGN_SIZE     4
+#define LV_ATTRIBUTE_MEM_ALIGN          __attribute__((aligned(4)))
 ```
+Update macro `LV_MEM_SIZE` to `(64*1024U)`.
 6. Update Theme related macros:
 
 ```c
@@ -64,7 +81,7 @@
     #define LV_USE_THEME_MONO       0
 #endif
 ```
-7. Update LV_TICK_CUSTOM related macros:
+7. Update `LV_TICK_CUSTOM` related macros:
 ```c
 /*Use a custom tick source that tells the elapsed time in milliseconds.
  *It removes the need to manually update the tick with `lv_tick_inc()`)*/
     #define LV_TICK_CUSTOM 1
     #if LV_TICK_CUSTOM
         extern uint32_t SystemCoreClock;
-        #define LV_TICK_CUSTOM_INCLUDE          "perf_counter.h" 
-        #define LV_TICK_CUSTOM_SYS_TIME_EXPR    (get_system_ticks() / (SystemCoreClock / 1000ul))
+        #define LV_TICK_CUSTOM_INCLUDE             "perf_counter.h"
+
+        #if __PER_COUNTER_VER__ < 10902ul
+            #define LV_TICK_CUSTOM_SYS_TIME_EXPR    ((uint32_t)get_system_ticks() / (SystemCoreClock / 1000ul))
+        #else
+            #define LV_TICK_CUSTOM_SYS_TIME_EXPR    get_system_ms()
+        #endif
     #endif   /*LV_TICK_CUSTOM*/
 #else
     #define LV_TICK_CUSTOM 0
     #endif   /*LV_TICK_CUSTOM*/
 #endif       /*__PERF_COUNTER__*/
 ```
-9. Thoroughly remove the 'DEMO USAGE' section.
+9. Thoroughly remove the `DEMO USAGE` section.
 10. Thoroughly remove the '3rd party libraries' section.
 10. rename '**lv_conf_template.h**' to '**lv_conf_cmsis.h**'.
 
@@ -111,9 +133,9 @@ echo " "
 
 Update the '**CMSIS_PACK_PATH**' accordingly (Usually just replace the name gabriel with your own windows account name is sufficient.).
 
-Update the '**PATH_TO_ADD**' to point to the installation folders of **7Zip** and **xmllint**. 
+Update the '**PATH_TO_ADD**' to point to the installation folders of **7Zip** and **xmllint**.
 
-Launch the git-bash and go to the cmsis-pack folder. 
+Launch the git-bash and go to the cmsis-pack folder.
 
 enter the following command:
 
@@ -125,9 +147,9 @@ enter the following command:
 
 ### B. For Linux Users
 
-Update '**PATH_TO_ADD**' if necessary. 
+Update '**PATH_TO_ADD**' if necessary.
 
-go to the cmsis-pack folder. 
+go to the **cmsis-pack** folder.
 
 enter the following command:
 
index 148e6af..ff17b5e 100644 (file)
@@ -1,12 +1,12 @@
 #!/bin/bash
-# Version: 1.1 
+# Version: 1.1
 # Date: 2022-01-11
 # This bash script generates a CMSIS Software Pack:
 #
 # Pre-requisites:
 # - bash shell (for Windows: install git for Windows)
 # - 7z in path (zip archiving utility)
-#   e.g. Ubuntu: sudo apt-get install p7zip-full p7zip-rar) 
+#   e.g. Ubuntu: sudo apt-get install p7zip-full p7zip-rar)
 # - PackChk in path with execute permission
 #   (see CMSIS-Pack: CMSIS/Utilities/<os>/PackChk)
 # - xmllint in path (XML schema validation)
@@ -21,14 +21,14 @@ if [ `uname -s` = "Linux" ]
   CMSIS_PACK_PATH="/home/$USER/.arm/Packs/ARM/CMSIS/5.7.0/"
   PATH_TO_ADD="$CMSIS_PACK_PATH/CMSIS/Utilities/Linux64/"
 else
-  CMSIS_PACK_PATH="/C/Users/gabriel/AppData/Local/Arm/Packs/ARM/CMSIS/5.7.0"
-  PATH_TO_ADD="/C/Program Files (x86)/7-Zip/:$CMSIS_PACK_PATH/CMSIS/Utilities/Win32/:/C/xmllint/"
+  CMSIS_PACK_PATH="/C/Users/$USER/AppData/Local/Arm/Packs/ARM/CMSIS/5.7.0"
+  PATH_TO_ADD="/C/Program Files (x86)/7-Zip/:/C/Program Files/7-Zip/:$CMSIS_PACK_PATH/CMSIS/Utilities/Win32/:/C/xmllint/"
 fi
 [[ ":$PATH:" != *":$PATH_TO_ADD}:"* ]] && PATH="${PATH}:${PATH_TO_ADD}"
 echo $PATH_TO_ADD appended to PATH
 echo " "
 
-# Pack warehouse directory - destination 
+# Pack warehouse directory - destination
 PACK_WAREHOUSE=./
 
 # Temporary pack build directory
@@ -48,7 +48,7 @@ PACK_DIRS="
   ../../demos
 "
 
-  
+
 # Specify file names to be added to pack base directory
 PACK_BASE_FILES="
   ../../LICENCE.txt
@@ -61,7 +61,7 @@ PACK_BASE_FILES="
 
 ############ DO NOT EDIT BELOW ###########
 echo Starting CMSIS-Pack Generation: `date`
-# Zip utility check 
+# Zip utility check
 ZIP=7z
 type -a $ZIP
 errorlevel=$?
@@ -158,11 +158,11 @@ echo Adding files to pack:
 echo $PACK_BASE_FILES
 echo " "
 for f in $PACK_BASE_FILES
-do 
-  cp -f  "$f" $PACK_BUILD/ 
+do
+  cp -f  "$f" $PACK_BUILD/
 done
 
-mv "${PACK_BUILD}/lv_cmsis_pack.txt" "${PACK_BUILD}/lv_cmsis_pack.c" 
+mv "${PACK_BUILD}/lv_cmsis_pack.txt" "${PACK_BUILD}/lv_cmsis_pack.c"
 
 # Run Schema Check (for Linux only):
 # sudo apt-get install libxml2-utils
index 72d7ce7..e8d58e8 100644 (file)
@@ -30,7 +30,7 @@
  /*********************
  *      DEFINES
  *********************/
- 
+
  /**********************
  *      TYPEDEFS
  **********************/
 /**********************
  *  STATIC PROTOTYPES
  **********************/
- 
+
  /**********************
  *  STATIC VARIABLES
  **********************/
- 
+
  /**********************
  *      MACROS
  **********************/
- 
+
  /*! \name The macros to identify the compiler */
 /*! @{ */
 
@@ -92,8 +92,8 @@
 /*! @} */
 #endif
 /*! @} */
- 
- 
+
+
  /**********************
  *   GLOBAL FUNCTIONS
  **********************/
index 6a48b42..fdbbef3 100644 (file)
@@ -1,14 +1,6 @@
 /**
  * @file lv_conf.h
- * Configuration file for v8.2.0
- */
-
-/*
- * Copy this file as `lv_conf.h`
- * 1. simply next to the `lvgl` folder
- * 2. or any other places and
- *    - define `LV_CONF_INCLUDE_SIMPLE`
- *    - add the path as include path
+ * Configuration file for v8.3.7
  */
 
 /* clang-format off */
 /*Swap the 2 bytes of RGB565 color. Useful if the display has an 8-bit interface (e.g. SPI)*/
 #define LV_COLOR_16_SWAP 0
 
-/*Enable more complex drawing routines to manage screens transparency.
- *Can be used if the UI is above another layer, e.g. an OSD menu or video player.
- *Requires `LV_COLOR_DEPTH = 32` colors and the screen's `bg_opa` should be set to non LV_OPA_COVER value*/
+/*Enable features to draw on transparent background.
+ *It's required if opa, and transform_* style properties are used.
+ *Can be also used if the UI is above another layer, e.g. an OSD menu or video player.*/
 #define LV_COLOR_SCREEN_TRANSP 0
 
 /* Adjust color mix functions rounding. GPUs might calculate color mix (blending) differently.
  * 0: round down, 64: round up from x.75, 128: round up from half, 192: round up from x.25, 254: round up */
-#define LV_COLOR_MIX_ROUND_OFS (LV_COLOR_DEPTH == 32 ? 0: 128)
+#define LV_COLOR_MIX_ROUND_OFS 0
 
 /*Images pixels with this color will not be drawn if they are chroma keyed)*/
 #define LV_COLOR_CHROMA_KEY lv_color_hex(0x00ff00)         /*pure green*/
 #define LV_MEM_CUSTOM 0
 #if LV_MEM_CUSTOM == 0
     /*Size of the memory available for `lv_mem_alloc()` in bytes (>= 2kB)*/
-    #define LV_MEM_SIZE (48U * 1024U)          /*[bytes]*/
+    #define LV_MEM_SIZE (64U * 1024U)          /*[bytes]*/
 
     /*Set an address for the memory pool instead of allocating it as a normal array. Can be in external SRAM too.*/
     #define LV_MEM_ADR 0     /*0: unused*/
     /*Instead of an address give a memory allocator that will be called to get a memory pool for LVGL. E.g. my_malloc*/
     #if LV_MEM_ADR == 0
-        //#define LV_MEM_POOL_INCLUDE your_alloc_library  /* Uncomment if using an external allocator*/
-        //#define LV_MEM_POOL_ALLOC   your_alloc          /* Uncomment if using an external allocator*/
+        #undef LV_MEM_POOL_INCLUDE
+        #undef LV_MEM_POOL_ALLOC
     #endif
 
 #else       /*LV_MEM_CUSTOM*/
     #define LV_TICK_CUSTOM 1
     #if LV_TICK_CUSTOM
         extern uint32_t SystemCoreClock;
-        #define LV_TICK_CUSTOM_INCLUDE          "perf_counter.h" 
-        #define LV_TICK_CUSTOM_SYS_TIME_EXPR    (get_system_ticks() / (SystemCoreClock / 1000ul))
+        #define LV_TICK_CUSTOM_INCLUDE          "perf_counter.h"
+        #define LV_TICK_CUSTOM_SYS_TIME_EXPR    get_system_ms()
     #endif   /*LV_TICK_CUSTOM*/
 #else
     #define LV_TICK_CUSTOM 0
     #if LV_TICK_CUSTOM
         #define LV_TICK_CUSTOM_INCLUDE "Arduino.h"         /*Header for the system time function*/
         #define LV_TICK_CUSTOM_SYS_TIME_EXPR (millis())    /*Expression evaluating to current system time in ms*/
+        /*If using lvgl as ESP32 component*/
+        // #define LV_TICK_CUSTOM_INCLUDE "esp_timer.h"
+        // #define LV_TICK_CUSTOM_SYS_TIME_EXPR ((esp_timer_get_time() / 1000LL))
     #endif   /*LV_TICK_CUSTOM*/
 #endif       /*__PERF_COUNTER__*/
 
     /*Allow buffering some shadow calculation.
     *LV_SHADOW_CACHE_SIZE is the max. shadow size to buffer, where shadow size is `shadow_width + radius`
     *Caching has LV_SHADOW_CACHE_SIZE^2 RAM cost*/
-    #define LV_SHADOW_CACHE_SIZE        0
+    #define LV_SHADOW_CACHE_SIZE 0
 
     /* Set number of maximally cached circle data.
     * The circumference of 1/4 circle are saved for anti-aliasing
     * radius * 4 bytes are used per circle (the most often used radiuses are saved)
     * 0: to disable caching */
-    #define LV_CIRCLE_CACHE_SIZE        4
+    #define LV_CIRCLE_CACHE_SIZE 4
 #endif /*LV_DRAW_COMPLEX*/
 
+/**
+ * "Simple layers" are used when a widget has `style_opa < 255` to buffer the widget into a layer
+ * and blend it as an image with the given opacity.
+ * Note that `bg_opa`, `text_opa` etc don't require buffering into layer)
+ * The widget can be buffered in smaller chunks to avoid using large buffers.
+ *
+ * - LV_LAYER_SIMPLE_BUF_SIZE: [bytes] the optimal target buffer size. LVGL will try to allocate it
+ * - LV_LAYER_SIMPLE_FALLBACK_BUF_SIZE: [bytes]  used if `LV_LAYER_SIMPLE_BUF_SIZE` couldn't be allocated.
+ *
+ * Both buffer sizes are in bytes.
+ * "Transformed layers" (where transform_angle/zoom properties are used) use larger buffers
+ * and can't be drawn in chunks. So these settings affects only widgets with opacity.
+ */
+#define LV_LAYER_SIMPLE_BUF_SIZE          (24 * 1024)
+#define LV_LAYER_SIMPLE_FALLBACK_BUF_SIZE (3 * 1024)
+
 /*Default image cache size. Image caching keeps the images opened.
  *If only the built-in image formats are used there is no real advantage of caching. (I.e. if no new image decoder is added)
  *With complex image decoders (e.g. PNG or JPG) caching can save the continuous open/decode of images.
  *However the opened images might consume additional RAM.
  *0: to disable caching*/
-#define LV_IMG_CACHE_DEF_SIZE           0
+#define LV_IMG_CACHE_DEF_SIZE 0
 
 /*Number of stops allowed per gradient. Increase this to allow more stops.
  *This adds (sizeof(lv_color_t) + 1) bytes per additional stop*/
-#define LV_GRADIENT_MAX_STOPS           2
+#define LV_GRADIENT_MAX_STOPS 2
 
 /*Default gradient buffer size.
  *When LVGL calculates the gradient "maps" it can save them into a cache to avoid calculating them again.
  *LV_GRAD_CACHE_DEF_SIZE sets the size of this cache in bytes.
  *If the cache is too small the map will be allocated only while it's required for the drawing.
  *0 mean no caching.*/
-#define LV_GRAD_CACHE_DEF_SIZE          0
+#define LV_GRAD_CACHE_DEF_SIZE 0
 
 /*Allow dithering the gradients (to achieve visual smooth color gradients on limited color depth display)
  *LV_DITHER_GRADIENT implies allocating one or two more lines of the object's rendering surface
  *The increase in memory consumption is (32 bits * object width) plus 24 bits * object width if using error diffusion */
-#define LV_DITHER_GRADIENT              0
+#define LV_DITHER_GRADIENT 0
 #if LV_DITHER_GRADIENT
     /*Add support for error diffusion dithering.
      *Error diffusion dithering gets a much better visual result, but implies more CPU consumption and memory when drawing.
      *The increase in memory consumption is (24 bits * object's width)*/
-    #define LV_DITHER_ERROR_DIFFUSION   0
+    #define LV_DITHER_ERROR_DIFFUSION 0
 #endif
 
 /*Maximum buffer size to allocate for rotation.
 /*Use STM32's DMA2D (aka Chrom Art) GPU*/
 #if LV_USE_GPU_STM32_DMA2D
     /*Must be defined to include path of CMSIS header of target processor
-    e.g. "stm32f769xx.h" or "stm32f429xx.h"*/
+    e.g. "stm32f7xx.h" or "stm32f4xx.h"*/
     #define LV_GPU_DMA2D_CMSIS_INCLUDE
 #endif
 
+/*Use SWM341's DMA2D GPU*/
+#if LV_USE_GPU_SWM341_DMA2D
+    #define LV_GPU_SWM341_DMA2D_INCLUDE "SWM341.h"
+#endif
+
 /*Use NXP's PXP GPU iMX RTxxx platforms*/
 #if LV_USE_GPU_NXP_PXP
     /*1: Add default bare metal and FreeRTOS interrupt handling routines for PXP (lv_gpu_nxp_pxp_osa.c)
     #define LV_USE_GPU_NXP_PXP_AUTO_INIT 0
 #endif
 
-
 /*Use SDL renderer API*/
 #define LV_USE_GPU_SDL 0
 #if LV_USE_GPU_SDL
     *LV_LOG_LEVEL_ERROR       Only critical issue, when the system may fail
     *LV_LOG_LEVEL_USER        Only logs added by the user
     *LV_LOG_LEVEL_NONE        Do not log anything*/
-    #define LV_LOG_LEVEL LV_LOG_LEVEL_WARN
+    #define LV_LOG_LEVEL LV_LOG_LEVEL_USER
 
     /*1: Print the log with 'printf';
     *0: User need to register a callback with `lv_log_register_print_cb()`*/
-    #define LV_LOG_PRINTF 0
+    #define LV_LOG_PRINTF 1
 
     /*Enable/disable LV_LOG_TRACE in modules that produces a huge number of logs*/
     #define LV_LOG_TRACE_MEM        1
 #define LV_ATTRIBUTE_FLUSH_READY
 
 /*Required alignment size for buffers*/
-#define LV_ATTRIBUTE_MEM_ALIGN_SIZE 1
+#define LV_ATTRIBUTE_MEM_ALIGN_SIZE 4
 
 /*Will be added where memories needs to be aligned (with -Os data might not be aligned to boundary by default).
  * E.g. __attribute__((aligned(4)))*/
-#define LV_ATTRIBUTE_MEM_ALIGN      __attribute__((aligned(4)))
+#define LV_ATTRIBUTE_MEM_ALIGN __attribute__((aligned(4)))
 
 /*Attribute to mark large constant arrays for example font's bitmaps*/
 #define LV_ATTRIBUTE_LARGE_CONST
  *https://fonts.google.com/specimen/Montserrat*/
 #define LV_FONT_MONTSERRAT_8  0
 #define LV_FONT_MONTSERRAT_10 0
-#define LV_FONT_MONTSERRAT_12 0
+#define LV_FONT_MONTSERRAT_12 1
 #define LV_FONT_MONTSERRAT_14 1
-#define LV_FONT_MONTSERRAT_16 0
+#define LV_FONT_MONTSERRAT_16 1
 #define LV_FONT_MONTSERRAT_18 0
 #define LV_FONT_MONTSERRAT_20 0
 #define LV_FONT_MONTSERRAT_22 0
     #define LV_FONT_SUBPX_BGR 0  /*0: RGB; 1:BGR order*/
 #endif
 
+/*Enable drawing placeholders when glyph dsc is not found*/
+#define LV_USE_FONT_PLACEHOLDER 1
+
 /*=================
  *  TEXT SETTINGS
  *=================*/
 
 #define LV_USE_ARC        1
 
-#define LV_USE_ANIMIMG    1
-
 #define LV_USE_BAR        1
 
 #define LV_USE_BTN        1
 /*-----------
  * Widgets
  *----------*/
+#define LV_USE_ANIMIMG    1
+
 #define LV_USE_CALENDAR   1
 #if LV_USE_CALENDAR
     #define LV_CALENDAR_WEEK_STARTS_MONDAY 0
 
 #define LV_USE_MSGBOX     1
 
+#define LV_USE_SPAN       1
+#if LV_USE_SPAN
+    /*A line text can contain maximum num of span descriptor */
+    #define LV_SPAN_SNIPPET_STACK_SIZE 64
+#endif
+
 #define LV_USE_SPINBOX    1
 
 #define LV_USE_SPINNER    1
 
 #define LV_USE_WIN        1
 
-#define LV_USE_SPAN       1
-#if LV_USE_SPAN
-    /*A line text can contain maximum num of span descriptor */
-    #define LV_SPAN_SNIPPET_STACK_SIZE 64
-#endif
-
 /*-----------
  * Themes
  *----------*/
 #define LV_USE_SNAPSHOT 0
 
 /*1: Enable Monkey test*/
-#define LV_USE_MONKEY   0
+#define LV_USE_MONKEY 0
 
 /*1: Enable grid navigation*/
-#define LV_USE_GRIDNAV  0
+#define LV_USE_GRIDNAV 0
+
+/*1: Enable lv_obj fragment*/
+#define LV_USE_FRAGMENT 0
+
+/*1: Support using images as font in label or span widgets */
+#define LV_USE_IMGFONT 0
+
+/*1: Enable a published subscriber based messaging system */
+#define LV_USE_MSG 0
+
+/*1: Enable Pinyin input method*/
+/*Requires: lv_keyboard*/
+#if LV_USE_IME_PINYIN
+    /*1: Use default thesaurus*/
+    /*If you do not use the default thesaurus, be sure to use `lv_ime_pinyin` after setting the thesauruss*/
+    #define LV_IME_PINYIN_USE_DEFAULT_DICT 1
+    /*Set the maximum number of candidate panels that can be displayed*/
+    /*This needs to be adjusted according to the size of the screen*/
+    #define LV_IME_PINYIN_CAND_TEXT_NUM 6
+
+    /*Use 9 key input(k9)*/
+    #define LV_IME_PINYIN_USE_K9_MODE      1
+    #if LV_IME_PINYIN_USE_K9_MODE == 1
+        #define LV_IME_PINYIN_K9_CAND_TEXT_NUM 3
+    #endif // LV_IME_PINYIN_USE_K9_MODE
+#endif
 
 /*==================
 * EXAMPLES
index 7f60484..378c36f 100644 (file)
@@ -1,13 +1,24 @@
 from building import *
 import rtconfig
 import os
-import shutil
-
-# get current dir path
-cwd = GetCurrentDir()
 
 src = []
 inc = []
+group = []
+
+cwd = GetCurrentDir() # get current dir path
+
+port_src = Glob('*.c')
+port_inc = [cwd]
+group = group + DefineGroup('LVGL-port', port_src, depend = ['PKG_USING_LVGL'], CPPPATH = port_inc)
+
+# check if .h or .hpp files exsit
+def check_h_hpp_exsit(path):
+    file_dirs = os.listdir(path)
+    for file_dir in file_dirs:
+        if os.path.splitext(file_dir)[1] in ['.h', '.hpp']:
+            return True
+    return False
 
 lvgl_cwd = cwd + '/../../'
 
@@ -15,38 +26,39 @@ lvgl_src_cwd = lvgl_cwd + 'src/'
 inc = inc + [lvgl_src_cwd]
 for root, dirs, files in os.walk(lvgl_src_cwd):
     for dir in dirs:
-        src = src + Glob(os.path.join(root,dir,'*.c'))
-        inc = inc + [os.path.join(root,dir)]
+        current_path = os.path.join(root, dir)
+        src = src + Glob(os.path.join(current_path,'*.c')) # add all .c files
+        if check_h_hpp_exsit(current_path): # add .h and .hpp path
+            inc = inc + [current_path]
 
-if GetDepend('PKG_USING_LVGL_EXAMPLES'):
+
+if GetDepend('PKG_LVGL_USING_EXAMPLES'):
     lvgl_src_cwd = lvgl_cwd + 'examples/'
     inc = inc + [lvgl_src_cwd]
     for root, dirs, files in os.walk(lvgl_src_cwd):
         for dir in dirs:
-            src = src + Glob(os.path.join(root,dir,'*.c'))
-            inc = inc + [os.path.join(root,dir)]
+            current_path = os.path.join(root, dir)
+            src = src + Glob(os.path.join(current_path,'*.c'))
+            if check_h_hpp_exsit(current_path):
+                inc = inc + [current_path]
 
-if GetDepend('PKG_USING_LVGL_DEMOS'):
+if GetDepend('PKG_LVGL_USING_DEMOS'):
     lvgl_src_cwd = lvgl_cwd + 'demos/'
     inc = inc + [lvgl_src_cwd]
     for root, dirs, files in os.walk(lvgl_src_cwd):
         for dir in dirs:
-            src = src + Glob(os.path.join(root,dir,'*.c'))
-            inc = inc + [os.path.join(root,dir)]
+            current_path = os.path.join(root, dir)
+            src = src + Glob(os.path.join(current_path,'*.c'))
+            if check_h_hpp_exsit(current_path):
+                inc = inc + [current_path]
 
-LOCAL_CCFLAGS = ''
-if rtconfig.PLATFORM == 'gcc': # GCC
-    LOCAL_CCFLAGS += ' -std=c99'
+LOCAL_CFLAGS = ''
+if rtconfig.PLATFORM == 'gcc' or rtconfig.PLATFORM == 'armclang': # GCC or Keil AC6
+    LOCAL_CFLAGS += ' -std=c99'
 elif rtconfig.PLATFORM == 'armcc': # Keil AC5
-    LOCAL_CCFLAGS += ' --c99 --gnu -g -W'
-elif rtconfig.PLATFORM == 'armclang': # Keil AC6
-    LOCAL_CCFLAGS += ' -std=c99 -g -w'
-
-group = DefineGroup('LVGL', src, depend = ['PKG_USING_LVGL'], CPPPATH = inc, LOCAL_CCFLAGS = LOCAL_CCFLAGS)
+    LOCAL_CFLAGS += ' --c99 --gnu'
 
-port_src = Glob('*.c')
-port_inc = [cwd]
-group = group + DefineGroup('LVGL-port', port_src, depend = ['PKG_USING_LVGL'], CPPPATH = port_inc)
+group = group + DefineGroup('LVGL', src, depend = ['PKG_USING_LVGL'], CPPPATH = inc, LOCAL_CFLAGS = LOCAL_CFLAGS)
 
 list = os.listdir(cwd)
 for d in list:
@@ -54,27 +66,4 @@ for d in list:
     if os.path.isfile(os.path.join(path, 'SConscript')):
         group = group + SConscript(os.path.join(d, 'SConscript'))
 
-#
-# try:
-#     shutil.rmtree(os.path.join(lvgl_cwd, '.github'))
-#     shutil.rmtree(os.path.join(lvgl_cwd, 'docs'))
-#     shutil.rmtree(os.path.join(lvgl_cwd, 'scripts'))
-#     shutil.rmtree(os.path.join(lvgl_cwd, 'tests'))
-#     shutil.rmtree(os.path.join(lvgl_cwd, 'zephyr'))
-#     os.remove(os.path.join(lvgl_cwd, '.codecov.yml'))
-#     os.remove(os.path.join(lvgl_cwd, '.editorconfig'))
-#     os.remove(os.path.join(lvgl_cwd, '.gitignore'))
-#     os.remove(os.path.join(lvgl_cwd, '.gitmodules'))
-#     os.remove(os.path.join(lvgl_cwd, 'CMakeLists.txt'))
-#     os.remove(os.path.join(lvgl_cwd, 'component.mk'))
-#     os.remove(os.path.join(lvgl_cwd, 'idf_component.yml'))
-#     os.remove(os.path.join(lvgl_cwd, 'Kconfig'))
-#     os.remove(os.path.join(lvgl_cwd, 'library.json'))
-#     os.remove(os.path.join(lvgl_cwd, 'library.properties'))
-#     os.remove(os.path.join(lvgl_cwd, 'lv_conf_template.h'))
-#     os.remove(os.path.join(lvgl_cwd, 'lvgl.mk'))
-# except:
-#     pass
-#
-
 Return('group')
index d18bfb4..c1458be 100644 (file)
 #define LV_TICK_CUSTOM_INCLUDE LV_RTTHREAD_INCLUDE
 #define LV_TICK_CUSTOM_SYS_TIME_EXPR (rt_tick_get_millisecond())    /*Expression evaluating to current system time in ms*/
 
+#ifdef PKG_LVGL_DISP_REFR_PERIOD
+#define LV_DISP_DEF_REFR_PERIOD   PKG_LVGL_DISP_REFR_PERIOD
+#endif
+
 /*=======================
  * FEATURE CONFIGURATION
  *=======================*/
 
-/*-------------
- * Logging
- *-----------*/
-
-#ifdef PKG_LVGL_ENABLE_LOG
-#  define LV_USE_LOG 1
-#else
-#  define LV_USE_LOG 0
-#endif
-
 /*-------------
  * Asserts
  *-----------*/
 #  define LV_BIG_ENDIAN_SYSTEM 0
 #endif
 
-#define LV_ATTRIBUTE_MEM_ALIGN ALIGN(4)
+#ifdef rt_align /* >= RT-Thread v5.0.0 */
+#  define LV_ATTRIBUTE_MEM_ALIGN rt_align(RT_ALIGN_SIZE)
+#else
+#  define LV_ATTRIBUTE_MEM_ALIGN ALIGN(RT_ALIGN_SIZE)
+#endif
 
 /*==================
 * EXAMPLES
 *==================*/
 
-#ifdef PKG_USING_LVGL_EXAMPLES
+#ifdef PKG_LVGL_USING_EXAMPLES
 #  define LV_BUILD_EXAMPLES 1
 #endif
 
index a438a41..e8dbba4 100644 (file)
@@ -5,40 +5,80 @@
  *
  * Change Logs:
  * Date           Author       Notes
- * 2021-10-18     Meco Man     The first version
+ * 2021-10-18     Meco Man     the first version
+ * 2022-05-10     Meco Man     improve rt-thread initialization process
  */
 
 #ifdef __RTTHREAD__
 
+#include <lvgl.h>
 #include <rtthread.h>
+
 #define DBG_TAG    "LVGL"
 #define DBG_LVL    DBG_INFO
 #include <rtdbg.h>
 
-#include <lvgl.h>
-#include <lv_port_disp.h>
-#include <lv_port_indev.h>
+#ifndef PKG_LVGL_THREAD_STACK_SIZE
+#define PKG_LVGL_THREAD_STACK_SIZE 4096
+#endif /* PKG_LVGL_THREAD_STACK_SIZE */
+
+#ifndef PKG_LVGL_THREAD_PRIO
+#define PKG_LVGL_THREAD_PRIO (RT_THREAD_PRIORITY_MAX*2/3)
+#endif /* PKG_LVGL_THREAD_PRIO */
+
+extern void lv_port_disp_init(void);
+extern void lv_port_indev_init(void);
+extern void lv_user_gui_init(void);
+
+static struct rt_thread lvgl_thread;
+
+#ifdef rt_align
+rt_align(RT_ALIGN_SIZE)
+#else
+ALIGN(RT_ALIGN_SIZE)
+#endif
+static rt_uint8_t lvgl_thread_stack[PKG_LVGL_THREAD_STACK_SIZE];
 
 #if LV_USE_LOG
 static void lv_rt_log(const char *buf)
 {
     LOG_I(buf);
 }
-#endif
+#endif /* LV_USE_LOG */
 
-static int lv_port_init(void)
+static void lvgl_thread_entry(void *parameter)
 {
 #if LV_USE_LOG
     lv_log_register_print_cb(lv_rt_log);
-#endif
-
+#endif /* LV_USE_LOG */
     lv_init();
-
     lv_port_disp_init();
     lv_port_indev_init();
+    lv_user_gui_init();
+
+    /* handle the tasks of LVGL */
+    while(1)
+    {
+        lv_task_handler();
+        rt_thread_mdelay(LV_DISP_DEF_REFR_PERIOD);
+    }
+}
+
+static int lvgl_thread_init(void)
+{
+    rt_err_t err;
+
+    err = rt_thread_init(&lvgl_thread, "LVGL", lvgl_thread_entry, RT_NULL,
+           &lvgl_thread_stack[0], sizeof(lvgl_thread_stack), PKG_LVGL_THREAD_PRIO, 0);
+    if(err != RT_EOK)
+    {
+        LOG_E("Failed to create LVGL thread");
+        return -1;
+    }
+    rt_thread_startup(&lvgl_thread);
 
     return 0;
 }
-INIT_COMPONENT_EXPORT(lv_port_init);
+INIT_ENV_EXPORT(lvgl_thread_init);
 
 #endif /*__RTTHREAD__*/
index 6dfbece..3eda555 100644 (file)
@@ -1,5 +1,5 @@
 
-Start animation on an event 
+Start animation on an event
 """"""""""""""""""""""""""""
 
 .. lv_example:: anim/lv_example_anim_1
@@ -14,4 +14,4 @@ Animation timeline
 """""""""""""""""""
 .. lv_example:: anim/lv_example_anim_timeline_1
   :language: c
-  
+
index 8e18c1e..6c16a91 100644 (file)
@@ -20,7 +20,8 @@ static void sw_event_cb(lv_event_t * e)
         lv_anim_set_exec_cb(&a, anim_x_cb);
         lv_anim_set_path_cb(&a, lv_anim_path_overshoot);
         lv_anim_start(&a);
-    } else {
+    }
+    else {
         lv_anim_t a;
         lv_anim_init(&a);
         lv_anim_set_var(&a, label);
index e0f8cf5..64ee1ce 100644 (file)
@@ -4,7 +4,7 @@ def anim_x_cb(label, v):
 def sw_event_cb(e,label):
     sw = e.get_target()
 
-    if sw.has_state(lv.STATE.CHECKED): 
+    if sw.has_state(lv.STATE.CHECKED):
         a = lv.anim_t()
         a.init()
         a.set_var(label)
index 536ee40..dedcad9 100644 (file)
@@ -1,5 +1,5 @@
 #include "../lv_examples.h"
-#if LV_BUILD_EXAMPLES && LV_USE_SLIDER && LV_USE_CHART && LV_USE_BTN
+#if LV_BUILD_EXAMPLES && LV_USE_SLIDER && LV_USE_CHART && LV_USE_BTN && LV_USE_GRID
 
 /**
  * the example show the use of cubic-bezier3 in animation.
@@ -36,8 +36,8 @@ static void anim_x_cb(void * var, int32_t v);
  */
 void lv_example_anim_3(void)
 {
-    static lv_coord_t col_dsc[] = {LV_GRID_FR(1), 200, LV_GRID_FR(1),LV_GRID_TEMPLATE_LAST};
-    static lv_coord_t row_dsc[] = {30, 10, 10, LV_GRID_FR(1),LV_GRID_TEMPLATE_LAST};
+    static lv_coord_t col_dsc[] = {LV_GRID_FR(1), 200, LV_GRID_FR(1), LV_GRID_TEMPLATE_LAST};
+    static lv_coord_t row_dsc[] = {30, 10, 10, LV_GRID_FR(1), LV_GRID_TEMPLATE_LAST};
 
     /*Create a container with grid*/
     lv_obj_t * cont = lv_obj_create(lv_scr_act());
@@ -53,7 +53,7 @@ void lv_example_anim_3(void)
     lv_anim_init(&ginfo.a);
     lv_anim_set_var(&ginfo.a, ginfo.anim_obj);
     int32_t end = lv_obj_get_style_width(cont, LV_PART_MAIN) -
-        lv_obj_get_style_width(ginfo.anim_obj, LV_PART_MAIN) - 10;
+                  lv_obj_get_style_width(ginfo.anim_obj, LV_PART_MAIN) - 10;
     lv_anim_set_values(&ginfo.a, 5, end);
     lv_anim_set_time(&ginfo.a, 2000);
     lv_anim_set_exec_cb(&ginfo.a, anim_x_cb);
@@ -124,14 +124,14 @@ static void page_obj_init(lv_obj_t * par)
     lv_obj_set_align(ginfo.anim_obj, LV_ALIGN_TOP_LEFT);
     lv_obj_clear_flag(ginfo.anim_obj, LV_OBJ_FLAG_SCROLLABLE);
     lv_obj_set_style_bg_color(ginfo.anim_obj, lv_palette_main(LV_PALETTE_RED), LV_PART_MAIN);
-    lv_obj_set_grid_cell(ginfo.anim_obj, LV_GRID_ALIGN_START, 0, 1,LV_GRID_ALIGN_START, 0, 1);
+    lv_obj_set_grid_cell(ginfo.anim_obj, LV_GRID_ALIGN_START, 0, 1, LV_GRID_ALIGN_START, 0, 1);
 
     ginfo.p1_label = lv_label_create(par);
     ginfo.p2_label = lv_label_create(par);
     lv_label_set_text(ginfo.p1_label, "p1:0");
     lv_label_set_text(ginfo.p2_label, "p2:0");
-    lv_obj_set_grid_cell(ginfo.p1_label, LV_GRID_ALIGN_START, 0, 1,LV_GRID_ALIGN_START, 1, 1);
-    lv_obj_set_grid_cell(ginfo.p2_label, LV_GRID_ALIGN_START, 0, 1,LV_GRID_ALIGN_START, 2, 1);
+    lv_obj_set_grid_cell(ginfo.p1_label, LV_GRID_ALIGN_START, 0, 1, LV_GRID_ALIGN_START, 1, 1);
+    lv_obj_set_grid_cell(ginfo.p2_label, LV_GRID_ALIGN_START, 0, 1, LV_GRID_ALIGN_START, 2, 1);
 
     ginfo.p1_slider = lv_slider_create(par);
     ginfo.p2_slider = lv_slider_create(par);
@@ -141,15 +141,15 @@ static void page_obj_init(lv_obj_t * par)
     lv_obj_set_style_pad_all(ginfo.p2_slider, 2, LV_PART_KNOB);
     lv_obj_add_event_cb(ginfo.p1_slider, slider_event_cb, LV_EVENT_VALUE_CHANGED, NULL);
     lv_obj_add_event_cb(ginfo.p2_slider, slider_event_cb, LV_EVENT_VALUE_CHANGED, NULL);
-    lv_obj_set_grid_cell(ginfo.p1_slider, LV_GRID_ALIGN_STRETCH, 1, 1,LV_GRID_ALIGN_START, 1, 1);
-    lv_obj_set_grid_cell(ginfo.p2_slider, LV_GRID_ALIGN_STRETCH, 1, 1,LV_GRID_ALIGN_START, 2, 1);
+    lv_obj_set_grid_cell(ginfo.p1_slider, LV_GRID_ALIGN_STRETCH, 1, 1, LV_GRID_ALIGN_START, 1, 1);
+    lv_obj_set_grid_cell(ginfo.p2_slider, LV_GRID_ALIGN_STRETCH, 1, 1, LV_GRID_ALIGN_START, 2, 1);
 
     ginfo.run_btn = lv_btn_create(par);
     lv_obj_add_event_cb(ginfo.run_btn, run_btn_event_handler, LV_EVENT_CLICKED, NULL);
     lv_obj_t * btn_label = lv_label_create(ginfo.run_btn);
     lv_label_set_text(btn_label, LV_SYMBOL_PLAY);
     lv_obj_center(btn_label);
-    lv_obj_set_grid_cell(ginfo.run_btn, LV_GRID_ALIGN_STRETCH, 2, 1,LV_GRID_ALIGN_STRETCH, 1, 2);
+    lv_obj_set_grid_cell(ginfo.run_btn, LV_GRID_ALIGN_STRETCH, 2, 1, LV_GRID_ALIGN_STRETCH, 1, 2);
 
     ginfo.chart = lv_chart_create(par);
     lv_obj_set_style_pad_all(ginfo.chart, 0, LV_PART_MAIN);
@@ -159,7 +159,7 @@ static void page_obj_init(lv_obj_t * par)
     lv_chart_set_range(ginfo.chart, LV_CHART_AXIS_PRIMARY_Y, 0, 1024);
     lv_chart_set_range(ginfo.chart, LV_CHART_AXIS_PRIMARY_X, 0, 1024);
     lv_chart_set_point_count(ginfo.chart, CHART_POINTS_NUM);
-    lv_obj_set_grid_cell(ginfo.chart, LV_GRID_ALIGN_STRETCH, 0, 3,LV_GRID_ALIGN_STRETCH, 3, 1);
+    lv_obj_set_grid_cell(ginfo.chart, LV_GRID_ALIGN_STRETCH, 0, 3, LV_GRID_ALIGN_STRETCH, 3, 1);
 }
 
 #endif
index fc69e10..ef7ebb2 100644 (file)
@@ -37,7 +37,7 @@ class LvExampleAnim_3():
         self.a.set_custom_exec_cb(lambda a,val: self.anim_x_cb(self.anim_obj,val))
         self.a.set_path_cb(self.anim_path_bezier3_cb)
         self.refer_chart_cubic_bezier()
-        
+
     def page_obj_init(self,par):
         self.anim_obj = lv.obj(par)
         self.anim_obj.set_size(30, 30)
@@ -45,14 +45,14 @@ class LvExampleAnim_3():
         self.anim_obj.clear_flag(lv.obj.FLAG.SCROLLABLE)
         self.anim_obj.set_style_bg_color(lv.palette_main(lv.PALETTE.RED), lv.PART.MAIN)
         self.anim_obj.set_grid_cell(lv.GRID_ALIGN.START, 0, 1,lv.GRID_ALIGN.START, 0, 1)
-        
+
         self.p1_label = lv.label(par)
         self.p2_label = lv.label(par)
         self.p1_label.set_text("p1:0")
         self.p2_label.set_text("p2:0")
         self.p1_label.set_grid_cell(lv.GRID_ALIGN.START, 0, 1,lv.GRID_ALIGN.START, 1, 1)
         self.p2_label.set_grid_cell(lv.GRID_ALIGN.START, 0, 1,lv.GRID_ALIGN.START, 2, 1)
-            
+
         self.p1_slider = lv.slider(par)
         self.p2_slider = lv.slider(par)
         self.p1_slider.set_range(0, 1024)
@@ -63,14 +63,14 @@ class LvExampleAnim_3():
         self.p2_slider.add_event_cb(self.slider_event_cb, lv.EVENT.VALUE_CHANGED, None)
         self.p1_slider.set_grid_cell(lv.GRID_ALIGN.STRETCH, 1, 1,lv.GRID_ALIGN.START, 1, 1)
         self.p2_slider.set_grid_cell(lv.GRID_ALIGN.STRETCH, 1, 1,lv.GRID_ALIGN.START, 2, 1)
-        
+
         self.run_btn = lv.btn(par)
         self.run_btn.add_event_cb(self.run_btn_event_handler, lv.EVENT.CLICKED, None)
         btn_label = lv.label(self.run_btn)
         btn_label.set_text(lv.SYMBOL.PLAY)
         btn_label.center()
         self.run_btn.set_grid_cell(lv.GRID_ALIGN.STRETCH, 2, 1,lv.GRID_ALIGN.STRETCH, 1, 2)
-        
+
         self.chart = lv.chart(par)
         self.chart.set_style_pad_all(0, lv.PART.MAIN)
         self.chart.set_style_size(0, lv.PART.INDICATOR)
@@ -80,7 +80,7 @@ class LvExampleAnim_3():
         self.chart.set_range(lv.chart.AXIS.PRIMARY_X, 0, 1024)
         self.chart.set_point_count(CHART_POINTS_NUM)
         self.chart.set_grid_cell(lv.GRID_ALIGN.STRETCH, 0, 3,lv.GRID_ALIGN.STRETCH, 3, 1)
-        
+
     def refer_chart_cubic_bezier(self):
         for i in range(CHART_POINTS_NUM+1):
             t = i * (1024 // CHART_POINTS_NUM)
@@ -90,7 +90,7 @@ class LvExampleAnim_3():
 
     def slider_event_cb(self,e):
         slider = e.get_target()
-        
+
         if slider == self.p1_slider:
             label = self.p1_label
             self.p1 = slider.get_value()
@@ -101,7 +101,7 @@ class LvExampleAnim_3():
             label.set_text("p1: {:d}".format(self.p2))
 
         self.refer_chart_cubic_bezier()
-        
+
 
     def run_btn_event_handler(self,e):
 
index 15c35ed..d2d4e81 100644 (file)
@@ -93,7 +93,7 @@ static void btn_start_event_handler(lv_event_t * e)
 {
     lv_obj_t * btn = lv_event_get_target(e);
 
-    if (!anim_timeline) {
+    if(!anim_timeline) {
         anim_timeline_create();
     }
 
@@ -105,7 +105,7 @@ static void btn_start_event_handler(lv_event_t * e)
 static void btn_del_event_handler(lv_event_t * e)
 {
     LV_UNUSED(e);
-    if (anim_timeline) {
+    if(anim_timeline) {
         lv_anim_timeline_del(anim_timeline);
         anim_timeline = NULL;
     }
@@ -114,7 +114,7 @@ static void btn_del_event_handler(lv_event_t * e)
 static void btn_stop_event_handler(lv_event_t * e)
 {
     LV_UNUSED(e);
-    if (anim_timeline) {
+    if(anim_timeline) {
         lv_anim_timeline_stop(anim_timeline);
     }
 }
@@ -123,7 +123,7 @@ static void slider_prg_event_handler(lv_event_t * e)
 {
     lv_obj_t * slider = lv_event_get_target(e);
 
-    if (!anim_timeline) {
+    if(!anim_timeline) {
         anim_timeline_create();
     }
 
index 4a50f26..b5ed3e5 100644 (file)
@@ -10,41 +10,41 @@ class LV_ExampleAnimTimeline_1(object):
         self.par = lv.scr_act()
         self.par.set_flex_flow(lv.FLEX_FLOW.ROW)
         self.par.set_flex_align(lv.FLEX_ALIGN.SPACE_AROUND, lv.FLEX_ALIGN.CENTER, lv.FLEX_ALIGN.CENTER)
-        
+
         self.btn_run = lv.btn(self.par)
         self.btn_run.add_event_cb(self.btn_run_event_handler, lv.EVENT.VALUE_CHANGED, None)
         self.btn_run.add_flag(lv.obj.FLAG.IGNORE_LAYOUT)
         self.btn_run.add_flag(lv.obj.FLAG.CHECKABLE)
         self.btn_run.align(lv.ALIGN.TOP_MID, -50, 20)
-        
+
         self.label_run = lv.label(self.btn_run)
         self.label_run.set_text("Run")
         self.label_run.center()
-        
+
         self.btn_del = lv.btn(self.par)
         self.btn_del.add_event_cb(self.btn_del_event_handler, lv.EVENT.CLICKED, None)
         self.btn_del.add_flag(lv.obj.FLAG.IGNORE_LAYOUT)
         self.btn_del.align(lv.ALIGN.TOP_MID, 50, 20)
-        
+
         self.label_del = lv.label(self.btn_del)
         self.label_del.set_text("Stop")
         self.label_del.center()
-        
+
         self.slider = lv.slider(self.par)
         self.slider.add_event_cb(self.slider_prg_event_handler, lv.EVENT.VALUE_CHANGED, None)
         self.slider.add_flag(lv.obj.FLAG.IGNORE_LAYOUT)
         self.slider.align(lv.ALIGN.BOTTOM_RIGHT, -20, -20)
         self.slider.set_range(0, 65535)
-        
+
         self.obj1 = lv.obj(self.par)
         self.obj1.set_size(self.obj_width, self.obj_height)
-        
+
         self.obj2 = lv.obj(self.par)
         self.obj2.set_size(self.obj_width, self.obj_height)
-        
+
         self.obj3 = lv.obj(self.par)
         self.obj3.set_size(self.obj_width, self.obj_height)
-        
+
         self.anim_timeline = None
 
     def set_width(self,obj, v):
@@ -54,7 +54,7 @@ class LV_ExampleAnimTimeline_1(object):
         obj.set_height(v)
 
     def anim_timeline_create(self):
-        # obj1 
+        # obj1
         self.a1 = lv.anim_t()
         self.a1.init()
         self.a1.set_values(0, self.obj_width)
@@ -62,7 +62,7 @@ class LV_ExampleAnimTimeline_1(object):
         self.a1.set_custom_exec_cb(lambda a,v: self.set_width(self.obj1,v))
         self.a1.set_path_cb(lv.anim_t.path_overshoot)
         self.a1.set_time(300)
-        
+
         self.a2 = lv.anim_t()
         self.a2.init()
         self.a2.set_values(0, self.obj_height)
@@ -70,8 +70,8 @@ class LV_ExampleAnimTimeline_1(object):
         self.a2.set_custom_exec_cb(lambda a,v: self.set_height(self.obj1,v))
         self.a2.set_path_cb(lv.anim_t.path_ease_out)
         self.a2.set_time(300)
-        
-        # obj2 
+
+        # obj2
         self.a3=lv.anim_t()
         self.a3.init()
         self.a3.set_values(0, self.obj_width)
@@ -79,7 +79,7 @@ class LV_ExampleAnimTimeline_1(object):
         self.a3.set_custom_exec_cb(lambda a,v: self.set_width(self.obj2,v))
         self.a3.set_path_cb(lv.anim_t.path_overshoot)
         self.a3.set_time(300)
-        
+
         self.a4 = lv.anim_t()
         self.a4.init()
         self.a4.set_values(0, self.obj_height)
@@ -87,8 +87,8 @@ class LV_ExampleAnimTimeline_1(object):
         self.a4.set_custom_exec_cb(lambda a,v: self.set_height(self.obj2,v))
         self.a4.set_path_cb(lv.anim_t.path_ease_out)
         self.a4.set_time(300)
-        
-        # obj3 
+
+        # obj3
         self.a5 = lv.anim_t()
         self.a5.init()
         self.a5.set_values(0, self.obj_width)
@@ -96,7 +96,7 @@ class LV_ExampleAnimTimeline_1(object):
         self.a5.set_custom_exec_cb(lambda a,v: self.set_width(self.obj3,v))
         self.a5.set_path_cb(lv.anim_t.path_overshoot)
         self.a5.set_time(300)
-        
+
         self.a6 = lv.anim_t()
         self.a6.init()
         self.a6.set_values(0, self.obj_height)
@@ -104,7 +104,7 @@ class LV_ExampleAnimTimeline_1(object):
         self.a6.set_custom_exec_cb(lambda a,v: self.set_height(self.obj3,v))
         self.a6.set_path_cb(lv.anim_t.path_ease_out)
         self.a6.set_time(300)
-    
+
         # Create anim timeline
         print("Create new anim_timeline")
         self.anim_timeline = lv.anim_timeline_create()
@@ -114,7 +114,7 @@ class LV_ExampleAnimTimeline_1(object):
         lv.anim_timeline_add(self.anim_timeline, 200, self.a4)
         lv.anim_timeline_add(self.anim_timeline, 400, self.a5)
         lv.anim_timeline_add(self.anim_timeline, 400, self.a6)
-        
+
     def slider_prg_event_handler(self,e):
         slider = e.get_target()
 
@@ -129,7 +129,7 @@ class LV_ExampleAnimTimeline_1(object):
         btn = e.get_target()
         if not self.anim_timeline:
             self.anim_timeline_create()
-        
+
         reverse = btn.has_state(lv.STATE.CHECKED)
         lv.anim_timeline_set_reverse(self.anim_timeline,reverse)
         lv.anim_timeline_start(self.anim_timeline)
index 7c40ae8..7aeccbb 100644 (file)
@@ -1,19 +1,20 @@
+/*Using LVGL with Arduino requires some extra steps:
+ *Be sure to read the docs here: https://docs.lvgl.io/master/get-started/platforms/arduino.html  */
+
 #include <lvgl.h>
 #include <TFT_eSPI.h>
-/*If you want to use the LVGL examples,
-  make sure to install the lv_examples Arduino library
-  and uncomment the following line.
-#include <lv_examples.h>
-*/
 
-#include <lv_demo.h>
+/*To use the built-in examples and demos of LVGL uncomment the includes below respectively.
+ *You also need to copy `lvgl/examples` to `lvgl/src/examples`. Similarly for the demos `lvgl/demos` to `lvgl/src/demos`.
+ Note that the `lv_examples` library is for LVGL v7 and you shouldn't install it for this version (since LVGL v8)
+ as the examples and demos are now part of the main LVGL library. */
 
 /*Change to your screen resolution*/
 static const uint16_t screenWidth  = 480;
 static const uint16_t screenHeight = 320;
 
 static lv_disp_draw_buf_t draw_buf;
-static lv_color_t buf[ screenWidth * 10 ];
+static lv_color_t buf[ screenWidth * screenHeight / 10 ];
 
 TFT_eSPI tft = TFT_eSPI(screenWidth, screenHeight); /* TFT instance */
 
@@ -27,7 +28,7 @@ void my_print(const char * buf)
 #endif
 
 /* Display flushing */
-void my_disp_flush( lv_disp_drv_t *disp, const lv_area_t *area, lv_color_t *color_p )
+void my_disp_flush( lv_disp_drv_t *disp_drv, const lv_area_t *area, lv_color_t *color_p )
 {
     uint32_t w = ( area->x2 - area->x1 + 1 );
     uint32_t h = ( area->y2 - area->y1 + 1 );
@@ -37,11 +38,11 @@ void my_disp_flush( lv_disp_drv_t *disp, const lv_area_t *area, lv_color_t *colo
     tft.pushColors( ( uint16_t * )&color_p->full, w * h, true );
     tft.endWrite();
 
-    lv_disp_flush_ready( disp );
+    lv_disp_flush_ready( disp_drv );
 }
 
 /*Read the touchpad*/
-void my_touchpad_read( lv_indev_drv_t * indev_driver, lv_indev_data_t * data )
+void my_touchpad_read( lv_indev_drv_t * indev_drv, lv_indev_data_t * data )
 {
     uint16_t touchX, touchY;
 
@@ -92,7 +93,7 @@ void setup()
     uint16_t calData[5] = { 275, 3620, 264, 3532, 1 };
     tft.setTouch( calData );
 
-    lv_disp_draw_buf_init( &draw_buf, buf, NULL, screenWidth * 10 );
+    lv_disp_draw_buf_init( &draw_buf, buf, NULL, screenWidth * screenHeight / 10 );
 
     /*Initialize the display*/
     static lv_disp_drv_t disp_drv;
@@ -110,26 +111,25 @@ void setup()
     indev_drv.type = LV_INDEV_TYPE_POINTER;
     indev_drv.read_cb = my_touchpad_read;
     lv_indev_drv_register( &indev_drv );
-
-#if 0
+  
     /* Create simple label */
     lv_obj_t *label = lv_label_create( lv_scr_act() );
-    lv_label_set_text( label, LVGL_Arduino.c_str() );
+    lv_label_set_text( label, "Hello Ardino and LVGL!");
     lv_obj_align( label, LV_ALIGN_CENTER, 0, 0 );
-#else
-    /* Try an example from the lv_examples Arduino library
-       make sure to include it as written above.
-    lv_example_btn_1();
-   */
-
-    // uncomment one of these demos
-    lv_demo_widgets();            // OK
-    // lv_demo_benchmark();          // OK
-    // lv_demo_keypad_encoder();     // works, but I haven't an encoder
-    // lv_demo_music();              // NOK
+ 
+    /* Try an example. See all the examples 
+     * online: https://docs.lvgl.io/master/examples.html
+     * source codes: https://github.com/lvgl/lvgl/tree/e7f88efa5853128bf871dde335c0ca8da9eb7731/examples */
+     //lv_example_btn_1();
+   
+     /*Or try out a demo. Don't forget to enable the demos in lv_conf.h. E.g. LV_USE_DEMOS_WIDGETS*/
+    //lv_demo_widgets();               
+    // lv_demo_benchmark();          
+    // lv_demo_keypad_encoder();     
+    // lv_demo_music();              
     // lv_demo_printer();
-    // lv_demo_stress();             // seems to be OK
-#endif
+    // lv_demo_stress();
+    
     Serial.println( "Setup done" );
 }
 
index f8ae9b8..93376cf 100644 (file)
@@ -9,14 +9,14 @@ class Event_1():
         btn.set_size(100, 50)
         btn.center()
         btn.add_event_cb(self.event_cb, lv.EVENT.CLICKED, None)
-        
+
         label = lv.label(btn)
         label.set_text("Click me!")
         label.center()
 
     def event_cb(self,e):
         print("Clicked")
-            
+
         btn = e.get_target()
         label = btn.get_child(0)
         label.set_text(str(self.cnt))
index 64b2147..2499142 100644 (file)
@@ -7,20 +7,20 @@ static void event_cb(lv_event_t * e)
     lv_obj_t * label = lv_event_get_user_data(e);
 
     switch(code) {
-    case LV_EVENT_PRESSED:
-        lv_label_set_text(label, "The last button event:\nLV_EVENT_PRESSED");
-        break;
-    case LV_EVENT_CLICKED:
-        lv_label_set_text(label, "The last button event:\nLV_EVENT_CLICKED");
-        break;
-    case LV_EVENT_LONG_PRESSED:
-        lv_label_set_text(label, "The last button event:\nLV_EVENT_LONG_PRESSED");
-        break;
-    case LV_EVENT_LONG_PRESSED_REPEAT:
-        lv_label_set_text(label, "The last button event:\nLV_EVENT_LONG_PRESSED_REPEAT");
-        break;
-    default:
-        break;
+        case LV_EVENT_PRESSED:
+            lv_label_set_text(label, "The last button event:\nLV_EVENT_PRESSED");
+            break;
+        case LV_EVENT_CLICKED:
+            lv_label_set_text(label, "The last button event:\nLV_EVENT_CLICKED");
+            break;
+        case LV_EVENT_LONG_PRESSED:
+            lv_label_set_text(label, "The last button event:\nLV_EVENT_LONG_PRESSED");
+            break;
+        case LV_EVENT_LONG_PRESSED_REPEAT:
+            lv_label_set_text(label, "The last button event:\nLV_EVENT_LONG_PRESSED_REPEAT");
+            break;
+        default:
+            break;
     }
 }
 
index 2da431c..3139269 100644 (file)
@@ -7,7 +7,7 @@ def event_cb(e,label):
     elif code == lv.EVENT.LONG_PRESSED:
         label.set_text("The last button event:\nLV_EVENT_LONG_PRESSED")
     elif code == lv.EVENT.LONG_PRESSED_REPEAT:
-        label.set_text("The last button event:\nLV_EVENT_LONG_PRESSED_REPEAT")        
+        label.set_text("The last button event:\nLV_EVENT_LONG_PRESSED_REPEAT")
 btn = lv.btn(lv.scr_act())
 btn.set_size(100, 50)
 btn.center()
index 278fc62..197b9b2 100644 (file)
@@ -28,5 +28,5 @@ for i in range(30):
     label = lv.label(btn)
     label.set_text(str(i))
     label.center()
-    
+
 cont.add_event_cb(event_cb, lv.EVENT.CLICKED, None)
index 8094ded..7d459b8 100644 (file)
@@ -7,15 +7,16 @@ static lv_obj_t * label = NULL;
 
 static void timer_cb(lv_timer_t * timer)
 {
-    if (n < 3 || n > 32) {
+    if(n < 3 || n > 32) {
         n = 3;
-    } else {
+    }
+    else {
         static uint32_t old_tick = 0;
         uint32_t tick = lv_tick_get();
-        if (!old_tick) {
+        if(!old_tick) {
             old_tick = tick;
         }
-        if (tick - old_tick > 3000) {
+        if(tick - old_tick > 3000) {
             n++;
             lv_label_set_text_fmt(label, "%d sides", n);
             old_tick = tick;
@@ -35,10 +36,10 @@ static void event_cb(lv_event_t * e)
     lv_point_t points[32];
     int i, r = 150;
     uint32_t tick = lv_tick_get();
-    for (i = 0; i < n; i++) {
+    for(i = 0; i < n; i++) {
         int angle = i * 360 / n + ((tick % 36000) / 100);
         lv_coord_t x = 150 + (r * lv_trigo_cos(angle) >> LV_TRIGO_SHIFT), y =
-                150 + (r * lv_trigo_sin(angle) >> LV_TRIGO_SHIFT);
+                           150 + (r * lv_trigo_sin(angle) >> LV_TRIGO_SHIFT);
         points[i].x = x;
         points[i].y = y;
     }
index 09a870c..2f6d616 100644 (file)
@@ -23,7 +23,7 @@ void lv_example_get_started_3(void)
     lv_obj_center(slider);                                  /*Align to the center of the parent (screen)*/
     lv_obj_add_event_cb(slider, slider_event_cb, LV_EVENT_VALUE_CHANGED, NULL);     /*Assign an event function*/
 
-    /*Create a label below the slider*/
+    /*Create a label above the slider*/
     label = lv_label_create(lv_scr_act());
     lv_label_set_text(label, "0");
     lv_obj_align_to(label, slider, LV_ALIGN_OUT_TOP_MID, 0, -15);    /*Align top of the slider*/
index d0d7cba..b41a1c0 100644 (file)
@@ -7,14 +7,14 @@ def slider_event_cb(evt):
 #
 # Create a slider and write its value on a label.
 #
-            
+
 # Create a slider in the center of the display
 slider = lv.slider(lv.scr_act())
 slider.set_width(200)                                              # Set the width
 slider.center()                                                    # Align to the center of the parent (screen)
 slider.add_event_cb(slider_event_cb, lv.EVENT.VALUE_CHANGED, None) # Assign an event function
 
-# Create a label below the slider
+# Create a label above the slider
 label = lv.label(lv.scr_act())
 label.set_text("0")
 label.align_to(slider, lv.ALIGN.OUT_TOP_MID, 0, -15)               # Align below the slider
index 86661a6..2ff931c 100644 (file)
@@ -9,29 +9,29 @@ Arrange items in rows with wrap and even spacing
 
 .. lv_example:: layouts/flex/lv_example_flex_2
   :language: c
-  
+
 Demonstrate flex grow
 """""""""""""""""""""""
 
 .. lv_example:: layouts/flex/lv_example_flex_3
   :language: c
-  
+
 Demonstrate flex grow.
 """""""""""""""""""""""
 
 .. lv_example:: layouts/flex/lv_example_flex_4
   :language: c
-  
+
 Demonstrate column and row gap style properties
 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
 
 .. lv_example:: layouts/flex/lv_example_flex_5
   :language: c
-  
+
 RTL base direction changes order of the items
 """""""""""""""""""""""""""""""""""""""""""""""
 
 .. lv_example:: layouts/flex/lv_example_flex_6
   :language: c
-  
+
 
index 691c281..94cfe25 100644 (file)
@@ -24,11 +24,11 @@ void lv_example_flex_1(void)
         lv_obj_t * label;
 
         /*Add items to the row*/
-        obj= lv_btn_create(cont_row);
+        obj = lv_btn_create(cont_row);
         lv_obj_set_size(obj, 100, LV_PCT(100));
 
         label = lv_label_create(obj);
-        lv_label_set_text_fmt(label, "Item: %u", i);
+        lv_label_set_text_fmt(label, "Item: %"LV_PRIu32, i);
         lv_obj_center(label);
 
         /*Add items to the column*/
index b29cf70..1f50433 100644 (file)
@@ -12,7 +12,7 @@ cont.set_flex_flow(lv.FLEX_FLOW.ROW_WRAP)
 for i in range(20):
     obj = lv.obj(cont)
     obj.set_size(70, lv.SIZE.CONTENT)
-    
+
     label = lv.label(obj)
     label.set_text(str(i))
     label.center()
index e455d20..fca0218 100644 (file)
@@ -9,29 +9,29 @@ Demonstrate cell placement and span
 
 .. lv_example:: layouts/grid/lv_example_grid_2
   :language: c
-  
+
 Demonstrate grid's "free unit"
 """"""""""""""""""""""""""""""
 
 .. lv_example:: layouts/grid/lv_example_grid_3
   :language: c
-  
+
 Demonstrate track placement
 """""""""""""""""""""""""""
 
 .. lv_example:: layouts/grid/lv_example_grid_4
   :language: c
-  
+
 Demonstrate column and row gap
 """"""""""""""""""""""""""""""
 
 .. lv_example:: layouts/grid/lv_example_grid_5
   :language: c
-  
+
 Demonstrate RTL direction on grid
 """"""""""""""""""""""""""""""""""
 
 .. lv_example:: layouts/grid/lv_example_grid_6
   :language: c
-  
+
 
index cb16188..47fbf74 100644 (file)
@@ -29,7 +29,7 @@ void lv_example_grid_1(void)
         /*Stretch the cell horizontally and vertically too
          *Set span to 1 to make the cell 1 column/row sized*/
         lv_obj_set_grid_cell(obj, LV_GRID_ALIGN_STRETCH, col, 1,
-                                  LV_GRID_ALIGN_STRETCH, row, 1);
+                             LV_GRID_ALIGN_STRETCH, row, 1);
 
         label = lv_label_create(obj);
         lv_label_set_text_fmt(label, "c%d, r%d", col, row);
index 7e13a40..f992c57 100644 (file)
@@ -23,7 +23,7 @@ void lv_example_grid_2(void)
     obj = lv_obj_create(cont);
     lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT);
     lv_obj_set_grid_cell(obj, LV_GRID_ALIGN_START, 0, 1,
-                              LV_GRID_ALIGN_START, 0, 1);
+                         LV_GRID_ALIGN_START, 0, 1);
     label = lv_label_create(obj);
     lv_label_set_text(label, "c0, r0");
 
@@ -31,7 +31,7 @@ void lv_example_grid_2(void)
     obj = lv_obj_create(cont);
     lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT);
     lv_obj_set_grid_cell(obj, LV_GRID_ALIGN_START, 1, 1,
-                              LV_GRID_ALIGN_CENTER, 0, 1);
+                         LV_GRID_ALIGN_CENTER, 0, 1);
     label = lv_label_create(obj);
     lv_label_set_text(label, "c1, r0");
 
@@ -39,7 +39,7 @@ void lv_example_grid_2(void)
     obj = lv_obj_create(cont);
     lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT);
     lv_obj_set_grid_cell(obj, LV_GRID_ALIGN_START, 2, 1,
-                              LV_GRID_ALIGN_END, 0, 1);
+                         LV_GRID_ALIGN_END, 0, 1);
     label = lv_label_create(obj);
     lv_label_set_text(label, "c2, r0");
 
@@ -47,7 +47,7 @@ void lv_example_grid_2(void)
     obj = lv_obj_create(cont);
     lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT);
     lv_obj_set_grid_cell(obj, LV_GRID_ALIGN_STRETCH, 1, 2,
-                              LV_GRID_ALIGN_STRETCH, 1, 1);
+                         LV_GRID_ALIGN_STRETCH, 1, 1);
     label = lv_label_create(obj);
     lv_label_set_text(label, "c1-2, r1");
 
@@ -55,7 +55,7 @@ void lv_example_grid_2(void)
     obj = lv_obj_create(cont);
     lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT);
     lv_obj_set_grid_cell(obj, LV_GRID_ALIGN_STRETCH, 0, 1,
-                              LV_GRID_ALIGN_STRETCH, 1, 2);
+                         LV_GRID_ALIGN_STRETCH, 1, 2);
     label = lv_label_create(obj);
     lv_label_set_text(label, "c0\nr1-2");
 }
index 4b77886..17e4dd9 100644 (file)
@@ -33,7 +33,7 @@ void lv_example_grid_3(void)
         /*Stretch the cell horizontally and vertically too
          *Set span to 1 to make the cell 1 column/row sized*/
         lv_obj_set_grid_cell(obj, LV_GRID_ALIGN_STRETCH, col, 1,
-                                 LV_GRID_ALIGN_STRETCH, row, 1);
+                             LV_GRID_ALIGN_STRETCH, row, 1);
 
         label = lv_label_create(obj);
         lv_label_set_text_fmt(label, "%d,%d", col, row);
index 2349c41..5141477 100644 (file)
@@ -30,7 +30,7 @@ void lv_example_grid_4(void)
         /*Stretch the cell horizontally and vertically too
          *Set span to 1 to make the cell 1 column/row sized*/
         lv_obj_set_grid_cell(obj, LV_GRID_ALIGN_STRETCH, col, 1,
-                                  LV_GRID_ALIGN_STRETCH, row, 1);
+                             LV_GRID_ALIGN_STRETCH, row, 1);
 
         label = lv_label_create(obj);
         lv_label_set_text_fmt(label, "%d,%d", col, row);
index 1719ee1..af96ff8 100644 (file)
@@ -36,7 +36,7 @@ void lv_example_grid_5(void)
 
         obj = lv_obj_create(cont);
         lv_obj_set_grid_cell(obj, LV_GRID_ALIGN_STRETCH, col, 1,
-                                 LV_GRID_ALIGN_STRETCH, row, 1);
+                             LV_GRID_ALIGN_STRETCH, row, 1);
         label = lv_label_create(obj);
         lv_label_set_text_fmt(label, "%d,%d", col, row);
         lv_obj_center(label);
index c9fc34d..1c06c98 100644 (file)
@@ -28,7 +28,7 @@ void lv_example_grid_6(void)
         /*Stretch the cell horizontally and vertically too
          *Set span to 1 to make the cell 1 column/row sized*/
         lv_obj_set_grid_cell(obj, LV_GRID_ALIGN_STRETCH, col, 1,
-                                 LV_GRID_ALIGN_STRETCH, row, 1);
+                             LV_GRID_ALIGN_STRETCH, row, 1);
 
         label = lv_label_create(obj);
         lv_label_set_text_fmt(label, "%d,%d", col, row);
index 1730cde..436c6e4 100644 (file)
@@ -20,7 +20,7 @@ for i in range(9):
     # Set span to 1 to make the cell 1 column/row sized
     obj.set_grid_cell(lv.GRID_ALIGN.STRETCH, col, 1,
                       lv.GRID_ALIGN.STRETCH, row, 1)
-    
+
     label = lv.label(obj)
     label.set_text("{:d},{:d}".format(col, row))
     label.center()
index 6feb244..0b2b6cb 100644 (file)
@@ -10,7 +10,7 @@ void lv_example_freetype_1(void)
     /*Create a font*/
     static lv_ft_info_t info;
     /*FreeType uses C standard file system, so no driver letter is required.*/
-    info.name = "./lvgl/examples/libs/freetype/arial.ttf";
+    info.name = "./lvgl/examples/libs/freetype/Lato-Regular.ttf";
     info.weight = 24;
     info.style = FT_FONT_STYLE_NORMAL;
     info.mem = NULL;
index 15d59a4..84085ca 100644 (file)
@@ -4,7 +4,7 @@ import display_driver
 import fs_driver
 
 info = lv.ft_info_t()
-info.name ="./arial.ttf"
+info.name ="./Lato-Regular.ttf"
 info.weight = 24
 info.style = lv.FT_FONT_STYLE.NORMAL
 info.font_init()
index df3ffb0..ec21413 100644 (file)
 
 
 #ifndef LV_ATTRIBUTE_MEM_ALIGN
-#define LV_ATTRIBUTE_MEM_ALIGN
+    #define LV_ATTRIBUTE_MEM_ALIGN
 #endif
 
 #ifndef LV_ATTRIBUTE_IMG_BULB_GIF
-#define LV_ATTRIBUTE_IMG_BULB_GIF
+    #define LV_ATTRIBUTE_IMG_BULB_GIF
 #endif
 
 static const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_BULB_GIF uint8_t img_blub_gif_map[] = {
-  0x47, 0x49, 0x46, 0x38, 0x39, 0x61, 0x3c, 0x00, 0x50, 0x00, 0xf7, 0x00, 0x00, 0xfa, 0xfb, 0xfb,
-  0xfd, 0xfd, 0xfd, 0xff, 0xff, 0xff, 0xd9, 0xec, 0xfe, 0x1e, 0x93, 0xfe, 0x23, 0x95, 0xfd, 0x5f,
-  0xb2, 0xff, 0x52, 0xac, 0xfe, 0xb1, 0xd8, 0xff, 0xce, 0xe7, 0xff, 0xa3, 0xd2, 0xff, 0x80, 0xc0,
-  0xfe, 0xe2, 0xf1, 0xfe, 0xca, 0xe5, 0xff, 0xf4, 0xf7, 0xf9, 0x8b, 0xc4, 0xff, 0x7e, 0xbe, 0xff,
-  0xe0, 0xee, 0xff, 0xc6, 0xe4, 0xff, 0xbc, 0xde, 0xff, 0xec, 0xf5, 0xff, 0x1d, 0x92, 0xfd, 0x3f,
-  0x9f, 0xfe, 0x71, 0xbb, 0xff, 0x9f, 0xcf, 0xfe, 0xf2, 0xf9, 0xff, 0x31, 0x9c, 0xfe, 0x98, 0xcb,
-  0xff, 0x49, 0xa8, 0xfe, 0xbe, 0xe0, 0xff, 0x6d, 0xb3, 0xfe, 0x4c, 0xa9, 0xfe, 0xc4, 0xe2, 0xff,
-  0x4a, 0xa8, 0xfe, 0x45, 0xa3, 0xfa, 0xd2, 0xe7, 0xfc, 0xbd, 0xde, 0xff, 0xf9, 0xf9, 0xf9, 0xf7,
-  0xf8, 0xf8, 0xe2, 0xe2, 0xe2, 0xdd, 0xde, 0xdd, 0xe5, 0xea, 0xef, 0xff, 0xb7, 0x50, 0xff, 0xba,
-  0x56, 0xfd, 0xb7, 0x51, 0xff, 0xb7, 0x4f, 0xff, 0xb8, 0x50, 0xc5, 0xc4, 0xc1, 0xfa, 0xb7, 0x55,
-  0xee, 0xb3, 0x5b, 0xf7, 0xb5, 0x57, 0xf1, 0xb5, 0x5e, 0xf5, 0xb6, 0x5b, 0xfd, 0xb7, 0x54, 0xcd,
-  0xcd, 0xcc, 0xe5, 0xe8, 0xea, 0xcf, 0xb2, 0x85, 0xf5, 0xb8, 0x5f, 0xee, 0xef, 0xf0, 0xc0, 0xbf,
-  0xbe, 0xe4, 0xb1, 0x66, 0xff, 0xb7, 0x51, 0xda, 0xda, 0xda, 0xec, 0xed, 0xee, 0xdf, 0xdf, 0xdf,
-  0xd1, 0xd2, 0xd1, 0xe4, 0xe5, 0xe5, 0xff, 0xe5, 0xbf, 0xff, 0xc5, 0x73, 0xff, 0xeb, 0xce, 0xf0,
-  0xf3, 0xf5, 0xc8, 0xc8, 0xc8, 0xed, 0xb4, 0x61, 0xd8, 0xd8, 0xd7, 0xff, 0xdb, 0xa7, 0xff, 0xe1,
-  0xb7, 0xff, 0xc1, 0x68, 0xfc, 0xf7, 0xee, 0xff, 0xc9, 0x7c, 0xff, 0xd2, 0x92, 0xfa, 0xba, 0x5e,
-  0xff, 0xcc, 0x84, 0xff, 0xe8, 0xc6, 0xff, 0xfb, 0xf6, 0xff, 0xf5, 0xe8, 0xff, 0xf9, 0xf1, 0xff,
-  0xed, 0xd5, 0xc9, 0xba, 0xa0, 0xf1, 0xf1, 0xf1, 0xf6, 0xf6, 0xf6, 0xeb, 0xb7, 0x6a, 0xe3, 0xb5,
-  0x6f, 0xff, 0xbd, 0x5f, 0xa9, 0xa9, 0xa9, 0xd6, 0xd6, 0xd6, 0xb2, 0xb2, 0xb2, 0xb9, 0xb9, 0xb9,
-  0x97, 0x98, 0x96, 0x9e, 0x9e, 0x9e, 0xa5, 0xa5, 0xa5, 0x45, 0x45, 0x45, 0x46, 0x46, 0x46, 0x47,
-  0x47, 0x47, 0x4a, 0x4a, 0x4a, 0x4d, 0x4d, 0x4d, 0x50, 0x50, 0x50, 0x53, 0x53, 0x53, 0x58, 0x58,
-  0x58, 0x5a, 0x5a, 0x5a, 0x5d, 0x5d, 0x5d, 0x5f, 0x5f, 0x5f, 0x63, 0x63, 0x63, 0x66, 0x66, 0x66,
-  0x6a, 0x6a, 0x6a, 0x6d, 0x6d, 0x6d, 0x70, 0x70, 0x70, 0x75, 0x75, 0x75, 0x79, 0x79, 0x79, 0x7c,
-  0x7c, 0x7c, 0x80, 0x80, 0x80, 0x84, 0x84, 0x84, 0x88, 0x88, 0x88, 0x8b, 0x8b, 0x8b, 0x8f, 0x8f,
-  0x8f, 0xd5, 0xd5, 0xd5, 0xe7, 0xe7, 0xe7, 0xea, 0xea, 0xea, 0xf4, 0xf4, 0xf4, 0xf2, 0xf4, 0xf5,
-  0xff, 0xd6, 0x9b, 0xff, 0xde, 0xaf, 0xff, 0xfe, 0xfc, 0xff, 0xf1, 0xde, 0xff, 0xd6, 0x9c, 0xff,
-  0xcf, 0x8b, 0xfa, 0xd6, 0xa1, 0xf7, 0xc4, 0x7b, 0xf8, 0xbd, 0x67, 0xeb, 0xb5, 0x65, 0xf9, 0xf9,
-  0xf8, 0xf1, 0xdb, 0xbb, 0xdb, 0xd7, 0xce, 0xe3, 0xdb, 0xcc, 0xda, 0xd2, 0xc3, 0xe3, 0xd6, 0xc0,
-  0xae, 0xae, 0xae, 0xe4, 0xcb, 0xa6, 0xe5, 0xe2, 0xdc, 0xd0, 0xb8, 0x90, 0x56, 0x56, 0x56, 0xcd,
-  0xcb, 0xc6, 0xcf, 0xc4, 0xaf, 0xcf, 0xc9, 0xbc, 0xd0, 0xbe, 0xa0, 0xd8, 0xbb, 0x8e, 0xd8, 0xbf,
-  0x98, 0xd8, 0xc5, 0xa5, 0xd8, 0xd4, 0xcb, 0xda, 0xb7, 0x82, 0xdb, 0xca, 0xaf, 0xdb, 0xcd, 0xb6,
-  0xdd, 0xbe, 0x8e, 0xdd, 0xc3, 0x9b, 0xdd, 0xdb, 0xd5, 0xde, 0xc8, 0xa5, 0xe0, 0xbb, 0x82, 0xe2,
-  0xb8, 0x79, 0xe4, 0xc2, 0x8e, 0xe4, 0xc6, 0x99, 0xe4, 0xd1, 0xb3, 0xe5, 0xbe, 0x84, 0xe5, 0xdf,
-  0xd4, 0xe9, 0xdb, 0xc5, 0xe9, 0xde, 0xce, 0xea, 0xbe, 0x7b, 0xea, 0xc1, 0x85, 0xea, 0xd3, 0xb0,
-  0xea, 0xd8, 0xbc, 0xeb, 0xba, 0x71, 0xeb, 0xc5, 0x8e, 0xeb, 0xcb, 0x9a, 0xeb, 0xe4, 0xd9, 0xec,
-  0xd0, 0xa5, 0xec, 0xe9, 0xe3, 0xed, 0xec, 0xea, 0xef, 0xe7, 0xd9, 0xf0, 0xbc, 0x71, 0xf0, 0xc0,
-  0x7a, 0xf1, 0xb9, 0x68, 0xf3, 0xf0, 0xea, 0xf4, 0xc7, 0x86, 0xf4, 0xcb, 0x8e, 0xf7, 0xc0, 0x71,
-  0xf9, 0xf7, 0xf4, 0xfd, 0xf5, 0xeb, 0xf5, 0xd0, 0x99, 0xda, 0xcf, 0xbd, 0xdc, 0xb1, 0x6f, 0xf2,
-  0xd7, 0xb0, 0xed, 0xdf, 0xca, 0xc8, 0xb3, 0x8f, 0xd9, 0xb3, 0x78, 0xd2, 0xb0, 0x7c, 0xf3, 0xed,
-  0xe4, 0xf4, 0xf3, 0xf1, 0xf5, 0xea, 0xd8, 0xf5, 0xe3, 0xc9, 0xc1, 0xb7, 0xa3, 0xc5, 0xbe, 0xaf,
-  0xd7, 0xac, 0x6b, 0xc1, 0xb2, 0x95, 0xd2, 0xd6, 0xd6, 0xcf, 0xa9, 0x70, 0xbc, 0xb9, 0xb1, 0xc7,
-  0xa8, 0x76, 0x41, 0x84, 0xd5, 0xb0, 0xa2, 0x86, 0x39, 0x81, 0xd9, 0x78, 0x92, 0xad, 0x88, 0xa0,
-  0xb5, 0xb9, 0xcf, 0xe9, 0xbf, 0xa5, 0x7b, 0x40, 0x83, 0xd4, 0x80, 0x95, 0xa8, 0x80, 0x96, 0xa9,
-  0x49, 0x86, 0xcf, 0x87, 0x96, 0xa2, 0x48, 0x85, 0xcd, 0x60, 0x8c, 0xbe, 0x2e, 0x7e, 0xdf, 0x18,
-  0x78, 0xee, 0x9e, 0xbd, 0xe1, 0x06, 0x74, 0xfc, 0x00, 0x72, 0xff, 0x01, 0x73, 0xff, 0x47, 0xa1,
-  0xfe, 0x0e, 0x76, 0xf7, 0x16, 0x7d, 0xfc, 0x32, 0x8d, 0xfe, 0x61, 0xa7, 0xfe, 0x24, 0x85, 0xfc,
-  0x55, 0xa1, 0xff, 0x54, 0xa1, 0xff, 0x1e, 0x88, 0xfa, 0x20, 0x7b, 0xea, 0x9e, 0x9c, 0x93, 0x61,
-  0x9c, 0xdc, 0x6f, 0x90, 0xb3, 0x84, 0xaf, 0xe1, 0x54, 0x89, 0xc6, 0x24, 0x7c, 0xe7, 0xa7, 0x9f,
-  0x8c, 0x68, 0x8e, 0xb7, 0x8f, 0x98, 0x9d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0xff, 0x0b,
-  0x4e, 0x45, 0x54, 0x53, 0x43, 0x41, 0x50, 0x45, 0x32, 0x2e, 0x30, 0x03, 0x01, 0x00, 0x00, 0x00,
-  0x21, 0xf9, 0x04, 0x05, 0x25, 0x00, 0x04, 0x00, 0x21, 0xfe, 0x23, 0x52, 0x65, 0x73, 0x69, 0x7a,
-  0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x65, 0x7a,
-  0x67, 0x69, 0x66, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x65, 0x00, 0x2c,
-  0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x50, 0x00, 0x00, 0x08, 0xff, 0x00, 0x03, 0x08, 0x1c, 0x48,
-  0xb0, 0xa0, 0xc1, 0x83, 0x08, 0x13, 0x2a, 0x5c, 0xc8, 0xb0, 0xa1, 0xc3, 0x87, 0x10, 0x23, 0x4a,
-  0x9c, 0x48, 0xb1, 0xa2, 0xc5, 0x8b, 0x18, 0x33, 0x6a, 0xdc, 0xc8, 0xb1, 0xa3, 0xc7, 0x8f, 0x20,
-  0x43, 0x8a, 0x1c, 0x49, 0xb2, 0xa4, 0xc9, 0x93, 0x28, 0x53, 0xaa, 0x5c, 0xc9, 0xb2, 0xa5, 0xcb,
-  0x97, 0x30, 0x63, 0xca, 0x9c, 0x49, 0xb3, 0xa6, 0xcd, 0x9b, 0x38, 0x63, 0x52, 0x50, 0xf0, 0xae,
-  0x5d, 0x3a, 0x75, 0xf1, 0x36, 0x44, 0x88, 0x99, 0xe1, 0x81, 0xba, 0x74, 0x48, 0x93, 0x22, 0x7d,
-  0xc7, 0xc0, 0x65, 0x04, 0x77, 0x48, 0xdd, 0x61, 0x18, 0x81, 0x41, 0x69, 0xba, 0x76, 0x0d, 0x58,
-  0x46, 0x80, 0xf7, 0x13, 0x41, 0x86, 0x06, 0x0f, 0xe2, 0x59, 0xfd, 0x99, 0x35, 0x65, 0x06, 0xa8,
-  0xed, 0x06, 0x8c, 0x80, 0x3a, 0x36, 0x69, 0xbb, 0xa6, 0x28, 0x37, 0x20, 0x8d, 0x47, 0xe2, 0x68,
-  0x5b, 0xa5, 0x1e, 0x50, 0x52, 0x38, 0xea, 0xce, 0xee, 0x5d, 0xab, 0x43, 0x4d, 0x22, 0x40, 0x1a,
-  0xc1, 0xc3, 0xdf, 0xb1, 0x18, 0x4e, 0x1a, 0x4e, 0x17, 0xcf, 0xef, 0xe1, 0xa5, 0x27, 0xd9, 0x3e,
-  0x1e, 0x0b, 0xef, 0xa4, 0xcf, 0xc9, 0x63, 0xd5, 0x45, 0xc6, 0x4c, 0x59, 0x31, 0x67, 0xab, 0xef,
-  0x4e, 0x0e, 0xfe, 0x9c, 0x54, 0xc1, 0xc9, 0xbd, 0xa4, 0x7f, 0xc2, 0x35, 0xf9, 0x20, 0x35, 0x04,
-  0xb3, 0x92, 0x27, 0xc3, 0xa3, 0xa0, 0x32, 0xc2, 0xe5, 0xc7, 0xea, 0x06, 0xb0, 0x1c, 0xe1, 0xb8,
-  0xad, 0xba, 0xb2, 0x2c, 0xe5, 0x1e, 0xde, 0xf0, 0x32, 0x03, 0xd7, 0xbb, 0xed, 0x32, 0xc0, 0x14,
-  0xde, 0xf6, 0x41, 0xcc, 0x11, 0x7f, 0x47, 0x10, 0xed, 0x8d, 0x54, 0x9d, 0xf2, 0x98, 0x08, 0x7a,
-  0xab, 0x43, 0x40, 0x93, 0xc2, 0x88, 0xef, 0xdf, 0x57, 0xe7, 0x9c, 0xa4, 0xf9, 0xe7, 0x8b, 0xf9,
-  0xf3, 0xe6, 0xb3, 0xc8, 0xec, 0xc3, 0xa6, 0xbd, 0xfb, 0xf6, 0x7d, 0x64, 0x9a, 0x78, 0xff, 0x1e,
-  0xcb, 0xcc, 0x3d, 0xf4, 0xd9, 0xe4, 0xa1, 0x29, 0x44, 0x4d, 0x99, 0xff, 0x65, 0xa4, 0x01, 0x44,
-  0x4d, 0x7d, 0xec, 0x71, 0x86, 0x19, 0x7a, 0x9c, 0x80, 0x13, 0x00, 0x00, 0x8c, 0xe7, 0xe0, 0x83,
-  0x30, 0x99, 0xf0, 0x07, 0x16, 0x3a, 0xfc, 0x80, 0x8b, 0x1f, 0x7e, 0xf4, 0xa1, 0xe1, 0x86, 0x1c,
-  0xf6, 0x81, 0xa1, 0x1f, 0xb8, 0xfc, 0xa0, 0x03, 0x16, 0x7f, 0x98, 0xf0, 0xd1, 0x0f, 0x7d, 0x08,
-  0x71, 0x02, 0x10, 0x28, 0xf8, 0xe0, 0x43, 0x12, 0x49, 0x78, 0xc1, 0xc7, 0x8c, 0x34, 0xce, 0xe8,
-  0x05, 0x8c, 0x2e, 0xa2, 0x00, 0xc4, 0x09, 0x42, 0xf4, 0xf1, 0x03, 0x84, 0x40, 0x06, 0x29, 0xe4,
-  0x90, 0x44, 0x16, 0x69, 0xe4, 0x91, 0x48, 0x56, 0x74, 0x5d, 0x00, 0x4b, 0xce, 0x94, 0x01, 0x03,
-  0x14, 0x30, 0x00, 0x00, 0x94, 0x51, 0x52, 0x40, 0x1b, 0x4c, 0x03, 0x50, 0x99, 0xc1, 0x00, 0x19,
-  0x58, 0x49, 0x41, 0x93, 0x2d, 0x05, 0x04, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x06, 0x00, 0x00, 0x00,
-  0x2c, 0x19, 0x00, 0x33, 0x00, 0x04, 0x00, 0x02, 0x00, 0x00, 0x08, 0x0c, 0x00, 0xb9, 0xd9, 0x43,
-  0x07, 0x00, 0x80, 0xb0, 0x5b, 0x00, 0x02, 0x02, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x04, 0x00, 0x00,
-  0x00, 0x2c, 0x19, 0x00, 0x32, 0x00, 0x07, 0x00, 0x03, 0x00, 0x00, 0x08, 0x16, 0x00, 0xe9, 0xa9,
-  0x03, 0x40, 0x90, 0xa0, 0xb3, 0x19, 0x57, 0xf0, 0xb1, 0x2b, 0x08, 0xc0, 0x8a, 0x95, 0x66, 0x29,
-  0x00, 0x04, 0x04, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x03, 0x00, 0x02, 0x00, 0x2c, 0x18, 0x00, 0x32,
-  0x00, 0x09, 0x00, 0x03, 0x00, 0x00, 0x08, 0x19, 0x00, 0x4b, 0x94, 0xba, 0xb2, 0xcd, 0x9c, 0x80,
-  0x83, 0x08, 0x55, 0xb4, 0xe8, 0x61, 0xea, 0x8b, 0x3d, 0x74, 0x08, 0x0f, 0x5a, 0x99, 0x28, 0x2c,
-  0x20, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x03, 0x00, 0x00, 0x00, 0x2c, 0x18, 0x00, 0x31, 0x00, 0x0a,
-  0x00, 0x04, 0x00, 0x00, 0x08, 0x20, 0x00, 0x53, 0x6c, 0xb3, 0x47, 0x4f, 0x1d, 0x80, 0x83, 0x07,
-  0x17, 0xd5, 0x68, 0xd1, 0x42, 0xcb, 0x33, 0x7b, 0xec, 0x10, 0x22, 0x64, 0xd8, 0x42, 0x86, 0x26,
-  0x6e, 0x12, 0x33, 0x02, 0x08, 0x08, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x07, 0x00, 0x00, 0x00, 0x2c,
-  0x18, 0x00, 0x30, 0x00, 0x0a, 0x00, 0x04, 0x00, 0x00, 0x08, 0x20, 0x00, 0x01, 0xa0, 0x53, 0x07,
-  0xa0, 0xa0, 0x41, 0x00, 0xcb, 0x64, 0xc8, 0xd0, 0x42, 0x69, 0x9b, 0xb9, 0x83, 0x06, 0x5b, 0x48,
-  0x34, 0xf5, 0xc5, 0x1e, 0xc4, 0x82, 0x2d, 0x54, 0x30, 0x0a, 0x08, 0x00, 0x21, 0xf9, 0x04, 0x05,
-  0x03, 0x00, 0x00, 0x00, 0x2c, 0x18, 0x00, 0x30, 0x00, 0x0b, 0x00, 0x03, 0x00, 0x00, 0x08, 0x1d,
-  0x00, 0xb9, 0x7d, 0x19, 0x18, 0xc9, 0x1e, 0x3a, 0x00, 0x08, 0x01, 0x10, 0x6a, 0xc1, 0x90, 0xa1,
-  0x0c, 0x4a, 0xdb, 0xcc, 0x25, 0x9c, 0x08, 0x80, 0x61, 0x8d, 0x60, 0x01, 0x01, 0x00, 0x21, 0xf9,
-  0x04, 0x05, 0x04, 0x00, 0x00, 0x00, 0x2c, 0x18, 0x00, 0x2f, 0x00, 0x0b, 0x00, 0x04, 0x00, 0x00,
-  0x08, 0x22, 0x00, 0x01, 0xb0, 0xd3, 0x67, 0xcf, 0x1e, 0x3b, 0x00, 0x08, 0x11, 0xc6, 0xaa, 0xd1,
-  0xa2, 0x21, 0x0b, 0x2d, 0x5f, 0xec, 0xa1, 0x4b, 0x48, 0xb1, 0x61, 0x0b, 0x1a, 0xb7, 0x28, 0x6a,
-  0xec, 0x01, 0x20, 0x20, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x03, 0x00, 0x00, 0x00, 0x2c, 0x18, 0x00,
-  0x2f, 0x00, 0x0b, 0x00, 0x03, 0x00, 0x00, 0x08, 0x1f, 0x00, 0xed, 0x7d, 0xd1, 0xa4, 0x45, 0x91,
-  0x16, 0x4a, 0x91, 0xec, 0xa9, 0x03, 0x60, 0xac, 0x05, 0x80, 0x87, 0x2d, 0x22, 0xb6, 0x40, 0x12,
-  0xe4, 0xa1, 0xc5, 0x8b, 0x2d, 0x9a, 0x05, 0x04, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x07, 0x00, 0x00,
-  0x00, 0x2c, 0x17, 0x00, 0x2e, 0x00, 0x0d, 0x00, 0x03, 0x00, 0x00, 0x08, 0x20, 0x00, 0x01, 0x00,
-  0x40, 0x67, 0x2f, 0xd2, 0x97, 0x83, 0xdb, 0xe8, 0xa9, 0x13, 0x08, 0xe0, 0x8a, 0x8c, 0x16, 0x10,
-  0x23, 0xb6, 0xd8, 0xf2, 0x85, 0xa1, 0x45, 0x8b, 0x2d, 0x0e, 0x01, 0x08, 0x08, 0x00, 0x21, 0xf9,
-  0x04, 0x05, 0x03, 0x00, 0x00, 0x00, 0x2c, 0x17, 0x00, 0x2d, 0x00, 0x0d, 0x00, 0x03, 0x00, 0x00,
-  0x08, 0x23, 0x00, 0x01, 0x08, 0x04, 0xc0, 0xce, 0x9e, 0x41, 0x7b, 0xec, 0x06, 0x02, 0xa0, 0x17,
-  0xc9, 0x13, 0x8c, 0x16, 0x10, 0x5b, 0xb0, 0x30, 0xf5, 0x85, 0xdb, 0x22, 0x28, 0x2d, 0x14, 0x0e,
-  0x6c, 0xc1, 0x25, 0x58, 0x40, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x03, 0x00, 0x00, 0x00, 0x2c, 0x17,
-  0x00, 0x2c, 0x00, 0x0d, 0x00, 0x04, 0x00, 0x00, 0x08, 0x27, 0x00, 0x01, 0x08, 0x1c, 0xa8, 0x8e,
-  0x1d, 0xbb, 0x81, 0x03, 0xd1, 0xd9, 0xfb, 0x62, 0x0a, 0x46, 0x8b, 0x16, 0x32, 0x3c, 0x7d, 0xb1,
-  0xc7, 0xed, 0x4a, 0x8e, 0x87, 0x08, 0x1f, 0xb6, 0x30, 0x06, 0x80, 0x0b, 0xc2, 0x8f, 0x02, 0x03,
-  0x02, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x04, 0x00, 0x00, 0x00, 0x2c, 0x17, 0x00, 0x2c, 0x00, 0x0e,
-  0x00, 0x03, 0x00, 0x00, 0x08, 0x24, 0x00, 0x01, 0x08, 0x04, 0xc0, 0x0e, 0xdf, 0x33, 0x4f, 0xa6,
-  0x4c, 0x51, 0xfa, 0x62, 0xaf, 0x1d, 0x3a, 0x7b, 0x91, 0x3c, 0xd5, 0x68, 0xd1, 0x42, 0x20, 0xc5,
-  0x16, 0x2a, 0x9a, 0x19, 0xa3, 0x38, 0xb0, 0x63, 0xc7, 0x80, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x06,
-  0x00, 0x00, 0x00, 0x2c, 0x16, 0x00, 0x2b, 0x00, 0x10, 0x00, 0x04, 0x00, 0x00, 0x08, 0x2b, 0x00,
-  0x01, 0x08, 0x1c, 0xa8, 0x4e, 0xdf, 0xb6, 0x2f, 0xcf, 0xbe, 0x44, 0xb2, 0x87, 0x6e, 0x20, 0x00,
-  0x76, 0xf6, 0x9e, 0x69, 0x69, 0x41, 0xb1, 0x62, 0x8b, 0x1c, 0x29, 0x52, 0x5c, 0x31, 0x05, 0x83,
-  0xa2, 0xc3, 0x8f, 0x02, 0x05, 0x81, 0x1c, 0x09, 0x20, 0x20, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x04,
-  0x00, 0x00, 0x00, 0x2c, 0x15, 0x00, 0x2a, 0x00, 0x12, 0x00, 0x04, 0x00, 0x00, 0x08, 0x31, 0x00,
-  0x01, 0x08, 0x1c, 0x38, 0x90, 0x9d, 0xbd, 0x6d, 0xdb, 0xf0, 0xd9, 0x43, 0x47, 0x70, 0xa0, 0x3a,
-  0x7a, 0x91, 0x3c, 0xc1, 0x68, 0x41, 0x91, 0xa2, 0x8c, 0x4c, 0x02, 0xbf, 0x44, 0x8a, 0xf4, 0x4c,
-  0x8b, 0x8a, 0x16, 0x0d, 0x05, 0xae, 0x20, 0x24, 0xb0, 0x59, 0x0f, 0x8a, 0x21, 0x53, 0x06, 0x04,
-  0x00, 0x21, 0xf9, 0x04, 0x05, 0x03, 0x00, 0x01, 0x00, 0x2c, 0x14, 0x00, 0x29, 0x00, 0x13, 0x00,
-  0x04, 0x00, 0x00, 0x08, 0x32, 0x00, 0x03, 0x08, 0x1c, 0x48, 0x30, 0x80, 0x3a, 0x76, 0xf6, 0xec,
-  0xe9, 0x43, 0x57, 0xb0, 0x20, 0xc2, 0x67, 0x5a, 0x54, 0xb4, 0x98, 0x08, 0xc3, 0xd3, 0x11, 0x07,
-  0x60, 0xb6, 0x25, 0xb4, 0x17, 0x89, 0x92, 0x8c, 0x89, 0x05, 0x5b, 0x70, 0x69, 0x12, 0x80, 0xd0,
-  0x8a, 0x89, 0x28, 0x1b, 0x16, 0x0c, 0x08, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x03, 0x00, 0x00, 0x00,
-  0x2c, 0x14, 0x00, 0x28, 0x00, 0x14, 0x00, 0x04, 0x00, 0x00, 0x08, 0x35, 0x00, 0x01, 0x08, 0x1c,
-  0x48, 0x90, 0x20, 0x3b, 0x76, 0xea, 0x06, 0xa2, 0x2b, 0x38, 0x50, 0x9d, 0xbe, 0x2f, 0x9e, 0x68,
-  0xa8, 0x50, 0x01, 0xc3, 0xd4, 0x17, 0x0a, 0xc6, 0xae, 0x6c, 0xb3, 0x77, 0x50, 0x1f, 0xbe, 0x67,
-  0x5a, 0x5a, 0x88, 0x1c, 0x28, 0xf2, 0x10, 0x80, 0x60, 0x4c, 0x44, 0xaa, 0x1c, 0xc9, 0x90, 0x60,
-  0x40, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x07, 0x00, 0x00, 0x00, 0x2c, 0x13, 0x00, 0x28, 0x00, 0x15,
-  0x00, 0x03, 0x00, 0x00, 0x08, 0x34, 0x00, 0xb9, 0xb1, 0x03, 0x40, 0xb0, 0xa0, 0x41, 0x76, 0xdb,
-  0x9e, 0x99, 0x52, 0xa4, 0xc5, 0xd3, 0x33, 0x6e, 0x4d, 0x60, 0x68, 0x8a, 0xa4, 0x0f, 0x1d, 0x00,
-  0x75, 0xec, 0xec, 0x45, 0xf2, 0x54, 0xa3, 0x85, 0xc7, 0x8f, 0x3d, 0x84, 0x01, 0x38, 0xf4, 0xb1,
-  0x06, 0x0d, 0x1a, 0x2c, 0x3c, 0x1a, 0x5c, 0x09, 0x20, 0x20, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x03,
-  0x00, 0x01, 0x00, 0x2c, 0x13, 0x00, 0x27, 0x00, 0x15, 0x00, 0x04, 0x00, 0x00, 0x08, 0x38, 0x00,
-  0xcf, 0x99, 0x0b, 0x40, 0xb0, 0xa0, 0xc1, 0x00, 0xe8, 0xec, 0x7d, 0xb9, 0xa2, 0x89, 0xd2, 0xb3,
-  0x73, 0x43, 0x54, 0x98, 0xfa, 0x62, 0x0f, 0x9d, 0x41, 0x73, 0xf8, 0x28, 0xd1, 0x68, 0xc1, 0xb1,
-  0xe3, 0x92, 0x00, 0x3d, 0x3a, 0xc2, 0x30, 0xe5, 0xc9, 0x14, 0x2f, 0x15, 0x1c, 0x0f, 0xaa, 0x24,
-  0xd8, 0xb1, 0xc5, 0xca, 0x83, 0x01, 0x01, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x04, 0x00, 0x00, 0x00,
-  0x2c, 0x13, 0x00, 0x26, 0x00, 0x15, 0x00, 0x04, 0x00, 0x00, 0x08, 0x36, 0x00, 0xcf, 0xd9, 0x43,
-  0x07, 0xa0, 0xa0, 0xc1, 0x83, 0x00, 0xd4, 0xd1, 0xdb, 0xf6, 0xa5, 0xe1, 0x97, 0x61, 0x2d, 0x78,
-  0x3d, 0xc3, 0xc7, 0x0e, 0x21, 0x3a, 0x7b, 0x5f, 0xb4, 0xb4, 0xd8, 0xb8, 0xd1, 0x10, 0x00, 0x8e,
-  0x2d, 0x6a, 0x98, 0xba, 0x42, 0xd2, 0x93, 0x8c, 0x8d, 0x08, 0x53, 0x7e, 0x04, 0xd9, 0x42, 0xa5,
-  0xc1, 0x80, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x03, 0x00, 0x00, 0x00, 0x2c, 0x13, 0x00, 0x25, 0x00,
-  0x15, 0x00, 0x04, 0x00, 0x00, 0x08, 0x35, 0x00, 0xf1, 0xd9, 0x43, 0x07, 0xa0, 0xa0, 0xc1, 0x83,
-  0x06, 0xd9, 0xd9, 0xfb, 0xf2, 0x65, 0x1b, 0xb0, 0x16, 0x30, 0x34, 0x7d, 0xa1, 0x87, 0x10, 0x80,
-  0x3a, 0x7d, 0x5f, 0x4a, 0xb1, 0x68, 0xc1, 0x31, 0x51, 0x41, 0x8e, 0x1c, 0xb5, 0x5c, 0x61, 0xf8,
-  0xe5, 0x0a, 0x2f, 0x8e, 0x15, 0x11, 0x82, 0x5c, 0x99, 0xb2, 0x60, 0x40, 0x00, 0x21, 0xf9, 0x04,
-  0x05, 0x07, 0x00, 0x00, 0x00, 0x2c, 0x13, 0x00, 0x24, 0x00, 0x15, 0x00, 0x04, 0x00, 0x00, 0x08,
-  0x38, 0x00, 0xf1, 0xd9, 0x63, 0x07, 0xa0, 0xa0, 0xc1, 0x83, 0x07, 0xd1, 0xe9, 0xb3, 0x87, 0x0f,
-  0x4a, 0x0b, 0x16, 0xa6, 0xbe, 0xd8, 0x43, 0x87, 0xb0, 0xa0, 0xb9, 0x6d, 0x94, 0x64, 0xb4, 0x68,
-  0x01, 0xa3, 0xe0, 0xc6, 0x8d, 0x34, 0x28, 0x45, 0xda, 0x86, 0x6f, 0xdb, 0x17, 0x53, 0x2c, 0x36,
-  0x56, 0x3c, 0xf8, 0xb1, 0xe5, 0x4a, 0x00, 0x01, 0x01, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x03, 0x00,
-  0x00, 0x00, 0x2c, 0x13, 0x00, 0x23, 0x00, 0x15, 0x00, 0x04, 0x00, 0x00, 0x08, 0x35, 0x00, 0xcf,
-  0xe9, 0x63, 0x07, 0xa0, 0xa0, 0xc1, 0x83, 0x08, 0xd5, 0xb1, 0xc3, 0x07, 0xac, 0x45, 0x0b, 0x5e,
-  0x57, 0xf0, 0x11, 0x44, 0x58, 0x90, 0x9d, 0xbd, 0x67, 0x5a, 0x54, 0x40, 0x29, 0xe8, 0xd0, 0x61,
-  0x0d, 0x4f, 0x5f, 0xf0, 0xd9, 0x1b, 0x19, 0x89, 0x12, 0x0c, 0x87, 0x14, 0x0d, 0x76, 0x5c, 0x89,
-  0x12, 0x61, 0x40, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x03, 0x00, 0x00, 0x00, 0x2c, 0x13, 0x00, 0x22,
-  0x00, 0x15, 0x00, 0x04, 0x00, 0x00, 0x08, 0x34, 0x00, 0x01, 0xb0, 0x43, 0x07, 0xa0, 0xa0, 0xc1,
-  0x83, 0x08, 0x0d, 0x0e, 0x53, 0xa1, 0xc2, 0x89, 0xa6, 0x2f, 0xfa, 0xd4, 0x25, 0x2c, 0x88, 0xce,
-  0xde, 0x17, 0x4f, 0xbf, 0x0c, 0xb6, 0xd8, 0xd8, 0x82, 0xd7, 0x33, 0x7c, 0xfa, 0xd8, 0xb1, 0xd3,
-  0x87, 0xef, 0x59, 0x0e, 0x8e, 0x13, 0x39, 0xaa, 0x44, 0x79, 0x30, 0x20, 0x00, 0x21, 0xf9, 0x04,
-  0x05, 0x04, 0x00, 0x00, 0x00, 0x2c, 0x13, 0x00, 0x22, 0x00, 0x15, 0x00, 0x03, 0x00, 0x00, 0x08,
-  0x34, 0x00, 0x8f, 0x69, 0x41, 0xb2, 0x2c, 0xd5, 0x17, 0x7b, 0xe8, 0x00, 0x28, 0x5c, 0xc8, 0x90,
-  0xde, 0x36, 0x47, 0x00, 0x5a, 0xb4, 0x00, 0xe0, 0x42, 0xa2, 0x0c, 0x4a, 0xdb, 0xf4, 0x25, 0x54,
-  0xc7, 0xce, 0xde, 0x97, 0x2d, 0x2a, 0x5a, 0x44, 0x61, 0xb8, 0x50, 0xa2, 0x44, 0x18, 0x34, 0x64,
-  0xb0, 0x90, 0xc8, 0x30, 0x20, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x06, 0x00, 0x00, 0x00, 0x2c, 0x13,
-  0x00, 0x21, 0x00, 0x15, 0x00, 0x04, 0x00, 0x00, 0x08, 0x39, 0x00, 0x83, 0x55, 0xd3, 0xb4, 0x49,
-  0x53, 0x35, 0x7c, 0xec, 0x00, 0x28, 0x5c, 0xc8, 0x10, 0x00, 0x3b, 0x1d, 0xce, 0x5a, 0xb4, 0x20,
-  0xf4, 0x44, 0x22, 0x0b, 0x53, 0x5f, 0xec, 0xa1, 0x5b, 0xa8, 0x8e, 0xde, 0x17, 0x4d, 0x35, 0x04,
-  0x35, 0x54, 0x28, 0x51, 0x22, 0x0c, 0x59, 0xa6, 0x4c, 0xc9, 0x28, 0x39, 0xb2, 0x65, 0xc9, 0x16,
-  0x23, 0x03, 0x02, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x04, 0x00, 0x00, 0x00, 0x2c, 0x13, 0x00, 0x20,
-  0x00, 0x15, 0x00, 0x04, 0x00, 0x00, 0x08, 0x38, 0x00, 0x01, 0x70, 0x8b, 0xf4, 0xe5, 0x92, 0xb3,
-  0x6d, 0xfa, 0xd4, 0x01, 0x58, 0xc8, 0xb0, 0xe1, 0xc2, 0x26, 0x35, 0x5a, 0x30, 0x59, 0xd1, 0xa2,
-  0xa2, 0x96, 0x67, 0xf6, 0xd8, 0x39, 0x64, 0x87, 0xef, 0x4a, 0x2f, 0x87, 0x0b, 0x2b, 0x56, 0x84,
-  0x61, 0x0a, 0xd9, 0x15, 0x4a, 0xa6, 0x22, 0xb6, 0x00, 0x09, 0x52, 0x64, 0x45, 0x87, 0x01, 0x01,
-  0x00, 0x21, 0xf9, 0x04, 0x05, 0x03, 0x00, 0x01, 0x00, 0x2c, 0x14, 0x00, 0x1f, 0x00, 0x14, 0x00,
-  0x04, 0x00, 0x00, 0x08, 0x38, 0x00, 0x03, 0xe0, 0xc3, 0xf7, 0x25, 0xc0, 0x32, 0x7c, 0xe8, 0x02,
-  0x28, 0x5c, 0xc8, 0x50, 0xa1, 0x31, 0x15, 0x2d, 0x88, 0x48, 0x71, 0xd1, 0x42, 0xc6, 0x95, 0x6d,
-  0xe6, 0x1a, 0x06, 0x40, 0x77, 0x4e, 0xa3, 0xc2, 0x16, 0x20, 0x7b, 0x98, 0x7a, 0xf6, 0xa5, 0x24,
-  0xa5, 0x1c, 0x2a, 0x96, 0x79, 0x5c, 0x08, 0xb2, 0x25, 0xc8, 0x85, 0x01, 0x01, 0x00, 0x21, 0xf9,
-  0x04, 0x05, 0x03, 0x00, 0x01, 0x00, 0x2c, 0x14, 0x00, 0x1e, 0x00, 0x13, 0x00, 0x04, 0x00, 0x00,
-  0x08, 0x33, 0x00, 0x03, 0x08, 0xd4, 0x67, 0x2f, 0x00, 0x80, 0x11, 0x02, 0x13, 0x2a, 0x14, 0xb8,
-  0xe8, 0x14, 0x0c, 0x2e, 0x84, 0x08, 0x11, 0x81, 0xe1, 0x29, 0x92, 0x3e, 0x75, 0x0b, 0x13, 0xb6,
-  0x58, 0xd8, 0xa2, 0x63, 0x0b, 0x2d, 0xcf, 0xb6, 0xe1, 0xc3, 0xb7, 0xed, 0x8b, 0xa4, 0x8c, 0x0a,
-  0x3d, 0xaa, 0xdc, 0x18, 0x10, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x07, 0x00, 0x00, 0x00, 0x2c, 0x15,
-  0x00, 0x1d, 0x00, 0x12, 0x00, 0x04, 0x00, 0x00, 0x08, 0x30, 0x00, 0x01, 0x08, 0x44, 0x67, 0x4e,
-  0xa0, 0xc1, 0x83, 0x07, 0x85, 0x5d, 0xd1, 0x02, 0x65, 0xc8, 0x14, 0x2b, 0x4a, 0xa0, 0xd9, 0x43,
-  0x87, 0x50, 0x20, 0x91, 0x16, 0x07, 0x5b, 0x68, 0x6c, 0x31, 0xe3, 0xca, 0x36, 0x7b, 0xf4, 0xe8,
-  0xd9, 0x63, 0x56, 0x31, 0xe3, 0xc6, 0x8d, 0xc3, 0x02, 0x02, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x03,
-  0x00, 0x00, 0x00, 0x2c, 0x15, 0x00, 0x1d, 0x00, 0x12, 0x00, 0x03, 0x00, 0x00, 0x08, 0x2b, 0x00,
-  0x01, 0x60, 0x01, 0x43, 0x69, 0xcb, 0x2b, 0x56, 0x29, 0xb8, 0xd9, 0x43, 0x07, 0xa0, 0xa1, 0xc3,
-  0x86, 0x5c, 0x5a, 0xac, 0x78, 0xe8, 0xa4, 0x85, 0x0c, 0x4a, 0xdb, 0xe8, 0x31, 0x7c, 0xc8, 0xd1,
-  0x61, 0x8b, 0x8f, 0x2d, 0x60, 0xd0, 0xc8, 0x21, 0x2c, 0x20, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x04,
-  0x00, 0x02, 0x00, 0x2c, 0x16, 0x00, 0x1c, 0x00, 0x10, 0x00, 0x04, 0x00, 0x00, 0x08, 0x2f, 0x00,
-  0x05, 0x98, 0x08, 0xf2, 0xe5, 0x0a, 0xb2, 0x2b, 0x5f, 0xec, 0xb1, 0x13, 0xc0, 0xb0, 0xa1, 0x30,
-  0x22, 0x2d, 0x5a, 0x10, 0x59, 0x62, 0x45, 0x50, 0x0b, 0x18, 0x94, 0xb6, 0xd1, 0x6b, 0xc8, 0xb1,
-  0x63, 0xc4, 0x88, 0x33, 0x3c, 0x35, 0xeb, 0x48, 0x92, 0x61, 0xc4, 0x15, 0x01, 0x01, 0x00, 0x21,
-  0xf9, 0x04, 0x05, 0x03, 0x00, 0x00, 0x00, 0x2c, 0x17, 0x00, 0x1b, 0x00, 0x0f, 0x00, 0x04, 0x00,
-  0x00, 0x08, 0x29, 0x00, 0x01, 0x00, 0xf8, 0xe3, 0x63, 0xc7, 0x97, 0x6d, 0xf6, 0xde, 0x09, 0x5c,
-  0x08, 0x60, 0xca, 0xa1, 0x1a, 0x2d, 0x22, 0x46, 0x84, 0xa1, 0xe9, 0xcb, 0x39, 0x86, 0x18, 0x05,
-  0x4a, 0x54, 0xa1, 0xab, 0x59, 0xc6, 0x8f, 0x2d, 0x7a, 0x00, 0x08, 0x08, 0x00, 0x21, 0xf9, 0x04,
-  0x05, 0x07, 0x00, 0x03, 0x00, 0x2c, 0x0e, 0x00, 0x1a, 0x00, 0x20, 0x00, 0x29, 0x00, 0x00, 0x08,
-  0xff, 0x00, 0x07, 0x08, 0x1c, 0x48, 0x70, 0x20, 0xa1, 0x22, 0x52, 0x8a, 0x10, 0x02, 0x50, 0xb0,
-  0xa1, 0xc3, 0x82, 0x4d, 0x04, 0x41, 0x69, 0x41, 0x91, 0xe2, 0x8a, 0x43, 0xc2, 0x1e, 0x6a, 0x1c,
-  0xe8, 0x8c, 0x4b, 0x0b, 0x81, 0x5c, 0xb8, 0x0c, 0xa8, 0xd8, 0xc3, 0x18, 0xc3, 0x8d, 0x0d, 0x0f,
-  0x7d, 0xe4, 0xb2, 0x44, 0xd8, 0xa0, 0x21, 0x04, 0x29, 0x46, 0x99, 0x82, 0x92, 0xa0, 0xb1, 0x8f,
-  0x86, 0xaa, 0x58, 0x79, 0xb2, 0xe2, 0x63, 0xc1, 0x16, 0x86, 0x6a, 0x0a, 0x6c, 0xa6, 0x62, 0xc0,
-  0xcc, 0x42, 0x3e, 0x1f, 0xb6, 0x58, 0x52, 0x13, 0x00, 0x30, 0x81, 0x4c, 0xa2, 0x24, 0xd5, 0xb8,
-  0x22, 0x18, 0x4a, 0x67, 0x1f, 0x0b, 0x89, 0x14, 0xda, 0x02, 0xe6, 0xc6, 0x61, 0x03, 0x5c, 0x08,
-  0x23, 0x22, 0x54, 0x60, 0x14, 0x94, 0x50, 0x04, 0xba, 0x98, 0x8a, 0xb2, 0xc6, 0x49, 0x87, 0xc1,
-  0x8a, 0x96, 0x25, 0xa8, 0xa2, 0x89, 0xc6, 0xb8, 0x73, 0xe9, 0xda, 0x7d, 0xb8, 0xc8, 0x45, 0xde,
-  0x81, 0x3d, 0x16, 0x6d, 0x7c, 0xfa, 0x77, 0x00, 0x61, 0x8d, 0xc6, 0x0a, 0x0f, 0x38, 0x84, 0x72,
-  0x99, 0xdc, 0xb9, 0x2a, 0x96, 0xd5, 0x04, 0x9b, 0x97, 0x32, 0xca, 0xbd, 0x8a, 0x33, 0x6b, 0xde,
-  0x5c, 0x36, 0xf1, 0x46, 0xc6, 0x85, 0x83, 0xad, 0xa0, 0xaa, 0x19, 0x34, 0xe7, 0x86, 0xcd, 0x34,
-  0x16, 0xd1, 0xdc, 0xc4, 0x6f, 0x43, 0x17, 0x98, 0x15, 0x33, 0xea, 0x51, 0xd0, 0xf5, 0xe9, 0xdb,
-  0xb8, 0x51, 0x62, 0x79, 0xb8, 0x5b, 0x33, 0x8a, 0x87, 0x40, 0x36, 0xeb, 0x78, 0xe8, 0x87, 0xf3,
-  0x9d, 0x86, 0x74, 0xde, 0x66, 0x4e, 0x72, 0x86, 0xa0, 0x99, 0x20, 0xb7, 0x7d, 0xd4, 0x29, 0x53,
-  0x66, 0x0e, 0x9f, 0xdc, 0x03, 0xb0, 0xf4, 0xc6, 0xce, 0xbd, 0x3b, 0x67, 0x00, 0x59, 0x08, 0x16,
-  0x23, 0xaf, 0xd9, 0x47, 0xe0, 0x78, 0x81, 0x59, 0x18, 0x96, 0xc0, 0x35, 0xe0, 0x04, 0x90, 0xdf,
-  0x03, 0x92, 0x0c, 0xf0, 0xb2, 0x91, 0xbe, 0xfc, 0x01, 0x28, 0x80, 0x9c, 0x18, 0x80, 0xab, 0x84,
-  0xf7, 0x01, 0x01, 0x01, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x03, 0x00, 0x03, 0x00, 0x2c, 0x0e, 0x00,
-  0x19, 0x00, 0x20, 0x00, 0x2a, 0x00, 0x00, 0x08, 0xff, 0x00, 0x07, 0x08, 0x1c, 0x48, 0x50, 0x20,
-  0x00, 0x42, 0x45, 0xa4, 0x14, 0x21, 0x04, 0xa0, 0xa0, 0xc3, 0x87, 0x05, 0x85, 0x1d, 0x82, 0xd2,
-  0xa2, 0x62, 0xc5, 0x1a, 0x87, 0x08, 0x41, 0xdc, 0x38, 0x90, 0x51, 0x8d, 0x8a, 0x03, 0x5c, 0xb8,
-  0x10, 0x58, 0x51, 0xc5, 0xa1, 0x45, 0x1c, 0x1d, 0x02, 0x18, 0x56, 0x91, 0x8b, 0x20, 0x42, 0x53,
-  0x86, 0x10, 0xac, 0x88, 0xa8, 0x49, 0x4a, 0x82, 0x2c, 0x07, 0x18, 0x6a, 0x42, 0x45, 0x09, 0x91,
-  0x15, 0x0e, 0x5b, 0x10, 0x99, 0x72, 0x73, 0x00, 0xa3, 0x16, 0x03, 0x9e, 0x4c, 0x51, 0xe2, 0x02,
-  0xe4, 0xc3, 0x16, 0x87, 0x6e, 0x0a, 0xfb, 0x38, 0xa0, 0xd0, 0x13, 0xa4, 0x29, 0x55, 0x34, 0x4b,
-  0x79, 0xa8, 0x85, 0x0a, 0x22, 0x4e, 0x53, 0xb6, 0x18, 0xc6, 0x71, 0x51, 0x8d, 0x01, 0x51, 0xaa,
-  0x8c, 0x2c, 0x3a, 0xa0, 0x46, 0xb0, 0x8d, 0xcd, 0x54, 0x0c, 0x58, 0xe1, 0x04, 0x6b, 0xd1, 0x16,
-  0x5b, 0x21, 0x3a, 0xc3, 0x6a, 0xf7, 0xae, 0xb3, 0x8d, 0x47, 0xd9, 0x16, 0x6c, 0xb1, 0x64, 0xe3,
-  0x90, 0xbe, 0x82, 0x5b, 0xfc, 0x85, 0xd8, 0x0c, 0x31, 0x5b, 0xbc, 0x1b, 0x9b, 0xc8, 0x15, 0x3c,
-  0x50, 0x85, 0xcd, 0x8d, 0x88, 0x28, 0x0f, 0xf4, 0x95, 0x72, 0xaf, 0xe6, 0x01, 0x79, 0x39, 0x46,
-  0xd1, 0x6c, 0xa8, 0xa8, 0x30, 0x2e, 0x82, 0x99, 0x50, 0x46, 0x7d, 0x93, 0x35, 0xe5, 0xc9, 0x9f,
-  0x53, 0x92, 0x8d, 0x9d, 0x52, 0x18, 0x6c, 0x87, 0x2e, 0x84, 0xd1, 0xfe, 0xb5, 0x91, 0x37, 0xed,
-  0xc2, 0x10, 0x65, 0xd2, 0x26, 0x74, 0xbb, 0xf2, 0x32, 0xda, 0x02, 0x8d, 0x15, 0xef, 0x61, 0x0c,
-  0xf9, 0xc0, 0x26, 0x84, 0xa2, 0x47, 0xbf, 0xec, 0xbc, 0xfa, 0xc6, 0x3e, 0x10, 0xfd, 0x38, 0x3f,
-  0x02, 0xd1, 0x86, 0x73, 0x14, 0x10, 0xbd, 0x38, 0x58, 0xff, 0xf3, 0xc6, 0x61, 0x1b, 0x2c, 0xd5,
-  0xbf, 0x94, 0x21, 0x58, 0x26, 0x92, 0xf5, 0x01, 0x5f, 0xce, 0x08, 0x3c, 0x13, 0xa9, 0xe1, 0x7b,
-  0x1d, 0x41, 0x82, 0xfc, 0x78, 0xcf, 0xbf, 0xbf, 0xff, 0x82, 0x26, 0xfc, 0x81, 0x85, 0x0e, 0x3f,
-  0x68, 0x37, 0x00, 0x76, 0x03, 0x08, 0xa1, 0xe0, 0x82, 0x0a, 0x0a, 0x84, 0xa0, 0x1f, 0x3f, 0xe8,
-  0x80, 0xc5, 0x1f, 0x26, 0x0c, 0x80, 0x45, 0x1f, 0x42, 0x0c, 0xe4, 0x43, 0x12, 0x03, 0x78, 0xc1,
-  0x07, 0x1f, 0x10, 0x7d, 0x28, 0x5e, 0x12, 0x3e, 0x0c, 0x24, 0x44, 0x1f, 0x3a, 0xfc, 0x37, 0x50,
-  0x40, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x03, 0x00, 0x03, 0x00, 0x2c, 0x0d, 0x00, 0x18, 0x00, 0x22,
-  0x00, 0x2b, 0x00, 0x00, 0x08, 0xff, 0x00, 0x07, 0x08, 0x1c, 0x48, 0x70, 0xa0, 0x30, 0x67, 0x82,
-  0x94, 0x08, 0x72, 0xb6, 0xac, 0xa0, 0xc3, 0x87, 0x0f, 0x9d, 0x21, 0x52, 0xd1, 0xa2, 0xa2, 0x45,
-  0x60, 0xce, 0x00, 0x40, 0xdc, 0x68, 0x30, 0x8a, 0x45, 0x17, 0x5c, 0xb8, 0x08, 0xb4, 0x48, 0xa4,
-  0x21, 0xc7, 0x87, 0x84, 0xb8, 0x54, 0x64, 0x32, 0xa4, 0x49, 0x80, 0x21, 0x04, 0x2b, 0xae, 0x68,
-  0x76, 0xb2, 0xa0, 0x30, 0x95, 0x2a, 0x04, 0x4d, 0xb1, 0x52, 0x88, 0x89, 0x0b, 0x87, 0x2d, 0x5c,
-  0xd0, 0xac, 0x39, 0x60, 0x11, 0x91, 0x16, 0x03, 0x96, 0x4c, 0x79, 0x62, 0x11, 0x29, 0x50, 0x2e,
-  0xc1, 0x88, 0x1a, 0x73, 0x3a, 0xc4, 0x49, 0xc5, 0x93, 0x2d, 0x0e, 0xd5, 0x0c, 0x56, 0x23, 0xe8,
-  0x8a, 0xab, 0x35, 0x5b, 0xd4, 0x68, 0x72, 0xd2, 0x19, 0xd2, 0x25, 0x45, 0x88, 0x0e, 0x6c, 0xe1,
-  0xec, 0xe4, 0x30, 0xa4, 0x86, 0x3c, 0xaa, 0x1d, 0xd0, 0x62, 0xd8, 0x49, 0x28, 0x48, 0xc1, 0xce,
-  0x05, 0xc6, 0x11, 0x40, 0x8d, 0xb9, 0x0e, 0xa1, 0xf4, 0xfd, 0x0b, 0x98, 0xa0, 0x60, 0x8e, 0x89,
-  0x0a, 0x13, 0x44, 0xe4, 0x56, 0xf1, 0x40, 0xad, 0x1c, 0xcd, 0x3a, 0x6e, 0x91, 0x96, 0x63, 0xb0,
-  0xc3, 0x85, 0xb9, 0x68, 0x3c, 0xb9, 0x44, 0x31, 0x5b, 0xa2, 0x00, 0x18, 0x03, 0x8e, 0xe2, 0xb8,
-  0x74, 0xcd, 0x15, 0x6a, 0x85, 0x29, 0x96, 0x6c, 0xfa, 0x24, 0x69, 0x8e, 0x76, 0x4b, 0x37, 0x73,
-  0xfa, 0x50, 0x05, 0x21, 0xd3, 0x00, 0x30, 0x3b, 0xe4, 0xdb, 0x1a, 0xf2, 0x43, 0xdf, 0xa5, 0x59,
-  0x17, 0xa4, 0xdc, 0x5a, 0xe0, 0xa1, 0x1e, 0x0e, 0x81, 0x17, 0x17, 0xc6, 0x9c, 0x79, 0xd4, 0xe2,
-  0xd0, 0x6b, 0x02, 0x01, 0x43, 0xbd, 0x3a, 0x75, 0x20, 0xd0, 0xbb, 0x40, 0x8c, 0x04, 0xfd, 0x05,
-  0x44, 0x30, 0xd0, 0x51, 0xb0, 0x65, 0x71, 0xc8, 0xc6, 0x4b, 0xf4, 0x3b, 0x0e, 0xe9, 0x6c, 0x2e,
-  0xae, 0xa3, 0x4e, 0x19, 0x81, 0x65, 0xe6, 0xf8, 0x89, 0x2e, 0xb0, 0x84, 0x8d, 0x31, 0x63, 0x8e,
-  0x98, 0xa0, 0xcf, 0xbf, 0xbf, 0xff, 0x87, 0x25, 0x64, 0x81, 0x85, 0x0e, 0x3f, 0xcc, 0xd7, 0x47,
-  0x1f, 0x03, 0x08, 0x21, 0xc4, 0x00, 0x27, 0x34, 0xe8, 0x60, 0x82, 0x0b, 0x1e, 0x38, 0x80, 0x1f,
-  0x3f, 0xe8, 0x80, 0x45, 0x16, 0x25, 0x0c, 0x90, 0x85, 0x1f, 0x42, 0x9c, 0x00, 0x04, 0x0a, 0x3e,
-  0x24, 0xe1, 0x05, 0x1f, 0x7c, 0xd4, 0x44, 0xa2, 0x17, 0x49, 0xf8, 0x80, 0x02, 0x10, 0x27, 0x08,
-  0xe1, 0x47, 0x16, 0xa0, 0x01, 0x20, 0xe3, 0x8c, 0x6a, 0x05, 0x04, 0x00, 0x21, 0xf9, 0x04, 0x05,
-  0x04, 0x00, 0x03, 0x00, 0x2c, 0x0c, 0x00, 0x17, 0x00, 0x24, 0x00, 0x2c, 0x00, 0x00, 0x08, 0xff,
-  0x00, 0x07, 0x08, 0x1c, 0x48, 0x90, 0xe0, 0x32, 0x67, 0x82, 0x12, 0x3a, 0x5b, 0x56, 0xb0, 0xa1,
-  0xc3, 0x87, 0x00, 0x9c, 0x21, 0x6a, 0x41, 0xb1, 0xa2, 0x0a, 0x60, 0x43, 0x16, 0x3d, 0xdc, 0x58,
-  0x70, 0xd9, 0x44, 0x8a, 0x03, 0x5c, 0xb8, 0x18, 0x48, 0x91, 0x49, 0x33, 0x8e, 0x1c, 0x9b, 0xad,
-  0x68, 0x31, 0x80, 0xc9, 0x12, 0x2a, 0x53, 0x86, 0x14, 0x6c, 0xd1, 0xc3, 0x19, 0x4a, 0x87, 0xcd,
-  0x5c, 0xb4, 0x70, 0xa1, 0x64, 0x0a, 0x15, 0x41, 0x51, 0xb8, 0x34, 0x6c, 0xa1, 0xc2, 0xe6, 0xcd,
-  0x81, 0xc2, 0x56, 0xba, 0x90, 0x32, 0xa5, 0x90, 0x4e, 0x90, 0x43, 0x6b, 0x30, 0x3c, 0x3a, 0x20,
-  0x0a, 0x4b, 0x2e, 0x54, 0x9c, 0xb0, 0x44, 0xd9, 0x02, 0x11, 0xd5, 0x66, 0x5b, 0x07, 0x40, 0xbd,
-  0xd9, 0xe2, 0xe4, 0xcd, 0x61, 0x2c, 0xa5, 0x14, 0xa2, 0x2a, 0xb0, 0xc5, 0xb0, 0x9b, 0xc1, 0x6a,
-  0x08, 0x2c, 0xe2, 0x84, 0xad, 0xc0, 0x1a, 0x00, 0x50, 0x82, 0x6d, 0x1b, 0x96, 0xaa, 0x0b, 0x61,
-  0x28, 0x9d, 0xf5, 0xb5, 0x2b, 0xd6, 0xec, 0xc6, 0x63, 0x83, 0xed, 0xaa, 0x30, 0xec, 0x90, 0x02,
-  0xbe, 0xc4, 0x6c, 0x55, 0x10, 0x42, 0xb9, 0x4c, 0x05, 0x61, 0x82, 0x2e, 0x9a, 0xa0, 0x04, 0x00,
-  0xe5, 0xf2, 0x40, 0x60, 0x47, 0x0f, 0x79, 0x16, 0xb8, 0xe4, 0xe8, 0xb2, 0x1e, 0x9e, 0x6b, 0x68,
-  0x0e, 0xed, 0xd9, 0x18, 0xdb, 0x60, 0x44, 0x08, 0x23, 0xca, 0x6b, 0x97, 0x09, 0xdb, 0xd8, 0xa9,
-  0x47, 0xeb, 0x76, 0xd8, 0xc2, 0xa8, 0x67, 0x00, 0xa0, 0x39, 0x46, 0xd9, 0x3d, 0xc0, 0x37, 0x6f,
-  0xc6, 0x9e, 0x9b, 0xa0, 0x7e, 0x88, 0x97, 0xf8, 0x00, 0xaf, 0x0f, 0x7f, 0x39, 0x1f, 0xe0, 0xfa,
-  0xa1, 0x71, 0xdd, 0x8b, 0xde, 0x4e, 0xe7, 0x18, 0xac, 0x89, 0x77, 0xef, 0x1a, 0xb7, 0x8b, 0x78,
-  0xe7, 0x98, 0x64, 0x87, 0xf9, 0xf3, 0xe6, 0x93, 0x6c, 0xdf, 0xd3, 0xa6, 0xbd, 0xfb, 0xf6, 0x61,
-  0xb6, 0x77, 0x79, 0xff, 0x5e, 0xcc, 0xf6, 0x17, 0xf4, 0xdd, 0x83, 0xd9, 0x8e, 0x65, 0x4d, 0xc3,
-  0x34, 0x3f, 0x88, 0xe7, 0x45, 0x1a, 0x04, 0xa1, 0x11, 0xc4, 0x78, 0x03, 0xf4, 0x31, 0xc6, 0x1c,
-  0x72, 0x88, 0x21, 0x04, 0x82, 0x10, 0x46, 0x28, 0xa1, 0x40, 0x00, 0x64, 0xf1, 0x87, 0x0e, 0x3f,
-  0xf8, 0x91, 0xe0, 0x00, 0x42, 0x3c, 0x78, 0xc2, 0x09, 0x0d, 0x7d, 0xc8, 0xe1, 0x83, 0x7d, 0x0c,
-  0x80, 0x4b, 0x80, 0x7f, 0x64, 0x41, 0xdb, 0x0f, 0x7d, 0x9c, 0x00, 0x04, 0x0a, 0x3e, 0x24, 0xe1,
-  0x05, 0x1f, 0x76, 0xf1, 0xe1, 0x45, 0x12, 0x3e, 0xa0, 0x00, 0xc4, 0x09, 0x7d, 0x04, 0x78, 0x13,
-  0x00, 0xb4, 0x15, 0x04, 0xe4, 0x51, 0x01, 0x01, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x06, 0x00, 0x07,
-  0x00, 0x2c, 0x0c, 0x00, 0x16, 0x00, 0x24, 0x00, 0x2d, 0x00, 0x00, 0x08, 0xff, 0x00, 0x0f, 0x08,
-  0x1c, 0x48, 0xb0, 0xa0, 0x40, 0x00, 0x06, 0x13, 0x2a, 0x5c, 0x78, 0xa0, 0xd9, 0x21, 0x44, 0x30,
-  0x54, 0xc0, 0x40, 0x74, 0xa8, 0x19, 0xc3, 0x8b, 0x04, 0x9b, 0x21, 0x6a, 0x61, 0xb0, 0x45, 0x0b,
-  0x60, 0xce, 0x30, 0x2e, 0x04, 0x70, 0x48, 0x85, 0x40, 0x17, 0x4e, 0x94, 0x38, 0x29, 0xd8, 0x62,
-  0x58, 0x30, 0x91, 0x05, 0x17, 0xfd, 0xe2, 0xb8, 0x42, 0x50, 0x93, 0x00, 0xc2, 0x94, 0x74, 0x44,
-  0xd4, 0x04, 0xe6, 0xc0, 0x99, 0x07, 0x88, 0x50, 0xa9, 0x22, 0x88, 0x89, 0xc7, 0x84, 0x2d, 0x10,
-  0x21, 0x84, 0xc9, 0x88, 0x23, 0x93, 0x26, 0x56, 0xb8, 0x70, 0x64, 0xd8, 0xc2, 0x18, 0x4c, 0x61,
-  0x35, 0x06, 0x2e, 0x59, 0x01, 0xb3, 0x86, 0x30, 0x91, 0x87, 0x04, 0x32, 0x71, 0xe1, 0x53, 0x60,
-  0xd8, 0x8b, 0x8b, 0xa0, 0x1c, 0x70, 0x51, 0xe5, 0x49, 0xd9, 0x03, 0x50, 0x96, 0x2e, 0x6c, 0xc6,
-  0xd1, 0x85, 0x20, 0xae, 0x65, 0x55, 0x2c, 0xbb, 0x38, 0xe4, 0x2d, 0xcb, 0x90, 0x0c, 0xad, 0xfa,
-  0x25, 0x08, 0x58, 0x21, 0x00, 0xc1, 0x83, 0x0f, 0xb4, 0x28, 0x9c, 0x90, 0x44, 0xe2, 0x81, 0x8b,
-  0x2f, 0xd2, 0x7d, 0xac, 0xf7, 0x62, 0xb0, 0xac, 0x89, 0xe3, 0x62, 0x1c, 0xf6, 0xf8, 0xac, 0x64,
-  0x93, 0x83, 0xbf, 0x8a, 0xe4, 0xfc, 0xb8, 0xb4, 0x69, 0xd3, 0x2f, 0x4f, 0xab, 0x2e, 0xc8, 0x68,
-  0x35, 0x43, 0x26, 0x17, 0x11, 0x99, 0x5e, 0x72, 0x91, 0x71, 0x68, 0xd0, 0x0a, 0x53, 0x97, 0x4e,
-  0xb4, 0x50, 0xf6, 0x69, 0xcf, 0x06, 0x5b, 0xaf, 0x26, 0x4b, 0x30, 0xab, 0xdc, 0xd3, 0x8b, 0x82,
-  0x29, 0x57, 0xee, 0xba, 0x39, 0x43, 0x3e, 0x0a, 0xbd, 0xac, 0xb6, 0xa3, 0x10, 0xcf, 0x6a, 0x31,
-  0x0a, 0xf7, 0xac, 0x06, 0xa3, 0xf0, 0xcb, 0x6a, 0x3f, 0x68, 0x0c, 0x9a, 0x3c, 0x11, 0xe2, 0xfa,
-  0x88, 0x19, 0x82, 0x65, 0x76, 0x38, 0x47, 0xb1, 0x47, 0x8d, 0x1a, 0x3d, 0x49, 0x9c, 0x0f, 0x04,
-  0x70, 0x5c, 0xbe, 0x7d, 0xd7, 0x58, 0x14, 0x9e, 0x60, 0xb8, 0x9f, 0xa0, 0x9f, 0x03, 0x3a, 0xe4,
-  0x27, 0x50, 0x09, 0x7e, 0x90, 0x77, 0x80, 0x0f, 0xa7, 0x21, 0x78, 0x80, 0x10, 0x7e, 0x94, 0x50,
-  0x56, 0x09, 0x10, 0x42, 0x78, 0x10, 0x46, 0x01, 0x01, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x04, 0x00,
-  0x0d, 0x00, 0x2c, 0x0c, 0x00, 0x16, 0x00, 0x24, 0x00, 0x2d, 0x00, 0x00, 0x08, 0xff, 0x00, 0x1b,
-  0x08, 0x1c, 0x48, 0xb0, 0xa0, 0xc0, 0x00, 0x06, 0x13, 0x2a, 0x5c, 0xd8, 0x20, 0x40, 0x09, 0x42,
-  0x45, 0x8a, 0x34, 0x23, 0xb4, 0x08, 0x21, 0xc3, 0x8b, 0x03, 0x03, 0x2c, 0x3b, 0x54, 0xa3, 0x60,
-  0x8d, 0x61, 0xcd, 0x2c, 0x62, 0x4c, 0x18, 0x20, 0xd8, 0x21, 0x15, 0x0d, 0x5a, 0xa8, 0x6c, 0x41,
-  0x50, 0xc5, 0x2f, 0x61, 0x22, 0x47, 0x1e, 0x14, 0x46, 0x24, 0xa5, 0x8b, 0x27, 0x45, 0xa8, 0x08,
-  0x32, 0xc8, 0x25, 0xa4, 0xcc, 0x81, 0xc2, 0xb8, 0xa4, 0x34, 0x44, 0x65, 0x4a, 0x11, 0x25, 0x35,
-  0x0d, 0xae, 0x20, 0x14, 0x93, 0x61, 0x06, 0x1d, 0x35, 0x5b, 0x28, 0x19, 0x34, 0x44, 0x28, 0x43,
-  0x2e, 0x4d, 0x64, 0x0e, 0x00, 0x23, 0x70, 0xc5, 0x94, 0x42, 0x32, 0x87, 0x35, 0x55, 0x28, 0xcc,
-  0x45, 0xca, 0x16, 0x2b, 0x7e, 0xaa, 0x58, 0x86, 0x31, 0xc0, 0xa1, 0x94, 0x3b, 0x7f, 0x0a, 0x34,
-  0x36, 0xb6, 0x60, 0x00, 0x28, 0x29, 0xad, 0x3c, 0x91, 0xdb, 0x20, 0x51, 0x5d, 0x82, 0xc2, 0x50,
-  0xf2, 0x1d, 0xa8, 0x22, 0x2b, 0xc3, 0x66, 0x83, 0x09, 0xba, 0x60, 0xbb, 0x30, 0x43, 0xae, 0xc4,
-  0x03, 0x5d, 0x10, 0x5a, 0x08, 0xe0, 0x1d, 0xe4, 0xc8, 0xbd, 0x2e, 0x06, 0xbe, 0xcc, 0x22, 0xd8,
-  0xc5, 0x00, 0x89, 0x2e, 0x23, 0xfa, 0x4b, 0xd0, 0xd8, 0xe5, 0x25, 0x23, 0x85, 0xf5, 0x48, 0xbc,
-  0xc2, 0x30, 0xc6, 0xb7, 0x83, 0x51, 0xcb, 0x5c, 0x74, 0xb9, 0xf6, 0x45, 0xd7, 0xb6, 0x73, 0x17,
-  0x74, 0x86, 0x51, 0x30, 0xe4, 0x00, 0x88, 0x2e, 0x46, 0xb1, 0xcd, 0xfb, 0xb0, 0xed, 0x60, 0x1d,
-  0x15, 0x42, 0x01, 0x90, 0x3b, 0xb8, 0xc2, 0x5f, 0xba, 0x65, 0x27, 0x2c, 0x6e, 0x9b, 0xb9, 0x6f,
-  0x81, 0xab, 0x49, 0x0f, 0x0e, 0xd6, 0xa4, 0x7b, 0x77, 0xcf, 0xba, 0xc3, 0x63, 0x5c, 0x4c, 0xa2,
-  0xd0, 0x47, 0xf8, 0x30, 0x0a, 0xd1, 0xeb, 0x8e, 0xa4, 0x70, 0x4c, 0xf8, 0x23, 0x0a, 0x5f, 0x84,
-  0xff, 0xe3, 0xc6, 0xe0, 0x1a, 0x2c, 0xe2, 0x7d, 0x54, 0x22, 0x98, 0xc6, 0x8b, 0x78, 0x81, 0x3f,
-  0x44, 0x62, 0x87, 0x1d, 0x5d, 0xf8, 0xf1, 0x1f, 0x41, 0x01, 0x68, 0x77, 0xe0, 0x82, 0x97, 0x05,
-  0x60, 0xc2, 0x1f, 0xf8, 0xe1, 0x52, 0x90, 0x10, 0x0c, 0x51, 0x48, 0x90, 0x84, 0x58, 0xfc, 0x61,
-  0x02, 0x42, 0x01, 0xfc, 0xd0, 0x87, 0x40, 0x28, 0xe4, 0x16, 0x62, 0x03, 0x7d, 0xfc, 0xa0, 0x60,
-  0x43, 0x03, 0x01, 0xa0, 0xa2, 0x8a, 0x07, 0x61, 0x14, 0x10, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x03,
-  0x00, 0x06, 0x00, 0x2c, 0x0c, 0x00, 0x17, 0x00, 0x24, 0x00, 0x2c, 0x00, 0x00, 0x08, 0xff, 0x00,
-  0x0d, 0x08, 0x1c, 0x48, 0x90, 0x60, 0x80, 0x83, 0x08, 0x03, 0x14, 0x5c, 0xc8, 0xb0, 0xa1, 0x81,
-  0x84, 0x10, 0x0f, 0x3a, 0x9c, 0x68, 0xf0, 0xa0, 0xb0, 0x25, 0x86, 0x12, 0x71, 0x49, 0x64, 0x68,
-  0xc9, 0x32, 0x84, 0x14, 0x1d, 0x1e, 0x6c, 0x32, 0xcc, 0x40, 0x8b, 0x93, 0x2d, 0x06, 0xaa, 0xf8,
-  0xf5, 0x51, 0x61, 0xc8, 0x82, 0x07, 0x9b, 0x71, 0x39, 0xb9, 0xe2, 0xc9, 0x92, 0x27, 0x05, 0x7b,
-  0x30, 0x92, 0xf8, 0xd2, 0xc0, 0x08, 0x0a, 0x01, 0x9c, 0xf5, 0x68, 0xe1, 0x42, 0x50, 0x95, 0x2a,
-  0x56, 0x0a, 0x2d, 0x54, 0x61, 0x8c, 0x67, 0x48, 0x10, 0x24, 0x9a, 0x0d, 0xe5, 0x42, 0x48, 0x58,
-  0x21, 0x17, 0x0e, 0x55, 0x38, 0x73, 0x19, 0x32, 0x40, 0x30, 0x26, 0x02, 0x8b, 0x58, 0xe1, 0x12,
-  0x72, 0x85, 0x30, 0xae, 0x13, 0x03, 0x18, 0x33, 0xd9, 0x82, 0xc9, 0x8a, 0x9e, 0x87, 0xd0, 0x3a,
-  0x5c, 0xf4, 0x96, 0xc9, 0x92, 0x9e, 0x02, 0x6b, 0x04, 0xeb, 0xda, 0x4c, 0x60, 0xa1, 0x22, 0x78,
-  0x05, 0x36, 0x93, 0xbb, 0x50, 0x6d, 0xe0, 0x82, 0x82, 0x08, 0x0f, 0x04, 0x60, 0x20, 0x43, 0xc9,
-  0xc3, 0x03, 0x87, 0x29, 0x16, 0xb8, 0x21, 0x1e, 0x84, 0x5f, 0x90, 0x23, 0x4f, 0x1e, 0x18, 0xe0,
-  0x50, 0x66, 0x81, 0x71, 0x43, 0xde, 0xfd, 0x3c, 0xe4, 0x25, 0xa1, 0xcf, 0x2a, 0x96, 0xbd, 0x0c,
-  0x00, 0x16, 0x32, 0xa2, 0xcd, 0x05, 0x9d, 0x65, 0x96, 0xdd, 0x33, 0x00, 0xa2, 0xc3, 0x51, 0x60,
-  0x33, 0x24, 0xdb, 0xb3, 0x35, 0xe4, 0xb7, 0x9f, 0xf1, 0xaa, 0x08, 0xd9, 0x37, 0xf8, 0x63, 0x87,
-  0xc7, 0x3f, 0xab, 0xce, 0x4a, 0x25, 0xb8, 0x40, 0xdb, 0x0e, 0x5f, 0x3b, 0x17, 0x28, 0xc8, 0x61,
-  0xf5, 0xe9, 0x06, 0x8a, 0x33, 0xd4, 0xee, 0xbc, 0xf3, 0x42, 0x17, 0x6b, 0xb1, 0x0f, 0x7f, 0x6c,
-  0x42, 0xa5, 0x7c, 0xf9, 0x26, 0xe2, 0xd3, 0xbf, 0x14, 0x02, 0xa6, 0xbd, 0xfb, 0xf6, 0x42, 0xd2,
-  0xef, 0x68, 0x38, 0x5f, 0x7c, 0x10, 0x36, 0xf8, 0xf3, 0xe3, 0xb7, 0x91, 0xde, 0x8f, 0x01, 0xfd,
-  0xf9, 0xc5, 0x27, 0x5e, 0x00, 0x62, 0x2c, 0x14, 0x86, 0x6e, 0x81, 0x99, 0x10, 0x06, 0x41, 0x7b,
-  0x64, 0xa1, 0xde, 0x73, 0x27, 0xec, 0xb0, 0x03, 0x10, 0x08, 0x3e, 0x68, 0xe1, 0x85, 0xe9, 0x01,
-  0x90, 0xc5, 0x1f, 0x58, 0xe8, 0xf0, 0x83, 0x1f, 0x7e, 0xf4, 0x21, 0xa2, 0x10, 0x24, 0x96, 0x68,
-  0xa2, 0x88, 0x7d, 0x80, 0xf8, 0x83, 0x0e, 0x58, 0xfc, 0x91, 0x05, 0x63, 0x02, 0x01, 0xf0, 0x43,
-  0x1f, 0x27, 0x00, 0x81, 0x82, 0x0f, 0x3e, 0x24, 0xe1, 0x45, 0x4f, 0x5e, 0x24, 0x81, 0x23, 0x0a,
-  0x40, 0x9c, 0xd0, 0xc7, 0x0f, 0x30, 0x76, 0x95, 0xd0, 0x43, 0x20, 0x85, 0x14, 0x10, 0x00, 0x21,
-  0xf9, 0x04, 0x05, 0x03, 0x00, 0x10, 0x00, 0x2c, 0x0d, 0x00, 0x17, 0x00, 0x22, 0x00, 0x2c, 0x00,
-  0x00, 0x08, 0xff, 0x00, 0x21, 0x08, 0x1c, 0x48, 0x90, 0x02, 0x08, 0x82, 0x08, 0x13, 0x2a, 0x5c,
-  0x28, 0x30, 0xc3, 0x00, 0x86, 0x10, 0x23, 0x12, 0x0c, 0x40, 0xb1, 0x62, 0x45, 0x89, 0x11, 0x2d,
-  0x02, 0x10, 0x46, 0x45, 0x18, 0x00, 0x8b, 0x18, 0x15, 0x56, 0x6c, 0x36, 0xac, 0x46, 0x8b, 0x16,
-  0x10, 0x6a, 0x44, 0x71, 0xb6, 0x88, 0x62, 0x48, 0x0a, 0x1b, 0x04, 0x52, 0xa4, 0x82, 0xe8, 0xa4,
-  0x4d, 0x82, 0x4c, 0x9a, 0xb9, 0xc4, 0x48, 0x02, 0x02, 0xc5, 0x22, 0x2b, 0x5a, 0xb8, 0x78, 0x52,
-  0x44, 0xd8, 0x10, 0x84, 0x2a, 0x8c, 0xed, 0x94, 0x48, 0xb1, 0x99, 0x8b, 0x16, 0x4c, 0x08, 0x35,
-  0x59, 0x12, 0x85, 0x8b, 0x42, 0x41, 0x4b, 0x21, 0x06, 0x10, 0xb6, 0x42, 0x60, 0x93, 0x21, 0x5d,
-  0x19, 0xaa, 0xd0, 0xc9, 0x34, 0xc0, 0xaf, 0x93, 0x44, 0x94, 0x60, 0x24, 0x92, 0x55, 0x24, 0x21,
-  0x15, 0x2d, 0x9c, 0x58, 0xc5, 0x38, 0x36, 0x40, 0x46, 0xb5, 0x10, 0x84, 0x45, 0x09, 0x09, 0xe1,
-  0x90, 0xdd, 0x84, 0x00, 0x32, 0xc8, 0x44, 0x24, 0x70, 0x6e, 0xc8, 0x44, 0x7f, 0x11, 0x22, 0x88,
-  0x27, 0xb3, 0x06, 0x5f, 0x82, 0x35, 0x4a, 0x44, 0x2c, 0xc1, 0xe2, 0xf1, 0x40, 0x16, 0x8b, 0x32,
-  0x3a, 0xb6, 0x9c, 0x12, 0x40, 0xc6, 0xbd, 0x9c, 0x11, 0x25, 0x66, 0xb8, 0x84, 0x33, 0x04, 0x41,
-  0x18, 0x85, 0xf5, 0xb0, 0xec, 0x42, 0x58, 0xc8, 0x43, 0x96, 0x87, 0xf1, 0x6d, 0xc2, 0x84, 0xaf,
-  0x61, 0xd3, 0x10, 0x57, 0x10, 0xe2, 0xdc, 0x6c, 0x35, 0x44, 0xdf, 0xa6, 0x8d, 0x45, 0x84, 0x8d,
-  0x3b, 0xd8, 0x6d, 0x84, 0x2b, 0x82, 0xe1, 0x16, 0x48, 0x5c, 0x61, 0x73, 0xdc, 0xcd, 0x18, 0x46,
-  0x5f, 0x0e, 0x21, 0xd8, 0x66, 0x84, 0x3d, 0x9a, 0x50, 0x17, 0xb8, 0x04, 0xb8, 0x40, 0x15, 0x8c,
-  0xb6, 0x0f, 0x83, 0x14, 0x66, 0xa5, 0x7c, 0x79, 0xd7, 0xe2, 0xd3, 0x43, 0xc4, 0xf2, 0xa5, 0xbd,
-  0xfb, 0xf6, 0x7f, 0xc4, 0x9f, 0x60, 0x43, 0xbf, 0x3e, 0xfd, 0x13, 0xe2, 0xe3, 0x2b, 0xfc, 0x21,
-  0x3e, 0x40, 0x9e, 0x84, 0x77, 0x8c, 0xb6, 0x1c, 0x10, 0x68, 0x10, 0x74, 0x86, 0x0f, 0xea, 0x05,
-  0x00, 0x04, 0x1e, 0x66, 0x98, 0x71, 0x87, 0x0f, 0x02, 0x6e, 0x17, 0xc0, 0x1f, 0x7f, 0x44, 0xa8,
-  0xde, 0x85, 0x18, 0x66, 0x28, 0x13, 0x00, 0x26, 0xfc, 0x81, 0x85, 0x0e, 0x3f, 0xe0, 0xe2, 0x87,
-  0x1f, 0x10, 0xf4, 0x61, 0xe2, 0x89, 0x28, 0x42, 0x30, 0x22, 0x2e, 0x3f, 0xe8, 0x80, 0xc5, 0x1f,
-  0x26, 0x7c, 0xe4, 0x13, 0x00, 0x3f, 0xf4, 0x21, 0xc4, 0x09, 0x40, 0xa0, 0xe0, 0x83, 0x0f, 0x49,
-  0x78, 0xe1, 0xc5, 0x42, 0x3e, 0x26, 0xb1, 0x23, 0x0a, 0x40, 0x00, 0x21, 0x44, 0x1f, 0x3f, 0xc8,
-  0xf8, 0x98, 0x85, 0x0c, 0x05, 0x04, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x07, 0x00, 0x0d, 0x00, 0x2c,
-  0x0d, 0x00, 0x17, 0x00, 0x21, 0x00, 0x2c, 0x00, 0x00, 0x08, 0xff, 0x00, 0x1b, 0x08, 0x1c, 0x48,
-  0x10, 0x04, 0x02, 0x82, 0x08, 0x13, 0x2a, 0x5c, 0xc8, 0xb0, 0xa1, 0xc3, 0x87, 0x10, 0x23, 0x0a,
-  0x0c, 0x40, 0x91, 0xa2, 0xc4, 0x81, 0x00, 0x14, 0x56, 0xdc, 0x58, 0x51, 0xe2, 0x83, 0x07, 0x04,
-  0x2b, 0x12, 0x5a, 0x72, 0xc8, 0xd0, 0x30, 0x41, 0xcd, 0x00, 0x58, 0x84, 0x98, 0x71, 0x20, 0xc5,
-  0x66, 0x88, 0x5a, 0xc8, 0x6c, 0x31, 0x90, 0x89, 0xb3, 0x95, 0x12, 0x29, 0x1a, 0x53, 0xd1, 0x62,
-  0xc5, 0x93, 0x21, 0x87, 0x10, 0x1a, 0x0a, 0x16, 0x20, 0x67, 0x80, 0x43, 0x32, 0x0b, 0x35, 0x19,
-  0x69, 0x28, 0x21, 0x22, 0xa2, 0x11, 0x03, 0x0c, 0x69, 0xd0, 0x62, 0x89, 0xb0, 0xa6, 0x0c, 0x87,
-  0x15, 0x7d, 0x18, 0x40, 0xd8, 0x8a, 0x16, 0x2a, 0xa4, 0x30, 0x79, 0xd8, 0x6c, 0x6b, 0xc3, 0xa3,
-  0x0d, 0x56, 0x10, 0x89, 0x18, 0xc5, 0x2c, 0xc1, 0x0c, 0x04, 0x01, 0xd4, 0x68, 0x20, 0x48, 0x4a,
-  0x44, 0x15, 0xc2, 0x12, 0x82, 0x88, 0x47, 0x90, 0x90, 0xc0, 0x15, 0x2b, 0x24, 0x16, 0x71, 0x9b,
-  0x30, 0x80, 0xb3, 0x8b, 0x03, 0x87, 0x10, 0x4e, 0x78, 0x18, 0x71, 0x83, 0x25, 0x8b, 0x11, 0x5a,
-  0x71, 0xdc, 0xa0, 0x71, 0x43, 0x61, 0x2a, 0x10, 0xab, 0xf0, 0xeb, 0x30, 0x00, 0x30, 0xc4, 0x5c,
-  0x5a, 0x3a, 0xb4, 0x1c, 0x71, 0x49, 0x44, 0x00, 0x6b, 0x23, 0x32, 0x59, 0x44, 0xd9, 0x61, 0x8d,
-  0x66, 0x8e, 0x5d, 0x3c, 0x2c, 0x42, 0xd9, 0x74, 0x43, 0x41, 0xad, 0x03, 0xa4, 0x56, 0xc8, 0x64,
-  0x4a, 0xeb, 0xca, 0x0c, 0x6d, 0xb7, 0x0e, 0x26, 0x3b, 0x21, 0xde, 0xdf, 0x0d, 0x02, 0x20, 0x52,
-  0x98, 0x28, 0xf2, 0x45, 0xd8, 0x8c, 0x91, 0x13, 0x2c, 0x42, 0x9d, 0x3a, 0x15, 0xe9, 0xd8, 0x3b,
-  0x47, 0xea, 0xc2, 0xbd, 0x7b, 0x72, 0xe9, 0x00, 0xde, 0xb4, 0x6a, 0x19, 0x4f, 0xde, 0x8d, 0xf3,
-  0x9c, 0x78, 0xc8, 0x93, 0xaf, 0x73, 0x5e, 0xe2, 0x8e, 0x34, 0xf0, 0xe3, 0x7f, 0xc9, 0x6e, 0x22,
-  0x0f, 0xc1, 0x3b, 0x59, 0xb2, 0x37, 0x00, 0x70, 0x24, 0x4c, 0x98, 0x17, 0x25, 0xe8, 0xe7, 0x52,
-  0x7b, 0x02, 0x16, 0x68, 0x20, 0x72, 0x01, 0x00, 0x60, 0xc2, 0x1f, 0x58, 0xe8, 0xf0, 0xc3, 0x0f,
-  0x0d, 0xf8, 0x21, 0x61, 0x42, 0x12, 0xfa, 0xd1, 0xc0, 0x83, 0x3a, 0x60, 0xf1, 0x87, 0x09, 0x2a,
-  0x4d, 0x54, 0x02, 0x2e, 0x7d, 0x08, 0x71, 0x02, 0x10, 0x28, 0x34, 0xe0, 0x83, 0x0f, 0x49, 0x24,
-  0xe1, 0xc5, 0x8a, 0x2c, 0xa6, 0x78, 0x62, 0x03, 0x28, 0x00, 0x71, 0x82, 0x10, 0x7d, 0xe0, 0x52,
-  0x02, 0x81, 0xc8, 0x05, 0x04, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x03, 0x00, 0x0a, 0x00, 0x2c, 0x0c,
-  0x00, 0x15, 0x00, 0x21, 0x00, 0x2d, 0x00, 0x00, 0x08, 0xff, 0x00, 0x15, 0x08, 0x1c, 0x48, 0xb0,
-  0xe0, 0xc0, 0x0c, 0x08, 0x0c, 0x2a, 0x5c, 0x38, 0x70, 0x00, 0x80, 0x82, 0x00, 0x06, 0x30, 0x9c,
-  0x58, 0x10, 0x03, 0xc5, 0x8b, 0x18, 0x33, 0x6a, 0xdc, 0xc8, 0xb1, 0xe3, 0xc2, 0x08, 0x12, 0x3d,
-  0x52, 0x8c, 0xf0, 0x6e, 0x61, 0x80, 0x00, 0xc1, 0x9a, 0x04, 0x3b, 0x19, 0x40, 0xe4, 0xc0, 0x00,
-  0xc2, 0x0e, 0x25, 0x52, 0x21, 0x10, 0xca, 0xa1, 0x66, 0x2d, 0x45, 0x4e, 0x39, 0xd4, 0xa3, 0x45,
-  0x0b, 0x17, 0x2e, 0x08, 0x46, 0x11, 0x96, 0x73, 0x63, 0x30, 0x27, 0x0a, 0x5c, 0x14, 0x52, 0x30,
-  0x65, 0x48, 0x41, 0x2e, 0x84, 0x8a, 0x62, 0x9c, 0x82, 0x48, 0x01, 0x17, 0x2b, 0x54, 0x0a, 0x71,
-  0x51, 0xc8, 0x45, 0x98, 0xc6, 0x00, 0x87, 0x14, 0xb4, 0xb0, 0x32, 0x24, 0x28, 0x43, 0x44, 0x52,
-  0x27, 0x0a, 0xeb, 0xd9, 0x82, 0x09, 0x4d, 0x8a, 0xce, 0x14, 0x66, 0x28, 0x08, 0x56, 0x01, 0x11,
-  0x8d, 0x51, 0xd2, 0x8e, 0x88, 0x37, 0xf0, 0x81, 0x82, 0x00, 0x89, 0xec, 0x2e, 0xc5, 0xd8, 0x23,
-  0xd8, 0xc5, 0x26, 0x1d, 0x55, 0x2c, 0xbb, 0xe8, 0xb5, 0x23, 0xa1, 0xc3, 0x89, 0x1f, 0x53, 0x04,
-  0x50, 0xa3, 0xa3, 0xe1, 0x8b, 0x4f, 0x38, 0xa2, 0xc5, 0xd8, 0x8c, 0x63, 0x5c, 0x8c, 0x01, 0xaa,
-  0x6a, 0x7c, 0x98, 0x91, 0x4a, 0x46, 0xb3, 0x2e, 0x17, 0xaa, 0xf8, 0xec, 0x39, 0x35, 0xc5, 0x28,
-  0x0c, 0x89, 0x90, 0xf6, 0xd8, 0x79, 0x21, 0x6b, 0x8f, 0x00, 0xa0, 0x28, 0x2c, 0xec, 0xda, 0x90,
-  0x42, 0xd1, 0xae, 0x2b, 0x13, 0xec, 0xe1, 0xba, 0xa0, 0x94, 0xe3, 0xc5, 0x93, 0x5f, 0xfc, 0x32,
-  0xa6, 0xb9, 0x73, 0x30, 0xc5, 0x03, 0xd8, 0x71, 0xf3, 0x86, 0x3a, 0x75, 0x3b, 0xc9, 0xc5, 0x18,
-  0xdc, 0x93, 0xdc, 0xc6, 0x99, 0xef, 0xe0, 0x8f, 0x24, 0x42, 0x0f, 0x30, 0x86, 0xa0, 0x98, 0xd9,
-  0xae, 0x03, 0xf8, 0xf8, 0xf2, 0xc5, 0x47, 0x5a, 0xe5, 0xf0, 0xe3, 0xcb, 0x9f, 0xff, 0xb2, 0x84,
-  0x02, 0x66, 0x58, 0x74, 0x28, 0xf8, 0x31, 0xd0, 0x8f, 0xff, 0xff, 0x03, 0xf1, 0xa7, 0x03, 0x16,
-  0xcc, 0x64, 0xb1, 0x88, 0x54, 0x01, 0xe8, 0x47, 0x10, 0x0a, 0x02, 0xf9, 0xa0, 0x40, 0x12, 0x10,
-  0x46, 0xa8, 0x80, 0x83, 0x0a, 0x30, 0xd8, 0x9f, 0x0e, 0x01, 0x04, 0x04, 0x00, 0x21, 0xf9, 0x04,
-  0x05, 0x04, 0x00, 0x07, 0x00, 0x2c, 0x0b, 0x00, 0x14, 0x00, 0x22, 0x00, 0x2e, 0x00, 0x00, 0x08,
-  0xff, 0x00, 0x0f, 0x08, 0x1c, 0x48, 0xb0, 0x60, 0x41, 0x00, 0x06, 0x13, 0x2a, 0x5c, 0x28, 0x90,
-  0x82, 0x07, 0x86, 0x10, 0x07, 0x02, 0x88, 0x97, 0x21, 0xa2, 0x45, 0x85, 0x0a, 0x2e, 0x6a, 0xdc,
-  0xc8, 0xb1, 0xa3, 0xc7, 0x8f, 0x09, 0x23, 0x3c, 0x04, 0x09, 0x71, 0x04, 0xc3, 0x26, 0xcd, 0xac,
-  0x58, 0x11, 0x46, 0xb2, 0xa0, 0x33, 0x44, 0x2a, 0x5a, 0x08, 0x6c, 0xc1, 0x64, 0x49, 0x30, 0x92,
-  0xc2, 0x9c, 0xc8, 0x74, 0xe1, 0x84, 0x08, 0x41, 0x2e, 0xcd, 0x3e, 0x12, 0xe2, 0x72, 0x80, 0xcb,
-  0x90, 0x2a, 0xc2, 0x96, 0x14, 0x54, 0x31, 0xa4, 0xa3, 0x30, 0xa2, 0x4e, 0x84, 0x15, 0x21, 0x22,
-  0xd3, 0xa0, 0x8a, 0xa0, 0x1b, 0xa3, 0x08, 0x24, 0x54, 0xa8, 0xaa, 0x42, 0x2e, 0x37, 0x2f, 0x36,
-  0xab, 0xea, 0xc2, 0xeb, 0x42, 0xa5, 0x06, 0x2b, 0x4a, 0x14, 0x68, 0xe8, 0x40, 0x94, 0x22, 0x17,
-  0x99, 0x18, 0x1c, 0x11, 0x8f, 0x20, 0x89, 0x03, 0x8b, 0x6a, 0x1c, 0x60, 0xa2, 0xd5, 0x62, 0x0b,
-  0x96, 0x11, 0x09, 0x79, 0xc4, 0x0a, 0x91, 0xf0, 0x46, 0xb8, 0x11, 0xa9, 0x0c, 0xb6, 0xb8, 0xa8,
-  0x07, 0xc7, 0xbf, 0x17, 0xfb, 0x6a, 0xf4, 0x79, 0xd1, 0x19, 0xc7, 0xa6, 0x2d, 0x17, 0x2e, 0xca,
-  0x9c, 0x50, 0xaf, 0x47, 0xcf, 0x9c, 0x43, 0x6b, 0x44, 0x24, 0xda, 0x20, 0xe2, 0xd2, 0x03, 0xf3,
-  0x2a, 0x6c, 0x92, 0x59, 0x32, 0x41, 0x60, 0xa1, 0x5d, 0x2c, 0x45, 0x5d, 0xa4, 0x36, 0xea, 0xdb,
-  0x10, 0xbf, 0x84, 0x9e, 0x73, 0xc0, 0x4d, 0xef, 0xde, 0xbc, 0x39, 0xef, 0x31, 0x98, 0x27, 0xf4,
-  0x11, 0x34, 0xc8, 0x93, 0xef, 0x10, 0x2d, 0x86, 0x60, 0x18, 0xd4, 0x7c, 0xba, 0x74, 0x09, 0x82,
-  0xbb, 0xba, 0xf5, 0xeb, 0x9c, 0x4d, 0x1c, 0xc0, 0x32, 0x10, 0x57, 0xc1, 0x3e, 0x7d, 0x0a, 0x7a,
-  0x14, 0x17, 0x88, 0xe5, 0x8f, 0x76, 0x83, 0x3f, 0x14, 0x26, 0x19, 0xe8, 0xc5, 0xcb, 0xc0, 0xf5,
-  0x06, 0xfb, 0xa4, 0x0f, 0x08, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x03, 0x00, 0x1f, 0x00, 0x2c, 0x0a,
-  0x00, 0x14, 0x00, 0x23, 0x00, 0x2e, 0x00, 0x00, 0x08, 0xff, 0x00, 0x3f, 0x08, 0x1c, 0x48, 0xb0,
-  0x60, 0xc1, 0x0c, 0x24, 0x0c, 0x2a, 0x5c, 0x48, 0x70, 0xc4, 0x08, 0x83, 0x0c, 0x18, 0x4a, 0x54,
-  0x18, 0x71, 0xa2, 0xc5, 0x8b, 0x17, 0x3d, 0x60, 0xdc, 0x78, 0x90, 0xa3, 0xc7, 0x8b, 0x0f, 0x3f,
-  0x62, 0x04, 0x00, 0xe1, 0x9d, 0xc8, 0x93, 0x04, 0x01, 0x34, 0x3b, 0x14, 0x85, 0x08, 0xa2, 0x43,
-  0xce, 0x82, 0x9d, 0x04, 0x41, 0xd0, 0x19, 0x93, 0x16, 0x2d, 0x08, 0xb6, 0x58, 0xb1, 0x64, 0x11,
-  0x4a, 0x00, 0x87, 0x72, 0x72, 0x51, 0x52, 0x44, 0x90, 0x4e, 0x44, 0xc2, 0x4e, 0x3e, 0x69, 0xe1,
-  0x42, 0x50, 0x15, 0x2b, 0x82, 0x9c, 0x14, 0x6c, 0xc1, 0xa4, 0xc9, 0x47, 0x63, 0x4c, 0xa5, 0x50,
-  0x71, 0x92, 0x53, 0x61, 0x8b, 0x28, 0x1e, 0x09, 0xf5, 0xf8, 0xe0, 0x62, 0x08, 0x97, 0x89, 0x2d,
-  0x9c, 0x71, 0x1c, 0xf6, 0x81, 0x0b, 0xd7, 0x8b, 0x88, 0x14, 0x66, 0x28, 0x18, 0xe0, 0x43, 0xb0,
-  0x1a, 0x1f, 0x04, 0x0d, 0xc1, 0xa8, 0x22, 0x29, 0xc1, 0x01, 0xf1, 0x08, 0x7a, 0xa8, 0xdb, 0x2c,
-  0xa7, 0x0b, 0x17, 0x1b, 0xd5, 0x5e, 0x54, 0xcc, 0xb1, 0xc5, 0x12, 0x8c, 0x8c, 0x39, 0x3e, 0xbe,
-  0x58, 0xe4, 0x63, 0x5a, 0x8c, 0xc2, 0xba, 0x6e, 0x54, 0x41, 0x68, 0x23, 0x30, 0x8f, 0x5c, 0x00,
-  0x6c, 0xdc, 0x2b, 0x99, 0x23, 0x00, 0x22, 0x1c, 0x65, 0x72, 0xec, 0x8c, 0x12, 0x23, 0x62, 0x89,
-  0x3d, 0x2a, 0x9f, 0x9c, 0xdc, 0x7a, 0x22, 0xea, 0x85, 0x4c, 0x7c, 0xb6, 0x8e, 0x5c, 0x90, 0x36,
-  0xca, 0x60, 0xaf, 0xa7, 0xfa, 0xad, 0x1d, 0xd7, 0x20, 0x94, 0xda, 0x03, 0x65, 0x23, 0xdf, 0x38,
-  0x7c, 0xb9, 0x73, 0x86, 0x91, 0xba, 0x48, 0x9f, 0xfe, 0xbc, 0x84, 0x9b, 0x36, 0xd8, 0xb3, 0xb7,
-  0x11, 0xbd, 0xfc, 0x8e, 0x41, 0x3a, 0xcf, 0xc1, 0xa8, 0x4c, 0x19, 0x4f, 0xfe, 0xcb, 0x73, 0x13,
-  0x78, 0x08, 0xda, 0xf9, 0xf3, 0xfc, 0x43, 0x89, 0x17, 0x7b, 0xf6, 0xec, 0x30, 0xd1, 0xbe, 0xbe,
-  0xfd, 0xfb, 0xf8, 0x17, 0x02, 0xc8, 0x22, 0x50, 0xc7, 0x8f, 0x0f, 0x7e, 0x0c, 0xd4, 0x47, 0x1f,
-  0x02, 0x0d, 0x38, 0x50, 0x80, 0x3f, 0xe8, 0x20, 0x50, 0x16, 0xdc, 0x11, 0xb4, 0x48, 0x80, 0x27,
-  0x0c, 0xe4, 0xc3, 0x07, 0x49, 0x08, 0xe4, 0x85, 0x17, 0x16, 0x62, 0x48, 0xe1, 0x07, 0x13, 0x0a,
-  0x14, 0xa1, 0x1f, 0x8b, 0x04, 0x04, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x07, 0x00, 0x0c, 0x00, 0x2c,
-  0x09, 0x00, 0x13, 0x00, 0x24, 0x00, 0x2f, 0x00, 0x00, 0x08, 0xff, 0x00, 0x19, 0x08, 0x1c, 0x48,
-  0xb0, 0xa0, 0x41, 0x06, 0x11, 0x0e, 0x2a, 0x5c, 0x28, 0x10, 0xc4, 0xc1, 0x08, 0x1e, 0x18, 0x4a,
-  0x2c, 0x08, 0xc1, 0xe1, 0xc4, 0x8b, 0x18, 0x19, 0x52, 0xc8, 0xc8, 0x91, 0xe0, 0xba, 0x0c, 0x1d,
-  0x43, 0x8a, 0x1c, 0xa9, 0xd0, 0x03, 0x09, 0x92, 0x17, 0x37, 0x4a, 0x5c, 0x56, 0x44, 0x8a, 0x33,
-  0x42, 0x00, 0x50, 0x82, 0x1c, 0x18, 0x6c, 0x09, 0x97, 0x16, 0x38, 0x71, 0xae, 0x38, 0x24, 0x6c,
-  0xa4, 0x4a, 0x06, 0xcd, 0x6e, 0x32, 0x70, 0x41, 0x84, 0xc9, 0xc0, 0x16, 0x35, 0x96, 0xa0, 0x74,
-  0xe6, 0x82, 0x01, 0x93, 0x21, 0x55, 0xaa, 0x28, 0x25, 0xd8, 0xe2, 0xd0, 0x48, 0x67, 0x2a, 0x18,
-  0x18, 0xaa, 0x52, 0xc4, 0x09, 0x4e, 0x83, 0x55, 0x43, 0x36, 0x59, 0xc1, 0x80, 0x4b, 0x95, 0x27,
-  0x2d, 0x18, 0xaa, 0x68, 0xd6, 0xf1, 0x50, 0x5a, 0x15, 0x4c, 0xd2, 0x4a, 0x44, 0xc4, 0xb1, 0x49,
-  0x0d, 0x06, 0x4a, 0x0a, 0x61, 0x6c, 0xb1, 0xcc, 0xe0, 0xcc, 0x81, 0x01, 0x04, 0x3a, 0x4b, 0xab,
-  0x24, 0xca, 0xde, 0xa9, 0x03, 0x23, 0xc4, 0x23, 0xf8, 0x6e, 0xa6, 0x55, 0x06, 0x5f, 0x31, 0x3e,
-  0xbe, 0x38, 0x4c, 0xa4, 0xa1, 0x8c, 0x93, 0x39, 0x56, 0xc6, 0x28, 0x48, 0x64, 0x66, 0x89, 0x6c,
-  0x3b, 0xb6, 0x70, 0x96, 0x71, 0x11, 0x97, 0x8e, 0x35, 0x82, 0x71, 0xec, 0xcc, 0xf1, 0xf3, 0xc4,
-  0x45, 0x46, 0x31, 0x9e, 0x46, 0x29, 0x71, 0x05, 0x21, 0xda, 0x0c, 0x5d, 0x84, 0xc6, 0xad, 0xd0,
-  0x18, 0x6d, 0x00, 0xb1, 0x0f, 0xce, 0xa6, 0x8d, 0xd8, 0x20, 0x6b, 0xda, 0xc2, 0xb2, 0x1e, 0xbc,
-  0xcd, 0x1b, 0xca, 0xc1, 0x15, 0x31, 0x79, 0x93, 0x36, 0x38, 0x84, 0x37, 0x41, 0x2b, 0xd8, 0xb1,
-  0x5b, 0xdf, 0x3e, 0xb1, 0x04, 0x83, 0x48, 0xe0, 0xc3, 0x33, 0x58, 0xf0, 0xce, 0x1b, 0x0b, 0x9b,
-  0xf3, 0xe8, 0xcf, 0x63, 0xd9, 0x0e, 0x27, 0xfd, 0x79, 0x37, 0xd1, 0x79, 0x8f, 0x59, 0x43, 0xbf,
-  0xbe, 0x18, 0xee, 0x3a, 0xe2, 0x10, 0x7c, 0x83, 0x8b, 0x3b, 0x03, 0x2c, 0x5d, 0xcc, 0x21, 0x47,
-  0x17, 0x3a, 0xf8, 0x67, 0xe0, 0x81, 0x08, 0x26, 0xa8, 0x90, 0x77, 0xcc, 0x0c, 0xd4, 0x9f, 0x40,
-  0x7d, 0x18, 0x14, 0xa1, 0x40, 0x0f, 0x32, 0xd0, 0x20, 0x79, 0x05, 0x35, 0x28, 0x04, 0x03, 0x40,
-  0xa0, 0x50, 0x90, 0x17, 0x02, 0xf1, 0x21, 0x22, 0x03, 0x20, 0x12, 0x84, 0x02, 0x10, 0x0c, 0x6c,
-  0xc8, 0x4c, 0x40, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x03, 0x00, 0x1d, 0x00, 0x2c, 0x08, 0x00, 0x12,
-  0x00, 0x26, 0x00, 0x30, 0x00, 0x00, 0x08, 0xff, 0x00, 0x3b, 0x08, 0x1c, 0x48, 0xb0, 0xa0, 0x41,
-  0x81, 0x00, 0x0e, 0x2a, 0x5c, 0x38, 0x30, 0x03, 0x85, 0x83, 0x0c, 0x3c, 0x30, 0x9c, 0x68, 0x70,
-  0x84, 0x44, 0x83, 0x0c, 0x28, 0x6a, 0xdc, 0xc8, 0xb1, 0xa3, 0x46, 0x10, 0x03, 0x3c, 0x16, 0x44,
-  0xb0, 0xf1, 0xa1, 0xc8, 0x93, 0x13, 0x23, 0x64, 0x40, 0xd9, 0x11, 0x81, 0x3c, 0x96, 0x1d, 0x33,
-  0x2e, 0x5c, 0xe4, 0xec, 0x10, 0x22, 0x22, 0x88, 0x86, 0x39, 0x6b, 0x02, 0x13, 0x43, 0x00, 0x82,
-  0x4b, 0xb8, 0xb4, 0x28, 0xd8, 0xa2, 0xc6, 0xa1, 0x60, 0x07, 0x11, 0x44, 0x98, 0xc8, 0xe0, 0x67,
-  0x87, 0x26, 0x51, 0x86, 0x72, 0x29, 0x24, 0x45, 0x09, 0xc1, 0x16, 0x4c, 0x08, 0x19, 0x34, 0xa9,
-  0xb1, 0x09, 0x91, 0x16, 0x2e, 0x04, 0x4d, 0x21, 0xb4, 0x24, 0x8a, 0xc1, 0x15, 0x5a, 0x51, 0x46,
-  0x5d, 0x61, 0x85, 0x4a, 0xd4, 0x85, 0x4c, 0x90, 0x8a, 0x1c, 0x32, 0x94, 0x88, 0x15, 0x2e, 0x13,
-  0x5b, 0x1c, 0x12, 0xb9, 0x08, 0xef, 0x0a, 0x17, 0x43, 0x29, 0xf6, 0x10, 0xe6, 0xd1, 0xd9, 0x50,
-  0x2b, 0x1d, 0x97, 0x1c, 0x5c, 0x49, 0xd0, 0x69, 0x87, 0xbd, 0x1d, 0x0c, 0xad, 0xe0, 0x68, 0xc8,
-  0x20, 0x80, 0x77, 0x04, 0xdf, 0x01, 0x70, 0x8a, 0xe8, 0x24, 0x30, 0x8f, 0x89, 0x4e, 0x42, 0xf1,
-  0xd8, 0x59, 0xe4, 0xe7, 0x8e, 0xc3, 0x4e, 0x56, 0xee, 0xe8, 0xec, 0xa4, 0xe2, 0x8e, 0x4d, 0x6a,
-  0x78, 0x74, 0x41, 0xd8, 0x23, 0x64, 0x98, 0x1a, 0xe5, 0x72, 0xe4, 0x89, 0xbb, 0xb7, 0xe0, 0x89,
-  0x3d, 0x7c, 0x1b, 0xf3, 0x4d, 0xb1, 0x2f, 0x43, 0xdd, 0xb8, 0x05, 0x2d, 0xbc, 0xdd, 0x3b, 0xed,
-  0xc1, 0x66, 0xc4, 0x3b, 0x2c, 0x92, 0x6d, 0xb0, 0x06, 0x72, 0xdf, 0xc1, 0x0b, 0x32, 0x8a, 0xce,
-  0xbd, 0x3b, 0xcb, 0x3f, 0x5f, 0x0e, 0x66, 0x60, 0xe1, 0xde, 0x47, 0xa1, 0x1f, 0xee, 0x25, 0xda,
-  0x18, 0x64, 0xf3, 0xa7, 0x7b, 0x18, 0x36, 0xf0, 0xe3, 0xeb, 0xf1, 0xde, 0x67, 0x0d, 0x41, 0x35,
-  0x27, 0xbc, 0x77, 0xe8, 0x13, 0x26, 0x4d, 0x9a, 0x3d, 0x42, 0xe8, 0x37, 0x10, 0x00, 0x09, 0x09,
-  0x68, 0xe0, 0x81, 0x08, 0x0a, 0x64, 0xc2, 0x1f, 0x58, 0xe8, 0xf0, 0x03, 0x2e, 0xe7, 0xed, 0xa7,
-  0x50, 0x79, 0x1d, 0xf8, 0x81, 0xcb, 0x0f, 0x3a, 0x60, 0xf1, 0x87, 0x09, 0x0b, 0xe9, 0x40, 0xa1,
-  0x40, 0x3e, 0x74, 0x90, 0x44, 0x07, 0x5e, 0x74, 0xc0, 0x07, 0x1f, 0x03, 0xa1, 0x58, 0xe2, 0x88,
-  0x21, 0x0e, 0xd4, 0x87, 0x0e, 0x1d, 0x04, 0x04, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x03, 0x00, 0x24,
-  0x00, 0x2c, 0x08, 0x00, 0x11, 0x00, 0x26, 0x00, 0x31, 0x00, 0x00, 0x08, 0xff, 0x00, 0x49, 0x08,
-  0x1c, 0x48, 0xb0, 0xa0, 0xc1, 0x83, 0x08, 0x13, 0x1a, 0xcc, 0x80, 0x90, 0x02, 0x04, 0x85, 0x10,
-  0x0d, 0xbe, 0x1b, 0x10, 0xb1, 0xa2, 0xc5, 0x8b, 0x18, 0x33, 0x16, 0x64, 0xa0, 0x51, 0x23, 0x82,
-  0x0d, 0x1d, 0x43, 0x86, 0x04, 0x00, 0x40, 0x24, 0x41, 0x10, 0x18, 0x4c, 0x5a, 0xcc, 0x90, 0x52,
-  0xa5, 0x4b, 0x12, 0xc2, 0x96, 0x44, 0x81, 0xd2, 0xa2, 0x06, 0x22, 0x41, 0xcb, 0x44, 0x7a, 0x28,
-  0x39, 0x70, 0xca, 0xa1, 0x1e, 0x07, 0x5b, 0xfc, 0x12, 0x76, 0x50, 0x81, 0x02, 0x85, 0x01, 0x02,
-  0x0c, 0x14, 0x46, 0x44, 0x20, 0x91, 0x25, 0x56, 0x04, 0x15, 0x5c, 0xd1, 0xec, 0x20, 0xcf, 0x88,
-  0xc2, 0xb8, 0x90, 0x58, 0x31, 0x84, 0x84, 0x15, 0x25, 0x4e, 0x0c, 0xf6, 0xa8, 0xda, 0x71, 0x51,
-  0x53, 0x2e, 0x84, 0x08, 0x35, 0x4d, 0xb8, 0x82, 0xa8, 0x46, 0x63, 0x03, 0xa5, 0xb8, 0x88, 0x38,
-  0x4c, 0x63, 0x93, 0x1a, 0x24, 0x98, 0xac, 0xb0, 0xa8, 0x22, 0x67, 0x47, 0x42, 0x4f, 0x2e, 0x4a,
-  0x2d, 0x78, 0x55, 0xa0, 0xd2, 0x81, 0x75, 0x49, 0x38, 0x99, 0x6b, 0x31, 0x8a, 0xc1, 0x0d, 0xf1,
-  0x06, 0x7a, 0x48, 0x3a, 0x10, 0x58, 0x47, 0x28, 0x19, 0x31, 0x6b, 0x84, 0x91, 0xd1, 0xb2, 0xc6,
-  0x44, 0x2f, 0x43, 0x13, 0xec, 0x2a, 0x5a, 0x21, 0x50, 0x8c, 0xa7, 0x4b, 0xab, 0x5e, 0xcd, 0xba,
-  0xb4, 0x8a, 0x97, 0x83, 0x5b, 0xcb, 0x4e, 0x08, 0x77, 0xf6, 0xc0, 0x16, 0xb6, 0x4d, 0xaf, 0x7e,
-  0x9d, 0xbb, 0xb7, 0x6f, 0x81, 0x5f, 0x82, 0x0b, 0xff, 0xdd, 0xa7, 0xb4, 0x09, 0x36, 0x07, 0xb1,
-  0xa8, 0xde, 0x63, 0x30, 0xcf, 0x6a, 0x21, 0x6a, 0x08, 0xa6, 0x01, 0xd2, 0x7a, 0xcf, 0x19, 0x33,
-  0x7a, 0x4e, 0xfc, 0xde, 0xce, 0xbd, 0x7b, 0xc7, 0xe2, 0xa2, 0x7f, 0x28, 0x08, 0xe4, 0x63, 0x90,
-  0x7c, 0x42, 0xf1, 0x01, 0x01, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x04, 0x00, 0x26, 0x00, 0x2c, 0x07,
-  0x00, 0x11, 0x00, 0x28, 0x00, 0x14, 0x00, 0x00, 0x08, 0x67, 0x00, 0x4d, 0x08, 0x1c, 0x48, 0xb0,
-  0xa0, 0x41, 0x81, 0x14, 0x1e, 0x1c, 0x5c, 0xc8, 0x90, 0xe0, 0x88, 0x0d, 0x0b, 0x19, 0x78, 0x68,
-  0x48, 0xf1, 0x20, 0x80, 0x8a, 0x18, 0x33, 0x6a, 0xdc, 0xc8, 0xb1, 0x21, 0x80, 0x77, 0x14, 0x3a,
-  0x56, 0x8c, 0x70, 0x50, 0xa1, 0xc8, 0x81, 0x24, 0x42, 0x9e, 0x34, 0xa8, 0x72, 0x61, 0x80, 0x00,
-  0x2b, 0x0b, 0x52, 0x90, 0x17, 0xb3, 0xa6, 0x4d, 0x8d, 0x19, 0x6e, 0x9a, 0x60, 0x40, 0x71, 0x00,
-  0x00, 0x98, 0x36, 0xdf, 0x5d, 0xd4, 0x49, 0xb4, 0xa8, 0xd1, 0xa3, 0x48, 0x93, 0x2a, 0x2d, 0x98,
-  0x53, 0xe0, 0x4f, 0xa4, 0x24, 0x22, 0x44, 0x88, 0x37, 0xf0, 0x01, 0x50, 0xa3, 0x14, 0x32, 0x04,
-  0x04, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x06, 0x00, 0x24, 0x00, 0x2c, 0x07, 0x00, 0x10, 0x00, 0x28,
-  0x00, 0x15, 0x00, 0x00, 0x06, 0x54, 0x40, 0x92, 0x70, 0x48, 0x2c, 0x1a, 0x85, 0x94, 0xc7, 0x71,
-  0xc9, 0x24, 0x62, 0x28, 0x4b, 0x86, 0xa7, 0x49, 0x3d, 0x22, 0x94, 0xd5, 0xac, 0x76, 0xcb, 0xed,
-  0x32, 0x47, 0x13, 0x2f, 0x95, 0x02, 0x59, 0x0e, 0xc4, 0xc3, 0x47, 0xa0, 0x18, 0x58, 0xa3, 0x9b,
-  0xed, 0x77, 0x71, 0xc2, 0x90, 0x73, 0x41, 0xf6, 0xbc, 0x9e, 0xfa, 0xa0, 0xb8, 0xf3, 0x03, 0x78,
-  0x4c, 0x71, 0x7b, 0x67, 0x7b, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x44, 0x00, 0x43, 0x00,
-  0x7f, 0x8a, 0x08, 0x08, 0x43, 0x08, 0x93, 0x89, 0x0c, 0x41, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x04,
-  0x00, 0x25, 0x00, 0x2c, 0x07, 0x00, 0x0f, 0x00, 0x29, 0x00, 0x16, 0x00, 0x00, 0x08, 0x67, 0x00,
-  0x4b, 0x08, 0x1c, 0x48, 0xb0, 0xa0, 0x41, 0x81, 0x14, 0x36, 0x1c, 0x5c, 0xc8, 0x90, 0x60, 0x86,
-  0x11, 0x0c, 0x19, 0x78, 0x68, 0x48, 0xf1, 0x60, 0x86, 0x75, 0x15, 0x33, 0x6a, 0xdc, 0xc8, 0xb1,
-  0xa3, 0x46, 0x04, 0x00, 0x3c, 0x8a, 0x14, 0x38, 0x71, 0xa4, 0xc0, 0x01, 0x06, 0x01, 0x40, 0x34,
-  0xc9, 0x30, 0x40, 0x00, 0x96, 0x30, 0x1b, 0xca, 0xab, 0x18, 0xe1, 0x41, 0x4c, 0x8e, 0x24, 0x6e,
-  0x8a, 0xa4, 0xa0, 0x33, 0x23, 0x05, 0x97, 0x3d, 0x4b, 0xbc, 0x5b, 0x19, 0x94, 0x21, 0xd1, 0xa2,
-  0x48, 0x93, 0x2a, 0x5d, 0xca, 0xb4, 0x69, 0x4c, 0x00, 0x2f, 0x97, 0x3e, 0x48, 0x28, 0x90, 0x44,
-  0x54, 0xa5, 0x03, 0x00, 0x04, 0x04, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x03, 0x00, 0x26, 0x00, 0x2c,
-  0x09, 0x00, 0x0e, 0x00, 0x28, 0x00, 0x17, 0x00, 0x00, 0x06, 0x57, 0x40, 0x93, 0x70, 0x48, 0x2c,
-  0x1a, 0x29, 0x0a, 0xa3, 0x72, 0xc9, 0x5c, 0x32, 0x3c, 0xcd, 0xa8, 0x11, 0x81, 0x90, 0x5a, 0xad,
-  0x94, 0xab, 0x76, 0xab, 0xa5, 0x44, 0xb8, 0xe0, 0x21, 0x04, 0x14, 0x36, 0x3d, 0x94, 0x19, 0x52,
-  0xb9, 0x09, 0x08, 0x18, 0x03, 0xee, 0xb5, 0x7c, 0x1e, 0x3e, 0x37, 0x11, 0x10, 0xba, 0x30, 0x6e,
-  0x05, 0xe8, 0xad, 0x08, 0x14, 0x7c, 0x7f, 0x26, 0x0d, 0x7e, 0x45, 0x83, 0x84, 0x10, 0x19, 0x84,
-  0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, 0x42, 0x6d, 0x95, 0x1b, 0x26, 0x08, 0x89, 0x90,
-  0x5f, 0x41, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x03, 0x00, 0x26, 0x00, 0x2c, 0x08, 0x00, 0x0d, 0x00,
-  0x29, 0x00, 0x18, 0x00, 0x00, 0x08, 0x6e, 0x00, 0x4d, 0x08, 0x1c, 0x48, 0xb0, 0xa0, 0x41, 0x13,
-  0x19, 0x48, 0x1c, 0x5c, 0xc8, 0xb0, 0x61, 0x41, 0x06, 0x1e, 0x1c, 0x4a, 0x2c, 0x08, 0x02, 0xc0,
-  0xc4, 0x8b, 0x12, 0x37, 0x60, 0xdc, 0xc8, 0xf1, 0x22, 0x83, 0x8e, 0x20, 0x05, 0x32, 0x90, 0x67,
-  0x11, 0x24, 0x85, 0x83, 0x09, 0x19, 0x2a, 0x04, 0x19, 0x20, 0xc0, 0xc1, 0x96, 0x21, 0x1d, 0xba,
-  0x8c, 0x49, 0x53, 0xe2, 0xca, 0x86, 0x25, 0x6b, 0x0a, 0xa4, 0x90, 0xc1, 0xa1, 0x46, 0x9d, 0x1d,
-  0x23, 0xcc, 0x04, 0xea, 0x10, 0x00, 0x4c, 0xa2, 0x04, 0x49, 0xbc, 0x43, 0x3a, 0xf1, 0x23, 0xd3,
-  0xa7, 0x50, 0xa3, 0x4a, 0x9d, 0x4a, 0xb5, 0xaa, 0xd5, 0xa1, 0x54, 0x1f, 0x20, 0x78, 0x80, 0x75,
-  0xea, 0x00, 0x06, 0x01, 0x01, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x07, 0x00, 0x24, 0x00, 0x2c, 0x07,
-  0x00, 0x0c, 0x00, 0x2b, 0x00, 0x19, 0x00, 0x00, 0x08, 0x69, 0x00, 0x49, 0x08, 0x1c, 0x48, 0xb0,
-  0xa0, 0xc1, 0x81, 0x0c, 0x0e, 0x2a, 0x5c, 0xc8, 0xf0, 0x20, 0x03, 0x0f, 0x0d, 0x23, 0x4a, 0x9c,
-  0x48, 0x51, 0x21, 0x84, 0x8a, 0x18, 0x33, 0x6a, 0xdc, 0x88, 0x11, 0xc3, 0x04, 0x8e, 0x08, 0x14,
-  0x02, 0x18, 0xc1, 0x30, 0xc3, 0xc6, 0x00, 0x28, 0x0f, 0xa6, 0xe4, 0xc8, 0xb2, 0xa5, 0xcb, 0x97,
-  0x1a, 0x33, 0x7c, 0x84, 0x39, 0x71, 0xa5, 0x44, 0x0a, 0x34, 0x27, 0x82, 0x18, 0x10, 0x20, 0x67,
-  0xc1, 0x0c, 0x24, 0x0b, 0xf6, 0xf4, 0x49, 0x50, 0x5e, 0x48, 0xa2, 0x48, 0x33, 0x36, 0x48, 0xca,
-  0xd0, 0x26, 0xd3, 0xa7, 0x50, 0xa3, 0x4a, 0x9d, 0x2a, 0x94, 0xea, 0x83, 0x8f, 0x03, 0xa8, 0x0e,
-  0xa0, 0x10, 0x10, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x03, 0x00, 0x25, 0x00, 0x2c, 0x07, 0x00, 0x0c,
-  0x00, 0x2c, 0x00, 0x19, 0x00, 0x00, 0x06, 0x56, 0xc0, 0x92, 0x70, 0x48, 0x2c, 0x1a, 0x85, 0x14,
-  0xcc, 0x71, 0xc9, 0x6c, 0x3a, 0x9f, 0xd0, 0xa8, 0x74, 0x3a, 0x04, 0x78, 0xa8, 0xd8, 0xac, 0x33,
-  0xb3, 0xd1, 0x0a, 0x01, 0xcb, 0x40, 0xa4, 0xa9, 0xf0, 0x02, 0x02, 0x61, 0xb4, 0x77, 0xcd, 0x6e,
-  0xbb, 0xd7, 0x01, 0xd2, 0xf8, 0x1d, 0x0d, 0xa8, 0xe9, 0x78, 0xe1, 0xe6, 0x9e, 0x6f, 0x52, 0xf8,
-  0x7d, 0x25, 0x18, 0x65, 0x81, 0x4d, 0x18, 0x19, 0x85, 0x89, 0x53, 0x01, 0x5d, 0x8a, 0x8e, 0x8f,
-  0x90, 0x91, 0x92, 0x93, 0x4d, 0x80, 0x8f, 0x0f, 0x20, 0x76, 0x93, 0x03, 0x14, 0x41, 0x00, 0x21,
-  0xf9, 0x04, 0x05, 0x04, 0x00, 0x1c, 0x00, 0x2c, 0x0a, 0x00, 0x0b, 0x00, 0x2a, 0x00, 0x1a, 0x00,
-  0x00, 0x08, 0x69, 0x00, 0x39, 0x08, 0x1c, 0x48, 0xb0, 0xa0, 0xc1, 0x0c, 0x06, 0x13, 0x2a, 0x5c,
-  0xc8, 0x90, 0x81, 0x07, 0x86, 0x10, 0x23, 0x4a, 0x9c, 0x48, 0xb1, 0xa2, 0xc5, 0x8b, 0x0c, 0x23,
-  0x20, 0xc4, 0xa8, 0x30, 0xc0, 0x46, 0x85, 0xf2, 0x28, 0x58, 0xcc, 0x40, 0x21, 0xc0, 0x42, 0x93,
-  0x1c, 0x4f, 0xa6, 0x5c, 0xc9, 0xb2, 0x65, 0x44, 0x00, 0x1b, 0x5c, 0x52, 0x0c, 0x80, 0x52, 0xa6,
-  0xcd, 0x9b, 0x12, 0x47, 0xe0, 0x54, 0x48, 0x41, 0x24, 0x87, 0x9a, 0x3b, 0x09, 0xca, 0x1b, 0x10,
-  0xb4, 0xe8, 0xc4, 0x8f, 0x46, 0x0b, 0x02, 0x20, 0x9a, 0xb4, 0xa9, 0xd3, 0xa7, 0x50, 0xa3, 0x4a,
-  0x35, 0x1a, 0x81, 0xe0, 0x03, 0x10, 0x4d, 0x91, 0x0e, 0xa0, 0x10, 0x10, 0x00, 0x21, 0xf9, 0x04,
-  0x05, 0x03, 0x00, 0x1d, 0x00, 0x2c, 0x0a, 0x00, 0x0b, 0x00, 0x2b, 0x00, 0x1a, 0x00, 0x00, 0x06,
-  0x54, 0xc0, 0x8e, 0x70, 0x48, 0x2c, 0x1a, 0x19, 0xc6, 0xa4, 0x72, 0xc9, 0x6c, 0x3a, 0x9f, 0xd0,
-  0xa8, 0xd4, 0x48, 0x99, 0x5a, 0x93, 0x01, 0x00, 0x13, 0x04, 0xb2, 0x92, 0x32, 0xcc, 0xc0, 0xb5,
-  0x19, 0x10, 0x8f, 0xcf, 0xe8, 0xb4, 0x75, 0xd4, 0x50, 0x4b, 0xcb, 0xee, 0xb8, 0x7c, 0x6c, 0x9e,
-  0x3b, 0xe1, 0xf6, 0x24, 0xe3, 0x01, 0xce, 0x33, 0x49, 0x7e, 0x81, 0x6f, 0x11, 0x0f, 0x82, 0x58,
-  0x75, 0x86, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8c, 0x01, 0x08, 0x44, 0x0f, 0x6d, 0x86, 0x01,
-  0x48, 0x43, 0x03, 0x14, 0x41, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x07, 0x00, 0x12, 0x00, 0x2c, 0x13,
-  0x00, 0x0d, 0x00, 0x23, 0x00, 0x18, 0x00, 0x00, 0x06, 0x47, 0x40, 0x89, 0x70, 0x48, 0x2c, 0x1a,
-  0x8f, 0xc8, 0xa4, 0x24, 0x90, 0x51, 0x4a, 0x9a, 0xca, 0x40, 0x54, 0x49, 0xda, 0x28, 0x29, 0x52,
-  0xa7, 0x76, 0xcb, 0xed, 0x7a, 0x8f, 0x01, 0xeb, 0xb7, 0x1b, 0xc8, 0x8e, 0xcf, 0xe8, 0xb4, 0x7a,
-  0xcd, 0x06, 0xb0, 0x93, 0x10, 0xf1, 0x7b, 0xee, 0x8c, 0xd0, 0x8d, 0x4c, 0xca, 0x7d, 0xcf, 0xef,
-  0xfb, 0xff, 0x80, 0x81, 0x73, 0x01, 0x18, 0x44, 0x0f, 0x03, 0x74, 0x01, 0x76, 0x43, 0x03, 0x19,
-  0x41, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x03, 0x00, 0x1d, 0x00, 0x2c, 0x12, 0x00, 0x0c, 0x00, 0x25,
-  0x00, 0x19, 0x00, 0x00, 0x05, 0x42, 0x60, 0x27, 0x8e, 0x64, 0x69, 0x9e, 0x68, 0x4a, 0x02, 0x91,
-  0xea, 0xbe, 0x63, 0xe0, 0x52, 0x6e, 0x20, 0xc3, 0xe9, 0xf3, 0xde, 0x78, 0xef, 0xbb, 0x03, 0xc4,
-  0x6f, 0x68, 0x1b, 0x1a, 0x8f, 0xc8, 0xa4, 0x72, 0xc9, 0x44, 0x0e, 0x00, 0xcd, 0x94, 0x27, 0x13,
-  0xad, 0xee, 0x18, 0x0a, 0x6b, 0xa9, 0xa8, 0xed, 0x7a, 0xbf, 0xe0, 0xb0, 0x78, 0xdc, 0x0c, 0x60,
-  0x48, 0x0f, 0x5a, 0x35, 0xd0, 0x1a, 0x3d, 0x43, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x03, 0x00, 0x0c,
-  0x00, 0x2c, 0x1e, 0x00, 0x0c, 0x00, 0x19, 0x00, 0x19, 0x00, 0x00, 0x06, 0x38, 0x40, 0xca, 0x86,
-  0x41, 0x2c, 0x1a, 0x8f, 0x48, 0x62, 0x20, 0x90, 0x6c, 0x3a, 0x9f, 0xd0, 0xa8, 0x74, 0x1a, 0xf0,
-  0x4c, 0x9d, 0xcb, 0xab, 0x76, 0xcb, 0xed, 0x7a, 0xbf, 0xe0, 0xe7, 0x28, 0x12, 0x66, 0x90, 0xb9,
-  0x81, 0xf3, 0x77, 0x09, 0x28, 0xbb, 0xdf, 0xf0, 0xb8, 0x7c, 0x4e, 0x2f, 0x06, 0x10, 0xc6, 0xe1,
-  0x36, 0x6d, 0x8c, 0x04, 0x01, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x04, 0x00, 0x0e, 0x00, 0x2c, 0x1e,
-  0x00, 0x0b, 0x00, 0x1a, 0x00, 0x1a, 0x00, 0x00, 0x06, 0x39, 0x40, 0x47, 0xc0, 0x41, 0x2c, 0x1a,
-  0x8f, 0xc8, 0x62, 0x60, 0x98, 0x6c, 0x3a, 0x9f, 0xd0, 0xa8, 0x74, 0x5a, 0x04, 0x51, 0x9f, 0x94,
-  0xcc, 0x75, 0xcb, 0xed, 0x7a, 0xbf, 0xe0, 0xb0, 0xf8, 0x39, 0x02, 0x53, 0xc4, 0x01, 0x86, 0x35,
-  0xcc, 0x1c, 0xbb, 0xdf, 0xf0, 0xb8, 0x7c, 0x4e, 0x57, 0xae, 0x1d, 0x8f, 0x32, 0x37, 0x70, 0x26,
-  0x0e, 0x32, 0x41, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x06, 0x00, 0x0f, 0x00, 0x2c, 0x2a, 0x00, 0x0e,
-  0x00, 0x0e, 0x00, 0x17, 0x00, 0x00, 0x06, 0x29, 0xc0, 0x87, 0x70, 0x48, 0x24, 0x46, 0x36, 0xc5,
-  0xe4, 0x23, 0x10, 0x50, 0x3a, 0x9f, 0xd0, 0xa8, 0x74, 0x4a, 0xad, 0x5a, 0x85, 0x01, 0x92, 0x34,
-  0x00, 0xb8, 0x7a, 0xbf, 0xe0, 0xb0, 0x58, 0x1c, 0x18, 0x0c, 0x15, 0xce, 0x40, 0x66, 0x18, 0x09,
-  0x02, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x04, 0x00, 0x0c, 0x00, 0x2c, 0x2a, 0x00, 0x0e, 0x00, 0x0e,
-  0x00, 0x17, 0x00, 0x00, 0x05, 0x22, 0x20, 0x13, 0x30, 0x64, 0x69, 0x92, 0xc1, 0x78, 0xae, 0x6c,
-  0xeb, 0xbe, 0x70, 0x2c, 0xcf, 0x74, 0x7d, 0x06, 0x58, 0xac, 0xda, 0x7c, 0xef, 0xff, 0xc0, 0x5f,
-  0x20, 0x42, 0xda, 0xb8, 0x02, 0x99, 0x52, 0x08, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x03, 0x00, 0x08,
-  0x00, 0x2c, 0x33, 0x00, 0x17, 0x00, 0x05, 0x00, 0x0e, 0x00, 0x00, 0x05, 0x11, 0x60, 0x84, 0x8c,
-  0x08, 0x43, 0x9e, 0x68, 0xaa, 0xae, 0x6c, 0x4b, 0x06, 0xe2, 0x18, 0x64, 0x63, 0x08, 0x00, 0x21,
-  0xf9, 0x04, 0x05, 0x03, 0x00, 0x10, 0x00, 0x2c, 0x33, 0x00, 0x17, 0x00, 0x04, 0x00, 0x0e, 0x00,
-  0x00, 0x06, 0x12, 0xc0, 0x40, 0x00, 0x02, 0x11, 0x12, 0x8f, 0xc8, 0xa4, 0x72, 0xc9, 0x6c, 0x06,
-  0x48, 0xc4, 0x00, 0x25, 0x08, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x07, 0x00, 0x0b, 0x00, 0x2c, 0x36,
-  0x00, 0x23, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x05, 0x05, 0x60, 0xb6, 0x04, 0x4b, 0x08, 0x00,
-  0x21, 0xf9, 0x04, 0x05, 0xed, 0x00, 0x03, 0x00, 0x2c, 0x36, 0x00, 0x23, 0x00, 0x02, 0x00, 0x02,
-  0x00, 0x00, 0x02, 0x03, 0x4c, 0x16, 0x05, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x03, 0x00, 0x03, 0x00,
-  0x2c, 0x13, 0x00, 0x1a, 0x00, 0x16, 0x00, 0x23, 0x00, 0x00, 0x08, 0xff, 0x00, 0x07, 0x08, 0x1c,
-  0x48, 0xb0, 0xa0, 0xc1, 0x83, 0x00, 0x9a, 0x1d, 0x4a, 0x54, 0xc3, 0x45, 0xa2, 0x61, 0xce, 0x16,
-  0x1d, 0x1c, 0x18, 0xa0, 0x19, 0xb0, 0x89, 0x5c, 0x9c, 0x4d, 0x0c, 0x60, 0x4c, 0xc5, 0x00, 0x17,
-  0x85, 0xa4, 0x10, 0x8a, 0x42, 0xb0, 0xc5, 0xb0, 0x29, 0x05, 0x03, 0x1c, 0x1a, 0xd0, 0xc2, 0x90,
-  0x30, 0x2a, 0x4b, 0x0a, 0x71, 0x29, 0xd8, 0x22, 0x0a, 0x00, 0x8a, 0x1a, 0x5b, 0x14, 0x9a, 0xa2,
-  0xc4, 0xc5, 0x44, 0x96, 0x2b, 0x05, 0x0a, 0x5b, 0xc1, 0xb2, 0x10, 0xc9, 0x9f, 0x02, 0x7b, 0x10,
-  0x1a, 0xa0, 0xf2, 0xe3, 0x13, 0xa4, 0x25, 0x57, 0x2e, 0xaa, 0x31, 0xc0, 0x10, 0x15, 0xa8, 0x04,
-  0x6b, 0x2c, 0x6a, 0x26, 0x50, 0x05, 0x51, 0xac, 0x02, 0x5b, 0x34, 0xd3, 0x08, 0x96, 0xa6, 0x33,
-  0xb2, 0x65, 0x07, 0xb6, 0x38, 0x9b, 0xb6, 0xa4, 0xb3, 0xa5, 0x6d, 0xc3, 0x12, 0x9a, 0x1a, 0x77,
-  0x00, 0x17, 0x00, 0x4d, 0xdb, 0xb6, 0x08, 0x2a, 0x8c, 0x6a, 0xda, 0x1a, 0xc2, 0x04, 0x06, 0x58,
-  0x92, 0xb6, 0x05, 0x61, 0x8a, 0xc3, 0xc0, 0xee, 0x35, 0x38, 0x05, 0x11, 0x54, 0x93, 0x13, 0x09,
-  0x79, 0xfc, 0x49, 0x44, 0xe2, 0xc1, 0x00, 0xbf, 0x7e, 0xaa, 0xe0, 0xfa, 0x13, 0xad, 0x41, 0xc7,
-  0x48, 0x9b, 0x4c, 0x36, 0xe8, 0xf9, 0xf2, 0x45, 0x83, 0x2a, 0xae, 0x42, 0x6d, 0xf6, 0x55, 0x6d,
-  0x50, 0xac, 0xc1, 0x08, 0xc1, 0x2d, 0x02, 0xb7, 0x6e, 0x5b, 0x1d, 0x62, 0xc6, 0x8c, 0x89, 0x34,
-  0x00, 0x0c, 0x98, 0x17, 0x25, 0xb0, 0x9e, 0x68, 0xd3, 0xc6, 0x20, 0x2e, 0xac, 0x58, 0x0e, 0xb6,
-  0x31, 0x01, 0x16, 0xcf, 0x9a, 0x35, 0x04, 0xc3, 0x94, 0x45, 0x81, 0x86, 0x60, 0x25, 0x21, 0x69,
-  0x81, 0xe4, 0x19, 0x80, 0x66, 0x0f, 0xf6, 0xb8, 0xc1, 0x91, 0x06, 0x01, 0x04, 0x00, 0x21, 0xf9,
-  0x04, 0x05, 0x03, 0x00, 0x03, 0x00, 0x2c, 0x13, 0x00, 0x1a, 0x00, 0x17, 0x00, 0x23, 0x00, 0x00,
-  0x08, 0xff, 0x00, 0x07, 0x08, 0x1c, 0x48, 0xb0, 0xa0, 0xc1, 0x83, 0x03, 0x02, 0x04, 0x20, 0xa4,
-  0x04, 0x11, 0x94, 0x1a, 0x44, 0x86, 0x39, 0x5b, 0x84, 0x70, 0x60, 0x00, 0x2a, 0x51, 0x0e, 0xb6,
-  0xe0, 0xb2, 0xa4, 0x62, 0x00, 0x67, 0x35, 0x5a, 0xb4, 0x70, 0xb2, 0xc4, 0x8a, 0x15, 0x17, 0x03,
-  0x5b, 0x44, 0x09, 0x66, 0x30, 0x00, 0xa3, 0x01, 0x2d, 0x88, 0x58, 0xa9, 0x22, 0x45, 0xc9, 0x13,
-  0x15, 0x04, 0x5b, 0x20, 0x62, 0x69, 0xb1, 0x99, 0x8a, 0x8d, 0x55, 0x86, 0xac, 0xa8, 0xd8, 0x62,
-  0x98, 0xc5, 0x60, 0x5c, 0x60, 0xba, 0x70, 0x52, 0x51, 0x60, 0x0b, 0x15, 0xcd, 0x04, 0x06, 0x58,
-  0x22, 0x52, 0x0a, 0xd3, 0xa6, 0x4e, 0x33, 0x2a, 0x04, 0xf6, 0x74, 0x48, 0x52, 0xac, 0x30, 0x55,
-  0x08, 0x0b, 0x20, 0x0c, 0x66, 0x0b, 0xb0, 0x39, 0x9d, 0x05, 0x88, 0x8a, 0xb6, 0x60, 0x8b, 0x25,
-  0x6b, 0xdb, 0xba, 0x15, 0x14, 0x57, 0x6e, 0x4a, 0xb8, 0xc2, 0x70, 0xda, 0x85, 0xa9, 0x36, 0x00,
-  0x93, 0xbd, 0x4f, 0x9b, 0x24, 0xec, 0x68, 0xb7, 0xc5, 0x2f, 0xa9, 0x48, 0xe5, 0x8a, 0x64, 0x9b,
-  0xd0, 0x99, 0xe2, 0x43, 0x05, 0x03, 0x40, 0x06, 0xab, 0x72, 0x4a, 0xe4, 0xc4, 0x4d, 0x5b, 0x18,
-  0xb2, 0xdc, 0x52, 0x50, 0x66, 0x43, 0x00, 0x2a, 0xe6, 0x45, 0xd8, 0x82, 0x09, 0x4f, 0x84, 0x01,
-  0xa0, 0x20, 0x84, 0x8a, 0x35, 0x80, 0x21, 0x84, 0x44, 0xd0, 0x7a, 0x36, 0xf8, 0x16, 0xed, 0xa2,
-  0x61, 0x7a, 0x07, 0x32, 0x11, 0x8c, 0x36, 0xc0, 0x14, 0x61, 0x84, 0x8a, 0x0c, 0x71, 0xc6, 0x7b,
-  0xaf, 0x71, 0x20, 0x72, 0xf0, 0x84, 0x19, 0x03, 0xe6, 0x08, 0x1f, 0x21, 0x01, 0xd0, 0x7a, 0x61,
-  0x33, 0xa0, 0x4d, 0x41, 0x13, 0x68, 0x51, 0x1c, 0xa4, 0x13, 0x1d, 0xac, 0x09, 0x36, 0x68, 0x2a,
-  0x11, 0x14, 0x8c, 0x24, 0xd7, 0x86, 0x19, 0x82, 0x71, 0xb0, 0xd8, 0xe5, 0x73, 0x67, 0x80, 0x1a,
-  0x31, 0x3a, 0x8c, 0xb7, 0x0d, 0x08, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x07, 0x00, 0x03, 0x00, 0x2c,
-  0x14, 0x00, 0x1a, 0x00, 0x17, 0x00, 0x23, 0x00, 0x00, 0x08, 0xff, 0x00, 0x07, 0x08, 0x1c, 0x48,
-  0xb0, 0xa0, 0xc1, 0x83, 0x02, 0x03, 0x00, 0x68, 0x26, 0xc8, 0x10, 0xa2, 0x28, 0x4a, 0x8a, 0x2c,
-  0x42, 0x38, 0x30, 0x40, 0x00, 0x67, 0x4c, 0x0c, 0xb6, 0xe0, 0xb2, 0x64, 0xe2, 0xc1, 0x00, 0x4d,
-  0xa2, 0x0c, 0x68, 0xe1, 0xc2, 0xd0, 0x12, 0x29, 0x4b, 0x54, 0x08, 0x6c, 0x41, 0x44, 0x98, 0xc1,
-  0x00, 0xc2, 0x98, 0xb4, 0x50, 0x51, 0x48, 0x98, 0xb0, 0x22, 0x4b, 0x52, 0x0e, 0xdc, 0xe8, 0xb2,
-  0xe2, 0x22, 0x22, 0x2d, 0x5a, 0x44, 0x69, 0xf2, 0xc4, 0x05, 0x42, 0x96, 0x1e, 0x2d, 0x1e, 0x1a,
-  0x99, 0xd1, 0x28, 0xc5, 0xa0, 0x82, 0x12, 0x0a, 0xab, 0x21, 0xb4, 0x27, 0xc5, 0x95, 0x35, 0x82,
-  0x0d, 0x08, 0xb0, 0x24, 0xe8, 0x0a, 0x22, 0x57, 0x77, 0xb6, 0x70, 0x66, 0xd1, 0x57, 0xd8, 0x83,
-  0x2d, 0x86, 0x59, 0x84, 0x72, 0x56, 0x23, 0x22, 0x85, 0x2c, 0xda, 0x16, 0x6c, 0x91, 0xc8, 0x62,
-  0x0d, 0xb9, 0x04, 0x5b, 0x00, 0xb3, 0x88, 0x08, 0xef, 0x4e, 0x43, 0x5b, 0x97, 0xfa, 0x0d, 0xba,
-  0x64, 0x2b, 0x21, 0x95, 0x78, 0x67, 0xba, 0xb4, 0x28, 0x32, 0xf1, 0xb0, 0x8a, 0x84, 0x9c, 0x9e,
-  0xe5, 0x49, 0x30, 0x80, 0xe0, 0xb0, 0x24, 0x9b, 0x15, 0x84, 0xd9, 0x03, 0xf3, 0x0a, 0xcd, 0x2f,
-  0x1b, 0x1f, 0x6d, 0x89, 0x30, 0x40, 0xd4, 0xa3, 0x88, 0xb4, 0x52, 0x74, 0x76, 0x94, 0x4b, 0x93,
-  0xb0, 0xac, 0xd1, 0xc6, 0xbe, 0x3a, 0xf5, 0x20, 0x13, 0x00, 0x67, 0x03, 0x34, 0x73, 0xb2, 0x22,
-  0xef, 0xec, 0xdc, 0x00, 0xa8, 0x0c, 0x10, 0x74, 0xe8, 0xf7, 0x55, 0x13, 0x42, 0x4c, 0xf8, 0x25,
-  0x78, 0x84, 0x4d, 0x9b, 0x3b, 0x62, 0x76, 0xf8, 0xd0, 0x11, 0x40, 0xee, 0x8b, 0x01, 0x6c, 0x06,
-  0xb4, 0x19, 0x98, 0xa7, 0xfa, 0xd9, 0x23, 0x02, 0xd7, 0x10, 0x1f, 0x0c, 0x23, 0xd7, 0x8f, 0x99,
-  0x32, 0x68, 0x08, 0xda, 0xc0, 0xfb, 0xa5, 0x0c, 0xc1, 0x3c, 0xb8, 0xf1, 0x1e, 0xa1, 0x33, 0xe0,
-  0xcd, 0x17, 0xe5, 0xcb, 0x07, 0x00, 0xf0, 0x7e, 0x35, 0x20, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x03,
-  0x00, 0x03, 0x00, 0x2c, 0x15, 0x00, 0x1b, 0x00, 0x18, 0x00, 0x22, 0x00, 0x00, 0x08, 0xff, 0x00,
-  0x07, 0x08, 0x1c, 0x38, 0x20, 0x40, 0x80, 0x60, 0xcd, 0x96, 0x28, 0x11, 0xe4, 0x8c, 0x0a, 0xc1,
-  0x87, 0x0f, 0x03, 0x08, 0x3b, 0x54, 0xe3, 0xa1, 0x0a, 0x44, 0xce, 0x20, 0x12, 0x34, 0xb8, 0xc4,
-  0x45, 0x8b, 0x16, 0x2b, 0xa2, 0x14, 0x2a, 0xc4, 0x44, 0x60, 0x0b, 0x43, 0x4d, 0x34, 0x06, 0x00,
-  0x30, 0xec, 0x23, 0x13, 0x29, 0x53, 0x84, 0x11, 0x22, 0x24, 0x68, 0x60, 0x0b, 0x22, 0x29, 0x37,
-  0x06, 0x38, 0x34, 0xe0, 0x63, 0x11, 0x29, 0x44, 0x34, 0xf6, 0x44, 0x34, 0x65, 0x63, 0xc6, 0x16,
-  0x4e, 0x98, 0xa8, 0x10, 0x6a, 0xb3, 0xa6, 0xc0, 0x95, 0x4c, 0x3e, 0x52, 0x31, 0xc4, 0xd4, 0xe6,
-  0x8a, 0x9c, 0x01, 0x8a, 0xf4, 0x04, 0x59, 0x95, 0x60, 0x8b, 0x21, 0x4f, 0x79, 0x76, 0x85, 0x78,
-  0xf2, 0x29, 0xa2, 0xb1, 0x64, 0xa1, 0x14, 0x0c, 0x90, 0x08, 0xed, 0xc3, 0x16, 0x2c, 0x00, 0x14,
-  0x04, 0xe6, 0xd6, 0x6b, 0x0d, 0xb9, 0x01, 0xa2, 0xd4, 0xb5, 0x49, 0xb7, 0xa0, 0xd3, 0xbd, 0x2d,
-  0xc4, 0x06, 0x20, 0xb4, 0xb4, 0xee, 0xc7, 0x66, 0x03, 0xf3, 0x02, 0xee, 0xfb, 0x94, 0xb0, 0xdb,
-  0x16, 0x2a, 0x10, 0x6f, 0xd4, 0x3b, 0xf6, 0xa3, 0x58, 0xa3, 0x95, 0x03, 0x0b, 0x25, 0xd4, 0xb5,
-  0x05, 0x97, 0x8c, 0x42, 0x83, 0x55, 0x6d, 0x11, 0x25, 0x67, 0xe8, 0xc2, 0x64, 0x0d, 0x15, 0xad,
-  0x1a, 0x0c, 0xf5, 0x43, 0x26, 0xa2, 0xbb, 0x06, 0xf8, 0xa5, 0x31, 0xb2, 0xdb, 0x60, 0x82, 0x82,
-  0x12, 0xa4, 0x5c, 0x57, 0xe2, 0x80, 0x43, 0x88, 0x0e, 0x99, 0xee, 0xea, 0xe7, 0x85, 0x90, 0xbd,
-  0x0f, 0xc1, 0x0c, 0x60, 0x13, 0x67, 0xc0, 0x91, 0x3e, 0x01, 0xf6, 0x46, 0x12, 0xc8, 0x86, 0x8d,
-  0xc0, 0x39, 0xca, 0xdd, 0x7e, 0xa1, 0x4e, 0x70, 0xba, 0xdb, 0x24, 0x65, 0x06, 0x9c, 0x17, 0x19,
-  0xb8, 0xe6, 0xc4, 0x5e, 0x31, 0x0f, 0xbb, 0x44, 0xaf, 0x0b, 0x60, 0xc7, 0x00, 0x34, 0x74, 0x5e,
-  0xac, 0x47, 0x5e, 0xb0, 0x6e, 0x40, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x04, 0x00, 0x03, 0x00, 0x2c,
-  0x17, 0x00, 0x1b, 0x00, 0x16, 0x00, 0x22, 0x00, 0x00, 0x08, 0xf8, 0x00, 0x07, 0x08, 0x1c, 0x38,
-  0x20, 0x40, 0x93, 0x66, 0xce, 0x86, 0x10, 0x5c, 0xc8, 0x30, 0x40, 0xb3, 0x28, 0x2a, 0x08, 0xb6,
-  0x60, 0xb2, 0x64, 0x11, 0xc3, 0x81, 0xc2, 0xa2, 0x08, 0x6c, 0xb1, 0xc2, 0x49, 0x14, 0x22, 0x2e,
-  0x04, 0x32, 0x69, 0xd6, 0x90, 0x10, 0x97, 0x01, 0x2d, 0x0c, 0x59, 0x99, 0xd2, 0x44, 0xd8, 0x14,
-  0x8d, 0x02, 0x6b, 0x38, 0x5b, 0x28, 0xec, 0xe4, 0x00, 0x2e, 0xc2, 0x04, 0x31, 0x11, 0x18, 0x92,
-  0x60, 0x0d, 0x92, 0x02, 0x01, 0x20, 0x1a, 0xe0, 0xa2, 0x50, 0x8b, 0x88, 0x17, 0x07, 0x32, 0xb1,
-  0x18, 0x60, 0xe6, 0x00, 0x43, 0x84, 0x90, 0x26, 0xdd, 0xb8, 0xa4, 0xe0, 0x50, 0x94, 0x3d, 0xa7,
-  0x2a, 0x1d, 0x20, 0x4c, 0xaa, 0xd6, 0x85, 0x2a, 0x84, 0x59, 0xf9, 0x9a, 0xb4, 0x85, 0x33, 0xa7,
-  0x64, 0x17, 0xb6, 0x18, 0x82, 0x36, 0xed, 0xc0, 0xb5, 0x40, 0xdd, 0xbe, 0x2d, 0xd2, 0xc4, 0xab,
-  0xdb, 0xb0, 0x01, 0xae, 0xca, 0x1d, 0x70, 0xb5, 0x6d, 0x5a, 0xb3, 0x02, 0x03, 0x10, 0x91, 0xdb,
-  0x02, 0x11, 0x80, 0x81, 0x0a, 0xdd, 0xae, 0xa0, 0x42, 0x50, 0x98, 0x5b, 0x2e, 0x71, 0x83, 0xd6,
-  0xf8, 0x5a, 0xd8, 0xf1, 0xc2, 0x00, 0x89, 0xb4, 0xae, 0xf0, 0x3b, 0x30, 0x00, 0x94, 0xa9, 0x5c,
-  0x08, 0x4d, 0xf5, 0x9c, 0xb4, 0x86, 0x68, 0xad, 0x87, 0x2e, 0xb6, 0xa8, 0xfa, 0x15, 0xc0, 0x12,
-  0x27, 0x59, 0x07, 0x30, 0x99, 0x22, 0xb7, 0xc9, 0xcc, 0x44, 0x51, 0x18, 0x7f, 0x3d, 0xf1, 0x05,
-  0x45, 0x89, 0xbd, 0x0b, 0xe1, 0x08, 0xfc, 0x21, 0x57, 0x0c, 0xc3, 0x3b, 0x36, 0xd2, 0x76, 0xb9,
-  0x08, 0x26, 0x6d, 0x10, 0x86, 0x6c, 0xfa, 0xb8, 0x0d, 0xb3, 0xb0, 0x39, 0x70, 0x35, 0xc8, 0x81,
-  0x6b, 0x0f, 0x08, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x03, 0x00, 0x03, 0x00, 0x2c, 0x16, 0x00, 0x1b,
-  0x00, 0x17, 0x00, 0x22, 0x00, 0x00, 0x08, 0xff, 0x00, 0x07, 0x08, 0x1c, 0x28, 0x50, 0x98, 0x33,
-  0x41, 0x87, 0x0e, 0x49, 0x11, 0x46, 0xb0, 0x61, 0xc3, 0x66, 0x51, 0x54, 0xb4, 0x20, 0xa8, 0xc2,
-  0x49, 0xb3, 0x00, 0x0e, 0x07, 0x06, 0x1b, 0xa6, 0x42, 0x20, 0x93, 0x27, 0x4a, 0x0a, 0x71, 0x99,
-  0xa8, 0xe2, 0xd0, 0x94, 0x8c, 0x4d, 0x88, 0x4c, 0x8c, 0x42, 0x68, 0x0a, 0x21, 0x2b, 0x84, 0xa2,
-  0x4c, 0x14, 0x18, 0x65, 0x51, 0xc3, 0x29, 0x88, 0x26, 0xae, 0x10, 0x26, 0x68, 0xa4, 0xc0, 0x99,
-  0x03, 0x87, 0x61, 0x1c, 0x78, 0x68, 0xa5, 0x0b, 0x89, 0x19, 0x09, 0x3a, 0x1b, 0x2a, 0xac, 0xc6,
-  0x00, 0x26, 0x55, 0x7c, 0x26, 0x1d, 0x08, 0x6c, 0xa8, 0xa0, 0x99, 0x2b, 0x80, 0x4e, 0x15, 0xd8,
-  0x4c, 0x60, 0xce, 0xad, 0x49, 0x05, 0x05, 0x00, 0xe0, 0x14, 0x6c, 0x46, 0x43, 0x01, 0x82, 0x75,
-  0x34, 0xeb, 0x10, 0x51, 0xda, 0xb5, 0x6c, 0x09, 0x46, 0xc1, 0x08, 0x25, 0x6e, 0xc3, 0x43, 0x18,
-  0x0d, 0x69, 0x8d, 0xbb, 0x74, 0x80, 0xb3, 0xbd, 0x66, 0x5d, 0x30, 0x1c, 0xb0, 0x88, 0x8b, 0x5d,
-  0x81, 0x42, 0x07, 0xfe, 0xb5, 0xbb, 0x73, 0xe8, 0x00, 0x00, 0x4c, 0xe2, 0xaa, 0xe8, 0x4b, 0x50,
-  0x10, 0xdb, 0x1e, 0x94, 0x09, 0x36, 0x03, 0xdc, 0x90, 0x08, 0x21, 0xc7, 0x04, 0x85, 0x71, 0x26,
-  0x6a, 0x33, 0x69, 0x93, 0xd1, 0x03, 0xf0, 0x6e, 0x3d, 0x9d, 0x14, 0x11, 0x00, 0xb3, 0x88, 0x32,
-  0xaa, 0x20, 0xc4, 0xb6, 0xc9, 0x21, 0x26, 0x5a, 0xd1, 0x1e, 0x16, 0x56, 0x64, 0x40, 0x94, 0x43,
-  0xc1, 0xd8, 0xfe, 0x38, 0xe2, 0x07, 0xb4, 0xdd, 0x1d, 0x02, 0xe5, 0x0c, 0x78, 0x21, 0xe4, 0x75,
-  0xdc, 0x2f, 0x0e, 0xe3, 0x40, 0x67, 0x0b, 0x26, 0x63, 0xa4, 0xb8, 0x3e, 0x32, 0xa2, 0xb0, 0x2b,
-  0xa6, 0xe1, 0x98, 0xc3, 0x01, 0x5e, 0x0c, 0x09, 0x40, 0x33, 0x47, 0xfc, 0xe1, 0xf3, 0x02, 0x03,
-  0x02, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x07, 0x00, 0x03, 0x00, 0x2c, 0x15, 0x00, 0x1a, 0x00, 0x17,
-  0x00, 0x23, 0x00, 0x00, 0x08, 0xff, 0x00, 0x07, 0x08, 0x1c, 0x48, 0xb0, 0xa0, 0xc1, 0x83, 0x03,
-  0x00, 0x34, 0x3b, 0x84, 0x28, 0x11, 0x13, 0x43, 0x82, 0x08, 0x05, 0x40, 0x48, 0xd0, 0x19, 0x93,
-  0x16, 0x18, 0x09, 0xaa, 0xf8, 0x25, 0x6c, 0xe2, 0xc1, 0x29, 0xc3, 0x30, 0xba, 0x78, 0x32, 0xc4,
-  0xca, 0x10, 0x8c, 0x2d, 0x06, 0xac, 0x70, 0x16, 0xc0, 0xe3, 0xc0, 0x45, 0x51, 0x30, 0x3e, 0x11,
-  0x26, 0x6c, 0x88, 0x92, 0x27, 0x28, 0x05, 0xaa, 0x60, 0xe9, 0x72, 0x40, 0xc8, 0x16, 0x86, 0xaa,
-  0x14, 0x72, 0x91, 0xd1, 0xa0, 0x0b, 0x89, 0x03, 0x9d, 0x65, 0x74, 0xc1, 0xa5, 0x28, 0x42, 0x22,
-  0x2d, 0x05, 0x5e, 0x64, 0x42, 0x85, 0x68, 0x4a, 0x8a, 0x03, 0x54, 0x14, 0x99, 0xd8, 0x0c, 0x23,
-  0x97, 0x42, 0x03, 0xae, 0x62, 0xf5, 0xd9, 0x52, 0x90, 0xd3, 0xb1, 0x03, 0xa1, 0xb4, 0xfc, 0x89,
-  0xb6, 0xa0, 0x8b, 0x26, 0x01, 0x0c, 0x9d, 0x6d, 0xab, 0xa2, 0x23, 0xdb, 0xb6, 0x03, 0xdf, 0x06,
-  0x30, 0x2b, 0x16, 0xaf, 0xda, 0x00, 0x5d, 0xfb, 0xb6, 0x7d, 0xd2, 0x12, 0x40, 0x53, 0xbc, 0x49,
-  0xa3, 0x2e, 0x99, 0x8b, 0x95, 0x08, 0x00, 0x8f, 0x00, 0x10, 0x09, 0xa6, 0xd8, 0xa3, 0x59, 0x54,
-  0x81, 0x55, 0x27, 0x1b, 0x54, 0xb1, 0xe4, 0xf2, 0xc0, 0x43, 0x9a, 0x09, 0xba, 0xe0, 0x69, 0x70,
-  0x99, 0x0a, 0xac, 0x2b, 0x2c, 0xf7, 0x24, 0x98, 0x88, 0xe2, 0x4e, 0xcf, 0x06, 0x87, 0x51, 0x3c,
-  0xb4, 0xda, 0xa0, 0x12, 0x84, 0x35, 0xe0, 0x8e, 0x55, 0x7a, 0x70, 0x58, 0xed, 0x83, 0x82, 0x0e,
-  0x0f, 0xac, 0x41, 0x08, 0xf1, 0x80, 0x60, 0xc5, 0x97, 0x2c, 0xa1, 0xf2, 0xdb, 0x60, 0x80, 0x2c,
-  0xcd, 0xd1, 0xf2, 0x19, 0x30, 0x47, 0xcf, 0x18, 0x30, 0x36, 0x4e, 0x30, 0xc3, 0x6b, 0x43, 0x60,
-  0x9b, 0x81, 0x6c, 0xe0, 0xe0, 0x21, 0x9d, 0x3e, 0x60, 0x0d, 0xc1, 0x3c, 0x78, 0xb1, 0xa4, 0x31,
-  0xa3, 0x86, 0xe0, 0x0e, 0xc4, 0xef, 0x09, 0xd2, 0xc9, 0x62, 0x3c, 0x48, 0x9d, 0x33, 0x6b, 0xba,
-  0xfc, 0x31, 0x3e, 0xb0, 0x04, 0xde, 0x80, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x03, 0x00, 0x03, 0x00,
-  0x2c, 0x13, 0x00, 0x1a, 0x00, 0x18, 0x00, 0x23, 0x00, 0x00, 0x08, 0xff, 0x00, 0x07, 0x08, 0x1c,
-  0x48, 0xb0, 0xa0, 0xc1, 0x83, 0x02, 0x85, 0x2d, 0x89, 0x02, 0xa5, 0x45, 0x0d, 0x44, 0x82, 0x96,
-  0x05, 0x08, 0x80, 0x70, 0xe0, 0x94, 0x43, 0x3d, 0x5a, 0xb4, 0x30, 0xf8, 0x4b, 0xd8, 0x44, 0x84,
-  0xc2, 0x88, 0x68, 0x24, 0xb2, 0xc4, 0x8a, 0x20, 0x8d, 0x1b, 0x07, 0xac, 0x68, 0xf6, 0xb1, 0xa0,
-  0x30, 0x2e, 0x2d, 0x56, 0x0c, 0x99, 0x62, 0x45, 0x89, 0x13, 0x94, 0x03, 0x7b, 0xb0, 0xa4, 0x38,
-  0x70, 0x91, 0x48, 0x2e, 0x84, 0x08, 0x89, 0xd4, 0x78, 0x70, 0x85, 0x47, 0x9e, 0x03, 0x8c, 0x8d,
-  0x94, 0xe2, 0x82, 0x68, 0xc5, 0x61, 0x2d, 0x9b, 0xd4, 0xd8, 0xb8, 0x02, 0x67, 0xc5, 0x01, 0x2a,
-  0x24, 0x52, 0x74, 0xa6, 0x91, 0xd0, 0x13, 0xa7, 0x57, 0x07, 0x08, 0xfa, 0x38, 0x4c, 0xa3, 0x13,
-  0x17, 0x61, 0x09, 0x46, 0xf9, 0x08, 0x0c, 0x6c, 0x5a, 0x81, 0x50, 0x26, 0x06, 0x68, 0x98, 0xf2,
-  0xad, 0x40, 0x18, 0x72, 0xdb, 0xd6, 0xb5, 0x9b, 0x48, 0x6e, 0xd9, 0xbd, 0x6f, 0x0d, 0x7d, 0x1c,
-  0xe2, 0xf6, 0xed, 0x92, 0x8f, 0x4d, 0x32, 0x02, 0xbe, 0xda, 0xe3, 0xa8, 0xc0, 0x43, 0x85, 0xaf,
-  0x1e, 0x92, 0x2b, 0x30, 0x18, 0x93, 0xc8, 0x07, 0xb9, 0x34, 0x69, 0x29, 0x90, 0x50, 0xd5, 0xc5,
-  0x05, 0x57, 0x10, 0xe2, 0x3c, 0xb0, 0x59, 0xc6, 0xab, 0x2a, 0x76, 0x22, 0x3c, 0x09, 0x5a, 0xa0,
-  0x31, 0xd2, 0x05, 0x17, 0xc1, 0x44, 0xc8, 0x25, 0x18, 0x52, 0x84, 0x4a, 0x11, 0x4e, 0x4e, 0x4b,
-  0xa8, 0x35, 0xcb, 0xb4, 0x8b, 0x6a, 0x1c, 0xec, 0x11, 0xcc, 0xae, 0x33, 0x15, 0x7b, 0x55, 0x30,
-  0xba, 0x1d, 0x56, 0x98, 0x95, 0xe7, 0xcf, 0x3d, 0xda, 0x15, 0xc8, 0x7c, 0xba, 0xc0, 0x3f, 0x5f,
-  0xb2, 0x6b, 0xcf, 0x9e, 0xc5, 0x6e, 0x1f, 0x81, 0x6c, 0x08, 0xb2, 0x26, 0xf9, 0xfe, 0xd6, 0x04,
-  0x78, 0xf1, 0x58, 0xec, 0x06, 0xd8, 0xc3, 0x26, 0xfc, 0xc0, 0x3c, 0xd6, 0x85, 0xa8, 0x21, 0x98,
-  0x06, 0x88, 0xf5, 0x01, 0x7d, 0xf6, 0x0c, 0x30, 0xa3, 0xe7, 0xc4, 0xfd, 0x81, 0x00, 0x00, 0x90,
-  0x56, 0x40, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x03, 0x00, 0x03, 0x00, 0x2c, 0x10, 0x00, 0x1a, 0x00,
-  0x18, 0x00, 0x23, 0x00, 0x00, 0x08, 0xff, 0x00, 0x07, 0x08, 0x1c, 0x48, 0xb0, 0xa0, 0xc1, 0x83,
-  0x03, 0x83, 0x39, 0x3b, 0x64, 0x08, 0xd1, 0x13, 0x41, 0xcd, 0x00, 0x04, 0x08, 0x80, 0x70, 0xe0,
-  0x22, 0x41, 0x2b, 0x5a, 0xb4, 0x28, 0xc8, 0xc4, 0xd9, 0x44, 0x8a, 0x07, 0x85, 0x11, 0xd1, 0xc8,
-  0xa5, 0xd0, 0x00, 0x8d, 0x1b, 0x05, 0x46, 0x09, 0x36, 0xd1, 0xa0, 0x30, 0x2e, 0x2d, 0x56, 0x2c,
-  0x99, 0x42, 0xc8, 0x10, 0x4a, 0x82, 0x44, 0x9a, 0xb4, 0xb4, 0x38, 0x92, 0x0b, 0x21, 0x42, 0x4e,
-  0x34, 0x22, 0x8c, 0xf2, 0x71, 0xe0, 0xa1, 0x16, 0x2e, 0x08, 0x15, 0x71, 0x21, 0xb4, 0xa2, 0x47,
-  0x90, 0xc2, 0x6a, 0xc4, 0x94, 0x92, 0xb1, 0xe2, 0x40, 0x26, 0x12, 0x29, 0x2e, 0xd1, 0xe8, 0xe2,
-  0x64, 0x4a, 0xab, 0x03, 0x9a, 0xb5, 0x44, 0xd4, 0xc2, 0x10, 0x21, 0xaf, 0x60, 0x05, 0x1a, 0x9b,
-  0x08, 0x40, 0x2a, 0x13, 0x43, 0x69, 0x09, 0x0e, 0x9b, 0x18, 0x4c, 0x45, 0xd3, 0xb8, 0x02, 0x11,
-  0xd1, 0xb5, 0xfb, 0x15, 0xaf, 0xa1, 0x96, 0x50, 0xee, 0xe2, 0x3d, 0xd4, 0xf2, 0x89, 0xe0, 0xb8,
-  0x4f, 0x07, 0x38, 0xbb, 0x89, 0xb7, 0x06, 0x4b, 0x8a, 0x00, 0x98, 0x1c, 0xb6, 0x4a, 0x18, 0x64,
-  0x58, 0xbe, 0x71, 0x99, 0x3c, 0x26, 0x68, 0x8c, 0x71, 0x45, 0x15, 0x62, 0x2d, 0x0f, 0x34, 0x86,
-  0xb9, 0xe2, 0x5c, 0xd1, 0x04, 0x9d, 0xf5, 0xe8, 0x6b, 0x50, 0xac, 0x55, 0x67, 0x76, 0x11, 0x42,
-  0x91, 0x08, 0x76, 0x18, 0xeb, 0x81, 0x7f, 0xd3, 0x36, 0xa9, 0x81, 0x90, 0x70, 0xdc, 0xa3, 0x07,
-  0x87, 0xa0, 0x46, 0x48, 0x88, 0x29, 0x41, 0x15, 0xc3, 0x00, 0xe0, 0x0d, 0x7b, 0xe8, 0xd0, 0x92,
-  0x22, 0x84, 0x58, 0x2e, 0xaf, 0x98, 0x65, 0x79, 0x00, 0x2c, 0x27, 0x6c, 0x80, 0x19, 0xa3, 0x67,
-  0x0e, 0x1b, 0x2f, 0x78, 0x01, 0xbc, 0x2d, 0x21, 0xd8, 0x46, 0xe0, 0x11, 0xbc, 0x01, 0xf4, 0x10,
-  0x5c, 0x23, 0xd0, 0xc6, 0xf2, 0x17, 0x04, 0xd5, 0x98, 0x39, 0xf3, 0x63, 0xf9, 0xa2, 0x3b, 0x04,
-  0xcb, 0x80, 0x99, 0x3e, 0x20, 0x4b, 0xa4, 0x36, 0x67, 0xd4, 0xe1, 0x1e, 0x7f, 0x02, 0x05, 0x50,
-  0x42, 0x45, 0x01, 0x01, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x04, 0x00, 0x03, 0x00, 0x2c, 0x0f, 0x00,
-  0x1b, 0x00, 0x17, 0x00, 0x22, 0x00, 0x00, 0x08, 0xff, 0x00, 0x07, 0x08, 0x1c, 0x28, 0x90, 0x4a,
-  0x11, 0x67, 0xce, 0x9a, 0x05, 0x0b, 0xc0, 0x90, 0xa0, 0x43, 0x81, 0xc1, 0x96, 0x40, 0x69, 0x41,
-  0xb0, 0xc6, 0xb0, 0x66, 0x0d, 0x1f, 0x0a, 0x6c, 0xc6, 0x85, 0xe2, 0x80, 0x16, 0x20, 0x09, 0x0e,
-  0x5b, 0x18, 0xe0, 0xa1, 0xb3, 0x1e, 0x2d, 0xb8, 0x0c, 0xa1, 0xb2, 0x22, 0x24, 0x41, 0x22, 0x4d,
-  0x32, 0x6e, 0x44, 0x19, 0xa5, 0x8a, 0x95, 0x28, 0x1e, 0x1f, 0x22, 0x9a, 0x52, 0x12, 0x62, 0xc7,
-  0x28, 0x53, 0x0a, 0xb9, 0xd4, 0x38, 0xc0, 0x58, 0x46, 0x63, 0x2d, 0x56, 0x08, 0x53, 0x32, 0x94,
-  0x68, 0x0d, 0x61, 0x0c, 0x17, 0xb5, 0x64, 0x32, 0x44, 0x05, 0xd1, 0x87, 0x82, 0x18, 0x36, 0x0b,
-  0xd9, 0xf4, 0xea, 0x00, 0x44, 0x0c, 0x05, 0xa5, 0xa4, 0xe2, 0x22, 0xa7, 0xd7, 0x01, 0x2c, 0x16,
-  0x05, 0x18, 0x96, 0x54, 0xd0, 0xd9, 0x87, 0x50, 0x9f, 0x74, 0x7d, 0xab, 0x02, 0xea, 0xa1, 0xb9,
-  0x67, 0x7b, 0xa8, 0x75, 0x86, 0xd7, 0x2b, 0xd8, 0x00, 0xc2, 0x54, 0x98, 0x7d, 0x3b, 0x20, 0x6b,
-  0x49, 0x43, 0x7d, 0x35, 0x3e, 0xed, 0x49, 0x08, 0xe5, 0xe0, 0xab, 0x87, 0x64, 0x2e, 0x49, 0x5c,
-  0x31, 0xa6, 0x43, 0xa4, 0x94, 0x07, 0x0c, 0xeb, 0xe9, 0xd0, 0x59, 0xcb, 0xc7, 0x04, 0x9d, 0x71,
-  0x76, 0x28, 0xcc, 0x49, 0x62, 0x42, 0xa3, 0x1d, 0x2e, 0xc2, 0x49, 0x54, 0x05, 0x95, 0xb3, 0xc1,
-  0x98, 0x80, 0x56, 0x41, 0xe8, 0xed, 0x56, 0x8d, 0x5c, 0x16, 0x11, 0x66, 0xfd, 0x12, 0x23, 0x61,
-  0x61, 0x88, 0x54, 0x10, 0x39, 0x34, 0x00, 0x2a, 0x61, 0x82, 0x00, 0x1c, 0xfa, 0x39, 0xf2, 0xe3,
-  0x78, 0x00, 0x00, 0x42, 0x5e, 0x88, 0x91, 0xc3, 0x66, 0xc0, 0x0e, 0xc2, 0x01, 0xbe, 0xc4, 0x11,
-  0xd8, 0xa6, 0xfa, 0x80, 0x2e, 0xc7, 0x23, 0x11, 0x1f, 0xf4, 0x2e, 0x9e, 0xb0, 0x10, 0x82, 0x67,
-  0xca, 0x94, 0xf1, 0xe2, 0xbc, 0xfc, 0x40, 0x31, 0xc7, 0x05, 0x06, 0x38, 0x52, 0x07, 0xcd, 0x9c,
-  0x1d, 0xc9, 0xe3, 0x0f, 0x4c, 0x2d, 0x30, 0x20, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x06, 0x00, 0x03,
-  0x00, 0x2c, 0x0e, 0x00, 0x1b, 0x00, 0x17, 0x00, 0x22, 0x00, 0x00, 0x08, 0xff, 0x00, 0x07, 0x08,
-  0x1c, 0x38, 0xb0, 0x09, 0x21, 0x42, 0xc2, 0x02, 0x04, 0x20, 0xc8, 0x90, 0x21, 0x95, 0x43, 0x4c,
-  0x54, 0x0c, 0x84, 0x72, 0x88, 0xd0, 0xc2, 0x86, 0x03, 0x01, 0x1c, 0xea, 0x81, 0x51, 0xe0, 0xb0,
-  0x26, 0x17, 0x19, 0x06, 0x8b, 0xd2, 0x62, 0x80, 0x93, 0x01, 0x2b, 0x4a, 0x32, 0x64, 0x62, 0x91,
-  0x21, 0x00, 0x92, 0x2e, 0x86, 0x4c, 0x19, 0xb2, 0xa2, 0x23, 0x97, 0x84, 0x04, 0x05, 0xb5, 0x70,
-  0x51, 0x84, 0x10, 0x91, 0x8e, 0x03, 0x9d, 0x84, 0x14, 0x56, 0x63, 0x80, 0x20, 0x2a, 0x5c, 0x80,
-  0x12, 0x74, 0x76, 0x51, 0xa7, 0x8b, 0x26, 0x24, 0x95, 0x0e, 0x44, 0x74, 0x31, 0x91, 0xc0, 0xa4,
-  0x52, 0x07, 0xaa, 0x10, 0x36, 0x40, 0x98, 0xc4, 0x27, 0x4c, 0x54, 0x66, 0x1d, 0xc0, 0xb4, 0x59,
-  0x49, 0x42, 0x86, 0xc6, 0x0e, 0x5c, 0x12, 0xa0, 0x48, 0x49, 0x17, 0x6a, 0xd7, 0x06, 0x30, 0x1b,
-  0x77, 0x69, 0x00, 0xaf, 0x75, 0x07, 0x12, 0x12, 0x08, 0x4c, 0xac, 0x5a, 0x28, 0x00, 0x04, 0x0e,
-  0xf1, 0x3b, 0x56, 0xd0, 0xc5, 0x45, 0x61, 0xe3, 0xae, 0x68, 0x42, 0xb0, 0x19, 0x47, 0xb5, 0x87,
-  0x42, 0x0a, 0x74, 0x26, 0x71, 0x6c, 0x33, 0x8c, 0x45, 0xb8, 0x10, 0x6e, 0xa8, 0x82, 0x31, 0xc6,
-  0x26, 0x87, 0x2a, 0x77, 0xac, 0x11, 0x18, 0xa8, 0x33, 0xb8, 0xa3, 0x25, 0x63, 0xa4, 0xdc, 0xb1,
-  0xc7, 0xa2, 0xac, 0x87, 0x3a, 0x52, 0xcd, 0x1a, 0x0c, 0xeb, 0x40, 0x17, 0x51, 0xb8, 0x5a, 0x4e,
-  0x99, 0xd4, 0x99, 0xe7, 0xb8, 0x8b, 0x84, 0x95, 0x1e, 0x50, 0x02, 0xc5, 0x17, 0x21, 0x71, 0x03,
-  0xfc, 0x38, 0x32, 0x00, 0x8e, 0xc0, 0x2f, 0x6a, 0x8f, 0xdc, 0x11, 0xc8, 0x66, 0x60, 0x18, 0xb5,
-  0xd0, 0x1b, 0x8a, 0x51, 0xab, 0x03, 0xa3, 0x8d, 0xb8, 0x3b, 0x18, 0xee, 0x0c, 0x19, 0x3e, 0x36,
-  0x08, 0x9e, 0x4a, 0x74, 0x88, 0xe7, 0x05, 0x1a, 0x10, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x04, 0x00,
-  0x03, 0x00, 0x2c, 0x0e, 0x00, 0x1b, 0x00, 0x17, 0x00, 0x22, 0x00, 0x00, 0x08, 0xff, 0x00, 0x07,
-  0x08, 0x1c, 0x38, 0x90, 0x8a, 0xb3, 0x21, 0x43, 0x8a, 0x08, 0x23, 0xc8, 0x90, 0xe1, 0x94, 0x25,
-  0x89, 0x5a, 0x0c, 0x6c, 0xa1, 0x02, 0x91, 0x33, 0x00, 0x0d, 0x07, 0x06, 0x20, 0x44, 0x44, 0xa0,
-  0x8a, 0x86, 0x2d, 0x88, 0x50, 0xc9, 0x18, 0xa0, 0xd9, 0x8a, 0x01, 0x2b, 0x96, 0x34, 0x31, 0x04,
-  0x72, 0x45, 0x33, 0x86, 0x01, 0x84, 0xad, 0x08, 0x29, 0x8c, 0x90, 0x21, 0x17, 0x19, 0x5b, 0xac,
-  0x58, 0xa8, 0x11, 0x51, 0x0b, 0x26, 0x55, 0x96, 0xe0, 0xcc, 0x28, 0xb0, 0x05, 0x22, 0x8d, 0xce,
-  0x06, 0xb4, 0xb0, 0x22, 0x85, 0x28, 0xc3, 0x16, 0x49, 0x07, 0x04, 0xf0, 0xd9, 0x42, 0xd0, 0x49,
-  0xa7, 0x13, 0x7d, 0x09, 0x14, 0xf6, 0xf1, 0x2a, 0xd6, 0x89, 0x2c, 0x82, 0x05, 0x48, 0xda, 0x82,
-  0x8a, 0x93, 0xaf, 0x04, 0x55, 0x34, 0x0b, 0xb0, 0x44, 0xe9, 0x13, 0xaf, 0x68, 0x5b, 0x14, 0x61,
-  0xab, 0x14, 0xed, 0xd3, 0xb9, 0x51, 0xed, 0x12, 0x6c, 0x41, 0x28, 0xc0, 0x32, 0xbd, 0x0c, 0x6b,
-  0x04, 0x93, 0x9a, 0x08, 0x70, 0xd1, 0x5f, 0x02, 0xe9, 0x1a, 0x56, 0x9b, 0x78, 0x11, 0x13, 0xc0,
-  0x2d, 0x58, 0x6a, 0x6c, 0x36, 0x14, 0xad, 0x0a, 0x42, 0x30, 0x8b, 0xc0, 0x75, 0x7a, 0xb4, 0xe1,
-  0xc6, 0x8e, 0x58, 0x5b, 0xb4, 0x25, 0x39, 0xe5, 0x50, 0xe8, 0x22, 0x58, 0x03, 0x98, 0x26, 0xda,
-  0xe2, 0x25, 0x56, 0x00, 0x9d, 0x41, 0x62, 0xfe, 0x4a, 0xa8, 0x32, 0xc1, 0x15, 0x83, 0xbf, 0x06,
-  0x18, 0xf6, 0x94, 0x89, 0x6b, 0xb4, 0x4d, 0x7e, 0xd5, 0xe8, 0xa8, 0xd0, 0xb0, 0xd4, 0x00, 0x01,
-  0x34, 0xfe, 0x08, 0x82, 0x05, 0x30, 0x80, 0x13, 0x2f, 0x06, 0xcc, 0x11, 0x18, 0xdd, 0x6e, 0x97,
-  0x37, 0x0d, 0x23, 0xe9, 0xed, 0x92, 0xf1, 0x8b, 0x5e, 0x20, 0x19, 0x7d, 0x00, 0x0f, 0x1e, 0xc3,
-  0x50, 0x4c, 0x72, 0xc0, 0x2f, 0xe8, 0xa0, 0x99, 0x8e, 0xd1, 0x38, 0xd1, 0x80, 0x00, 0x21, 0xf9,
-  0x04, 0x05, 0x03, 0x00, 0x03, 0x00, 0x2c, 0x0f, 0x00, 0x1b, 0x00, 0x18, 0x00, 0x22, 0x00, 0x00,
-  0x08, 0xff, 0x00, 0x07, 0x08, 0x1c, 0x28, 0x30, 0x40, 0xb3, 0x43, 0x51, 0x88, 0x20, 0x1a, 0xb6,
-  0x84, 0x0a, 0xc1, 0x87, 0x03, 0x03, 0x18, 0x24, 0x42, 0xb0, 0x85, 0x45, 0x15, 0x51, 0x08, 0x41,
-  0x8c, 0x18, 0xe0, 0xd0, 0x80, 0x16, 0x2e, 0x0c, 0x2d, 0xe1, 0x32, 0xd0, 0xa2, 0x0b, 0x67, 0x1b,
-  0x25, 0x1e, 0xb2, 0xf8, 0x44, 0x98, 0x30, 0x29, 0x24, 0x4b, 0xb6, 0x50, 0xc1, 0xe8, 0xa1, 0x44,
-  0x46, 0x16, 0x05, 0x55, 0x39, 0xe4, 0x62, 0xe3, 0xc5, 0x66, 0x04, 0x03, 0x08, 0x73, 0xd1, 0xe2,
-  0x49, 0x15, 0x27, 0x1b, 0x65, 0x32, 0x59, 0x54, 0x30, 0xc0, 0x30, 0x8b, 0x4e, 0xa2, 0x24, 0xad,
-  0xd8, 0x02, 0xe5, 0x80, 0x00, 0xc1, 0x6a, 0xb4, 0x70, 0x12, 0x73, 0xaa, 0x40, 0x8b, 0x88, 0xae,
-  0x06, 0x70, 0xd6, 0x62, 0x00, 0xa1, 0x27, 0x5e, 0x65, 0xaa, 0x08, 0x26, 0x51, 0x90, 0x45, 0x2e,
-  0x3d, 0xd3, 0x7e, 0x9c, 0x49, 0x48, 0xa5, 0x45, 0xb9, 0x54, 0x9b, 0x49, 0x34, 0x86, 0xf7, 0xa1,
-  0xc5, 0xba, 0x63, 0xfb, 0x56, 0x5c, 0x2b, 0x51, 0xa3, 0xe0, 0xb9, 0x61, 0xc5, 0x02, 0x3b, 0x6c,
-  0x71, 0x49, 0x53, 0xab, 0x78, 0xdf, 0x06, 0x6b, 0x1a, 0x40, 0x6a, 0xe4, 0xaa, 0x41, 0x03, 0x34,
-  0x61, 0x22, 0xd7, 0xe2, 0x30, 0x88, 0x12, 0x85, 0x51, 0xf4, 0xda, 0x82, 0xcb, 0x64, 0xd0, 0x58,
-  0x13, 0x27, 0x6d, 0x21, 0x68, 0xaa, 0xc4, 0x26, 0x5d, 0x21, 0xb6, 0x70, 0xe8, 0x35, 0x70, 0x52,
-  0x28, 0x72, 0x25, 0x72, 0xde, 0x68, 0x39, 0x6d, 0x00, 0xc7, 0xb2, 0x3d, 0xe2, 0x15, 0x16, 0xfb,
-  0x23, 0xa2, 0x26, 0x7d, 0x85, 0x0a, 0x12, 0x34, 0xc4, 0x2c, 0xf2, 0xc3, 0x29, 0x25, 0x0a, 0xee,
-  0xe3, 0xe5, 0x08, 0x98, 0x31, 0x61, 0xee, 0xc0, 0x01, 0xd2, 0x37, 0x0b, 0x1b, 0x36, 0x03, 0xdb,
-  0xb4, 0x24, 0x19, 0x10, 0x44, 0xf0, 0x9d, 0x8d, 0x5e, 0x04, 0x83, 0x21, 0x58, 0xe9, 0x8c, 0x9a,
-  0x3f, 0x82, 0xff, 0xd0, 0x79, 0xf8, 0x02, 0x3a, 0xb3, 0x31, 0x6b, 0xce, 0xd8, 0x09, 0x12, 0x00,
-  0xfa, 0xc0, 0x12, 0x49, 0x05, 0x04, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x03, 0x00, 0x03, 0x00, 0x2c,
-  0x11, 0x00, 0x1a, 0x00, 0x18, 0x00, 0x23, 0x00, 0x00, 0x08, 0xff, 0x00, 0x07, 0x08, 0x1c, 0x48,
-  0xb0, 0xa0, 0xc1, 0x83, 0x03, 0x03, 0x04, 0x73, 0x66, 0x08, 0x8a, 0x8a, 0x1a, 0xc0, 0x0e, 0x35,
-  0x43, 0x48, 0x30, 0x40, 0x00, 0x67, 0x5c, 0x0a, 0xb6, 0xd8, 0x48, 0x64, 0x22, 0x42, 0x85, 0x86,
-  0x36, 0x72, 0x51, 0x52, 0xc4, 0x8a, 0x0b, 0x81, 0x1b, 0x55, 0x18, 0x3b, 0x18, 0x60, 0x8a, 0x93,
-  0x16, 0x2a, 0x94, 0x54, 0x21, 0x24, 0xc8, 0x10, 0xc1, 0x8d, 0x2d, 0x56, 0x56, 0x0c, 0x30, 0x6c,
-  0xe3, 0x10, 0x61, 0x36, 0x0f, 0xa6, 0x74, 0x96, 0x30, 0x40, 0x33, 0x15, 0x3e, 0x99, 0x50, 0x1c,
-  0x20, 0x72, 0x91, 0x40, 0x8b, 0x88, 0x5a, 0x70, 0x21, 0xb2, 0x74, 0xe0, 0x46, 0xa2, 0x16, 0x09,
-  0x6d, 0x5c, 0x22, 0xa5, 0x2a, 0xca, 0x16, 0x88, 0x06, 0x58, 0x5c, 0x22, 0x72, 0x85, 0x57, 0xa6,
-  0x2d, 0x7a, 0x2c, 0xb2, 0x78, 0x68, 0xe3, 0xd9, 0xaf, 0x2a, 0x84, 0x59, 0x1c, 0xf6, 0xf6, 0xa6,
-  0x0a, 0x42, 0x6c, 0xeb, 0x5a, 0x8d, 0x6b, 0x71, 0x88, 0x5e, 0xb4, 0x35, 0x4a, 0x64, 0xfd, 0xbb,
-  0x31, 0xa8, 0x45, 0xaa, 0x75, 0xaf, 0x3e, 0xbd, 0x98, 0xb8, 0x05, 0x11, 0x00, 0x45, 0x83, 0x7a,
-  0x4d, 0xeb, 0x71, 0x71, 0x30, 0xc4, 0x4b, 0x61, 0x12, 0x2d, 0x68, 0x51, 0x58, 0x46, 0x8a, 0x5b,
-  0x3f, 0x32, 0x06, 0x2d, 0x99, 0x65, 0x80, 0xb0, 0x08, 0x7b, 0x08, 0xab, 0x1a, 0xc0, 0xaf, 0x50,
-  0xba, 0x5e, 0x85, 0xa9, 0x10, 0xba, 0xb9, 0x2a, 0x00, 0x28, 0x07, 0xe3, 0x9e, 0xbd, 0x58, 0xa3,
-  0xa0, 0xca, 0xba, 0x01, 0x9a, 0x10, 0xb2, 0x42, 0xdc, 0xca, 0xb2, 0xbf, 0xc8, 0x0b, 0x62, 0x19,
-  0xd3, 0xa5, 0x4b, 0xa4, 0x2f, 0xd0, 0xc1, 0x98, 0x78, 0x2b, 0xa4, 0x20, 0x1b, 0x36, 0x03, 0xfc,
-  0xbc, 0xfd, 0x83, 0xdd, 0xe0, 0x9f, 0xba, 0x7a, 0xd6, 0x0c, 0x18, 0xbc, 0xbe, 0x27, 0x40, 0x5d,
-  0x20, 0x69, 0x08, 0xaa, 0x39, 0xf1, 0xf7, 0x84, 0x9e, 0x33, 0x03, 0xf6, 0x54, 0x4f, 0x0e, 0x00,
-  0x32, 0xc5, 0x80, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x07, 0x00, 0x03, 0x00, 0x2c, 0x13, 0x00, 0x1a,
-  0x00, 0x17, 0x00, 0x23, 0x00, 0x00, 0x08, 0xff, 0x00, 0x07, 0x08, 0x1c, 0x48, 0xb0, 0xa0, 0xc1,
-  0x83, 0x03, 0x02, 0x04, 0x73, 0x66, 0x08, 0xca, 0x80, 0x15, 0x88, 0x0e, 0x35, 0x43, 0x48, 0x10,
-  0xc0, 0x92, 0x15, 0x07, 0x5b, 0x20, 0x22, 0x84, 0x30, 0x40, 0x93, 0x28, 0x03, 0x5a, 0x70, 0x51,
-  0x52, 0x84, 0x10, 0x48, 0x81, 0x2d, 0x5c, 0x38, 0x33, 0xe8, 0x91, 0x48, 0x4a, 0x41, 0x53, 0x08,
-  0x09, 0x2a, 0xc4, 0xa5, 0xa0, 0x8a, 0x95, 0x04, 0x03, 0x80, 0x6c, 0x31, 0x44, 0xd8, 0xc9, 0x8c,
-  0x2e, 0x38, 0x0a, 0x0c, 0x80, 0xb3, 0x45, 0x94, 0x9a, 0x14, 0x43, 0x22, 0x1a, 0xb8, 0x88, 0x4b,
-  0x0b, 0x27, 0x4a, 0x92, 0x12, 0x54, 0x31, 0x31, 0xc0, 0xc4, 0x16, 0x87, 0x04, 0x49, 0x1d, 0xd8,
-  0x62, 0x58, 0xc2, 0x43, 0x21, 0x5b, 0x6c, 0xe5, 0xea, 0x30, 0xc0, 0xaf, 0xb1, 0x05, 0x53, 0x06,
-  0x0b, 0xb0, 0x14, 0x2d, 0x57, 0x17, 0x4d, 0xcc, 0xba, 0xe5, 0xda, 0x63, 0x2d, 0xd8, 0xb9, 0x21,
-  0x13, 0x25, 0x2c, 0x82, 0x37, 0xe4, 0xdd, 0xa6, 0x78, 0x5b, 0x4c, 0x4c, 0xb8, 0x64, 0xae, 0xd1,
-  0x8a, 0x6d, 0xb7, 0xb6, 0x58, 0x41, 0x25, 0xa7, 0x30, 0xa4, 0x49, 0x5b, 0xf4, 0xc0, 0x99, 0x93,
-  0x32, 0xc5, 0x1a, 0x7c, 0x0f, 0xb2, 0x4d, 0x7a, 0x33, 0xa9, 0xe5, 0xb4, 0x77, 0x29, 0x36, 0x71,
-  0x81, 0xb0, 0x86, 0x30, 0xa9, 0x01, 0xf4, 0x1e, 0xf4, 0x8a, 0x9a, 0x75, 0xda, 0xcf, 0x08, 0x85,
-  0x25, 0x46, 0x89, 0x68, 0x11, 0x5a, 0x8f, 0x54, 0x38, 0x4a, 0x29, 0x32, 0xa5, 0xaf, 0x6f, 0x21,
-  0x78, 0xf6, 0x88, 0xe9, 0x32, 0x60, 0x87, 0x0d, 0x2f, 0x01, 0xc6, 0xfa, 0x68, 0xc3, 0xbc, 0xe0,
-  0x9f, 0xb1, 0x42, 0x0e, 0xc6, 0x49, 0xbe, 0x15, 0x40, 0x1c, 0x35, 0x6b, 0x08, 0x8e, 0x71, 0xcb,
-  0xc7, 0x0c, 0x41, 0x37, 0x3f, 0xe6, 0xfa, 0x0b, 0xc0, 0x33, 0x20, 0x4d, 0x18, 0x5c, 0xbe, 0x4b,
-  0x6c, 0x0d, 0x08, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x03, 0x00, 0x03, 0x00, 0x2c, 0x13, 0x00, 0x1a,
-  0x00, 0x17, 0x00, 0x23, 0x00, 0x00, 0x08, 0xdf, 0x00, 0x07, 0x08, 0x1c, 0x48, 0xb0, 0xa0, 0xc1,
-  0x83, 0x02, 0x9b, 0x2c, 0x89, 0x32, 0x80, 0x85, 0x40, 0x41, 0x84, 0x10, 0x12, 0x5c, 0x64, 0xac,
-  0xc6, 0x41, 0x15, 0xbf, 0x84, 0x49, 0x14, 0x46, 0x44, 0x20, 0x13, 0x41, 0x56, 0x06, 0x30, 0x21,
-  0xb8, 0xa2, 0xc8, 0x41, 0x61, 0x5c, 0x06, 0xac, 0x58, 0x32, 0x20, 0xe4, 0x13, 0x17, 0x05, 0x5d,
-  0x98, 0x24, 0x38, 0xa5, 0x63, 0x4b, 0x42, 0x36, 0x11, 0xae, 0xd0, 0x38, 0xd0, 0xd8, 0xc0, 0x27,
-  0x2b, 0x24, 0x0e, 0xfc, 0x35, 0xb0, 0x89, 0x45, 0x43, 0x4f, 0x84, 0x16, 0x5c, 0x26, 0x70, 0x88,
-  0xc0, 0x25, 0x85, 0x94, 0x12, 0x14, 0x24, 0x30, 0xa9, 0x54, 0x83, 0x88, 0x04, 0x02, 0xbb, 0x6a,
-  0x10, 0x4a, 0x80, 0x01, 0x50, 0xb8, 0x16, 0xac, 0x01, 0x60, 0xc0, 0x56, 0xb1, 0x03, 0xbd, 0x0e,
-  0x18, 0x86, 0x76, 0x20, 0xc3, 0x01, 0x4e, 0xdb, 0x0e, 0x60, 0x39, 0xc0, 0x68, 0xdb, 0x1e, 0x3c,
-  0x07, 0x1c, 0x6a, 0xcb, 0x76, 0x60, 0xb0, 0x91, 0x5c, 0xb9, 0x34, 0x29, 0x48, 0x28, 0xa8, 0xd4,
-  0x15, 0x11, 0xe5, 0xaa, 0x6c, 0x26, 0x31, 0xe7, 0x41, 0x17, 0x8c, 0x15, 0x5f, 0x15, 0xa6, 0x42,
-  0x67, 0x30, 0xa9, 0x61, 0x0f, 0xee, 0x95, 0x3c, 0x20, 0xb2, 0x54, 0xc7, 0x02, 0x9d, 0x94, 0xe5,
-  0x9a, 0xb7, 0x48, 0xb3, 0xd1, 0x9c, 0xb9, 0xf6, 0xd1, 0x53, 0xf0, 0x48, 0x10, 0xae, 0x28, 0x10,
-  0x62, 0xb9, 0xda, 0xe7, 0x20, 0x1c, 0xd4, 0x4a, 0xe5, 0xa4, 0xf6, 0x72, 0xa6, 0x20, 0x2e, 0xc5,
-  0x68, 0x06, 0xf8, 0x49, 0x2d, 0x34, 0x20, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x04, 0x00, 0x03, 0x00,
-  0x2c, 0x13, 0x00, 0x1a, 0x00, 0x17, 0x00, 0x23, 0x00, 0x00, 0x08, 0xf6, 0x00, 0x07, 0x08, 0x1c,
-  0x48, 0xb0, 0xa0, 0xc1, 0x83, 0x02, 0x09, 0x1d, 0x42, 0x54, 0xc3, 0x05, 0x14, 0x43, 0x4b, 0x9a,
-  0x20, 0x24, 0x28, 0xec, 0x57, 0x8b, 0x83, 0x35, 0x0e, 0x05, 0x9b, 0xe8, 0x6c, 0x85, 0xc0, 0x28,
-  0x43, 0x06, 0x0c, 0xb9, 0x38, 0x90, 0x88, 0xb0, 0x83, 0xce, 0x7a, 0x0c, 0x60, 0x62, 0xa5, 0x8a,
-  0x94, 0x42, 0x4e, 0x48, 0x0e, 0xe4, 0x72, 0x92, 0x20, 0xa1, 0x1a, 0x03, 0x88, 0xb8, 0xe4, 0x32,
-  0x71, 0x00, 0x22, 0x00, 0x04, 0x11, 0x09, 0x64, 0x52, 0x48, 0xe6, 0xc4, 0x90, 0x02, 0x8b, 0x5c,
-  0x2c, 0xc4, 0xb3, 0xe7, 0x40, 0x26, 0x40, 0x07, 0x18, 0x1a, 0xe0, 0x82, 0x0a, 0x13, 0xa7, 0x04,
-  0x9b, 0x0d, 0x00, 0x80, 0x13, 0xab, 0xc1, 0x25, 0x03, 0x84, 0x19, 0xf5, 0x2a, 0xf0, 0xd0, 0x80,
-  0x65, 0x63, 0xc9, 0x0e, 0x0b, 0x20, 0x96, 0x6c, 0x41, 0xb3, 0x5c, 0xdd, 0x12, 0x04, 0x2b, 0x55,
-  0xee, 0x40, 0x42, 0x02, 0x9d, 0xa5, 0x75, 0x0a, 0x2c, 0x80, 0x40, 0x00, 0x44, 0xe4, 0xaa, 0x70,
-  0x96, 0x55, 0x25, 0x59, 0x43, 0x7e, 0x09, 0xea, 0xf5, 0x4a, 0x64, 0xa3, 0xc1, 0x61, 0x58, 0x89,
-  0x48, 0x3c, 0xd8, 0xc4, 0xe3, 0x44, 0x9a, 0x3d, 0xcd, 0x72, 0x74, 0x4a, 0x68, 0xef, 0xca, 0xa8,
-  0x13, 0x17, 0x75, 0x35, 0x28, 0xc8, 0xab, 0x50, 0xbb, 0x36, 0x9b, 0x12, 0x44, 0x4c, 0x16, 0x00,
-  0x15, 0x42, 0x56, 0x06, 0x26, 0x46, 0x6d, 0xd7, 0x4f, 0x18, 0x31, 0x63, 0x04, 0x82, 0x79, 0x71,
-  0x04, 0x74, 0x4f, 0x20, 0x08, 0x75, 0x78, 0xc5, 0xb5, 0xc6, 0xa0, 0x9b, 0x12, 0x5e, 0x03, 0xd4,
-  0x29, 0x4e, 0x30, 0x8c, 0x5b, 0x1f, 0x05, 0xd9, 0xf4, 0x91, 0x8b, 0x82, 0xe0, 0x74, 0xda, 0x58,
-  0x03, 0x02, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x03, 0x00, 0x03, 0x00, 0x2c, 0x13, 0x00, 0x1a, 0x00,
-  0x16, 0x00, 0x23, 0x00, 0x00, 0x08, 0xf8, 0x00, 0x07, 0x08, 0x1c, 0x48, 0xb0, 0xa0, 0xc1, 0x83,
-  0x00, 0x9c, 0x0d, 0x4b, 0xc4, 0x62, 0x40, 0xa2, 0x61, 0xce, 0x00, 0x1c, 0x24, 0xe8, 0x8c, 0xc9,
-  0x44, 0x26, 0xce, 0x02, 0x4c, 0x3c, 0xd4, 0x62, 0xc0, 0x8a, 0x42, 0x45, 0x08, 0x11, 0x29, 0x78,
-  0x48, 0x62, 0xc1, 0x61, 0x1d, 0x9f, 0x34, 0xa1, 0xb2, 0xc4, 0xa3, 0xc1, 0x61, 0x1a, 0x07, 0x1a,
-  0xeb, 0xa8, 0x64, 0x40, 0x21, 0x15, 0x13, 0x05, 0x2e, 0x89, 0x49, 0xc5, 0x85, 0x40, 0x25, 0x4e,
-  0x72, 0x0e, 0xac, 0x21, 0x4c, 0xe0, 0x30, 0x8f, 0x86, 0x3a, 0x0a, 0x1d, 0x78, 0x28, 0x40, 0xb0,
-  0x1a, 0x36, 0x09, 0x29, 0x5d, 0x3a, 0x00, 0x4a, 0x80, 0x66, 0x1d, 0x5d, 0xac, 0xa0, 0x4a, 0x90,
-  0x25, 0xd7, 0x83, 0xcd, 0x18, 0x7d, 0x35, 0x58, 0x64, 0xc8, 0xd8, 0x82, 0xcd, 0xb0, 0x9e, 0x15,
-  0xa8, 0x42, 0x58, 0xb0, 0x1e, 0x6b, 0x07, 0x30, 0xd1, 0x78, 0x74, 0xad, 0x20, 0x81, 0x84, 0xe0,
-  0x8e, 0x5d, 0xd1, 0x84, 0xe9, 0x54, 0xaa, 0xce, 0x08, 0x02, 0x30, 0xf4, 0xb5, 0x69, 0xc1, 0x60,
-  0x23, 0x97, 0x1a, 0x36, 0xd8, 0x0c, 0x67, 0x4e, 0x44, 0x26, 0x0f, 0x46, 0xc9, 0xa9, 0x82, 0x90,
-  0xd0, 0xc0, 0x13, 0xa3, 0xc4, 0x9c, 0xd8, 0xc4, 0xb1, 0x41, 0xcc, 0x42, 0x13, 0x1d, 0x6c, 0x4b,
-  0xb5, 0xd9, 0x56, 0x82, 0x2a, 0x0e, 0x7d, 0x0d, 0x66, 0x59, 0xa0, 0x95, 0xd6, 0x71, 0xcf, 0xea,
-  0x10, 0x33, 0xa6, 0x4b, 0xa4, 0x01, 0x5f, 0xc0, 0xec, 0x58, 0x44, 0xf5, 0xc4, 0x00, 0x36, 0x6c,
-  0x0a, 0xfa, 0xa1, 0x8a, 0x25, 0x78, 0xc1, 0x36, 0x59, 0xb8, 0xe6, 0xf9, 0x1d, 0x1b, 0x48, 0x1a,
-  0x82, 0x6a, 0x84, 0x8c, 0x3d, 0xa1, 0x67, 0xc0, 0x99, 0x3d, 0xd2, 0x63, 0x0b, 0x0d, 0x08, 0x00,
-  0x21, 0xf9, 0x04, 0x05, 0x07, 0x00, 0x03, 0x00, 0x2c, 0x13, 0x00, 0x1a, 0x00, 0x16, 0x00, 0x23,
-  0x00, 0x00, 0x08, 0xf8, 0x00, 0x07, 0x08, 0x1c, 0x48, 0xb0, 0xa0, 0xc1, 0x83, 0x4d, 0x86, 0xfc,
-  0x82, 0xa2, 0xa2, 0x06, 0xa2, 0x43, 0xcd, 0x02, 0x1c, 0x1c, 0x08, 0x40, 0x50, 0x8d, 0x89, 0x88,
-  0x08, 0x4d, 0x6c, 0x82, 0x48, 0x20, 0x13, 0x41, 0x56, 0xa4, 0xb4, 0x20, 0xe8, 0xc2, 0x99, 0x44,
-  0x82, 0x4d, 0x88, 0x0c, 0x70, 0xb1, 0x64, 0x8a, 0x15, 0x41, 0x51, 0x46, 0x12, 0x54, 0xe1, 0xac,
-  0x60, 0x94, 0x95, 0x56, 0xa8, 0x38, 0x91, 0x79, 0xd0, 0x85, 0x46, 0x81, 0xce, 0x46, 0x72, 0x91,
-  0xc2, 0x65, 0x22, 0x41, 0x44, 0x12, 0x17, 0x15, 0x65, 0x52, 0xd4, 0xe8, 0xcc, 0x66, 0x03, 0x8a,
-  0x8c, 0x2c, 0x22, 0xc8, 0x69, 0xc1, 0x43, 0x03, 0xb0, 0x0e, 0x60, 0x62, 0xb5, 0x60, 0xa2, 0x00,
-  0x37, 0xbb, 0x1a, 0x54, 0xb1, 0xa8, 0xa3, 0xd8, 0x82, 0x2a, 0x82, 0x85, 0x3d, 0x3b, 0x90, 0xac,
-  0x56, 0xb6, 0x02, 0x81, 0x05, 0x90, 0x0a, 0x57, 0x20, 0x56, 0xa5, 0x75, 0x55, 0x40, 0x1d, 0xb0,
-  0x84, 0xa7, 0xd8, 0x28, 0x27, 0x01, 0x98, 0x15, 0xbb, 0x42, 0x18, 0x41, 0x61, 0x5c, 0xbb, 0xba,
-  0xd8, 0x4b, 0x90, 0xd0, 0x0a, 0xab, 0x34, 0x27, 0xf6, 0x75, 0x7a, 0xe8, 0xa4, 0x41, 0x00, 0x89,
-  0x0f, 0xd6, 0x68, 0xe2, 0x74, 0x89, 0xd1, 0xb7, 0x13, 0x7f, 0x1e, 0x64, 0x3c, 0x11, 0xc0, 0x63,
-  0x83, 0x3d, 0x38, 0x5b, 0x75, 0xd6, 0xc3, 0xa0, 0xb1, 0xb3, 0x4d, 0xac, 0x58, 0x19, 0x68, 0xb8,
-  0xae, 0xed, 0x3f, 0x91, 0x72, 0x0f, 0xfc, 0xf2, 0x25, 0x4b, 0x57, 0x21, 0x6c, 0x6c, 0x0b, 0xf4,
-  0x6d, 0x90, 0x0d, 0x33, 0xb1, 0x7b, 0x82, 0x13, 0xd4, 0x73, 0xf6, 0x84, 0x1a, 0x82, 0x69, 0x80,
-  0xb0, 0x15, 0xb2, 0x47, 0xa0, 0x9e, 0x13, 0xb6, 0x01, 0x58, 0x0d, 0x08, 0x00, 0x21, 0xf9, 0x04,
-  0x05, 0x35, 0x00, 0x03, 0x00, 0x2c, 0x13, 0x00, 0x1a, 0x00, 0x16, 0x00, 0x23, 0x00, 0x00, 0x08,
-  0xd2, 0x00, 0x07, 0x08, 0x1c, 0x48, 0xb0, 0xa0, 0xc1, 0x83, 0xc2, 0x96, 0x44, 0x19, 0xd0, 0x42,
-  0xa0, 0xa0, 0x65, 0x07, 0x09, 0x4e, 0x39, 0xd4, 0x23, 0xe2, 0x2f, 0x61, 0x11, 0x85, 0x11, 0x11,
-  0x48, 0x64, 0xc9, 0x00, 0x41, 0x05, 0x57, 0x34, 0x33, 0x28, 0x8c, 0xcb, 0x80, 0x15, 0x43, 0x04,
-  0x2a, 0x71, 0x62, 0xb0, 0xc7, 0xc8, 0x81, 0x8b, 0x36, 0x72, 0x21, 0x44, 0x68, 0x63, 0xc4, 0x93,
-  0x18, 0x05, 0x1a, 0xe3, 0x38, 0xc0, 0xc5, 0xcd, 0x81, 0xc3, 0x04, 0x36, 0xa9, 0x21, 0x70, 0xc5,
-  0xcf, 0x82, 0x10, 0x9d, 0x09, 0x24, 0xf4, 0xe4, 0x28, 0x41, 0x90, 0x41, 0x07, 0x38, 0xf1, 0xe9,
-  0x54, 0xe0, 0x42, 0x60, 0x55, 0x0d, 0x42, 0x09, 0x00, 0x25, 0x6b, 0x41, 0x18, 0x01, 0xb0, 0x7a,
-  0x1d, 0x98, 0x28, 0x40, 0xd4, 0xb1, 0x03, 0x0c, 0x0d, 0x48, 0x89, 0x76, 0x80, 0xc7, 0x26, 0x15,
-  0xc7, 0xf6, 0xc8, 0x79, 0x08, 0x6d, 0x5d, 0x81, 0xc1, 0x98, 0x78, 0xe5, 0xd2, 0x84, 0x20, 0x21,
-  0xa3, 0x4e, 0x57, 0x10, 0x32, 0xd8, 0x2c, 0xee, 0xcf, 0x97, 0x06, 0x41, 0xfe, 0xdc, 0x19, 0x71,
-  0x91, 0xc9, 0x88, 0x5c, 0x82, 0x2d, 0x6e, 0x4b, 0xb0, 0x21, 0xe5, 0x45, 0x44, 0x0f, 0x4a, 0x76,
-  0xaa, 0xc2, 0x20, 0xa3, 0xac, 0x39, 0x29, 0x8b, 0x16, 0xf8, 0xa5, 0xf4, 0x17, 0xb4, 0x7d, 0x22,
-  0xa6, 0x3e, 0x6a, 0x22, 0x22, 0x16, 0xd1, 0x79, 0xb2, 0x0a, 0x19, 0x3d, 0x60, 0xb5, 0x19, 0xda,
-  0x3f, 0x03, 0x02, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x03, 0x00, 0x00, 0x00, 0x2c, 0x1a, 0x00, 0x1b,
-  0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x02, 0x02, 0x04, 0x0a, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x04,
-  0x00, 0x04, 0x00, 0x2c, 0x16, 0x00, 0x1a, 0x00, 0x0c, 0x00, 0x04, 0x00, 0x00, 0x08, 0x23, 0x00,
-  0x09, 0x08, 0x1c, 0x48, 0xb0, 0x20, 0x05, 0x05, 0xef, 0xda, 0x99, 0xb3, 0x77, 0x8e, 0x0f, 0x2e,
-  0x02, 0x19, 0x1e, 0xa0, 0xb3, 0xf7, 0x45, 0x8b, 0x0a, 0x82, 0xbd, 0xc0, 0x50, 0xa2, 0x51, 0x70,
-  0x60, 0x40, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x06, 0x00, 0x03, 0x00, 0x2c, 0x15, 0x00, 0x1b, 0x00,
-  0x10, 0x00, 0x04, 0x00, 0x00, 0x08, 0x32, 0x00, 0x07, 0x08, 0x1c, 0x28, 0x30, 0x9d, 0xba, 0x78,
-  0x1b, 0x22, 0x10, 0x1c, 0xa8, 0x2e, 0x9d, 0xc3, 0x74, 0xe8, 0xe8, 0xe9, 0xa3, 0xe7, 0x81, 0x81,
-  0xc0, 0x08, 0xee, 0x1c, 0xba, 0xc3, 0x30, 0xa2, 0x11, 0x8c, 0x81, 0x30, 0x4a, 0x0d, 0xc0, 0x82,
-  0xcf, 0x1e, 0x3e, 0x6e, 0x00, 0x16, 0x2e, 0x0c, 0x08, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x04, 0x00,
-  0x04, 0x00, 0x2c, 0x14, 0x00, 0x1c, 0x00, 0x12, 0x00, 0x04, 0x00, 0x00, 0x08, 0x38, 0x00, 0x09,
-  0x08, 0x1c, 0x48, 0x30, 0x9d, 0xc1, 0x74, 0xef, 0x08, 0x2a, 0x1c, 0x88, 0xc1, 0x20, 0x3a, 0x74,
-  0xea, 0xda, 0x35, 0x10, 0x18, 0x01, 0x5e, 0x3a, 0x75, 0x08, 0x32, 0x34, 0xc0, 0x00, 0xe6, 0xd9,
-  0x16, 0x19, 0x30, 0x68, 0x98, 0xfa, 0xd2, 0x87, 0x00, 0x3e, 0x76, 0xed, 0x06, 0xe0, 0x02, 0xe3,
-  0xa9, 0xc6, 0xc2, 0x81, 0x01, 0x01, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x03, 0x00, 0x02, 0x00, 0x2c,
-  0x14, 0x00, 0x1d, 0x00, 0x13, 0x00, 0x05, 0x00, 0x00, 0x08, 0x3e, 0x00, 0x05, 0x08, 0x1c, 0x48,
-  0x50, 0x60, 0xba, 0x83, 0x05, 0x13, 0x0a, 0x78, 0x10, 0xef, 0xa0, 0xc3, 0x74, 0xea, 0x1a, 0x08,
-  0xc8, 0xe0, 0x2e, 0x9d, 0xc0, 0x11, 0x15, 0x21, 0xda, 0x8b, 0x74, 0xc5, 0x93, 0x27, 0x4a, 0x5f,
-  0xf0, 0x19, 0x99, 0x66, 0x4e, 0x5d, 0x3c, 0x12, 0xea, 0xd8, 0xd9, 0x7b, 0xa6, 0x45, 0x21, 0x41,
-  0x5d, 0xa6, 0x4c, 0x69, 0x61, 0xe1, 0x92, 0x60, 0x40, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x03, 0x00,
-  0x00, 0x00, 0x2c, 0x13, 0x00, 0x1f, 0x00, 0x15, 0x00, 0x04, 0x00, 0x00, 0x08, 0x39, 0x00, 0x01,
-  0x08, 0x1c, 0x48, 0x30, 0x9d, 0xc1, 0x83, 0x06, 0xdb, 0x31, 0x10, 0xb8, 0xc1, 0xe0, 0x40, 0x84,
-  0xe9, 0xd0, 0xd9, 0xfb, 0x42, 0xf1, 0x8b, 0x3d, 0x0f, 0x00, 0x82, 0x7d, 0x31, 0xe7, 0x4e, 0x1d,
-  0x42, 0x73, 0xdb, 0x28, 0xc1, 0x20, 0x28, 0xb0, 0xc6, 0x40, 0x15, 0xcb, 0x88, 0x3d, 0x7b, 0x46,
-  0x49, 0x96, 0x0a, 0x92, 0x30, 0x03, 0x02, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x07, 0x00, 0x01, 0x00,
-  0x2c, 0x13, 0x00, 0x20, 0x00, 0x15, 0x00, 0x04, 0x00, 0x00, 0x08, 0x39, 0x00, 0x03, 0x08, 0x1c,
-  0x48, 0x50, 0x60, 0xba, 0x83, 0x08, 0xd3, 0x09, 0xa4, 0xa0, 0x4e, 0x61, 0xc1, 0x84, 0xe9, 0xd8,
-  0xd9, 0x9b, 0xa8, 0x0f, 0x5d, 0x84, 0x55, 0xdb, 0xcc, 0x45, 0xf0, 0x00, 0x51, 0x9d, 0xbd, 0x2f,
-  0xa6, 0x6a, 0x10, 0x94, 0x11, 0x4b, 0x20, 0x0b, 0x5f, 0x5f, 0xb6, 0xe1, 0xc3, 0x17, 0xe9, 0x19,
-  0x92, 0x82, 0x05, 0x03, 0x02, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x03, 0x00, 0x00, 0x00, 0x2c, 0x13,
-  0x00, 0x21, 0x00, 0x15, 0x00, 0x04, 0x00, 0x00, 0x08, 0x3b, 0x00, 0x01, 0x08, 0x1c, 0x48, 0x90,
-  0x60, 0xba, 0x83, 0x08, 0x01, 0x20, 0x38, 0x58, 0x50, 0x20, 0x42, 0x84, 0xea, 0xd8, 0xa1, 0x4b,
-  0x87, 0x01, 0xd3, 0x36, 0x73, 0xf1, 0xd4, 0x3d, 0x44, 0x88, 0xce, 0xde, 0x17, 0x53, 0x32, 0x6a,
-  0xc0, 0xd0, 0xf2, 0x49, 0x20, 0x0b, 0x4f, 0x5f, 0xec, 0x99, 0x63, 0xc7, 0xce, 0xde, 0x36, 0x4a,
-  0x32, 0x1a, 0x0a, 0x0c, 0x08, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x04, 0x00, 0x00, 0x00, 0x2c, 0x13,
-  0x00, 0x22, 0x00, 0x15, 0x00, 0x05, 0x00, 0x00, 0x08, 0x3c, 0x00, 0x01, 0x08, 0x1c, 0x48, 0xb0,
-  0x20, 0x80, 0x74, 0x08, 0x05, 0x7a, 0x48, 0x68, 0x50, 0x20, 0xc2, 0x87, 0x0f, 0xdf, 0x81, 0xc1,
-  0xc7, 0x0e, 0xa2, 0x45, 0x84, 0xec, 0xf0, 0x7d, 0xa1, 0xe4, 0x49, 0x53, 0x35, 0x81, 0x2c, 0x3c,
-  0x7d, 0xb1, 0xa7, 0xee, 0xa1, 0x3a, 0x7d, 0x5f, 0x3c, 0xd5, 0x68, 0x58, 0x50, 0x86, 0xa9, 0x52,
-  0xa6, 0x64, 0xb0, 0x14, 0x18, 0x10, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x03, 0x00, 0x00, 0x00, 0x2c,
-  0x13, 0x00, 0x24, 0x00, 0x15, 0x00, 0x04, 0x00, 0x00, 0x08, 0x36, 0x00, 0xdd, 0xa5, 0x4b, 0x07,
-  0xa0, 0xa0, 0xc1, 0x83, 0x00, 0x06, 0x2a, 0x4c, 0x07, 0x6f, 0x9b, 0x3d, 0x76, 0x0b, 0x0d, 0x2e,
-  0x1c, 0x68, 0x0e, 0x5f, 0xa4, 0x48, 0xdb, 0x0a, 0xd6, 0xf0, 0x14, 0x89, 0xde, 0xc4, 0x74, 0xe8,
-  0xec, 0x7d, 0x31, 0xa5, 0x02, 0x21, 0x42, 0x2d, 0x57, 0xbe, 0xa8, 0xa4, 0x94, 0xc3, 0x64, 0xc1,
-  0x80, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x07, 0x00, 0x01, 0x00, 0x2c, 0x13, 0x00, 0x25, 0x00, 0x15,
-  0x00, 0x04, 0x00, 0x00, 0x08, 0x36, 0x00, 0xdb, 0xa5, 0x4b, 0x17, 0xa0, 0xa0, 0xc1, 0x83, 0x06,
-  0x07, 0x0e, 0x54, 0x87, 0x8f, 0x1e, 0x3a, 0x85, 0x08, 0x03, 0x28, 0x5c, 0xc8, 0x4e, 0x9f, 0xbd,
-  0x82, 0x32, 0x34, 0x6d, 0xa3, 0x37, 0x71, 0x22, 0x3b, 0x7b, 0xcf, 0xb4, 0xa8, 0x88, 0x18, 0x40,
-  0x85, 0xa9, 0x2f, 0xdb, 0xec, 0xa9, 0x8c, 0x44, 0x49, 0x46, 0xc4, 0x80, 0x00, 0x21, 0xf9, 0x04,
-  0x05, 0x03, 0x00, 0x01, 0x00, 0x2c, 0x13, 0x00, 0x26, 0x00, 0x15, 0x00, 0x04, 0x00, 0x00, 0x08,
-  0x34, 0x00, 0xdd, 0xa5, 0x4b, 0x17, 0xa0, 0xa0, 0xc1, 0x83, 0x07, 0x07, 0xa6, 0x83, 0xe7, 0x41,
-  0xe1, 0x40, 0x84, 0x06, 0x1d, 0x0e, 0x7c, 0xe7, 0x4c, 0x86, 0x2c, 0x4a, 0x5f, 0xcc, 0x49, 0x94,
-  0x68, 0x6e, 0xdb, 0x15, 0x59, 0x8c, 0x20, 0x9a, 0xfa, 0x62, 0x8f, 0x9d, 0xba, 0x74, 0xec, 0xec,
-  0x7d, 0x31, 0x85, 0x30, 0x20, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x03, 0x00, 0x00, 0x00, 0x2c, 0x13,
-  0x00, 0x28, 0x00, 0x15, 0x00, 0x04, 0x00, 0x00, 0x08, 0x38, 0x00, 0x11, 0xa4, 0x1b, 0x38, 0x10,
-  0x80, 0xc1, 0x83, 0x08, 0x09, 0xa6, 0x53, 0x60, 0x84, 0x12, 0xa5, 0x67, 0xdb, 0xe8, 0x29, 0x4c,
-  0x07, 0x60, 0x22, 0x3a, 0x7b, 0x91, 0x8c, 0x20, 0x04, 0xa0, 0x62, 0xcb, 0x17, 0x7b, 0xe8, 0x14,
-  0xb2, 0xb3, 0xf7, 0x6c, 0xc6, 0xc6, 0x93, 0x00, 0x60, 0x98, 0xf2, 0xe4, 0x49, 0x0b, 0x8b, 0x93,
-  0x01, 0x01, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x04, 0x00, 0x01, 0x00, 0x2c, 0x13, 0x00, 0x29, 0x00,
-  0x15, 0x00, 0x04, 0x00, 0x00, 0x08, 0x3a, 0x00, 0x29, 0xa8, 0x4b, 0x47, 0x30, 0x5d, 0x80, 0x83,
-  0x08, 0x13, 0x06, 0x20, 0xa8, 0x8e, 0x41, 0x00, 0x6e, 0x91, 0x22, 0x6d, 0xa3, 0x37, 0x90, 0x60,
-  0xc2, 0x82, 0x04, 0x21, 0x28, 0x3c, 0xa8, 0xe5, 0x8b, 0x3d, 0x74, 0x18, 0xd3, 0xa9, 0xa3, 0x17,
-  0x49, 0x53, 0xb0, 0x8d, 0x09, 0x65, 0x78, 0x7a, 0xf6, 0xe5, 0x0b, 0x25, 0x2d, 0x2a, 0x12, 0x06,
-  0x04, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x06, 0x00, 0x04, 0x00, 0x2c, 0x14, 0x00, 0x2a, 0x00, 0x13,
-  0x00, 0x04, 0x00, 0x00, 0x08, 0x30, 0x00, 0x1f, 0xa4, 0x1b, 0x38, 0x90, 0x80, 0xc1, 0x83, 0x08,
-  0x0f, 0x66, 0xc0, 0x87, 0xcf, 0x1e, 0x3d, 0x74, 0x04, 0x13, 0x12, 0x84, 0x47, 0x21, 0x21, 0x8d,
-  0x2b, 0xf8, 0xd8, 0x11, 0xdc, 0xd8, 0x6e, 0x40, 0x42, 0x84, 0x30, 0x3c, 0x7d, 0xd9, 0x86, 0x6f,
-  0xdb, 0x17, 0x4f, 0x07, 0x03, 0x02, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x04, 0x00, 0x01, 0x00, 0x2c,
-  0x15, 0x00, 0x2b, 0x00, 0x11, 0x00, 0x04, 0x00, 0x00, 0x08, 0x2c, 0x00, 0xdd, 0xa5, 0x1b, 0x98,
-  0x2e, 0x80, 0xc1, 0x83, 0x08, 0x0d, 0x46, 0xa0, 0xa7, 0x8f, 0x1e, 0x3a, 0x82, 0x09, 0x0d, 0xaa,
-  0x4b, 0x08, 0xc3, 0x53, 0x24, 0x7d, 0xea, 0x08, 0x0e, 0x54, 0xd7, 0x20, 0xe2, 0x41, 0x2d, 0xcf,
-  0xb6, 0xd9, 0x1b, 0xc9, 0xcd, 0x60, 0x40, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x03, 0x00, 0x00, 0x00,
-  0x2c, 0x16, 0x00, 0x2c, 0x00, 0x0e, 0x00, 0x04, 0x00, 0x00, 0x08, 0x27, 0x00, 0xdb, 0xa5, 0x1b,
-  0x08, 0xa0, 0xa0, 0xc1, 0x83, 0x23, 0xd8, 0x99, 0x43, 0x37, 0x90, 0xe0, 0xc1, 0x83, 0x35, 0xb4,
-  0x3c, 0xb3, 0xc7, 0xae, 0xe1, 0xc0, 0x0d, 0x0f, 0x0b, 0xc2, 0xa0, 0x14, 0xc9, 0x1e, 0x3d, 0x73,
-  0x19, 0x02, 0x02, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x03, 0x00, 0x00, 0x00, 0x2c, 0x17, 0x00, 0x2d,
-  0x00, 0x0c, 0x00, 0x04, 0x00, 0x00, 0x08, 0x24, 0x00, 0xd5, 0xa5, 0x4b, 0x07, 0xa0, 0xa0, 0x41,
-  0x83, 0x1b, 0xd8, 0xb1, 0x1b, 0x38, 0xf0, 0x60, 0x41, 0x28, 0x2a, 0x64, 0x78, 0xfa, 0x62, 0x0f,
-  0x1d, 0xc3, 0x76, 0x0e, 0x0b, 0xe6, 0x78, 0x86, 0x4f, 0xdf, 0x86, 0x80, 0x00, 0x21, 0xf9, 0x04,
-  0x05, 0x07, 0x00, 0x00, 0x00, 0x2c, 0x17, 0x00, 0x2e, 0x00, 0x0c, 0x00, 0x04, 0x00, 0x00, 0x08,
-  0x23, 0x00, 0x01, 0xa4, 0x4b, 0x07, 0xa0, 0xa0, 0x41, 0x83, 0x19, 0xe0, 0xb1, 0x63, 0xa7, 0x6e,
-  0x20, 0xc1, 0x83, 0x06, 0x69, 0x78, 0xfa, 0xa2, 0xaf, 0x61, 0xba, 0x07, 0x10, 0x0d, 0x6a, 0x79,
-  0x86, 0x6f, 0x44, 0x40, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x03, 0x00, 0x00, 0x00, 0x2c, 0x18, 0x00,
-  0x2f, 0x00, 0x0b, 0x00, 0x04, 0x00, 0x00, 0x08, 0x23, 0x00, 0x01, 0xa4, 0x1b, 0x08, 0xa0, 0xa0,
-  0x41, 0x00, 0x1b, 0xd8, 0xd1, 0x33, 0x87, 0x6e, 0x60, 0x3a, 0x83, 0xcd, 0x54, 0x14, 0x84, 0x61,
-  0xea, 0x8b, 0x3d, 0x75, 0x0f, 0x0f, 0x1e, 0xe4, 0xf5, 0xcc, 0x41, 0x40, 0x00, 0x21, 0xf9, 0x04,
-  0x05, 0x04, 0x00, 0x00, 0x00, 0x2c, 0x18, 0x00, 0x30, 0x00, 0x0b, 0x00, 0x04, 0x00, 0x00, 0x08,
-  0x1e, 0x00, 0x01, 0xa4, 0x1b, 0x98, 0x0e, 0x80, 0xc1, 0x83, 0x23, 0xcc, 0xd9, 0x5b, 0x68, 0x4e,
-  0xdd, 0xc0, 0x83, 0x10, 0x01, 0x20, 0x79, 0x66, 0x8f, 0x5d, 0x86, 0x88, 0x18, 0x03, 0x02, 0x00,
-  0x21, 0xf9, 0x04, 0x05, 0x03, 0x00, 0x00, 0x00, 0x2c, 0x18, 0x00, 0x31, 0x00, 0x0a, 0x00, 0x03,
-  0x00, 0x00, 0x08, 0x1a, 0x00, 0x01, 0xa4, 0x1b, 0x48, 0x10, 0x80, 0xc1, 0x0c, 0xf4, 0xf0, 0x45,
-  0x5a, 0x68, 0x8f, 0x5d, 0x3a, 0x75, 0x06, 0x23, 0x1a, 0x64, 0x61, 0x8a, 0x5b, 0x40, 0x00, 0x21,
-  0xf9, 0x04, 0x05, 0x07, 0x00, 0x00, 0x00, 0x2c, 0x19, 0x00, 0x32, 0x00, 0x09, 0x00, 0x02, 0x00,
-  0x00, 0x08, 0x14, 0x00, 0xd5, 0xa5, 0x1b, 0x48, 0x10, 0x00, 0x00, 0x12, 0x91, 0x28, 0x99, 0x32,
-  0xe5, 0xe9, 0x0b, 0x3e, 0x04, 0x01, 0x01, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x03, 0x00, 0x00, 0x00,
-  0x2c, 0x19, 0x00, 0x33, 0x00, 0x09, 0x00, 0x02, 0x00, 0x00, 0x08, 0x15, 0x00, 0x11, 0xa8, 0x53,
-  0x67, 0xce, 0x9e, 0x3d, 0x73, 0xe8, 0x00, 0x00, 0xa0, 0x70, 0x4b, 0xa1, 0x42, 0x66, 0x00, 0x02,
-  0x02, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x03, 0x00, 0x00, 0x00, 0x2c, 0x1a, 0x00, 0x33, 0x00, 0x07,
-  0x00, 0x02, 0x00, 0x00, 0x08, 0x0e, 0x00, 0x01, 0xa4, 0x1b, 0x38, 0x50, 0x1d, 0x80, 0x11, 0x08,
-  0x11, 0x32, 0x08, 0x08, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x21, 0x00, 0x00, 0x00, 0x2c, 0x1d, 0x00,
-  0x34, 0x00, 0x03, 0x00, 0x01, 0x00, 0x00, 0x02, 0x02, 0x84, 0x0b, 0x00, 0x3b,
+    0x47, 0x49, 0x46, 0x38, 0x39, 0x61, 0x3c, 0x00, 0x50, 0x00, 0xf7, 0x00, 0x00, 0xfa, 0xfb, 0xfb,
+    0xfd, 0xfd, 0xfd, 0xff, 0xff, 0xff, 0xd9, 0xec, 0xfe, 0x1e, 0x93, 0xfe, 0x23, 0x95, 0xfd, 0x5f,
+    0xb2, 0xff, 0x52, 0xac, 0xfe, 0xb1, 0xd8, 0xff, 0xce, 0xe7, 0xff, 0xa3, 0xd2, 0xff, 0x80, 0xc0,
+    0xfe, 0xe2, 0xf1, 0xfe, 0xca, 0xe5, 0xff, 0xf4, 0xf7, 0xf9, 0x8b, 0xc4, 0xff, 0x7e, 0xbe, 0xff,
+    0xe0, 0xee, 0xff, 0xc6, 0xe4, 0xff, 0xbc, 0xde, 0xff, 0xec, 0xf5, 0xff, 0x1d, 0x92, 0xfd, 0x3f,
+    0x9f, 0xfe, 0x71, 0xbb, 0xff, 0x9f, 0xcf, 0xfe, 0xf2, 0xf9, 0xff, 0x31, 0x9c, 0xfe, 0x98, 0xcb,
+    0xff, 0x49, 0xa8, 0xfe, 0xbe, 0xe0, 0xff, 0x6d, 0xb3, 0xfe, 0x4c, 0xa9, 0xfe, 0xc4, 0xe2, 0xff,
+    0x4a, 0xa8, 0xfe, 0x45, 0xa3, 0xfa, 0xd2, 0xe7, 0xfc, 0xbd, 0xde, 0xff, 0xf9, 0xf9, 0xf9, 0xf7,
+    0xf8, 0xf8, 0xe2, 0xe2, 0xe2, 0xdd, 0xde, 0xdd, 0xe5, 0xea, 0xef, 0xff, 0xb7, 0x50, 0xff, 0xba,
+    0x56, 0xfd, 0xb7, 0x51, 0xff, 0xb7, 0x4f, 0xff, 0xb8, 0x50, 0xc5, 0xc4, 0xc1, 0xfa, 0xb7, 0x55,
+    0xee, 0xb3, 0x5b, 0xf7, 0xb5, 0x57, 0xf1, 0xb5, 0x5e, 0xf5, 0xb6, 0x5b, 0xfd, 0xb7, 0x54, 0xcd,
+    0xcd, 0xcc, 0xe5, 0xe8, 0xea, 0xcf, 0xb2, 0x85, 0xf5, 0xb8, 0x5f, 0xee, 0xef, 0xf0, 0xc0, 0xbf,
+    0xbe, 0xe4, 0xb1, 0x66, 0xff, 0xb7, 0x51, 0xda, 0xda, 0xda, 0xec, 0xed, 0xee, 0xdf, 0xdf, 0xdf,
+    0xd1, 0xd2, 0xd1, 0xe4, 0xe5, 0xe5, 0xff, 0xe5, 0xbf, 0xff, 0xc5, 0x73, 0xff, 0xeb, 0xce, 0xf0,
+    0xf3, 0xf5, 0xc8, 0xc8, 0xc8, 0xed, 0xb4, 0x61, 0xd8, 0xd8, 0xd7, 0xff, 0xdb, 0xa7, 0xff, 0xe1,
+    0xb7, 0xff, 0xc1, 0x68, 0xfc, 0xf7, 0xee, 0xff, 0xc9, 0x7c, 0xff, 0xd2, 0x92, 0xfa, 0xba, 0x5e,
+    0xff, 0xcc, 0x84, 0xff, 0xe8, 0xc6, 0xff, 0xfb, 0xf6, 0xff, 0xf5, 0xe8, 0xff, 0xf9, 0xf1, 0xff,
+    0xed, 0xd5, 0xc9, 0xba, 0xa0, 0xf1, 0xf1, 0xf1, 0xf6, 0xf6, 0xf6, 0xeb, 0xb7, 0x6a, 0xe3, 0xb5,
+    0x6f, 0xff, 0xbd, 0x5f, 0xa9, 0xa9, 0xa9, 0xd6, 0xd6, 0xd6, 0xb2, 0xb2, 0xb2, 0xb9, 0xb9, 0xb9,
+    0x97, 0x98, 0x96, 0x9e, 0x9e, 0x9e, 0xa5, 0xa5, 0xa5, 0x45, 0x45, 0x45, 0x46, 0x46, 0x46, 0x47,
+    0x47, 0x47, 0x4a, 0x4a, 0x4a, 0x4d, 0x4d, 0x4d, 0x50, 0x50, 0x50, 0x53, 0x53, 0x53, 0x58, 0x58,
+    0x58, 0x5a, 0x5a, 0x5a, 0x5d, 0x5d, 0x5d, 0x5f, 0x5f, 0x5f, 0x63, 0x63, 0x63, 0x66, 0x66, 0x66,
+    0x6a, 0x6a, 0x6a, 0x6d, 0x6d, 0x6d, 0x70, 0x70, 0x70, 0x75, 0x75, 0x75, 0x79, 0x79, 0x79, 0x7c,
+    0x7c, 0x7c, 0x80, 0x80, 0x80, 0x84, 0x84, 0x84, 0x88, 0x88, 0x88, 0x8b, 0x8b, 0x8b, 0x8f, 0x8f,
+    0x8f, 0xd5, 0xd5, 0xd5, 0xe7, 0xe7, 0xe7, 0xea, 0xea, 0xea, 0xf4, 0xf4, 0xf4, 0xf2, 0xf4, 0xf5,
+    0xff, 0xd6, 0x9b, 0xff, 0xde, 0xaf, 0xff, 0xfe, 0xfc, 0xff, 0xf1, 0xde, 0xff, 0xd6, 0x9c, 0xff,
+    0xcf, 0x8b, 0xfa, 0xd6, 0xa1, 0xf7, 0xc4, 0x7b, 0xf8, 0xbd, 0x67, 0xeb, 0xb5, 0x65, 0xf9, 0xf9,
+    0xf8, 0xf1, 0xdb, 0xbb, 0xdb, 0xd7, 0xce, 0xe3, 0xdb, 0xcc, 0xda, 0xd2, 0xc3, 0xe3, 0xd6, 0xc0,
+    0xae, 0xae, 0xae, 0xe4, 0xcb, 0xa6, 0xe5, 0xe2, 0xdc, 0xd0, 0xb8, 0x90, 0x56, 0x56, 0x56, 0xcd,
+    0xcb, 0xc6, 0xcf, 0xc4, 0xaf, 0xcf, 0xc9, 0xbc, 0xd0, 0xbe, 0xa0, 0xd8, 0xbb, 0x8e, 0xd8, 0xbf,
+    0x98, 0xd8, 0xc5, 0xa5, 0xd8, 0xd4, 0xcb, 0xda, 0xb7, 0x82, 0xdb, 0xca, 0xaf, 0xdb, 0xcd, 0xb6,
+    0xdd, 0xbe, 0x8e, 0xdd, 0xc3, 0x9b, 0xdd, 0xdb, 0xd5, 0xde, 0xc8, 0xa5, 0xe0, 0xbb, 0x82, 0xe2,
+    0xb8, 0x79, 0xe4, 0xc2, 0x8e, 0xe4, 0xc6, 0x99, 0xe4, 0xd1, 0xb3, 0xe5, 0xbe, 0x84, 0xe5, 0xdf,
+    0xd4, 0xe9, 0xdb, 0xc5, 0xe9, 0xde, 0xce, 0xea, 0xbe, 0x7b, 0xea, 0xc1, 0x85, 0xea, 0xd3, 0xb0,
+    0xea, 0xd8, 0xbc, 0xeb, 0xba, 0x71, 0xeb, 0xc5, 0x8e, 0xeb, 0xcb, 0x9a, 0xeb, 0xe4, 0xd9, 0xec,
+    0xd0, 0xa5, 0xec, 0xe9, 0xe3, 0xed, 0xec, 0xea, 0xef, 0xe7, 0xd9, 0xf0, 0xbc, 0x71, 0xf0, 0xc0,
+    0x7a, 0xf1, 0xb9, 0x68, 0xf3, 0xf0, 0xea, 0xf4, 0xc7, 0x86, 0xf4, 0xcb, 0x8e, 0xf7, 0xc0, 0x71,
+    0xf9, 0xf7, 0xf4, 0xfd, 0xf5, 0xeb, 0xf5, 0xd0, 0x99, 0xda, 0xcf, 0xbd, 0xdc, 0xb1, 0x6f, 0xf2,
+    0xd7, 0xb0, 0xed, 0xdf, 0xca, 0xc8, 0xb3, 0x8f, 0xd9, 0xb3, 0x78, 0xd2, 0xb0, 0x7c, 0xf3, 0xed,
+    0xe4, 0xf4, 0xf3, 0xf1, 0xf5, 0xea, 0xd8, 0xf5, 0xe3, 0xc9, 0xc1, 0xb7, 0xa3, 0xc5, 0xbe, 0xaf,
+    0xd7, 0xac, 0x6b, 0xc1, 0xb2, 0x95, 0xd2, 0xd6, 0xd6, 0xcf, 0xa9, 0x70, 0xbc, 0xb9, 0xb1, 0xc7,
+    0xa8, 0x76, 0x41, 0x84, 0xd5, 0xb0, 0xa2, 0x86, 0x39, 0x81, 0xd9, 0x78, 0x92, 0xad, 0x88, 0xa0,
+    0xb5, 0xb9, 0xcf, 0xe9, 0xbf, 0xa5, 0x7b, 0x40, 0x83, 0xd4, 0x80, 0x95, 0xa8, 0x80, 0x96, 0xa9,
+    0x49, 0x86, 0xcf, 0x87, 0x96, 0xa2, 0x48, 0x85, 0xcd, 0x60, 0x8c, 0xbe, 0x2e, 0x7e, 0xdf, 0x18,
+    0x78, 0xee, 0x9e, 0xbd, 0xe1, 0x06, 0x74, 0xfc, 0x00, 0x72, 0xff, 0x01, 0x73, 0xff, 0x47, 0xa1,
+    0xfe, 0x0e, 0x76, 0xf7, 0x16, 0x7d, 0xfc, 0x32, 0x8d, 0xfe, 0x61, 0xa7, 0xfe, 0x24, 0x85, 0xfc,
+    0x55, 0xa1, 0xff, 0x54, 0xa1, 0xff, 0x1e, 0x88, 0xfa, 0x20, 0x7b, 0xea, 0x9e, 0x9c, 0x93, 0x61,
+    0x9c, 0xdc, 0x6f, 0x90, 0xb3, 0x84, 0xaf, 0xe1, 0x54, 0x89, 0xc6, 0x24, 0x7c, 0xe7, 0xa7, 0x9f,
+    0x8c, 0x68, 0x8e, 0xb7, 0x8f, 0x98, 0x9d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0xff, 0x0b,
+    0x4e, 0x45, 0x54, 0x53, 0x43, 0x41, 0x50, 0x45, 0x32, 0x2e, 0x30, 0x03, 0x01, 0x00, 0x00, 0x00,
+    0x21, 0xf9, 0x04, 0x05, 0x25, 0x00, 0x04, 0x00, 0x21, 0xfe, 0x23, 0x52, 0x65, 0x73, 0x69, 0x7a,
+    0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x65, 0x7a,
+    0x67, 0x69, 0x66, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x65, 0x00, 0x2c,
+    0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x50, 0x00, 0x00, 0x08, 0xff, 0x00, 0x03, 0x08, 0x1c, 0x48,
+    0xb0, 0xa0, 0xc1, 0x83, 0x08, 0x13, 0x2a, 0x5c, 0xc8, 0xb0, 0xa1, 0xc3, 0x87, 0x10, 0x23, 0x4a,
+    0x9c, 0x48, 0xb1, 0xa2, 0xc5, 0x8b, 0x18, 0x33, 0x6a, 0xdc, 0xc8, 0xb1, 0xa3, 0xc7, 0x8f, 0x20,
+    0x43, 0x8a, 0x1c, 0x49, 0xb2, 0xa4, 0xc9, 0x93, 0x28, 0x53, 0xaa, 0x5c, 0xc9, 0xb2, 0xa5, 0xcb,
+    0x97, 0x30, 0x63, 0xca, 0x9c, 0x49, 0xb3, 0xa6, 0xcd, 0x9b, 0x38, 0x63, 0x52, 0x50, 0xf0, 0xae,
+    0x5d, 0x3a, 0x75, 0xf1, 0x36, 0x44, 0x88, 0x99, 0xe1, 0x81, 0xba, 0x74, 0x48, 0x93, 0x22, 0x7d,
+    0xc7, 0xc0, 0x65, 0x04, 0x77, 0x48, 0xdd, 0x61, 0x18, 0x81, 0x41, 0x69, 0xba, 0x76, 0x0d, 0x58,
+    0x46, 0x80, 0xf7, 0x13, 0x41, 0x86, 0x06, 0x0f, 0xe2, 0x59, 0xfd, 0x99, 0x35, 0x65, 0x06, 0xa8,
+    0xed, 0x06, 0x8c, 0x80, 0x3a, 0x36, 0x69, 0xbb, 0xa6, 0x28, 0x37, 0x20, 0x8d, 0x47, 0xe2, 0x68,
+    0x5b, 0xa5, 0x1e, 0x50, 0x52, 0x38, 0xea, 0xce, 0xee, 0x5d, 0xab, 0x43, 0x4d, 0x22, 0x40, 0x1a,
+    0xc1, 0xc3, 0xdf, 0xb1, 0x18, 0x4e, 0x1a, 0x4e, 0x17, 0xcf, 0xef, 0xe1, 0xa5, 0x27, 0xd9, 0x3e,
+    0x1e, 0x0b, 0xef, 0xa4, 0xcf, 0xc9, 0x63, 0xd5, 0x45, 0xc6, 0x4c, 0x59, 0x31, 0x67, 0xab, 0xef,
+    0x4e, 0x0e, 0xfe, 0x9c, 0x54, 0xc1, 0xc9, 0xbd, 0xa4, 0x7f, 0xc2, 0x35, 0xf9, 0x20, 0x35, 0x04,
+    0xb3, 0x92, 0x27, 0xc3, 0xa3, 0xa0, 0x32, 0xc2, 0xe5, 0xc7, 0xea, 0x06, 0xb0, 0x1c, 0xe1, 0xb8,
+    0xad, 0xba, 0xb2, 0x2c, 0xe5, 0x1e, 0xde, 0xf0, 0x32, 0x03, 0xd7, 0xbb, 0xed, 0x32, 0xc0, 0x14,
+    0xde, 0xf6, 0x41, 0xcc, 0x11, 0x7f, 0x47, 0x10, 0xed, 0x8d, 0x54, 0x9d, 0xf2, 0x98, 0x08, 0x7a,
+    0xab, 0x43, 0x40, 0x93, 0xc2, 0x88, 0xef, 0xdf, 0x57, 0xe7, 0x9c, 0xa4, 0xf9, 0xe7, 0x8b, 0xf9,
+    0xf3, 0xe6, 0xb3, 0xc8, 0xec, 0xc3, 0xa6, 0xbd, 0xfb, 0xf6, 0x7d, 0x64, 0x9a, 0x78, 0xff, 0x1e,
+    0xcb, 0xcc, 0x3d, 0xf4, 0xd9, 0xe4, 0xa1, 0x29, 0x44, 0x4d, 0x99, 0xff, 0x65, 0xa4, 0x01, 0x44,
+    0x4d, 0x7d, 0xec, 0x71, 0x86, 0x19, 0x7a, 0x9c, 0x80, 0x13, 0x00, 0x00, 0x8c, 0xe7, 0xe0, 0x83,
+    0x30, 0x99, 0xf0, 0x07, 0x16, 0x3a, 0xfc, 0x80, 0x8b, 0x1f, 0x7e, 0xf4, 0xa1, 0xe1, 0x86, 0x1c,
+    0xf6, 0x81, 0xa1, 0x1f, 0xb8, 0xfc, 0xa0, 0x03, 0x16, 0x7f, 0x98, 0xf0, 0xd1, 0x0f, 0x7d, 0x08,
+    0x71, 0x02, 0x10, 0x28, 0xf8, 0xe0, 0x43, 0x12, 0x49, 0x78, 0xc1, 0xc7, 0x8c, 0x34, 0xce, 0xe8,
+    0x05, 0x8c, 0x2e, 0xa2, 0x00, 0xc4, 0x09, 0x42, 0xf4, 0xf1, 0x03, 0x84, 0x40, 0x06, 0x29, 0xe4,
+    0x90, 0x44, 0x16, 0x69, 0xe4, 0x91, 0x48, 0x56, 0x74, 0x5d, 0x00, 0x4b, 0xce, 0x94, 0x01, 0x03,
+    0x14, 0x30, 0x00, 0x00, 0x94, 0x51, 0x52, 0x40, 0x1b, 0x4c, 0x03, 0x50, 0x99, 0xc1, 0x00, 0x19,
+    0x58, 0x49, 0x41, 0x93, 0x2d, 0x05, 0x04, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x06, 0x00, 0x00, 0x00,
+    0x2c, 0x19, 0x00, 0x33, 0x00, 0x04, 0x00, 0x02, 0x00, 0x00, 0x08, 0x0c, 0x00, 0xb9, 0xd9, 0x43,
+    0x07, 0x00, 0x80, 0xb0, 0x5b, 0x00, 0x02, 0x02, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x04, 0x00, 0x00,
+    0x00, 0x2c, 0x19, 0x00, 0x32, 0x00, 0x07, 0x00, 0x03, 0x00, 0x00, 0x08, 0x16, 0x00, 0xe9, 0xa9,
+    0x03, 0x40, 0x90, 0xa0, 0xb3, 0x19, 0x57, 0xf0, 0xb1, 0x2b, 0x08, 0xc0, 0x8a, 0x95, 0x66, 0x29,
+    0x00, 0x04, 0x04, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x03, 0x00, 0x02, 0x00, 0x2c, 0x18, 0x00, 0x32,
+    0x00, 0x09, 0x00, 0x03, 0x00, 0x00, 0x08, 0x19, 0x00, 0x4b, 0x94, 0xba, 0xb2, 0xcd, 0x9c, 0x80,
+    0x83, 0x08, 0x55, 0xb4, 0xe8, 0x61, 0xea, 0x8b, 0x3d, 0x74, 0x08, 0x0f, 0x5a, 0x99, 0x28, 0x2c,
+    0x20, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x03, 0x00, 0x00, 0x00, 0x2c, 0x18, 0x00, 0x31, 0x00, 0x0a,
+    0x00, 0x04, 0x00, 0x00, 0x08, 0x20, 0x00, 0x53, 0x6c, 0xb3, 0x47, 0x4f, 0x1d, 0x80, 0x83, 0x07,
+    0x17, 0xd5, 0x68, 0xd1, 0x42, 0xcb, 0x33, 0x7b, 0xec, 0x10, 0x22, 0x64, 0xd8, 0x42, 0x86, 0x26,
+    0x6e, 0x12, 0x33, 0x02, 0x08, 0x08, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x07, 0x00, 0x00, 0x00, 0x2c,
+    0x18, 0x00, 0x30, 0x00, 0x0a, 0x00, 0x04, 0x00, 0x00, 0x08, 0x20, 0x00, 0x01, 0xa0, 0x53, 0x07,
+    0xa0, 0xa0, 0x41, 0x00, 0xcb, 0x64, 0xc8, 0xd0, 0x42, 0x69, 0x9b, 0xb9, 0x83, 0x06, 0x5b, 0x48,
+    0x34, 0xf5, 0xc5, 0x1e, 0xc4, 0x82, 0x2d, 0x54, 0x30, 0x0a, 0x08, 0x00, 0x21, 0xf9, 0x04, 0x05,
+    0x03, 0x00, 0x00, 0x00, 0x2c, 0x18, 0x00, 0x30, 0x00, 0x0b, 0x00, 0x03, 0x00, 0x00, 0x08, 0x1d,
+    0x00, 0xb9, 0x7d, 0x19, 0x18, 0xc9, 0x1e, 0x3a, 0x00, 0x08, 0x01, 0x10, 0x6a, 0xc1, 0x90, 0xa1,
+    0x0c, 0x4a, 0xdb, 0xcc, 0x25, 0x9c, 0x08, 0x80, 0x61, 0x8d, 0x60, 0x01, 0x01, 0x00, 0x21, 0xf9,
+    0x04, 0x05, 0x04, 0x00, 0x00, 0x00, 0x2c, 0x18, 0x00, 0x2f, 0x00, 0x0b, 0x00, 0x04, 0x00, 0x00,
+    0x08, 0x22, 0x00, 0x01, 0xb0, 0xd3, 0x67, 0xcf, 0x1e, 0x3b, 0x00, 0x08, 0x11, 0xc6, 0xaa, 0xd1,
+    0xa2, 0x21, 0x0b, 0x2d, 0x5f, 0xec, 0xa1, 0x4b, 0x48, 0xb1, 0x61, 0x0b, 0x1a, 0xb7, 0x28, 0x6a,
+    0xec, 0x01, 0x20, 0x20, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x03, 0x00, 0x00, 0x00, 0x2c, 0x18, 0x00,
+    0x2f, 0x00, 0x0b, 0x00, 0x03, 0x00, 0x00, 0x08, 0x1f, 0x00, 0xed, 0x7d, 0xd1, 0xa4, 0x45, 0x91,
+    0x16, 0x4a, 0x91, 0xec, 0xa9, 0x03, 0x60, 0xac, 0x05, 0x80, 0x87, 0x2d, 0x22, 0xb6, 0x40, 0x12,
+    0xe4, 0xa1, 0xc5, 0x8b, 0x2d, 0x9a, 0x05, 0x04, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x07, 0x00, 0x00,
+    0x00, 0x2c, 0x17, 0x00, 0x2e, 0x00, 0x0d, 0x00, 0x03, 0x00, 0x00, 0x08, 0x20, 0x00, 0x01, 0x00,
+    0x40, 0x67, 0x2f, 0xd2, 0x97, 0x83, 0xdb, 0xe8, 0xa9, 0x13, 0x08, 0xe0, 0x8a, 0x8c, 0x16, 0x10,
+    0x23, 0xb6, 0xd8, 0xf2, 0x85, 0xa1, 0x45, 0x8b, 0x2d, 0x0e, 0x01, 0x08, 0x08, 0x00, 0x21, 0xf9,
+    0x04, 0x05, 0x03, 0x00, 0x00, 0x00, 0x2c, 0x17, 0x00, 0x2d, 0x00, 0x0d, 0x00, 0x03, 0x00, 0x00,
+    0x08, 0x23, 0x00, 0x01, 0x08, 0x04, 0xc0, 0xce, 0x9e, 0x41, 0x7b, 0xec, 0x06, 0x02, 0xa0, 0x17,
+    0xc9, 0x13, 0x8c, 0x16, 0x10, 0x5b, 0xb0, 0x30, 0xf5, 0x85, 0xdb, 0x22, 0x28, 0x2d, 0x14, 0x0e,
+    0x6c, 0xc1, 0x25, 0x58, 0x40, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x03, 0x00, 0x00, 0x00, 0x2c, 0x17,
+    0x00, 0x2c, 0x00, 0x0d, 0x00, 0x04, 0x00, 0x00, 0x08, 0x27, 0x00, 0x01, 0x08, 0x1c, 0xa8, 0x8e,
+    0x1d, 0xbb, 0x81, 0x03, 0xd1, 0xd9, 0xfb, 0x62, 0x0a, 0x46, 0x8b, 0x16, 0x32, 0x3c, 0x7d, 0xb1,
+    0xc7, 0xed, 0x4a, 0x8e, 0x87, 0x08, 0x1f, 0xb6, 0x30, 0x06, 0x80, 0x0b, 0xc2, 0x8f, 0x02, 0x03,
+    0x02, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x04, 0x00, 0x00, 0x00, 0x2c, 0x17, 0x00, 0x2c, 0x00, 0x0e,
+    0x00, 0x03, 0x00, 0x00, 0x08, 0x24, 0x00, 0x01, 0x08, 0x04, 0xc0, 0x0e, 0xdf, 0x33, 0x4f, 0xa6,
+    0x4c, 0x51, 0xfa, 0x62, 0xaf, 0x1d, 0x3a, 0x7b, 0x91, 0x3c, 0xd5, 0x68, 0xd1, 0x42, 0x20, 0xc5,
+    0x16, 0x2a, 0x9a, 0x19, 0xa3, 0x38, 0xb0, 0x63, 0xc7, 0x80, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x06,
+    0x00, 0x00, 0x00, 0x2c, 0x16, 0x00, 0x2b, 0x00, 0x10, 0x00, 0x04, 0x00, 0x00, 0x08, 0x2b, 0x00,
+    0x01, 0x08, 0x1c, 0xa8, 0x4e, 0xdf, 0xb6, 0x2f, 0xcf, 0xbe, 0x44, 0xb2, 0x87, 0x6e, 0x20, 0x00,
+    0x76, 0xf6, 0x9e, 0x69, 0x69, 0x41, 0xb1, 0x62, 0x8b, 0x1c, 0x29, 0x52, 0x5c, 0x31, 0x05, 0x83,
+    0xa2, 0xc3, 0x8f, 0x02, 0x05, 0x81, 0x1c, 0x09, 0x20, 0x20, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x04,
+    0x00, 0x00, 0x00, 0x2c, 0x15, 0x00, 0x2a, 0x00, 0x12, 0x00, 0x04, 0x00, 0x00, 0x08, 0x31, 0x00,
+    0x01, 0x08, 0x1c, 0x38, 0x90, 0x9d, 0xbd, 0x6d, 0xdb, 0xf0, 0xd9, 0x43, 0x47, 0x70, 0xa0, 0x3a,
+    0x7a, 0x91, 0x3c, 0xc1, 0x68, 0x41, 0x91, 0xa2, 0x8c, 0x4c, 0x02, 0xbf, 0x44, 0x8a, 0xf4, 0x4c,
+    0x8b, 0x8a, 0x16, 0x0d, 0x05, 0xae, 0x20, 0x24, 0xb0, 0x59, 0x0f, 0x8a, 0x21, 0x53, 0x06, 0x04,
+    0x00, 0x21, 0xf9, 0x04, 0x05, 0x03, 0x00, 0x01, 0x00, 0x2c, 0x14, 0x00, 0x29, 0x00, 0x13, 0x00,
+    0x04, 0x00, 0x00, 0x08, 0x32, 0x00, 0x03, 0x08, 0x1c, 0x48, 0x30, 0x80, 0x3a, 0x76, 0xf6, 0xec,
+    0xe9, 0x43, 0x57, 0xb0, 0x20, 0xc2, 0x67, 0x5a, 0x54, 0xb4, 0x98, 0x08, 0xc3, 0xd3, 0x11, 0x07,
+    0x60, 0xb6, 0x25, 0xb4, 0x17, 0x89, 0x92, 0x8c, 0x89, 0x05, 0x5b, 0x70, 0x69, 0x12, 0x80, 0xd0,
+    0x8a, 0x89, 0x28, 0x1b, 0x16, 0x0c, 0x08, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x03, 0x00, 0x00, 0x00,
+    0x2c, 0x14, 0x00, 0x28, 0x00, 0x14, 0x00, 0x04, 0x00, 0x00, 0x08, 0x35, 0x00, 0x01, 0x08, 0x1c,
+    0x48, 0x90, 0x20, 0x3b, 0x76, 0xea, 0x06, 0xa2, 0x2b, 0x38, 0x50, 0x9d, 0xbe, 0x2f, 0x9e, 0x68,
+    0xa8, 0x50, 0x01, 0xc3, 0xd4, 0x17, 0x0a, 0xc6, 0xae, 0x6c, 0xb3, 0x77, 0x50, 0x1f, 0xbe, 0x67,
+    0x5a, 0x5a, 0x88, 0x1c, 0x28, 0xf2, 0x10, 0x80, 0x60, 0x4c, 0x44, 0xaa, 0x1c, 0xc9, 0x90, 0x60,
+    0x40, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x07, 0x00, 0x00, 0x00, 0x2c, 0x13, 0x00, 0x28, 0x00, 0x15,
+    0x00, 0x03, 0x00, 0x00, 0x08, 0x34, 0x00, 0xb9, 0xb1, 0x03, 0x40, 0xb0, 0xa0, 0x41, 0x76, 0xdb,
+    0x9e, 0x99, 0x52, 0xa4, 0xc5, 0xd3, 0x33, 0x6e, 0x4d, 0x60, 0x68, 0x8a, 0xa4, 0x0f, 0x1d, 0x00,
+    0x75, 0xec, 0xec, 0x45, 0xf2, 0x54, 0xa3, 0x85, 0xc7, 0x8f, 0x3d, 0x84, 0x01, 0x38, 0xf4, 0xb1,
+    0x06, 0x0d, 0x1a, 0x2c, 0x3c, 0x1a, 0x5c, 0x09, 0x20, 0x20, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x03,
+    0x00, 0x01, 0x00, 0x2c, 0x13, 0x00, 0x27, 0x00, 0x15, 0x00, 0x04, 0x00, 0x00, 0x08, 0x38, 0x00,
+    0xcf, 0x99, 0x0b, 0x40, 0xb0, 0xa0, 0xc1, 0x00, 0xe8, 0xec, 0x7d, 0xb9, 0xa2, 0x89, 0xd2, 0xb3,
+    0x73, 0x43, 0x54, 0x98, 0xfa, 0x62, 0x0f, 0x9d, 0x41, 0x73, 0xf8, 0x28, 0xd1, 0x68, 0xc1, 0xb1,
+    0xe3, 0x92, 0x00, 0x3d, 0x3a, 0xc2, 0x30, 0xe5, 0xc9, 0x14, 0x2f, 0x15, 0x1c, 0x0f, 0xaa, 0x24,
+    0xd8, 0xb1, 0xc5, 0xca, 0x83, 0x01, 0x01, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x04, 0x00, 0x00, 0x00,
+    0x2c, 0x13, 0x00, 0x26, 0x00, 0x15, 0x00, 0x04, 0x00, 0x00, 0x08, 0x36, 0x00, 0xcf, 0xd9, 0x43,
+    0x07, 0xa0, 0xa0, 0xc1, 0x83, 0x00, 0xd4, 0xd1, 0xdb, 0xf6, 0xa5, 0xe1, 0x97, 0x61, 0x2d, 0x78,
+    0x3d, 0xc3, 0xc7, 0x0e, 0x21, 0x3a, 0x7b, 0x5f, 0xb4, 0xb4, 0xd8, 0xb8, 0xd1, 0x10, 0x00, 0x8e,
+    0x2d, 0x6a, 0x98, 0xba, 0x42, 0xd2, 0x93, 0x8c, 0x8d, 0x08, 0x53, 0x7e, 0x04, 0xd9, 0x42, 0xa5,
+    0xc1, 0x80, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x03, 0x00, 0x00, 0x00, 0x2c, 0x13, 0x00, 0x25, 0x00,
+    0x15, 0x00, 0x04, 0x00, 0x00, 0x08, 0x35, 0x00, 0xf1, 0xd9, 0x43, 0x07, 0xa0, 0xa0, 0xc1, 0x83,
+    0x06, 0xd9, 0xd9, 0xfb, 0xf2, 0x65, 0x1b, 0xb0, 0x16, 0x30, 0x34, 0x7d, 0xa1, 0x87, 0x10, 0x80,
+    0x3a, 0x7d, 0x5f, 0x4a, 0xb1, 0x68, 0xc1, 0x31, 0x51, 0x41, 0x8e, 0x1c, 0xb5, 0x5c, 0x61, 0xf8,
+    0xe5, 0x0a, 0x2f, 0x8e, 0x15, 0x11, 0x82, 0x5c, 0x99, 0xb2, 0x60, 0x40, 0x00, 0x21, 0xf9, 0x04,
+    0x05, 0x07, 0x00, 0x00, 0x00, 0x2c, 0x13, 0x00, 0x24, 0x00, 0x15, 0x00, 0x04, 0x00, 0x00, 0x08,
+    0x38, 0x00, 0xf1, 0xd9, 0x63, 0x07, 0xa0, 0xa0, 0xc1, 0x83, 0x07, 0xd1, 0xe9, 0xb3, 0x87, 0x0f,
+    0x4a, 0x0b, 0x16, 0xa6, 0xbe, 0xd8, 0x43, 0x87, 0xb0, 0xa0, 0xb9, 0x6d, 0x94, 0x64, 0xb4, 0x68,
+    0x01, 0xa3, 0xe0, 0xc6, 0x8d, 0x34, 0x28, 0x45, 0xda, 0x86, 0x6f, 0xdb, 0x17, 0x53, 0x2c, 0x36,
+    0x56, 0x3c, 0xf8, 0xb1, 0xe5, 0x4a, 0x00, 0x01, 0x01, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x03, 0x00,
+    0x00, 0x00, 0x2c, 0x13, 0x00, 0x23, 0x00, 0x15, 0x00, 0x04, 0x00, 0x00, 0x08, 0x35, 0x00, 0xcf,
+    0xe9, 0x63, 0x07, 0xa0, 0xa0, 0xc1, 0x83, 0x08, 0xd5, 0xb1, 0xc3, 0x07, 0xac, 0x45, 0x0b, 0x5e,
+    0x57, 0xf0, 0x11, 0x44, 0x58, 0x90, 0x9d, 0xbd, 0x67, 0x5a, 0x54, 0x40, 0x29, 0xe8, 0xd0, 0x61,
+    0x0d, 0x4f, 0x5f, 0xf0, 0xd9, 0x1b, 0x19, 0x89, 0x12, 0x0c, 0x87, 0x14, 0x0d, 0x76, 0x5c, 0x89,
+    0x12, 0x61, 0x40, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x03, 0x00, 0x00, 0x00, 0x2c, 0x13, 0x00, 0x22,
+    0x00, 0x15, 0x00, 0x04, 0x00, 0x00, 0x08, 0x34, 0x00, 0x01, 0xb0, 0x43, 0x07, 0xa0, 0xa0, 0xc1,
+    0x83, 0x08, 0x0d, 0x0e, 0x53, 0xa1, 0xc2, 0x89, 0xa6, 0x2f, 0xfa, 0xd4, 0x25, 0x2c, 0x88, 0xce,
+    0xde, 0x17, 0x4f, 0xbf, 0x0c, 0xb6, 0xd8, 0xd8, 0x82, 0xd7, 0x33, 0x7c, 0xfa, 0xd8, 0xb1, 0xd3,
+    0x87, 0xef, 0x59, 0x0e, 0x8e, 0x13, 0x39, 0xaa, 0x44, 0x79, 0x30, 0x20, 0x00, 0x21, 0xf9, 0x04,
+    0x05, 0x04, 0x00, 0x00, 0x00, 0x2c, 0x13, 0x00, 0x22, 0x00, 0x15, 0x00, 0x03, 0x00, 0x00, 0x08,
+    0x34, 0x00, 0x8f, 0x69, 0x41, 0xb2, 0x2c, 0xd5, 0x17, 0x7b, 0xe8, 0x00, 0x28, 0x5c, 0xc8, 0x90,
+    0xde, 0x36, 0x47, 0x00, 0x5a, 0xb4, 0x00, 0xe0, 0x42, 0xa2, 0x0c, 0x4a, 0xdb, 0xf4, 0x25, 0x54,
+    0xc7, 0xce, 0xde, 0x97, 0x2d, 0x2a, 0x5a, 0x44, 0x61, 0xb8, 0x50, 0xa2, 0x44, 0x18, 0x34, 0x64,
+    0xb0, 0x90, 0xc8, 0x30, 0x20, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x06, 0x00, 0x00, 0x00, 0x2c, 0x13,
+    0x00, 0x21, 0x00, 0x15, 0x00, 0x04, 0x00, 0x00, 0x08, 0x39, 0x00, 0x83, 0x55, 0xd3, 0xb4, 0x49,
+    0x53, 0x35, 0x7c, 0xec, 0x00, 0x28, 0x5c, 0xc8, 0x10, 0x00, 0x3b, 0x1d, 0xce, 0x5a, 0xb4, 0x20,
+    0xf4, 0x44, 0x22, 0x0b, 0x53, 0x5f, 0xec, 0xa1, 0x5b, 0xa8, 0x8e, 0xde, 0x17, 0x4d, 0x35, 0x04,
+    0x35, 0x54, 0x28, 0x51, 0x22, 0x0c, 0x59, 0xa6, 0x4c, 0xc9, 0x28, 0x39, 0xb2, 0x65, 0xc9, 0x16,
+    0x23, 0x03, 0x02, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x04, 0x00, 0x00, 0x00, 0x2c, 0x13, 0x00, 0x20,
+    0x00, 0x15, 0x00, 0x04, 0x00, 0x00, 0x08, 0x38, 0x00, 0x01, 0x70, 0x8b, 0xf4, 0xe5, 0x92, 0xb3,
+    0x6d, 0xfa, 0xd4, 0x01, 0x58, 0xc8, 0xb0, 0xe1, 0xc2, 0x26, 0x35, 0x5a, 0x30, 0x59, 0xd1, 0xa2,
+    0xa2, 0x96, 0x67, 0xf6, 0xd8, 0x39, 0x64, 0x87, 0xef, 0x4a, 0x2f, 0x87, 0x0b, 0x2b, 0x56, 0x84,
+    0x61, 0x0a, 0xd9, 0x15, 0x4a, 0xa6, 0x22, 0xb6, 0x00, 0x09, 0x52, 0x64, 0x45, 0x87, 0x01, 0x01,
+    0x00, 0x21, 0xf9, 0x04, 0x05, 0x03, 0x00, 0x01, 0x00, 0x2c, 0x14, 0x00, 0x1f, 0x00, 0x14, 0x00,
+    0x04, 0x00, 0x00, 0x08, 0x38, 0x00, 0x03, 0xe0, 0xc3, 0xf7, 0x25, 0xc0, 0x32, 0x7c, 0xe8, 0x02,
+    0x28, 0x5c, 0xc8, 0x50, 0xa1, 0x31, 0x15, 0x2d, 0x88, 0x48, 0x71, 0xd1, 0x42, 0xc6, 0x95, 0x6d,
+    0xe6, 0x1a, 0x06, 0x40, 0x77, 0x4e, 0xa3, 0xc2, 0x16, 0x20, 0x7b, 0x98, 0x7a, 0xf6, 0xa5, 0x24,
+    0xa5, 0x1c, 0x2a, 0x96, 0x79, 0x5c, 0x08, 0xb2, 0x25, 0xc8, 0x85, 0x01, 0x01, 0x00, 0x21, 0xf9,
+    0x04, 0x05, 0x03, 0x00, 0x01, 0x00, 0x2c, 0x14, 0x00, 0x1e, 0x00, 0x13, 0x00, 0x04, 0x00, 0x00,
+    0x08, 0x33, 0x00, 0x03, 0x08, 0xd4, 0x67, 0x2f, 0x00, 0x80, 0x11, 0x02, 0x13, 0x2a, 0x14, 0xb8,
+    0xe8, 0x14, 0x0c, 0x2e, 0x84, 0x08, 0x11, 0x81, 0xe1, 0x29, 0x92, 0x3e, 0x75, 0x0b, 0x13, 0xb6,
+    0x58, 0xd8, 0xa2, 0x63, 0x0b, 0x2d, 0xcf, 0xb6, 0xe1, 0xc3, 0xb7, 0xed, 0x8b, 0xa4, 0x8c, 0x0a,
+    0x3d, 0xaa, 0xdc, 0x18, 0x10, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x07, 0x00, 0x00, 0x00, 0x2c, 0x15,
+    0x00, 0x1d, 0x00, 0x12, 0x00, 0x04, 0x00, 0x00, 0x08, 0x30, 0x00, 0x01, 0x08, 0x44, 0x67, 0x4e,
+    0xa0, 0xc1, 0x83, 0x07, 0x85, 0x5d, 0xd1, 0x02, 0x65, 0xc8, 0x14, 0x2b, 0x4a, 0xa0, 0xd9, 0x43,
+    0x87, 0x50, 0x20, 0x91, 0x16, 0x07, 0x5b, 0x68, 0x6c, 0x31, 0xe3, 0xca, 0x36, 0x7b, 0xf4, 0xe8,
+    0xd9, 0x63, 0x56, 0x31, 0xe3, 0xc6, 0x8d, 0xc3, 0x02, 0x02, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x03,
+    0x00, 0x00, 0x00, 0x2c, 0x15, 0x00, 0x1d, 0x00, 0x12, 0x00, 0x03, 0x00, 0x00, 0x08, 0x2b, 0x00,
+    0x01, 0x60, 0x01, 0x43, 0x69, 0xcb, 0x2b, 0x56, 0x29, 0xb8, 0xd9, 0x43, 0x07, 0xa0, 0xa1, 0xc3,
+    0x86, 0x5c, 0x5a, 0xac, 0x78, 0xe8, 0xa4, 0x85, 0x0c, 0x4a, 0xdb, 0xe8, 0x31, 0x7c, 0xc8, 0xd1,
+    0x61, 0x8b, 0x8f, 0x2d, 0x60, 0xd0, 0xc8, 0x21, 0x2c, 0x20, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x04,
+    0x00, 0x02, 0x00, 0x2c, 0x16, 0x00, 0x1c, 0x00, 0x10, 0x00, 0x04, 0x00, 0x00, 0x08, 0x2f, 0x00,
+    0x05, 0x98, 0x08, 0xf2, 0xe5, 0x0a, 0xb2, 0x2b, 0x5f, 0xec, 0xb1, 0x13, 0xc0, 0xb0, 0xa1, 0x30,
+    0x22, 0x2d, 0x5a, 0x10, 0x59, 0x62, 0x45, 0x50, 0x0b, 0x18, 0x94, 0xb6, 0xd1, 0x6b, 0xc8, 0xb1,
+    0x63, 0xc4, 0x88, 0x33, 0x3c, 0x35, 0xeb, 0x48, 0x92, 0x61, 0xc4, 0x15, 0x01, 0x01, 0x00, 0x21,
+    0xf9, 0x04, 0x05, 0x03, 0x00, 0x00, 0x00, 0x2c, 0x17, 0x00, 0x1b, 0x00, 0x0f, 0x00, 0x04, 0x00,
+    0x00, 0x08, 0x29, 0x00, 0x01, 0x00, 0xf8, 0xe3, 0x63, 0xc7, 0x97, 0x6d, 0xf6, 0xde, 0x09, 0x5c,
+    0x08, 0x60, 0xca, 0xa1, 0x1a, 0x2d, 0x22, 0x46, 0x84, 0xa1, 0xe9, 0xcb, 0x39, 0x86, 0x18, 0x05,
+    0x4a, 0x54, 0xa1, 0xab, 0x59, 0xc6, 0x8f, 0x2d, 0x7a, 0x00, 0x08, 0x08, 0x00, 0x21, 0xf9, 0x04,
+    0x05, 0x07, 0x00, 0x03, 0x00, 0x2c, 0x0e, 0x00, 0x1a, 0x00, 0x20, 0x00, 0x29, 0x00, 0x00, 0x08,
+    0xff, 0x00, 0x07, 0x08, 0x1c, 0x48, 0x70, 0x20, 0xa1, 0x22, 0x52, 0x8a, 0x10, 0x02, 0x50, 0xb0,
+    0xa1, 0xc3, 0x82, 0x4d, 0x04, 0x41, 0x69, 0x41, 0x91, 0xe2, 0x8a, 0x43, 0xc2, 0x1e, 0x6a, 0x1c,
+    0xe8, 0x8c, 0x4b, 0x0b, 0x81, 0x5c, 0xb8, 0x0c, 0xa8, 0xd8, 0xc3, 0x18, 0xc3, 0x8d, 0x0d, 0x0f,
+    0x7d, 0xe4, 0xb2, 0x44, 0xd8, 0xa0, 0x21, 0x04, 0x29, 0x46, 0x99, 0x82, 0x92, 0xa0, 0xb1, 0x8f,
+    0x86, 0xaa, 0x58, 0x79, 0xb2, 0xe2, 0x63, 0xc1, 0x16, 0x86, 0x6a, 0x0a, 0x6c, 0xa6, 0x62, 0xc0,
+    0xcc, 0x42, 0x3e, 0x1f, 0xb6, 0x58, 0x52, 0x13, 0x00, 0x30, 0x81, 0x4c, 0xa2, 0x24, 0xd5, 0xb8,
+    0x22, 0x18, 0x4a, 0x67, 0x1f, 0x0b, 0x89, 0x14, 0xda, 0x02, 0xe6, 0xc6, 0x61, 0x03, 0x5c, 0x08,
+    0x23, 0x22, 0x54, 0x60, 0x14, 0x94, 0x50, 0x04, 0xba, 0x98, 0x8a, 0xb2, 0xc6, 0x49, 0x87, 0xc1,
+    0x8a, 0x96, 0x25, 0xa8, 0xa2, 0x89, 0xc6, 0xb8, 0x73, 0xe9, 0xda, 0x7d, 0xb8, 0xc8, 0x45, 0xde,
+    0x81, 0x3d, 0x16, 0x6d, 0x7c, 0xfa, 0x77, 0x00, 0x61, 0x8d, 0xc6, 0x0a, 0x0f, 0x38, 0x84, 0x72,
+    0x99, 0xdc, 0xb9, 0x2a, 0x96, 0xd5, 0x04, 0x9b, 0x97, 0x32, 0xca, 0xbd, 0x8a, 0x33, 0x6b, 0xde,
+    0x5c, 0x36, 0xf1, 0x46, 0xc6, 0x85, 0x83, 0xad, 0xa0, 0xaa, 0x19, 0x34, 0xe7, 0x86, 0xcd, 0x34,
+    0x16, 0xd1, 0xdc, 0xc4, 0x6f, 0x43, 0x17, 0x98, 0x15, 0x33, 0xea, 0x51, 0xd0, 0xf5, 0xe9, 0xdb,
+    0xb8, 0x51, 0x62, 0x79, 0xb8, 0x5b, 0x33, 0x8a, 0x87, 0x40, 0x36, 0xeb, 0x78, 0xe8, 0x87, 0xf3,
+    0x9d, 0x86, 0x74, 0xde, 0x66, 0x4e, 0x72, 0x86, 0xa0, 0x99, 0x20, 0xb7, 0x7d, 0xd4, 0x29, 0x53,
+    0x66, 0x0e, 0x9f, 0xdc, 0x03, 0xb0, 0xf4, 0xc6, 0xce, 0xbd, 0x3b, 0x67, 0x00, 0x59, 0x08, 0x16,
+    0x23, 0xaf, 0xd9, 0x47, 0xe0, 0x78, 0x81, 0x59, 0x18, 0x96, 0xc0, 0x35, 0xe0, 0x04, 0x90, 0xdf,
+    0x03, 0x92, 0x0c, 0xf0, 0xb2, 0x91, 0xbe, 0xfc, 0x01, 0x28, 0x80, 0x9c, 0x18, 0x80, 0xab, 0x84,
+    0xf7, 0x01, 0x01, 0x01, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x03, 0x00, 0x03, 0x00, 0x2c, 0x0e, 0x00,
+    0x19, 0x00, 0x20, 0x00, 0x2a, 0x00, 0x00, 0x08, 0xff, 0x00, 0x07, 0x08, 0x1c, 0x48, 0x50, 0x20,
+    0x00, 0x42, 0x45, 0xa4, 0x14, 0x21, 0x04, 0xa0, 0xa0, 0xc3, 0x87, 0x05, 0x85, 0x1d, 0x82, 0xd2,
+    0xa2, 0x62, 0xc5, 0x1a, 0x87, 0x08, 0x41, 0xdc, 0x38, 0x90, 0x51, 0x8d, 0x8a, 0x03, 0x5c, 0xb8,
+    0x10, 0x58, 0x51, 0xc5, 0xa1, 0x45, 0x1c, 0x1d, 0x02, 0x18, 0x56, 0x91, 0x8b, 0x20, 0x42, 0x53,
+    0x86, 0x10, 0xac, 0x88, 0xa8, 0x49, 0x4a, 0x82, 0x2c, 0x07, 0x18, 0x6a, 0x42, 0x45, 0x09, 0x91,
+    0x15, 0x0e, 0x5b, 0x10, 0x99, 0x72, 0x73, 0x00, 0xa3, 0x16, 0x03, 0x9e, 0x4c, 0x51, 0xe2, 0x02,
+    0xe4, 0xc3, 0x16, 0x87, 0x6e, 0x0a, 0xfb, 0x38, 0xa0, 0xd0, 0x13, 0xa4, 0x29, 0x55, 0x34, 0x4b,
+    0x79, 0xa8, 0x85, 0x0a, 0x22, 0x4e, 0x53, 0xb6, 0x18, 0xc6, 0x71, 0x51, 0x8d, 0x01, 0x51, 0xaa,
+    0x8c, 0x2c, 0x3a, 0xa0, 0x46, 0xb0, 0x8d, 0xcd, 0x54, 0x0c, 0x58, 0xe1, 0x04, 0x6b, 0xd1, 0x16,
+    0x5b, 0x21, 0x3a, 0xc3, 0x6a, 0xf7, 0xae, 0xb3, 0x8d, 0x47, 0xd9, 0x16, 0x6c, 0xb1, 0x64, 0xe3,
+    0x90, 0xbe, 0x82, 0x5b, 0xfc, 0x85, 0xd8, 0x0c, 0x31, 0x5b, 0xbc, 0x1b, 0x9b, 0xc8, 0x15, 0x3c,
+    0x50, 0x85, 0xcd, 0x8d, 0x88, 0x28, 0x0f, 0xf4, 0x95, 0x72, 0xaf, 0xe6, 0x01, 0x79, 0x39, 0x46,
+    0xd1, 0x6c, 0xa8, 0xa8, 0x30, 0x2e, 0x82, 0x99, 0x50, 0x46, 0x7d, 0x93, 0x35, 0xe5, 0xc9, 0x9f,
+    0x53, 0x92, 0x8d, 0x9d, 0x52, 0x18, 0x6c, 0x87, 0x2e, 0x84, 0xd1, 0xfe, 0xb5, 0x91, 0x37, 0xed,
+    0xc2, 0x10, 0x65, 0xd2, 0x26, 0x74, 0xbb, 0xf2, 0x32, 0xda, 0x02, 0x8d, 0x15, 0xef, 0x61, 0x0c,
+    0xf9, 0xc0, 0x26, 0x84, 0xa2, 0x47, 0xbf, 0xec, 0xbc, 0xfa, 0xc6, 0x3e, 0x10, 0xfd, 0x38, 0x3f,
+    0x02, 0xd1, 0x86, 0x73, 0x14, 0x10, 0xbd, 0x38, 0x58, 0xff, 0xf3, 0xc6, 0x61, 0x1b, 0x2c, 0xd5,
+    0xbf, 0x94, 0x21, 0x58, 0x26, 0x92, 0xf5, 0x01, 0x5f, 0xce, 0x08, 0x3c, 0x13, 0xa9, 0xe1, 0x7b,
+    0x1d, 0x41, 0x82, 0xfc, 0x78, 0xcf, 0xbf, 0xbf, 0xff, 0x82, 0x26, 0xfc, 0x81, 0x85, 0x0e, 0x3f,
+    0x68, 0x37, 0x00, 0x76, 0x03, 0x08, 0xa1, 0xe0, 0x82, 0x0a, 0x0a, 0x84, 0xa0, 0x1f, 0x3f, 0xe8,
+    0x80, 0xc5, 0x1f, 0x26, 0x0c, 0x80, 0x45, 0x1f, 0x42, 0x0c, 0xe4, 0x43, 0x12, 0x03, 0x78, 0xc1,
+    0x07, 0x1f, 0x10, 0x7d, 0x28, 0x5e, 0x12, 0x3e, 0x0c, 0x24, 0x44, 0x1f, 0x3a, 0xfc, 0x37, 0x50,
+    0x40, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x03, 0x00, 0x03, 0x00, 0x2c, 0x0d, 0x00, 0x18, 0x00, 0x22,
+    0x00, 0x2b, 0x00, 0x00, 0x08, 0xff, 0x00, 0x07, 0x08, 0x1c, 0x48, 0x70, 0xa0, 0x30, 0x67, 0x82,
+    0x94, 0x08, 0x72, 0xb6, 0xac, 0xa0, 0xc3, 0x87, 0x0f, 0x9d, 0x21, 0x52, 0xd1, 0xa2, 0xa2, 0x45,
+    0x60, 0xce, 0x00, 0x40, 0xdc, 0x68, 0x30, 0x8a, 0x45, 0x17, 0x5c, 0xb8, 0x08, 0xb4, 0x48, 0xa4,
+    0x21, 0xc7, 0x87, 0x84, 0xb8, 0x54, 0x64, 0x32, 0xa4, 0x49, 0x80, 0x21, 0x04, 0x2b, 0xae, 0x68,
+    0x76, 0xb2, 0xa0, 0x30, 0x95, 0x2a, 0x04, 0x4d, 0xb1, 0x52, 0x88, 0x89, 0x0b, 0x87, 0x2d, 0x5c,
+    0xd0, 0xac, 0x39, 0x60, 0x11, 0x91, 0x16, 0x03, 0x96, 0x4c, 0x79, 0x62, 0x11, 0x29, 0x50, 0x2e,
+    0xc1, 0x88, 0x1a, 0x73, 0x3a, 0xc4, 0x49, 0xc5, 0x93, 0x2d, 0x0e, 0xd5, 0x0c, 0x56, 0x23, 0xe8,
+    0x8a, 0xab, 0x35, 0x5b, 0xd4, 0x68, 0x72, 0xd2, 0x19, 0xd2, 0x25, 0x45, 0x88, 0x0e, 0x6c, 0xe1,
+    0xec, 0xe4, 0x30, 0xa4, 0x86, 0x3c, 0xaa, 0x1d, 0xd0, 0x62, 0xd8, 0x49, 0x28, 0x48, 0xc1, 0xce,
+    0x05, 0xc6, 0x11, 0x40, 0x8d, 0xb9, 0x0e, 0xa1, 0xf4, 0xfd, 0x0b, 0x98, 0xa0, 0x60, 0x8e, 0x89,
+    0x0a, 0x13, 0x44, 0xe4, 0x56, 0xf1, 0x40, 0xad, 0x1c, 0xcd, 0x3a, 0x6e, 0x91, 0x96, 0x63, 0xb0,
+    0xc3, 0x85, 0xb9, 0x68, 0x3c, 0xb9, 0x44, 0x31, 0x5b, 0xa2, 0x00, 0x18, 0x03, 0x8e, 0xe2, 0xb8,
+    0x74, 0xcd, 0x15, 0x6a, 0x85, 0x29, 0x96, 0x6c, 0xfa, 0x24, 0x69, 0x8e, 0x76, 0x4b, 0x37, 0x73,
+    0xfa, 0x50, 0x05, 0x21, 0xd3, 0x00, 0x30, 0x3b, 0xe4, 0xdb, 0x1a, 0xf2, 0x43, 0xdf, 0xa5, 0x59,
+    0x17, 0xa4, 0xdc, 0x5a, 0xe0, 0xa1, 0x1e, 0x0e, 0x81, 0x17, 0x17, 0xc6, 0x9c, 0x79, 0xd4, 0xe2,
+    0xd0, 0x6b, 0x02, 0x01, 0x43, 0xbd, 0x3a, 0x75, 0x20, 0xd0, 0xbb, 0x40, 0x8c, 0x04, 0xfd, 0x05,
+    0x44, 0x30, 0xd0, 0x51, 0xb0, 0x65, 0x71, 0xc8, 0xc6, 0x4b, 0xf4, 0x3b, 0x0e, 0xe9, 0x6c, 0x2e,
+    0xae, 0xa3, 0x4e, 0x19, 0x81, 0x65, 0xe6, 0xf8, 0x89, 0x2e, 0xb0, 0x84, 0x8d, 0x31, 0x63, 0x8e,
+    0x98, 0xa0, 0xcf, 0xbf, 0xbf, 0xff, 0x87, 0x25, 0x64, 0x81, 0x85, 0x0e, 0x3f, 0xcc, 0xd7, 0x47,
+    0x1f, 0x03, 0x08, 0x21, 0xc4, 0x00, 0x27, 0x34, 0xe8, 0x60, 0x82, 0x0b, 0x1e, 0x38, 0x80, 0x1f,
+    0x3f, 0xe8, 0x80, 0x45, 0x16, 0x25, 0x0c, 0x90, 0x85, 0x1f, 0x42, 0x9c, 0x00, 0x04, 0x0a, 0x3e,
+    0x24, 0xe1, 0x05, 0x1f, 0x7c, 0xd4, 0x44, 0xa2, 0x17, 0x49, 0xf8, 0x80, 0x02, 0x10, 0x27, 0x08,
+    0xe1, 0x47, 0x16, 0xa0, 0x01, 0x20, 0xe3, 0x8c, 0x6a, 0x05, 0x04, 0x00, 0x21, 0xf9, 0x04, 0x05,
+    0x04, 0x00, 0x03, 0x00, 0x2c, 0x0c, 0x00, 0x17, 0x00, 0x24, 0x00, 0x2c, 0x00, 0x00, 0x08, 0xff,
+    0x00, 0x07, 0x08, 0x1c, 0x48, 0x90, 0xe0, 0x32, 0x67, 0x82, 0x12, 0x3a, 0x5b, 0x56, 0xb0, 0xa1,
+    0xc3, 0x87, 0x00, 0x9c, 0x21, 0x6a, 0x41, 0xb1, 0xa2, 0x0a, 0x60, 0x43, 0x16, 0x3d, 0xdc, 0x58,
+    0x70, 0xd9, 0x44, 0x8a, 0x03, 0x5c, 0xb8, 0x18, 0x48, 0x91, 0x49, 0x33, 0x8e, 0x1c, 0x9b, 0xad,
+    0x68, 0x31, 0x80, 0xc9, 0x12, 0x2a, 0x53, 0x86, 0x14, 0x6c, 0xd1, 0xc3, 0x19, 0x4a, 0x87, 0xcd,
+    0x5c, 0xb4, 0x70, 0xa1, 0x64, 0x0a, 0x15, 0x41, 0x51, 0xb8, 0x34, 0x6c, 0xa1, 0xc2, 0xe6, 0xcd,
+    0x81, 0xc2, 0x56, 0xba, 0x90, 0x32, 0xa5, 0x90, 0x4e, 0x90, 0x43, 0x6b, 0x30, 0x3c, 0x3a, 0x20,
+    0x0a, 0x4b, 0x2e, 0x54, 0x9c, 0xb0, 0x44, 0xd9, 0x02, 0x11, 0xd5, 0x66, 0x5b, 0x07, 0x40, 0xbd,
+    0xd9, 0xe2, 0xe4, 0xcd, 0x61, 0x2c, 0xa5, 0x14, 0xa2, 0x2a, 0xb0, 0xc5, 0xb0, 0x9b, 0xc1, 0x6a,
+    0x08, 0x2c, 0xe2, 0x84, 0xad, 0xc0, 0x1a, 0x00, 0x50, 0x82, 0x6d, 0x1b, 0x96, 0xaa, 0x0b, 0x61,
+    0x28, 0x9d, 0xf5, 0xb5, 0x2b, 0xd6, 0xec, 0xc6, 0x63, 0x83, 0xed, 0xaa, 0x30, 0xec, 0x90, 0x02,
+    0xbe, 0xc4, 0x6c, 0x55, 0x10, 0x42, 0xb9, 0x4c, 0x05, 0x61, 0x82, 0x2e, 0x9a, 0xa0, 0x04, 0x00,
+    0xe5, 0xf2, 0x40, 0x60, 0x47, 0x0f, 0x79, 0x16, 0xb8, 0xe4, 0xe8, 0xb2, 0x1e, 0x9e, 0x6b, 0x68,
+    0x0e, 0xed, 0xd9, 0x18, 0xdb, 0x60, 0x44, 0x08, 0x23, 0xca, 0x6b, 0x97, 0x09, 0xdb, 0xd8, 0xa9,
+    0x47, 0xeb, 0x76, 0xd8, 0xc2, 0xa8, 0x67, 0x00, 0xa0, 0x39, 0x46, 0xd9, 0x3d, 0xc0, 0x37, 0x6f,
+    0xc6, 0x9e, 0x9b, 0xa0, 0x7e, 0x88, 0x97, 0xf8, 0x00, 0xaf, 0x0f, 0x7f, 0x39, 0x1f, 0xe0, 0xfa,
+    0xa1, 0x71, 0xdd, 0x8b, 0xde, 0x4e, 0xe7, 0x18, 0xac, 0x89, 0x77, 0xef, 0x1a, 0xb7, 0x8b, 0x78,
+    0xe7, 0x98, 0x64, 0x87, 0xf9, 0xf3, 0xe6, 0x93, 0x6c, 0xdf, 0xd3, 0xa6, 0xbd, 0xfb, 0xf6, 0x61,
+    0xb6, 0x77, 0x79, 0xff, 0x5e, 0xcc, 0xf6, 0x17, 0xf4, 0xdd, 0x83, 0xd9, 0x8e, 0x65, 0x4d, 0xc3,
+    0x34, 0x3f, 0x88, 0xe7, 0x45, 0x1a, 0x04, 0xa1, 0x11, 0xc4, 0x78, 0x03, 0xf4, 0x31, 0xc6, 0x1c,
+    0x72, 0x88, 0x21, 0x04, 0x82, 0x10, 0x46, 0x28, 0xa1, 0x40, 0x00, 0x64, 0xf1, 0x87, 0x0e, 0x3f,
+    0xf8, 0x91, 0xe0, 0x00, 0x42, 0x3c, 0x78, 0xc2, 0x09, 0x0d, 0x7d, 0xc8, 0xe1, 0x83, 0x7d, 0x0c,
+    0x80, 0x4b, 0x80, 0x7f, 0x64, 0x41, 0xdb, 0x0f, 0x7d, 0x9c, 0x00, 0x04, 0x0a, 0x3e, 0x24, 0xe1,
+    0x05, 0x1f, 0x76, 0xf1, 0xe1, 0x45, 0x12, 0x3e, 0xa0, 0x00, 0xc4, 0x09, 0x7d, 0x04, 0x78, 0x13,
+    0x00, 0xb4, 0x15, 0x04, 0xe4, 0x51, 0x01, 0x01, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x06, 0x00, 0x07,
+    0x00, 0x2c, 0x0c, 0x00, 0x16, 0x00, 0x24, 0x00, 0x2d, 0x00, 0x00, 0x08, 0xff, 0x00, 0x0f, 0x08,
+    0x1c, 0x48, 0xb0, 0xa0, 0x40, 0x00, 0x06, 0x13, 0x2a, 0x5c, 0x78, 0xa0, 0xd9, 0x21, 0x44, 0x30,
+    0x54, 0xc0, 0x40, 0x74, 0xa8, 0x19, 0xc3, 0x8b, 0x04, 0x9b, 0x21, 0x6a, 0x61, 0xb0, 0x45, 0x0b,
+    0x60, 0xce, 0x30, 0x2e, 0x04, 0x70, 0x48, 0x85, 0x40, 0x17, 0x4e, 0x94, 0x38, 0x29, 0xd8, 0x62,
+    0x58, 0x30, 0x91, 0x05, 0x17, 0xfd, 0xe2, 0xb8, 0x42, 0x50, 0x93, 0x00, 0xc2, 0x94, 0x74, 0x44,
+    0xd4, 0x04, 0xe6, 0xc0, 0x99, 0x07, 0x88, 0x50, 0xa9, 0x22, 0x88, 0x89, 0xc7, 0x84, 0x2d, 0x10,
+    0x21, 0x84, 0xc9, 0x88, 0x23, 0x93, 0x26, 0x56, 0xb8, 0x70, 0x64, 0xd8, 0xc2, 0x18, 0x4c, 0x61,
+    0x35, 0x06, 0x2e, 0x59, 0x01, 0xb3, 0x86, 0x30, 0x91, 0x87, 0x04, 0x32, 0x71, 0xe1, 0x53, 0x60,
+    0xd8, 0x8b, 0x8b, 0xa0, 0x1c, 0x70, 0x51, 0xe5, 0x49, 0xd9, 0x03, 0x50, 0x96, 0x2e, 0x6c, 0xc6,
+    0xd1, 0x85, 0x20, 0xae, 0x65, 0x55, 0x2c, 0xbb, 0x38, 0xe4, 0x2d, 0xcb, 0x90, 0x0c, 0xad, 0xfa,
+    0x25, 0x08, 0x58, 0x21, 0x00, 0xc1, 0x83, 0x0f, 0xb4, 0x28, 0x9c, 0x90, 0x44, 0xe2, 0x81, 0x8b,
+    0x2f, 0xd2, 0x7d, 0xac, 0xf7, 0x62, 0xb0, 0xac, 0x89, 0xe3, 0x62, 0x1c, 0xf6, 0xf8, 0xac, 0x64,
+    0x93, 0x83, 0xbf, 0x8a, 0xe4, 0xfc, 0xb8, 0xb4, 0x69, 0xd3, 0x2f, 0x4f, 0xab, 0x2e, 0xc8, 0x68,
+    0x35, 0x43, 0x26, 0x17, 0x11, 0x99, 0x5e, 0x72, 0x91, 0x71, 0x68, 0xd0, 0x0a, 0x53, 0x97, 0x4e,
+    0xb4, 0x50, 0xf6, 0x69, 0xcf, 0x06, 0x5b, 0xaf, 0x26, 0x4b, 0x30, 0xab, 0xdc, 0xd3, 0x8b, 0x82,
+    0x29, 0x57, 0xee, 0xba, 0x39, 0x43, 0x3e, 0x0a, 0xbd, 0xac, 0xb6, 0xa3, 0x10, 0xcf, 0x6a, 0x31,
+    0x0a, 0xf7, 0xac, 0x06, 0xa3, 0xf0, 0xcb, 0x6a, 0x3f, 0x68, 0x0c, 0x9a, 0x3c, 0x11, 0xe2, 0xfa,
+    0x88, 0x19, 0x82, 0x65, 0x76, 0x38, 0x47, 0xb1, 0x47, 0x8d, 0x1a, 0x3d, 0x49, 0x9c, 0x0f, 0x04,
+    0x70, 0x5c, 0xbe, 0x7d, 0xd7, 0x58, 0x14, 0x9e, 0x60, 0xb8, 0x9f, 0xa0, 0x9f, 0x03, 0x3a, 0xe4,
+    0x27, 0x50, 0x09, 0x7e, 0x90, 0x77, 0x80, 0x0f, 0xa7, 0x21, 0x78, 0x80, 0x10, 0x7e, 0x94, 0x50,
+    0x56, 0x09, 0x10, 0x42, 0x78, 0x10, 0x46, 0x01, 0x01, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x04, 0x00,
+    0x0d, 0x00, 0x2c, 0x0c, 0x00, 0x16, 0x00, 0x24, 0x00, 0x2d, 0x00, 0x00, 0x08, 0xff, 0x00, 0x1b,
+    0x08, 0x1c, 0x48, 0xb0, 0xa0, 0xc0, 0x00, 0x06, 0x13, 0x2a, 0x5c, 0xd8, 0x20, 0x40, 0x09, 0x42,
+    0x45, 0x8a, 0x34, 0x23, 0xb4, 0x08, 0x21, 0xc3, 0x8b, 0x03, 0x03, 0x2c, 0x3b, 0x54, 0xa3, 0x60,
+    0x8d, 0x61, 0xcd, 0x2c, 0x62, 0x4c, 0x18, 0x20, 0xd8, 0x21, 0x15, 0x0d, 0x5a, 0xa8, 0x6c, 0x41,
+    0x50, 0xc5, 0x2f, 0x61, 0x22, 0x47, 0x1e, 0x14, 0x46, 0x24, 0xa5, 0x8b, 0x27, 0x45, 0xa8, 0x08,
+    0x32, 0xc8, 0x25, 0xa4, 0xcc, 0x81, 0xc2, 0xb8, 0xa4, 0x34, 0x44, 0x65, 0x4a, 0x11, 0x25, 0x35,
+    0x0d, 0xae, 0x20, 0x14, 0x93, 0x61, 0x06, 0x1d, 0x35, 0x5b, 0x28, 0x19, 0x34, 0x44, 0x28, 0x43,
+    0x2e, 0x4d, 0x64, 0x0e, 0x00, 0x23, 0x70, 0xc5, 0x94, 0x42, 0x32, 0x87, 0x35, 0x55, 0x28, 0xcc,
+    0x45, 0xca, 0x16, 0x2b, 0x7e, 0xaa, 0x58, 0x86, 0x31, 0xc0, 0xa1, 0x94, 0x3b, 0x7f, 0x0a, 0x34,
+    0x36, 0xb6, 0x60, 0x00, 0x28, 0x29, 0xad, 0x3c, 0x91, 0xdb, 0x20, 0x51, 0x5d, 0x82, 0xc2, 0x50,
+    0xf2, 0x1d, 0xa8, 0x22, 0x2b, 0xc3, 0x66, 0x83, 0x09, 0xba, 0x60, 0xbb, 0x30, 0x43, 0xae, 0xc4,
+    0x03, 0x5d, 0x10, 0x5a, 0x08, 0xe0, 0x1d, 0xe4, 0xc8, 0xbd, 0x2e, 0x06, 0xbe, 0xcc, 0x22, 0xd8,
+    0xc5, 0x00, 0x89, 0x2e, 0x23, 0xfa, 0x4b, 0xd0, 0xd8, 0xe5, 0x25, 0x23, 0x85, 0xf5, 0x48, 0xbc,
+    0xc2, 0x30, 0xc6, 0xb7, 0x83, 0x51, 0xcb, 0x5c, 0x74, 0xb9, 0xf6, 0x45, 0xd7, 0xb6, 0x73, 0x17,
+    0x74, 0x86, 0x51, 0x30, 0xe4, 0x00, 0x88, 0x2e, 0x46, 0xb1, 0xcd, 0xfb, 0xb0, 0xed, 0x60, 0x1d,
+    0x15, 0x42, 0x01, 0x90, 0x3b, 0xb8, 0xc2, 0x5f, 0xba, 0x65, 0x27, 0x2c, 0x6e, 0x9b, 0xb9, 0x6f,
+    0x81, 0xab, 0x49, 0x0f, 0x0e, 0xd6, 0xa4, 0x7b, 0x77, 0xcf, 0xba, 0xc3, 0x63, 0x5c, 0x4c, 0xa2,
+    0xd0, 0x47, 0xf8, 0x30, 0x0a, 0xd1, 0xeb, 0x8e, 0xa4, 0x70, 0x4c, 0xf8, 0x23, 0x0a, 0x5f, 0x84,
+    0xff, 0xe3, 0xc6, 0xe0, 0x1a, 0x2c, 0xe2, 0x7d, 0x54, 0x22, 0x98, 0xc6, 0x8b, 0x78, 0x81, 0x3f,
+    0x44, 0x62, 0x87, 0x1d, 0x5d, 0xf8, 0xf1, 0x1f, 0x41, 0x01, 0x68, 0x77, 0xe0, 0x82, 0x97, 0x05,
+    0x60, 0xc2, 0x1f, 0xf8, 0xe1, 0x52, 0x90, 0x10, 0x0c, 0x51, 0x48, 0x90, 0x84, 0x58, 0xfc, 0x61,
+    0x02, 0x42, 0x01, 0xfc, 0xd0, 0x87, 0x40, 0x28, 0xe4, 0x16, 0x62, 0x03, 0x7d, 0xfc, 0xa0, 0x60,
+    0x43, 0x03, 0x01, 0xa0, 0xa2, 0x8a, 0x07, 0x61, 0x14, 0x10, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x03,
+    0x00, 0x06, 0x00, 0x2c, 0x0c, 0x00, 0x17, 0x00, 0x24, 0x00, 0x2c, 0x00, 0x00, 0x08, 0xff, 0x00,
+    0x0d, 0x08, 0x1c, 0x48, 0x90, 0x60, 0x80, 0x83, 0x08, 0x03, 0x14, 0x5c, 0xc8, 0xb0, 0xa1, 0x81,
+    0x84, 0x10, 0x0f, 0x3a, 0x9c, 0x68, 0xf0, 0xa0, 0xb0, 0x25, 0x86, 0x12, 0x71, 0x49, 0x64, 0x68,
+    0xc9, 0x32, 0x84, 0x14, 0x1d, 0x1e, 0x6c, 0x32, 0xcc, 0x40, 0x8b, 0x93, 0x2d, 0x06, 0xaa, 0xf8,
+    0xf5, 0x51, 0x61, 0xc8, 0x82, 0x07, 0x9b, 0x71, 0x39, 0xb9, 0xe2, 0xc9, 0x92, 0x27, 0x05, 0x7b,
+    0x30, 0x92, 0xf8, 0xd2, 0xc0, 0x08, 0x0a, 0x01, 0x9c, 0xf5, 0x68, 0xe1, 0x42, 0x50, 0x95, 0x2a,
+    0x56, 0x0a, 0x2d, 0x54, 0x61, 0x8c, 0x67, 0x48, 0x10, 0x24, 0x9a, 0x0d, 0xe5, 0x42, 0x48, 0x58,
+    0x21, 0x17, 0x0e, 0x55, 0x38, 0x73, 0x19, 0x32, 0x40, 0x30, 0x26, 0x02, 0x8b, 0x58, 0xe1, 0x12,
+    0x72, 0x85, 0x30, 0xae, 0x13, 0x03, 0x18, 0x33, 0xd9, 0x82, 0xc9, 0x8a, 0x9e, 0x87, 0xd0, 0x3a,
+    0x5c, 0xf4, 0x96, 0xc9, 0x92, 0x9e, 0x02, 0x6b, 0x04, 0xeb, 0xda, 0x4c, 0x60, 0xa1, 0x22, 0x78,
+    0x05, 0x36, 0x93, 0xbb, 0x50, 0x6d, 0xe0, 0x82, 0x82, 0x08, 0x0f, 0x04, 0x60, 0x20, 0x43, 0xc9,
+    0xc3, 0x03, 0x87, 0x29, 0x16, 0xb8, 0x21, 0x1e, 0x84, 0x5f, 0x90, 0x23, 0x4f, 0x1e, 0x18, 0xe0,
+    0x50, 0x66, 0x81, 0x71, 0x43, 0xde, 0xfd, 0x3c, 0xe4, 0x25, 0xa1, 0xcf, 0x2a, 0x96, 0xbd, 0x0c,
+    0x00, 0x16, 0x32, 0xa2, 0xcd, 0x05, 0x9d, 0x65, 0x96, 0xdd, 0x33, 0x00, 0xa2, 0xc3, 0x51, 0x60,
+    0x33, 0x24, 0xdb, 0xb3, 0x35, 0xe4, 0xb7, 0x9f, 0xf1, 0xaa, 0x08, 0xd9, 0x37, 0xf8, 0x63, 0x87,
+    0xc7, 0x3f, 0xab, 0xce, 0x4a, 0x25, 0xb8, 0x40, 0xdb, 0x0e, 0x5f, 0x3b, 0x17, 0x28, 0xc8, 0x61,
+    0xf5, 0xe9, 0x06, 0x8a, 0x33, 0xd4, 0xee, 0xbc, 0xf3, 0x42, 0x17, 0x6b, 0xb1, 0x0f, 0x7f, 0x6c,
+    0x42, 0xa5, 0x7c, 0xf9, 0x26, 0xe2, 0xd3, 0xbf, 0x14, 0x02, 0xa6, 0xbd, 0xfb, 0xf6, 0x42, 0xd2,
+    0xef, 0x68, 0x38, 0x5f, 0x7c, 0x10, 0x36, 0xf8, 0xf3, 0xe3, 0xb7, 0x91, 0xde, 0x8f, 0x01, 0xfd,
+    0xf9, 0xc5, 0x27, 0x5e, 0x00, 0x62, 0x2c, 0x14, 0x86, 0x6e, 0x81, 0x99, 0x10, 0x06, 0x41, 0x7b,
+    0x64, 0xa1, 0xde, 0x73, 0x27, 0xec, 0xb0, 0x03, 0x10, 0x08, 0x3e, 0x68, 0xe1, 0x85, 0xe9, 0x01,
+    0x90, 0xc5, 0x1f, 0x58, 0xe8, 0xf0, 0x83, 0x1f, 0x7e, 0xf4, 0x21, 0xa2, 0x10, 0x24, 0x96, 0x68,
+    0xa2, 0x88, 0x7d, 0x80, 0xf8, 0x83, 0x0e, 0x58, 0xfc, 0x91, 0x05, 0x63, 0x02, 0x01, 0xf0, 0x43,
+    0x1f, 0x27, 0x00, 0x81, 0x82, 0x0f, 0x3e, 0x24, 0xe1, 0x45, 0x4f, 0x5e, 0x24, 0x81, 0x23, 0x0a,
+    0x40, 0x9c, 0xd0, 0xc7, 0x0f, 0x30, 0x76, 0x95, 0xd0, 0x43, 0x20, 0x85, 0x14, 0x10, 0x00, 0x21,
+    0xf9, 0x04, 0x05, 0x03, 0x00, 0x10, 0x00, 0x2c, 0x0d, 0x00, 0x17, 0x00, 0x22, 0x00, 0x2c, 0x00,
+    0x00, 0x08, 0xff, 0x00, 0x21, 0x08, 0x1c, 0x48, 0x90, 0x02, 0x08, 0x82, 0x08, 0x13, 0x2a, 0x5c,
+    0x28, 0x30, 0xc3, 0x00, 0x86, 0x10, 0x23, 0x12, 0x0c, 0x40, 0xb1, 0x62, 0x45, 0x89, 0x11, 0x2d,
+    0x02, 0x10, 0x46, 0x45, 0x18, 0x00, 0x8b, 0x18, 0x15, 0x56, 0x6c, 0x36, 0xac, 0x46, 0x8b, 0x16,
+    0x10, 0x6a, 0x44, 0x71, 0xb6, 0x88, 0x62, 0x48, 0x0a, 0x1b, 0x04, 0x52, 0xa4, 0x82, 0xe8, 0xa4,
+    0x4d, 0x82, 0x4c, 0x9a, 0xb9, 0xc4, 0x48, 0x02, 0x02, 0xc5, 0x22, 0x2b, 0x5a, 0xb8, 0x78, 0x52,
+    0x44, 0xd8, 0x10, 0x84, 0x2a, 0x8c, 0xed, 0x94, 0x48, 0xb1, 0x99, 0x8b, 0x16, 0x4c, 0x08, 0x35,
+    0x59, 0x12, 0x85, 0x8b, 0x42, 0x41, 0x4b, 0x21, 0x06, 0x10, 0xb6, 0x42, 0x60, 0x93, 0x21, 0x5d,
+    0x19, 0xaa, 0xd0, 0xc9, 0x34, 0xc0, 0xaf, 0x93, 0x44, 0x94, 0x60, 0x24, 0x92, 0x55, 0x24, 0x21,
+    0x15, 0x2d, 0x9c, 0x58, 0xc5, 0x38, 0x36, 0x40, 0x46, 0xb5, 0x10, 0x84, 0x45, 0x09, 0x09, 0xe1,
+    0x90, 0xdd, 0x84, 0x00, 0x32, 0xc8, 0x44, 0x24, 0x70, 0x6e, 0xc8, 0x44, 0x7f, 0x11, 0x22, 0x88,
+    0x27, 0xb3, 0x06, 0x5f, 0x82, 0x35, 0x4a, 0x44, 0x2c, 0xc1, 0xe2, 0xf1, 0x40, 0x16, 0x8b, 0x32,
+    0x3a, 0xb6, 0x9c, 0x12, 0x40, 0xc6, 0xbd, 0x9c, 0x11, 0x25, 0x66, 0xb8, 0x84, 0x33, 0x04, 0x41,
+    0x18, 0x85, 0xf5, 0xb0, 0xec, 0x42, 0x58, 0xc8, 0x43, 0x96, 0x87, 0xf1, 0x6d, 0xc2, 0x84, 0xaf,
+    0x61, 0xd3, 0x10, 0x57, 0x10, 0xe2, 0xdc, 0x6c, 0x35, 0x44, 0xdf, 0xa6, 0x8d, 0x45, 0x84, 0x8d,
+    0x3b, 0xd8, 0x6d, 0x84, 0x2b, 0x82, 0xe1, 0x16, 0x48, 0x5c, 0x61, 0x73, 0xdc, 0xcd, 0x18, 0x46,
+    0x5f, 0x0e, 0x21, 0xd8, 0x66, 0x84, 0x3d, 0x9a, 0x50, 0x17, 0xb8, 0x04, 0xb8, 0x40, 0x15, 0x8c,
+    0xb6, 0x0f, 0x83, 0x14, 0x66, 0xa5, 0x7c, 0x79, 0xd7, 0xe2, 0xd3, 0x43, 0xc4, 0xf2, 0xa5, 0xbd,
+    0xfb, 0xf6, 0x7f, 0xc4, 0x9f, 0x60, 0x43, 0xbf, 0x3e, 0xfd, 0x13, 0xe2, 0xe3, 0x2b, 0xfc, 0x21,
+    0x3e, 0x40, 0x9e, 0x84, 0x77, 0x8c, 0xb6, 0x1c, 0x10, 0x68, 0x10, 0x74, 0x86, 0x0f, 0xea, 0x05,
+    0x00, 0x04, 0x1e, 0x66, 0x98, 0x71, 0x87, 0x0f, 0x02, 0x6e, 0x17, 0xc0, 0x1f, 0x7f, 0x44, 0xa8,
+    0xde, 0x85, 0x18, 0x66, 0x28, 0x13, 0x00, 0x26, 0xfc, 0x81, 0x85, 0x0e, 0x3f, 0xe0, 0xe2, 0x87,
+    0x1f, 0x10, 0xf4, 0x61, 0xe2, 0x89, 0x28, 0x42, 0x30, 0x22, 0x2e, 0x3f, 0xe8, 0x80, 0xc5, 0x1f,
+    0x26, 0x7c, 0xe4, 0x13, 0x00, 0x3f, 0xf4, 0x21, 0xc4, 0x09, 0x40, 0xa0, 0xe0, 0x83, 0x0f, 0x49,
+    0x78, 0xe1, 0xc5, 0x42, 0x3e, 0x26, 0xb1, 0x23, 0x0a, 0x40, 0x00, 0x21, 0x44, 0x1f, 0x3f, 0xc8,
+    0xf8, 0x98, 0x85, 0x0c, 0x05, 0x04, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x07, 0x00, 0x0d, 0x00, 0x2c,
+    0x0d, 0x00, 0x17, 0x00, 0x21, 0x00, 0x2c, 0x00, 0x00, 0x08, 0xff, 0x00, 0x1b, 0x08, 0x1c, 0x48,
+    0x10, 0x04, 0x02, 0x82, 0x08, 0x13, 0x2a, 0x5c, 0xc8, 0xb0, 0xa1, 0xc3, 0x87, 0x10, 0x23, 0x0a,
+    0x0c, 0x40, 0x91, 0xa2, 0xc4, 0x81, 0x00, 0x14, 0x56, 0xdc, 0x58, 0x51, 0xe2, 0x83, 0x07, 0x04,
+    0x2b, 0x12, 0x5a, 0x72, 0xc8, 0xd0, 0x30, 0x41, 0xcd, 0x00, 0x58, 0x84, 0x98, 0x71, 0x20, 0xc5,
+    0x66, 0x88, 0x5a, 0xc8, 0x6c, 0x31, 0x90, 0x89, 0xb3, 0x95, 0x12, 0x29, 0x1a, 0x53, 0xd1, 0x62,
+    0xc5, 0x93, 0x21, 0x87, 0x10, 0x1a, 0x0a, 0x16, 0x20, 0x67, 0x80, 0x43, 0x32, 0x0b, 0x35, 0x19,
+    0x69, 0x28, 0x21, 0x22, 0xa2, 0x11, 0x03, 0x0c, 0x69, 0xd0, 0x62, 0x89, 0xb0, 0xa6, 0x0c, 0x87,
+    0x15, 0x7d, 0x18, 0x40, 0xd8, 0x8a, 0x16, 0x2a, 0xa4, 0x30, 0x79, 0xd8, 0x6c, 0x6b, 0xc3, 0xa3,
+    0x0d, 0x56, 0x10, 0x89, 0x18, 0xc5, 0x2c, 0xc1, 0x0c, 0x04, 0x01, 0xd4, 0x68, 0x20, 0x48, 0x4a,
+    0x44, 0x15, 0xc2, 0x12, 0x82, 0x88, 0x47, 0x90, 0x90, 0xc0, 0x15, 0x2b, 0x24, 0x16, 0x71, 0x9b,
+    0x30, 0x80, 0xb3, 0x8b, 0x03, 0x87, 0x10, 0x4e, 0x78, 0x18, 0x71, 0x83, 0x25, 0x8b, 0x11, 0x5a,
+    0x71, 0xdc, 0xa0, 0x71, 0x43, 0x61, 0x2a, 0x10, 0xab, 0xf0, 0xeb, 0x30, 0x00, 0x30, 0xc4, 0x5c,
+    0x5a, 0x3a, 0xb4, 0x1c, 0x71, 0x49, 0x44, 0x00, 0x6b, 0x23, 0x32, 0x59, 0x44, 0xd9, 0x61, 0x8d,
+    0x66, 0x8e, 0x5d, 0x3c, 0x2c, 0x42, 0xd9, 0x74, 0x43, 0x41, 0xad, 0x03, 0xa4, 0x56, 0xc8, 0x64,
+    0x4a, 0xeb, 0xca, 0x0c, 0x6d, 0xb7, 0x0e, 0x26, 0x3b, 0x21, 0xde, 0xdf, 0x0d, 0x02, 0x20, 0x52,
+    0x98, 0x28, 0xf2, 0x45, 0xd8, 0x8c, 0x91, 0x13, 0x2c, 0x42, 0x9d, 0x3a, 0x15, 0xe9, 0xd8, 0x3b,
+    0x47, 0xea, 0xc2, 0xbd, 0x7b, 0x72, 0xe9, 0x00, 0xde, 0xb4, 0x6a, 0x19, 0x4f, 0xde, 0x8d, 0xf3,
+    0x9c, 0x78, 0xc8, 0x93, 0xaf, 0x73, 0x5e, 0xe2, 0x8e, 0x34, 0xf0, 0xe3, 0x7f, 0xc9, 0x6e, 0x22,
+    0x0f, 0xc1, 0x3b, 0x59, 0xb2, 0x37, 0x00, 0x70, 0x24, 0x4c, 0x98, 0x17, 0x25, 0xe8, 0xe7, 0x52,
+    0x7b, 0x02, 0x16, 0x68, 0x20, 0x72, 0x01, 0x00, 0x60, 0xc2, 0x1f, 0x58, 0xe8, 0xf0, 0xc3, 0x0f,
+    0x0d, 0xf8, 0x21, 0x61, 0x42, 0x12, 0xfa, 0xd1, 0xc0, 0x83, 0x3a, 0x60, 0xf1, 0x87, 0x09, 0x2a,
+    0x4d, 0x54, 0x02, 0x2e, 0x7d, 0x08, 0x71, 0x02, 0x10, 0x28, 0x34, 0xe0, 0x83, 0x0f, 0x49, 0x24,
+    0xe1, 0xc5, 0x8a, 0x2c, 0xa6, 0x78, 0x62, 0x03, 0x28, 0x00, 0x71, 0x82, 0x10, 0x7d, 0xe0, 0x52,
+    0x02, 0x81, 0xc8, 0x05, 0x04, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x03, 0x00, 0x0a, 0x00, 0x2c, 0x0c,
+    0x00, 0x15, 0x00, 0x21, 0x00, 0x2d, 0x00, 0x00, 0x08, 0xff, 0x00, 0x15, 0x08, 0x1c, 0x48, 0xb0,
+    0xe0, 0xc0, 0x0c, 0x08, 0x0c, 0x2a, 0x5c, 0x38, 0x70, 0x00, 0x80, 0x82, 0x00, 0x06, 0x30, 0x9c,
+    0x58, 0x10, 0x03, 0xc5, 0x8b, 0x18, 0x33, 0x6a, 0xdc, 0xc8, 0xb1, 0xe3, 0xc2, 0x08, 0x12, 0x3d,
+    0x52, 0x8c, 0xf0, 0x6e, 0x61, 0x80, 0x00, 0xc1, 0x9a, 0x04, 0x3b, 0x19, 0x40, 0xe4, 0xc0, 0x00,
+    0xc2, 0x0e, 0x25, 0x52, 0x21, 0x10, 0xca, 0xa1, 0x66, 0x2d, 0x45, 0x4e, 0x39, 0xd4, 0xa3, 0x45,
+    0x0b, 0x17, 0x2e, 0x08, 0x46, 0x11, 0x96, 0x73, 0x63, 0x30, 0x27, 0x0a, 0x5c, 0x14, 0x52, 0x30,
+    0x65, 0x48, 0x41, 0x2e, 0x84, 0x8a, 0x62, 0x9c, 0x82, 0x48, 0x01, 0x17, 0x2b, 0x54, 0x0a, 0x71,
+    0x51, 0xc8, 0x45, 0x98, 0xc6, 0x00, 0x87, 0x14, 0xb4, 0xb0, 0x32, 0x24, 0x28, 0x43, 0x44, 0x52,
+    0x27, 0x0a, 0xeb, 0xd9, 0x82, 0x09, 0x4d, 0x8a, 0xce, 0x14, 0x66, 0x28, 0x08, 0x56, 0x01, 0x11,
+    0x8d, 0x51, 0xd2, 0x8e, 0x88, 0x37, 0xf0, 0x81, 0x82, 0x00, 0x89, 0xec, 0x2e, 0xc5, 0xd8, 0x23,
+    0xd8, 0xc5, 0x26, 0x1d, 0x55, 0x2c, 0xbb, 0xe8, 0xb5, 0x23, 0xa1, 0xc3, 0x89, 0x1f, 0x53, 0x04,
+    0x50, 0xa3, 0xa3, 0xe1, 0x8b, 0x4f, 0x38, 0xa2, 0xc5, 0xd8, 0x8c, 0x63, 0x5c, 0x8c, 0x01, 0xaa,
+    0x6a, 0x7c, 0x98, 0x91, 0x4a, 0x46, 0xb3, 0x2e, 0x17, 0xaa, 0xf8, 0xec, 0x39, 0x35, 0xc5, 0x28,
+    0x0c, 0x89, 0x90, 0xf6, 0xd8, 0x79, 0x21, 0x6b, 0x8f, 0x00, 0xa0, 0x28, 0x2c, 0xec, 0xda, 0x90,
+    0x42, 0xd1, 0xae, 0x2b, 0x13, 0xec, 0xe1, 0xba, 0xa0, 0x94, 0xe3, 0xc5, 0x93, 0x5f, 0xfc, 0x32,
+    0xa6, 0xb9, 0x73, 0x30, 0xc5, 0x03, 0xd8, 0x71, 0xf3, 0x86, 0x3a, 0x75, 0x3b, 0xc9, 0xc5, 0x18,
+    0xdc, 0x93, 0xdc, 0xc6, 0x99, 0xef, 0xe0, 0x8f, 0x24, 0x42, 0x0f, 0x30, 0x86, 0xa0, 0x98, 0xd9,
+    0xae, 0x03, 0xf8, 0xf8, 0xf2, 0xc5, 0x47, 0x5a, 0xe5, 0xf0, 0xe3, 0xcb, 0x9f, 0xff, 0xb2, 0x84,
+    0x02, 0x66, 0x58, 0x74, 0x28, 0xf8, 0x31, 0xd0, 0x8f, 0xff, 0xff, 0x03, 0xf1, 0xa7, 0x03, 0x16,
+    0xcc, 0x64, 0xb1, 0x88, 0x54, 0x01, 0xe8, 0x47, 0x10, 0x0a, 0x02, 0xf9, 0xa0, 0x40, 0x12, 0x10,
+    0x46, 0xa8, 0x80, 0x83, 0x0a, 0x30, 0xd8, 0x9f, 0x0e, 0x01, 0x04, 0x04, 0x00, 0x21, 0xf9, 0x04,
+    0x05, 0x04, 0x00, 0x07, 0x00, 0x2c, 0x0b, 0x00, 0x14, 0x00, 0x22, 0x00, 0x2e, 0x00, 0x00, 0x08,
+    0xff, 0x00, 0x0f, 0x08, 0x1c, 0x48, 0xb0, 0x60, 0x41, 0x00, 0x06, 0x13, 0x2a, 0x5c, 0x28, 0x90,
+    0x82, 0x07, 0x86, 0x10, 0x07, 0x02, 0x88, 0x97, 0x21, 0xa2, 0x45, 0x85, 0x0a, 0x2e, 0x6a, 0xdc,
+    0xc8, 0xb1, 0xa3, 0xc7, 0x8f, 0x09, 0x23, 0x3c, 0x04, 0x09, 0x71, 0x04, 0xc3, 0x26, 0xcd, 0xac,
+    0x58, 0x11, 0x46, 0xb2, 0xa0, 0x33, 0x44, 0x2a, 0x5a, 0x08, 0x6c, 0xc1, 0x64, 0x49, 0x30, 0x92,
+    0xc2, 0x9c, 0xc8, 0x74, 0xe1, 0x84, 0x08, 0x41, 0x2e, 0xcd, 0x3e, 0x12, 0xe2, 0x72, 0x80, 0xcb,
+    0x90, 0x2a, 0xc2, 0x96, 0x14, 0x54, 0x31, 0xa4, 0xa3, 0x30, 0xa2, 0x4e, 0x84, 0x15, 0x21, 0x22,
+    0xd3, 0xa0, 0x8a, 0xa0, 0x1b, 0xa3, 0x08, 0x24, 0x54, 0xa8, 0xaa, 0x42, 0x2e, 0x37, 0x2f, 0x36,
+    0xab, 0xea, 0xc2, 0xeb, 0x42, 0xa5, 0x06, 0x2b, 0x4a, 0x14, 0x68, 0xe8, 0x40, 0x94, 0x22, 0x17,
+    0x99, 0x18, 0x1c, 0x11, 0x8f, 0x20, 0x89, 0x03, 0x8b, 0x6a, 0x1c, 0x60, 0xa2, 0xd5, 0x62, 0x0b,
+    0x96, 0x11, 0x09, 0x79, 0xc4, 0x0a, 0x91, 0xf0, 0x46, 0xb8, 0x11, 0xa9, 0x0c, 0xb6, 0xb8, 0xa8,
+    0x07, 0xc7, 0xbf, 0x17, 0xfb, 0x6a, 0xf4, 0x79, 0xd1, 0x19, 0xc7, 0xa6, 0x2d, 0x17, 0x2e, 0xca,
+    0x9c, 0x50, 0xaf, 0x47, 0xcf, 0x9c, 0x43, 0x6b, 0x44, 0x24, 0xda, 0x20, 0xe2, 0xd2, 0x03, 0xf3,
+    0x2a, 0x6c, 0x92, 0x59, 0x32, 0x41, 0x60, 0xa1, 0x5d, 0x2c, 0x45, 0x5d, 0xa4, 0x36, 0xea, 0xdb,
+    0x10, 0xbf, 0x84, 0x9e, 0x73, 0xc0, 0x4d, 0xef, 0xde, 0xbc, 0x39, 0xef, 0x31, 0x98, 0x27, 0xf4,
+    0x11, 0x34, 0xc8, 0x93, 0xef, 0x10, 0x2d, 0x86, 0x60, 0x18, 0xd4, 0x7c, 0xba, 0x74, 0x09, 0x82,
+    0xbb, 0xba, 0xf5, 0xeb, 0x9c, 0x4d, 0x1c, 0xc0, 0x32, 0x10, 0x57, 0xc1, 0x3e, 0x7d, 0x0a, 0x7a,
+    0x14, 0x17, 0x88, 0xe5, 0x8f, 0x76, 0x83, 0x3f, 0x14, 0x26, 0x19, 0xe8, 0xc5, 0xcb, 0xc0, 0xf5,
+    0x06, 0xfb, 0xa4, 0x0f, 0x08, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x03, 0x00, 0x1f, 0x00, 0x2c, 0x0a,
+    0x00, 0x14, 0x00, 0x23, 0x00, 0x2e, 0x00, 0x00, 0x08, 0xff, 0x00, 0x3f, 0x08, 0x1c, 0x48, 0xb0,
+    0x60, 0xc1, 0x0c, 0x24, 0x0c, 0x2a, 0x5c, 0x48, 0x70, 0xc4, 0x08, 0x83, 0x0c, 0x18, 0x4a, 0x54,
+    0x18, 0x71, 0xa2, 0xc5, 0x8b, 0x17, 0x3d, 0x60, 0xdc, 0x78, 0x90, 0xa3, 0xc7, 0x8b, 0x0f, 0x3f,
+    0x62, 0x04, 0x00, 0xe1, 0x9d, 0xc8, 0x93, 0x04, 0x01, 0x34, 0x3b, 0x14, 0x85, 0x08, 0xa2, 0x43,
+    0xce, 0x82, 0x9d, 0x04, 0x41, 0xd0, 0x19, 0x93, 0x16, 0x2d, 0x08, 0xb6, 0x58, 0xb1, 0x64, 0x11,
+    0x4a, 0x00, 0x87, 0x72, 0x72, 0x51, 0x52, 0x44, 0x90, 0x4e, 0x44, 0xc2, 0x4e, 0x3e, 0x69, 0xe1,
+    0x42, 0x50, 0x15, 0x2b, 0x82, 0x9c, 0x14, 0x6c, 0xc1, 0xa4, 0xc9, 0x47, 0x63, 0x4c, 0xa5, 0x50,
+    0x71, 0x92, 0x53, 0x61, 0x8b, 0x28, 0x1e, 0x09, 0xf5, 0xf8, 0xe0, 0x62, 0x08, 0x97, 0x89, 0x2d,
+    0x9c, 0x71, 0x1c, 0xf6, 0x81, 0x0b, 0xd7, 0x8b, 0x88, 0x14, 0x66, 0x28, 0x18, 0xe0, 0x43, 0xb0,
+    0x1a, 0x1f, 0x04, 0x0d, 0xc1, 0xa8, 0x22, 0x29, 0xc1, 0x01, 0xf1, 0x08, 0x7a, 0xa8, 0xdb, 0x2c,
+    0xa7, 0x0b, 0x17, 0x1b, 0xd5, 0x5e, 0x54, 0xcc, 0xb1, 0xc5, 0x12, 0x8c, 0x8c, 0x39, 0x3e, 0xbe,
+    0x58, 0xe4, 0x63, 0x5a, 0x8c, 0xc2, 0xba, 0x6e, 0x54, 0x41, 0x68, 0x23, 0x30, 0x8f, 0x5c, 0x00,
+    0x6c, 0xdc, 0x2b, 0x99, 0x23, 0x00, 0x22, 0x1c, 0x65, 0x72, 0xec, 0x8c, 0x12, 0x23, 0x62, 0x89,
+    0x3d, 0x2a, 0x9f, 0x9c, 0xdc, 0x7a, 0x22, 0xea, 0x85, 0x4c, 0x7c, 0xb6, 0x8e, 0x5c, 0x90, 0x36,
+    0xca, 0x60, 0xaf, 0xa7, 0xfa, 0xad, 0x1d, 0xd7, 0x20, 0x94, 0xda, 0x03, 0x65, 0x23, 0xdf, 0x38,
+    0x7c, 0xb9, 0x73, 0x86, 0x91, 0xba, 0x48, 0x9f, 0xfe, 0xbc, 0x84, 0x9b, 0x36, 0xd8, 0xb3, 0xb7,
+    0x11, 0xbd, 0xfc, 0x8e, 0x41, 0x3a, 0xcf, 0xc1, 0xa8, 0x4c, 0x19, 0x4f, 0xfe, 0xcb, 0x73, 0x13,
+    0x78, 0x08, 0xda, 0xf9, 0xf3, 0xfc, 0x43, 0x89, 0x17, 0x7b, 0xf6, 0xec, 0x30, 0xd1, 0xbe, 0xbe,
+    0xfd, 0xfb, 0xf8, 0x17, 0x02, 0xc8, 0x22, 0x50, 0xc7, 0x8f, 0x0f, 0x7e, 0x0c, 0xd4, 0x47, 0x1f,
+    0x02, 0x0d, 0x38, 0x50, 0x80, 0x3f, 0xe8, 0x20, 0x50, 0x16, 0xdc, 0x11, 0xb4, 0x48, 0x80, 0x27,
+    0x0c, 0xe4, 0xc3, 0x07, 0x49, 0x08, 0xe4, 0x85, 0x17, 0x16, 0x62, 0x48, 0xe1, 0x07, 0x13, 0x0a,
+    0x14, 0xa1, 0x1f, 0x8b, 0x04, 0x04, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x07, 0x00, 0x0c, 0x00, 0x2c,
+    0x09, 0x00, 0x13, 0x00, 0x24, 0x00, 0x2f, 0x00, 0x00, 0x08, 0xff, 0x00, 0x19, 0x08, 0x1c, 0x48,
+    0xb0, 0xa0, 0x41, 0x06, 0x11, 0x0e, 0x2a, 0x5c, 0x28, 0x10, 0xc4, 0xc1, 0x08, 0x1e, 0x18, 0x4a,
+    0x2c, 0x08, 0xc1, 0xe1, 0xc4, 0x8b, 0x18, 0x19, 0x52, 0xc8, 0xc8, 0x91, 0xe0, 0xba, 0x0c, 0x1d,
+    0x43, 0x8a, 0x1c, 0xa9, 0xd0, 0x03, 0x09, 0x92, 0x17, 0x37, 0x4a, 0x5c, 0x56, 0x44, 0x8a, 0x33,
+    0x42, 0x00, 0x50, 0x82, 0x1c, 0x18, 0x6c, 0x09, 0x97, 0x16, 0x38, 0x71, 0xae, 0x38, 0x24, 0x6c,
+    0xa4, 0x4a, 0x06, 0xcd, 0x6e, 0x32, 0x70, 0x41, 0x84, 0xc9, 0xc0, 0x16, 0x35, 0x96, 0xa0, 0x74,
+    0xe6, 0x82, 0x01, 0x93, 0x21, 0x55, 0xaa, 0x28, 0x25, 0xd8, 0xe2, 0xd0, 0x48, 0x67, 0x2a, 0x18,
+    0x18, 0xaa, 0x52, 0xc4, 0x09, 0x4e, 0x83, 0x55, 0x43, 0x36, 0x59, 0xc1, 0x80, 0x4b, 0x95, 0x27,
+    0x2d, 0x18, 0xaa, 0x68, 0xd6, 0xf1, 0x50, 0x5a, 0x15, 0x4c, 0xd2, 0x4a, 0x44, 0xc4, 0xb1, 0x49,
+    0x0d, 0x06, 0x4a, 0x0a, 0x61, 0x6c, 0xb1, 0xcc, 0xe0, 0xcc, 0x81, 0x01, 0x04, 0x3a, 0x4b, 0xab,
+    0x24, 0xca, 0xde, 0xa9, 0x03, 0x23, 0xc4, 0x23, 0xf8, 0x6e, 0xa6, 0x55, 0x06, 0x5f, 0x31, 0x3e,
+    0xbe, 0x38, 0x4c, 0xa4, 0xa1, 0x8c, 0x93, 0x39, 0x56, 0xc6, 0x28, 0x48, 0x64, 0x66, 0x89, 0x6c,
+    0x3b, 0xb6, 0x70, 0x96, 0x71, 0x11, 0x97, 0x8e, 0x35, 0x82, 0x71, 0xec, 0xcc, 0xf1, 0xf3, 0xc4,
+    0x45, 0x46, 0x31, 0x9e, 0x46, 0x29, 0x71, 0x05, 0x21, 0xda, 0x0c, 0x5d, 0x84, 0xc6, 0xad, 0xd0,
+    0x18, 0x6d, 0x00, 0xb1, 0x0f, 0xce, 0xa6, 0x8d, 0xd8, 0x20, 0x6b, 0xda, 0xc2, 0xb2, 0x1e, 0xbc,
+    0xcd, 0x1b, 0xca, 0xc1, 0x15, 0x31, 0x79, 0x93, 0x36, 0x38, 0x84, 0x37, 0x41, 0x2b, 0xd8, 0xb1,
+    0x5b, 0xdf, 0x3e, 0xb1, 0x04, 0x83, 0x48, 0xe0, 0xc3, 0x33, 0x58, 0xf0, 0xce, 0x1b, 0x0b, 0x9b,
+    0xf3, 0xe8, 0xcf, 0x63, 0xd9, 0x0e, 0x27, 0xfd, 0x79, 0x37, 0xd1, 0x79, 0x8f, 0x59, 0x43, 0xbf,
+    0xbe, 0x18, 0xee, 0x3a, 0xe2, 0x10, 0x7c, 0x83, 0x8b, 0x3b, 0x03, 0x2c, 0x5d, 0xcc, 0x21, 0x47,
+    0x17, 0x3a, 0xf8, 0x67, 0xe0, 0x81, 0x08, 0x26, 0xa8, 0x90, 0x77, 0xcc, 0x0c, 0xd4, 0x9f, 0x40,
+    0x7d, 0x18, 0x14, 0xa1, 0x40, 0x0f, 0x32, 0xd0, 0x20, 0x79, 0x05, 0x35, 0x28, 0x04, 0x03, 0x40,
+    0xa0, 0x50, 0x90, 0x17, 0x02, 0xf1, 0x21, 0x22, 0x03, 0x20, 0x12, 0x84, 0x02, 0x10, 0x0c, 0x6c,
+    0xc8, 0x4c, 0x40, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x03, 0x00, 0x1d, 0x00, 0x2c, 0x08, 0x00, 0x12,
+    0x00, 0x26, 0x00, 0x30, 0x00, 0x00, 0x08, 0xff, 0x00, 0x3b, 0x08, 0x1c, 0x48, 0xb0, 0xa0, 0x41,
+    0x81, 0x00, 0x0e, 0x2a, 0x5c, 0x38, 0x30, 0x03, 0x85, 0x83, 0x0c, 0x3c, 0x30, 0x9c, 0x68, 0x70,
+    0x84, 0x44, 0x83, 0x0c, 0x28, 0x6a, 0xdc, 0xc8, 0xb1, 0xa3, 0x46, 0x10, 0x03, 0x3c, 0x16, 0x44,
+    0xb0, 0xf1, 0xa1, 0xc8, 0x93, 0x13, 0x23, 0x64, 0x40, 0xd9, 0x11, 0x81, 0x3c, 0x96, 0x1d, 0x33,
+    0x2e, 0x5c, 0xe4, 0xec, 0x10, 0x22, 0x22, 0x88, 0x86, 0x39, 0x6b, 0x02, 0x13, 0x43, 0x00, 0x82,
+    0x4b, 0xb8, 0xb4, 0x28, 0xd8, 0xa2, 0xc6, 0xa1, 0x60, 0x07, 0x11, 0x44, 0x98, 0xc8, 0xe0, 0x67,
+    0x87, 0x26, 0x51, 0x86, 0x72, 0x29, 0x24, 0x45, 0x09, 0xc1, 0x16, 0x4c, 0x08, 0x19, 0x34, 0xa9,
+    0xb1, 0x09, 0x91, 0x16, 0x2e, 0x04, 0x4d, 0x21, 0xb4, 0x24, 0x8a, 0xc1, 0x15, 0x5a, 0x51, 0x46,
+    0x5d, 0x61, 0x85, 0x4a, 0xd4, 0x85, 0x4c, 0x90, 0x8a, 0x1c, 0x32, 0x94, 0x88, 0x15, 0x2e, 0x13,
+    0x5b, 0x1c, 0x12, 0xb9, 0x08, 0xef, 0x0a, 0x17, 0x43, 0x29, 0xf6, 0x10, 0xe6, 0xd1, 0xd9, 0x50,
+    0x2b, 0x1d, 0x97, 0x1c, 0x5c, 0x49, 0xd0, 0x69, 0x87, 0xbd, 0x1d, 0x0c, 0xad, 0xe0, 0x68, 0xc8,
+    0x20, 0x80, 0x77, 0x04, 0xdf, 0x01, 0x70, 0x8a, 0xe8, 0x24, 0x30, 0x8f, 0x89, 0x4e, 0x42, 0xf1,
+    0xd8, 0x59, 0xe4, 0xe7, 0x8e, 0xc3, 0x4e, 0x56, 0xee, 0xe8, 0xec, 0xa4, 0xe2, 0x8e, 0x4d, 0x6a,
+    0x78, 0x74, 0x41, 0xd8, 0x23, 0x64, 0x98, 0x1a, 0xe5, 0x72, 0xe4, 0x89, 0xbb, 0xb7, 0xe0, 0x89,
+    0x3d, 0x7c, 0x1b, 0xf3, 0x4d, 0xb1, 0x2f, 0x43, 0xdd, 0xb8, 0x05, 0x2d, 0xbc, 0xdd, 0x3b, 0xed,
+    0xc1, 0x66, 0xc4, 0x3b, 0x2c, 0x92, 0x6d, 0xb0, 0x06, 0x72, 0xdf, 0xc1, 0x0b, 0x32, 0x8a, 0xce,
+    0xbd, 0x3b, 0xcb, 0x3f, 0x5f, 0x0e, 0x66, 0x60, 0xe1, 0xde, 0x47, 0xa1, 0x1f, 0xee, 0x25, 0xda,
+    0x18, 0x64, 0xf3, 0xa7, 0x7b, 0x18, 0x36, 0xf0, 0xe3, 0xeb, 0xf1, 0xde, 0x67, 0x0d, 0x41, 0x35,
+    0x27, 0xbc, 0x77, 0xe8, 0x13, 0x26, 0x4d, 0x9a, 0x3d, 0x42, 0xe8, 0x37, 0x10, 0x00, 0x09, 0x09,
+    0x68, 0xe0, 0x81, 0x08, 0x0a, 0x64, 0xc2, 0x1f, 0x58, 0xe8, 0xf0, 0x03, 0x2e, 0xe7, 0xed, 0xa7,
+    0x50, 0x79, 0x1d, 0xf8, 0x81, 0xcb, 0x0f, 0x3a, 0x60, 0xf1, 0x87, 0x09, 0x0b, 0xe9, 0x40, 0xa1,
+    0x40, 0x3e, 0x74, 0x90, 0x44, 0x07, 0x5e, 0x74, 0xc0, 0x07, 0x1f, 0x03, 0xa1, 0x58, 0xe2, 0x88,
+    0x21, 0x0e, 0xd4, 0x87, 0x0e, 0x1d, 0x04, 0x04, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x03, 0x00, 0x24,
+    0x00, 0x2c, 0x08, 0x00, 0x11, 0x00, 0x26, 0x00, 0x31, 0x00, 0x00, 0x08, 0xff, 0x00, 0x49, 0x08,
+    0x1c, 0x48, 0xb0, 0xa0, 0xc1, 0x83, 0x08, 0x13, 0x1a, 0xcc, 0x80, 0x90, 0x02, 0x04, 0x85, 0x10,
+    0x0d, 0xbe, 0x1b, 0x10, 0xb1, 0xa2, 0xc5, 0x8b, 0x18, 0x33, 0x16, 0x64, 0xa0, 0x51, 0x23, 0x82,
+    0x0d, 0x1d, 0x43, 0x86, 0x04, 0x00, 0x40, 0x24, 0x41, 0x10, 0x18, 0x4c, 0x5a, 0xcc, 0x90, 0x52,
+    0xa5, 0x4b, 0x12, 0xc2, 0x96, 0x44, 0x81, 0xd2, 0xa2, 0x06, 0x22, 0x41, 0xcb, 0x44, 0x7a, 0x28,
+    0x39, 0x70, 0xca, 0xa1, 0x1e, 0x07, 0x5b, 0xfc, 0x12, 0x76, 0x50, 0x81, 0x02, 0x85, 0x01, 0x02,
+    0x0c, 0x14, 0x46, 0x44, 0x20, 0x91, 0x25, 0x56, 0x04, 0x15, 0x5c, 0xd1, 0xec, 0x20, 0xcf, 0x88,
+    0xc2, 0xb8, 0x90, 0x58, 0x31, 0x84, 0x84, 0x15, 0x25, 0x4e, 0x0c, 0xf6, 0xa8, 0xda, 0x71, 0x51,
+    0x53, 0x2e, 0x84, 0x08, 0x35, 0x4d, 0xb8, 0x82, 0xa8, 0x46, 0x63, 0x03, 0xa5, 0xb8, 0x88, 0x38,
+    0x4c, 0x63, 0x93, 0x1a, 0x24, 0x98, 0xac, 0xb0, 0xa8, 0x22, 0x67, 0x47, 0x42, 0x4f, 0x2e, 0x4a,
+    0x2d, 0x78, 0x55, 0xa0, 0xd2, 0x81, 0x75, 0x49, 0x38, 0x99, 0x6b, 0x31, 0x8a, 0xc1, 0x0d, 0xf1,
+    0x06, 0x7a, 0x48, 0x3a, 0x10, 0x58, 0x47, 0x28, 0x19, 0x31, 0x6b, 0x84, 0x91, 0xd1, 0xb2, 0xc6,
+    0x44, 0x2f, 0x43, 0x13, 0xec, 0x2a, 0x5a, 0x21, 0x50, 0x8c, 0xa7, 0x4b, 0xab, 0x5e, 0xcd, 0xba,
+    0xb4, 0x8a, 0x97, 0x83, 0x5b, 0xcb, 0x4e, 0x08, 0x77, 0xf6, 0xc0, 0x16, 0xb6, 0x4d, 0xaf, 0x7e,
+    0x9d, 0xbb, 0xb7, 0x6f, 0x81, 0x5f, 0x82, 0x0b, 0xff, 0xdd, 0xa7, 0xb4, 0x09, 0x36, 0x07, 0xb1,
+    0xa8, 0xde, 0x63, 0x30, 0xcf, 0x6a, 0x21, 0x6a, 0x08, 0xa6, 0x01, 0xd2, 0x7a, 0xcf, 0x19, 0x33,
+    0x7a, 0x4e, 0xfc, 0xde, 0xce, 0xbd, 0x7b, 0xc7, 0xe2, 0xa2, 0x7f, 0x28, 0x08, 0xe4, 0x63, 0x90,
+    0x7c, 0x42, 0xf1, 0x01, 0x01, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x04, 0x00, 0x26, 0x00, 0x2c, 0x07,
+    0x00, 0x11, 0x00, 0x28, 0x00, 0x14, 0x00, 0x00, 0x08, 0x67, 0x00, 0x4d, 0x08, 0x1c, 0x48, 0xb0,
+    0xa0, 0x41, 0x81, 0x14, 0x1e, 0x1c, 0x5c, 0xc8, 0x90, 0xe0, 0x88, 0x0d, 0x0b, 0x19, 0x78, 0x68,
+    0x48, 0xf1, 0x20, 0x80, 0x8a, 0x18, 0x33, 0x6a, 0xdc, 0xc8, 0xb1, 0x21, 0x80, 0x77, 0x14, 0x3a,
+    0x56, 0x8c, 0x70, 0x50, 0xa1, 0xc8, 0x81, 0x24, 0x42, 0x9e, 0x34, 0xa8, 0x72, 0x61, 0x80, 0x00,
+    0x2b, 0x0b, 0x52, 0x90, 0x17, 0xb3, 0xa6, 0x4d, 0x8d, 0x19, 0x6e, 0x9a, 0x60, 0x40, 0x71, 0x00,
+    0x00, 0x98, 0x36, 0xdf, 0x5d, 0xd4, 0x49, 0xb4, 0xa8, 0xd1, 0xa3, 0x48, 0x93, 0x2a, 0x2d, 0x98,
+    0x53, 0xe0, 0x4f, 0xa4, 0x24, 0x22, 0x44, 0x88, 0x37, 0xf0, 0x01, 0x50, 0xa3, 0x14, 0x32, 0x04,
+    0x04, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x06, 0x00, 0x24, 0x00, 0x2c, 0x07, 0x00, 0x10, 0x00, 0x28,
+    0x00, 0x15, 0x00, 0x00, 0x06, 0x54, 0x40, 0x92, 0x70, 0x48, 0x2c, 0x1a, 0x85, 0x94, 0xc7, 0x71,
+    0xc9, 0x24, 0x62, 0x28, 0x4b, 0x86, 0xa7, 0x49, 0x3d, 0x22, 0x94, 0xd5, 0xac, 0x76, 0xcb, 0xed,
+    0x32, 0x47, 0x13, 0x2f, 0x95, 0x02, 0x59, 0x0e, 0xc4, 0xc3, 0x47, 0xa0, 0x18, 0x58, 0xa3, 0x9b,
+    0xed, 0x77, 0x71, 0xc2, 0x90, 0x73, 0x41, 0xf6, 0xbc, 0x9e, 0xfa, 0xa0, 0xb8, 0xf3, 0x03, 0x78,
+    0x4c, 0x71, 0x7b, 0x67, 0x7b, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x44, 0x00, 0x43, 0x00,
+    0x7f, 0x8a, 0x08, 0x08, 0x43, 0x08, 0x93, 0x89, 0x0c, 0x41, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x04,
+    0x00, 0x25, 0x00, 0x2c, 0x07, 0x00, 0x0f, 0x00, 0x29, 0x00, 0x16, 0x00, 0x00, 0x08, 0x67, 0x00,
+    0x4b, 0x08, 0x1c, 0x48, 0xb0, 0xa0, 0x41, 0x81, 0x14, 0x36, 0x1c, 0x5c, 0xc8, 0x90, 0x60, 0x86,
+    0x11, 0x0c, 0x19, 0x78, 0x68, 0x48, 0xf1, 0x60, 0x86, 0x75, 0x15, 0x33, 0x6a, 0xdc, 0xc8, 0xb1,
+    0xa3, 0x46, 0x04, 0x00, 0x3c, 0x8a, 0x14, 0x38, 0x71, 0xa4, 0xc0, 0x01, 0x06, 0x01, 0x40, 0x34,
+    0xc9, 0x30, 0x40, 0x00, 0x96, 0x30, 0x1b, 0xca, 0xab, 0x18, 0xe1, 0x41, 0x4c, 0x8e, 0x24, 0x6e,
+    0x8a, 0xa4, 0xa0, 0x33, 0x23, 0x05, 0x97, 0x3d, 0x4b, 0xbc, 0x5b, 0x19, 0x94, 0x21, 0xd1, 0xa2,
+    0x48, 0x93, 0x2a, 0x5d, 0xca, 0xb4, 0x69, 0x4c, 0x00, 0x2f, 0x97, 0x3e, 0x48, 0x28, 0x90, 0x44,
+    0x54, 0xa5, 0x03, 0x00, 0x04, 0x04, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x03, 0x00, 0x26, 0x00, 0x2c,
+    0x09, 0x00, 0x0e, 0x00, 0x28, 0x00, 0x17, 0x00, 0x00, 0x06, 0x57, 0x40, 0x93, 0x70, 0x48, 0x2c,
+    0x1a, 0x29, 0x0a, 0xa3, 0x72, 0xc9, 0x5c, 0x32, 0x3c, 0xcd, 0xa8, 0x11, 0x81, 0x90, 0x5a, 0xad,
+    0x94, 0xab, 0x76, 0xab, 0xa5, 0x44, 0xb8, 0xe0, 0x21, 0x04, 0x14, 0x36, 0x3d, 0x94, 0x19, 0x52,
+    0xb9, 0x09, 0x08, 0x18, 0x03, 0xee, 0xb5, 0x7c, 0x1e, 0x3e, 0x37, 0x11, 0x10, 0xba, 0x30, 0x6e,
+    0x05, 0xe8, 0xad, 0x08, 0x14, 0x7c, 0x7f, 0x26, 0x0d, 0x7e, 0x45, 0x83, 0x84, 0x10, 0x19, 0x84,
+    0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, 0x42, 0x6d, 0x95, 0x1b, 0x26, 0x08, 0x89, 0x90,
+    0x5f, 0x41, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x03, 0x00, 0x26, 0x00, 0x2c, 0x08, 0x00, 0x0d, 0x00,
+    0x29, 0x00, 0x18, 0x00, 0x00, 0x08, 0x6e, 0x00, 0x4d, 0x08, 0x1c, 0x48, 0xb0, 0xa0, 0x41, 0x13,
+    0x19, 0x48, 0x1c, 0x5c, 0xc8, 0xb0, 0x61, 0x41, 0x06, 0x1e, 0x1c, 0x4a, 0x2c, 0x08, 0x02, 0xc0,
+    0xc4, 0x8b, 0x12, 0x37, 0x60, 0xdc, 0xc8, 0xf1, 0x22, 0x83, 0x8e, 0x20, 0x05, 0x32, 0x90, 0x67,
+    0x11, 0x24, 0x85, 0x83, 0x09, 0x19, 0x2a, 0x04, 0x19, 0x20, 0xc0, 0xc1, 0x96, 0x21, 0x1d, 0xba,
+    0x8c, 0x49, 0x53, 0xe2, 0xca, 0x86, 0x25, 0x6b, 0x0a, 0xa4, 0x90, 0xc1, 0xa1, 0x46, 0x9d, 0x1d,
+    0x23, 0xcc, 0x04, 0xea, 0x10, 0x00, 0x4c, 0xa2, 0x04, 0x49, 0xbc, 0x43, 0x3a, 0xf1, 0x23, 0xd3,
+    0xa7, 0x50, 0xa3, 0x4a, 0x9d, 0x4a, 0xb5, 0xaa, 0xd5, 0xa1, 0x54, 0x1f, 0x20, 0x78, 0x80, 0x75,
+    0xea, 0x00, 0x06, 0x01, 0x01, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x07, 0x00, 0x24, 0x00, 0x2c, 0x07,
+    0x00, 0x0c, 0x00, 0x2b, 0x00, 0x19, 0x00, 0x00, 0x08, 0x69, 0x00, 0x49, 0x08, 0x1c, 0x48, 0xb0,
+    0xa0, 0xc1, 0x81, 0x0c, 0x0e, 0x2a, 0x5c, 0xc8, 0xf0, 0x20, 0x03, 0x0f, 0x0d, 0x23, 0x4a, 0x9c,
+    0x48, 0x51, 0x21, 0x84, 0x8a, 0x18, 0x33, 0x6a, 0xdc, 0x88, 0x11, 0xc3, 0x04, 0x8e, 0x08, 0x14,
+    0x02, 0x18, 0xc1, 0x30, 0xc3, 0xc6, 0x00, 0x28, 0x0f, 0xa6, 0xe4, 0xc8, 0xb2, 0xa5, 0xcb, 0x97,
+    0x1a, 0x33, 0x7c, 0x84, 0x39, 0x71, 0xa5, 0x44, 0x0a, 0x34, 0x27, 0x82, 0x18, 0x10, 0x20, 0x67,
+    0xc1, 0x0c, 0x24, 0x0b, 0xf6, 0xf4, 0x49, 0x50, 0x5e, 0x48, 0xa2, 0x48, 0x33, 0x36, 0x48, 0xca,
+    0xd0, 0x26, 0xd3, 0xa7, 0x50, 0xa3, 0x4a, 0x9d, 0x2a, 0x94, 0xea, 0x83, 0x8f, 0x03, 0xa8, 0x0e,
+    0xa0, 0x10, 0x10, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x03, 0x00, 0x25, 0x00, 0x2c, 0x07, 0x00, 0x0c,
+    0x00, 0x2c, 0x00, 0x19, 0x00, 0x00, 0x06, 0x56, 0xc0, 0x92, 0x70, 0x48, 0x2c, 0x1a, 0x85, 0x14,
+    0xcc, 0x71, 0xc9, 0x6c, 0x3a, 0x9f, 0xd0, 0xa8, 0x74, 0x3a, 0x04, 0x78, 0xa8, 0xd8, 0xac, 0x33,
+    0xb3, 0xd1, 0x0a, 0x01, 0xcb, 0x40, 0xa4, 0xa9, 0xf0, 0x02, 0x02, 0x61, 0xb4, 0x77, 0xcd, 0x6e,
+    0xbb, 0xd7, 0x01, 0xd2, 0xf8, 0x1d, 0x0d, 0xa8, 0xe9, 0x78, 0xe1, 0xe6, 0x9e, 0x6f, 0x52, 0xf8,
+    0x7d, 0x25, 0x18, 0x65, 0x81, 0x4d, 0x18, 0x19, 0x85, 0x89, 0x53, 0x01, 0x5d, 0x8a, 0x8e, 0x8f,
+    0x90, 0x91, 0x92, 0x93, 0x4d, 0x80, 0x8f, 0x0f, 0x20, 0x76, 0x93, 0x03, 0x14, 0x41, 0x00, 0x21,
+    0xf9, 0x04, 0x05, 0x04, 0x00, 0x1c, 0x00, 0x2c, 0x0a, 0x00, 0x0b, 0x00, 0x2a, 0x00, 0x1a, 0x00,
+    0x00, 0x08, 0x69, 0x00, 0x39, 0x08, 0x1c, 0x48, 0xb0, 0xa0, 0xc1, 0x0c, 0x06, 0x13, 0x2a, 0x5c,
+    0xc8, 0x90, 0x81, 0x07, 0x86, 0x10, 0x23, 0x4a, 0x9c, 0x48, 0xb1, 0xa2, 0xc5, 0x8b, 0x0c, 0x23,
+    0x20, 0xc4, 0xa8, 0x30, 0xc0, 0x46, 0x85, 0xf2, 0x28, 0x58, 0xcc, 0x40, 0x21, 0xc0, 0x42, 0x93,
+    0x1c, 0x4f, 0xa6, 0x5c, 0xc9, 0xb2, 0x65, 0x44, 0x00, 0x1b, 0x5c, 0x52, 0x0c, 0x80, 0x52, 0xa6,
+    0xcd, 0x9b, 0x12, 0x47, 0xe0, 0x54, 0x48, 0x41, 0x24, 0x87, 0x9a, 0x3b, 0x09, 0xca, 0x1b, 0x10,
+    0xb4, 0xe8, 0xc4, 0x8f, 0x46, 0x0b, 0x02, 0x20, 0x9a, 0xb4, 0xa9, 0xd3, 0xa7, 0x50, 0xa3, 0x4a,
+    0x35, 0x1a, 0x81, 0xe0, 0x03, 0x10, 0x4d, 0x91, 0x0e, 0xa0, 0x10, 0x10, 0x00, 0x21, 0xf9, 0x04,
+    0x05, 0x03, 0x00, 0x1d, 0x00, 0x2c, 0x0a, 0x00, 0x0b, 0x00, 0x2b, 0x00, 0x1a, 0x00, 0x00, 0x06,
+    0x54, 0xc0, 0x8e, 0x70, 0x48, 0x2c, 0x1a, 0x19, 0xc6, 0xa4, 0x72, 0xc9, 0x6c, 0x3a, 0x9f, 0xd0,
+    0xa8, 0xd4, 0x48, 0x99, 0x5a, 0x93, 0x01, 0x00, 0x13, 0x04, 0xb2, 0x92, 0x32, 0xcc, 0xc0, 0xb5,
+    0x19, 0x10, 0x8f, 0xcf, 0xe8, 0xb4, 0x75, 0xd4, 0x50, 0x4b, 0xcb, 0xee, 0xb8, 0x7c, 0x6c, 0x9e,
+    0x3b, 0xe1, 0xf6, 0x24, 0xe3, 0x01, 0xce, 0x33, 0x49, 0x7e, 0x81, 0x6f, 0x11, 0x0f, 0x82, 0x58,
+    0x75, 0x86, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8c, 0x01, 0x08, 0x44, 0x0f, 0x6d, 0x86, 0x01,
+    0x48, 0x43, 0x03, 0x14, 0x41, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x07, 0x00, 0x12, 0x00, 0x2c, 0x13,
+    0x00, 0x0d, 0x00, 0x23, 0x00, 0x18, 0x00, 0x00, 0x06, 0x47, 0x40, 0x89, 0x70, 0x48, 0x2c, 0x1a,
+    0x8f, 0xc8, 0xa4, 0x24, 0x90, 0x51, 0x4a, 0x9a, 0xca, 0x40, 0x54, 0x49, 0xda, 0x28, 0x29, 0x52,
+    0xa7, 0x76, 0xcb, 0xed, 0x7a, 0x8f, 0x01, 0xeb, 0xb7, 0x1b, 0xc8, 0x8e, 0xcf, 0xe8, 0xb4, 0x7a,
+    0xcd, 0x06, 0xb0, 0x93, 0x10, 0xf1, 0x7b, 0xee, 0x8c, 0xd0, 0x8d, 0x4c, 0xca, 0x7d, 0xcf, 0xef,
+    0xfb, 0xff, 0x80, 0x81, 0x73, 0x01, 0x18, 0x44, 0x0f, 0x03, 0x74, 0x01, 0x76, 0x43, 0x03, 0x19,
+    0x41, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x03, 0x00, 0x1d, 0x00, 0x2c, 0x12, 0x00, 0x0c, 0x00, 0x25,
+    0x00, 0x19, 0x00, 0x00, 0x05, 0x42, 0x60, 0x27, 0x8e, 0x64, 0x69, 0x9e, 0x68, 0x4a, 0x02, 0x91,
+    0xea, 0xbe, 0x63, 0xe0, 0x52, 0x6e, 0x20, 0xc3, 0xe9, 0xf3, 0xde, 0x78, 0xef, 0xbb, 0x03, 0xc4,
+    0x6f, 0x68, 0x1b, 0x1a, 0x8f, 0xc8, 0xa4, 0x72, 0xc9, 0x44, 0x0e, 0x00, 0xcd, 0x94, 0x27, 0x13,
+    0xad, 0xee, 0x18, 0x0a, 0x6b, 0xa9, 0xa8, 0xed, 0x7a, 0xbf, 0xe0, 0xb0, 0x78, 0xdc, 0x0c, 0x60,
+    0x48, 0x0f, 0x5a, 0x35, 0xd0, 0x1a, 0x3d, 0x43, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x03, 0x00, 0x0c,
+    0x00, 0x2c, 0x1e, 0x00, 0x0c, 0x00, 0x19, 0x00, 0x19, 0x00, 0x00, 0x06, 0x38, 0x40, 0xca, 0x86,
+    0x41, 0x2c, 0x1a, 0x8f, 0x48, 0x62, 0x20, 0x90, 0x6c, 0x3a, 0x9f, 0xd0, 0xa8, 0x74, 0x1a, 0xf0,
+    0x4c, 0x9d, 0xcb, 0xab, 0x76, 0xcb, 0xed, 0x7a, 0xbf, 0xe0, 0xe7, 0x28, 0x12, 0x66, 0x90, 0xb9,
+    0x81, 0xf3, 0x77, 0x09, 0x28, 0xbb, 0xdf, 0xf0, 0xb8, 0x7c, 0x4e, 0x2f, 0x06, 0x10, 0xc6, 0xe1,
+    0x36, 0x6d, 0x8c, 0x04, 0x01, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x04, 0x00, 0x0e, 0x00, 0x2c, 0x1e,
+    0x00, 0x0b, 0x00, 0x1a, 0x00, 0x1a, 0x00, 0x00, 0x06, 0x39, 0x40, 0x47, 0xc0, 0x41, 0x2c, 0x1a,
+    0x8f, 0xc8, 0x62, 0x60, 0x98, 0x6c, 0x3a, 0x9f, 0xd0, 0xa8, 0x74, 0x5a, 0x04, 0x51, 0x9f, 0x94,
+    0xcc, 0x75, 0xcb, 0xed, 0x7a, 0xbf, 0xe0, 0xb0, 0xf8, 0x39, 0x02, 0x53, 0xc4, 0x01, 0x86, 0x35,
+    0xcc, 0x1c, 0xbb, 0xdf, 0xf0, 0xb8, 0x7c, 0x4e, 0x57, 0xae, 0x1d, 0x8f, 0x32, 0x37, 0x70, 0x26,
+    0x0e, 0x32, 0x41, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x06, 0x00, 0x0f, 0x00, 0x2c, 0x2a, 0x00, 0x0e,
+    0x00, 0x0e, 0x00, 0x17, 0x00, 0x00, 0x06, 0x29, 0xc0, 0x87, 0x70, 0x48, 0x24, 0x46, 0x36, 0xc5,
+    0xe4, 0x23, 0x10, 0x50, 0x3a, 0x9f, 0xd0, 0xa8, 0x74, 0x4a, 0xad, 0x5a, 0x85, 0x01, 0x92, 0x34,
+    0x00, 0xb8, 0x7a, 0xbf, 0xe0, 0xb0, 0x58, 0x1c, 0x18, 0x0c, 0x15, 0xce, 0x40, 0x66, 0x18, 0x09,
+    0x02, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x04, 0x00, 0x0c, 0x00, 0x2c, 0x2a, 0x00, 0x0e, 0x00, 0x0e,
+    0x00, 0x17, 0x00, 0x00, 0x05, 0x22, 0x20, 0x13, 0x30, 0x64, 0x69, 0x92, 0xc1, 0x78, 0xae, 0x6c,
+    0xeb, 0xbe, 0x70, 0x2c, 0xcf, 0x74, 0x7d, 0x06, 0x58, 0xac, 0xda, 0x7c, 0xef, 0xff, 0xc0, 0x5f,
+    0x20, 0x42, 0xda, 0xb8, 0x02, 0x99, 0x52, 0x08, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x03, 0x00, 0x08,
+    0x00, 0x2c, 0x33, 0x00, 0x17, 0x00, 0x05, 0x00, 0x0e, 0x00, 0x00, 0x05, 0x11, 0x60, 0x84, 0x8c,
+    0x08, 0x43, 0x9e, 0x68, 0xaa, 0xae, 0x6c, 0x4b, 0x06, 0xe2, 0x18, 0x64, 0x63, 0x08, 0x00, 0x21,
+    0xf9, 0x04, 0x05, 0x03, 0x00, 0x10, 0x00, 0x2c, 0x33, 0x00, 0x17, 0x00, 0x04, 0x00, 0x0e, 0x00,
+    0x00, 0x06, 0x12, 0xc0, 0x40, 0x00, 0x02, 0x11, 0x12, 0x8f, 0xc8, 0xa4, 0x72, 0xc9, 0x6c, 0x06,
+    0x48, 0xc4, 0x00, 0x25, 0x08, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x07, 0x00, 0x0b, 0x00, 0x2c, 0x36,
+    0x00, 0x23, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x05, 0x05, 0x60, 0xb6, 0x04, 0x4b, 0x08, 0x00,
+    0x21, 0xf9, 0x04, 0x05, 0xed, 0x00, 0x03, 0x00, 0x2c, 0x36, 0x00, 0x23, 0x00, 0x02, 0x00, 0x02,
+    0x00, 0x00, 0x02, 0x03, 0x4c, 0x16, 0x05, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x03, 0x00, 0x03, 0x00,
+    0x2c, 0x13, 0x00, 0x1a, 0x00, 0x16, 0x00, 0x23, 0x00, 0x00, 0x08, 0xff, 0x00, 0x07, 0x08, 0x1c,
+    0x48, 0xb0, 0xa0, 0xc1, 0x83, 0x00, 0x9a, 0x1d, 0x4a, 0x54, 0xc3, 0x45, 0xa2, 0x61, 0xce, 0x16,
+    0x1d, 0x1c, 0x18, 0xa0, 0x19, 0xb0, 0x89, 0x5c, 0x9c, 0x4d, 0x0c, 0x60, 0x4c, 0xc5, 0x00, 0x17,
+    0x85, 0xa4, 0x10, 0x8a, 0x42, 0xb0, 0xc5, 0xb0, 0x29, 0x05, 0x03, 0x1c, 0x1a, 0xd0, 0xc2, 0x90,
+    0x30, 0x2a, 0x4b, 0x0a, 0x71, 0x29, 0xd8, 0x22, 0x0a, 0x00, 0x8a, 0x1a, 0x5b, 0x14, 0x9a, 0xa2,
+    0xc4, 0xc5, 0x44, 0x96, 0x2b, 0x05, 0x0a, 0x5b, 0xc1, 0xb2, 0x10, 0xc9, 0x9f, 0x02, 0x7b, 0x10,
+    0x1a, 0xa0, 0xf2, 0xe3, 0x13, 0xa4, 0x25, 0x57, 0x2e, 0xaa, 0x31, 0xc0, 0x10, 0x15, 0xa8, 0x04,
+    0x6b, 0x2c, 0x6a, 0x26, 0x50, 0x05, 0x51, 0xac, 0x02, 0x5b, 0x34, 0xd3, 0x08, 0x96, 0xa6, 0x33,
+    0xb2, 0x65, 0x07, 0xb6, 0x38, 0x9b, 0xb6, 0xa4, 0xb3, 0xa5, 0x6d, 0xc3, 0x12, 0x9a, 0x1a, 0x77,
+    0x00, 0x17, 0x00, 0x4d, 0xdb, 0xb6, 0x08, 0x2a, 0x8c, 0x6a, 0xda, 0x1a, 0xc2, 0x04, 0x06, 0x58,
+    0x92, 0xb6, 0x05, 0x61, 0x8a, 0xc3, 0xc0, 0xee, 0x35, 0x38, 0x05, 0x11, 0x54, 0x93, 0x13, 0x09,
+    0x79, 0xfc, 0x49, 0x44, 0xe2, 0xc1, 0x00, 0xbf, 0x7e, 0xaa, 0xe0, 0xfa, 0x13, 0xad, 0x41, 0xc7,
+    0x48, 0x9b, 0x4c, 0x36, 0xe8, 0xf9, 0xf2, 0x45, 0x83, 0x2a, 0xae, 0x42, 0x6d, 0xf6, 0x55, 0x6d,
+    0x50, 0xac, 0xc1, 0x08, 0xc1, 0x2d, 0x02, 0xb7, 0x6e, 0x5b, 0x1d, 0x62, 0xc6, 0x8c, 0x89, 0x34,
+    0x00, 0x0c, 0x98, 0x17, 0x25, 0xb0, 0x9e, 0x68, 0xd3, 0xc6, 0x20, 0x2e, 0xac, 0x58, 0x0e, 0xb6,
+    0x31, 0x01, 0x16, 0xcf, 0x9a, 0x35, 0x04, 0xc3, 0x94, 0x45, 0x81, 0x86, 0x60, 0x25, 0x21, 0x69,
+    0x81, 0xe4, 0x19, 0x80, 0x66, 0x0f, 0xf6, 0xb8, 0xc1, 0x91, 0x06, 0x01, 0x04, 0x00, 0x21, 0xf9,
+    0x04, 0x05, 0x03, 0x00, 0x03, 0x00, 0x2c, 0x13, 0x00, 0x1a, 0x00, 0x17, 0x00, 0x23, 0x00, 0x00,
+    0x08, 0xff, 0x00, 0x07, 0x08, 0x1c, 0x48, 0xb0, 0xa0, 0xc1, 0x83, 0x03, 0x02, 0x04, 0x20, 0xa4,
+    0x04, 0x11, 0x94, 0x1a, 0x44, 0x86, 0x39, 0x5b, 0x84, 0x70, 0x60, 0x00, 0x2a, 0x51, 0x0e, 0xb6,
+    0xe0, 0xb2, 0xa4, 0x62, 0x00, 0x67, 0x35, 0x5a, 0xb4, 0x70, 0xb2, 0xc4, 0x8a, 0x15, 0x17, 0x03,
+    0x5b, 0x44, 0x09, 0x66, 0x30, 0x00, 0xa3, 0x01, 0x2d, 0x88, 0x58, 0xa9, 0x22, 0x45, 0xc9, 0x13,
+    0x15, 0x04, 0x5b, 0x20, 0x62, 0x69, 0xb1, 0x99, 0x8a, 0x8d, 0x55, 0x86, 0xac, 0xa8, 0xd8, 0x62,
+    0x98, 0xc5, 0x60, 0x5c, 0x60, 0xba, 0x70, 0x52, 0x51, 0x60, 0x0b, 0x15, 0xcd, 0x04, 0x06, 0x58,
+    0x22, 0x52, 0x0a, 0xd3, 0xa6, 0x4e, 0x33, 0x2a, 0x04, 0xf6, 0x74, 0x48, 0x52, 0xac, 0x30, 0x55,
+    0x08, 0x0b, 0x20, 0x0c, 0x66, 0x0b, 0xb0, 0x39, 0x9d, 0x05, 0x88, 0x8a, 0xb6, 0x60, 0x8b, 0x25,
+    0x6b, 0xdb, 0xba, 0x15, 0x14, 0x57, 0x6e, 0x4a, 0xb8, 0xc2, 0x70, 0xda, 0x85, 0xa9, 0x36, 0x00,
+    0x93, 0xbd, 0x4f, 0x9b, 0x24, 0xec, 0x68, 0xb7, 0xc5, 0x2f, 0xa9, 0x48, 0xe5, 0x8a, 0x64, 0x9b,
+    0xd0, 0x99, 0xe2, 0x43, 0x05, 0x03, 0x40, 0x06, 0xab, 0x72, 0x4a, 0xe4, 0xc4, 0x4d, 0x5b, 0x18,
+    0xb2, 0xdc, 0x52, 0x50, 0x66, 0x43, 0x00, 0x2a, 0xe6, 0x45, 0xd8, 0x82, 0x09, 0x4f, 0x84, 0x01,
+    0xa0, 0x20, 0x84, 0x8a, 0x35, 0x80, 0x21, 0x84, 0x44, 0xd0, 0x7a, 0x36, 0xf8, 0x16, 0xed, 0xa2,
+    0x61, 0x7a, 0x07, 0x32, 0x11, 0x8c, 0x36, 0xc0, 0x14, 0x61, 0x84, 0x8a, 0x0c, 0x71, 0xc6, 0x7b,
+    0xaf, 0x71, 0x20, 0x72, 0xf0, 0x84, 0x19, 0x03, 0xe6, 0x08, 0x1f, 0x21, 0x01, 0xd0, 0x7a, 0x61,
+    0x33, 0xa0, 0x4d, 0x41, 0x13, 0x68, 0x51, 0x1c, 0xa4, 0x13, 0x1d, 0xac, 0x09, 0x36, 0x68, 0x2a,
+    0x11, 0x14, 0x8c, 0x24, 0xd7, 0x86, 0x19, 0x82, 0x71, 0xb0, 0xd8, 0xe5, 0x73, 0x67, 0x80, 0x1a,
+    0x31, 0x3a, 0x8c, 0xb7, 0x0d, 0x08, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x07, 0x00, 0x03, 0x00, 0x2c,
+    0x14, 0x00, 0x1a, 0x00, 0x17, 0x00, 0x23, 0x00, 0x00, 0x08, 0xff, 0x00, 0x07, 0x08, 0x1c, 0x48,
+    0xb0, 0xa0, 0xc1, 0x83, 0x02, 0x03, 0x00, 0x68, 0x26, 0xc8, 0x10, 0xa2, 0x28, 0x4a, 0x8a, 0x2c,
+    0x42, 0x38, 0x30, 0x40, 0x00, 0x67, 0x4c, 0x0c, 0xb6, 0xe0, 0xb2, 0x64, 0xe2, 0xc1, 0x00, 0x4d,
+    0xa2, 0x0c, 0x68, 0xe1, 0xc2, 0xd0, 0x12, 0x29, 0x4b, 0x54, 0x08, 0x6c, 0x41, 0x44, 0x98, 0xc1,
+    0x00, 0xc2, 0x98, 0xb4, 0x50, 0x51, 0x48, 0x98, 0xb0, 0x22, 0x4b, 0x52, 0x0e, 0xdc, 0xe8, 0xb2,
+    0xe2, 0x22, 0x22, 0x2d, 0x5a, 0x44, 0x69, 0xf2, 0xc4, 0x05, 0x42, 0x96, 0x1e, 0x2d, 0x1e, 0x1a,
+    0x99, 0xd1, 0x28, 0xc5, 0xa0, 0x82, 0x12, 0x0a, 0xab, 0x21, 0xb4, 0x27, 0xc5, 0x95, 0x35, 0x82,
+    0x0d, 0x08, 0xb0, 0x24, 0xe8, 0x0a, 0x22, 0x57, 0x77, 0xb6, 0x70, 0x66, 0xd1, 0x57, 0xd8, 0x83,
+    0x2d, 0x86, 0x59, 0x84, 0x72, 0x56, 0x23, 0x22, 0x85, 0x2c, 0xda, 0x16, 0x6c, 0x91, 0xc8, 0x62,
+    0x0d, 0xb9, 0x04, 0x5b, 0x00, 0xb3, 0x88, 0x08, 0xef, 0x4e, 0x43, 0x5b, 0x97, 0xfa, 0x0d, 0xba,
+    0x64, 0x2b, 0x21, 0x95, 0x78, 0x67, 0xba, 0xb4, 0x28, 0x32, 0xf1, 0xb0, 0x8a, 0x84, 0x9c, 0x9e,
+    0xe5, 0x49, 0x30, 0x80, 0xe0, 0xb0, 0x24, 0x9b, 0x15, 0x84, 0xd9, 0x03, 0xf3, 0x0a, 0xcd, 0x2f,
+    0x1b, 0x1f, 0x6d, 0x89, 0x30, 0x40, 0xd4, 0xa3, 0x88, 0xb4, 0x52, 0x74, 0x76, 0x94, 0x4b, 0x93,
+    0xb0, 0xac, 0xd1, 0xc6, 0xbe, 0x3a, 0xf5, 0x20, 0x13, 0x00, 0x67, 0x03, 0x34, 0x73, 0xb2, 0x22,
+    0xef, 0xec, 0xdc, 0x00, 0xa8, 0x0c, 0x10, 0x74, 0xe8, 0xf7, 0x55, 0x13, 0x42, 0x4c, 0xf8, 0x25,
+    0x78, 0x84, 0x4d, 0x9b, 0x3b, 0x62, 0x76, 0xf8, 0xd0, 0x11, 0x40, 0xee, 0x8b, 0x01, 0x6c, 0x06,
+    0xb4, 0x19, 0x98, 0xa7, 0xfa, 0xd9, 0x23, 0x02, 0xd7, 0x10, 0x1f, 0x0c, 0x23, 0xd7, 0x8f, 0x99,
+    0x32, 0x68, 0x08, 0xda, 0xc0, 0xfb, 0xa5, 0x0c, 0xc1, 0x3c, 0xb8, 0xf1, 0x1e, 0xa1, 0x33, 0xe0,
+    0xcd, 0x17, 0xe5, 0xcb, 0x07, 0x00, 0xf0, 0x7e, 0x35, 0x20, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x03,
+    0x00, 0x03, 0x00, 0x2c, 0x15, 0x00, 0x1b, 0x00, 0x18, 0x00, 0x22, 0x00, 0x00, 0x08, 0xff, 0x00,
+    0x07, 0x08, 0x1c, 0x38, 0x20, 0x40, 0x80, 0x60, 0xcd, 0x96, 0x28, 0x11, 0xe4, 0x8c, 0x0a, 0xc1,
+    0x87, 0x0f, 0x03, 0x08, 0x3b, 0x54, 0xe3, 0xa1, 0x0a, 0x44, 0xce, 0x20, 0x12, 0x34, 0xb8, 0xc4,
+    0x45, 0x8b, 0x16, 0x2b, 0xa2, 0x14, 0x2a, 0xc4, 0x44, 0x60, 0x0b, 0x43, 0x4d, 0x34, 0x06, 0x00,
+    0x30, 0xec, 0x23, 0x13, 0x29, 0x53, 0x84, 0x11, 0x22, 0x24, 0x68, 0x60, 0x0b, 0x22, 0x29, 0x37,
+    0x06, 0x38, 0x34, 0xe0, 0x63, 0x11, 0x29, 0x44, 0x34, 0xf6, 0x44, 0x34, 0x65, 0x63, 0xc6, 0x16,
+    0x4e, 0x98, 0xa8, 0x10, 0x6a, 0xb3, 0xa6, 0xc0, 0x95, 0x4c, 0x3e, 0x52, 0x31, 0xc4, 0xd4, 0xe6,
+    0x8a, 0x9c, 0x01, 0x8a, 0xf4, 0x04, 0x59, 0x95, 0x60, 0x8b, 0x21, 0x4f, 0x79, 0x76, 0x85, 0x78,
+    0xf2, 0x29, 0xa2, 0xb1, 0x64, 0xa1, 0x14, 0x0c, 0x90, 0x08, 0xed, 0xc3, 0x16, 0x2c, 0x00, 0x14,
+    0x04, 0xe6, 0xd6, 0x6b, 0x0d, 0xb9, 0x01, 0xa2, 0xd4, 0xb5, 0x49, 0xb7, 0xa0, 0xd3, 0xbd, 0x2d,
+    0xc4, 0x06, 0x20, 0xb4, 0xb4, 0xee, 0xc7, 0x66, 0x03, 0xf3, 0x02, 0xee, 0xfb, 0x94, 0xb0, 0xdb,
+    0x16, 0x2a, 0x10, 0x6f, 0xd4, 0x3b, 0xf6, 0xa3, 0x58, 0xa3, 0x95, 0x03, 0x0b, 0x25, 0xd4, 0xb5,
+    0x05, 0x97, 0x8c, 0x42, 0x83, 0x55, 0x6d, 0x11, 0x25, 0x67, 0xe8, 0xc2, 0x64, 0x0d, 0x15, 0xad,
+    0x1a, 0x0c, 0xf5, 0x43, 0x26, 0xa2, 0xbb, 0x06, 0xf8, 0xa5, 0x31, 0xb2, 0xdb, 0x60, 0x82, 0x82,
+    0x12, 0xa4, 0x5c, 0x57, 0xe2, 0x80, 0x43, 0x88, 0x0e, 0x99, 0xee, 0xea, 0xe7, 0x85, 0x90, 0xbd,
+    0x0f, 0xc1, 0x0c, 0x60, 0x13, 0x67, 0xc0, 0x91, 0x3e, 0x01, 0xf6, 0x46, 0x12, 0xc8, 0x86, 0x8d,
+    0xc0, 0x39, 0xca, 0xdd, 0x7e, 0xa1, 0x4e, 0x70, 0xba, 0xdb, 0x24, 0x65, 0x06, 0x9c, 0x17, 0x19,
+    0xb8, 0xe6, 0xc4, 0x5e, 0x31, 0x0f, 0xbb, 0x44, 0xaf, 0x0b, 0x60, 0xc7, 0x00, 0x34, 0x74, 0x5e,
+    0xac, 0x47, 0x5e, 0xb0, 0x6e, 0x40, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x04, 0x00, 0x03, 0x00, 0x2c,
+    0x17, 0x00, 0x1b, 0x00, 0x16, 0x00, 0x22, 0x00, 0x00, 0x08, 0xf8, 0x00, 0x07, 0x08, 0x1c, 0x38,
+    0x20, 0x40, 0x93, 0x66, 0xce, 0x86, 0x10, 0x5c, 0xc8, 0x30, 0x40, 0xb3, 0x28, 0x2a, 0x08, 0xb6,
+    0x60, 0xb2, 0x64, 0x11, 0xc3, 0x81, 0xc2, 0xa2, 0x08, 0x6c, 0xb1, 0xc2, 0x49, 0x14, 0x22, 0x2e,
+    0x04, 0x32, 0x69, 0xd6, 0x90, 0x10, 0x97, 0x01, 0x2d, 0x0c, 0x59, 0x99, 0xd2, 0x44, 0xd8, 0x14,
+    0x8d, 0x02, 0x6b, 0x38, 0x5b, 0x28, 0xec, 0xe4, 0x00, 0x2e, 0xc2, 0x04, 0x31, 0x11, 0x18, 0x92,
+    0x60, 0x0d, 0x92, 0x02, 0x01, 0x20, 0x1a, 0xe0, 0xa2, 0x50, 0x8b, 0x88, 0x17, 0x07, 0x32, 0xb1,
+    0x18, 0x60, 0xe6, 0x00, 0x43, 0x84, 0x90, 0x26, 0xdd, 0xb8, 0xa4, 0xe0, 0x50, 0x94, 0x3d, 0xa7,
+    0x2a, 0x1d, 0x20, 0x4c, 0xaa, 0xd6, 0x85, 0x2a, 0x84, 0x59, 0xf9, 0x9a, 0xb4, 0x85, 0x33, 0xa7,
+    0x64, 0x17, 0xb6, 0x18, 0x82, 0x36, 0xed, 0xc0, 0xb5, 0x40, 0xdd, 0xbe, 0x2d, 0xd2, 0xc4, 0xab,
+    0xdb, 0xb0, 0x01, 0xae, 0xca, 0x1d, 0x70, 0xb5, 0x6d, 0x5a, 0xb3, 0x02, 0x03, 0x10, 0x91, 0xdb,
+    0x02, 0x11, 0x80, 0x81, 0x0a, 0xdd, 0xae, 0xa0, 0x42, 0x50, 0x98, 0x5b, 0x2e, 0x71, 0x83, 0xd6,
+    0xf8, 0x5a, 0xd8, 0xf1, 0xc2, 0x00, 0x89, 0xb4, 0xae, 0xf0, 0x3b, 0x30, 0x00, 0x94, 0xa9, 0x5c,
+    0x08, 0x4d, 0xf5, 0x9c, 0xb4, 0x86, 0x68, 0xad, 0x87, 0x2e, 0xb6, 0xa8, 0xfa, 0x15, 0xc0, 0x12,
+    0x27, 0x59, 0x07, 0x30, 0x99, 0x22, 0xb7, 0xc9, 0xcc, 0x44, 0x51, 0x18, 0x7f, 0x3d, 0xf1, 0x05,
+    0x45, 0x89, 0xbd, 0x0b, 0xe1, 0x08, 0xfc, 0x21, 0x57, 0x0c, 0xc3, 0x3b, 0x36, 0xd2, 0x76, 0xb9,
+    0x08, 0x26, 0x6d, 0x10, 0x86, 0x6c, 0xfa, 0xb8, 0x0d, 0xb3, 0xb0, 0x39, 0x70, 0x35, 0xc8, 0x81,
+    0x6b, 0x0f, 0x08, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x03, 0x00, 0x03, 0x00, 0x2c, 0x16, 0x00, 0x1b,
+    0x00, 0x17, 0x00, 0x22, 0x00, 0x00, 0x08, 0xff, 0x00, 0x07, 0x08, 0x1c, 0x28, 0x50, 0x98, 0x33,
+    0x41, 0x87, 0x0e, 0x49, 0x11, 0x46, 0xb0, 0x61, 0xc3, 0x66, 0x51, 0x54, 0xb4, 0x20, 0xa8, 0xc2,
+    0x49, 0xb3, 0x00, 0x0e, 0x07, 0x06, 0x1b, 0xa6, 0x42, 0x20, 0x93, 0x27, 0x4a, 0x0a, 0x71, 0x99,
+    0xa8, 0xe2, 0xd0, 0x94, 0x8c, 0x4d, 0x88, 0x4c, 0x8c, 0x42, 0x68, 0x0a, 0x21, 0x2b, 0x84, 0xa2,
+    0x4c, 0x14, 0x18, 0x65, 0x51, 0xc3, 0x29, 0x88, 0x26, 0xae, 0x10, 0x26, 0x68, 0xa4, 0xc0, 0x99,
+    0x03, 0x87, 0x61, 0x1c, 0x78, 0x68, 0xa5, 0x0b, 0x89, 0x19, 0x09, 0x3a, 0x1b, 0x2a, 0xac, 0xc6,
+    0x00, 0x26, 0x55, 0x7c, 0x26, 0x1d, 0x08, 0x6c, 0xa8, 0xa0, 0x99, 0x2b, 0x80, 0x4e, 0x15, 0xd8,
+    0x4c, 0x60, 0xce, 0xad, 0x49, 0x05, 0x05, 0x00, 0xe0, 0x14, 0x6c, 0x46, 0x43, 0x01, 0x82, 0x75,
+    0x34, 0xeb, 0x10, 0x51, 0xda, 0xb5, 0x6c, 0x09, 0x46, 0xc1, 0x08, 0x25, 0x6e, 0xc3, 0x43, 0x18,
+    0x0d, 0x69, 0x8d, 0xbb, 0x74, 0x80, 0xb3, 0xbd, 0x66, 0x5d, 0x30, 0x1c, 0xb0, 0x88, 0x8b, 0x5d,
+    0x81, 0x42, 0x07, 0xfe, 0xb5, 0xbb, 0x73, 0xe8, 0x00, 0x00, 0x4c, 0xe2, 0xaa, 0xe8, 0x4b, 0x50,
+    0x10, 0xdb, 0x1e, 0x94, 0x09, 0x36, 0x03, 0xdc, 0x90, 0x08, 0x21, 0xc7, 0x04, 0x85, 0x71, 0x26,
+    0x6a, 0x33, 0x69, 0x93, 0xd1, 0x03, 0xf0, 0x6e, 0x3d, 0x9d, 0x14, 0x11, 0x00, 0xb3, 0x88, 0x32,
+    0xaa, 0x20, 0xc4, 0xb6, 0xc9, 0x21, 0x26, 0x5a, 0xd1, 0x1e, 0x16, 0x56, 0x64, 0x40, 0x94, 0x43,
+    0xc1, 0xd8, 0xfe, 0x38, 0xe2, 0x07, 0xb4, 0xdd, 0x1d, 0x02, 0xe5, 0x0c, 0x78, 0x21, 0xe4, 0x75,
+    0xdc, 0x2f, 0x0e, 0xe3, 0x40, 0x67, 0x0b, 0x26, 0x63, 0xa4, 0xb8, 0x3e, 0x32, 0xa2, 0xb0, 0x2b,
+    0xa6, 0xe1, 0x98, 0xc3, 0x01, 0x5e, 0x0c, 0x09, 0x40, 0x33, 0x47, 0xfc, 0xe1, 0xf3, 0x02, 0x03,
+    0x02, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x07, 0x00, 0x03, 0x00, 0x2c, 0x15, 0x00, 0x1a, 0x00, 0x17,
+    0x00, 0x23, 0x00, 0x00, 0x08, 0xff, 0x00, 0x07, 0x08, 0x1c, 0x48, 0xb0, 0xa0, 0xc1, 0x83, 0x03,
+    0x00, 0x34, 0x3b, 0x84, 0x28, 0x11, 0x13, 0x43, 0x82, 0x08, 0x05, 0x40, 0x48, 0xd0, 0x19, 0x93,
+    0x16, 0x18, 0x09, 0xaa, 0xf8, 0x25, 0x6c, 0xe2, 0xc1, 0x29, 0xc3, 0x30, 0xba, 0x78, 0x32, 0xc4,
+    0xca, 0x10, 0x8c, 0x2d, 0x06, 0xac, 0x70, 0x16, 0xc0, 0xe3, 0xc0, 0x45, 0x51, 0x30, 0x3e, 0x11,
+    0x26, 0x6c, 0x88, 0x92, 0x27, 0x28, 0x05, 0xaa, 0x60, 0xe9, 0x72, 0x40, 0xc8, 0x16, 0x86, 0xaa,
+    0x14, 0x72, 0x91, 0xd1, 0xa0, 0x0b, 0x89, 0x03, 0x9d, 0x65, 0x74, 0xc1, 0xa5, 0x28, 0x42, 0x22,
+    0x2d, 0x05, 0x5e, 0x64, 0x42, 0x85, 0x68, 0x4a, 0x8a, 0x03, 0x54, 0x14, 0x99, 0xd8, 0x0c, 0x23,
+    0x97, 0x42, 0x03, 0xae, 0x62, 0xf5, 0xd9, 0x52, 0x90, 0xd3, 0xb1, 0x03, 0xa1, 0xb4, 0xfc, 0x89,
+    0xb6, 0xa0, 0x8b, 0x26, 0x01, 0x0c, 0x9d, 0x6d, 0xab, 0xa2, 0x23, 0xdb, 0xb6, 0x03, 0xdf, 0x06,
+    0x30, 0x2b, 0x16, 0xaf, 0xda, 0x00, 0x5d, 0xfb, 0xb6, 0x7d, 0xd2, 0x12, 0x40, 0x53, 0xbc, 0x49,
+    0xa3, 0x2e, 0x99, 0x8b, 0x95, 0x08, 0x00, 0x8f, 0x00, 0x10, 0x09, 0xa6, 0xd8, 0xa3, 0x59, 0x54,
+    0x81, 0x55, 0x27, 0x1b, 0x54, 0xb1, 0xe4, 0xf2, 0xc0, 0x43, 0x9a, 0x09, 0xba, 0xe0, 0x69, 0x70,
+    0x99, 0x0a, 0xac, 0x2b, 0x2c, 0xf7, 0x24, 0x98, 0x88, 0xe2, 0x4e, 0xcf, 0x06, 0x87, 0x51, 0x3c,
+    0xb4, 0xda, 0xa0, 0x12, 0x84, 0x35, 0xe0, 0x8e, 0x55, 0x7a, 0x70, 0x58, 0xed, 0x83, 0x82, 0x0e,
+    0x0f, 0xac, 0x41, 0x08, 0xf1, 0x80, 0x60, 0xc5, 0x97, 0x2c, 0xa1, 0xf2, 0xdb, 0x60, 0x80, 0x2c,
+    0xcd, 0xd1, 0xf2, 0x19, 0x30, 0x47, 0xcf, 0x18, 0x30, 0x36, 0x4e, 0x30, 0xc3, 0x6b, 0x43, 0x60,
+    0x9b, 0x81, 0x6c, 0xe0, 0xe0, 0x21, 0x9d, 0x3e, 0x60, 0x0d, 0xc1, 0x3c, 0x78, 0xb1, 0xa4, 0x31,
+    0xa3, 0x86, 0xe0, 0x0e, 0xc4, 0xef, 0x09, 0xd2, 0xc9, 0x62, 0x3c, 0x48, 0x9d, 0x33, 0x6b, 0xba,
+    0xfc, 0x31, 0x3e, 0xb0, 0x04, 0xde, 0x80, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x03, 0x00, 0x03, 0x00,
+    0x2c, 0x13, 0x00, 0x1a, 0x00, 0x18, 0x00, 0x23, 0x00, 0x00, 0x08, 0xff, 0x00, 0x07, 0x08, 0x1c,
+    0x48, 0xb0, 0xa0, 0xc1, 0x83, 0x02, 0x85, 0x2d, 0x89, 0x02, 0xa5, 0x45, 0x0d, 0x44, 0x82, 0x96,
+    0x05, 0x08, 0x80, 0x70, 0xe0, 0x94, 0x43, 0x3d, 0x5a, 0xb4, 0x30, 0xf8, 0x4b, 0xd8, 0x44, 0x84,
+    0xc2, 0x88, 0x68, 0x24, 0xb2, 0xc4, 0x8a, 0x20, 0x8d, 0x1b, 0x07, 0xac, 0x68, 0xf6, 0xb1, 0xa0,
+    0x30, 0x2e, 0x2d, 0x56, 0x0c, 0x99, 0x62, 0x45, 0x89, 0x13, 0x94, 0x03, 0x7b, 0xb0, 0xa4, 0x38,
+    0x70, 0x91, 0x48, 0x2e, 0x84, 0x08, 0x89, 0xd4, 0x78, 0x70, 0x85, 0x47, 0x9e, 0x03, 0x8c, 0x8d,
+    0x94, 0xe2, 0x82, 0x68, 0xc5, 0x61, 0x2d, 0x9b, 0xd4, 0xd8, 0xb8, 0x02, 0x67, 0xc5, 0x01, 0x2a,
+    0x24, 0x52, 0x74, 0xa6, 0x91, 0xd0, 0x13, 0xa7, 0x57, 0x07, 0x08, 0xfa, 0x38, 0x4c, 0xa3, 0x13,
+    0x17, 0x61, 0x09, 0x46, 0xf9, 0x08, 0x0c, 0x6c, 0x5a, 0x81, 0x50, 0x26, 0x06, 0x68, 0x98, 0xf2,
+    0xad, 0x40, 0x18, 0x72, 0xdb, 0xd6, 0xb5, 0x9b, 0x48, 0x6e, 0xd9, 0xbd, 0x6f, 0x0d, 0x7d, 0x1c,
+    0xe2, 0xf6, 0xed, 0x92, 0x8f, 0x4d, 0x32, 0x02, 0xbe, 0xda, 0xe3, 0xa8, 0xc0, 0x43, 0x85, 0xaf,
+    0x1e, 0x92, 0x2b, 0x30, 0x18, 0x93, 0xc8, 0x07, 0xb9, 0x34, 0x69, 0x29, 0x90, 0x50, 0xd5, 0xc5,
+    0x05, 0x57, 0x10, 0xe2, 0x3c, 0xb0, 0x59, 0xc6, 0xab, 0x2a, 0x76, 0x22, 0x3c, 0x09, 0x5a, 0xa0,
+    0x31, 0xd2, 0x05, 0x17, 0xc1, 0x44, 0xc8, 0x25, 0x18, 0x52, 0x84, 0x4a, 0x11, 0x4e, 0x4e, 0x4b,
+    0xa8, 0x35, 0xcb, 0xb4, 0x8b, 0x6a, 0x1c, 0xec, 0x11, 0xcc, 0xae, 0x33, 0x15, 0x7b, 0x55, 0x30,
+    0xba, 0x1d, 0x56, 0x98, 0x95, 0xe7, 0xcf, 0x3d, 0xda, 0x15, 0xc8, 0x7c, 0xba, 0xc0, 0x3f, 0x5f,
+    0xb2, 0x6b, 0xcf, 0x9e, 0xc5, 0x6e, 0x1f, 0x81, 0x6c, 0x08, 0xb2, 0x26, 0xf9, 0xfe, 0xd6, 0x04,
+    0x78, 0xf1, 0x58, 0xec, 0x06, 0xd8, 0xc3, 0x26, 0xfc, 0xc0, 0x3c, 0xd6, 0x85, 0xa8, 0x21, 0x98,
+    0x06, 0x88, 0xf5, 0x01, 0x7d, 0xf6, 0x0c, 0x30, 0xa3, 0xe7, 0xc4, 0xfd, 0x81, 0x00, 0x00, 0x90,
+    0x56, 0x40, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x03, 0x00, 0x03, 0x00, 0x2c, 0x10, 0x00, 0x1a, 0x00,
+    0x18, 0x00, 0x23, 0x00, 0x00, 0x08, 0xff, 0x00, 0x07, 0x08, 0x1c, 0x48, 0xb0, 0xa0, 0xc1, 0x83,
+    0x03, 0x83, 0x39, 0x3b, 0x64, 0x08, 0xd1, 0x13, 0x41, 0xcd, 0x00, 0x04, 0x08, 0x80, 0x70, 0xe0,
+    0x22, 0x41, 0x2b, 0x5a, 0xb4, 0x28, 0xc8, 0xc4, 0xd9, 0x44, 0x8a, 0x07, 0x85, 0x11, 0xd1, 0xc8,
+    0xa5, 0xd0, 0x00, 0x8d, 0x1b, 0x05, 0x46, 0x09, 0x36, 0xd1, 0xa0, 0x30, 0x2e, 0x2d, 0x56, 0x2c,
+    0x99, 0x42, 0xc8, 0x10, 0x4a, 0x82, 0x44, 0x9a, 0xb4, 0xb4, 0x38, 0x92, 0x0b, 0x21, 0x42, 0x4e,
+    0x34, 0x22, 0x8c, 0xf2, 0x71, 0xe0, 0xa1, 0x16, 0x2e, 0x08, 0x15, 0x71, 0x21, 0xb4, 0xa2, 0x47,
+    0x90, 0xc2, 0x6a, 0xc4, 0x94, 0x92, 0xb1, 0xe2, 0x40, 0x26, 0x12, 0x29, 0x2e, 0xd1, 0xe8, 0xe2,
+    0x64, 0x4a, 0xab, 0x03, 0x9a, 0xb5, 0x44, 0xd4, 0xc2, 0x10, 0x21, 0xaf, 0x60, 0x05, 0x1a, 0x9b,
+    0x08, 0x40, 0x2a, 0x13, 0x43, 0x69, 0x09, 0x0e, 0x9b, 0x18, 0x4c, 0x45, 0xd3, 0xb8, 0x02, 0x11,
+    0xd1, 0xb5, 0xfb, 0x15, 0xaf, 0xa1, 0x96, 0x50, 0xee, 0xe2, 0x3d, 0xd4, 0xf2, 0x89, 0xe0, 0xb8,
+    0x4f, 0x07, 0x38, 0xbb, 0x89, 0xb7, 0x06, 0x4b, 0x8a, 0x00, 0x98, 0x1c, 0xb6, 0x4a, 0x18, 0x64,
+    0x58, 0xbe, 0x71, 0x99, 0x3c, 0x26, 0x68, 0x8c, 0x71, 0x45, 0x15, 0x62, 0x2d, 0x0f, 0x34, 0x86,
+    0xb9, 0xe2, 0x5c, 0xd1, 0x04, 0x9d, 0xf5, 0xe8, 0x6b, 0x50, 0xac, 0x55, 0x67, 0x76, 0x11, 0x42,
+    0x91, 0x08, 0x76, 0x18, 0xeb, 0x81, 0x7f, 0xd3, 0x36, 0xa9, 0x81, 0x90, 0x70, 0xdc, 0xa3, 0x07,
+    0x87, 0xa0, 0x46, 0x48, 0x88, 0x29, 0x41, 0x15, 0xc3, 0x00, 0xe0, 0x0d, 0x7b, 0xe8, 0xd0, 0x92,
+    0x22, 0x84, 0x58, 0x2e, 0xaf, 0x98, 0x65, 0x79, 0x00, 0x2c, 0x27, 0x6c, 0x80, 0x19, 0xa3, 0x67,
+    0x0e, 0x1b, 0x2f, 0x78, 0x01, 0xbc, 0x2d, 0x21, 0xd8, 0x46, 0xe0, 0x11, 0xbc, 0x01, 0xf4, 0x10,
+    0x5c, 0x23, 0xd0, 0xc6, 0xf2, 0x17, 0x04, 0xd5, 0x98, 0x39, 0xf3, 0x63, 0xf9, 0xa2, 0x3b, 0x04,
+    0xcb, 0x80, 0x99, 0x3e, 0x20, 0x4b, 0xa4, 0x36, 0x67, 0xd4, 0xe1, 0x1e, 0x7f, 0x02, 0x05, 0x50,
+    0x42, 0x45, 0x01, 0x01, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x04, 0x00, 0x03, 0x00, 0x2c, 0x0f, 0x00,
+    0x1b, 0x00, 0x17, 0x00, 0x22, 0x00, 0x00, 0x08, 0xff, 0x00, 0x07, 0x08, 0x1c, 0x28, 0x90, 0x4a,
+    0x11, 0x67, 0xce, 0x9a, 0x05, 0x0b, 0xc0, 0x90, 0xa0, 0x43, 0x81, 0xc1, 0x96, 0x40, 0x69, 0x41,
+    0xb0, 0xc6, 0xb0, 0x66, 0x0d, 0x1f, 0x0a, 0x6c, 0xc6, 0x85, 0xe2, 0x80, 0x16, 0x20, 0x09, 0x0e,
+    0x5b, 0x18, 0xe0, 0xa1, 0xb3, 0x1e, 0x2d, 0xb8, 0x0c, 0xa1, 0xb2, 0x22, 0x24, 0x41, 0x22, 0x4d,
+    0x32, 0x6e, 0x44, 0x19, 0xa5, 0x8a, 0x95, 0x28, 0x1e, 0x1f, 0x22, 0x9a, 0x52, 0x12, 0x62, 0xc7,
+    0x28, 0x53, 0x0a, 0xb9, 0xd4, 0x38, 0xc0, 0x58, 0x46, 0x63, 0x2d, 0x56, 0x08, 0x53, 0x32, 0x94,
+    0x68, 0x0d, 0x61, 0x0c, 0x17, 0xb5, 0x64, 0x32, 0x44, 0x05, 0xd1, 0x87, 0x82, 0x18, 0x36, 0x0b,
+    0xd9, 0xf4, 0xea, 0x00, 0x44, 0x0c, 0x05, 0xa5, 0xa4, 0xe2, 0x22, 0xa7, 0xd7, 0x01, 0x2c, 0x16,
+    0x05, 0x18, 0x96, 0x54, 0xd0, 0xd9, 0x87, 0x50, 0x9f, 0x74, 0x7d, 0xab, 0x02, 0xea, 0xa1, 0xb9,
+    0x67, 0x7b, 0xa8, 0x75, 0x86, 0xd7, 0x2b, 0xd8, 0x00, 0xc2, 0x54, 0x98, 0x7d, 0x3b, 0x20, 0x6b,
+    0x49, 0x43, 0x7d, 0x35, 0x3e, 0xed, 0x49, 0x08, 0xe5, 0xe0, 0xab, 0x87, 0x64, 0x2e, 0x49, 0x5c,
+    0x31, 0xa6, 0x43, 0xa4, 0x94, 0x07, 0x0c, 0xeb, 0xe9, 0xd0, 0x59, 0xcb, 0xc7, 0x04, 0x9d, 0x71,
+    0x76, 0x28, 0xcc, 0x49, 0x62, 0x42, 0xa3, 0x1d, 0x2e, 0xc2, 0x49, 0x54, 0x05, 0x95, 0xb3, 0xc1,
+    0x98, 0x80, 0x56, 0x41, 0xe8, 0xed, 0x56, 0x8d, 0x5c, 0x16, 0x11, 0x66, 0xfd, 0x12, 0x23, 0x61,
+    0x61, 0x88, 0x54, 0x10, 0x39, 0x34, 0x00, 0x2a, 0x61, 0x82, 0x00, 0x1c, 0xfa, 0x39, 0xf2, 0xe3,
+    0x78, 0x00, 0x00, 0x42, 0x5e, 0x88, 0x91, 0xc3, 0x66, 0xc0, 0x0e, 0xc2, 0x01, 0xbe, 0xc4, 0x11,
+    0xd8, 0xa6, 0xfa, 0x80, 0x2e, 0xc7, 0x23, 0x11, 0x1f, 0xf4, 0x2e, 0x9e, 0xb0, 0x10, 0x82, 0x67,
+    0xca, 0x94, 0xf1, 0xe2, 0xbc, 0xfc, 0x40, 0x31, 0xc7, 0x05, 0x06, 0x38, 0x52, 0x07, 0xcd, 0x9c,
+    0x1d, 0xc9, 0xe3, 0x0f, 0x4c, 0x2d, 0x30, 0x20, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x06, 0x00, 0x03,
+    0x00, 0x2c, 0x0e, 0x00, 0x1b, 0x00, 0x17, 0x00, 0x22, 0x00, 0x00, 0x08, 0xff, 0x00, 0x07, 0x08,
+    0x1c, 0x38, 0xb0, 0x09, 0x21, 0x42, 0xc2, 0x02, 0x04, 0x20, 0xc8, 0x90, 0x21, 0x95, 0x43, 0x4c,
+    0x54, 0x0c, 0x84, 0x72, 0x88, 0xd0, 0xc2, 0x86, 0x03, 0x01, 0x1c, 0xea, 0x81, 0x51, 0xe0, 0xb0,
+    0x26, 0x17, 0x19, 0x06, 0x8b, 0xd2, 0x62, 0x80, 0x93, 0x01, 0x2b, 0x4a, 0x32, 0x64, 0x62, 0x91,
+    0x21, 0x00, 0x92, 0x2e, 0x86, 0x4c, 0x19, 0xb2, 0xa2, 0x23, 0x97, 0x84, 0x04, 0x05, 0xb5, 0x70,
+    0x51, 0x84, 0x10, 0x91, 0x8e, 0x03, 0x9d, 0x84, 0x14, 0x56, 0x63, 0x80, 0x20, 0x2a, 0x5c, 0x80,
+    0x12, 0x74, 0x76, 0x51, 0xa7, 0x8b, 0x26, 0x24, 0x95, 0x0e, 0x44, 0x74, 0x31, 0x91, 0xc0, 0xa4,
+    0x52, 0x07, 0xaa, 0x10, 0x36, 0x40, 0x98, 0xc4, 0x27, 0x4c, 0x54, 0x66, 0x1d, 0xc0, 0xb4, 0x59,
+    0x49, 0x42, 0x86, 0xc6, 0x0e, 0x5c, 0x12, 0xa0, 0x48, 0x49, 0x17, 0x6a, 0xd7, 0x06, 0x30, 0x1b,
+    0x77, 0x69, 0x00, 0xaf, 0x75, 0x07, 0x12, 0x12, 0x08, 0x4c, 0xac, 0x5a, 0x28, 0x00, 0x04, 0x0e,
+    0xf1, 0x3b, 0x56, 0xd0, 0xc5, 0x45, 0x61, 0xe3, 0xae, 0x68, 0x42, 0xb0, 0x19, 0x47, 0xb5, 0x87,
+    0x42, 0x0a, 0x74, 0x26, 0x71, 0x6c, 0x33, 0x8c, 0x45, 0xb8, 0x10, 0x6e, 0xa8, 0x82, 0x31, 0xc6,
+    0x26, 0x87, 0x2a, 0x77, 0xac, 0x11, 0x18, 0xa8, 0x33, 0xb8, 0xa3, 0x25, 0x63, 0xa4, 0xdc, 0xb1,
+    0xc7, 0xa2, 0xac, 0x87, 0x3a, 0x52, 0xcd, 0x1a, 0x0c, 0xeb, 0x40, 0x17, 0x51, 0xb8, 0x5a, 0x4e,
+    0x99, 0xd4, 0x99, 0xe7, 0xb8, 0x8b, 0x84, 0x95, 0x1e, 0x50, 0x02, 0xc5, 0x17, 0x21, 0x71, 0x03,
+    0xfc, 0x38, 0x32, 0x00, 0x8e, 0xc0, 0x2f, 0x6a, 0x8f, 0xdc, 0x11, 0xc8, 0x66, 0x60, 0x18, 0xb5,
+    0xd0, 0x1b, 0x8a, 0x51, 0xab, 0x03, 0xa3, 0x8d, 0xb8, 0x3b, 0x18, 0xee, 0x0c, 0x19, 0x3e, 0x36,
+    0x08, 0x9e, 0x4a, 0x74, 0x88, 0xe7, 0x05, 0x1a, 0x10, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x04, 0x00,
+    0x03, 0x00, 0x2c, 0x0e, 0x00, 0x1b, 0x00, 0x17, 0x00, 0x22, 0x00, 0x00, 0x08, 0xff, 0x00, 0x07,
+    0x08, 0x1c, 0x38, 0x90, 0x8a, 0xb3, 0x21, 0x43, 0x8a, 0x08, 0x23, 0xc8, 0x90, 0xe1, 0x94, 0x25,
+    0x89, 0x5a, 0x0c, 0x6c, 0xa1, 0x02, 0x91, 0x33, 0x00, 0x0d, 0x07, 0x06, 0x20, 0x44, 0x44, 0xa0,
+    0x8a, 0x86, 0x2d, 0x88, 0x50, 0xc9, 0x18, 0xa0, 0xd9, 0x8a, 0x01, 0x2b, 0x96, 0x34, 0x31, 0x04,
+    0x72, 0x45, 0x33, 0x86, 0x01, 0x84, 0xad, 0x08, 0x29, 0x8c, 0x90, 0x21, 0x17, 0x19, 0x5b, 0xac,
+    0x58, 0xa8, 0x11, 0x51, 0x0b, 0x26, 0x55, 0x96, 0xe0, 0xcc, 0x28, 0xb0, 0x05, 0x22, 0x8d, 0xce,
+    0x06, 0xb4, 0xb0, 0x22, 0x85, 0x28, 0xc3, 0x16, 0x49, 0x07, 0x04, 0xf0, 0xd9, 0x42, 0xd0, 0x49,
+    0xa7, 0x13, 0x7d, 0x09, 0x14, 0xf6, 0xf1, 0x2a, 0xd6, 0x89, 0x2c, 0x82, 0x05, 0x48, 0xda, 0x82,
+    0x8a, 0x93, 0xaf, 0x04, 0x55, 0x34, 0x0b, 0xb0, 0x44, 0xe9, 0x13, 0xaf, 0x68, 0x5b, 0x14, 0x61,
+    0xab, 0x14, 0xed, 0xd3, 0xb9, 0x51, 0xed, 0x12, 0x6c, 0x41, 0x28, 0xc0, 0x32, 0xbd, 0x0c, 0x6b,
+    0x04, 0x93, 0x9a, 0x08, 0x70, 0xd1, 0x5f, 0x02, 0xe9, 0x1a, 0x56, 0x9b, 0x78, 0x11, 0x13, 0xc0,
+    0x2d, 0x58, 0x6a, 0x6c, 0x36, 0x14, 0xad, 0x0a, 0x42, 0x30, 0x8b, 0xc0, 0x75, 0x7a, 0xb4, 0xe1,
+    0xc6, 0x8e, 0x58, 0x5b, 0xb4, 0x25, 0x39, 0xe5, 0x50, 0xe8, 0x22, 0x58, 0x03, 0x98, 0x26, 0xda,
+    0xe2, 0x25, 0x56, 0x00, 0x9d, 0x41, 0x62, 0xfe, 0x4a, 0xa8, 0x32, 0xc1, 0x15, 0x83, 0xbf, 0x06,
+    0x18, 0xf6, 0x94, 0x89, 0x6b, 0xb4, 0x4d, 0x7e, 0xd5, 0xe8, 0xa8, 0xd0, 0xb0, 0xd4, 0x00, 0x01,
+    0x34, 0xfe, 0x08, 0x82, 0x05, 0x30, 0x80, 0x13, 0x2f, 0x06, 0xcc, 0x11, 0x18, 0xdd, 0x6e, 0x97,
+    0x37, 0x0d, 0x23, 0xe9, 0xed, 0x92, 0xf1, 0x8b, 0x5e, 0x20, 0x19, 0x7d, 0x00, 0x0f, 0x1e, 0xc3,
+    0x50, 0x4c, 0x72, 0xc0, 0x2f, 0xe8, 0xa0, 0x99, 0x8e, 0xd1, 0x38, 0xd1, 0x80, 0x00, 0x21, 0xf9,
+    0x04, 0x05, 0x03, 0x00, 0x03, 0x00, 0x2c, 0x0f, 0x00, 0x1b, 0x00, 0x18, 0x00, 0x22, 0x00, 0x00,
+    0x08, 0xff, 0x00, 0x07, 0x08, 0x1c, 0x28, 0x30, 0x40, 0xb3, 0x43, 0x51, 0x88, 0x20, 0x1a, 0xb6,
+    0x84, 0x0a, 0xc1, 0x87, 0x03, 0x03, 0x18, 0x24, 0x42, 0xb0, 0x85, 0x45, 0x15, 0x51, 0x08, 0x41,
+    0x8c, 0x18, 0xe0, 0xd0, 0x80, 0x16, 0x2e, 0x0c, 0x2d, 0xe1, 0x32, 0xd0, 0xa2, 0x0b, 0x67, 0x1b,
+    0x25, 0x1e, 0xb2, 0xf8, 0x44, 0x98, 0x30, 0x29, 0x24, 0x4b, 0xb6, 0x50, 0xc1, 0xe8, 0xa1, 0x44,
+    0x46, 0x16, 0x05, 0x55, 0x39, 0xe4, 0x62, 0xe3, 0xc5, 0x66, 0x04, 0x03, 0x08, 0x73, 0xd1, 0xe2,
+    0x49, 0x15, 0x27, 0x1b, 0x65, 0x32, 0x59, 0x54, 0x30, 0xc0, 0x30, 0x8b, 0x4e, 0xa2, 0x24, 0xad,
+    0xd8, 0x02, 0xe5, 0x80, 0x00, 0xc1, 0x6a, 0xb4, 0x70, 0x12, 0x73, 0xaa, 0x40, 0x8b, 0x88, 0xae,
+    0x06, 0x70, 0xd6, 0x62, 0x00, 0xa1, 0x27, 0x5e, 0x65, 0xaa, 0x08, 0x26, 0x51, 0x90, 0x45, 0x2e,
+    0x3d, 0xd3, 0x7e, 0x9c, 0x49, 0x48, 0xa5, 0x45, 0xb9, 0x54, 0x9b, 0x49, 0x34, 0x86, 0xf7, 0xa1,
+    0xc5, 0xba, 0x63, 0xfb, 0x56, 0x5c, 0x2b, 0x51, 0xa3, 0xe0, 0xb9, 0x61, 0xc5, 0x02, 0x3b, 0x6c,
+    0x71, 0x49, 0x53, 0xab, 0x78, 0xdf, 0x06, 0x6b, 0x1a, 0x40, 0x6a, 0xe4, 0xaa, 0x41, 0x03, 0x34,
+    0x61, 0x22, 0xd7, 0xe2, 0x30, 0x88, 0x12, 0x85, 0x51, 0xf4, 0xda, 0x82, 0xcb, 0x64, 0xd0, 0x58,
+    0x13, 0x27, 0x6d, 0x21, 0x68, 0xaa, 0xc4, 0x26, 0x5d, 0x21, 0xb6, 0x70, 0xe8, 0x35, 0x70, 0x52,
+    0x28, 0x72, 0x25, 0x72, 0xde, 0x68, 0x39, 0x6d, 0x00, 0xc7, 0xb2, 0x3d, 0xe2, 0x15, 0x16, 0xfb,
+    0x23, 0xa2, 0x26, 0x7d, 0x85, 0x0a, 0x12, 0x34, 0xc4, 0x2c, 0xf2, 0xc3, 0x29, 0x25, 0x0a, 0xee,
+    0xe3, 0xe5, 0x08, 0x98, 0x31, 0x61, 0xee, 0xc0, 0x01, 0xd2, 0x37, 0x0b, 0x1b, 0x36, 0x03, 0xdb,
+    0xb4, 0x24, 0x19, 0x10, 0x44, 0xf0, 0x9d, 0x8d, 0x5e, 0x04, 0x83, 0x21, 0x58, 0xe9, 0x8c, 0x9a,
+    0x3f, 0x82, 0xff, 0xd0, 0x79, 0xf8, 0x02, 0x3a, 0xb3, 0x31, 0x6b, 0xce, 0xd8, 0x09, 0x12, 0x00,
+    0xfa, 0xc0, 0x12, 0x49, 0x05, 0x04, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x03, 0x00, 0x03, 0x00, 0x2c,
+    0x11, 0x00, 0x1a, 0x00, 0x18, 0x00, 0x23, 0x00, 0x00, 0x08, 0xff, 0x00, 0x07, 0x08, 0x1c, 0x48,
+    0xb0, 0xa0, 0xc1, 0x83, 0x03, 0x03, 0x04, 0x73, 0x66, 0x08, 0x8a, 0x8a, 0x1a, 0xc0, 0x0e, 0x35,
+    0x43, 0x48, 0x30, 0x40, 0x00, 0x67, 0x5c, 0x0a, 0xb6, 0xd8, 0x48, 0x64, 0x22, 0x42, 0x85, 0x86,
+    0x36, 0x72, 0x51, 0x52, 0xc4, 0x8a, 0x0b, 0x81, 0x1b, 0x55, 0x18, 0x3b, 0x18, 0x60, 0x8a, 0x93,
+    0x16, 0x2a, 0x94, 0x54, 0x21, 0x24, 0xc8, 0x10, 0xc1, 0x8d, 0x2d, 0x56, 0x56, 0x0c, 0x30, 0x6c,
+    0xe3, 0x10, 0x61, 0x36, 0x0f, 0xa6, 0x74, 0x96, 0x30, 0x40, 0x33, 0x15, 0x3e, 0x99, 0x50, 0x1c,
+    0x20, 0x72, 0x91, 0x40, 0x8b, 0x88, 0x5a, 0x70, 0x21, 0xb2, 0x74, 0xe0, 0x46, 0xa2, 0x16, 0x09,
+    0x6d, 0x5c, 0x22, 0xa5, 0x2a, 0xca, 0x16, 0x88, 0x06, 0x58, 0x5c, 0x22, 0x72, 0x85, 0x57, 0xa6,
+    0x2d, 0x7a, 0x2c, 0xb2, 0x78, 0x68, 0xe3, 0xd9, 0xaf, 0x2a, 0x84, 0x59, 0x1c, 0xf6, 0xf6, 0xa6,
+    0x0a, 0x42, 0x6c, 0xeb, 0x5a, 0x8d, 0x6b, 0x71, 0x88, 0x5e, 0xb4, 0x35, 0x4a, 0x64, 0xfd, 0xbb,
+    0x31, 0xa8, 0x45, 0xaa, 0x75, 0xaf, 0x3e, 0xbd, 0x98, 0xb8, 0x05, 0x11, 0x00, 0x45, 0x83, 0x7a,
+    0x4d, 0xeb, 0x71, 0x71, 0x30, 0xc4, 0x4b, 0x61, 0x12, 0x2d, 0x68, 0x51, 0x58, 0x46, 0x8a, 0x5b,
+    0x3f, 0x32, 0x06, 0x2d, 0x99, 0x65, 0x80, 0xb0, 0x08, 0x7b, 0x08, 0xab, 0x1a, 0xc0, 0xaf, 0x50,
+    0xba, 0x5e, 0x85, 0xa9, 0x10, 0xba, 0xb9, 0x2a, 0x00, 0x28, 0x07, 0xe3, 0x9e, 0xbd, 0x58, 0xa3,
+    0xa0, 0xca, 0xba, 0x01, 0x9a, 0x10, 0xb2, 0x42, 0xdc, 0xca, 0xb2, 0xbf, 0xc8, 0x0b, 0x62, 0x19,
+    0xd3, 0xa5, 0x4b, 0xa4, 0x2f, 0xd0, 0xc1, 0x98, 0x78, 0x2b, 0xa4, 0x20, 0x1b, 0x36, 0x03, 0xfc,
+    0xbc, 0xfd, 0x83, 0xdd, 0xe0, 0x9f, 0xba, 0x7a, 0xd6, 0x0c, 0x18, 0xbc, 0xbe, 0x27, 0x40, 0x5d,
+    0x20, 0x69, 0x08, 0xaa, 0x39, 0xf1, 0xf7, 0x84, 0x9e, 0x33, 0x03, 0xf6, 0x54, 0x4f, 0x0e, 0x00,
+    0x32, 0xc5, 0x80, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x07, 0x00, 0x03, 0x00, 0x2c, 0x13, 0x00, 0x1a,
+    0x00, 0x17, 0x00, 0x23, 0x00, 0x00, 0x08, 0xff, 0x00, 0x07, 0x08, 0x1c, 0x48, 0xb0, 0xa0, 0xc1,
+    0x83, 0x03, 0x02, 0x04, 0x73, 0x66, 0x08, 0xca, 0x80, 0x15, 0x88, 0x0e, 0x35, 0x43, 0x48, 0x10,
+    0xc0, 0x92, 0x15, 0x07, 0x5b, 0x20, 0x22, 0x84, 0x30, 0x40, 0x93, 0x28, 0x03, 0x5a, 0x70, 0x51,
+    0x52, 0x84, 0x10, 0x48, 0x81, 0x2d, 0x5c, 0x38, 0x33, 0xe8, 0x91, 0x48, 0x4a, 0x41, 0x53, 0x08,
+    0x09, 0x2a, 0xc4, 0xa5, 0xa0, 0x8a, 0x95, 0x04, 0x03, 0x80, 0x6c, 0x31, 0x44, 0xd8, 0xc9, 0x8c,
+    0x2e, 0x38, 0x0a, 0x0c, 0x80, 0xb3, 0x45, 0x94, 0x9a, 0x14, 0x43, 0x22, 0x1a, 0xb8, 0x88, 0x4b,
+    0x0b, 0x27, 0x4a, 0x92, 0x12, 0x54, 0x31, 0x31, 0xc0, 0xc4, 0x16, 0x87, 0x04, 0x49, 0x1d, 0xd8,
+    0x62, 0x58, 0xc2, 0x43, 0x21, 0x5b, 0x6c, 0xe5, 0xea, 0x30, 0xc0, 0xaf, 0xb1, 0x05, 0x53, 0x06,
+    0x0b, 0xb0, 0x14, 0x2d, 0x57, 0x17, 0x4d, 0xcc, 0xba, 0xe5, 0xda, 0x63, 0x2d, 0xd8, 0xb9, 0x21,
+    0x13, 0x25, 0x2c, 0x82, 0x37, 0xe4, 0xdd, 0xa6, 0x78, 0x5b, 0x4c, 0x4c, 0xb8, 0x64, 0xae, 0xd1,
+    0x8a, 0x6d, 0xb7, 0xb6, 0x58, 0x41, 0x25, 0xa7, 0x30, 0xa4, 0x49, 0x5b, 0xf4, 0xc0, 0x99, 0x93,
+    0x32, 0xc5, 0x1a, 0x7c, 0x0f, 0xb2, 0x4d, 0x7a, 0x33, 0xa9, 0xe5, 0xb4, 0x77, 0x29, 0x36, 0x71,
+    0x81, 0xb0, 0x86, 0x30, 0xa9, 0x01, 0xf4, 0x1e, 0xf4, 0x8a, 0x9a, 0x75, 0xda, 0xcf, 0x08, 0x85,
+    0x25, 0x46, 0x89, 0x68, 0x11, 0x5a, 0x8f, 0x54, 0x38, 0x4a, 0x29, 0x32, 0xa5, 0xaf, 0x6f, 0x21,
+    0x78, 0xf6, 0x88, 0xe9, 0x32, 0x60, 0x87, 0x0d, 0x2f, 0x01, 0xc6, 0xfa, 0x68, 0xc3, 0xbc, 0xe0,
+    0x9f, 0xb1, 0x42, 0x0e, 0xc6, 0x49, 0xbe, 0x15, 0x40, 0x1c, 0x35, 0x6b, 0x08, 0x8e, 0x71, 0xcb,
+    0xc7, 0x0c, 0x41, 0x37, 0x3f, 0xe6, 0xfa, 0x0b, 0xc0, 0x33, 0x20, 0x4d, 0x18, 0x5c, 0xbe, 0x4b,
+    0x6c, 0x0d, 0x08, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x03, 0x00, 0x03, 0x00, 0x2c, 0x13, 0x00, 0x1a,
+    0x00, 0x17, 0x00, 0x23, 0x00, 0x00, 0x08, 0xdf, 0x00, 0x07, 0x08, 0x1c, 0x48, 0xb0, 0xa0, 0xc1,
+    0x83, 0x02, 0x9b, 0x2c, 0x89, 0x32, 0x80, 0x85, 0x40, 0x41, 0x84, 0x10, 0x12, 0x5c, 0x64, 0xac,
+    0xc6, 0x41, 0x15, 0xbf, 0x84, 0x49, 0x14, 0x46, 0x44, 0x20, 0x13, 0x41, 0x56, 0x06, 0x30, 0x21,
+    0xb8, 0xa2, 0xc8, 0x41, 0x61, 0x5c, 0x06, 0xac, 0x58, 0x32, 0x20, 0xe4, 0x13, 0x17, 0x05, 0x5d,
+    0x98, 0x24, 0x38, 0xa5, 0x63, 0x4b, 0x42, 0x36, 0x11, 0xae, 0xd0, 0x38, 0xd0, 0xd8, 0xc0, 0x27,
+    0x2b, 0x24, 0x0e, 0xfc, 0x35, 0xb0, 0x89, 0x45, 0x43, 0x4f, 0x84, 0x16, 0x5c, 0x26, 0x70, 0x88,
+    0xc0, 0x25, 0x85, 0x94, 0x12, 0x14, 0x24, 0x30, 0xa9, 0x54, 0x83, 0x88, 0x04, 0x02, 0xbb, 0x6a,
+    0x10, 0x4a, 0x80, 0x01, 0x50, 0xb8, 0x16, 0xac, 0x01, 0x60, 0xc0, 0x56, 0xb1, 0x03, 0xbd, 0x0e,
+    0x18, 0x86, 0x76, 0x20, 0xc3, 0x01, 0x4e, 0xdb, 0x0e, 0x60, 0x39, 0xc0, 0x68, 0xdb, 0x1e, 0x3c,
+    0x07, 0x1c, 0x6a, 0xcb, 0x76, 0x60, 0xb0, 0x91, 0x5c, 0xb9, 0x34, 0x29, 0x48, 0x28, 0xa8, 0xd4,
+    0x15, 0x11, 0xe5, 0xaa, 0x6c, 0x26, 0x31, 0xe7, 0x41, 0x17, 0x8c, 0x15, 0x5f, 0x15, 0xa6, 0x42,
+    0x67, 0x30, 0xa9, 0x61, 0x0f, 0xee, 0x95, 0x3c, 0x20, 0xb2, 0x54, 0xc7, 0x02, 0x9d, 0x94, 0xe5,
+    0x9a, 0xb7, 0x48, 0xb3, 0xd1, 0x9c, 0xb9, 0xf6, 0xd1, 0x53, 0xf0, 0x48, 0x10, 0xae, 0x28, 0x10,
+    0x62, 0xb9, 0xda, 0xe7, 0x20, 0x1c, 0xd4, 0x4a, 0xe5, 0xa4, 0xf6, 0x72, 0xa6, 0x20, 0x2e, 0xc5,
+    0x68, 0x06, 0xf8, 0x49, 0x2d, 0x34, 0x20, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x04, 0x00, 0x03, 0x00,
+    0x2c, 0x13, 0x00, 0x1a, 0x00, 0x17, 0x00, 0x23, 0x00, 0x00, 0x08, 0xf6, 0x00, 0x07, 0x08, 0x1c,
+    0x48, 0xb0, 0xa0, 0xc1, 0x83, 0x02, 0x09, 0x1d, 0x42, 0x54, 0xc3, 0x05, 0x14, 0x43, 0x4b, 0x9a,
+    0x20, 0x24, 0x28, 0xec, 0x57, 0x8b, 0x83, 0x35, 0x0e, 0x05, 0x9b, 0xe8, 0x6c, 0x85, 0xc0, 0x28,
+    0x43, 0x06, 0x0c, 0xb9, 0x38, 0x90, 0x88, 0xb0, 0x83, 0xce, 0x7a, 0x0c, 0x60, 0x62, 0xa5, 0x8a,
+    0x94, 0x42, 0x4e, 0x48, 0x0e, 0xe4, 0x72, 0x92, 0x20, 0xa1, 0x1a, 0x03, 0x88, 0xb8, 0xe4, 0x32,
+    0x71, 0x00, 0x22, 0x00, 0x04, 0x11, 0x09, 0x64, 0x52, 0x48, 0xe6, 0xc4, 0x90, 0x02, 0x8b, 0x5c,
+    0x2c, 0xc4, 0xb3, 0xe7, 0x40, 0x26, 0x40, 0x07, 0x18, 0x1a, 0xe0, 0x82, 0x0a, 0x13, 0xa7, 0x04,
+    0x9b, 0x0d, 0x00, 0x80, 0x13, 0xab, 0xc1, 0x25, 0x03, 0x84, 0x19, 0xf5, 0x2a, 0xf0, 0xd0, 0x80,
+    0x65, 0x63, 0xc9, 0x0e, 0x0b, 0x20, 0x96, 0x6c, 0x41, 0xb3, 0x5c, 0xdd, 0x12, 0x04, 0x2b, 0x55,
+    0xee, 0x40, 0x42, 0x02, 0x9d, 0xa5, 0x75, 0x0a, 0x2c, 0x80, 0x40, 0x00, 0x44, 0xe4, 0xaa, 0x70,
+    0x96, 0x55, 0x25, 0x59, 0x43, 0x7e, 0x09, 0xea, 0xf5, 0x4a, 0x64, 0xa3, 0xc1, 0x61, 0x58, 0x89,
+    0x48, 0x3c, 0xd8, 0xc4, 0xe3, 0x44, 0x9a, 0x3d, 0xcd, 0x72, 0x74, 0x4a, 0x68, 0xef, 0xca, 0xa8,
+    0x13, 0x17, 0x75, 0x35, 0x28, 0xc8, 0xab, 0x50, 0xbb, 0x36, 0x9b, 0x12, 0x44, 0x4c, 0x16, 0x00,
+    0x15, 0x42, 0x56, 0x06, 0x26, 0x46, 0x6d, 0xd7, 0x4f, 0x18, 0x31, 0x63, 0x04, 0x82, 0x79, 0x71,
+    0x04, 0x74, 0x4f, 0x20, 0x08, 0x75, 0x78, 0xc5, 0xb5, 0xc6, 0xa0, 0x9b, 0x12, 0x5e, 0x03, 0xd4,
+    0x29, 0x4e, 0x30, 0x8c, 0x5b, 0x1f, 0x05, 0xd9, 0xf4, 0x91, 0x8b, 0x82, 0xe0, 0x74, 0xda, 0x58,
+    0x03, 0x02, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x03, 0x00, 0x03, 0x00, 0x2c, 0x13, 0x00, 0x1a, 0x00,
+    0x16, 0x00, 0x23, 0x00, 0x00, 0x08, 0xf8, 0x00, 0x07, 0x08, 0x1c, 0x48, 0xb0, 0xa0, 0xc1, 0x83,
+    0x00, 0x9c, 0x0d, 0x4b, 0xc4, 0x62, 0x40, 0xa2, 0x61, 0xce, 0x00, 0x1c, 0x24, 0xe8, 0x8c, 0xc9,
+    0x44, 0x26, 0xce, 0x02, 0x4c, 0x3c, 0xd4, 0x62, 0xc0, 0x8a, 0x42, 0x45, 0x08, 0x11, 0x29, 0x78,
+    0x48, 0x62, 0xc1, 0x61, 0x1d, 0x9f, 0x34, 0xa1, 0xb2, 0xc4, 0xa3, 0xc1, 0x61, 0x1a, 0x07, 0x1a,
+    0xeb, 0xa8, 0x64, 0x40, 0x21, 0x15, 0x13, 0x05, 0x2e, 0x89, 0x49, 0xc5, 0x85, 0x40, 0x25, 0x4e,
+    0x72, 0x0e, 0xac, 0x21, 0x4c, 0xe0, 0x30, 0x8f, 0x86, 0x3a, 0x0a, 0x1d, 0x78, 0x28, 0x40, 0xb0,
+    0x1a, 0x36, 0x09, 0x29, 0x5d, 0x3a, 0x00, 0x4a, 0x80, 0x66, 0x1d, 0x5d, 0xac, 0xa0, 0x4a, 0x90,
+    0x25, 0xd7, 0x83, 0xcd, 0x18, 0x7d, 0x35, 0x58, 0x64, 0xc8, 0xd8, 0x82, 0xcd, 0xb0, 0x9e, 0x15,
+    0xa8, 0x42, 0x58, 0xb0, 0x1e, 0x6b, 0x07, 0x30, 0xd1, 0x78, 0x74, 0xad, 0x20, 0x81, 0x84, 0xe0,
+    0x8e, 0x5d, 0xd1, 0x84, 0xe9, 0x54, 0xaa, 0xce, 0x08, 0x02, 0x30, 0xf4, 0xb5, 0x69, 0xc1, 0x60,
+    0x23, 0x97, 0x1a, 0x36, 0xd8, 0x0c, 0x67, 0x4e, 0x44, 0x26, 0x0f, 0x46, 0xc9, 0xa9, 0x82, 0x90,
+    0xd0, 0xc0, 0x13, 0xa3, 0xc4, 0x9c, 0xd8, 0xc4, 0xb1, 0x41, 0xcc, 0x42, 0x13, 0x1d, 0x6c, 0x4b,
+    0xb5, 0xd9, 0x56, 0x82, 0x2a, 0x0e, 0x7d, 0x0d, 0x66, 0x59, 0xa0, 0x95, 0xd6, 0x71, 0xcf, 0xea,
+    0x10, 0x33, 0xa6, 0x4b, 0xa4, 0x01, 0x5f, 0xc0, 0xec, 0x58, 0x44, 0xf5, 0xc4, 0x00, 0x36, 0x6c,
+    0x0a, 0xfa, 0xa1, 0x8a, 0x25, 0x78, 0xc1, 0x36, 0x59, 0xb8, 0xe6, 0xf9, 0x1d, 0x1b, 0x48, 0x1a,
+    0x82, 0x6a, 0x84, 0x8c, 0x3d, 0xa1, 0x67, 0xc0, 0x99, 0x3d, 0xd2, 0x63, 0x0b, 0x0d, 0x08, 0x00,
+    0x21, 0xf9, 0x04, 0x05, 0x07, 0x00, 0x03, 0x00, 0x2c, 0x13, 0x00, 0x1a, 0x00, 0x16, 0x00, 0x23,
+    0x00, 0x00, 0x08, 0xf8, 0x00, 0x07, 0x08, 0x1c, 0x48, 0xb0, 0xa0, 0xc1, 0x83, 0x4d, 0x86, 0xfc,
+    0x82, 0xa2, 0xa2, 0x06, 0xa2, 0x43, 0xcd, 0x02, 0x1c, 0x1c, 0x08, 0x40, 0x50, 0x8d, 0x89, 0x88,
+    0x08, 0x4d, 0x6c, 0x82, 0x48, 0x20, 0x13, 0x41, 0x56, 0xa4, 0xb4, 0x20, 0xe8, 0xc2, 0x99, 0x44,
+    0x82, 0x4d, 0x88, 0x0c, 0x70, 0xb1, 0x64, 0x8a, 0x15, 0x41, 0x51, 0x46, 0x12, 0x54, 0xe1, 0xac,
+    0x60, 0x94, 0x95, 0x56, 0xa8, 0x38, 0x91, 0x79, 0xd0, 0x85, 0x46, 0x81, 0xce, 0x46, 0x72, 0x91,
+    0xc2, 0x65, 0x22, 0x41, 0x44, 0x12, 0x17, 0x15, 0x65, 0x52, 0xd4, 0xe8, 0xcc, 0x66, 0x03, 0x8a,
+    0x8c, 0x2c, 0x22, 0xc8, 0x69, 0xc1, 0x43, 0x03, 0xb0, 0x0e, 0x60, 0x62, 0xb5, 0x60, 0xa2, 0x00,
+    0x37, 0xbb, 0x1a, 0x54, 0xb1, 0xa8, 0xa3, 0xd8, 0x82, 0x2a, 0x82, 0x85, 0x3d, 0x3b, 0x90, 0xac,
+    0x56, 0xb6, 0x02, 0x81, 0x05, 0x90, 0x0a, 0x57, 0x20, 0x56, 0xa5, 0x75, 0x55, 0x40, 0x1d, 0xb0,
+    0x84, 0xa7, 0xd8, 0x28, 0x27, 0x01, 0x98, 0x15, 0xbb, 0x42, 0x18, 0x41, 0x61, 0x5c, 0xbb, 0xba,
+    0xd8, 0x4b, 0x90, 0xd0, 0x0a, 0xab, 0x34, 0x27, 0xf6, 0x75, 0x7a, 0xe8, 0xa4, 0x41, 0x00, 0x89,
+    0x0f, 0xd6, 0x68, 0xe2, 0x74, 0x89, 0xd1, 0xb7, 0x13, 0x7f, 0x1e, 0x64, 0x3c, 0x11, 0xc0, 0x63,
+    0x83, 0x3d, 0x38, 0x5b, 0x75, 0xd6, 0xc3, 0xa0, 0xb1, 0xb3, 0x4d, 0xac, 0x58, 0x19, 0x68, 0xb8,
+    0xae, 0xed, 0x3f, 0x91, 0x72, 0x0f, 0xfc, 0xf2, 0x25, 0x4b, 0x57, 0x21, 0x6c, 0x6c, 0x0b, 0xf4,
+    0x6d, 0x90, 0x0d, 0x33, 0xb1, 0x7b, 0x82, 0x13, 0xd4, 0x73, 0xf6, 0x84, 0x1a, 0x82, 0x69, 0x80,
+    0xb0, 0x15, 0xb2, 0x47, 0xa0, 0x9e, 0x13, 0xb6, 0x01, 0x58, 0x0d, 0x08, 0x00, 0x21, 0xf9, 0x04,
+    0x05, 0x35, 0x00, 0x03, 0x00, 0x2c, 0x13, 0x00, 0x1a, 0x00, 0x16, 0x00, 0x23, 0x00, 0x00, 0x08,
+    0xd2, 0x00, 0x07, 0x08, 0x1c, 0x48, 0xb0, 0xa0, 0xc1, 0x83, 0xc2, 0x96, 0x44, 0x19, 0xd0, 0x42,
+    0xa0, 0xa0, 0x65, 0x07, 0x09, 0x4e, 0x39, 0xd4, 0x23, 0xe2, 0x2f, 0x61, 0x11, 0x85, 0x11, 0x11,
+    0x48, 0x64, 0xc9, 0x00, 0x41, 0x05, 0x57, 0x34, 0x33, 0x28, 0x8c, 0xcb, 0x80, 0x15, 0x43, 0x04,
+    0x2a, 0x71, 0x62, 0xb0, 0xc7, 0xc8, 0x81, 0x8b, 0x36, 0x72, 0x21, 0x44, 0x68, 0x63, 0xc4, 0x93,
+    0x18, 0x05, 0x1a, 0xe3, 0x38, 0xc0, 0xc5, 0xcd, 0x81, 0xc3, 0x04, 0x36, 0xa9, 0x21, 0x70, 0xc5,
+    0xcf, 0x82, 0x10, 0x9d, 0x09, 0x24, 0xf4, 0xe4, 0x28, 0x41, 0x90, 0x41, 0x07, 0x38, 0xf1, 0xe9,
+    0x54, 0xe0, 0x42, 0x60, 0x55, 0x0d, 0x42, 0x09, 0x00, 0x25, 0x6b, 0x41, 0x18, 0x01, 0xb0, 0x7a,
+    0x1d, 0x98, 0x28, 0x40, 0xd4, 0xb1, 0x03, 0x0c, 0x0d, 0x48, 0x89, 0x76, 0x80, 0xc7, 0x26, 0x15,
+    0xc7, 0xf6, 0xc8, 0x79, 0x08, 0x6d, 0x5d, 0x81, 0xc1, 0x98, 0x78, 0xe5, 0xd2, 0x84, 0x20, 0x21,
+    0xa3, 0x4e, 0x57, 0x10, 0x32, 0xd8, 0x2c, 0xee, 0xcf, 0x97, 0x06, 0x41, 0xfe, 0xdc, 0x19, 0x71,
+    0x91, 0xc9, 0x88, 0x5c, 0x82, 0x2d, 0x6e, 0x4b, 0xb0, 0x21, 0xe5, 0x45, 0x44, 0x0f, 0x4a, 0x76,
+    0xaa, 0xc2, 0x20, 0xa3, 0xac, 0x39, 0x29, 0x8b, 0x16, 0xf8, 0xa5, 0xf4, 0x17, 0xb4, 0x7d, 0x22,
+    0xa6, 0x3e, 0x6a, 0x22, 0x22, 0x16, 0xd1, 0x79, 0xb2, 0x0a, 0x19, 0x3d, 0x60, 0xb5, 0x19, 0xda,
+    0x3f, 0x03, 0x02, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x03, 0x00, 0x00, 0x00, 0x2c, 0x1a, 0x00, 0x1b,
+    0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x02, 0x02, 0x04, 0x0a, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x04,
+    0x00, 0x04, 0x00, 0x2c, 0x16, 0x00, 0x1a, 0x00, 0x0c, 0x00, 0x04, 0x00, 0x00, 0x08, 0x23, 0x00,
+    0x09, 0x08, 0x1c, 0x48, 0xb0, 0x20, 0x05, 0x05, 0xef, 0xda, 0x99, 0xb3, 0x77, 0x8e, 0x0f, 0x2e,
+    0x02, 0x19, 0x1e, 0xa0, 0xb3, 0xf7, 0x45, 0x8b, 0x0a, 0x82, 0xbd, 0xc0, 0x50, 0xa2, 0x51, 0x70,
+    0x60, 0x40, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x06, 0x00, 0x03, 0x00, 0x2c, 0x15, 0x00, 0x1b, 0x00,
+    0x10, 0x00, 0x04, 0x00, 0x00, 0x08, 0x32, 0x00, 0x07, 0x08, 0x1c, 0x28, 0x30, 0x9d, 0xba, 0x78,
+    0x1b, 0x22, 0x10, 0x1c, 0xa8, 0x2e, 0x9d, 0xc3, 0x74, 0xe8, 0xe8, 0xe9, 0xa3, 0xe7, 0x81, 0x81,
+    0xc0, 0x08, 0xee, 0x1c, 0xba, 0xc3, 0x30, 0xa2, 0x11, 0x8c, 0x81, 0x30, 0x4a, 0x0d, 0xc0, 0x82,
+    0xcf, 0x1e, 0x3e, 0x6e, 0x00, 0x16, 0x2e, 0x0c, 0x08, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x04, 0x00,
+    0x04, 0x00, 0x2c, 0x14, 0x00, 0x1c, 0x00, 0x12, 0x00, 0x04, 0x00, 0x00, 0x08, 0x38, 0x00, 0x09,
+    0x08, 0x1c, 0x48, 0x30, 0x9d, 0xc1, 0x74, 0xef, 0x08, 0x2a, 0x1c, 0x88, 0xc1, 0x20, 0x3a, 0x74,
+    0xea, 0xda, 0x35, 0x10, 0x18, 0x01, 0x5e, 0x3a, 0x75, 0x08, 0x32, 0x34, 0xc0, 0x00, 0xe6, 0xd9,
+    0x16, 0x19, 0x30, 0x68, 0x98, 0xfa, 0xd2, 0x87, 0x00, 0x3e, 0x76, 0xed, 0x06, 0xe0, 0x02, 0xe3,
+    0xa9, 0xc6, 0xc2, 0x81, 0x01, 0x01, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x03, 0x00, 0x02, 0x00, 0x2c,
+    0x14, 0x00, 0x1d, 0x00, 0x13, 0x00, 0x05, 0x00, 0x00, 0x08, 0x3e, 0x00, 0x05, 0x08, 0x1c, 0x48,
+    0x50, 0x60, 0xba, 0x83, 0x05, 0x13, 0x0a, 0x78, 0x10, 0xef, 0xa0, 0xc3, 0x74, 0xea, 0x1a, 0x08,
+    0xc8, 0xe0, 0x2e, 0x9d, 0xc0, 0x11, 0x15, 0x21, 0xda, 0x8b, 0x74, 0xc5, 0x93, 0x27, 0x4a, 0x5f,
+    0xf0, 0x19, 0x99, 0x66, 0x4e, 0x5d, 0x3c, 0x12, 0xea, 0xd8, 0xd9, 0x7b, 0xa6, 0x45, 0x21, 0x41,
+    0x5d, 0xa6, 0x4c, 0x69, 0x61, 0xe1, 0x92, 0x60, 0x40, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x03, 0x00,
+    0x00, 0x00, 0x2c, 0x13, 0x00, 0x1f, 0x00, 0x15, 0x00, 0x04, 0x00, 0x00, 0x08, 0x39, 0x00, 0x01,
+    0x08, 0x1c, 0x48, 0x30, 0x9d, 0xc1, 0x83, 0x06, 0xdb, 0x31, 0x10, 0xb8, 0xc1, 0xe0, 0x40, 0x84,
+    0xe9, 0xd0, 0xd9, 0xfb, 0x42, 0xf1, 0x8b, 0x3d, 0x0f, 0x00, 0x82, 0x7d, 0x31, 0xe7, 0x4e, 0x1d,
+    0x42, 0x73, 0xdb, 0x28, 0xc1, 0x20, 0x28, 0xb0, 0xc6, 0x40, 0x15, 0xcb, 0x88, 0x3d, 0x7b, 0x46,
+    0x49, 0x96, 0x0a, 0x92, 0x30, 0x03, 0x02, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x07, 0x00, 0x01, 0x00,
+    0x2c, 0x13, 0x00, 0x20, 0x00, 0x15, 0x00, 0x04, 0x00, 0x00, 0x08, 0x39, 0x00, 0x03, 0x08, 0x1c,
+    0x48, 0x50, 0x60, 0xba, 0x83, 0x08, 0xd3, 0x09, 0xa4, 0xa0, 0x4e, 0x61, 0xc1, 0x84, 0xe9, 0xd8,
+    0xd9, 0x9b, 0xa8, 0x0f, 0x5d, 0x84, 0x55, 0xdb, 0xcc, 0x45, 0xf0, 0x00, 0x51, 0x9d, 0xbd, 0x2f,
+    0xa6, 0x6a, 0x10, 0x94, 0x11, 0x4b, 0x20, 0x0b, 0x5f, 0x5f, 0xb6, 0xe1, 0xc3, 0x17, 0xe9, 0x19,
+    0x92, 0x82, 0x05, 0x03, 0x02, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x03, 0x00, 0x00, 0x00, 0x2c, 0x13,
+    0x00, 0x21, 0x00, 0x15, 0x00, 0x04, 0x00, 0x00, 0x08, 0x3b, 0x00, 0x01, 0x08, 0x1c, 0x48, 0x90,
+    0x60, 0xba, 0x83, 0x08, 0x01, 0x20, 0x38, 0x58, 0x50, 0x20, 0x42, 0x84, 0xea, 0xd8, 0xa1, 0x4b,
+    0x87, 0x01, 0xd3, 0x36, 0x73, 0xf1, 0xd4, 0x3d, 0x44, 0x88, 0xce, 0xde, 0x17, 0x53, 0x32, 0x6a,
+    0xc0, 0xd0, 0xf2, 0x49, 0x20, 0x0b, 0x4f, 0x5f, 0xec, 0x99, 0x63, 0xc7, 0xce, 0xde, 0x36, 0x4a,
+    0x32, 0x1a, 0x0a, 0x0c, 0x08, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x04, 0x00, 0x00, 0x00, 0x2c, 0x13,
+    0x00, 0x22, 0x00, 0x15, 0x00, 0x05, 0x00, 0x00, 0x08, 0x3c, 0x00, 0x01, 0x08, 0x1c, 0x48, 0xb0,
+    0x20, 0x80, 0x74, 0x08, 0x05, 0x7a, 0x48, 0x68, 0x50, 0x20, 0xc2, 0x87, 0x0f, 0xdf, 0x81, 0xc1,
+    0xc7, 0x0e, 0xa2, 0x45, 0x84, 0xec, 0xf0, 0x7d, 0xa1, 0xe4, 0x49, 0x53, 0x35, 0x81, 0x2c, 0x3c,
+    0x7d, 0xb1, 0xa7, 0xee, 0xa1, 0x3a, 0x7d, 0x5f, 0x3c, 0xd5, 0x68, 0x58, 0x50, 0x86, 0xa9, 0x52,
+    0xa6, 0x64, 0xb0, 0x14, 0x18, 0x10, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x03, 0x00, 0x00, 0x00, 0x2c,
+    0x13, 0x00, 0x24, 0x00, 0x15, 0x00, 0x04, 0x00, 0x00, 0x08, 0x36, 0x00, 0xdd, 0xa5, 0x4b, 0x07,
+    0xa0, 0xa0, 0xc1, 0x83, 0x00, 0x06, 0x2a, 0x4c, 0x07, 0x6f, 0x9b, 0x3d, 0x76, 0x0b, 0x0d, 0x2e,
+    0x1c, 0x68, 0x0e, 0x5f, 0xa4, 0x48, 0xdb, 0x0a, 0xd6, 0xf0, 0x14, 0x89, 0xde, 0xc4, 0x74, 0xe8,
+    0xec, 0x7d, 0x31, 0xa5, 0x02, 0x21, 0x42, 0x2d, 0x57, 0xbe, 0xa8, 0xa4, 0x94, 0xc3, 0x64, 0xc1,
+    0x80, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x07, 0x00, 0x01, 0x00, 0x2c, 0x13, 0x00, 0x25, 0x00, 0x15,
+    0x00, 0x04, 0x00, 0x00, 0x08, 0x36, 0x00, 0xdb, 0xa5, 0x4b, 0x17, 0xa0, 0xa0, 0xc1, 0x83, 0x06,
+    0x07, 0x0e, 0x54, 0x87, 0x8f, 0x1e, 0x3a, 0x85, 0x08, 0x03, 0x28, 0x5c, 0xc8, 0x4e, 0x9f, 0xbd,
+    0x82, 0x32, 0x34, 0x6d, 0xa3, 0x37, 0x71, 0x22, 0x3b, 0x7b, 0xcf, 0xb4, 0xa8, 0x88, 0x18, 0x40,
+    0x85, 0xa9, 0x2f, 0xdb, 0xec, 0xa9, 0x8c, 0x44, 0x49, 0x46, 0xc4, 0x80, 0x00, 0x21, 0xf9, 0x04,
+    0x05, 0x03, 0x00, 0x01, 0x00, 0x2c, 0x13, 0x00, 0x26, 0x00, 0x15, 0x00, 0x04, 0x00, 0x00, 0x08,
+    0x34, 0x00, 0xdd, 0xa5, 0x4b, 0x17, 0xa0, 0xa0, 0xc1, 0x83, 0x07, 0x07, 0xa6, 0x83, 0xe7, 0x41,
+    0xe1, 0x40, 0x84, 0x06, 0x1d, 0x0e, 0x7c, 0xe7, 0x4c, 0x86, 0x2c, 0x4a, 0x5f, 0xcc, 0x49, 0x94,
+    0x68, 0x6e, 0xdb, 0x15, 0x59, 0x8c, 0x20, 0x9a, 0xfa, 0x62, 0x8f, 0x9d, 0xba, 0x74, 0xec, 0xec,
+    0x7d, 0x31, 0x85, 0x30, 0x20, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x03, 0x00, 0x00, 0x00, 0x2c, 0x13,
+    0x00, 0x28, 0x00, 0x15, 0x00, 0x04, 0x00, 0x00, 0x08, 0x38, 0x00, 0x11, 0xa4, 0x1b, 0x38, 0x10,
+    0x80, 0xc1, 0x83, 0x08, 0x09, 0xa6, 0x53, 0x60, 0x84, 0x12, 0xa5, 0x67, 0xdb, 0xe8, 0x29, 0x4c,
+    0x07, 0x60, 0x22, 0x3a, 0x7b, 0x91, 0x8c, 0x20, 0x04, 0xa0, 0x62, 0xcb, 0x17, 0x7b, 0xe8, 0x14,
+    0xb2, 0xb3, 0xf7, 0x6c, 0xc6, 0xc6, 0x93, 0x00, 0x60, 0x98, 0xf2, 0xe4, 0x49, 0x0b, 0x8b, 0x93,
+    0x01, 0x01, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x04, 0x00, 0x01, 0x00, 0x2c, 0x13, 0x00, 0x29, 0x00,
+    0x15, 0x00, 0x04, 0x00, 0x00, 0x08, 0x3a, 0x00, 0x29, 0xa8, 0x4b, 0x47, 0x30, 0x5d, 0x80, 0x83,
+    0x08, 0x13, 0x06, 0x20, 0xa8, 0x8e, 0x41, 0x00, 0x6e, 0x91, 0x22, 0x6d, 0xa3, 0x37, 0x90, 0x60,
+    0xc2, 0x82, 0x04, 0x21, 0x28, 0x3c, 0xa8, 0xe5, 0x8b, 0x3d, 0x74, 0x18, 0xd3, 0xa9, 0xa3, 0x17,
+    0x49, 0x53, 0xb0, 0x8d, 0x09, 0x65, 0x78, 0x7a, 0xf6, 0xe5, 0x0b, 0x25, 0x2d, 0x2a, 0x12, 0x06,
+    0x04, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x06, 0x00, 0x04, 0x00, 0x2c, 0x14, 0x00, 0x2a, 0x00, 0x13,
+    0x00, 0x04, 0x00, 0x00, 0x08, 0x30, 0x00, 0x1f, 0xa4, 0x1b, 0x38, 0x90, 0x80, 0xc1, 0x83, 0x08,
+    0x0f, 0x66, 0xc0, 0x87, 0xcf, 0x1e, 0x3d, 0x74, 0x04, 0x13, 0x12, 0x84, 0x47, 0x21, 0x21, 0x8d,
+    0x2b, 0xf8, 0xd8, 0x11, 0xdc, 0xd8, 0x6e, 0x40, 0x42, 0x84, 0x30, 0x3c, 0x7d, 0xd9, 0x86, 0x6f,
+    0xdb, 0x17, 0x4f, 0x07, 0x03, 0x02, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x04, 0x00, 0x01, 0x00, 0x2c,
+    0x15, 0x00, 0x2b, 0x00, 0x11, 0x00, 0x04, 0x00, 0x00, 0x08, 0x2c, 0x00, 0xdd, 0xa5, 0x1b, 0x98,
+    0x2e, 0x80, 0xc1, 0x83, 0x08, 0x0d, 0x46, 0xa0, 0xa7, 0x8f, 0x1e, 0x3a, 0x82, 0x09, 0x0d, 0xaa,
+    0x4b, 0x08, 0xc3, 0x53, 0x24, 0x7d, 0xea, 0x08, 0x0e, 0x54, 0xd7, 0x20, 0xe2, 0x41, 0x2d, 0xcf,
+    0xb6, 0xd9, 0x1b, 0xc9, 0xcd, 0x60, 0x40, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x03, 0x00, 0x00, 0x00,
+    0x2c, 0x16, 0x00, 0x2c, 0x00, 0x0e, 0x00, 0x04, 0x00, 0x00, 0x08, 0x27, 0x00, 0xdb, 0xa5, 0x1b,
+    0x08, 0xa0, 0xa0, 0xc1, 0x83, 0x23, 0xd8, 0x99, 0x43, 0x37, 0x90, 0xe0, 0xc1, 0x83, 0x35, 0xb4,
+    0x3c, 0xb3, 0xc7, 0xae, 0xe1, 0xc0, 0x0d, 0x0f, 0x0b, 0xc2, 0xa0, 0x14, 0xc9, 0x1e, 0x3d, 0x73,
+    0x19, 0x02, 0x02, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x03, 0x00, 0x00, 0x00, 0x2c, 0x17, 0x00, 0x2d,
+    0x00, 0x0c, 0x00, 0x04, 0x00, 0x00, 0x08, 0x24, 0x00, 0xd5, 0xa5, 0x4b, 0x07, 0xa0, 0xa0, 0x41,
+    0x83, 0x1b, 0xd8, 0xb1, 0x1b, 0x38, 0xf0, 0x60, 0x41, 0x28, 0x2a, 0x64, 0x78, 0xfa, 0x62, 0x0f,
+    0x1d, 0xc3, 0x76, 0x0e, 0x0b, 0xe6, 0x78, 0x86, 0x4f, 0xdf, 0x86, 0x80, 0x00, 0x21, 0xf9, 0x04,
+    0x05, 0x07, 0x00, 0x00, 0x00, 0x2c, 0x17, 0x00, 0x2e, 0x00, 0x0c, 0x00, 0x04, 0x00, 0x00, 0x08,
+    0x23, 0x00, 0x01, 0xa4, 0x4b, 0x07, 0xa0, 0xa0, 0x41, 0x83, 0x19, 0xe0, 0xb1, 0x63, 0xa7, 0x6e,
+    0x20, 0xc1, 0x83, 0x06, 0x69, 0x78, 0xfa, 0xa2, 0xaf, 0x61, 0xba, 0x07, 0x10, 0x0d, 0x6a, 0x79,
+    0x86, 0x6f, 0x44, 0x40, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x03, 0x00, 0x00, 0x00, 0x2c, 0x18, 0x00,
+    0x2f, 0x00, 0x0b, 0x00, 0x04, 0x00, 0x00, 0x08, 0x23, 0x00, 0x01, 0xa4, 0x1b, 0x08, 0xa0, 0xa0,
+    0x41, 0x00, 0x1b, 0xd8, 0xd1, 0x33, 0x87, 0x6e, 0x60, 0x3a, 0x83, 0xcd, 0x54, 0x14, 0x84, 0x61,
+    0xea, 0x8b, 0x3d, 0x75, 0x0f, 0x0f, 0x1e, 0xe4, 0xf5, 0xcc, 0x41, 0x40, 0x00, 0x21, 0xf9, 0x04,
+    0x05, 0x04, 0x00, 0x00, 0x00, 0x2c, 0x18, 0x00, 0x30, 0x00, 0x0b, 0x00, 0x04, 0x00, 0x00, 0x08,
+    0x1e, 0x00, 0x01, 0xa4, 0x1b, 0x98, 0x0e, 0x80, 0xc1, 0x83, 0x23, 0xcc, 0xd9, 0x5b, 0x68, 0x4e,
+    0xdd, 0xc0, 0x83, 0x10, 0x01, 0x20, 0x79, 0x66, 0x8f, 0x5d, 0x86, 0x88, 0x18, 0x03, 0x02, 0x00,
+    0x21, 0xf9, 0x04, 0x05, 0x03, 0x00, 0x00, 0x00, 0x2c, 0x18, 0x00, 0x31, 0x00, 0x0a, 0x00, 0x03,
+    0x00, 0x00, 0x08, 0x1a, 0x00, 0x01, 0xa4, 0x1b, 0x48, 0x10, 0x80, 0xc1, 0x0c, 0xf4, 0xf0, 0x45,
+    0x5a, 0x68, 0x8f, 0x5d, 0x3a, 0x75, 0x06, 0x23, 0x1a, 0x64, 0x61, 0x8a, 0x5b, 0x40, 0x00, 0x21,
+    0xf9, 0x04, 0x05, 0x07, 0x00, 0x00, 0x00, 0x2c, 0x19, 0x00, 0x32, 0x00, 0x09, 0x00, 0x02, 0x00,
+    0x00, 0x08, 0x14, 0x00, 0xd5, 0xa5, 0x1b, 0x48, 0x10, 0x00, 0x00, 0x12, 0x91, 0x28, 0x99, 0x32,
+    0xe5, 0xe9, 0x0b, 0x3e, 0x04, 0x01, 0x01, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x03, 0x00, 0x00, 0x00,
+    0x2c, 0x19, 0x00, 0x33, 0x00, 0x09, 0x00, 0x02, 0x00, 0x00, 0x08, 0x15, 0x00, 0x11, 0xa8, 0x53,
+    0x67, 0xce, 0x9e, 0x3d, 0x73, 0xe8, 0x00, 0x00, 0xa0, 0x70, 0x4b, 0xa1, 0x42, 0x66, 0x00, 0x02,
+    0x02, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x03, 0x00, 0x00, 0x00, 0x2c, 0x1a, 0x00, 0x33, 0x00, 0x07,
+    0x00, 0x02, 0x00, 0x00, 0x08, 0x0e, 0x00, 0x01, 0xa4, 0x1b, 0x38, 0x50, 0x1d, 0x80, 0x11, 0x08,
+    0x11, 0x32, 0x08, 0x08, 0x00, 0x21, 0xf9, 0x04, 0x05, 0x21, 0x00, 0x00, 0x00, 0x2c, 0x1d, 0x00,
+    0x34, 0x00, 0x03, 0x00, 0x01, 0x00, 0x00, 0x02, 0x02, 0x84, 0x0b, 0x00, 0x3b,
 };
 
 const lv_img_dsc_t img_bulb_gif = {
-  .header.always_zero = 0,
-  .header.w = 0,
-  .header.h = 0,
-  .data_size = 0,
-  .header.cf = LV_IMG_CF_RAW,
-  .data = img_blub_gif_map,
+    .header.always_zero = 0,
+    .header.w = 0,
+    .header.h = 0,
+    .data_size = 0,
+    .header.cf = LV_IMG_CF_RAW,
+    .data = img_blub_gif_map,
 };
index be69be1..bec3ed6 100644 (file)
 
 
 #ifndef LV_ATTRIBUTE_MEM_ALIGN
-#define LV_ATTRIBUTE_MEM_ALIGN
+    #define LV_ATTRIBUTE_MEM_ALIGN
 #endif
 
 #ifndef LV_ATTRIBUTE_IMG_PNG_DECODER_TEST
-#define LV_ATTRIBUTE_IMG_PNG_DECODER_TEST
+    #define LV_ATTRIBUTE_IMG_PNG_DECODER_TEST
 #endif
 
 const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_PNG_DECODER_TEST uint8_t img_wink_png_map[] = {
-  0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52,
-  0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x32, 0x08, 0x06, 0x00, 0x00, 0x00, 0x1e, 0x3f, 0x88,
-  0xb1, 0x00, 0x00, 0x00, 0x06, 0x62, 0x4b, 0x47, 0x44, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0xa0,
-  0xbd, 0xa7, 0x93, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0b, 0x13, 0x00,
-  0x00, 0x0b, 0x13, 0x01, 0x00, 0x9a, 0x9c, 0x18, 0x00, 0x00, 0x00, 0x07, 0x74, 0x49, 0x4d, 0x45,
-  0x07, 0xe5, 0x05, 0x07, 0x0c, 0x1b, 0x26, 0xad, 0x4b, 0x20, 0x5b, 0x00, 0x00, 0x00, 0x1d, 0x69,
-  0x54, 0x58, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43,
-  0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x47, 0x49, 0x4d, 0x50,
-  0x64, 0x2e, 0x65, 0x07, 0x00, 0x00, 0x13, 0x8a, 0x49, 0x44, 0x41, 0x54, 0x68, 0xde, 0xad, 0x9a,
-  0x69, 0x94, 0x5d, 0xd5, 0x75, 0xe7, 0x7f, 0xe7, 0xdc, 0x7b, 0xdf, 0x7d, 0x43, 0xd5, 0xab, 0xe9,
-  0x55, 0x49, 0x05, 0xaa, 0xd2, 0x80, 0x10, 0x12, 0x48, 0xa8, 0x24, 0x04, 0x66, 0x72, 0x6c, 0xec,
-  0xd8, 0xd0, 0x6e, 0x27, 0xc4, 0x6d, 0x4c, 0x08, 0x21, 0xdd, 0xed, 0x24, 0xbd, 0x1c, 0x67, 0x39,
-  0xcb, 0x6d, 0x33, 0xc7, 0x6e, 0x9b, 0xc6, 0x18, 0x64, 0x90, 0x43, 0xda, 0xb1, 0x1d, 0x7f, 0x31,
-  0x89, 0x93, 0xb8, 0x33, 0x38, 0x84, 0x15, 0x63, 0xe3, 0x38, 0x84, 0x80, 0x99, 0x67, 0x24, 0x10,
-  0x83, 0x06, 0x84, 0x84, 0x54, 0x52, 0x95, 0x6a, 0x7e, 0xf5, 0xa6, 0x3b, 0x9c, 0xb3, 0xfb, 0xc3,
-  0xbd, 0x6f, 0x28, 0xa1, 0xac, 0x0e, 0x8e, 0x6b, 0xad, 0xb3, 0x6e, 0xd5, 0x7b, 0xa7, 0xce, 0xd9,
-  0xff, 0xb3, 0xa7, 0xff, 0xde, 0xf7, 0x28, 0x7e, 0x8e, 0x9f, 0x97, 0x6f, 0x18, 0xe2, 0xec, 0x3b,
-  0x8f, 0x03, 0xf0, 0xe0, 0xd5, 0x5b, 0x19, 0x1e, 0xdd, 0xa7, 0x4b, 0xab, 0x95, 0x5a, 0x98, 0xee,
-  0xe9, 0x6d, 0xcc, 0x95, 0xcf, 0xcb, 0xf5, 0xc8, 0xe6, 0x6c, 0x97, 0x3e, 0x5d, 0x3b, 0x76, 0xd0,
-  0x51, 0xaa, 0x28, 0x56, 0x10, 0xc3, 0xa2, 0x89, 0xd5, 0x74, 0x58, 0xe3, 0x50, 0xa3, 0xa6, 0x5e,
-  0x15, 0xed, 0xbf, 0x30, 0x30, 0x5c, 0x38, 0x52, 0x9f, 0x1a, 0x8f, 0xe7, 0xaa, 0x3d, 0xb2, 0xed,
-  0xee, 0xe3, 0xd2, 0x5e, 0x7f, 0x19, 0x67, 0xdf, 0x39, 0xf9, 0xae, 0x64, 0x52, 0xef, 0x66, 0xf2,
-  0x4b, 0xd7, 0x0d, 0xb3, 0x65, 0xc7, 0x31, 0x00, 0x7e, 0x70, 0xee, 0x6a, 0xb5, 0xed, 0x13, 0xc7,
-  0xfd, 0x58, 0x7a, 0x46, 0x95, 0xa9, 0x7c, 0xa2, 0xab, 0xa4, 0xaf, 0xcc, 0xe4, 0xe3, 0xb3, 0xf3,
-  0xbd, 0x1a, 0x37, 0x23, 0x80, 0x80, 0xa8, 0xe4, 0x69, 0x01, 0x63, 0x51, 0x06, 0xc4, 0x28, 0x6c,
-  0x03, 0x1a, 0x65, 0xa1, 0x51, 0xd3, 0xc7, 0xeb, 0x55, 0x1e, 0x08, 0x43, 0xef, 0xaf, 0x5d, 0x47,
-  0xbf, 0x30, 0xb7, 0xa0, 0xcb, 0x5b, 0xef, 0x9e, 0x8a, 0x9a, 0xfb, 0xed, 0xba, 0x6e, 0x19, 0x9b,
-  0x77, 0x4c, 0xfe, 0xe2, 0x80, 0xec, 0xff, 0xf6, 0xc7, 0x88, 0x8f, 0xfd, 0x88, 0xf5, 0x5f, 0x49,
-  0xf6, 0x78, 0xe3, 0xcb, 0x5d, 0x5d, 0x5e, 0x2e, 0x7b, 0x6e, 0xb6, 0x18, 0x7f, 0x26, 0xdf, 0x6b,
-  0xff, 0x4b, 0xd7, 0xa0, 0x42, 0x39, 0x2e, 0x38, 0x59, 0x20, 0x83, 0x68, 0x0f, 0x94, 0x87, 0xd2,
-  0x39, 0x40, 0x83, 0x44, 0x88, 0xa9, 0x83, 0x09, 0xc0, 0x84, 0xa8, 0x30, 0x40, 0x05, 0x01, 0x84,
-  0x06, 0x22, 0x45, 0xa3, 0x6c, 0xa9, 0x2e, 0xea, 0xb7, 0xea, 0x81, 0xf7, 0x4d, 0x1b, 0xdb, 0xfb,
-  0x0e, 0x8e, 0x17, 0x0f, 0x5f, 0xf2, 0xdd, 0x23, 0x31, 0xc0, 0xab, 0x5f, 0x7b, 0x2f, 0x67, 0xdd,
-  0xf8, 0xd8, 0x7f, 0x1c, 0xc8, 0xae, 0x1b, 0x47, 0xd8, 0xfc, 0xb5, 0xc3, 0x00, 0xfc, 0xf4, 0xd2,
-  0x62, 0x66, 0xed, 0x07, 0x33, 0x9b, 0xb3, 0xdd, 0xe6, 0xf3, 0xdd, 0x83, 0x72, 0x55, 0xae, 0x17,
-  0x54, 0xa6, 0x1b, 0x71, 0xfb, 0x20, 0xbb, 0x12, 0xd5, 0xb3, 0x09, 0x95, 0x3f, 0x1d, 0x72, 0x23,
-  0xe0, 0xf5, 0x82, 0xd2, 0xed, 0x85, 0x24, 0x86, 0x60, 0x06, 0xea, 0x87, 0x91, 0xea, 0x5e, 0x98,
-  0x7f, 0x05, 0x16, 0x0f, 0x41, 0x75, 0x0e, 0x55, 0xab, 0xa0, 0x02, 0x4b, 0x54, 0x83, 0xc5, 0xb2,
-  0x3a, 0xdc, 0x08, 0xdd, 0xdb, 0xe6, 0xe6, 0xd5, 0x8f, 0x37, 0x7d, 0x7d, 0x61, 0x1c, 0xe0, 0xa5,
-  0xeb, 0x57, 0xb0, 0xe5, 0xae, 0x23, 0x3f, 0x3f, 0x90, 0x5d, 0xd7, 0x95, 0xd8, 0xbc, 0x63, 0x3a,
-  0xb5, 0xdb, 0x81, 0xc1, 0xbe, 0x11, 0xf9, 0xaf, 0x85, 0x12, 0x37, 0x15, 0x06, 0x28, 0x39, 0xd9,
-  0x02, 0xf8, 0xa3, 0xd0, 0x77, 0x1e, 0xaa, 0xff, 0x62, 0xc8, 0xad, 0x04, 0x31, 0xe9, 0xb0, 0x24,
-  0xf6, 0x74, 0x92, 0xed, 0x54, 0x3a, 0x50, 0x50, 0x3f, 0x02, 0x33, 0xcf, 0x20, 0x53, 0xcf, 0xc3,
-  0xec, 0x01, 0x58, 0x9c, 0x46, 0x87, 0x50, 0xaf, 0xc2, 0x62, 0xc5, 0xf9, 0x49, 0xad, 0xae, 0xef,
-  0x58, 0x73, 0x6b, 0xf9, 0x31, 0x80, 0x9d, 0x37, 0x0c, 0x33, 0x76, 0xe7, 0xb1, 0x77, 0x0f, 0x64,
-  0xd7, 0xf5, 0x7d, 0x6c, 0xbe, 0x6b, 0x0e, 0x80, 0x3d, 0xb7, 0x0e, 0x9c, 0xd5, 0x73, 0x8a, 0xfa,
-  0x52, 0xf7, 0x32, 0x75, 0xa5, 0xdf, 0x25, 0x90, 0x1d, 0x81, 0xbe, 0x8b, 0x50, 0x43, 0x97, 0x42,
-  0x66, 0x28, 0x39, 0x6d, 0x31, 0x27, 0x59, 0x45, 0xda, 0xcf, 0x14, 0xa0, 0x12, 0x83, 0x60, 0xdb,
-  0xf3, 0xb5, 0x87, 0x8a, 0xab, 0xc8, 0xec, 0x0b, 0xc8, 0xb1, 0xa7, 0x60, 0xe2, 0x15, 0x54, 0xb5,
-  0x82, 0xc4, 0x9a, 0x85, 0x05, 0xa6, 0x2a, 0x55, 0xe7, 0xe6, 0xaf, 0xfd, 0xf0, 0xb2, 0xef, 0x7d,
-  0xfb, 0xc5, 0x1f, 0xc4, 0x3b, 0x3f, 0xd7, 0xcb, 0xd8, 0xdd, 0xf3, 0xff, 0x7e, 0x20, 0x2f, 0xdf,
-  0x50, 0xe2, 0xec, 0x3b, 0x13, 0x4d, 0xec, 0xbb, 0xbd, 0xff, 0xe2, 0xbe, 0x11, 0xe7, 0xae, 0xc2,
-  0xa0, 0x3e, 0xdf, 0xcb, 0x6b, 0xe8, 0xda, 0x8c, 0x5a, 0x76, 0x39, 0x14, 0xcf, 0x4e, 0x65, 0x3c,
-  0x19, 0x00, 0x8b, 0x12, 0x69, 0x09, 0xac, 0xc4, 0x22, 0x62, 0x81, 0xb6, 0xb6, 0x94, 0x98, 0x44,
-  0x6b, 0x62, 0x12, 0xa0, 0xda, 0x43, 0xa2, 0x05, 0x98, 0x7c, 0x16, 0x79, 0xfb, 0x31, 0x98, 0x3c,
-  0x80, 0xb2, 0x0e, 0xd5, 0x2a, 0x71, 0xb9, 0xa2, 0xbf, 0xf2, 0xe1, 0xff, 0x75, 0xda, 0x57, 0x5f,
-  0x63, 0x97, 0xd9, 0x79, 0xfd, 0x72, 0xc6, 0xee, 0x9a, 0xf8, 0xff, 0x03, 0xd9, 0x79, 0xdd, 0x10,
-  0x63, 0x3b, 0x92, 0xd0, 0xba, 0xff, 0x8e, 0xfe, 0x4b, 0xfa, 0x56, 0x39, 0xdf, 0x28, 0x94, 0xdc,
-  0x8d, 0xae, 0xef, 0x42, 0xdf, 0xc5, 0xa8, 0xe1, 0x2b, 0xc0, 0x1f, 0x6e, 0x0b, 0xd0, 0x71, 0xfa,
-  0x0a, 0x0b, 0xa9, 0xd0, 0x4b, 0x4e, 0x5e, 0x92, 0xcf, 0x15, 0x6d, 0xe1, 0x45, 0x2c, 0x8a, 0x14,
-  0x60, 0x13, 0x14, 0x02, 0xca, 0x81, 0x85, 0x03, 0x70, 0xe8, 0x11, 0xe4, 0xd0, 0x73, 0x28, 0xeb,
-  0xd0, 0x68, 0x88, 0x99, 0x9d, 0x77, 0x76, 0x8c, 0x7c, 0xa9, 0x72, 0x13, 0xc0, 0xce, 0x9b, 0x4f,
-  0x63, 0xec, 0x8e, 0x37, 0xff, 0x6d, 0x20, 0xaf, 0x7c, 0x69, 0x3d, 0x9b, 0x6e, 0x7d, 0x23, 0xd1,
-  0xc4, 0xf6, 0xd2, 0x7b, 0xfa, 0x47, 0xf5, 0x9f, 0x77, 0x2d, 0xf3, 0xd6, 0x3b, 0x9e, 0x03, 0xfd,
-  0xef, 0x47, 0x9d, 0x72, 0x25, 0x78, 0xfd, 0x20, 0x31, 0xda, 0x71, 0x00, 0x41, 0x4c, 0x94, 0x0a,
-  0xd3, 0x71, 0xe2, 0x1d, 0xc2, 0xa9, 0xa6, 0xbf, 0x88, 0x41, 0x3a, 0xb5, 0xd0, 0xfa, 0xbc, 0x03,
-  0x88, 0x4d, 0xd7, 0x50, 0x1a, 0x82, 0x39, 0xe4, 0xd0, 0xa3, 0xb0, 0xff, 0x31, 0xb0, 0x2e, 0x41,
-  0x40, 0x70, 0x7c, 0x46, 0x6f, 0x5f, 0xfd, 0xbf, 0x2b, 0xb7, 0xc8, 0x93, 0xb0, 0xff, 0xe0, 0xe7,
-  0x38, 0xfd, 0xea, 0xbb, 0x4f, 0x0e, 0x44, 0x9e, 0x06, 0x75, 0x3e, 0xec, 0xbf, 0x63, 0x68, 0x4d,
-  0xf7, 0x72, 0xfe, 0xae, 0x6f, 0xa5, 0x7f, 0x8e, 0x76, 0x25, 0xf1, 0x87, 0x53, 0xaf, 0x49, 0x40,
-  0xd8, 0x08, 0x9d, 0xcd, 0x30, 0x77, 0xe8, 0x6d, 0x4c, 0x14, 0xd2, 0x37, 0x3c, 0x88, 0x52, 0xd2,
-  0x21, 0x98, 0x39, 0x41, 0xf8, 0x26, 0xc0, 0x7f, 0x43, 0x78, 0x39, 0x11, 0x4c, 0xf2, 0x14, 0x80,
-  0xb8, 0x06, 0x6f, 0xfd, 0x0c, 0xde, 0x7c, 0x0a, 0xf0, 0x68, 0x04, 0xcc, 0x1e, 0x3e, 0xea, 0x5d,
-  0xbf, 0x61, 0xfb, 0xc2, 0x3d, 0x6f, 0x5c, 0xeb, 0xa9, 0xf5, 0x5f, 0x8f, 0x5a, 0x26, 0xd1, 0x8a,
-  0x8f, 0xbb, 0x6f, 0x2e, 0xa1, 0xce, 0x87, 0xdd, 0x37, 0xf6, 0xf4, 0xe6, 0x7a, 0xf8, 0x4a, 0xdf,
-  0x68, 0x36, 0x01, 0xd1, 0x75, 0x26, 0x6a, 0xf9, 0xc7, 0x50, 0x6e, 0x2f, 0xd8, 0x06, 0xda, 0x85,
-  0xf1, 0x5d, 0x3b, 0xf9, 0xfe, 0x1f, 0x7e, 0x95, 0x3f, 0xbe, 0xe6, 0xb3, 0x4c, 0xee, 0x7f, 0x13,
-  0x4c, 0x80, 0xb2, 0x01, 0x2a, 0x7d, 0x62, 0x1b, 0x88, 0x69, 0x20, 0x36, 0x00, 0x69, 0x80, 0x0d,
-  0xc0, 0x86, 0x1d, 0x23, 0x48, 0x86, 0x49, 0x9f, 0x36, 0x99, 0x23, 0x26, 0x40, 0x6c, 0x88, 0x98,
-  0x10, 0xe2, 0x46, 0x22, 0xd8, 0xc8, 0x36, 0x18, 0x5c, 0x05, 0x62, 0xf1, 0x33, 0xf4, 0x9f, 0xb2,
-  0x2c, 0xba, 0xe1, 0xa9, 0x4f, 0x97, 0xc6, 0xd6, 0x7f, 0x3d, 0x92, 0x97, 0x3e, 0x37, 0xc0, 0x12,
-  0x20, 0xaf, 0x6f, 0xbf, 0x90, 0x8d, 0x77, 0x4c, 0xf3, 0xd3, 0x4b, 0xbb, 0xbd, 0xc2, 0x90, 0x7f,
-  0x79, 0xef, 0x4a, 0xef, 0x6a, 0x27, 0xa3, 0x21, 0xb3, 0x1c, 0x55, 0xfa, 0x00, 0x64, 0x96, 0x23,
-  0xa6, 0x86, 0x92, 0x64, 0xd3, 0x87, 0xee, 0xf9, 0x1b, 0x0e, 0xbc, 0xf0, 0x0a, 0xc3, 0x83, 0x73,
-  0x44, 0xf3, 0x7b, 0xc0, 0xd4, 0x11, 0xdb, 0x48, 0x47, 0x80, 0x48, 0x08, 0xd2, 0x21, 0x6c, 0x4b,
-  0xe0, 0xce, 0xbf, 0xc3, 0xb6, 0xf0, 0x26, 0x15, 0xde, 0x86, 0xe9, 0x77, 0x8d, 0xf6, 0x50, 0x0a,
-  0xd6, 0x5c, 0x08, 0x19, 0x8d, 0x52, 0x90, 0xf5, 0x39, 0x63, 0xf5, 0x68, 0xfd, 0x36, 0x80, 0x2d,
-  0x77, 0xcf, 0x2c, 0x05, 0xb2, 0xe1, 0xa6, 0x27, 0x01, 0xd8, 0xf0, 0xab, 0xbd, 0xc3, 0x85, 0x41,
-  0xbd, 0x23, 0xdb, 0xe3, 0x23, 0x78, 0xd0, 0xbd, 0x11, 0xba, 0xb7, 0x82, 0xa9, 0x82, 0x6d, 0xa0,
-  0x1c, 0x61, 0xdf, 0x53, 0xcf, 0x72, 0xf4, 0x8d, 0xfd, 0xfc, 0xca, 0x15, 0x9a, 0x2b, 0x3e, 0xbd,
-  0x8e, 0xe5, 0xab, 0x4a, 0x40, 0x08, 0x92, 0x0e, 0xdb, 0x00, 0xd3, 0xe8, 0x10, 0xbe, 0x53, 0xc0,
-  0xf6, 0x48, 0x34, 0x76, 0xc2, 0x77, 0xa6, 0x91, 0x1e, 0x40, 0x73, 0xad, 0x44, 0xa3, 0x2a, 0x9b,
-  0x85, 0xe5, 0xa7, 0x03, 0x06, 0xc7, 0x81, 0x62, 0xb7, 0x5c, 0xb0, 0xf7, 0x0b, 0xdd, 0xbf, 0xdf,
-  0xcc, 0x75, 0x00, 0xfa, 0xf5, 0x3b, 0xce, 0x4f, 0xf2, 0xc6, 0xb5, 0x3d, 0x59, 0x1b, 0x36, 0x3e,
-  0xdd, 0x37, 0x9a, 0x2d, 0x89, 0x08, 0xe4, 0x4e, 0x41, 0xf5, 0x5d, 0x90, 0x2e, 0xdc, 0x40, 0xd9,
-  0x10, 0x1c, 0xc3, 0x6b, 0x8f, 0xbf, 0xc4, 0x59, 0x1b, 0xa6, 0xd9, 0xf4, 0xc1, 0x8b, 0x29, 0x9d,
-  0xf7, 0x07, 0x78, 0x3d, 0x2b, 0x52, 0x61, 0x52, 0x00, 0x9d, 0x26, 0x74, 0x52, 0xd3, 0x09, 0x96,
-  0x9e, 0xbe, 0x09, 0xda, 0xda, 0x6b, 0x3d, 0x1b, 0x09, 0x00, 0x09, 0x50, 0x12, 0x02, 0x21, 0xaa,
-  0x74, 0x2a, 0xe8, 0xc4, 0x25, 0x5c, 0x87, 0xfe, 0xc1, 0x7e, 0x73, 0xcd, 0x7d, 0x57, 0xad, 0x1c,
-  0x68, 0x26, 0x6c, 0x77, 0xc3, 0xcd, 0x4f, 0x03, 0xd0, 0xbf, 0xba, 0xbb, 0x94, 0xef, 0x33, 0x9f,
-  0xd7, 0x9e, 0x83, 0xe0, 0x43, 0x7e, 0x2d, 0xf8, 0xa7, 0xa0, 0x4c, 0x2d, 0x71, 0x44, 0x25, 0x44,
-  0x0b, 0x55, 0xa4, 0x72, 0x80, 0xb5, 0xdb, 0xce, 0x64, 0x60, 0xe3, 0xaf, 0x22, 0xda, 0x4f, 0x4f,
-  0x51, 0x3a, 0x9c, 0xd9, 0xb4, 0x9d, 0xb7, 0x95, 0x3f, 0x52, 0x87, 0xb6, 0x16, 0x6b, 0x63, 0xac,
-  0x89, 0x40, 0x2c, 0x5a, 0x83, 0xd6, 0xd2, 0xfe, 0x3f, 0x3a, 0x02, 0x45, 0xcb, 0xf1, 0xd3, 0x40,
-  0xe1, 0x79, 0xe0, 0x29, 0x08, 0xc0, 0xd1, 0xe0, 0xfb, 0x9c, 0x35, 0xb6, 0x6e, 0xe6, 0x93, 0xc0,
-  0x0e, 0x00, 0x07, 0x60, 0xe7, 0xb5, 0x3d, 0xae, 0x93, 0x91, 0x4f, 0x2d, 0xdb, 0x50, 0xb8, 0x14,
-  0xad, 0xc1, 0x2f, 0xa1, 0x4a, 0xef, 0x47, 0x39, 0x99, 0xc4, 0x61, 0x89, 0xd1, 0x8e, 0xe5, 0xf0,
-  0xee, 0x37, 0xc9, 0x98, 0x43, 0xac, 0x7e, 0xcf, 0x2f, 0x93, 0xe9, 0x1e, 0x02, 0x13, 0x82, 0x8d,
-  0x41, 0xa2, 0x64, 0x10, 0x81, 0x8d, 0x11, 0x1b, 0xa7, 0xd9, 0xbe, 0x63, 0xd8, 0x88, 0xe9, 0xa3,
-  0xd3, 0x3c, 0xf3, 0xc0, 0x8b, 0x3c, 0x75, 0xff, 0xf3, 0xbc, 0xf1, 0xcc, 0x1e, 0x2a, 0xb3, 0x0b,
-  0x14, 0xba, 0x1c, 0x72, 0x79, 0x85, 0x52, 0x06, 0x4d, 0x8c, 0x22, 0x42, 0x49, 0x9c, 0xac, 0x23,
-  0x21, 0xd8, 0x28, 0xd9, 0xa7, 0x32, 0x0e, 0x8b, 0x53, 0x60, 0x54, 0x33, 0x7d, 0xf9, 0x5a, 0x8b,
-  0xda, 0xdc, 0x7d, 0xf6, 0x7d, 0xf7, 0xbe, 0x7e, 0x2c, 0x74, 0x13, 0x6d, 0x14, 0x7c, 0xbf, 0xcb,
-  0xfe, 0x8e, 0xce, 0x38, 0x88, 0x38, 0x90, 0x29, 0x81, 0xbf, 0x0c, 0x69, 0x6a, 0x43, 0x2c, 0x28,
-  0x85, 0x69, 0xcc, 0xb3, 0x62, 0xec, 0x42, 0xba, 0x4b, 0x43, 0xd8, 0xb8, 0xb6, 0x24, 0xd9, 0xc9,
-  0x92, 0x70, 0x6a, 0x96, 0x84, 0x54, 0xad, 0x85, 0xb9, 0xa9, 0x05, 0xfe, 0xf5, 0xff, 0x3e, 0xcc,
-  0xe4, 0xbe, 0x37, 0x39, 0x73, 0x4b, 0x0f, 0x5d, 0x3d, 0x1e, 0x8d, 0xd9, 0x79, 0x9e, 0xbb, 0x7f,
-  0x1f, 0xe7, 0x7e, 0x64, 0x1b, 0x83, 0x23, 0x7d, 0x2c, 0xcc, 0x87, 0xcc, 0x97, 0x03, 0x72, 0xbe,
-  0xd0, 0xdf, 0x2d, 0x29, 0xa0, 0x06, 0x34, 0x8e, 0x23, 0x0b, 0x87, 0x50, 0x19, 0x07, 0x22, 0x01,
-  0x23, 0xb8, 0x2e, 0xf8, 0x19, 0xb5, 0x7e, 0xcb, 0xda, 0xbd, 0x97, 0x02, 0xf7, 0xba, 0xcf, 0x7d,
-  0x66, 0x98, 0xfa, 0x3c, 0xeb, 0xfa, 0x46, 0xdc, 0xd3, 0x11, 0x05, 0x4e, 0x1e, 0x95, 0x5b, 0x09,
-  0xa6, 0x9e, 0x2c, 0x92, 0x0a, 0x6a, 0x03, 0xcb, 0xea, 0x4d, 0xab, 0x00, 0xc1, 0x5a, 0x83, 0xc2,
-  0x24, 0x7e, 0x83, 0xc5, 0x88, 0x4e, 0xcc, 0x40, 0xe2, 0x0e, 0xda, 0x61, 0x5b, 0x79, 0x43, 0x8c,
-  0xc5, 0xcf, 0x84, 0xbc, 0xef, 0x23, 0x25, 0x06, 0x4a, 0x7d, 0xf8, 0xc5, 0x65, 0x90, 0x29, 0x24,
-  0x59, 0x4c, 0x37, 0xa8, 0x4e, 0x2f, 0xf2, 0xf0, 0xcf, 0x8e, 0xf1, 0xd0, 0xb3, 0x65, 0x76, 0xef,
-  0x5b, 0xe4, 0x03, 0x5b, 0x35, 0x9f, 0xba, 0x3c, 0x87, 0x23, 0xb5, 0x54, 0x0e, 0x9b, 0xd8, 0x8e,
-  0x23, 0xe0, 0x28, 0x50, 0x92, 0x90, 0x00, 0xcd, 0x48, 0x5f, 0x2f, 0x17, 0x00, 0xf7, 0xba, 0x5d,
-  0xa5, 0x50, 0x3b, 0x9e, 0xfe, 0xb5, 0x7c, 0xa9, 0x88, 0xa0, 0x40, 0xfb, 0xe0, 0x2f, 0x03, 0x53,
-  0x4b, 0xcd, 0x66, 0xa9, 0x50, 0x00, 0x3a, 0x98, 0x62, 0x71, 0x62, 0x9c, 0xc9, 0x63, 0x53, 0x64,
-  0x33, 0x2e, 0x2b, 0x46, 0x06, 0x90, 0xae, 0x21, 0xac, 0x93, 0x49, 0xe7, 0x37, 0x35, 0x12, 0x03,
-  0x31, 0xd8, 0x90, 0x7c, 0x3e, 0xa4, 0x70, 0xc6, 0xa9, 0x88, 0x69, 0x60, 0xa2, 0x2a, 0x54, 0x66,
-  0x70, 0x1c, 0xc3, 0xf4, 0x74, 0x9d, 0xef, 0xde, 0x37, 0xc5, 0x4f, 0x9e, 0xb1, 0x6c, 0x5c, 0x57,
-  0xe4, 0xca, 0x8b, 0x84, 0x4d, 0x2b, 0x0d, 0xd1, 0x62, 0x15, 0xa7, 0x4b, 0x81, 0xf2, 0x40, 0x27,
-  0x72, 0x88, 0x23, 0x28, 0x27, 0x2d, 0x71, 0x0c, 0xb8, 0x8e, 0xe0, 0x67, 0xec, 0xfa, 0x7f, 0xf8,
-  0xf5, 0x95, 0xfd, 0x6e, 0x71, 0x59, 0x84, 0x72, 0xf3, 0x97, 0xb4, 0xa8, 0xb5, 0xe3, 0x83, 0x53,
-  0x48, 0x9d, 0xd8, 0x74, 0x38, 0xad, 0xa0, 0x94, 0xa0, 0x17, 0x0f, 0xf2, 0xc4, 0x03, 0x0f, 0xf3,
-  0x8f, 0x3f, 0x3b, 0xc2, 0xa4, 0x9c, 0x42, 0x57, 0x06, 0xce, 0xec, 0x1e, 0xe7, 0xaa, 0xcb, 0x37,
-  0xd0, 0xbf, 0xe1, 0x5c, 0x6c, 0x26, 0x07, 0x12, 0x27, 0x66, 0x21, 0x21, 0x22, 0x21, 0x22, 0x8d,
-  0xc4, 0xf4, 0x62, 0x83, 0x12, 0x83, 0x02, 0x94, 0xeb, 0x51, 0xad, 0x5a, 0xbe, 0xf5, 0xf7, 0x65,
-  0x0e, 0xcd, 0xaf, 0xe1, 0x1b, 0xb7, 0x6d, 0x61, 0x53, 0xdf, 0x01, 0xe2, 0x50, 0x13, 0xeb, 0x6e,
-  0xa2, 0xb9, 0x37, 0x80, 0xe3, 0x49, 0x1e, 0x91, 0x94, 0xfa, 0x6b, 0x95, 0x24, 0x0c, 0xa5, 0x40,
-  0x04, 0xc7, 0x01, 0xd7, 0x91, 0x15, 0x6b, 0x86, 0x67, 0xce, 0x70, 0x73, 0xa7, 0x9e, 0xa7, 0x4d,
-  0xf9, 0xd5, 0x73, 0x40, 0x27, 0x84, 0xcd, 0xc9, 0x27, 0x9a, 0x30, 0x01, 0x82, 0x49, 0xf9, 0x8f,
-  0x05, 0xa5, 0xd1, 0xf5, 0xc3, 0xfc, 0xe3, 0xf7, 0x7f, 0xc8, 0x9f, 0x3c, 0xd6, 0x83, 0xb7, 0xf5,
-  0xcb, 0xac, 0x1e, 0x7b, 0x0f, 0x91, 0x11, 0x1e, 0xdc, 0xf3, 0x1c, 0x6f, 0xfd, 0xcd, 0xb7, 0xf8,
-  0xd2, 0x55, 0x4f, 0xd2, 0xb5, 0xe9, 0xa2, 0x94, 0xb6, 0x47, 0x69, 0x24, 0x22, 0x39, 0xd5, 0x44,
-  0x7c, 0x04, 0x41, 0xa1, 0x51, 0x1e, 0xfc, 0xdd, 0x3f, 0xcf, 0x12, 0x66, 0xcf, 0x66, 0xfb, 0x6d,
-  0x57, 0xd2, 0xb7, 0xf8, 0x02, 0x8b, 0x0b, 0x45, 0x0a, 0xcb, 0x47, 0xc8, 0xd6, 0xde, 0xc6, 0xb7,
-  0x71, 0x12, 0xb4, 0x44, 0xb5, 0xfe, 0x17, 0x9d, 0x9a, 0x97, 0x6e, 0x93, 0x2b, 0xa5, 0xd5, 0xf2,
-  0xde, 0x5e, 0xbd, 0xca, 0x9d, 0x7c, 0x65, 0x7c, 0xf8, 0x94, 0xf5, 0x3a, 0x9f, 0x14, 0x3d, 0x1a,
-  0xb4, 0x9f, 0x94, 0xa5, 0x36, 0x5c, 0xc2, 0x4a, 0x1d, 0x15, 0xf0, 0xec, 0xbf, 0x3e, 0xc3, 0x77,
-  0x9f, 0x1d, 0xe0, 0xcc, 0xdf, 0xbc, 0x9d, 0xf7, 0xff, 0xda, 0xc7, 0xc9, 0xf9, 0xc9, 0xb7, 0xb5,
-  0xf0, 0xc3, 0x3c, 0xfe, 0xc0, 0x39, 0x7c, 0xe3, 0xfe, 0x4f, 0xf2, 0xc5, 0x55, 0x47, 0xb1, 0xc5,
-  0x15, 0x2d, 0x66, 0xac, 0x50, 0x88, 0x48, 0x5a, 0x2d, 0x5a, 0x40, 0xa3, 0x5d, 0x87, 0x57, 0x5e,
-  0x9d, 0x67, 0x31, 0x1a, 0xe4, 0xb7, 0x7f, 0xf3, 0x7d, 0x0c, 0x66, 0xea, 0x94, 0xe7, 0x0f, 0x53,
-  0x28, 0xe6, 0x61, 0xef, 0x3f, 0x63, 0xe7, 0xf6, 0x42, 0xb7, 0x86, 0xbe, 0xde, 0xb4, 0x10, 0x63,
-  0xe9, 0xd0, 0x4b, 0x88, 0xef, 0x40, 0xc6, 0x63, 0xb9, 0x8e, 0xca, 0xf3, 0x6b, 0xfd, 0x6e, 0xb7,
-  0xb5, 0x2d, 0xa2, 0x96, 0x64, 0x60, 0x6c, 0x80, 0x22, 0x22, 0x9e, 0x3a, 0xc4, 0xf7, 0x1f, 0x9a,
-  0x61, 0xe5, 0xa5, 0x9f, 0xe3, 0xe3, 0x9f, 0xf8, 0x38, 0xa7, 0x75, 0xc1, 0x4a, 0x0f, 0x46, 0x5d,
-  0x58, 0xdb, 0x0d, 0x57, 0xfc, 0xc6, 0x65, 0x54, 0x2f, 0xde, 0xce, 0xae, 0xa7, 0x5f, 0x45, 0x3b,
-  0x5e, 0xa2, 0x5d, 0x9c, 0x04, 0x8a, 0xd2, 0x9c, 0x28, 0xcd, 0xc1, 0x63, 0x96, 0xcd, 0x1b, 0x86,
-  0x38, 0xed, 0xd4, 0x90, 0xf2, 0xde, 0x07, 0xf1, 0x33, 0x35, 0xd4, 0x5b, 0x8f, 0x63, 0x8f, 0xec,
-  0x85, 0x48, 0x43, 0xa1, 0xa7, 0x5d, 0x49, 0xb6, 0x34, 0xd2, 0x04, 0xd5, 0xe6, 0xba, 0x4a, 0xe1,
-  0x3a, 0x8e, 0xed, 0x75, 0x91, 0x60, 0xb9, 0x9b, 0xcd, 0x75, 0x14, 0x73, 0x61, 0x9b, 0x5a, 0xd0,
-  0x0c, 0x9f, 0xf0, 0xe8, 0xd3, 0xfb, 0x31, 0xcb, 0xdf, 0xcb, 0x07, 0x2e, 0xfb, 0x28, 0x6b, 0x7a,
-  0xa0, 0xa8, 0xc0, 0xd3, 0x90, 0x77, 0xe0, 0xde, 0x07, 0xc7, 0x79, 0xee, 0x65, 0x4d, 0x39, 0x7a,
-  0x2f, 0x7f, 0xff, 0x7a, 0x89, 0xcd, 0x1f, 0xaa, 0x83, 0xca, 0xa4, 0x94, 0x5c, 0x2d, 0x31, 0x0f,
-  0xc7, 0xd1, 0x1c, 0x3c, 0x5c, 0x61, 0x59, 0xaf, 0xe2, 0x8c, 0xd5, 0x75, 0xe2, 0xe3, 0xbb, 0x50,
-  0xf6, 0x18, 0xba, 0x72, 0x14, 0xe2, 0xe3, 0xe8, 0x5e, 0x17, 0xfa, 0xbb, 0xc1, 0xd7, 0x69, 0x80,
-  0x69, 0x96, 0xc8, 0x27, 0xf0, 0xf5, 0xe6, 0x53, 0x04, 0xa5, 0x9c, 0x6e, 0xd7, 0x71, 0x29, 0x2a,
-  0xad, 0x12, 0x1c, 0x22, 0x49, 0xb4, 0x6a, 0x51, 0x03, 0x0b, 0xca, 0x42, 0x5c, 0x63, 0xe7, 0xbe,
-  0x32, 0x83, 0xeb, 0x2f, 0x61, 0xeb, 0xfa, 0x15, 0x94, 0xdc, 0x64, 0x1f, 0x0d, 0xfc, 0xd5, 0xdf,
-  0x1e, 0xe0, 0xc1, 0xfd, 0xfd, 0xbc, 0xbd, 0xff, 0x11, 0xf2, 0xf9, 0x5e, 0xe6, 0xb8, 0x1a, 0x6a,
-  0x8f, 0x40, 0xd7, 0x8a, 0x14, 0xc0, 0xd2, 0xea, 0x47, 0x04, 0xb2, 0xae, 0x61, 0xb4, 0x77, 0x81,
-  0xa2, 0xaa, 0x53, 0x3e, 0x78, 0x98, 0x4c, 0x21, 0xc6, 0xf1, 0x23, 0x18, 0xea, 0x05, 0xd7, 0x87,
-  0xdc, 0x08, 0x2a, 0xbf, 0x0a, 0x2a, 0x7b, 0x90, 0xda, 0xc1, 0xd4, 0xe7, 0x4e, 0x5e, 0x49, 0x2b,
-  0x25, 0xe0, 0x78, 0x59, 0xad, 0xb2, 0x5e, 0xbe, 0xb3, 0x44, 0x45, 0xea, 0x28, 0x5b, 0x69, 0x73,
-  0x2c, 0x13, 0x40, 0x65, 0x96, 0xd8, 0x1f, 0xa6, 0x67, 0xf9, 0x5a, 0xfa, 0x7c, 0xc8, 0xa4, 0x7e,
-  0x77, 0x64, 0x7c, 0x91, 0xe9, 0x28, 0xc7, 0x1f, 0x7d, 0xb6, 0x97, 0xb3, 0x7a, 0x9e, 0xe0, 0xa1,
-  0x3f, 0xbb, 0x9c, 0x89, 0x60, 0x82, 0xf2, 0x54, 0x39, 0xd5, 0xbe, 0x24, 0x92, 0x77, 0x6c, 0x6c,
-  0xad, 0xa5, 0x34, 0x90, 0xa7, 0xb4, 0x62, 0x05, 0xe2, 0x17, 0xc9, 0x14, 0x5d, 0x9c, 0x5c, 0x16,
-  0xb2, 0x03, 0x90, 0x2d, 0xa2, 0xfc, 0x6e, 0xb4, 0x6b, 0x51, 0x32, 0x0f, 0x85, 0xd1, 0xa5, 0x55,
-  0xa8, 0x9c, 0xa4, 0xbe, 0x15, 0x50, 0x26, 0xa8, 0x6b, 0xa9, 0xd5, 0x17, 0x97, 0xcc, 0x30, 0x21,
-  0x04, 0x53, 0x60, 0x42, 0xc4, 0x34, 0x40, 0x42, 0x2a, 0x73, 0x65, 0xdc, 0xc2, 0x20, 0x7d, 0xa5,
-  0xa1, 0x56, 0xf4, 0x03, 0x78, 0xf8, 0xf1, 0x69, 0x3e, 0xf8, 0x4b, 0x03, 0x0c, 0x74, 0xc1, 0x15,
-  0x1f, 0xfb, 0x28, 0x71, 0x58, 0xe5, 0xe0, 0xce, 0x7f, 0x61, 0x7e, 0xa1, 0xd1, 0x2e, 0x6b, 0x91,
-  0x8e, 0x67, 0xb2, 0x4f, 0xc2, 0xb1, 0x34, 0xa2, 0x32, 0x64, 0x8a, 0x79, 0x9c, 0x4c, 0x06, 0x14,
-  0x58, 0xa3, 0x98, 0xde, 0x3b, 0xc3, 0x9b, 0x0f, 0xed, 0xe6, 0xc8, 0xa3, 0x4f, 0x20, 0x33, 0x2f,
-  0xbe, 0xb3, 0x1a, 0x97, 0x25, 0x4b, 0x21, 0x4a, 0x63, 0x85, 0xba, 0x6b, 0x6c, 0xa6, 0x62, 0x8d,
-  0x45, 0xb9, 0xa9, 0xfa, 0x24, 0x46, 0xa2, 0x69, 0x5a, 0x31, 0x4e, 0x2c, 0x36, 0xac, 0xe0, 0xe7,
-  0x4e, 0xc5, 0xc9, 0x16, 0x08, 0x0c, 0xe4, 0x74, 0xe2, 0x77, 0x95, 0xc8, 0x72, 0x60, 0x41, 0x71,
-  0x26, 0x70, 0xdf, 0x7d, 0xf7, 0x21, 0x22, 0xe8, 0x8c, 0x8f, 0xb4, 0xba, 0x26, 0x69, 0xb5, 0x27,
-  0x36, 0xd5, 0x4c, 0x93, 0x40, 0x4a, 0x12, 0xc9, 0x9a, 0x12, 0x29, 0x01, 0x2b, 0x68, 0xad, 0x28,
-  0x0e, 0x67, 0x71, 0x7d, 0x8b, 0x76, 0x84, 0xc6, 0xdc, 0x3c, 0xd9, 0x1e, 0x67, 0x29, 0x02, 0x51,
-  0x4b, 0xb4, 0x2c, 0x02, 0x46, 0x54, 0x59, 0xa3, 0x33, 0x6f, 0x47, 0x35, 0xb3, 0x74, 0xb2, 0x69,
-  0x40, 0x78, 0x14, 0xe2, 0x29, 0xc4, 0x2e, 0xd0, 0x95, 0x37, 0xe4, 0x3c, 0x4b, 0xb9, 0x11, 0x33,
-  0x1b, 0x42, 0x35, 0x9d, 0x3e, 0x54, 0xd0, 0x3c, 0xb0, 0xc7, 0x63, 0xeb, 0x65, 0xff, 0x8d, 0x3f,
-  0xf9, 0xe6, 0x9f, 0xa2, 0xbd, 0x2c, 0x6b, 0xce, 0xb9, 0x84, 0xbe, 0x81, 0x7c, 0x42, 0x1c, 0xe9,
-  0xa8, 0xd3, 0x5b, 0xd9, 0xbe, 0x03, 0x80, 0x2c, 0x7d, 0x2a, 0x47, 0x98, 0x3f, 0x52, 0xa5, 0x7b,
-  0xc8, 0xa7, 0xd0, 0xe7, 0xe2, 0x75, 0x79, 0x29, 0xb3, 0x4e, 0x0f, 0xd9, 0xb4, 0xe2, 0x4f, 0xe7,
-  0xcf, 0x7c, 0x1c, 0xe9, 0x29, 0x37, 0x53, 0x1a, 0xde, 0x17, 0x2e, 0x8e, 0xe3, 0x17, 0x7d, 0xa4,
-  0x89, 0x56, 0x35, 0x37, 0x88, 0x11, 0xd1, 0x38, 0x85, 0x2c, 0x03, 0xde, 0x14, 0xe5, 0xfa, 0x34,
-  0x13, 0x01, 0xc4, 0x31, 0x04, 0x59, 0x18, 0xbb, 0x60, 0x88, 0x1f, 0x7f, 0x6b, 0x9c, 0x75, 0x1f,
-  0xb9, 0x0b, 0xaf, 0x6f, 0x03, 0xc5, 0x91, 0xb3, 0xd8, 0x96, 0x7f, 0x91, 0xe2, 0xf0, 0x00, 0x56,
-  0xc2, 0xa5, 0xf5, 0x7a, 0x53, 0x1b, 0x9d, 0x0d, 0x0a, 0xda, 0xc0, 0x94, 0x08, 0xb5, 0xb9, 0x00,
-  0xbf, 0xe0, 0x24, 0xa6, 0xeb, 0x24, 0xb4, 0x6a, 0x09, 0xd8, 0x4e, 0x2b, 0x6d, 0x6b, 0x64, 0xaa,
-  0x5a, 0xb3, 0xe3, 0xfa, 0x8c, 0xb1, 0x17, 0xa6, 0xc3, 0x9a, 0x4c, 0xb4, 0x66, 0x34, 0x4f, 0x2d,
-  0x1d, 0x36, 0x88, 0x88, 0xa2, 0x2c, 0xeb, 0xbb, 0x67, 0x58, 0x19, 0xbf, 0xc4, 0xc2, 0xf4, 0x24,
-  0x93, 0xb3, 0xd3, 0xec, 0x9b, 0x8d, 0xa8, 0x14, 0x0b, 0x6c, 0xdd, 0xa6, 0xc9, 0x1e, 0xb1, 0x6c,
-  0x39, 0xf7, 0x26, 0xfa, 0x2a, 0xa3, 0x7c, 0xb8, 0xf7, 0x27, 0x88, 0xe3, 0x22, 0x4d, 0x9e, 0xd5,
-  0xe4, 0x5e, 0x36, 0x46, 0x59, 0x83, 0xb2, 0x29, 0x53, 0xee, 0x04, 0x63, 0x0d, 0x41, 0x25, 0xa0,
-  0x3a, 0x55, 0xa7, 0x6b, 0x28, 0x93, 0x36, 0x33, 0x3a, 0xb5, 0x65, 0x9b, 0x36, 0x94, 0x6a, 0x44,
-  0x5a, 0x66, 0x25, 0x22, 0xc7, 0x8e, 0x1f, 0x57, 0x6f, 0x39, 0x9f, 0x1c, 0x2b, 0x69, 0x6b, 0x38,
-  0xb7, 0x7b, 0x38, 0x73, 0x16, 0xa2, 0xdb, 0x6d, 0x4d, 0xad, 0x31, 0xa1, 0xa1, 0x3e, 0x5d, 0x27,
-  0x8a, 0x72, 0x0c, 0xac, 0x58, 0xc3, 0x5a, 0xbd, 0x97, 0xc1, 0xa3, 0x0f, 0xe0, 0x4c, 0xbe, 0x40,
-  0x50, 0x99, 0x60, 0xb6, 0x6a, 0xe9, 0x1a, 0x1d, 0x24, 0xbf, 0x26, 0x4b, 0xed, 0xd8, 0xd3, 0x9c,
-  0x2b, 0xb7, 0xf3, 0x89, 0xff, 0xec, 0x63, 0x95, 0xea, 0x28, 0xb2, 0x4c, 0xda, 0x59, 0x31, 0xed,
-  0x96, 0x50, 0xab, 0x49, 0x17, 0x23, 0x51, 0x9d, 0x60, 0xbe, 0x4e, 0x65, 0xaa, 0x46, 0xff, 0x68,
-  0x1e, 0xc7, 0x11, 0xc4, 0x9a, 0x25, 0xcd, 0x3c, 0xac, 0x05, 0x2b, 0xa8, 0x40, 0x20, 0x48, 0xca,
-  0x1e, 0x48, 0x2c, 0xa3, 0x11, 0xe8, 0xc7, 0x36, 0xdc, 0x59, 0xfe, 0xae, 0x5b, 0x9e, 0x10, 0xf1,
-  0xbb, 0xd5, 0x0f, 0xa3, 0x5a, 0x7c, 0xa5, 0x9b, 0xd5, 0x09, 0x95, 0x68, 0xd6, 0x12, 0x56, 0xf0,
-  0xf3, 0x21, 0xbe, 0x3f, 0x89, 0xcc, 0x1e, 0x46, 0x2a, 0x01, 0x03, 0x51, 0xcc, 0xa0, 0xa7, 0x31,
-  0x95, 0x7b, 0x98, 0x9e, 0x18, 0xe1, 0x70, 0xe9, 0x6a, 0x82, 0xc6, 0x0a, 0x4e, 0x73, 0x7f, 0xc4,
-  0x2f, 0xff, 0xa7, 0x59, 0xac, 0xdb, 0x9f, 0x16, 0x53, 0xd2, 0xd1, 0x98, 0x6b, 0x6a, 0xa1, 0xdd,
-  0xd7, 0x52, 0xa6, 0x46, 0xb4, 0x38, 0x4f, 0xa3, 0x96, 0x25, 0x0a, 0x72, 0xf4, 0xae, 0xf0, 0x71,
-  0xdc, 0x08, 0x31, 0x1d, 0x16, 0xd1, 0xaa, 0x6f, 0x04, 0x8c, 0x4d, 0x8a, 0x2a, 0x63, 0x9b, 0x14,
-  0x1e, 0x63, 0x55, 0x50, 0x6b, 0xb0, 0x1b, 0x94, 0xb8, 0x47, 0x5e, 0x1d, 0x90, 0xd3, 0x2e, 0xaa,
-  0x3e, 0x54, 0x9d, 0x0a, 0x83, 0xde, 0x51, 0xd7, 0x4f, 0x9c, 0x53, 0x81, 0xb5, 0x38, 0x9e, 0xc5,
-  0x09, 0xe7, 0xb1, 0x13, 0x0b, 0xb0, 0x00, 0x36, 0x48, 0x42, 0xa1, 0xf8, 0x02, 0x7d, 0x9a, 0xc1,
-  0xae, 0xc3, 0x2c, 0x2b, 0x3d, 0xc7, 0xba, 0x89, 0x47, 0x29, 0x8c, 0x81, 0xf5, 0x73, 0x48, 0x1c,
-  0xa0, 0xb4, 0x4a, 0xc9, 0x66, 0x02, 0x46, 0x68, 0x97, 0xb3, 0xca, 0x54, 0x30, 0x95, 0x59, 0x1a,
-  0x0b, 0x31, 0xb1, 0x1e, 0x41, 0xe7, 0x87, 0x28, 0x16, 0xe7, 0x70, 0x64, 0x3e, 0x05, 0x61, 0xdb,
-  0x1e, 0x9d, 0x96, 0xc7, 0x88, 0x45, 0xc5, 0xa9, 0x26, 0x4c, 0x3b, 0xb1, 0x5a, 0x2b, 0xfb, 0x67,
-  0x66, 0xbd, 0x47, 0x01, 0xdc, 0x8f, 0xfc, 0x78, 0x2f, 0x07, 0x3f, 0x50, 0x9c, 0xae, 0x4e, 0x67,
-  0x7e, 0xd0, 0xb3, 0xc2, 0x5c, 0x93, 0x78, 0x5a, 0x47, 0x93, 0xd9, 0x2b, 0x40, 0xc1, 0x49, 0xa8,
-  0x79, 0x2c, 0x28, 0xcf, 0x85, 0x42, 0x06, 0x0a, 0x3e, 0xd2, 0xb5, 0x06, 0x72, 0xc3, 0x28, 0x7f,
-  0x9a, 0x6a, 0xbd, 0x8c, 0xaa, 0x96, 0xc9, 0x14, 0x32, 0x78, 0x05, 0xbf, 0x1d, 0x5a, 0x34, 0x28,
-  0x53, 0x87, 0x70, 0x81, 0xb8, 0x3c, 0x4f, 0x6d, 0xc1, 0x26, 0xaf, 0x20, 0x8a, 0xa3, 0x64, 0xf3,
-  0x19, 0xdc, 0xe8, 0x28, 0x04, 0x8b, 0xe0, 0x06, 0xed, 0x28, 0xd7, 0xa1, 0xcd, 0x96, 0x6f, 0x44,
-  0x0a, 0x62, 0x69, 0x2d, 0x1b, 0xc7, 0xd0, 0x68, 0xa8, 0xdd, 0x63, 0x77, 0xcf, 0x3d, 0x05, 0x0a,
-  0x17, 0xe0, 0xc0, 0x53, 0x9e, 0x19, 0xdd, 0xa6, 0xbe, 0x59, 0x9d, 0x0e, 0xaf, 0x29, 0x0c, 0xa6,
-  0xdc, 0x48, 0x00, 0xe5, 0x42, 0xa6, 0x0b, 0xbc, 0x2e, 0x28, 0x0a, 0x0a, 0x05, 0xda, 0x05, 0x2f,
-  0x03, 0x8e, 0x87, 0xf2, 0x8b, 0x94, 0x0f, 0xee, 0xa7, 0x36, 0x35, 0x89, 0x58, 0x8b, 0x97, 0xf7,
-  0x71, 0x32, 0xe0, 0xc6, 0x0a, 0x31, 0x01, 0x71, 0xb5, 0x4a, 0xb0, 0xb0, 0x88, 0x09, 0x2c, 0xb8,
-  0x3d, 0x38, 0xb9, 0x33, 0xf0, 0x96, 0xf5, 0xa3, 0x5c, 0x0f, 0x4f, 0x37, 0x50, 0x8d, 0x23, 0x48,
-  0x5c, 0x41, 0x7b, 0x89, 0xe1, 0x4b, 0xb3, 0x9f, 0x2c, 0x69, 0xe3, 0xa1, 0xa9, 0x8d, 0x28, 0xe9,
-  0x38, 0x11, 0xb7, 0xc3, 0x95, 0xb1, 0xea, 0xf8, 0xf4, 0x9c, 0x73, 0x3f, 0x28, 0x9e, 0xff, 0x5d,
-  0x70, 0xdf, 0xf8, 0x0c, 0xac, 0xff, 0xe6, 0x8c, 0xec, 0x1d, 0x5b, 0xb6, 0xbb, 0x7c, 0x34, 0xbe,
-  0xaf, 0x50, 0x72, 0x3f, 0x96, 0xe8, 0x2e, 0x0d, 0x73, 0xda, 0x49, 0x98, 0xac, 0xe7, 0x26, 0x86,
-  0xa9, 0x9c, 0x94, 0x6b, 0x18, 0xd4, 0xe2, 0xeb, 0xd4, 0x26, 0x6b, 0xf4, 0xac, 0x1c, 0x48, 0x6a,
-  0x0d, 0x2b, 0x44, 0x95, 0x06, 0xc1, 0x6c, 0x05, 0xc1, 0x26, 0x85, 0x4f, 0xbe, 0x17, 0xaf, 0xcb,
-  0x07, 0xeb, 0xa2, 0x1c, 0xc1, 0x55, 0x0b, 0x10, 0xd4, 0x92, 0x5e, 0x99, 0x13, 0xa1, 0x33, 0x51,
-  0x1a, 0xe6, 0x53, 0x1f, 0xb2, 0xcd, 0xca, 0x32, 0x15, 0x20, 0x16, 0x08, 0x15, 0x84, 0xd2, 0x2a,
-  0x6f, 0x8c, 0x81, 0x6a, 0x4d, 0x5e, 0xdc, 0x7e, 0xcf, 0x39, 0x7f, 0x0b, 0x0f, 0x53, 0x7a, 0xdf,
-  0xef, 0xa1, 0xe3, 0xd2, 0x46, 0x00, 0xfe, 0xfa, 0x8b, 0x23, 0x55, 0x13, 0x39, 0x77, 0x94, 0xc7,
-  0x43, 0x51, 0xca, 0x24, 0x91, 0x43, 0x4c, 0x5a, 0x8b, 0x27, 0xe1, 0x33, 0x29, 0xb8, 0xa2, 0xf4,
-  0xf7, 0x08, 0xab, 0x5c, 0x7a, 0x57, 0x14, 0xc9, 0xe4, 0x34, 0x99, 0xbc, 0xc6, 0x2f, 0x38, 0xe4,
-  0x7a, 0x5d, 0xf2, 0x25, 0x9f, 0xc2, 0x60, 0x8e, 0x7c, 0x29, 0x87, 0x5f, 0xf0, 0xf0, 0x5c, 0xc1,
-  0xf3, 0x02, 0x5c, 0x35, 0x8f, 0x8a, 0x27, 0x51, 0x7a, 0x1e, 0x9d, 0x09, 0x50, 0x6e, 0xd8, 0x06,
-  0x61, 0x6d, 0x1b, 0x44, 0xd3, 0x37, 0x8c, 0x41, 0x85, 0xef, 0xd4, 0x46, 0x1c, 0xcb, 0xc4, 0xe4,
-  0x94, 0xfb, 0xad, 0xef, 0x1d, 0x7f, 0x38, 0xde, 0xf7, 0xfb, 0xb0, 0xea, 0xb7, 0xbe, 0x83, 0xde,
-  0x78, 0xcb, 0x6e, 0x0e, 0xff, 0x0f, 0xf8, 0x32, 0xcf, 0x33, 0x7b, 0x48, 0x76, 0x57, 0xa7, 0xed,
-  0x2d, 0x61, 0x25, 0x4a, 0x5e, 0x0b, 0x48, 0xda, 0x50, 0xb0, 0x71, 0xaa, 0x6a, 0xb3, 0xa4, 0xbd,
-  0x03, 0xe0, 0xe5, 0x55, 0x0b, 0x18, 0x12, 0xe1, 0xb8, 0x09, 0x81, 0x75, 0x3d, 0xd0, 0xda, 0xa2,
-  0x74, 0x84, 0xce, 0x04, 0xe9, 0x08, 0x51, 0x5e, 0x84, 0x72, 0x62, 0x50, 0x69, 0xeb, 0xa8, 0xf3,
-  0xb0, 0x3a, 0x41, 0xd8, 0x14, 0x44, 0xa0, 0x20, 0xb0, 0x2d, 0xdf, 0x30, 0x86, 0x78, 0x66, 0xce,
-  0xfd, 0xf1, 0xa6, 0x1d, 0xe5, 0x1f, 0x01, 0x34, 0x4a, 0x1b, 0xda, 0x2d, 0xd3, 0x85, 0xb5, 0xbf,
-  0x04, 0xc0, 0xd6, 0x3f, 0x3e, 0x5e, 0xaf, 0xcd, 0x98, 0x3f, 0x9f, 0x3f, 0x12, 0x3f, 0x91, 0x24,
-  0xb3, 0xb8, 0x0d, 0xa6, 0xd9, 0xbb, 0x6a, 0x6a, 0x47, 0xe2, 0x0e, 0x60, 0x51, 0x5b, 0x63, 0x36,
-  0x4c, 0xb5, 0x16, 0xb6, 0xe7, 0x49, 0x94, 0x24, 0x47, 0x96, 0x1e, 0x8c, 0xb4, 0xd6, 0x32, 0x4b,
-  0x5a, 0x4b, 0x88, 0x4d, 0x4c, 0xa9, 0xa1, 0x20, 0x68, 0x9b, 0x94, 0xb5, 0x50, 0x5e, 0xe4, 0xb5,
-  0xd7, 0x0f, 0x9e, 0x72, 0x2d, 0xc0, 0xae, 0xdf, 0x83, 0x4d, 0xb7, 0xbe, 0xde, 0x06, 0xb2, 0xf1,
-  0xc6, 0x47, 0xd9, 0x7d, 0x73, 0xd2, 0x43, 0x3d, 0xe3, 0x96, 0xb9, 0xb7, 0x83, 0xb2, 0xbd, 0x6e,
-  0xfe, 0xed, 0x70, 0x4e, 0xa9, 0x64, 0x23, 0x31, 0xa6, 0xad, 0x11, 0x1b, 0x2d, 0x05, 0x61, 0x3b,
-  0xcc, 0xae, 0x25, 0x64, 0xe7, 0xf7, 0x71, 0x87, 0x69, 0x46, 0x2d, 0x8d, 0x4a, 0x6b, 0x4e, 0xc7,
-  0xb0, 0x36, 0x99, 0x17, 0x5a, 0x54, 0xa0, 0xa0, 0x21, 0x09, 0xa0, 0x34, 0xad, 0xd4, 0xeb, 0x32,
-  0xf9, 0xd6, 0x78, 0xee, 0x77, 0x2e, 0xfd, 0xb3, 0x3d, 0x0b, 0x00, 0xa5, 0x8f, 0xde, 0xc6, 0x3b,
-  0x5e, 0x2b, 0x6c, 0xbc, 0x63, 0x9a, 0x97, 0x6f, 0x5e, 0x05, 0xc0, 0xaa, 0x6b, 0x7f, 0xfd, 0x99,
-  0xea, 0xb4, 0x7c, 0xaa, 0x32, 0x11, 0xc6, 0x09, 0x1d, 0x6f, 0x6e, 0xfc, 0xef, 0x18, 0x9d, 0xfe,
-  0xf4, 0x8e, 0xef, 0x92, 0x43, 0x69, 0x1f, 0x4c, 0xdc, 0x36, 0xa9, 0xe6, 0x41, 0x45, 0x92, 0x80,
-  0xa8, 0xb7, 0x41, 0x00, 0x04, 0x81, 0xcc, 0x1f, 0x3a, 0x9a, 0xfb, 0x83, 0xf3, 0xbe, 0x31, 0xf3,
-  0xfc, 0xee, 0x1b, 0xfa, 0x00, 0x38, 0xf5, 0xa3, 0x5f, 0x6c, 0x01, 0x71, 0x3a, 0x69, 0xe4, 0x9f,
-  0x3e, 0x3e, 0xcf, 0xce, 0xeb, 0x96, 0xf1, 0x9d, 0x27, 0x1f, 0x61, 0xe0, 0xa7, 0xa5, 0xbd, 0x1b,
-  0x2e, 0x0e, 0xa7, 0x9d, 0x8c, 0xf9, 0x90, 0x97, 0x4d, 0xe7, 0x75, 0x30, 0x57, 0xd5, 0x34, 0x01,
-  0x75, 0x32, 0x32, 0xd8, 0xd9, 0x69, 0x34, 0xed, 0x17, 0x3e, 0x9d, 0x1d, 0x48, 0x89, 0x97, 0x6a,
-  0x42, 0x6c, 0x02, 0xa2, 0xde, 0x01, 0x22, 0x4d, 0x23, 0x41, 0x28, 0x73, 0x87, 0x8e, 0xe4, 0x6e,
-  0xd8, 0xb4, 0x63, 0xf6, 0xaf, 0xf6, 0xfc, 0x61, 0x2f, 0x67, 0x6e, 0x7f, 0xe7, 0x0b, 0x51, 0xe7,
-  0xc4, 0x0f, 0xbe, 0xf3, 0x64, 0x95, 0x97, 0x6f, 0x2c, 0x71, 0xe5, 0x13, 0x13, 0x36, 0xff, 0x4f,
-  0x63, 0x2f, 0x6d, 0xbc, 0x60, 0x7a, 0xde, 0xf5, 0xcc, 0x45, 0x9e, 0x8f, 0x9f, 0x74, 0xc3, 0xe5,
-  0x24, 0x54, 0xdc, 0x2e, 0xb5, 0xef, 0xce, 0x46, 0xf4, 0x12, 0xa6, 0x7b, 0x42, 0xa3, 0xbb, 0x09,
-  0xc0, 0x58, 0x08, 0x40, 0x35, 0x7d, 0x22, 0x90, 0x16, 0xc5, 0x6a, 0x34, 0xd4, 0xd1, 0x83, 0xe3,
-  0xd9, 0xff, 0xb9, 0xf1, 0xae, 0xd9, 0xbf, 0xd8, 0xf7, 0x85, 0x5e, 0xb5, 0xee, 0xf6, 0xf9, 0x77,
-  0xf7, 0x7a, 0x7a, 0xf7, 0x17, 0x96, 0xb3, 0xf1, 0xab, 0xc9, 0xdb, 0xd3, 0xb7, 0xee, 0xec, 0xfd,
-  0xef, 0x7d, 0x23, 0xdc, 0x92, 0xeb, 0x57, 0x2b, 0xb5, 0xab, 0xd3, 0x74, 0xad, 0xda, 0x04, 0xf3,
-  0xc4, 0x06, 0x41, 0x93, 0x72, 0x73, 0x32, 0xc0, 0xd2, 0xe4, 0x17, 0x69, 0x88, 0x15, 0x54, 0x90,
-  0x46, 0xa7, 0x50, 0x92, 0xde, 0xae, 0x4d, 0x32, 0x77, 0xb5, 0xaa, 0x5e, 0x3c, 0x38, 0x9e, 0xfd,
-  0xec, 0x39, 0xff, 0x67, 0xe6, 0xf1, 0xbd, 0x5f, 0xe8, 0x65, 0xdd, 0x57, 0xe7, 0x7f, 0xce, 0x0b,
-  0x03, 0xd7, 0x0f, 0xb0, 0xf9, 0xae, 0xe4, 0xad, 0xd0, 0x6b, 0x5f, 0xec, 0x79, 0xff, 0xe0, 0x69,
-  0x72, 0x73, 0xbe, 0x5f, 0x5d, 0xe2, 0xe5, 0x94, 0xa7, 0x1d, 0xdd, 0x6e, 0x21, 0x35, 0x8b, 0xe7,
-  0x13, 0x8b, 0x69, 0x78, 0x27, 0x1d, 0xb7, 0x92, 0x0e, 0x20, 0x14, 0x54, 0xa8, 0x92, 0x3c, 0x11,
-  0x25, 0x77, 0x55, 0x4c, 0x0c, 0x51, 0xa4, 0xa6, 0xe6, 0xcb, 0x3c, 0xf0, 0xda, 0x81, 0xbe, 0x9b,
-  0x3e, 0x74, 0xcf, 0x91, 0x89, 0xd7, 0x6f, 0xea, 0x63, 0xc3, 0xf6, 0xb9, 0xff, 0xe0, 0x15, 0x8e,
-  0xeb, 0x86, 0xd9, 0x9c, 0x5e, 0xa4, 0x79, 0xe4, 0xaa, 0xfe, 0xe1, 0xb5, 0x17, 0xc6, 0xbf, 0xdb,
-  0x55, 0x52, 0x57, 0x78, 0x79, 0x39, 0x3b, 0x93, 0x07, 0xa5, 0x75, 0xfb, 0xf0, 0x4f, 0xd6, 0xe6,
-  0x68, 0x6a, 0x47, 0x52, 0x00, 0x46, 0x52, 0x02, 0x98, 0x68, 0x40, 0x45, 0x80, 0x11, 0x6c, 0x24,
-  0x04, 0x91, 0x0e, 0xc3, 0x90, 0xc7, 0xa6, 0x67, 0xf5, 0xf7, 0xd6, 0xdd, 0xbe, 0xf8, 0x97, 0xc9,
-  0xfe, 0x83, 0x6c, 0xde, 0x31, 0xf5, 0x8b, 0xb9, 0x54, 0xf3, 0xc6, 0x9d, 0xef, 0x43, 0x55, 0x1e,
-  0xe5, 0x8c, 0x5b, 0x13, 0x69, 0x77, 0xdf, 0xd4, 0x77, 0xce, 0xc0, 0xca, 0xf8, 0x57, 0xb2, 0xdd,
-  0xea, 0x43, 0x8e, 0x6b, 0x2f, 0xf4, 0x0b, 0xe0, 0x64, 0xd4, 0xd2, 0x66, 0x87, 0x95, 0x56, 0xa1,
-  0x89, 0x11, 0xc4, 0x2a, 0x54, 0x2c, 0x10, 0x2b, 0x94, 0x91, 0x94, 0xc9, 0x0a, 0x51, 0x43, 0x08,
-  0x23, 0xbd, 0x18, 0xc7, 0x3c, 0x5a, 0xa9, 0xe9, 0x7f, 0x3a, 0x74, 0x34, 0x7f, 0xef, 0x7b, 0xbf,
-  0x33, 0x79, 0xec, 0xdd, 0x5e, 0xbd, 0x7a, 0x57, 0xd7, 0x9c, 0x76, 0x5d, 0xb7, 0x9c, 0xcd, 0x3b,
-  0xda, 0xb7, 0x0e, 0x5e, 0xbe, 0xbe, 0xef, 0xac, 0x81, 0xd1, 0x68, 0x8b, 0x9b, 0xd1, 0xe7, 0xbb,
-  0xae, 0xdd, 0xe6, 0x38, 0x6c, 0xd0, 0xda, 0x16, 0xbd, 0x0c, 0xb8, 0xae, 0x4a, 0x62, 0xbb, 0x55,
-  0xad, 0xca, 0x4e, 0x62, 0x88, 0x03, 0x21, 0x0a, 0x04, 0x13, 0xeb, 0xb2, 0x31, 0x6a, 0xa7, 0xb1,
-  0x3c, 0xd5, 0x08, 0xd4, 0xb3, 0xe3, 0x13, 0x99, 0x67, 0x2e, 0xf8, 0xf6, 0xcc, 0xf8, 0xc9, 0xee,
-  0xc1, 0xfc, 0xc2, 0x81, 0xb4, 0x6e, 0x47, 0x5c, 0x3b, 0xc4, 0xd8, 0xd7, 0x8f, 0xb7, 0xfe, 0xfe,
-  0xe1, 0x65, 0x23, 0xc5, 0xd3, 0xb7, 0x2c, 0x9c, 0x5a, 0xec, 0xb7, 0x43, 0x4e, 0xd6, 0x5d, 0xae,
-  0x2c, 0x23, 0x62, 0xed, 0x90, 0x42, 0x7a, 0x94, 0x98, 0x0c, 0xa2, 0xb5, 0x18, 0x09, 0xb0, 0x7a,
-  0x11, 0xd4, 0x04, 0xc2, 0xdb, 0x51, 0x64, 0x8e, 0xcd, 0x96, 0x9d, 0x89, 0xe7, 0xf7, 0xac, 0x3c,
-  0xf4, 0xdb, 0xf7, 0xbf, 0x12, 0xb4, 0xd6, 0xfe, 0x7c, 0x3f, 0x63, 0x7f, 0x34, 0xfb, 0xae, 0x65,
-  0xfa, 0x7f, 0x4c, 0xe8, 0x21, 0x04, 0x29, 0xb0, 0x36, 0x16, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45,
-  0x4e, 0x44, 0xae, 0x42, 0x60, 0x82,
+    0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52,
+    0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x32, 0x08, 0x06, 0x00, 0x00, 0x00, 0x1e, 0x3f, 0x88,
+    0xb1, 0x00, 0x00, 0x00, 0x06, 0x62, 0x4b, 0x47, 0x44, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0xa0,
+    0xbd, 0xa7, 0x93, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0b, 0x13, 0x00,
+    0x00, 0x0b, 0x13, 0x01, 0x00, 0x9a, 0x9c, 0x18, 0x00, 0x00, 0x00, 0x07, 0x74, 0x49, 0x4d, 0x45,
+    0x07, 0xe5, 0x05, 0x07, 0x0c, 0x1b, 0x26, 0xad, 0x4b, 0x20, 0x5b, 0x00, 0x00, 0x00, 0x1d, 0x69,
+    0x54, 0x58, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43,
+    0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x47, 0x49, 0x4d, 0x50,
+    0x64, 0x2e, 0x65, 0x07, 0x00, 0x00, 0x13, 0x8a, 0x49, 0x44, 0x41, 0x54, 0x68, 0xde, 0xad, 0x9a,
+    0x69, 0x94, 0x5d, 0xd5, 0x75, 0xe7, 0x7f, 0xe7, 0xdc, 0x7b, 0xdf, 0x7d, 0x43, 0xd5, 0xab, 0xe9,
+    0x55, 0x49, 0x05, 0xaa, 0xd2, 0x80, 0x10, 0x12, 0x48, 0xa8, 0x24, 0x04, 0x66, 0x72, 0x6c, 0xec,
+    0xd8, 0xd0, 0x6e, 0x27, 0xc4, 0x6d, 0x4c, 0x08, 0x21, 0xdd, 0xed, 0x24, 0xbd, 0x1c, 0x67, 0x39,
+    0xcb, 0x6d, 0x33, 0xc7, 0x6e, 0x9b, 0xc6, 0x18, 0x64, 0x90, 0x43, 0xda, 0xb1, 0x1d, 0x7f, 0x31,
+    0x89, 0x93, 0xb8, 0x33, 0x38, 0x84, 0x15, 0x63, 0xe3, 0x38, 0x84, 0x80, 0x99, 0x67, 0x24, 0x10,
+    0x83, 0x06, 0x84, 0x84, 0x54, 0x52, 0x95, 0x6a, 0x7e, 0xf5, 0xa6, 0x3b, 0x9c, 0xb3, 0xfb, 0xc3,
+    0xbd, 0x6f, 0x28, 0xa1, 0xac, 0x0e, 0x8e, 0x6b, 0xad, 0xb3, 0x6e, 0xd5, 0x7b, 0xa7, 0xce, 0xd9,
+    0xff, 0xb3, 0xa7, 0xff, 0xde, 0xf7, 0x28, 0x7e, 0x8e, 0x9f, 0x97, 0x6f, 0x18, 0xe2, 0xec, 0x3b,
+    0x8f, 0x03, 0xf0, 0xe0, 0xd5, 0x5b, 0x19, 0x1e, 0xdd, 0xa7, 0x4b, 0xab, 0x95, 0x5a, 0x98, 0xee,
+    0xe9, 0x6d, 0xcc, 0x95, 0xcf, 0xcb, 0xf5, 0xc8, 0xe6, 0x6c, 0x97, 0x3e, 0x5d, 0x3b, 0x76, 0xd0,
+    0x51, 0xaa, 0x28, 0x56, 0x10, 0xc3, 0xa2, 0x89, 0xd5, 0x74, 0x58, 0xe3, 0x50, 0xa3, 0xa6, 0x5e,
+    0x15, 0xed, 0xbf, 0x30, 0x30, 0x5c, 0x38, 0x52, 0x9f, 0x1a, 0x8f, 0xe7, 0xaa, 0x3d, 0xb2, 0xed,
+    0xee, 0xe3, 0xd2, 0x5e, 0x7f, 0x19, 0x67, 0xdf, 0x39, 0xf9, 0xae, 0x64, 0x52, 0xef, 0x66, 0xf2,
+    0x4b, 0xd7, 0x0d, 0xb3, 0x65, 0xc7, 0x31, 0x00, 0x7e, 0x70, 0xee, 0x6a, 0xb5, 0xed, 0x13, 0xc7,
+    0xfd, 0x58, 0x7a, 0x46, 0x95, 0xa9, 0x7c, 0xa2, 0xab, 0xa4, 0xaf, 0xcc, 0xe4, 0xe3, 0xb3, 0xf3,
+    0xbd, 0x1a, 0x37, 0x23, 0x80, 0x80, 0xa8, 0xe4, 0x69, 0x01, 0x63, 0x51, 0x06, 0xc4, 0x28, 0x6c,
+    0x03, 0x1a, 0x65, 0xa1, 0x51, 0xd3, 0xc7, 0xeb, 0x55, 0x1e, 0x08, 0x43, 0xef, 0xaf, 0x5d, 0x47,
+    0xbf, 0x30, 0xb7, 0xa0, 0xcb, 0x5b, 0xef, 0x9e, 0x8a, 0x9a, 0xfb, 0xed, 0xba, 0x6e, 0x19, 0x9b,
+    0x77, 0x4c, 0xfe, 0xe2, 0x80, 0xec, 0xff, 0xf6, 0xc7, 0x88, 0x8f, 0xfd, 0x88, 0xf5, 0x5f, 0x49,
+    0xf6, 0x78, 0xe3, 0xcb, 0x5d, 0x5d, 0x5e, 0x2e, 0x7b, 0x6e, 0xb6, 0x18, 0x7f, 0x26, 0xdf, 0x6b,
+    0xff, 0x4b, 0xd7, 0xa0, 0x42, 0x39, 0x2e, 0x38, 0x59, 0x20, 0x83, 0x68, 0x0f, 0x94, 0x87, 0xd2,
+    0x39, 0x40, 0x83, 0x44, 0x88, 0xa9, 0x83, 0x09, 0xc0, 0x84, 0xa8, 0x30, 0x40, 0x05, 0x01, 0x84,
+    0x06, 0x22, 0x45, 0xa3, 0x6c, 0xa9, 0x2e, 0xea, 0xb7, 0xea, 0x81, 0xf7, 0x4d, 0x1b, 0xdb, 0xfb,
+    0x0e, 0x8e, 0x17, 0x0f, 0x5f, 0xf2, 0xdd, 0x23, 0x31, 0xc0, 0xab, 0x5f, 0x7b, 0x2f, 0x67, 0xdd,
+    0xf8, 0xd8, 0x7f, 0x1c, 0xc8, 0xae, 0x1b, 0x47, 0xd8, 0xfc, 0xb5, 0xc3, 0x00, 0xfc, 0xf4, 0xd2,
+    0x62, 0x66, 0xed, 0x07, 0x33, 0x9b, 0xb3, 0xdd, 0xe6, 0xf3, 0xdd, 0x83, 0x72, 0x55, 0xae, 0x17,
+    0x54, 0xa6, 0x1b, 0x71, 0xfb, 0x20, 0xbb, 0x12, 0xd5, 0xb3, 0x09, 0x95, 0x3f, 0x1d, 0x72, 0x23,
+    0xe0, 0xf5, 0x82, 0xd2, 0xed, 0x85, 0x24, 0x86, 0x60, 0x06, 0xea, 0x87, 0x91, 0xea, 0x5e, 0x98,
+    0x7f, 0x05, 0x16, 0x0f, 0x41, 0x75, 0x0e, 0x55, 0xab, 0xa0, 0x02, 0x4b, 0x54, 0x83, 0xc5, 0xb2,
+    0x3a, 0xdc, 0x08, 0xdd, 0xdb, 0xe6, 0xe6, 0xd5, 0x8f, 0x37, 0x7d, 0x7d, 0x61, 0x1c, 0xe0, 0xa5,
+    0xeb, 0x57, 0xb0, 0xe5, 0xae, 0x23, 0x3f, 0x3f, 0x90, 0x5d, 0xd7, 0x95, 0xd8, 0xbc, 0x63, 0x3a,
+    0xb5, 0xdb, 0x81, 0xc1, 0xbe, 0x11, 0xf9, 0xaf, 0x85, 0x12, 0x37, 0x15, 0x06, 0x28, 0x39, 0xd9,
+    0x02, 0xf8, 0xa3, 0xd0, 0x77, 0x1e, 0xaa, 0xff, 0x62, 0xc8, 0xad, 0x04, 0x31, 0xe9, 0xb0, 0x24,
+    0xf6, 0x74, 0x92, 0xed, 0x54, 0x3a, 0x50, 0x50, 0x3f, 0x02, 0x33, 0xcf, 0x20, 0x53, 0xcf, 0xc3,
+    0xec, 0x01, 0x58, 0x9c, 0x46, 0x87, 0x50, 0xaf, 0xc2, 0x62, 0xc5, 0xf9, 0x49, 0xad, 0xae, 0xef,
+    0x58, 0x73, 0x6b, 0xf9, 0x31, 0x80, 0x9d, 0x37, 0x0c, 0x33, 0x76, 0xe7, 0xb1, 0x77, 0x0f, 0x64,
+    0xd7, 0xf5, 0x7d, 0x6c, 0xbe, 0x6b, 0x0e, 0x80, 0x3d, 0xb7, 0x0e, 0x9c, 0xd5, 0x73, 0x8a, 0xfa,
+    0x52, 0xf7, 0x32, 0x75, 0xa5, 0xdf, 0x25, 0x90, 0x1d, 0x81, 0xbe, 0x8b, 0x50, 0x43, 0x97, 0x42,
+    0x66, 0x28, 0x39, 0x6d, 0x31, 0x27, 0x59, 0x45, 0xda, 0xcf, 0x14, 0xa0, 0x12, 0x83, 0x60, 0xdb,
+    0xf3, 0xb5, 0x87, 0x8a, 0xab, 0xc8, 0xec, 0x0b, 0xc8, 0xb1, 0xa7, 0x60, 0xe2, 0x15, 0x54, 0xb5,
+    0x82, 0xc4, 0x9a, 0x85, 0x05, 0xa6, 0x2a, 0x55, 0xe7, 0xe6, 0xaf, 0xfd, 0xf0, 0xb2, 0xef, 0x7d,
+    0xfb, 0xc5, 0x1f, 0xc4, 0x3b, 0x3f, 0xd7, 0xcb, 0xd8, 0xdd, 0xf3, 0xff, 0x7e, 0x20, 0x2f, 0xdf,
+    0x50, 0xe2, 0xec, 0x3b, 0x13, 0x4d, 0xec, 0xbb, 0xbd, 0xff, 0xe2, 0xbe, 0x11, 0xe7, 0xae, 0xc2,
+    0xa0, 0x3e, 0xdf, 0xcb, 0x6b, 0xe8, 0xda, 0x8c, 0x5a, 0x76, 0x39, 0x14, 0xcf, 0x4e, 0x65, 0x3c,
+    0x19, 0x00, 0x8b, 0x12, 0x69, 0x09, 0xac, 0xc4, 0x22, 0x62, 0x81, 0xb6, 0xb6, 0x94, 0x98, 0x44,
+    0x6b, 0x62, 0x12, 0xa0, 0xda, 0x43, 0xa2, 0x05, 0x98, 0x7c, 0x16, 0x79, 0xfb, 0x31, 0x98, 0x3c,
+    0x80, 0xb2, 0x0e, 0xd5, 0x2a, 0x71, 0xb9, 0xa2, 0xbf, 0xf2, 0xe1, 0xff, 0x75, 0xda, 0x57, 0x5f,
+    0x63, 0x97, 0xd9, 0x79, 0xfd, 0x72, 0xc6, 0xee, 0x9a, 0xf8, 0xff, 0x03, 0xd9, 0x79, 0xdd, 0x10,
+    0x63, 0x3b, 0x92, 0xd0, 0xba, 0xff, 0x8e, 0xfe, 0x4b, 0xfa, 0x56, 0x39, 0xdf, 0x28, 0x94, 0xdc,
+    0x8d, 0xae, 0xef, 0x42, 0xdf, 0xc5, 0xa8, 0xe1, 0x2b, 0xc0, 0x1f, 0x6e, 0x0b, 0xd0, 0x71, 0xfa,
+    0x0a, 0x0b, 0xa9, 0xd0, 0x4b, 0x4e, 0x5e, 0x92, 0xcf, 0x15, 0x6d, 0xe1, 0x45, 0x2c, 0x8a, 0x14,
+    0x60, 0x13, 0x14, 0x02, 0xca, 0x81, 0x85, 0x03, 0x70, 0xe8, 0x11, 0xe4, 0xd0, 0x73, 0x28, 0xeb,
+    0xd0, 0x68, 0x88, 0x99, 0x9d, 0x77, 0x76, 0x8c, 0x7c, 0xa9, 0x72, 0x13, 0xc0, 0xce, 0x9b, 0x4f,
+    0x63, 0xec, 0x8e, 0x37, 0xff, 0x6d, 0x20, 0xaf, 0x7c, 0x69, 0x3d, 0x9b, 0x6e, 0x7d, 0x23, 0xd1,
+    0xc4, 0xf6, 0xd2, 0x7b, 0xfa, 0x47, 0xf5, 0x9f, 0x77, 0x2d, 0xf3, 0xd6, 0x3b, 0x9e, 0x03, 0xfd,
+    0xef, 0x47, 0x9d, 0x72, 0x25, 0x78, 0xfd, 0x20, 0x31, 0xda, 0x71, 0x00, 0x41, 0x4c, 0x94, 0x0a,
+    0xd3, 0x71, 0xe2, 0x1d, 0xc2, 0xa9, 0xa6, 0xbf, 0x88, 0x41, 0x3a, 0xb5, 0xd0, 0xfa, 0xbc, 0x03,
+    0x88, 0x4d, 0xd7, 0x50, 0x1a, 0x82, 0x39, 0xe4, 0xd0, 0xa3, 0xb0, 0xff, 0x31, 0xb0, 0x2e, 0x41,
+    0x40, 0x70, 0x7c, 0x46, 0x6f, 0x5f, 0xfd, 0xbf, 0x2b, 0xb7, 0xc8, 0x93, 0xb0, 0xff, 0xe0, 0xe7,
+    0x38, 0xfd, 0xea, 0xbb, 0x4f, 0x0e, 0x44, 0x9e, 0x06, 0x75, 0x3e, 0xec, 0xbf, 0x63, 0x68, 0x4d,
+    0xf7, 0x72, 0xfe, 0xae, 0x6f, 0xa5, 0x7f, 0x8e, 0x76, 0x25, 0xf1, 0x87, 0x53, 0xaf, 0x49, 0x40,
+    0xd8, 0x08, 0x9d, 0xcd, 0x30, 0x77, 0xe8, 0x6d, 0x4c, 0x14, 0xd2, 0x37, 0x3c, 0x88, 0x52, 0xd2,
+    0x21, 0x98, 0x39, 0x41, 0xf8, 0x26, 0xc0, 0x7f, 0x43, 0x78, 0x39, 0x11, 0x4c, 0xf2, 0x14, 0x80,
+    0xb8, 0x06, 0x6f, 0xfd, 0x0c, 0xde, 0x7c, 0x0a, 0xf0, 0x68, 0x04, 0xcc, 0x1e, 0x3e, 0xea, 0x5d,
+    0xbf, 0x61, 0xfb, 0xc2, 0x3d, 0x6f, 0x5c, 0xeb, 0xa9, 0xf5, 0x5f, 0x8f, 0x5a, 0x26, 0xd1, 0x8a,
+    0x8f, 0xbb, 0x6f, 0x2e, 0xa1, 0xce, 0x87, 0xdd, 0x37, 0xf6, 0xf4, 0xe6, 0x7a, 0xf8, 0x4a, 0xdf,
+    0x68, 0x36, 0x01, 0xd1, 0x75, 0x26, 0x6a, 0xf9, 0xc7, 0x50, 0x6e, 0x2f, 0xd8, 0x06, 0xda, 0x85,
+    0xf1, 0x5d, 0x3b, 0xf9, 0xfe, 0x1f, 0x7e, 0x95, 0x3f, 0xbe, 0xe6, 0xb3, 0x4c, 0xee, 0x7f, 0x13,
+    0x4c, 0x80, 0xb2, 0x01, 0x2a, 0x7d, 0x62, 0x1b, 0x88, 0x69, 0x20, 0x36, 0x00, 0x69, 0x80, 0x0d,
+    0xc0, 0x86, 0x1d, 0x23, 0x48, 0x86, 0x49, 0x9f, 0x36, 0x99, 0x23, 0x26, 0x40, 0x6c, 0x88, 0x98,
+    0x10, 0xe2, 0x46, 0x22, 0xd8, 0xc8, 0x36, 0x18, 0x5c, 0x05, 0x62, 0xf1, 0x33, 0xf4, 0x9f, 0xb2,
+    0x2c, 0xba, 0xe1, 0xa9, 0x4f, 0x97, 0xc6, 0xd6, 0x7f, 0x3d, 0x92, 0x97, 0x3e, 0x37, 0xc0, 0x12,
+    0x20, 0xaf, 0x6f, 0xbf, 0x90, 0x8d, 0x77, 0x4c, 0xf3, 0xd3, 0x4b, 0xbb, 0xbd, 0xc2, 0x90, 0x7f,
+    0x79, 0xef, 0x4a, 0xef, 0x6a, 0x27, 0xa3, 0x21, 0xb3, 0x1c, 0x55, 0xfa, 0x00, 0x64, 0x96, 0x23,
+    0xa6, 0x86, 0x92, 0x64, 0xd3, 0x87, 0xee, 0xf9, 0x1b, 0x0e, 0xbc, 0xf0, 0x0a, 0xc3, 0x83, 0x73,
+    0x44, 0xf3, 0x7b, 0xc0, 0xd4, 0x11, 0xdb, 0x48, 0x47, 0x80, 0x48, 0x08, 0xd2, 0x21, 0x6c, 0x4b,
+    0xe0, 0xce, 0xbf, 0xc3, 0xb6, 0xf0, 0x26, 0x15, 0xde, 0x86, 0xe9, 0x77, 0x8d, 0xf6, 0x50, 0x0a,
+    0xd6, 0x5c, 0x08, 0x19, 0x8d, 0x52, 0x90, 0xf5, 0x39, 0x63, 0xf5, 0x68, 0xfd, 0x36, 0x80, 0x2d,
+    0x77, 0xcf, 0x2c, 0x05, 0xb2, 0xe1, 0xa6, 0x27, 0x01, 0xd8, 0xf0, 0xab, 0xbd, 0xc3, 0x85, 0x41,
+    0xbd, 0x23, 0xdb, 0xe3, 0x23, 0x78, 0xd0, 0xbd, 0x11, 0xba, 0xb7, 0x82, 0xa9, 0x82, 0x6d, 0xa0,
+    0x1c, 0x61, 0xdf, 0x53, 0xcf, 0x72, 0xf4, 0x8d, 0xfd, 0xfc, 0xca, 0x15, 0x9a, 0x2b, 0x3e, 0xbd,
+    0x8e, 0xe5, 0xab, 0x4a, 0x40, 0x08, 0x92, 0x0e, 0xdb, 0x00, 0xd3, 0xe8, 0x10, 0xbe, 0x53, 0xc0,
+    0xf6, 0x48, 0x34, 0x76, 0xc2, 0x77, 0xa6, 0x91, 0x1e, 0x40, 0x73, 0xad, 0x44, 0xa3, 0x2a, 0x9b,
+    0x85, 0xe5, 0xa7, 0x03, 0x06, 0xc7, 0x81, 0x62, 0xb7, 0x5c, 0xb0, 0xf7, 0x0b, 0xdd, 0xbf, 0xdf,
+    0xcc, 0x75, 0x00, 0xfa, 0xf5, 0x3b, 0xce, 0x4f, 0xf2, 0xc6, 0xb5, 0x3d, 0x59, 0x1b, 0x36, 0x3e,
+    0xdd, 0x37, 0x9a, 0x2d, 0x89, 0x08, 0xe4, 0x4e, 0x41, 0xf5, 0x5d, 0x90, 0x2e, 0xdc, 0x40, 0xd9,
+    0x10, 0x1c, 0xc3, 0x6b, 0x8f, 0xbf, 0xc4, 0x59, 0x1b, 0xa6, 0xd9, 0xf4, 0xc1, 0x8b, 0x29, 0x9d,
+    0xf7, 0x07, 0x78, 0x3d, 0x2b, 0x52, 0x61, 0x52, 0x00, 0x9d, 0x26, 0x74, 0x52, 0xd3, 0x09, 0x96,
+    0x9e, 0xbe, 0x09, 0xda, 0xda, 0x6b, 0x3d, 0x1b, 0x09, 0x00, 0x09, 0x50, 0x12, 0x02, 0x21, 0xaa,
+    0x74, 0x2a, 0xe8, 0xc4, 0x25, 0x5c, 0x87, 0xfe, 0xc1, 0x7e, 0x73, 0xcd, 0x7d, 0x57, 0xad, 0x1c,
+    0x68, 0x26, 0x6c, 0x77, 0xc3, 0xcd, 0x4f, 0x03, 0xd0, 0xbf, 0xba, 0xbb, 0x94, 0xef, 0x33, 0x9f,
+    0xd7, 0x9e, 0x83, 0xe0, 0x43, 0x7e, 0x2d, 0xf8, 0xa7, 0xa0, 0x4c, 0x2d, 0x71, 0x44, 0x25, 0x44,
+    0x0b, 0x55, 0xa4, 0x72, 0x80, 0xb5, 0xdb, 0xce, 0x64, 0x60, 0xe3, 0xaf, 0x22, 0xda, 0x4f, 0x4f,
+    0x51, 0x3a, 0x9c, 0xd9, 0xb4, 0x9d, 0xb7, 0x95, 0x3f, 0x52, 0x87, 0xb6, 0x16, 0x6b, 0x63, 0xac,
+    0x89, 0x40, 0x2c, 0x5a, 0x83, 0xd6, 0xd2, 0xfe, 0x3f, 0x3a, 0x02, 0x45, 0xcb, 0xf1, 0xd3, 0x40,
+    0xe1, 0x79, 0xe0, 0x29, 0x08, 0xc0, 0xd1, 0xe0, 0xfb, 0x9c, 0x35, 0xb6, 0x6e, 0xe6, 0x93, 0xc0,
+    0x0e, 0x00, 0x07, 0x60, 0xe7, 0xb5, 0x3d, 0xae, 0x93, 0x91, 0x4f, 0x2d, 0xdb, 0x50, 0xb8, 0x14,
+    0xad, 0xc1, 0x2f, 0xa1, 0x4a, 0xef, 0x47, 0x39, 0x99, 0xc4, 0x61, 0x89, 0xd1, 0x8e, 0xe5, 0xf0,
+    0xee, 0x37, 0xc9, 0x98, 0x43, 0xac, 0x7e, 0xcf, 0x2f, 0x93, 0xe9, 0x1e, 0x02, 0x13, 0x82, 0x8d,
+    0x41, 0xa2, 0x64, 0x10, 0x81, 0x8d, 0x11, 0x1b, 0xa7, 0xd9, 0xbe, 0x63, 0xd8, 0x88, 0xe9, 0xa3,
+    0xd3, 0x3c, 0xf3, 0xc0, 0x8b, 0x3c, 0x75, 0xff, 0xf3, 0xbc, 0xf1, 0xcc, 0x1e, 0x2a, 0xb3, 0x0b,
+    0x14, 0xba, 0x1c, 0x72, 0x79, 0x85, 0x52, 0x06, 0x4d, 0x8c, 0x22, 0x42, 0x49, 0x9c, 0xac, 0x23,
+    0x21, 0xd8, 0x28, 0xd9, 0xa7, 0x32, 0x0e, 0x8b, 0x53, 0x60, 0x54, 0x33, 0x7d, 0xf9, 0x5a, 0x8b,
+    0xda, 0xdc, 0x7d, 0xf6, 0x7d, 0xf7, 0xbe, 0x7e, 0x2c, 0x74, 0x13, 0x6d, 0x14, 0x7c, 0xbf, 0xcb,
+    0xfe, 0x8e, 0xce, 0x38, 0x88, 0x38, 0x90, 0x29, 0x81, 0xbf, 0x0c, 0x69, 0x6a, 0x43, 0x2c, 0x28,
+    0x85, 0x69, 0xcc, 0xb3, 0x62, 0xec, 0x42, 0xba, 0x4b, 0x43, 0xd8, 0xb8, 0xb6, 0x24, 0xd9, 0xc9,
+    0x92, 0x70, 0x6a, 0x96, 0x84, 0x54, 0xad, 0x85, 0xb9, 0xa9, 0x05, 0xfe, 0xf5, 0xff, 0x3e, 0xcc,
+    0xe4, 0xbe, 0x37, 0x39, 0x73, 0x4b, 0x0f, 0x5d, 0x3d, 0x1e, 0x8d, 0xd9, 0x79, 0x9e, 0xbb, 0x7f,
+    0x1f, 0xe7, 0x7e, 0x64, 0x1b, 0x83, 0x23, 0x7d, 0x2c, 0xcc, 0x87, 0xcc, 0x97, 0x03, 0x72, 0xbe,
+    0xd0, 0xdf, 0x2d, 0x29, 0xa0, 0x06, 0x34, 0x8e, 0x23, 0x0b, 0x87, 0x50, 0x19, 0x07, 0x22, 0x01,
+    0x23, 0xb8, 0x2e, 0xf8, 0x19, 0xb5, 0x7e, 0xcb, 0xda, 0xbd, 0x97, 0x02, 0xf7, 0xba, 0xcf, 0x7d,
+    0x66, 0x98, 0xfa, 0x3c, 0xeb, 0xfa, 0x46, 0xdc, 0xd3, 0x11, 0x05, 0x4e, 0x1e, 0x95, 0x5b, 0x09,
+    0xa6, 0x9e, 0x2c, 0x92, 0x0a, 0x6a, 0x03, 0xcb, 0xea, 0x4d, 0xab, 0x00, 0xc1, 0x5a, 0x83, 0xc2,
+    0x24, 0x7e, 0x83, 0xc5, 0x88, 0x4e, 0xcc, 0x40, 0xe2, 0x0e, 0xda, 0x61, 0x5b, 0x79, 0x43, 0x8c,
+    0xc5, 0xcf, 0x84, 0xbc, 0xef, 0x23, 0x25, 0x06, 0x4a, 0x7d, 0xf8, 0xc5, 0x65, 0x90, 0x29, 0x24,
+    0x59, 0x4c, 0x37, 0xa8, 0x4e, 0x2f, 0xf2, 0xf0, 0xcf, 0x8e, 0xf1, 0xd0, 0xb3, 0x65, 0x76, 0xef,
+    0x5b, 0xe4, 0x03, 0x5b, 0x35, 0x9f, 0xba, 0x3c, 0x87, 0x23, 0xb5, 0x54, 0x0e, 0x9b, 0xd8, 0x8e,
+    0x23, 0xe0, 0x28, 0x50, 0x92, 0x90, 0x00, 0xcd, 0x48, 0x5f, 0x2f, 0x17, 0x00, 0xf7, 0xba, 0x5d,
+    0xa5, 0x50, 0x3b, 0x9e, 0xfe, 0xb5, 0x7c, 0xa9, 0x88, 0xa0, 0x40, 0xfb, 0xe0, 0x2f, 0x03, 0x53,
+    0x4b, 0xcd, 0x66, 0xa9, 0x50, 0x00, 0x3a, 0x98, 0x62, 0x71, 0x62, 0x9c, 0xc9, 0x63, 0x53, 0x64,
+    0x33, 0x2e, 0x2b, 0x46, 0x06, 0x90, 0xae, 0x21, 0xac, 0x93, 0x49, 0xe7, 0x37, 0x35, 0x12, 0x03,
+    0x31, 0xd8, 0x90, 0x7c, 0x3e, 0xa4, 0x70, 0xc6, 0xa9, 0x88, 0x69, 0x60, 0xa2, 0x2a, 0x54, 0x66,
+    0x70, 0x1c, 0xc3, 0xf4, 0x74, 0x9d, 0xef, 0xde, 0x37, 0xc5, 0x4f, 0x9e, 0xb1, 0x6c, 0x5c, 0x57,
+    0xe4, 0xca, 0x8b, 0x84, 0x4d, 0x2b, 0x0d, 0xd1, 0x62, 0x15, 0xa7, 0x4b, 0x81, 0xf2, 0x40, 0x27,
+    0x72, 0x88, 0x23, 0x28, 0x27, 0x2d, 0x71, 0x0c, 0xb8, 0x8e, 0xe0, 0x67, 0xec, 0xfa, 0x7f, 0xf8,
+    0xf5, 0x95, 0xfd, 0x6e, 0x71, 0x59, 0x84, 0x72, 0xf3, 0x97, 0xb4, 0xa8, 0xb5, 0xe3, 0x83, 0x53,
+    0x48, 0x9d, 0xd8, 0x74, 0x38, 0xad, 0xa0, 0x94, 0xa0, 0x17, 0x0f, 0xf2, 0xc4, 0x03, 0x0f, 0xf3,
+    0x8f, 0x3f, 0x3b, 0xc2, 0xa4, 0x9c, 0x42, 0x57, 0x06, 0xce, 0xec, 0x1e, 0xe7, 0xaa, 0xcb, 0x37,
+    0xd0, 0xbf, 0xe1, 0x5c, 0x6c, 0x26, 0x07, 0x12, 0x27, 0x66, 0x21, 0x21, 0x22, 0x21, 0x22, 0x8d,
+    0xc4, 0xf4, 0x62, 0x83, 0x12, 0x83, 0x02, 0x94, 0xeb, 0x51, 0xad, 0x5a, 0xbe, 0xf5, 0xf7, 0x65,
+    0x0e, 0xcd, 0xaf, 0xe1, 0x1b, 0xb7, 0x6d, 0x61, 0x53, 0xdf, 0x01, 0xe2, 0x50, 0x13, 0xeb, 0x6e,
+    0xa2, 0xb9, 0x37, 0x80, 0xe3, 0x49, 0x1e, 0x91, 0x94, 0xfa, 0x6b, 0x95, 0x24, 0x0c, 0xa5, 0x40,
+    0x04, 0xc7, 0x01, 0xd7, 0x91, 0x15, 0x6b, 0x86, 0x67, 0xce, 0x70, 0x73, 0xa7, 0x9e, 0xa7, 0x4d,
+    0xf9, 0xd5, 0x73, 0x40, 0x27, 0x84, 0xcd, 0xc9, 0x27, 0x9a, 0x30, 0x01, 0x82, 0x49, 0xf9, 0x8f,
+    0x05, 0xa5, 0xd1, 0xf5, 0xc3, 0xfc, 0xe3, 0xf7, 0x7f, 0xc8, 0x9f, 0x3c, 0xd6, 0x83, 0xb7, 0xf5,
+    0xcb, 0xac, 0x1e, 0x7b, 0x0f, 0x91, 0x11, 0x1e, 0xdc, 0xf3, 0x1c, 0x6f, 0xfd, 0xcd, 0xb7, 0xf8,
+    0xd2, 0x55, 0x4f, 0xd2, 0xb5, 0xe9, 0xa2, 0x94, 0xb6, 0x47, 0x69, 0x24, 0x22, 0x39, 0xd5, 0x44,
+    0x7c, 0x04, 0x41, 0xa1, 0x51, 0x1e, 0xfc, 0xdd, 0x3f, 0xcf, 0x12, 0x66, 0xcf, 0x66, 0xfb, 0x6d,
+    0x57, 0xd2, 0xb7, 0xf8, 0x02, 0x8b, 0x0b, 0x45, 0x0a, 0xcb, 0x47, 0xc8, 0xd6, 0xde, 0xc6, 0xb7,
+    0x71, 0x12, 0xb4, 0x44, 0xb5, 0xfe, 0x17, 0x9d, 0x9a, 0x97, 0x6e, 0x93, 0x2b, 0xa5, 0xd5, 0xf2,
+    0xde, 0x5e, 0xbd, 0xca, 0x9d, 0x7c, 0x65, 0x7c, 0xf8, 0x94, 0xf5, 0x3a, 0x9f, 0x14, 0x3d, 0x1a,
+    0xb4, 0x9f, 0x94, 0xa5, 0x36, 0x5c, 0xc2, 0x4a, 0x1d, 0x15, 0xf0, 0xec, 0xbf, 0x3e, 0xc3, 0x77,
+    0x9f, 0x1d, 0xe0, 0xcc, 0xdf, 0xbc, 0x9d, 0xf7, 0xff, 0xda, 0xc7, 0xc9, 0xf9, 0xc9, 0xb7, 0xb5,
+    0xf0, 0xc3, 0x3c, 0xfe, 0xc0, 0x39, 0x7c, 0xe3, 0xfe, 0x4f, 0xf2, 0xc5, 0x55, 0x47, 0xb1, 0xc5,
+    0x15, 0x2d, 0x66, 0xac, 0x50, 0x88, 0x48, 0x5a, 0x2d, 0x5a, 0x40, 0xa3, 0x5d, 0x87, 0x57, 0x5e,
+    0x9d, 0x67, 0x31, 0x1a, 0xe4, 0xb7, 0x7f, 0xf3, 0x7d, 0x0c, 0x66, 0xea, 0x94, 0xe7, 0x0f, 0x53,
+    0x28, 0xe6, 0x61, 0xef, 0x3f, 0x63, 0xe7, 0xf6, 0x42, 0xb7, 0x86, 0xbe, 0xde, 0xb4, 0x10, 0x63,
+    0xe9, 0xd0, 0x4b, 0x88, 0xef, 0x40, 0xc6, 0x63, 0xb9, 0x8e, 0xca, 0xf3, 0x6b, 0xfd, 0x6e, 0xb7,
+    0xb5, 0x2d, 0xa2, 0x96, 0x64, 0x60, 0x6c, 0x80, 0x22, 0x22, 0x9e, 0x3a, 0xc4, 0xf7, 0x1f, 0x9a,
+    0x61, 0xe5, 0xa5, 0x9f, 0xe3, 0xe3, 0x9f, 0xf8, 0x38, 0xa7, 0x75, 0xc1, 0x4a, 0x0f, 0x46, 0x5d,
+    0x58, 0xdb, 0x0d, 0x57, 0xfc, 0xc6, 0x65, 0x54, 0x2f, 0xde, 0xce, 0xae, 0xa7, 0x5f, 0x45, 0x3b,
+    0x5e, 0xa2, 0x5d, 0x9c, 0x04, 0x8a, 0xd2, 0x9c, 0x28, 0xcd, 0xc1, 0x63, 0x96, 0xcd, 0x1b, 0x86,
+    0x38, 0xed, 0xd4, 0x90, 0xf2, 0xde, 0x07, 0xf1, 0x33, 0x35, 0xd4, 0x5b, 0x8f, 0x63, 0x8f, 0xec,
+    0x85, 0x48, 0x43, 0xa1, 0xa7, 0x5d, 0x49, 0xb6, 0x34, 0xd2, 0x04, 0xd5, 0xe6, 0xba, 0x4a, 0xe1,
+    0x3a, 0x8e, 0xed, 0x75, 0x91, 0x60, 0xb9, 0x9b, 0xcd, 0x75, 0x14, 0x73, 0x61, 0x9b, 0x5a, 0xd0,
+    0x0c, 0x9f, 0xf0, 0xe8, 0xd3, 0xfb, 0x31, 0xcb, 0xdf, 0xcb, 0x07, 0x2e, 0xfb, 0x28, 0x6b, 0x7a,
+    0xa0, 0xa8, 0xc0, 0xd3, 0x90, 0x77, 0xe0, 0xde, 0x07, 0xc7, 0x79, 0xee, 0x65, 0x4d, 0x39, 0x7a,
+    0x2f, 0x7f, 0xff, 0x7a, 0x89, 0xcd, 0x1f, 0xaa, 0x83, 0xca, 0xa4, 0x94, 0x5c, 0x2d, 0x31, 0x0f,
+    0xc7, 0xd1, 0x1c, 0x3c, 0x5c, 0x61, 0x59, 0xaf, 0xe2, 0x8c, 0xd5, 0x75, 0xe2, 0xe3, 0xbb, 0x50,
+    0xf6, 0x18, 0xba, 0x72, 0x14, 0xe2, 0xe3, 0xe8, 0x5e, 0x17, 0xfa, 0xbb, 0xc1, 0xd7, 0x69, 0x80,
+    0x69, 0x96, 0xc8, 0x27, 0xf0, 0xf5, 0xe6, 0x53, 0x04, 0xa5, 0x9c, 0x6e, 0xd7, 0x71, 0x29, 0x2a,
+    0xad, 0x12, 0x1c, 0x22, 0x49, 0xb4, 0x6a, 0x51, 0x03, 0x0b, 0xca, 0x42, 0x5c, 0x63, 0xe7, 0xbe,
+    0x32, 0x83, 0xeb, 0x2f, 0x61, 0xeb, 0xfa, 0x15, 0x94, 0xdc, 0x64, 0x1f, 0x0d, 0xfc, 0xd5, 0xdf,
+    0x1e, 0xe0, 0xc1, 0xfd, 0xfd, 0xbc, 0xbd, 0xff, 0x11, 0xf2, 0xf9, 0x5e, 0xe6, 0xb8, 0x1a, 0x6a,
+    0x8f, 0x40, 0xd7, 0x8a, 0x14, 0xc0, 0xd2, 0xea, 0x47, 0x04, 0xb2, 0xae, 0x61, 0xb4, 0x77, 0x81,
+    0xa2, 0xaa, 0x53, 0x3e, 0x78, 0x98, 0x4c, 0x21, 0xc6, 0xf1, 0x23, 0x18, 0xea, 0x05, 0xd7, 0x87,
+    0xdc, 0x08, 0x2a, 0xbf, 0x0a, 0x2a, 0x7b, 0x90, 0xda, 0xc1, 0xd4, 0xe7, 0x4e, 0x5e, 0x49, 0x2b,
+    0x25, 0xe0, 0x78, 0x59, 0xad, 0xb2, 0x5e, 0xbe, 0xb3, 0x44, 0x45, 0xea, 0x28, 0x5b, 0x69, 0x73,
+    0x2c, 0x13, 0x40, 0x65, 0x96, 0xd8, 0x1f, 0xa6, 0x67, 0xf9, 0x5a, 0xfa, 0x7c, 0xc8, 0xa4, 0x7e,
+    0x77, 0x64, 0x7c, 0x91, 0xe9, 0x28, 0xc7, 0x1f, 0x7d, 0xb6, 0x97, 0xb3, 0x7a, 0x9e, 0xe0, 0xa1,
+    0x3f, 0xbb, 0x9c, 0x89, 0x60, 0x82, 0xf2, 0x54, 0x39, 0xd5, 0xbe, 0x24, 0x92, 0x77, 0x6c, 0x6c,
+    0xad, 0xa5, 0x34, 0x90, 0xa7, 0xb4, 0x62, 0x05, 0xe2, 0x17, 0xc9, 0x14, 0x5d, 0x9c, 0x5c, 0x16,
+    0xb2, 0x03, 0x90, 0x2d, 0xa2, 0xfc, 0x6e, 0xb4, 0x6b, 0x51, 0x32, 0x0f, 0x85, 0xd1, 0xa5, 0x55,
+    0xa8, 0x9c, 0xa4, 0xbe, 0x15, 0x50, 0x26, 0xa8, 0x6b, 0xa9, 0xd5, 0x17, 0x97, 0xcc, 0x30, 0x21,
+    0x04, 0x53, 0x60, 0x42, 0xc4, 0x34, 0x40, 0x42, 0x2a, 0x73, 0x65, 0xdc, 0xc2, 0x20, 0x7d, 0xa5,
+    0xa1, 0x56, 0xf4, 0x03, 0x78, 0xf8, 0xf1, 0x69, 0x3e, 0xf8, 0x4b, 0x03, 0x0c, 0x74, 0xc1, 0x15,
+    0x1f, 0xfb, 0x28, 0x71, 0x58, 0xe5, 0xe0, 0xce, 0x7f, 0x61, 0x7e, 0xa1, 0xd1, 0x2e, 0x6b, 0x91,
+    0x8e, 0x67, 0xb2, 0x4f, 0xc2, 0xb1, 0x34, 0xa2, 0x32, 0x64, 0x8a, 0x79, 0x9c, 0x4c, 0x06, 0x14,
+    0x58, 0xa3, 0x98, 0xde, 0x3b, 0xc3, 0x9b, 0x0f, 0xed, 0xe6, 0xc8, 0xa3, 0x4f, 0x20, 0x33, 0x2f,
+    0xbe, 0xb3, 0x1a, 0x97, 0x25, 0x4b, 0x21, 0x4a, 0x63, 0x85, 0xba, 0x6b, 0x6c, 0xa6, 0x62, 0x8d,
+    0x45, 0xb9, 0xa9, 0xfa, 0x24, 0x46, 0xa2, 0x69, 0x5a, 0x31, 0x4e, 0x2c, 0x36, 0xac, 0xe0, 0xe7,
+    0x4e, 0xc5, 0xc9, 0x16, 0x08, 0x0c, 0xe4, 0x74, 0xe2, 0x77, 0x95, 0xc8, 0x72, 0x60, 0x41, 0x71,
+    0x26, 0x70, 0xdf, 0x7d, 0xf7, 0x21, 0x22, 0xe8, 0x8c, 0x8f, 0xb4, 0xba, 0x26, 0x69, 0xb5, 0x27,
+    0x36, 0xd5, 0x4c, 0x93, 0x40, 0x4a, 0x12, 0xc9, 0x9a, 0x12, 0x29, 0x01, 0x2b, 0x68, 0xad, 0x28,
+    0x0e, 0x67, 0x71, 0x7d, 0x8b, 0x76, 0x84, 0xc6, 0xdc, 0x3c, 0xd9, 0x1e, 0x67, 0x29, 0x02, 0x51,
+    0x4b, 0xb4, 0x2c, 0x02, 0x46, 0x54, 0x59, 0xa3, 0x33, 0x6f, 0x47, 0x35, 0xb3, 0x74, 0xb2, 0x69,
+    0x40, 0x78, 0x14, 0xe2, 0x29, 0xc4, 0x2e, 0xd0, 0x95, 0x37, 0xe4, 0x3c, 0x4b, 0xb9, 0x11, 0x33,
+    0x1b, 0x42, 0x35, 0x9d, 0x3e, 0x54, 0xd0, 0x3c, 0xb0, 0xc7, 0x63, 0xeb, 0x65, 0xff, 0x8d, 0x3f,
+    0xf9, 0xe6, 0x9f, 0xa2, 0xbd, 0x2c, 0x6b, 0xce, 0xb9, 0x84, 0xbe, 0x81, 0x7c, 0x42, 0x1c, 0xe9,
+    0xa8, 0xd3, 0x5b, 0xd9, 0xbe, 0x03, 0x80, 0x2c, 0x7d, 0x2a, 0x47, 0x98, 0x3f, 0x52, 0xa5, 0x7b,
+    0xc8, 0xa7, 0xd0, 0xe7, 0xe2, 0x75, 0x79, 0x29, 0xb3, 0x4e, 0x0f, 0xd9, 0xb4, 0xe2, 0x4f, 0xe7,
+    0xcf, 0x7c, 0x1c, 0xe9, 0x29, 0x37, 0x53, 0x1a, 0xde, 0x17, 0x2e, 0x8e, 0xe3, 0x17, 0x7d, 0xa4,
+    0x89, 0x56, 0x35, 0x37, 0x88, 0x11, 0xd1, 0x38, 0x85, 0x2c, 0x03, 0xde, 0x14, 0xe5, 0xfa, 0x34,
+    0x13, 0x01, 0xc4, 0x31, 0x04, 0x59, 0x18, 0xbb, 0x60, 0x88, 0x1f, 0x7f, 0x6b, 0x9c, 0x75, 0x1f,
+    0xb9, 0x0b, 0xaf, 0x6f, 0x03, 0xc5, 0x91, 0xb3, 0xd8, 0x96, 0x7f, 0x91, 0xe2, 0xf0, 0x00, 0x56,
+    0xc2, 0xa5, 0xf5, 0x7a, 0x53, 0x1b, 0x9d, 0x0d, 0x0a, 0xda, 0xc0, 0x94, 0x08, 0xb5, 0xb9, 0x00,
+    0xbf, 0xe0, 0x24, 0xa6, 0xeb, 0x24, 0xb4, 0x6a, 0x09, 0xd8, 0x4e, 0x2b, 0x6d, 0x6b, 0x64, 0xaa,
+    0x5a, 0xb3, 0xe3, 0xfa, 0x8c, 0xb1, 0x17, 0xa6, 0xc3, 0x9a, 0x4c, 0xb4, 0x66, 0x34, 0x4f, 0x2d,
+    0x1d, 0x36, 0x88, 0x88, 0xa2, 0x2c, 0xeb, 0xbb, 0x67, 0x58, 0x19, 0xbf, 0xc4, 0xc2, 0xf4, 0x24,
+    0x93, 0xb3, 0xd3, 0xec, 0x9b, 0x8d, 0xa8, 0x14, 0x0b, 0x6c, 0xdd, 0xa6, 0xc9, 0x1e, 0xb1, 0x6c,
+    0x39, 0xf7, 0x26, 0xfa, 0x2a, 0xa3, 0x7c, 0xb8, 0xf7, 0x27, 0x88, 0xe3, 0x22, 0x4d, 0x9e, 0xd5,
+    0xe4, 0x5e, 0x36, 0x46, 0x59, 0x83, 0xb2, 0x29, 0x53, 0xee, 0x04, 0x63, 0x0d, 0x41, 0x25, 0xa0,
+    0x3a, 0x55, 0xa7, 0x6b, 0x28, 0x93, 0x36, 0x33, 0x3a, 0xb5, 0x65, 0x9b, 0x36, 0x94, 0x6a, 0x44,
+    0x5a, 0x66, 0x25, 0x22, 0xc7, 0x8e, 0x1f, 0x57, 0x6f, 0x39, 0x9f, 0x1c, 0x2b, 0x69, 0x6b, 0x38,
+    0xb7, 0x7b, 0x38, 0x73, 0x16, 0xa2, 0xdb, 0x6d, 0x4d, 0xad, 0x31, 0xa1, 0xa1, 0x3e, 0x5d, 0x27,
+    0x8a, 0x72, 0x0c, 0xac, 0x58, 0xc3, 0x5a, 0xbd, 0x97, 0xc1, 0xa3, 0x0f, 0xe0, 0x4c, 0xbe, 0x40,
+    0x50, 0x99, 0x60, 0xb6, 0x6a, 0xe9, 0x1a, 0x1d, 0x24, 0xbf, 0x26, 0x4b, 0xed, 0xd8, 0xd3, 0x9c,
+    0x2b, 0xb7, 0xf3, 0x89, 0xff, 0xec, 0x63, 0x95, 0xea, 0x28, 0xb2, 0x4c, 0xda, 0x59, 0x31, 0xed,
+    0x96, 0x50, 0xab, 0x49, 0x17, 0x23, 0x51, 0x9d, 0x60, 0xbe, 0x4e, 0x65, 0xaa, 0x46, 0xff, 0x68,
+    0x1e, 0xc7, 0x11, 0xc4, 0x9a, 0x25, 0xcd, 0x3c, 0xac, 0x05, 0x2b, 0xa8, 0x40, 0x20, 0x48, 0xca,
+    0x1e, 0x48, 0x2c, 0xa3, 0x11, 0xe8, 0xc7, 0x36, 0xdc, 0x59, 0xfe, 0xae, 0x5b, 0x9e, 0x10, 0xf1,
+    0xbb, 0xd5, 0x0f, 0xa3, 0x5a, 0x7c, 0xa5, 0x9b, 0xd5, 0x09, 0x95, 0x68, 0xd6, 0x12, 0x56, 0xf0,
+    0xf3, 0x21, 0xbe, 0x3f, 0x89, 0xcc, 0x1e, 0x46, 0x2a, 0x01, 0x03, 0x51, 0xcc, 0xa0, 0xa7, 0x31,
+    0x95, 0x7b, 0x98, 0x9e, 0x18, 0xe1, 0x70, 0xe9, 0x6a, 0x82, 0xc6, 0x0a, 0x4e, 0x73, 0x7f, 0xc4,
+    0x2f, 0xff, 0xa7, 0x59, 0xac, 0xdb, 0x9f, 0x16, 0x53, 0xd2, 0xd1, 0x98, 0x6b, 0x6a, 0xa1, 0xdd,
+    0xd7, 0x52, 0xa6, 0x46, 0xb4, 0x38, 0x4f, 0xa3, 0x96, 0x25, 0x0a, 0x72, 0xf4, 0xae, 0xf0, 0x71,
+    0xdc, 0x08, 0x31, 0x1d, 0x16, 0xd1, 0xaa, 0x6f, 0x04, 0x8c, 0x4d, 0x8a, 0x2a, 0x63, 0x9b, 0x14,
+    0x1e, 0x63, 0x55, 0x50, 0x6b, 0xb0, 0x1b, 0x94, 0xb8, 0x47, 0x5e, 0x1d, 0x90, 0xd3, 0x2e, 0xaa,
+    0x3e, 0x54, 0x9d, 0x0a, 0x83, 0xde, 0x51, 0xd7, 0x4f, 0x9c, 0x53, 0x81, 0xb5, 0x38, 0x9e, 0xc5,
+    0x09, 0xe7, 0xb1, 0x13, 0x0b, 0xb0, 0x00, 0x36, 0x48, 0x42, 0xa1, 0xf8, 0x02, 0x7d, 0x9a, 0xc1,
+    0xae, 0xc3, 0x2c, 0x2b, 0x3d, 0xc7, 0xba, 0x89, 0x47, 0x29, 0x8c, 0x81, 0xf5, 0x73, 0x48, 0x1c,
+    0xa0, 0xb4, 0x4a, 0xc9, 0x66, 0x02, 0x46, 0x68, 0x97, 0xb3, 0xca, 0x54, 0x30, 0x95, 0x59, 0x1a,
+    0x0b, 0x31, 0xb1, 0x1e, 0x41, 0xe7, 0x87, 0x28, 0x16, 0xe7, 0x70, 0x64, 0x3e, 0x05, 0x61, 0xdb,
+    0x1e, 0x9d, 0x96, 0xc7, 0x88, 0x45, 0xc5, 0xa9, 0x26, 0x4c, 0x3b, 0xb1, 0x5a, 0x2b, 0xfb, 0x67,
+    0x66, 0xbd, 0x47, 0x01, 0xdc, 0x8f, 0xfc, 0x78, 0x2f, 0x07, 0x3f, 0x50, 0x9c, 0xae, 0x4e, 0x67,
+    0x7e, 0xd0, 0xb3, 0xc2, 0x5c, 0x93, 0x78, 0x5a, 0x47, 0x93, 0xd9, 0x2b, 0x40, 0xc1, 0x49, 0xa8,
+    0x79, 0x2c, 0x28, 0xcf, 0x85, 0x42, 0x06, 0x0a, 0x3e, 0xd2, 0xb5, 0x06, 0x72, 0xc3, 0x28, 0x7f,
+    0x9a, 0x6a, 0xbd, 0x8c, 0xaa, 0x96, 0xc9, 0x14, 0x32, 0x78, 0x05, 0xbf, 0x1d, 0x5a, 0x34, 0x28,
+    0x53, 0x87, 0x70, 0x81, 0xb8, 0x3c, 0x4f, 0x6d, 0xc1, 0x26, 0xaf, 0x20, 0x8a, 0xa3, 0x64, 0xf3,
+    0x19, 0xdc, 0xe8, 0x28, 0x04, 0x8b, 0xe0, 0x06, 0xed, 0x28, 0xd7, 0xa1, 0xcd, 0x96, 0x6f, 0x44,
+    0x0a, 0x62, 0x69, 0x2d, 0x1b, 0xc7, 0xd0, 0x68, 0xa8, 0xdd, 0x63, 0x77, 0xcf, 0x3d, 0x05, 0x0a,
+    0x17, 0xe0, 0xc0, 0x53, 0x9e, 0x19, 0xdd, 0xa6, 0xbe, 0x59, 0x9d, 0x0e, 0xaf, 0x29, 0x0c, 0xa6,
+    0xdc, 0x48, 0x00, 0xe5, 0x42, 0xa6, 0x0b, 0xbc, 0x2e, 0x28, 0x0a, 0x0a, 0x05, 0xda, 0x05, 0x2f,
+    0x03, 0x8e, 0x87, 0xf2, 0x8b, 0x94, 0x0f, 0xee, 0xa7, 0x36, 0x35, 0x89, 0x58, 0x8b, 0x97, 0xf7,
+    0x71, 0x32, 0xe0, 0xc6, 0x0a, 0x31, 0x01, 0x71, 0xb5, 0x4a, 0xb0, 0xb0, 0x88, 0x09, 0x2c, 0xb8,
+    0x3d, 0x38, 0xb9, 0x33, 0xf0, 0x96, 0xf5, 0xa3, 0x5c, 0x0f, 0x4f, 0x37, 0x50, 0x8d, 0x23, 0x48,
+    0x5c, 0x41, 0x7b, 0x89, 0xe1, 0x4b, 0xb3, 0x9f, 0x2c, 0x69, 0xe3, 0xa1, 0xa9, 0x8d, 0x28, 0xe9,
+    0x38, 0x11, 0xb7, 0xc3, 0x95, 0xb1, 0xea, 0xf8, 0xf4, 0x9c, 0x73, 0x3f, 0x28, 0x9e, 0xff, 0x5d,
+    0x70, 0xdf, 0xf8, 0x0c, 0xac, 0xff, 0xe6, 0x8c, 0xec, 0x1d, 0x5b, 0xb6, 0xbb, 0x7c, 0x34, 0xbe,
+    0xaf, 0x50, 0x72, 0x3f, 0x96, 0xe8, 0x2e, 0x0d, 0x73, 0xda, 0x49, 0x98, 0xac, 0xe7, 0x26, 0x86,
+    0xa9, 0x9c, 0x94, 0x6b, 0x18, 0xd4, 0xe2, 0xeb, 0xd4, 0x26, 0x6b, 0xf4, 0xac, 0x1c, 0x48, 0x6a,
+    0x0d, 0x2b, 0x44, 0x95, 0x06, 0xc1, 0x6c, 0x05, 0xc1, 0x26, 0x85, 0x4f, 0xbe, 0x17, 0xaf, 0xcb,
+    0x07, 0xeb, 0xa2, 0x1c, 0xc1, 0x55, 0x0b, 0x10, 0xd4, 0x92, 0x5e, 0x99, 0x13, 0xa1, 0x33, 0x51,
+    0x1a, 0xe6, 0x53, 0x1f, 0xb2, 0xcd, 0xca, 0x32, 0x15, 0x20, 0x16, 0x08, 0x15, 0x84, 0xd2, 0x2a,
+    0x6f, 0x8c, 0x81, 0x6a, 0x4d, 0x5e, 0xdc, 0x7e, 0xcf, 0x39, 0x7f, 0x0b, 0x0f, 0x53, 0x7a, 0xdf,
+    0xef, 0xa1, 0xe3, 0xd2, 0x46, 0x00, 0xfe, 0xfa, 0x8b, 0x23, 0x55, 0x13, 0x39, 0x77, 0x94, 0xc7,
+    0x43, 0x51, 0xca, 0x24, 0x91, 0x43, 0x4c, 0x5a, 0x8b, 0x27, 0xe1, 0x33, 0x29, 0xb8, 0xa2, 0xf4,
+    0xf7, 0x08, 0xab, 0x5c, 0x7a, 0x57, 0x14, 0xc9, 0xe4, 0x34, 0x99, 0xbc, 0xc6, 0x2f, 0x38, 0xe4,
+    0x7a, 0x5d, 0xf2, 0x25, 0x9f, 0xc2, 0x60, 0x8e, 0x7c, 0x29, 0x87, 0x5f, 0xf0, 0xf0, 0x5c, 0xc1,
+    0xf3, 0x02, 0x5c, 0x35, 0x8f, 0x8a, 0x27, 0x51, 0x7a, 0x1e, 0x9d, 0x09, 0x50, 0x6e, 0xd8, 0x06,
+    0x61, 0x6d, 0x1b, 0x44, 0xd3, 0x37, 0x8c, 0x41, 0x85, 0xef, 0xd4, 0x46, 0x1c, 0xcb, 0xc4, 0xe4,
+    0x94, 0xfb, 0xad, 0xef, 0x1d, 0x7f, 0x38, 0xde, 0xf7, 0xfb, 0xb0, 0xea, 0xb7, 0xbe, 0x83, 0xde,
+    0x78, 0xcb, 0x6e, 0x0e, 0xff, 0x0f, 0xf8, 0x32, 0xcf, 0x33, 0x7b, 0x48, 0x76, 0x57, 0xa7, 0xed,
+    0x2d, 0x61, 0x25, 0x4a, 0x5e, 0x0b, 0x48, 0xda, 0x50, 0xb0, 0x71, 0xaa, 0x6a, 0xb3, 0xa4, 0xbd,
+    0x03, 0xe0, 0xe5, 0x55, 0x0b, 0x18, 0x12, 0xe1, 0xb8, 0x09, 0x81, 0x75, 0x3d, 0xd0, 0xda, 0xa2,
+    0x74, 0x84, 0xce, 0x04, 0xe9, 0x08, 0x51, 0x5e, 0x84, 0x72, 0x62, 0x50, 0x69, 0xeb, 0xa8, 0xf3,
+    0xb0, 0x3a, 0x41, 0xd8, 0x14, 0x44, 0xa0, 0x20, 0xb0, 0x2d, 0xdf, 0x30, 0x86, 0x78, 0x66, 0xce,
+    0xfd, 0xf1, 0xa6, 0x1d, 0xe5, 0x1f, 0x01, 0x34, 0x4a, 0x1b, 0xda, 0x2d, 0xd3, 0x85, 0xb5, 0xbf,
+    0x04, 0xc0, 0xd6, 0x3f, 0x3e, 0x5e, 0xaf, 0xcd, 0x98, 0x3f, 0x9f, 0x3f, 0x12, 0x3f, 0x91, 0x24,
+    0xb3, 0xb8, 0x0d, 0xa6, 0xd9, 0xbb, 0x6a, 0x6a, 0x47, 0xe2, 0x0e, 0x60, 0x51, 0x5b, 0x63, 0x36,
+    0x4c, 0xb5, 0x16, 0xb6, 0xe7, 0x49, 0x94, 0x24, 0x47, 0x96, 0x1e, 0x8c, 0xb4, 0xd6, 0x32, 0x4b,
+    0x5a, 0x4b, 0x88, 0x4d, 0x4c, 0xa9, 0xa1, 0x20, 0x68, 0x9b, 0x94, 0xb5, 0x50, 0x5e, 0xe4, 0xb5,
+    0xd7, 0x0f, 0x9e, 0x72, 0x2d, 0xc0, 0xae, 0xdf, 0x83, 0x4d, 0xb7, 0xbe, 0xde, 0x06, 0xb2, 0xf1,
+    0xc6, 0x47, 0xd9, 0x7d, 0x73, 0xd2, 0x43, 0x3d, 0xe3, 0x96, 0xb9, 0xb7, 0x83, 0xb2, 0xbd, 0x6e,
+    0xfe, 0xed, 0x70, 0x4e, 0xa9, 0x64, 0x23, 0x31, 0xa6, 0xad, 0x11, 0x1b, 0x2d, 0x05, 0x61, 0x3b,
+    0xcc, 0xae, 0x25, 0x64, 0xe7, 0xf7, 0x71, 0x87, 0x69, 0x46, 0x2d, 0x8d, 0x4a, 0x6b, 0x4e, 0xc7,
+    0xb0, 0x36, 0x99, 0x17, 0x5a, 0x54, 0xa0, 0xa0, 0x21, 0x09, 0xa0, 0x34, 0xad, 0xd4, 0xeb, 0x32,
+    0xf9, 0xd6, 0x78, 0xee, 0x77, 0x2e, 0xfd, 0xb3, 0x3d, 0x0b, 0x00, 0xa5, 0x8f, 0xde, 0xc6, 0x3b,
+    0x5e, 0x2b, 0x6c, 0xbc, 0x63, 0x9a, 0x97, 0x6f, 0x5e, 0x05, 0xc0, 0xaa, 0x6b, 0x7f, 0xfd, 0x99,
+    0xea, 0xb4, 0x7c, 0xaa, 0x32, 0x11, 0xc6, 0x09, 0x1d, 0x6f, 0x6e, 0xfc, 0xef, 0x18, 0x9d, 0xfe,
+    0xf4, 0x8e, 0xef, 0x92, 0x43, 0x69, 0x1f, 0x4c, 0xdc, 0x36, 0xa9, 0xe6, 0x41, 0x45, 0x92, 0x80,
+    0xa8, 0xb7, 0x41, 0x00, 0x04, 0x81, 0xcc, 0x1f, 0x3a, 0x9a, 0xfb, 0x83, 0xf3, 0xbe, 0x31, 0xf3,
+    0xfc, 0xee, 0x1b, 0xfa, 0x00, 0x38, 0xf5, 0xa3, 0x5f, 0x6c, 0x01, 0x71, 0x3a, 0x69, 0xe4, 0x9f,
+    0x3e, 0x3e, 0xcf, 0xce, 0xeb, 0x96, 0xf1, 0x9d, 0x27, 0x1f, 0x61, 0xe0, 0xa7, 0xa5, 0xbd, 0x1b,
+    0x2e, 0x0e, 0xa7, 0x9d, 0x8c, 0xf9, 0x90, 0x97, 0x4d, 0xe7, 0x75, 0x30, 0x57, 0xd5, 0x34, 0x01,
+    0x75, 0x32, 0x32, 0xd8, 0xd9, 0x69, 0x34, 0xed, 0x17, 0x3e, 0x9d, 0x1d, 0x48, 0x89, 0x97, 0x6a,
+    0x42, 0x6c, 0x02, 0xa2, 0xde, 0x01, 0x22, 0x4d, 0x23, 0x41, 0x28, 0x73, 0x87, 0x8e, 0xe4, 0x6e,
+    0xd8, 0xb4, 0x63, 0xf6, 0xaf, 0xf6, 0xfc, 0x61, 0x2f, 0x67, 0x6e, 0x7f, 0xe7, 0x0b, 0x51, 0xe7,
+    0xc4, 0x0f, 0xbe, 0xf3, 0x64, 0x95, 0x97, 0x6f, 0x2c, 0x71, 0xe5, 0x13, 0x13, 0x36, 0xff, 0x4f,
+    0x63, 0x2f, 0x6d, 0xbc, 0x60, 0x7a, 0xde, 0xf5, 0xcc, 0x45, 0x9e, 0x8f, 0x9f, 0x74, 0xc3, 0xe5,
+    0x24, 0x54, 0xdc, 0x2e, 0xb5, 0xef, 0xce, 0x46, 0xf4, 0x12, 0xa6, 0x7b, 0x42, 0xa3, 0xbb, 0x09,
+    0xc0, 0x58, 0x08, 0x40, 0x35, 0x7d, 0x22, 0x90, 0x16, 0xc5, 0x6a, 0x34, 0xd4, 0xd1, 0x83, 0xe3,
+    0xd9, 0xff, 0xb9, 0xf1, 0xae, 0xd9, 0xbf, 0xd8, 0xf7, 0x85, 0x5e, 0xb5, 0xee, 0xf6, 0xf9, 0x77,
+    0xf7, 0x7a, 0x7a, 0xf7, 0x17, 0x96, 0xb3, 0xf1, 0xab, 0xc9, 0xdb, 0xd3, 0xb7, 0xee, 0xec, 0xfd,
+    0xef, 0x7d, 0x23, 0xdc, 0x92, 0xeb, 0x57, 0x2b, 0xb5, 0xab, 0xd3, 0x74, 0xad, 0xda, 0x04, 0xf3,
+    0xc4, 0x06, 0x41, 0x93, 0x72, 0x73, 0x32, 0xc0, 0xd2, 0xe4, 0x17, 0x69, 0x88, 0x15, 0x54, 0x90,
+    0x46, 0xa7, 0x50, 0x92, 0xde, 0xae, 0x4d, 0x32, 0x77, 0xb5, 0xaa, 0x5e, 0x3c, 0x38, 0x9e, 0xfd,
+    0xec, 0x39, 0xff, 0x67, 0xe6, 0xf1, 0xbd, 0x5f, 0xe8, 0x65, 0xdd, 0x57, 0xe7, 0x7f, 0xce, 0x0b,
+    0x03, 0xd7, 0x0f, 0xb0, 0xf9, 0xae, 0xe4, 0xad, 0xd0, 0x6b, 0x5f, 0xec, 0x79, 0xff, 0xe0, 0x69,
+    0x72, 0x73, 0xbe, 0x5f, 0x5d, 0xe2, 0xe5, 0x94, 0xa7, 0x1d, 0xdd, 0x6e, 0x21, 0x35, 0x8b, 0xe7,
+    0x13, 0x8b, 0x69, 0x78, 0x27, 0x1d, 0xb7, 0x92, 0x0e, 0x20, 0x14, 0x54, 0xa8, 0x92, 0x3c, 0x11,
+    0x25, 0x77, 0x55, 0x4c, 0x0c, 0x51, 0xa4, 0xa6, 0xe6, 0xcb, 0x3c, 0xf0, 0xda, 0x81, 0xbe, 0x9b,
+    0x3e, 0x74, 0xcf, 0x91, 0x89, 0xd7, 0x6f, 0xea, 0x63, 0xc3, 0xf6, 0xb9, 0xff, 0xe0, 0x15, 0x8e,
+    0xeb, 0x86, 0xd9, 0x9c, 0x5e, 0xa4, 0x79, 0xe4, 0xaa, 0xfe, 0xe1, 0xb5, 0x17, 0xc6, 0xbf, 0xdb,
+    0x55, 0x52, 0x57, 0x78, 0x79, 0x39, 0x3b, 0x93, 0x07, 0xa5, 0x75, 0xfb, 0xf0, 0x4f, 0xd6, 0xe6,
+    0x68, 0x6a, 0x47, 0x52, 0x00, 0x46, 0x52, 0x02, 0x98, 0x68, 0x40, 0x45, 0x80, 0x11, 0x6c, 0x24,
+    0x04, 0x91, 0x0e, 0xc3, 0x90, 0xc7, 0xa6, 0x67, 0xf5, 0xf7, 0xd6, 0xdd, 0xbe, 0xf8, 0x97, 0xc9,
+    0xfe, 0x83, 0x6c, 0xde, 0x31, 0xf5, 0x8b, 0xb9, 0x54, 0xf3, 0xc6, 0x9d, 0xef, 0x43, 0x55, 0x1e,
+    0xe5, 0x8c, 0x5b, 0x13, 0x69, 0x77, 0xdf, 0xd4, 0x77, 0xce, 0xc0, 0xca, 0xf8, 0x57, 0xb2, 0xdd,
+    0xea, 0x43, 0x8e, 0x6b, 0x2f, 0xf4, 0x0b, 0xe0, 0x64, 0xd4, 0xd2, 0x66, 0x87, 0x95, 0x56, 0xa1,
+    0x89, 0x11, 0xc4, 0x2a, 0x54, 0x2c, 0x10, 0x2b, 0x94, 0x91, 0x94, 0xc9, 0x0a, 0x51, 0x43, 0x08,
+    0x23, 0xbd, 0x18, 0xc7, 0x3c, 0x5a, 0xa9, 0xe9, 0x7f, 0x3a, 0x74, 0x34, 0x7f, 0xef, 0x7b, 0xbf,
+    0x33, 0x79, 0xec, 0xdd, 0x5e, 0xbd, 0x7a, 0x57, 0xd7, 0x9c, 0x76, 0x5d, 0xb7, 0x9c, 0xcd, 0x3b,
+    0xda, 0xb7, 0x0e, 0x5e, 0xbe, 0xbe, 0xef, 0xac, 0x81, 0xd1, 0x68, 0x8b, 0x9b, 0xd1, 0xe7, 0xbb,
+    0xae, 0xdd, 0xe6, 0x38, 0x6c, 0xd0, 0xda, 0x16, 0xbd, 0x0c, 0xb8, 0xae, 0x4a, 0x62, 0xbb, 0x55,
+    0xad, 0xca, 0x4e, 0x62, 0x88, 0x03, 0x21, 0x0a, 0x04, 0x13, 0xeb, 0xb2, 0x31, 0x6a, 0xa7, 0xb1,
+    0x3c, 0xd5, 0x08, 0xd4, 0xb3, 0xe3, 0x13, 0x99, 0x67, 0x2e, 0xf8, 0xf6, 0xcc, 0xf8, 0xc9, 0xee,
+    0xc1, 0xfc, 0xc2, 0x81, 0xb4, 0x6e, 0x47, 0x5c, 0x3b, 0xc4, 0xd8, 0xd7, 0x8f, 0xb7, 0xfe, 0xfe,
+    0xe1, 0x65, 0x23, 0xc5, 0xd3, 0xb7, 0x2c, 0x9c, 0x5a, 0xec, 0xb7, 0x43, 0x4e, 0xd6, 0x5d, 0xae,
+    0x2c, 0x23, 0x62, 0xed, 0x90, 0x42, 0x7a, 0x94, 0x98, 0x0c, 0xa2, 0xb5, 0x18, 0x09, 0xb0, 0x7a,
+    0x11, 0xd4, 0x04, 0xc2, 0xdb, 0x51, 0x64, 0x8e, 0xcd, 0x96, 0x9d, 0x89, 0xe7, 0xf7, 0xac, 0x3c,
+    0xf4, 0xdb, 0xf7, 0xbf, 0x12, 0xb4, 0xd6, 0xfe, 0x7c, 0x3f, 0x63, 0x7f, 0x34, 0xfb, 0xae, 0x65,
+    0xfa, 0x7f, 0x4c, 0xe8, 0x21, 0x04, 0x29, 0xb0, 0x36, 0x16, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45,
+    0x4e, 0x44, 0xae, 0x42, 0x60, 0x82,
 };
 
 const lv_img_dsc_t img_wink_png = {
-  .header.always_zero = 0,
-  .header.w = 50,
-  .header.h = 50,
-  .data_size = 5158,
-  .header.cf = LV_IMG_CF_RAW_ALPHA,
-  .data = img_wink_png_map,
+    .header.always_zero = 0,
+    .header.w = 50,
+    .header.h = 50,
+    .data_size = 5158,
+    .header.cf = LV_IMG_CF_RAW_ALPHA,
+    .data = img_wink_png_map,
 };
 
 #endif /*LV_USE_PNG && LV_BUILD_EXAMPLES*/
index 1fccdc0..6a6aa28 100644 (file)
@@ -9,7 +9,7 @@ void lv_example_rlottie_2(void)
 {
     /*The rlottie library uses STDIO file API, so there is no driver letter for LVGL*/
     lv_obj_t * lottie = lv_rlottie_create_from_file(lv_scr_act(), 100, 100,
-            "lvgl/examples/libs/rlottie/lv_example_rlottie_approve.json");
+                                                    "lvgl/examples/libs/rlottie/lv_example_rlottie_approve.json");
     lv_obj_center(lottie);
 }
 
index a0ded82..0c5f8f6 100644 (file)
 #if LV_BUILD_EXAMPLES && LV_USE_RLOTTIE
 
 const uint8_t lv_example_rlottie_approve[] = {
-        0x7b, 0x22, 0x76, 0x22, 0x3a, 0x22, 0x34, 0x2e, 0x38, 0x2e, 0x30, 0x22, 0x2c, 0x22, 0x6d, 0x65, 0x74, 0x61, 0x22, 0x3a, 0x7b, 0x22, 0x67, 0x22, 0x3a, 0x22, 0x4c, 0x6f, 0x74, 0x74, 0x69, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x41, 0x45, 0x20, 0x31, 0x2e, 0x30, 0x2e, 0x30, 0x22, 0x2c, 0x22, 0x61, 0x22, 0x3a, 0x22, 0x22, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x22, 0x22, 0x2c, 0x22, 0x64, 0x22, 0x3a, 0x22, 0x22, 0x2c, 0x22, 0x74, 0x63, 0x22, 0x3a, 0x22, 0x22, 0x7d, 0x2c, 0x22, 0x66, 0x72, 0x22, 0x3a, 0x36, 0x30, 0x2c, 0x22, 0x69, 0x70, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6f, 0x70, 0x22, 0x3a, 0x36, 0x30, 0x2c, 0x22, 0x77, 0x22, 0x3a, 0x37, 0x32, 0x30, 0x2c, 0x22, 0x68, 0x22, 0x3a, 0x37, 0x32, 0x30, 0x2c, 0x22, 0x6e, 0x6d, 0x22, 0x3a, 0x22, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x2c, 0x22, 0x64, 0x64, 0x64, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x22, 0x3a, 0x5b, 0x5d, 0x2c, 0x22, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x22, 0x3a, 0x5b, 0x7b, 0x22, 0x64, 0x64, 0x64, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x69, 0x6e, 0x64, 0x22, 0x3a, 0x31, 0x2c, 0x22, 0x74, 0x79, 0x22, 0x3a, 0x34, 0x2c, 0x22, 0x6e, 0x6d, 0x22, 0x3a, 0x22, 0x53, 0x68, 0x61, 0x70, 0x65, 0x20, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x20, 0x34, 0x22, 0x2c, 0x22, 0x73, 0x72, 0x22, 0x3a, 0x31, 0x2c, 0x22, 0x6b, 0x73, 0x22, 0x3a, 0x7b, 0x22, 0x6f, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x31, 0x30, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x31, 0x31, 0x7d, 0x2c, 0x22, 0x72, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x31, 0x30, 0x7d, 0x2c, 0x22, 0x70, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x5b, 0x33, 0x33, 0x36, 0x2c, 0x33, 0x39, 0x36, 0x2c, 0x30, 0x5d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x22, 0x61, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x5b, 0x30, 0x2c, 0x30, 0x2c, 0x30, 0x5d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x31, 0x7d, 0x2c, 0x22, 0x73, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x5b, 0x31, 0x30, 0x30, 0x2c, 0x31, 0x30, 0x30, 0x2c, 0x31, 0x30, 0x30, 0x5d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x36, 0x7d, 0x7d, 0x2c, 0x22, 0x61, 0x6f, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x73, 0x68, 0x61, 0x70, 0x65, 0x73, 0x22, 0x3a, 0x5b, 0x7b, 0x22, 0x74, 0x79, 0x22, 0x3a, 0x22, 0x67, 0x72, 0x22, 0x2c, 0x22, 0x69, 0x74, 0x22, 0x3a, 0x5b, 0x7b, 0x22, 0x69, 0x6e, 0x64, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x74, 0x79, 0x22, 0x3a, 0x22, 0x73, 0x68, 0x22, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x31, 0x2c, 0x22, 0x6b, 0x73, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x7b, 0x22, 0x69, 0x22, 0x3a, 0x5b, 0x5b, 0x30, 0x2c, 0x30, 0x5d, 0x2c, 0x5b, 0x30, 0x2c, 0x30, 0x5d, 0x2c, 0x5b, 0x30, 0x2c, 0x30, 0x5d, 0x5d, 0x2c, 0x22, 0x6f, 0x22, 0x3a, 0x5b, 0x5b, 0x30, 0x2c, 0x30, 0x5d, 0x2c, 0x5b, 0x30, 0x2c, 0x30, 0x5d, 0x2c, 0x5b, 0x30, 0x2c, 0x30, 0x5d, 0x5d, 0x2c, 0x22, 0x76, 0x22, 0x3a, 0x5b, 0x5b, 0x2d, 0x31, 0x32, 0x33, 0x2c, 0x2d, 0x36, 0x36, 0x5d, 0x2c, 0x5b, 0x36, 0x2c, 0x34, 0x35, 0x5d, 0x2c, 0x5b, 0x33, 0x32, 0x31, 0x2c, 0x2d, 0x32, 0x36, 0x34, 0x5d, 0x5d, 0x2c, 0x22, 0x63, 0x22, 0x3a, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x7d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x22, 0x6e, 0x6d, 0x22, 0x3a, 0x22, 0x50, 0x61, 0x74, 0x68, 0x20, 0x31, 0x22, 0x2c, 0x22, 0x6d, 0x6e, 0x22, 0x3a, 0x22, 0x41, 0x44, 0x42, 0x45, 0x20, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x20, 0x53, 0x68, 0x61, 0x70, 0x65, 0x20, 0x2d, 0x20, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x2c, 0x22, 0x68, 0x64, 0x22, 0x3a, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x7d, 0x2c, 0x7b, 0x22, 0x74, 0x79, 0x22, 0x3a, 0x22, 0x73, 0x74, 0x22, 0x2c, 0x22, 0x63, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x5b, 0x30, 0x2e, 0x32, 0x39, 0x38, 0x30, 0x33, 0x39, 0x32, 0x31, 0x35, 0x36, 0x38, 0x36, 0x2c, 0x30, 0x2e, 0x36, 0x38, 0x36, 0x32, 0x37, 0x34, 0x35, 0x30, 0x39, 0x38, 0x30, 0x34, 0x2c, 0x30, 0x2e, 0x33, 0x31, 0x33, 0x37, 0x32, 0x35,
-        0x34, 0x39, 0x30, 0x31, 0x39, 0x36, 0x2c, 0x31, 0x5d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x33, 0x7d, 0x2c, 0x22, 0x6f, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x31, 0x30, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x34, 0x7d, 0x2c, 0x22, 0x77, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x35, 0x32, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x35, 0x7d, 0x2c, 0x22, 0x6c, 0x63, 0x22, 0x3a, 0x32, 0x2c, 0x22, 0x6c, 0x6a, 0x22, 0x3a, 0x32, 0x2c, 0x22, 0x62, 0x6d, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6e, 0x6d, 0x22, 0x3a, 0x22, 0x53, 0x74, 0x72, 0x6f, 0x6b, 0x65, 0x20, 0x31, 0x22, 0x2c, 0x22, 0x6d, 0x6e, 0x22, 0x3a, 0x22, 0x41, 0x44, 0x42, 0x45, 0x20, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x20, 0x47, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x20, 0x2d, 0x20, 0x53, 0x74, 0x72, 0x6f, 0x6b, 0x65, 0x22, 0x2c, 0x22, 0x68, 0x64, 0x22, 0x3a, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x7d, 0x2c, 0x7b, 0x22, 0x74, 0x79, 0x22, 0x3a, 0x22, 0x74, 0x72, 0x22, 0x2c, 0x22, 0x70, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x5b, 0x30, 0x2c, 0x30, 0x5d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x22, 0x61, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x5b, 0x30, 0x2c, 0x30, 0x5d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x31, 0x7d, 0x2c, 0x22, 0x73, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x5b, 0x31, 0x30, 0x30, 0x2c, 0x31, 0x30, 0x30, 0x5d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x33, 0x7d, 0x2c, 0x22, 0x72, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x36, 0x7d, 0x2c, 0x22, 0x6f, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x31, 0x30, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x37, 0x7d, 0x2c, 0x22, 0x73, 0x6b, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x34, 0x7d, 0x2c, 0x22, 0x73, 0x61, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x35, 0x7d, 0x2c, 0x22, 0x6e, 0x6d, 0x22, 0x3a, 0x22, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x22, 0x7d, 0x5d, 0x2c, 0x22, 0x6e, 0x6d, 0x22, 0x3a, 0x22, 0x53, 0x68, 0x61, 0x70, 0x65, 0x20, 0x31, 0x22, 0x2c, 0x22, 0x6e, 0x70, 0x22, 0x3a, 0x33, 0x2c, 0x22, 0x63, 0x69, 0x78, 0x22, 0x3a, 0x32, 0x2c, 0x22, 0x62, 0x6d, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x31, 0x2c, 0x22, 0x6d, 0x6e, 0x22, 0x3a, 0x22, 0x41, 0x44, 0x42, 0x45, 0x20, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x20, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x2c, 0x22, 0x68, 0x64, 0x22, 0x3a, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x7d, 0x2c, 0x7b, 0x22, 0x74, 0x79, 0x22, 0x3a, 0x22, 0x74, 0x6d, 0x22, 0x2c, 0x22, 0x73, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x31, 0x7d, 0x2c, 0x22, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x31, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x5b, 0x7b, 0x22, 0x69, 0x22, 0x3a, 0x7b, 0x22, 0x78, 0x22, 0x3a, 0x5b, 0x30, 0x2e, 0x33, 0x36, 0x38, 0x5d, 0x2c, 0x22, 0x79, 0x22, 0x3a, 0x5b, 0x31, 0x5d, 0x7d, 0x2c, 0x22, 0x6f, 0x22, 0x3a, 0x7b, 0x22, 0x78, 0x22, 0x3a, 0x5b, 0x30, 0x2e, 0x32, 0x35, 0x31, 0x5d, 0x2c, 0x22, 0x79, 0x22, 0x3a, 0x5b, 0x30, 0x5d, 0x7d, 0x2c, 0x22, 0x74, 0x22, 0x3a, 0x31, 0x30, 0x2c, 0x22, 0x73, 0x22, 0x3a, 0x5b, 0x30, 0x5d, 0x7d, 0x2c, 0x7b, 0x22, 0x74, 0x22, 0x3a, 0x34, 0x35, 0x2c, 0x22, 0x73, 0x22, 0x3a, 0x5b, 0x39, 0x32, 0x5d, 0x7d, 0x5d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x22, 0x6f, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x33, 0x7d, 0x2c, 0x22, 0x6d, 0x22, 0x3a, 0x31, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x32, 0x2c, 0x22, 0x6e, 0x6d, 0x22, 0x3a, 0x22, 0x54, 0x72, 0x69, 0x6d, 0x20, 0x50, 0x61, 0x74, 0x68, 0x73, 0x20, 0x31, 0x22, 0x2c, 0x22, 0x6d, 0x6e, 0x22, 0x3a, 0x22, 0x41, 0x44, 0x42, 0x45, 0x20, 0x56, 0x65,
-        0x63, 0x74, 0x6f, 0x72, 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x2d, 0x20, 0x54, 0x72, 0x69, 0x6d, 0x22, 0x2c, 0x22, 0x68, 0x64, 0x22, 0x3a, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x7d, 0x5d, 0x2c, 0x22, 0x69, 0x70, 0x22, 0x3a, 0x31, 0x30, 0x2c, 0x22, 0x6f, 0x70, 0x22, 0x3a, 0x36, 0x30, 0x2c, 0x22, 0x73, 0x74, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x62, 0x6d, 0x22, 0x3a, 0x30, 0x7d, 0x2c, 0x7b, 0x22, 0x64, 0x64, 0x64, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x69, 0x6e, 0x64, 0x22, 0x3a, 0x32, 0x2c, 0x22, 0x74, 0x79, 0x22, 0x3a, 0x34, 0x2c, 0x22, 0x6e, 0x6d, 0x22, 0x3a, 0x22, 0x53, 0x68, 0x61, 0x70, 0x65, 0x20, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x20, 0x33, 0x22, 0x2c, 0x22, 0x73, 0x72, 0x22, 0x3a, 0x31, 0x2c, 0x22, 0x6b, 0x73, 0x22, 0x3a, 0x7b, 0x22, 0x6f, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x31, 0x30, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x31, 0x31, 0x7d, 0x2c, 0x22, 0x72, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x31, 0x30, 0x7d, 0x2c, 0x22, 0x70, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x5b, 0x33, 0x33, 0x36, 0x2c, 0x33, 0x39, 0x36, 0x2c, 0x30, 0x5d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x22, 0x61, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x5b, 0x30, 0x2c, 0x30, 0x2c, 0x30, 0x5d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x31, 0x7d, 0x2c, 0x22, 0x73, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x5b, 0x31, 0x30, 0x30, 0x2c, 0x31, 0x30, 0x30, 0x2c, 0x31, 0x30, 0x30, 0x5d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x36, 0x7d, 0x7d, 0x2c, 0x22, 0x61, 0x6f, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x73, 0x68, 0x61, 0x70, 0x65, 0x73, 0x22, 0x3a, 0x5b, 0x7b, 0x22, 0x74, 0x79, 0x22, 0x3a, 0x22, 0x67, 0x72, 0x22, 0x2c, 0x22, 0x69, 0x74, 0x22, 0x3a, 0x5b, 0x7b, 0x22, 0x69, 0x6e, 0x64, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x74, 0x79, 0x22, 0x3a, 0x22, 0x73, 0x68, 0x22, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x31, 0x2c, 0x22, 0x6b, 0x73, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x7b, 0x22, 0x69, 0x22, 0x3a, 0x5b, 0x5b, 0x30, 0x2c, 0x30, 0x5d, 0x2c, 0x5b, 0x30, 0x2c, 0x30, 0x5d, 0x2c, 0x5b, 0x30, 0x2c, 0x30, 0x5d, 0x5d, 0x2c, 0x22, 0x6f, 0x22, 0x3a, 0x5b, 0x5b, 0x30, 0x2c, 0x30, 0x5d, 0x2c, 0x5b, 0x30, 0x2c, 0x30, 0x5d, 0x2c, 0x5b, 0x30, 0x2c, 0x30, 0x5d, 0x5d, 0x2c, 0x22, 0x76, 0x22, 0x3a, 0x5b, 0x5b, 0x2d, 0x31, 0x32, 0x33, 0x2c, 0x2d, 0x36, 0x36, 0x5d, 0x2c, 0x5b, 0x36, 0x2c, 0x34, 0x35, 0x5d, 0x2c, 0x5b, 0x33, 0x32, 0x31, 0x2c, 0x2d, 0x32, 0x36, 0x34, 0x5d, 0x5d, 0x2c, 0x22, 0x63, 0x22, 0x3a, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x7d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x22, 0x6e, 0x6d, 0x22, 0x3a, 0x22, 0x50, 0x61, 0x74, 0x68, 0x20, 0x31, 0x22, 0x2c, 0x22, 0x6d, 0x6e, 0x22, 0x3a, 0x22, 0x41, 0x44, 0x42, 0x45, 0x20, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x20, 0x53, 0x68, 0x61, 0x70, 0x65, 0x20, 0x2d, 0x20, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x2c, 0x22, 0x68, 0x64, 0x22, 0x3a, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x7d, 0x2c, 0x7b, 0x22, 0x74, 0x79, 0x22, 0x3a, 0x22, 0x73, 0x74, 0x22, 0x2c, 0x22, 0x63, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x5b, 0x30, 0x2e, 0x32, 0x31, 0x39, 0x36, 0x30, 0x37, 0x38, 0x34, 0x33, 0x31, 0x33, 0x37, 0x2c, 0x30, 0x2e, 0x35, 0x35, 0x36, 0x38, 0x36, 0x32, 0x37, 0x34, 0x35, 0x30, 0x39, 0x38, 0x2c, 0x30, 0x2e, 0x32, 0x33, 0x35, 0x32, 0x39, 0x34, 0x31, 0x31, 0x37, 0x36, 0x34, 0x37, 0x2c, 0x31, 0x5d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x33, 0x7d, 0x2c, 0x22, 0x6f, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x31, 0x30, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x34, 0x7d, 0x2c, 0x22, 0x77, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x34, 0x38, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x35, 0x7d, 0x2c, 0x22, 0x6c, 0x63, 0x22, 0x3a, 0x32, 0x2c, 0x22, 0x6c, 0x6a, 0x22, 0x3a, 0x32, 0x2c, 0x22, 0x62, 0x6d, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6e, 0x6d, 0x22, 0x3a, 0x22,
-        0x53, 0x74, 0x72, 0x6f, 0x6b, 0x65, 0x20, 0x31, 0x22, 0x2c, 0x22, 0x6d, 0x6e, 0x22, 0x3a, 0x22, 0x41, 0x44, 0x42, 0x45, 0x20, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x20, 0x47, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x20, 0x2d, 0x20, 0x53, 0x74, 0x72, 0x6f, 0x6b, 0x65, 0x22, 0x2c, 0x22, 0x68, 0x64, 0x22, 0x3a, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x7d, 0x2c, 0x7b, 0x22, 0x74, 0x79, 0x22, 0x3a, 0x22, 0x74, 0x72, 0x22, 0x2c, 0x22, 0x70, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x5b, 0x30, 0x2c, 0x30, 0x5d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x22, 0x61, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x5b, 0x30, 0x2c, 0x30, 0x5d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x31, 0x7d, 0x2c, 0x22, 0x73, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x5b, 0x31, 0x30, 0x30, 0x2c, 0x31, 0x30, 0x30, 0x5d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x33, 0x7d, 0x2c, 0x22, 0x72, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x36, 0x7d, 0x2c, 0x22, 0x6f, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x31, 0x30, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x37, 0x7d, 0x2c, 0x22, 0x73, 0x6b, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x34, 0x7d, 0x2c, 0x22, 0x73, 0x61, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x35, 0x7d, 0x2c, 0x22, 0x6e, 0x6d, 0x22, 0x3a, 0x22, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x22, 0x7d, 0x5d, 0x2c, 0x22, 0x6e, 0x6d, 0x22, 0x3a, 0x22, 0x53, 0x68, 0x61, 0x70, 0x65, 0x20, 0x31, 0x22, 0x2c, 0x22, 0x6e, 0x70, 0x22, 0x3a, 0x33, 0x2c, 0x22, 0x63, 0x69, 0x78, 0x22, 0x3a, 0x32, 0x2c, 0x22, 0x62, 0x6d, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x31, 0x2c, 0x22, 0x6d, 0x6e, 0x22, 0x3a, 0x22, 0x41, 0x44, 0x42, 0x45, 0x20, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x20, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x2c, 0x22, 0x68, 0x64, 0x22, 0x3a, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x7d, 0x2c, 0x7b, 0x22, 0x74, 0x79, 0x22, 0x3a, 0x22, 0x74, 0x6d, 0x22, 0x2c, 0x22, 0x73, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x31, 0x7d, 0x2c, 0x22, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x31, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x5b, 0x7b, 0x22, 0x69, 0x22, 0x3a, 0x7b, 0x22, 0x78, 0x22, 0x3a, 0x5b, 0x30, 0x2e, 0x33, 0x36, 0x38, 0x5d, 0x2c, 0x22, 0x79, 0x22, 0x3a, 0x5b, 0x31, 0x5d, 0x7d, 0x2c, 0x22, 0x6f, 0x22, 0x3a, 0x7b, 0x22, 0x78, 0x22, 0x3a, 0x5b, 0x30, 0x2e, 0x32, 0x35, 0x31, 0x5d, 0x2c, 0x22, 0x79, 0x22, 0x3a, 0x5b, 0x30, 0x5d, 0x7d, 0x2c, 0x22, 0x74, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x73, 0x22, 0x3a, 0x5b, 0x30, 0x5d, 0x7d, 0x2c, 0x7b, 0x22, 0x74, 0x22, 0x3a, 0x34, 0x30, 0x2c, 0x22, 0x73, 0x22, 0x3a, 0x5b, 0x31, 0x30, 0x30, 0x5d, 0x7d, 0x5d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x22, 0x6f, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x33, 0x7d, 0x2c, 0x22, 0x6d, 0x22, 0x3a, 0x31, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x32, 0x2c, 0x22, 0x6e, 0x6d, 0x22, 0x3a, 0x22, 0x54, 0x72, 0x69, 0x6d, 0x20, 0x50, 0x61, 0x74, 0x68, 0x73, 0x20, 0x31, 0x22, 0x2c, 0x22, 0x6d, 0x6e, 0x22, 0x3a, 0x22, 0x41, 0x44, 0x42, 0x45, 0x20, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x2d, 0x20, 0x54, 0x72, 0x69, 0x6d, 0x22, 0x2c, 0x22, 0x68, 0x64, 0x22, 0x3a, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x7d, 0x5d, 0x2c, 0x22, 0x69, 0x70, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6f, 0x70, 0x22, 0x3a, 0x36, 0x30, 0x2c, 0x22, 0x73, 0x74, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x62, 0x6d, 0x22, 0x3a, 0x30, 0x7d, 0x2c, 0x7b, 0x22, 0x64, 0x64, 0x64, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x69, 0x6e, 0x64, 0x22, 0x3a, 0x33, 0x2c, 0x22, 0x74, 0x79, 0x22, 0x3a, 0x34, 0x2c, 0x22, 0x6e, 0x6d, 0x22, 0x3a, 0x22, 0x53, 0x68, 0x61, 0x70, 0x65,
-        0x20, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x20, 0x32, 0x22, 0x2c, 0x22, 0x73, 0x72, 0x22, 0x3a, 0x31, 0x2c, 0x22, 0x6b, 0x73, 0x22, 0x3a, 0x7b, 0x22, 0x6f, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x31, 0x30, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x31, 0x31, 0x7d, 0x2c, 0x22, 0x72, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x38, 0x37, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x31, 0x30, 0x7d, 0x2c, 0x22, 0x70, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x5b, 0x33, 0x33, 0x36, 0x2c, 0x33, 0x36, 0x36, 0x2c, 0x30, 0x5d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x22, 0x61, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x5b, 0x30, 0x2c, 0x30, 0x2c, 0x30, 0x5d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x31, 0x7d, 0x2c, 0x22, 0x73, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x5b, 0x31, 0x30, 0x30, 0x2c, 0x31, 0x30, 0x30, 0x2c, 0x31, 0x30, 0x30, 0x5d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x36, 0x7d, 0x7d, 0x2c, 0x22, 0x61, 0x6f, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x73, 0x68, 0x61, 0x70, 0x65, 0x73, 0x22, 0x3a, 0x5b, 0x7b, 0x22, 0x74, 0x79, 0x22, 0x3a, 0x22, 0x67, 0x72, 0x22, 0x2c, 0x22, 0x69, 0x74, 0x22, 0x3a, 0x5b, 0x7b, 0x22, 0x64, 0x22, 0x3a, 0x31, 0x2c, 0x22, 0x74, 0x79, 0x22, 0x3a, 0x22, 0x65, 0x6c, 0x22, 0x2c, 0x22, 0x73, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x5b, 0x35, 0x32, 0x30, 0x2c, 0x35, 0x32, 0x30, 0x5d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x22, 0x70, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x5b, 0x30, 0x2c, 0x30, 0x5d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x33, 0x7d, 0x2c, 0x22, 0x6e, 0x6d, 0x22, 0x3a, 0x22, 0x45, 0x6c, 0x6c, 0x69, 0x70, 0x73, 0x65, 0x20, 0x50, 0x61, 0x74, 0x68, 0x20, 0x31, 0x22, 0x2c, 0x22, 0x6d, 0x6e, 0x22, 0x3a, 0x22, 0x41, 0x44, 0x42, 0x45, 0x20, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x20, 0x53, 0x68, 0x61, 0x70, 0x65, 0x20, 0x2d, 0x20, 0x45, 0x6c, 0x6c, 0x69, 0x70, 0x73, 0x65, 0x22, 0x2c, 0x22, 0x68, 0x64, 0x22, 0x3a, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x7d, 0x2c, 0x7b, 0x22, 0x74, 0x79, 0x22, 0x3a, 0x22, 0x73, 0x74, 0x22, 0x2c, 0x22, 0x63, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x5b, 0x30, 0x2e, 0x32, 0x39, 0x38, 0x30, 0x33, 0x39, 0x32, 0x31, 0x35, 0x36, 0x38, 0x36, 0x2c, 0x30, 0x2e, 0x36, 0x38, 0x36, 0x32, 0x37, 0x34, 0x35, 0x30, 0x39, 0x38, 0x30, 0x34, 0x2c, 0x30, 0x2e, 0x33, 0x31, 0x33, 0x37, 0x32, 0x35, 0x34, 0x39, 0x30, 0x31, 0x39, 0x36, 0x2c, 0x31, 0x5d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x33, 0x7d, 0x2c, 0x22, 0x6f, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x31, 0x30, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x34, 0x7d, 0x2c, 0x22, 0x77, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x35, 0x32, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x35, 0x7d, 0x2c, 0x22, 0x6c, 0x63, 0x22, 0x3a, 0x32, 0x2c, 0x22, 0x6c, 0x6a, 0x22, 0x3a, 0x31, 0x2c, 0x22, 0x6d, 0x6c, 0x22, 0x3a, 0x34, 0x2c, 0x22, 0x62, 0x6d, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6e, 0x6d, 0x22, 0x3a, 0x22, 0x53, 0x74, 0x72, 0x6f, 0x6b, 0x65, 0x20, 0x31, 0x22, 0x2c, 0x22, 0x6d, 0x6e, 0x22, 0x3a, 0x22, 0x41, 0x44, 0x42, 0x45, 0x20, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x20, 0x47, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x20, 0x2d, 0x20, 0x53, 0x74, 0x72, 0x6f, 0x6b, 0x65, 0x22, 0x2c, 0x22, 0x68, 0x64, 0x22, 0x3a, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x7d, 0x2c, 0x7b, 0x22, 0x74, 0x79, 0x22, 0x3a, 0x22, 0x74, 0x72, 0x22, 0x2c, 0x22, 0x70, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x5b, 0x30, 0x2c, 0x30, 0x5d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x22, 0x61, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x5b, 0x30, 0x2c, 0x30, 0x5d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x31, 0x7d, 0x2c, 0x22, 0x73, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x5b, 0x31, 0x30, 0x30, 0x2c,
-        0x31, 0x30, 0x30, 0x5d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x33, 0x7d, 0x2c, 0x22, 0x72, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x36, 0x7d, 0x2c, 0x22, 0x6f, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x31, 0x30, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x37, 0x7d, 0x2c, 0x22, 0x73, 0x6b, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x34, 0x7d, 0x2c, 0x22, 0x73, 0x61, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x35, 0x7d, 0x2c, 0x22, 0x6e, 0x6d, 0x22, 0x3a, 0x22, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x22, 0x7d, 0x5d, 0x2c, 0x22, 0x6e, 0x6d, 0x22, 0x3a, 0x22, 0x45, 0x6c, 0x6c, 0x69, 0x70, 0x73, 0x65, 0x20, 0x31, 0x22, 0x2c, 0x22, 0x6e, 0x70, 0x22, 0x3a, 0x33, 0x2c, 0x22, 0x63, 0x69, 0x78, 0x22, 0x3a, 0x32, 0x2c, 0x22, 0x62, 0x6d, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x31, 0x2c, 0x22, 0x6d, 0x6e, 0x22, 0x3a, 0x22, 0x41, 0x44, 0x42, 0x45, 0x20, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x20, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x2c, 0x22, 0x68, 0x64, 0x22, 0x3a, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x7d, 0x2c, 0x7b, 0x22, 0x74, 0x79, 0x22, 0x3a, 0x22, 0x74, 0x6d, 0x22, 0x2c, 0x22, 0x73, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x31, 0x7d, 0x2c, 0x22, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x31, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x5b, 0x7b, 0x22, 0x69, 0x22, 0x3a, 0x7b, 0x22, 0x78, 0x22, 0x3a, 0x5b, 0x30, 0x2e, 0x33, 0x33, 0x37, 0x5d, 0x2c, 0x22, 0x79, 0x22, 0x3a, 0x5b, 0x31, 0x5d, 0x7d, 0x2c, 0x22, 0x6f, 0x22, 0x3a, 0x7b, 0x22, 0x78, 0x22, 0x3a, 0x5b, 0x30, 0x2e, 0x33, 0x33, 0x34, 0x5d, 0x2c, 0x22, 0x79, 0x22, 0x3a, 0x5b, 0x30, 0x5d, 0x7d, 0x2c, 0x22, 0x74, 0x22, 0x3a, 0x31, 0x30, 0x2c, 0x22, 0x73, 0x22, 0x3a, 0x5b, 0x30, 0x5d, 0x7d, 0x2c, 0x7b, 0x22, 0x74, 0x22, 0x3a, 0x34, 0x35, 0x2c, 0x22, 0x73, 0x22, 0x3a, 0x5b, 0x38, 0x30, 0x5d, 0x7d, 0x5d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x22, 0x6f, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x33, 0x7d, 0x2c, 0x22, 0x6d, 0x22, 0x3a, 0x31, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x32, 0x2c, 0x22, 0x6e, 0x6d, 0x22, 0x3a, 0x22, 0x54, 0x72, 0x69, 0x6d, 0x20, 0x50, 0x61, 0x74, 0x68, 0x73, 0x20, 0x31, 0x22, 0x2c, 0x22, 0x6d, 0x6e, 0x22, 0x3a, 0x22, 0x41, 0x44, 0x42, 0x45, 0x20, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x2d, 0x20, 0x54, 0x72, 0x69, 0x6d, 0x22, 0x2c, 0x22, 0x68, 0x64, 0x22, 0x3a, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x7d, 0x5d, 0x2c, 0x22, 0x69, 0x70, 0x22, 0x3a, 0x31, 0x30, 0x2c, 0x22, 0x6f, 0x70, 0x22, 0x3a, 0x36, 0x30, 0x2c, 0x22, 0x73, 0x74, 0x22, 0x3a, 0x31, 0x30, 0x2c, 0x22, 0x62, 0x6d, 0x22, 0x3a, 0x30, 0x7d, 0x2c, 0x7b, 0x22, 0x64, 0x64, 0x64, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x69, 0x6e, 0x64, 0x22, 0x3a, 0x34, 0x2c, 0x22, 0x74, 0x79, 0x22, 0x3a, 0x34, 0x2c, 0x22, 0x6e, 0x6d, 0x22, 0x3a, 0x22, 0x53, 0x68, 0x61, 0x70, 0x65, 0x20, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x20, 0x31, 0x22, 0x2c, 0x22, 0x73, 0x72, 0x22, 0x3a, 0x31, 0x2c, 0x22, 0x6b, 0x73, 0x22, 0x3a, 0x7b, 0x22, 0x6f, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x31, 0x30, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x31, 0x31, 0x7d, 0x2c, 0x22, 0x72, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x38, 0x37, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x31, 0x30, 0x7d, 0x2c, 0x22, 0x70, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x5b, 0x33, 0x33, 0x36, 0x2c, 0x33, 0x36, 0x36, 0x2c, 0x30, 0x5d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x22, 0x61, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x5b, 0x30, 0x2c, 0x30, 0x2c, 0x30, 0x5d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x31, 0x7d,
-        0x2c, 0x22, 0x73, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x5b, 0x31, 0x30, 0x30, 0x2c, 0x31, 0x30, 0x30, 0x2c, 0x31, 0x30, 0x30, 0x5d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x36, 0x7d, 0x7d, 0x2c, 0x22, 0x61, 0x6f, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x73, 0x68, 0x61, 0x70, 0x65, 0x73, 0x22, 0x3a, 0x5b, 0x7b, 0x22, 0x74, 0x79, 0x22, 0x3a, 0x22, 0x67, 0x72, 0x22, 0x2c, 0x22, 0x69, 0x74, 0x22, 0x3a, 0x5b, 0x7b, 0x22, 0x64, 0x22, 0x3a, 0x31, 0x2c, 0x22, 0x74, 0x79, 0x22, 0x3a, 0x22, 0x65, 0x6c, 0x22, 0x2c, 0x22, 0x73, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x5b, 0x35, 0x32, 0x30, 0x2c, 0x35, 0x32, 0x30, 0x5d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x22, 0x70, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x5b, 0x30, 0x2c, 0x30, 0x5d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x33, 0x7d, 0x2c, 0x22, 0x6e, 0x6d, 0x22, 0x3a, 0x22, 0x45, 0x6c, 0x6c, 0x69, 0x70, 0x73, 0x65, 0x20, 0x50, 0x61, 0x74, 0x68, 0x20, 0x31, 0x22, 0x2c, 0x22, 0x6d, 0x6e, 0x22, 0x3a, 0x22, 0x41, 0x44, 0x42, 0x45, 0x20, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x20, 0x53, 0x68, 0x61, 0x70, 0x65, 0x20, 0x2d, 0x20, 0x45, 0x6c, 0x6c, 0x69, 0x70, 0x73, 0x65, 0x22, 0x2c, 0x22, 0x68, 0x64, 0x22, 0x3a, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x7d, 0x2c, 0x7b, 0x22, 0x74, 0x79, 0x22, 0x3a, 0x22, 0x73, 0x74, 0x22, 0x2c, 0x22, 0x63, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x5b, 0x30, 0x2e, 0x32, 0x31, 0x39, 0x36, 0x30, 0x37, 0x38, 0x34, 0x33, 0x31, 0x33, 0x37, 0x2c, 0x30, 0x2e, 0x35, 0x35, 0x36, 0x38, 0x36, 0x32, 0x37, 0x34, 0x35, 0x30, 0x39, 0x38, 0x2c, 0x30, 0x2e, 0x32, 0x33, 0x35, 0x32, 0x39, 0x34, 0x31, 0x31, 0x37, 0x36, 0x34, 0x37, 0x2c, 0x31, 0x5d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x33, 0x7d, 0x2c, 0x22, 0x6f, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x31, 0x30, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x34, 0x7d, 0x2c, 0x22, 0x77, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x34, 0x38, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x35, 0x7d, 0x2c, 0x22, 0x6c, 0x63, 0x22, 0x3a, 0x32, 0x2c, 0x22, 0x6c, 0x6a, 0x22, 0x3a, 0x31, 0x2c, 0x22, 0x6d, 0x6c, 0x22, 0x3a, 0x34, 0x2c, 0x22, 0x62, 0x6d, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6e, 0x6d, 0x22, 0x3a, 0x22, 0x53, 0x74, 0x72, 0x6f, 0x6b, 0x65, 0x20, 0x31, 0x22, 0x2c, 0x22, 0x6d, 0x6e, 0x22, 0x3a, 0x22, 0x41, 0x44, 0x42, 0x45, 0x20, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x20, 0x47, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x20, 0x2d, 0x20, 0x53, 0x74, 0x72, 0x6f, 0x6b, 0x65, 0x22, 0x2c, 0x22, 0x68, 0x64, 0x22, 0x3a, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x7d, 0x2c, 0x7b, 0x22, 0x74, 0x79, 0x22, 0x3a, 0x22, 0x74, 0x72, 0x22, 0x2c, 0x22, 0x70, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x5b, 0x30, 0x2c, 0x30, 0x5d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x22, 0x61, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x5b, 0x30, 0x2c, 0x30, 0x5d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x31, 0x7d, 0x2c, 0x22, 0x73, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x5b, 0x31, 0x30, 0x30, 0x2c, 0x31, 0x30, 0x30, 0x5d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x33, 0x7d, 0x2c, 0x22, 0x72, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x36, 0x7d, 0x2c, 0x22, 0x6f, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x31, 0x30, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x37, 0x7d, 0x2c, 0x22, 0x73, 0x6b, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x34, 0x7d, 0x2c, 0x22, 0x73, 0x61, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x35, 0x7d, 0x2c, 0x22, 0x6e, 0x6d, 0x22, 0x3a, 0x22, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x22, 0x7d, 0x5d, 0x2c, 0x22, 0x6e, 0x6d, 0x22, 0x3a, 0x22, 0x45,
-        0x6c, 0x6c, 0x69, 0x70, 0x73, 0x65, 0x20, 0x31, 0x22, 0x2c, 0x22, 0x6e, 0x70, 0x22, 0x3a, 0x33, 0x2c, 0x22, 0x63, 0x69, 0x78, 0x22, 0x3a, 0x32, 0x2c, 0x22, 0x62, 0x6d, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x31, 0x2c, 0x22, 0x6d, 0x6e, 0x22, 0x3a, 0x22, 0x41, 0x44, 0x42, 0x45, 0x20, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x20, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x2c, 0x22, 0x68, 0x64, 0x22, 0x3a, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x7d, 0x2c, 0x7b, 0x22, 0x74, 0x79, 0x22, 0x3a, 0x22, 0x74, 0x6d, 0x22, 0x2c, 0x22, 0x73, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x31, 0x7d, 0x2c, 0x22, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x31, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x5b, 0x7b, 0x22, 0x69, 0x22, 0x3a, 0x7b, 0x22, 0x78, 0x22, 0x3a, 0x5b, 0x30, 0x2e, 0x33, 0x36, 0x38, 0x5d, 0x2c, 0x22, 0x79, 0x22, 0x3a, 0x5b, 0x31, 0x5d, 0x7d, 0x2c, 0x22, 0x6f, 0x22, 0x3a, 0x7b, 0x22, 0x78, 0x22, 0x3a, 0x5b, 0x30, 0x2e, 0x32, 0x35, 0x31, 0x5d, 0x2c, 0x22, 0x79, 0x22, 0x3a, 0x5b, 0x30, 0x5d, 0x7d, 0x2c, 0x22, 0x74, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x73, 0x22, 0x3a, 0x5b, 0x30, 0x5d, 0x7d, 0x2c, 0x7b, 0x22, 0x74, 0x22, 0x3a, 0x34, 0x30, 0x2c, 0x22, 0x73, 0x22, 0x3a, 0x5b, 0x38, 0x34, 0x5d, 0x7d, 0x5d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x22, 0x6f, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x33, 0x7d, 0x2c, 0x22, 0x6d, 0x22, 0x3a, 0x31, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x32, 0x2c, 0x22, 0x6e, 0x6d, 0x22, 0x3a, 0x22, 0x54, 0x72, 0x69, 0x6d, 0x20, 0x50, 0x61, 0x74, 0x68, 0x73, 0x20, 0x31, 0x22, 0x2c, 0x22, 0x6d, 0x6e, 0x22, 0x3a, 0x22, 0x41, 0x44, 0x42, 0x45, 0x20, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x2d, 0x20, 0x54, 0x72, 0x69, 0x6d, 0x22, 0x2c, 0x22, 0x68, 0x64, 0x22, 0x3a, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x7d, 0x5d, 0x2c, 0x22, 0x69, 0x70, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6f, 0x70, 0x22, 0x3a, 0x36, 0x30, 0x2c, 0x22, 0x73, 0x74, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x62, 0x6d, 0x22, 0x3a, 0x30, 0x7d, 0x5d, 0x2c, 0x22, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x73, 0x22, 0x3a, 0x5b, 0x5d, 0x7d,
-        0x00 /*Close the string*/
+    0x7b, 0x22, 0x76, 0x22, 0x3a, 0x22, 0x34, 0x2e, 0x38, 0x2e, 0x30, 0x22, 0x2c, 0x22, 0x6d, 0x65, 0x74, 0x61, 0x22, 0x3a, 0x7b, 0x22, 0x67, 0x22, 0x3a, 0x22, 0x4c, 0x6f, 0x74, 0x74, 0x69, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x41, 0x45, 0x20, 0x31, 0x2e, 0x30, 0x2e, 0x30, 0x22, 0x2c, 0x22, 0x61, 0x22, 0x3a, 0x22, 0x22, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x22, 0x22, 0x2c, 0x22, 0x64, 0x22, 0x3a, 0x22, 0x22, 0x2c, 0x22, 0x74, 0x63, 0x22, 0x3a, 0x22, 0x22, 0x7d, 0x2c, 0x22, 0x66, 0x72, 0x22, 0x3a, 0x36, 0x30, 0x2c, 0x22, 0x69, 0x70, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6f, 0x70, 0x22, 0x3a, 0x36, 0x30, 0x2c, 0x22, 0x77, 0x22, 0x3a, 0x37, 0x32, 0x30, 0x2c, 0x22, 0x68, 0x22, 0x3a, 0x37, 0x32, 0x30, 0x2c, 0x22, 0x6e, 0x6d, 0x22, 0x3a, 0x22, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x2c, 0x22, 0x64, 0x64, 0x64, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x22, 0x3a, 0x5b, 0x5d, 0x2c, 0x22, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x22, 0x3a, 0x5b, 0x7b, 0x22, 0x64, 0x64, 0x64, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x69, 0x6e, 0x64, 0x22, 0x3a, 0x31, 0x2c, 0x22, 0x74, 0x79, 0x22, 0x3a, 0x34, 0x2c, 0x22, 0x6e, 0x6d, 0x22, 0x3a, 0x22, 0x53, 0x68, 0x61, 0x70, 0x65, 0x20, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x20, 0x34, 0x22, 0x2c, 0x22, 0x73, 0x72, 0x22, 0x3a, 0x31, 0x2c, 0x22, 0x6b, 0x73, 0x22, 0x3a, 0x7b, 0x22, 0x6f, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x31, 0x30, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x31, 0x31, 0x7d, 0x2c, 0x22, 0x72, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x31, 0x30, 0x7d, 0x2c, 0x22, 0x70, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x5b, 0x33, 0x33, 0x36, 0x2c, 0x33, 0x39, 0x36, 0x2c, 0x30, 0x5d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x22, 0x61, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x5b, 0x30, 0x2c, 0x30, 0x2c, 0x30, 0x5d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x31, 0x7d, 0x2c, 0x22, 0x73, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x5b, 0x31, 0x30, 0x30, 0x2c, 0x31, 0x30, 0x30, 0x2c, 0x31, 0x30, 0x30, 0x5d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x36, 0x7d, 0x7d, 0x2c, 0x22, 0x61, 0x6f, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x73, 0x68, 0x61, 0x70, 0x65, 0x73, 0x22, 0x3a, 0x5b, 0x7b, 0x22, 0x74, 0x79, 0x22, 0x3a, 0x22, 0x67, 0x72, 0x22, 0x2c, 0x22, 0x69, 0x74, 0x22, 0x3a, 0x5b, 0x7b, 0x22, 0x69, 0x6e, 0x64, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x74, 0x79, 0x22, 0x3a, 0x22, 0x73, 0x68, 0x22, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x31, 0x2c, 0x22, 0x6b, 0x73, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x7b, 0x22, 0x69, 0x22, 0x3a, 0x5b, 0x5b, 0x30, 0x2c, 0x30, 0x5d, 0x2c, 0x5b, 0x30, 0x2c, 0x30, 0x5d, 0x2c, 0x5b, 0x30, 0x2c, 0x30, 0x5d, 0x5d, 0x2c, 0x22, 0x6f, 0x22, 0x3a, 0x5b, 0x5b, 0x30, 0x2c, 0x30, 0x5d, 0x2c, 0x5b, 0x30, 0x2c, 0x30, 0x5d, 0x2c, 0x5b, 0x30, 0x2c, 0x30, 0x5d, 0x5d, 0x2c, 0x22, 0x76, 0x22, 0x3a, 0x5b, 0x5b, 0x2d, 0x31, 0x32, 0x33, 0x2c, 0x2d, 0x36, 0x36, 0x5d, 0x2c, 0x5b, 0x36, 0x2c, 0x34, 0x35, 0x5d, 0x2c, 0x5b, 0x33, 0x32, 0x31, 0x2c, 0x2d, 0x32, 0x36, 0x34, 0x5d, 0x5d, 0x2c, 0x22, 0x63, 0x22, 0x3a, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x7d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x22, 0x6e, 0x6d, 0x22, 0x3a, 0x22, 0x50, 0x61, 0x74, 0x68, 0x20, 0x31, 0x22, 0x2c, 0x22, 0x6d, 0x6e, 0x22, 0x3a, 0x22, 0x41, 0x44, 0x42, 0x45, 0x20, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x20, 0x53, 0x68, 0x61, 0x70, 0x65, 0x20, 0x2d, 0x20, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x2c, 0x22, 0x68, 0x64, 0x22, 0x3a, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x7d, 0x2c, 0x7b, 0x22, 0x74, 0x79, 0x22, 0x3a, 0x22, 0x73, 0x74, 0x22, 0x2c, 0x22, 0x63, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x5b, 0x30, 0x2e, 0x32, 0x39, 0x38, 0x30, 0x33, 0x39, 0x32, 0x31, 0x35, 0x36, 0x38, 0x36, 0x2c, 0x30, 0x2e, 0x36, 0x38, 0x36, 0x32, 0x37, 0x34, 0x35, 0x30, 0x39, 0x38, 0x30, 0x34, 0x2c, 0x30, 0x2e, 0x33, 0x31, 0x33, 0x37, 0x32, 0x35,
+    0x34, 0x39, 0x30, 0x31, 0x39, 0x36, 0x2c, 0x31, 0x5d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x33, 0x7d, 0x2c, 0x22, 0x6f, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x31, 0x30, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x34, 0x7d, 0x2c, 0x22, 0x77, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x35, 0x32, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x35, 0x7d, 0x2c, 0x22, 0x6c, 0x63, 0x22, 0x3a, 0x32, 0x2c, 0x22, 0x6c, 0x6a, 0x22, 0x3a, 0x32, 0x2c, 0x22, 0x62, 0x6d, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6e, 0x6d, 0x22, 0x3a, 0x22, 0x53, 0x74, 0x72, 0x6f, 0x6b, 0x65, 0x20, 0x31, 0x22, 0x2c, 0x22, 0x6d, 0x6e, 0x22, 0x3a, 0x22, 0x41, 0x44, 0x42, 0x45, 0x20, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x20, 0x47, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x20, 0x2d, 0x20, 0x53, 0x74, 0x72, 0x6f, 0x6b, 0x65, 0x22, 0x2c, 0x22, 0x68, 0x64, 0x22, 0x3a, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x7d, 0x2c, 0x7b, 0x22, 0x74, 0x79, 0x22, 0x3a, 0x22, 0x74, 0x72, 0x22, 0x2c, 0x22, 0x70, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x5b, 0x30, 0x2c, 0x30, 0x5d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x22, 0x61, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x5b, 0x30, 0x2c, 0x30, 0x5d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x31, 0x7d, 0x2c, 0x22, 0x73, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x5b, 0x31, 0x30, 0x30, 0x2c, 0x31, 0x30, 0x30, 0x5d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x33, 0x7d, 0x2c, 0x22, 0x72, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x36, 0x7d, 0x2c, 0x22, 0x6f, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x31, 0x30, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x37, 0x7d, 0x2c, 0x22, 0x73, 0x6b, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x34, 0x7d, 0x2c, 0x22, 0x73, 0x61, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x35, 0x7d, 0x2c, 0x22, 0x6e, 0x6d, 0x22, 0x3a, 0x22, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x22, 0x7d, 0x5d, 0x2c, 0x22, 0x6e, 0x6d, 0x22, 0x3a, 0x22, 0x53, 0x68, 0x61, 0x70, 0x65, 0x20, 0x31, 0x22, 0x2c, 0x22, 0x6e, 0x70, 0x22, 0x3a, 0x33, 0x2c, 0x22, 0x63, 0x69, 0x78, 0x22, 0x3a, 0x32, 0x2c, 0x22, 0x62, 0x6d, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x31, 0x2c, 0x22, 0x6d, 0x6e, 0x22, 0x3a, 0x22, 0x41, 0x44, 0x42, 0x45, 0x20, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x20, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x2c, 0x22, 0x68, 0x64, 0x22, 0x3a, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x7d, 0x2c, 0x7b, 0x22, 0x74, 0x79, 0x22, 0x3a, 0x22, 0x74, 0x6d, 0x22, 0x2c, 0x22, 0x73, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x31, 0x7d, 0x2c, 0x22, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x31, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x5b, 0x7b, 0x22, 0x69, 0x22, 0x3a, 0x7b, 0x22, 0x78, 0x22, 0x3a, 0x5b, 0x30, 0x2e, 0x33, 0x36, 0x38, 0x5d, 0x2c, 0x22, 0x79, 0x22, 0x3a, 0x5b, 0x31, 0x5d, 0x7d, 0x2c, 0x22, 0x6f, 0x22, 0x3a, 0x7b, 0x22, 0x78, 0x22, 0x3a, 0x5b, 0x30, 0x2e, 0x32, 0x35, 0x31, 0x5d, 0x2c, 0x22, 0x79, 0x22, 0x3a, 0x5b, 0x30, 0x5d, 0x7d, 0x2c, 0x22, 0x74, 0x22, 0x3a, 0x31, 0x30, 0x2c, 0x22, 0x73, 0x22, 0x3a, 0x5b, 0x30, 0x5d, 0x7d, 0x2c, 0x7b, 0x22, 0x74, 0x22, 0x3a, 0x34, 0x35, 0x2c, 0x22, 0x73, 0x22, 0x3a, 0x5b, 0x39, 0x32, 0x5d, 0x7d, 0x5d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x22, 0x6f, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x33, 0x7d, 0x2c, 0x22, 0x6d, 0x22, 0x3a, 0x31, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x32, 0x2c, 0x22, 0x6e, 0x6d, 0x22, 0x3a, 0x22, 0x54, 0x72, 0x69, 0x6d, 0x20, 0x50, 0x61, 0x74, 0x68, 0x73, 0x20, 0x31, 0x22, 0x2c, 0x22, 0x6d, 0x6e, 0x22, 0x3a, 0x22, 0x41, 0x44, 0x42, 0x45, 0x20, 0x56, 0x65,
+    0x63, 0x74, 0x6f, 0x72, 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x2d, 0x20, 0x54, 0x72, 0x69, 0x6d, 0x22, 0x2c, 0x22, 0x68, 0x64, 0x22, 0x3a, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x7d, 0x5d, 0x2c, 0x22, 0x69, 0x70, 0x22, 0x3a, 0x31, 0x30, 0x2c, 0x22, 0x6f, 0x70, 0x22, 0x3a, 0x36, 0x30, 0x2c, 0x22, 0x73, 0x74, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x62, 0x6d, 0x22, 0x3a, 0x30, 0x7d, 0x2c, 0x7b, 0x22, 0x64, 0x64, 0x64, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x69, 0x6e, 0x64, 0x22, 0x3a, 0x32, 0x2c, 0x22, 0x74, 0x79, 0x22, 0x3a, 0x34, 0x2c, 0x22, 0x6e, 0x6d, 0x22, 0x3a, 0x22, 0x53, 0x68, 0x61, 0x70, 0x65, 0x20, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x20, 0x33, 0x22, 0x2c, 0x22, 0x73, 0x72, 0x22, 0x3a, 0x31, 0x2c, 0x22, 0x6b, 0x73, 0x22, 0x3a, 0x7b, 0x22, 0x6f, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x31, 0x30, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x31, 0x31, 0x7d, 0x2c, 0x22, 0x72, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x31, 0x30, 0x7d, 0x2c, 0x22, 0x70, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x5b, 0x33, 0x33, 0x36, 0x2c, 0x33, 0x39, 0x36, 0x2c, 0x30, 0x5d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x22, 0x61, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x5b, 0x30, 0x2c, 0x30, 0x2c, 0x30, 0x5d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x31, 0x7d, 0x2c, 0x22, 0x73, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x5b, 0x31, 0x30, 0x30, 0x2c, 0x31, 0x30, 0x30, 0x2c, 0x31, 0x30, 0x30, 0x5d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x36, 0x7d, 0x7d, 0x2c, 0x22, 0x61, 0x6f, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x73, 0x68, 0x61, 0x70, 0x65, 0x73, 0x22, 0x3a, 0x5b, 0x7b, 0x22, 0x74, 0x79, 0x22, 0x3a, 0x22, 0x67, 0x72, 0x22, 0x2c, 0x22, 0x69, 0x74, 0x22, 0x3a, 0x5b, 0x7b, 0x22, 0x69, 0x6e, 0x64, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x74, 0x79, 0x22, 0x3a, 0x22, 0x73, 0x68, 0x22, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x31, 0x2c, 0x22, 0x6b, 0x73, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x7b, 0x22, 0x69, 0x22, 0x3a, 0x5b, 0x5b, 0x30, 0x2c, 0x30, 0x5d, 0x2c, 0x5b, 0x30, 0x2c, 0x30, 0x5d, 0x2c, 0x5b, 0x30, 0x2c, 0x30, 0x5d, 0x5d, 0x2c, 0x22, 0x6f, 0x22, 0x3a, 0x5b, 0x5b, 0x30, 0x2c, 0x30, 0x5d, 0x2c, 0x5b, 0x30, 0x2c, 0x30, 0x5d, 0x2c, 0x5b, 0x30, 0x2c, 0x30, 0x5d, 0x5d, 0x2c, 0x22, 0x76, 0x22, 0x3a, 0x5b, 0x5b, 0x2d, 0x31, 0x32, 0x33, 0x2c, 0x2d, 0x36, 0x36, 0x5d, 0x2c, 0x5b, 0x36, 0x2c, 0x34, 0x35, 0x5d, 0x2c, 0x5b, 0x33, 0x32, 0x31, 0x2c, 0x2d, 0x32, 0x36, 0x34, 0x5d, 0x5d, 0x2c, 0x22, 0x63, 0x22, 0x3a, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x7d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x22, 0x6e, 0x6d, 0x22, 0x3a, 0x22, 0x50, 0x61, 0x74, 0x68, 0x20, 0x31, 0x22, 0x2c, 0x22, 0x6d, 0x6e, 0x22, 0x3a, 0x22, 0x41, 0x44, 0x42, 0x45, 0x20, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x20, 0x53, 0x68, 0x61, 0x70, 0x65, 0x20, 0x2d, 0x20, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x2c, 0x22, 0x68, 0x64, 0x22, 0x3a, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x7d, 0x2c, 0x7b, 0x22, 0x74, 0x79, 0x22, 0x3a, 0x22, 0x73, 0x74, 0x22, 0x2c, 0x22, 0x63, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x5b, 0x30, 0x2e, 0x32, 0x31, 0x39, 0x36, 0x30, 0x37, 0x38, 0x34, 0x33, 0x31, 0x33, 0x37, 0x2c, 0x30, 0x2e, 0x35, 0x35, 0x36, 0x38, 0x36, 0x32, 0x37, 0x34, 0x35, 0x30, 0x39, 0x38, 0x2c, 0x30, 0x2e, 0x32, 0x33, 0x35, 0x32, 0x39, 0x34, 0x31, 0x31, 0x37, 0x36, 0x34, 0x37, 0x2c, 0x31, 0x5d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x33, 0x7d, 0x2c, 0x22, 0x6f, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x31, 0x30, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x34, 0x7d, 0x2c, 0x22, 0x77, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x34, 0x38, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x35, 0x7d, 0x2c, 0x22, 0x6c, 0x63, 0x22, 0x3a, 0x32, 0x2c, 0x22, 0x6c, 0x6a, 0x22, 0x3a, 0x32, 0x2c, 0x22, 0x62, 0x6d, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6e, 0x6d, 0x22, 0x3a, 0x22,
+    0x53, 0x74, 0x72, 0x6f, 0x6b, 0x65, 0x20, 0x31, 0x22, 0x2c, 0x22, 0x6d, 0x6e, 0x22, 0x3a, 0x22, 0x41, 0x44, 0x42, 0x45, 0x20, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x20, 0x47, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x20, 0x2d, 0x20, 0x53, 0x74, 0x72, 0x6f, 0x6b, 0x65, 0x22, 0x2c, 0x22, 0x68, 0x64, 0x22, 0x3a, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x7d, 0x2c, 0x7b, 0x22, 0x74, 0x79, 0x22, 0x3a, 0x22, 0x74, 0x72, 0x22, 0x2c, 0x22, 0x70, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x5b, 0x30, 0x2c, 0x30, 0x5d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x22, 0x61, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x5b, 0x30, 0x2c, 0x30, 0x5d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x31, 0x7d, 0x2c, 0x22, 0x73, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x5b, 0x31, 0x30, 0x30, 0x2c, 0x31, 0x30, 0x30, 0x5d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x33, 0x7d, 0x2c, 0x22, 0x72, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x36, 0x7d, 0x2c, 0x22, 0x6f, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x31, 0x30, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x37, 0x7d, 0x2c, 0x22, 0x73, 0x6b, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x34, 0x7d, 0x2c, 0x22, 0x73, 0x61, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x35, 0x7d, 0x2c, 0x22, 0x6e, 0x6d, 0x22, 0x3a, 0x22, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x22, 0x7d, 0x5d, 0x2c, 0x22, 0x6e, 0x6d, 0x22, 0x3a, 0x22, 0x53, 0x68, 0x61, 0x70, 0x65, 0x20, 0x31, 0x22, 0x2c, 0x22, 0x6e, 0x70, 0x22, 0x3a, 0x33, 0x2c, 0x22, 0x63, 0x69, 0x78, 0x22, 0x3a, 0x32, 0x2c, 0x22, 0x62, 0x6d, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x31, 0x2c, 0x22, 0x6d, 0x6e, 0x22, 0x3a, 0x22, 0x41, 0x44, 0x42, 0x45, 0x20, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x20, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x2c, 0x22, 0x68, 0x64, 0x22, 0x3a, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x7d, 0x2c, 0x7b, 0x22, 0x74, 0x79, 0x22, 0x3a, 0x22, 0x74, 0x6d, 0x22, 0x2c, 0x22, 0x73, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x31, 0x7d, 0x2c, 0x22, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x31, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x5b, 0x7b, 0x22, 0x69, 0x22, 0x3a, 0x7b, 0x22, 0x78, 0x22, 0x3a, 0x5b, 0x30, 0x2e, 0x33, 0x36, 0x38, 0x5d, 0x2c, 0x22, 0x79, 0x22, 0x3a, 0x5b, 0x31, 0x5d, 0x7d, 0x2c, 0x22, 0x6f, 0x22, 0x3a, 0x7b, 0x22, 0x78, 0x22, 0x3a, 0x5b, 0x30, 0x2e, 0x32, 0x35, 0x31, 0x5d, 0x2c, 0x22, 0x79, 0x22, 0x3a, 0x5b, 0x30, 0x5d, 0x7d, 0x2c, 0x22, 0x74, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x73, 0x22, 0x3a, 0x5b, 0x30, 0x5d, 0x7d, 0x2c, 0x7b, 0x22, 0x74, 0x22, 0x3a, 0x34, 0x30, 0x2c, 0x22, 0x73, 0x22, 0x3a, 0x5b, 0x31, 0x30, 0x30, 0x5d, 0x7d, 0x5d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x22, 0x6f, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x33, 0x7d, 0x2c, 0x22, 0x6d, 0x22, 0x3a, 0x31, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x32, 0x2c, 0x22, 0x6e, 0x6d, 0x22, 0x3a, 0x22, 0x54, 0x72, 0x69, 0x6d, 0x20, 0x50, 0x61, 0x74, 0x68, 0x73, 0x20, 0x31, 0x22, 0x2c, 0x22, 0x6d, 0x6e, 0x22, 0x3a, 0x22, 0x41, 0x44, 0x42, 0x45, 0x20, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x2d, 0x20, 0x54, 0x72, 0x69, 0x6d, 0x22, 0x2c, 0x22, 0x68, 0x64, 0x22, 0x3a, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x7d, 0x5d, 0x2c, 0x22, 0x69, 0x70, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6f, 0x70, 0x22, 0x3a, 0x36, 0x30, 0x2c, 0x22, 0x73, 0x74, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x62, 0x6d, 0x22, 0x3a, 0x30, 0x7d, 0x2c, 0x7b, 0x22, 0x64, 0x64, 0x64, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x69, 0x6e, 0x64, 0x22, 0x3a, 0x33, 0x2c, 0x22, 0x74, 0x79, 0x22, 0x3a, 0x34, 0x2c, 0x22, 0x6e, 0x6d, 0x22, 0x3a, 0x22, 0x53, 0x68, 0x61, 0x70, 0x65,
+    0x20, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x20, 0x32, 0x22, 0x2c, 0x22, 0x73, 0x72, 0x22, 0x3a, 0x31, 0x2c, 0x22, 0x6b, 0x73, 0x22, 0x3a, 0x7b, 0x22, 0x6f, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x31, 0x30, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x31, 0x31, 0x7d, 0x2c, 0x22, 0x72, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x38, 0x37, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x31, 0x30, 0x7d, 0x2c, 0x22, 0x70, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x5b, 0x33, 0x33, 0x36, 0x2c, 0x33, 0x36, 0x36, 0x2c, 0x30, 0x5d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x22, 0x61, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x5b, 0x30, 0x2c, 0x30, 0x2c, 0x30, 0x5d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x31, 0x7d, 0x2c, 0x22, 0x73, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x5b, 0x31, 0x30, 0x30, 0x2c, 0x31, 0x30, 0x30, 0x2c, 0x31, 0x30, 0x30, 0x5d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x36, 0x7d, 0x7d, 0x2c, 0x22, 0x61, 0x6f, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x73, 0x68, 0x61, 0x70, 0x65, 0x73, 0x22, 0x3a, 0x5b, 0x7b, 0x22, 0x74, 0x79, 0x22, 0x3a, 0x22, 0x67, 0x72, 0x22, 0x2c, 0x22, 0x69, 0x74, 0x22, 0x3a, 0x5b, 0x7b, 0x22, 0x64, 0x22, 0x3a, 0x31, 0x2c, 0x22, 0x74, 0x79, 0x22, 0x3a, 0x22, 0x65, 0x6c, 0x22, 0x2c, 0x22, 0x73, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x5b, 0x35, 0x32, 0x30, 0x2c, 0x35, 0x32, 0x30, 0x5d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x22, 0x70, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x5b, 0x30, 0x2c, 0x30, 0x5d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x33, 0x7d, 0x2c, 0x22, 0x6e, 0x6d, 0x22, 0x3a, 0x22, 0x45, 0x6c, 0x6c, 0x69, 0x70, 0x73, 0x65, 0x20, 0x50, 0x61, 0x74, 0x68, 0x20, 0x31, 0x22, 0x2c, 0x22, 0x6d, 0x6e, 0x22, 0x3a, 0x22, 0x41, 0x44, 0x42, 0x45, 0x20, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x20, 0x53, 0x68, 0x61, 0x70, 0x65, 0x20, 0x2d, 0x20, 0x45, 0x6c, 0x6c, 0x69, 0x70, 0x73, 0x65, 0x22, 0x2c, 0x22, 0x68, 0x64, 0x22, 0x3a, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x7d, 0x2c, 0x7b, 0x22, 0x74, 0x79, 0x22, 0x3a, 0x22, 0x73, 0x74, 0x22, 0x2c, 0x22, 0x63, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x5b, 0x30, 0x2e, 0x32, 0x39, 0x38, 0x30, 0x33, 0x39, 0x32, 0x31, 0x35, 0x36, 0x38, 0x36, 0x2c, 0x30, 0x2e, 0x36, 0x38, 0x36, 0x32, 0x37, 0x34, 0x35, 0x30, 0x39, 0x38, 0x30, 0x34, 0x2c, 0x30, 0x2e, 0x33, 0x31, 0x33, 0x37, 0x32, 0x35, 0x34, 0x39, 0x30, 0x31, 0x39, 0x36, 0x2c, 0x31, 0x5d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x33, 0x7d, 0x2c, 0x22, 0x6f, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x31, 0x30, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x34, 0x7d, 0x2c, 0x22, 0x77, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x35, 0x32, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x35, 0x7d, 0x2c, 0x22, 0x6c, 0x63, 0x22, 0x3a, 0x32, 0x2c, 0x22, 0x6c, 0x6a, 0x22, 0x3a, 0x31, 0x2c, 0x22, 0x6d, 0x6c, 0x22, 0x3a, 0x34, 0x2c, 0x22, 0x62, 0x6d, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6e, 0x6d, 0x22, 0x3a, 0x22, 0x53, 0x74, 0x72, 0x6f, 0x6b, 0x65, 0x20, 0x31, 0x22, 0x2c, 0x22, 0x6d, 0x6e, 0x22, 0x3a, 0x22, 0x41, 0x44, 0x42, 0x45, 0x20, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x20, 0x47, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x20, 0x2d, 0x20, 0x53, 0x74, 0x72, 0x6f, 0x6b, 0x65, 0x22, 0x2c, 0x22, 0x68, 0x64, 0x22, 0x3a, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x7d, 0x2c, 0x7b, 0x22, 0x74, 0x79, 0x22, 0x3a, 0x22, 0x74, 0x72, 0x22, 0x2c, 0x22, 0x70, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x5b, 0x30, 0x2c, 0x30, 0x5d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x22, 0x61, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x5b, 0x30, 0x2c, 0x30, 0x5d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x31, 0x7d, 0x2c, 0x22, 0x73, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x5b, 0x31, 0x30, 0x30, 0x2c,
+    0x31, 0x30, 0x30, 0x5d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x33, 0x7d, 0x2c, 0x22, 0x72, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x36, 0x7d, 0x2c, 0x22, 0x6f, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x31, 0x30, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x37, 0x7d, 0x2c, 0x22, 0x73, 0x6b, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x34, 0x7d, 0x2c, 0x22, 0x73, 0x61, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x35, 0x7d, 0x2c, 0x22, 0x6e, 0x6d, 0x22, 0x3a, 0x22, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x22, 0x7d, 0x5d, 0x2c, 0x22, 0x6e, 0x6d, 0x22, 0x3a, 0x22, 0x45, 0x6c, 0x6c, 0x69, 0x70, 0x73, 0x65, 0x20, 0x31, 0x22, 0x2c, 0x22, 0x6e, 0x70, 0x22, 0x3a, 0x33, 0x2c, 0x22, 0x63, 0x69, 0x78, 0x22, 0x3a, 0x32, 0x2c, 0x22, 0x62, 0x6d, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x31, 0x2c, 0x22, 0x6d, 0x6e, 0x22, 0x3a, 0x22, 0x41, 0x44, 0x42, 0x45, 0x20, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x20, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x2c, 0x22, 0x68, 0x64, 0x22, 0x3a, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x7d, 0x2c, 0x7b, 0x22, 0x74, 0x79, 0x22, 0x3a, 0x22, 0x74, 0x6d, 0x22, 0x2c, 0x22, 0x73, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x31, 0x7d, 0x2c, 0x22, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x31, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x5b, 0x7b, 0x22, 0x69, 0x22, 0x3a, 0x7b, 0x22, 0x78, 0x22, 0x3a, 0x5b, 0x30, 0x2e, 0x33, 0x33, 0x37, 0x5d, 0x2c, 0x22, 0x79, 0x22, 0x3a, 0x5b, 0x31, 0x5d, 0x7d, 0x2c, 0x22, 0x6f, 0x22, 0x3a, 0x7b, 0x22, 0x78, 0x22, 0x3a, 0x5b, 0x30, 0x2e, 0x33, 0x33, 0x34, 0x5d, 0x2c, 0x22, 0x79, 0x22, 0x3a, 0x5b, 0x30, 0x5d, 0x7d, 0x2c, 0x22, 0x74, 0x22, 0x3a, 0x31, 0x30, 0x2c, 0x22, 0x73, 0x22, 0x3a, 0x5b, 0x30, 0x5d, 0x7d, 0x2c, 0x7b, 0x22, 0x74, 0x22, 0x3a, 0x34, 0x35, 0x2c, 0x22, 0x73, 0x22, 0x3a, 0x5b, 0x38, 0x30, 0x5d, 0x7d, 0x5d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x22, 0x6f, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x33, 0x7d, 0x2c, 0x22, 0x6d, 0x22, 0x3a, 0x31, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x32, 0x2c, 0x22, 0x6e, 0x6d, 0x22, 0x3a, 0x22, 0x54, 0x72, 0x69, 0x6d, 0x20, 0x50, 0x61, 0x74, 0x68, 0x73, 0x20, 0x31, 0x22, 0x2c, 0x22, 0x6d, 0x6e, 0x22, 0x3a, 0x22, 0x41, 0x44, 0x42, 0x45, 0x20, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x2d, 0x20, 0x54, 0x72, 0x69, 0x6d, 0x22, 0x2c, 0x22, 0x68, 0x64, 0x22, 0x3a, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x7d, 0x5d, 0x2c, 0x22, 0x69, 0x70, 0x22, 0x3a, 0x31, 0x30, 0x2c, 0x22, 0x6f, 0x70, 0x22, 0x3a, 0x36, 0x30, 0x2c, 0x22, 0x73, 0x74, 0x22, 0x3a, 0x31, 0x30, 0x2c, 0x22, 0x62, 0x6d, 0x22, 0x3a, 0x30, 0x7d, 0x2c, 0x7b, 0x22, 0x64, 0x64, 0x64, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x69, 0x6e, 0x64, 0x22, 0x3a, 0x34, 0x2c, 0x22, 0x74, 0x79, 0x22, 0x3a, 0x34, 0x2c, 0x22, 0x6e, 0x6d, 0x22, 0x3a, 0x22, 0x53, 0x68, 0x61, 0x70, 0x65, 0x20, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x20, 0x31, 0x22, 0x2c, 0x22, 0x73, 0x72, 0x22, 0x3a, 0x31, 0x2c, 0x22, 0x6b, 0x73, 0x22, 0x3a, 0x7b, 0x22, 0x6f, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x31, 0x30, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x31, 0x31, 0x7d, 0x2c, 0x22, 0x72, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x38, 0x37, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x31, 0x30, 0x7d, 0x2c, 0x22, 0x70, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x5b, 0x33, 0x33, 0x36, 0x2c, 0x33, 0x36, 0x36, 0x2c, 0x30, 0x5d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x22, 0x61, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x5b, 0x30, 0x2c, 0x30, 0x2c, 0x30, 0x5d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x31, 0x7d,
+    0x2c, 0x22, 0x73, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x5b, 0x31, 0x30, 0x30, 0x2c, 0x31, 0x30, 0x30, 0x2c, 0x31, 0x30, 0x30, 0x5d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x36, 0x7d, 0x7d, 0x2c, 0x22, 0x61, 0x6f, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x73, 0x68, 0x61, 0x70, 0x65, 0x73, 0x22, 0x3a, 0x5b, 0x7b, 0x22, 0x74, 0x79, 0x22, 0x3a, 0x22, 0x67, 0x72, 0x22, 0x2c, 0x22, 0x69, 0x74, 0x22, 0x3a, 0x5b, 0x7b, 0x22, 0x64, 0x22, 0x3a, 0x31, 0x2c, 0x22, 0x74, 0x79, 0x22, 0x3a, 0x22, 0x65, 0x6c, 0x22, 0x2c, 0x22, 0x73, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x5b, 0x35, 0x32, 0x30, 0x2c, 0x35, 0x32, 0x30, 0x5d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x22, 0x70, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x5b, 0x30, 0x2c, 0x30, 0x5d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x33, 0x7d, 0x2c, 0x22, 0x6e, 0x6d, 0x22, 0x3a, 0x22, 0x45, 0x6c, 0x6c, 0x69, 0x70, 0x73, 0x65, 0x20, 0x50, 0x61, 0x74, 0x68, 0x20, 0x31, 0x22, 0x2c, 0x22, 0x6d, 0x6e, 0x22, 0x3a, 0x22, 0x41, 0x44, 0x42, 0x45, 0x20, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x20, 0x53, 0x68, 0x61, 0x70, 0x65, 0x20, 0x2d, 0x20, 0x45, 0x6c, 0x6c, 0x69, 0x70, 0x73, 0x65, 0x22, 0x2c, 0x22, 0x68, 0x64, 0x22, 0x3a, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x7d, 0x2c, 0x7b, 0x22, 0x74, 0x79, 0x22, 0x3a, 0x22, 0x73, 0x74, 0x22, 0x2c, 0x22, 0x63, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x5b, 0x30, 0x2e, 0x32, 0x31, 0x39, 0x36, 0x30, 0x37, 0x38, 0x34, 0x33, 0x31, 0x33, 0x37, 0x2c, 0x30, 0x2e, 0x35, 0x35, 0x36, 0x38, 0x36, 0x32, 0x37, 0x34, 0x35, 0x30, 0x39, 0x38, 0x2c, 0x30, 0x2e, 0x32, 0x33, 0x35, 0x32, 0x39, 0x34, 0x31, 0x31, 0x37, 0x36, 0x34, 0x37, 0x2c, 0x31, 0x5d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x33, 0x7d, 0x2c, 0x22, 0x6f, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x31, 0x30, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x34, 0x7d, 0x2c, 0x22, 0x77, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x34, 0x38, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x35, 0x7d, 0x2c, 0x22, 0x6c, 0x63, 0x22, 0x3a, 0x32, 0x2c, 0x22, 0x6c, 0x6a, 0x22, 0x3a, 0x31, 0x2c, 0x22, 0x6d, 0x6c, 0x22, 0x3a, 0x34, 0x2c, 0x22, 0x62, 0x6d, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6e, 0x6d, 0x22, 0x3a, 0x22, 0x53, 0x74, 0x72, 0x6f, 0x6b, 0x65, 0x20, 0x31, 0x22, 0x2c, 0x22, 0x6d, 0x6e, 0x22, 0x3a, 0x22, 0x41, 0x44, 0x42, 0x45, 0x20, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x20, 0x47, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x20, 0x2d, 0x20, 0x53, 0x74, 0x72, 0x6f, 0x6b, 0x65, 0x22, 0x2c, 0x22, 0x68, 0x64, 0x22, 0x3a, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x7d, 0x2c, 0x7b, 0x22, 0x74, 0x79, 0x22, 0x3a, 0x22, 0x74, 0x72, 0x22, 0x2c, 0x22, 0x70, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x5b, 0x30, 0x2c, 0x30, 0x5d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x22, 0x61, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x5b, 0x30, 0x2c, 0x30, 0x5d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x31, 0x7d, 0x2c, 0x22, 0x73, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x5b, 0x31, 0x30, 0x30, 0x2c, 0x31, 0x30, 0x30, 0x5d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x33, 0x7d, 0x2c, 0x22, 0x72, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x36, 0x7d, 0x2c, 0x22, 0x6f, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x31, 0x30, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x37, 0x7d, 0x2c, 0x22, 0x73, 0x6b, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x34, 0x7d, 0x2c, 0x22, 0x73, 0x61, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x35, 0x7d, 0x2c, 0x22, 0x6e, 0x6d, 0x22, 0x3a, 0x22, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x22, 0x7d, 0x5d, 0x2c, 0x22, 0x6e, 0x6d, 0x22, 0x3a, 0x22, 0x45,
+    0x6c, 0x6c, 0x69, 0x70, 0x73, 0x65, 0x20, 0x31, 0x22, 0x2c, 0x22, 0x6e, 0x70, 0x22, 0x3a, 0x33, 0x2c, 0x22, 0x63, 0x69, 0x78, 0x22, 0x3a, 0x32, 0x2c, 0x22, 0x62, 0x6d, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x31, 0x2c, 0x22, 0x6d, 0x6e, 0x22, 0x3a, 0x22, 0x41, 0x44, 0x42, 0x45, 0x20, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x20, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x2c, 0x22, 0x68, 0x64, 0x22, 0x3a, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x7d, 0x2c, 0x7b, 0x22, 0x74, 0x79, 0x22, 0x3a, 0x22, 0x74, 0x6d, 0x22, 0x2c, 0x22, 0x73, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x31, 0x7d, 0x2c, 0x22, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x31, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x5b, 0x7b, 0x22, 0x69, 0x22, 0x3a, 0x7b, 0x22, 0x78, 0x22, 0x3a, 0x5b, 0x30, 0x2e, 0x33, 0x36, 0x38, 0x5d, 0x2c, 0x22, 0x79, 0x22, 0x3a, 0x5b, 0x31, 0x5d, 0x7d, 0x2c, 0x22, 0x6f, 0x22, 0x3a, 0x7b, 0x22, 0x78, 0x22, 0x3a, 0x5b, 0x30, 0x2e, 0x32, 0x35, 0x31, 0x5d, 0x2c, 0x22, 0x79, 0x22, 0x3a, 0x5b, 0x30, 0x5d, 0x7d, 0x2c, 0x22, 0x74, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x73, 0x22, 0x3a, 0x5b, 0x30, 0x5d, 0x7d, 0x2c, 0x7b, 0x22, 0x74, 0x22, 0x3a, 0x34, 0x30, 0x2c, 0x22, 0x73, 0x22, 0x3a, 0x5b, 0x38, 0x34, 0x5d, 0x7d, 0x5d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x22, 0x6f, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x33, 0x7d, 0x2c, 0x22, 0x6d, 0x22, 0x3a, 0x31, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x32, 0x2c, 0x22, 0x6e, 0x6d, 0x22, 0x3a, 0x22, 0x54, 0x72, 0x69, 0x6d, 0x20, 0x50, 0x61, 0x74, 0x68, 0x73, 0x20, 0x31, 0x22, 0x2c, 0x22, 0x6d, 0x6e, 0x22, 0x3a, 0x22, 0x41, 0x44, 0x42, 0x45, 0x20, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x2d, 0x20, 0x54, 0x72, 0x69, 0x6d, 0x22, 0x2c, 0x22, 0x68, 0x64, 0x22, 0x3a, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x7d, 0x5d, 0x2c, 0x22, 0x69, 0x70, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6f, 0x70, 0x22, 0x3a, 0x36, 0x30, 0x2c, 0x22, 0x73, 0x74, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x62, 0x6d, 0x22, 0x3a, 0x30, 0x7d, 0x5d, 0x2c, 0x22, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x73, 0x22, 0x3a, 0x5b, 0x5d, 0x7d,
+    0x00 /*Close the string*/
 };
 
 #endif
index 6a7721f..0291c11 100644 (file)
@@ -19,6 +19,6 @@ lv_example_rlottie_approve = bytes([
         0x31, 0x30, 0x30, 0x5d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x33, 0x7d, 0x2c, 0x22, 0x72, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x36, 0x7d, 0x2c, 0x22, 0x6f, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x31, 0x30, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x37, 0x7d, 0x2c, 0x22, 0x73, 0x6b, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x34, 0x7d, 0x2c, 0x22, 0x73, 0x61, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x35, 0x7d, 0x2c, 0x22, 0x6e, 0x6d, 0x22, 0x3a, 0x22, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x22, 0x7d, 0x5d, 0x2c, 0x22, 0x6e, 0x6d, 0x22, 0x3a, 0x22, 0x45, 0x6c, 0x6c, 0x69, 0x70, 0x73, 0x65, 0x20, 0x31, 0x22, 0x2c, 0x22, 0x6e, 0x70, 0x22, 0x3a, 0x33, 0x2c, 0x22, 0x63, 0x69, 0x78, 0x22, 0x3a, 0x32, 0x2c, 0x22, 0x62, 0x6d, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x31, 0x2c, 0x22, 0x6d, 0x6e, 0x22, 0x3a, 0x22, 0x41, 0x44, 0x42, 0x45, 0x20, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x20, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x2c, 0x22, 0x68, 0x64, 0x22, 0x3a, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x7d, 0x2c, 0x7b, 0x22, 0x74, 0x79, 0x22, 0x3a, 0x22, 0x74, 0x6d, 0x22, 0x2c, 0x22, 0x73, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x31, 0x7d, 0x2c, 0x22, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x31, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x5b, 0x7b, 0x22, 0x69, 0x22, 0x3a, 0x7b, 0x22, 0x78, 0x22, 0x3a, 0x5b, 0x30, 0x2e, 0x33, 0x33, 0x37, 0x5d, 0x2c, 0x22, 0x79, 0x22, 0x3a, 0x5b, 0x31, 0x5d, 0x7d, 0x2c, 0x22, 0x6f, 0x22, 0x3a, 0x7b, 0x22, 0x78, 0x22, 0x3a, 0x5b, 0x30, 0x2e, 0x33, 0x33, 0x34, 0x5d, 0x2c, 0x22, 0x79, 0x22, 0x3a, 0x5b, 0x30, 0x5d, 0x7d, 0x2c, 0x22, 0x74, 0x22, 0x3a, 0x31, 0x30, 0x2c, 0x22, 0x73, 0x22, 0x3a, 0x5b, 0x30, 0x5d, 0x7d, 0x2c, 0x7b, 0x22, 0x74, 0x22, 0x3a, 0x34, 0x35, 0x2c, 0x22, 0x73, 0x22, 0x3a, 0x5b, 0x38, 0x30, 0x5d, 0x7d, 0x5d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x22, 0x6f, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x33, 0x7d, 0x2c, 0x22, 0x6d, 0x22, 0x3a, 0x31, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x32, 0x2c, 0x22, 0x6e, 0x6d, 0x22, 0x3a, 0x22, 0x54, 0x72, 0x69, 0x6d, 0x20, 0x50, 0x61, 0x74, 0x68, 0x73, 0x20, 0x31, 0x22, 0x2c, 0x22, 0x6d, 0x6e, 0x22, 0x3a, 0x22, 0x41, 0x44, 0x42, 0x45, 0x20, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x2d, 0x20, 0x54, 0x72, 0x69, 0x6d, 0x22, 0x2c, 0x22, 0x68, 0x64, 0x22, 0x3a, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x7d, 0x5d, 0x2c, 0x22, 0x69, 0x70, 0x22, 0x3a, 0x31, 0x30, 0x2c, 0x22, 0x6f, 0x70, 0x22, 0x3a, 0x36, 0x30, 0x2c, 0x22, 0x73, 0x74, 0x22, 0x3a, 0x31, 0x30, 0x2c, 0x22, 0x62, 0x6d, 0x22, 0x3a, 0x30, 0x7d, 0x2c, 0x7b, 0x22, 0x64, 0x64, 0x64, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x69, 0x6e, 0x64, 0x22, 0x3a, 0x34, 0x2c, 0x22, 0x74, 0x79, 0x22, 0x3a, 0x34, 0x2c, 0x22, 0x6e, 0x6d, 0x22, 0x3a, 0x22, 0x53, 0x68, 0x61, 0x70, 0x65, 0x20, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x20, 0x31, 0x22, 0x2c, 0x22, 0x73, 0x72, 0x22, 0x3a, 0x31, 0x2c, 0x22, 0x6b, 0x73, 0x22, 0x3a, 0x7b, 0x22, 0x6f, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x31, 0x30, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x31, 0x31, 0x7d, 0x2c, 0x22, 0x72, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x38, 0x37, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x31, 0x30, 0x7d, 0x2c, 0x22, 0x70, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x5b, 0x33, 0x33, 0x36, 0x2c, 0x33, 0x36, 0x36, 0x2c, 0x30, 0x5d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x22, 0x61, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x5b, 0x30, 0x2c, 0x30, 0x2c, 0x30, 0x5d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x31, 0x7d,
         0x2c, 0x22, 0x73, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x5b, 0x31, 0x30, 0x30, 0x2c, 0x31, 0x30, 0x30, 0x2c, 0x31, 0x30, 0x30, 0x5d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x36, 0x7d, 0x7d, 0x2c, 0x22, 0x61, 0x6f, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x73, 0x68, 0x61, 0x70, 0x65, 0x73, 0x22, 0x3a, 0x5b, 0x7b, 0x22, 0x74, 0x79, 0x22, 0x3a, 0x22, 0x67, 0x72, 0x22, 0x2c, 0x22, 0x69, 0x74, 0x22, 0x3a, 0x5b, 0x7b, 0x22, 0x64, 0x22, 0x3a, 0x31, 0x2c, 0x22, 0x74, 0x79, 0x22, 0x3a, 0x22, 0x65, 0x6c, 0x22, 0x2c, 0x22, 0x73, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x5b, 0x35, 0x32, 0x30, 0x2c, 0x35, 0x32, 0x30, 0x5d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x22, 0x70, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x5b, 0x30, 0x2c, 0x30, 0x5d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x33, 0x7d, 0x2c, 0x22, 0x6e, 0x6d, 0x22, 0x3a, 0x22, 0x45, 0x6c, 0x6c, 0x69, 0x70, 0x73, 0x65, 0x20, 0x50, 0x61, 0x74, 0x68, 0x20, 0x31, 0x22, 0x2c, 0x22, 0x6d, 0x6e, 0x22, 0x3a, 0x22, 0x41, 0x44, 0x42, 0x45, 0x20, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x20, 0x53, 0x68, 0x61, 0x70, 0x65, 0x20, 0x2d, 0x20, 0x45, 0x6c, 0x6c, 0x69, 0x70, 0x73, 0x65, 0x22, 0x2c, 0x22, 0x68, 0x64, 0x22, 0x3a, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x7d, 0x2c, 0x7b, 0x22, 0x74, 0x79, 0x22, 0x3a, 0x22, 0x73, 0x74, 0x22, 0x2c, 0x22, 0x63, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x5b, 0x30, 0x2e, 0x32, 0x31, 0x39, 0x36, 0x30, 0x37, 0x38, 0x34, 0x33, 0x31, 0x33, 0x37, 0x2c, 0x30, 0x2e, 0x35, 0x35, 0x36, 0x38, 0x36, 0x32, 0x37, 0x34, 0x35, 0x30, 0x39, 0x38, 0x2c, 0x30, 0x2e, 0x32, 0x33, 0x35, 0x32, 0x39, 0x34, 0x31, 0x31, 0x37, 0x36, 0x34, 0x37, 0x2c, 0x31, 0x5d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x33, 0x7d, 0x2c, 0x22, 0x6f, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x31, 0x30, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x34, 0x7d, 0x2c, 0x22, 0x77, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x34, 0x38, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x35, 0x7d, 0x2c, 0x22, 0x6c, 0x63, 0x22, 0x3a, 0x32, 0x2c, 0x22, 0x6c, 0x6a, 0x22, 0x3a, 0x31, 0x2c, 0x22, 0x6d, 0x6c, 0x22, 0x3a, 0x34, 0x2c, 0x22, 0x62, 0x6d, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6e, 0x6d, 0x22, 0x3a, 0x22, 0x53, 0x74, 0x72, 0x6f, 0x6b, 0x65, 0x20, 0x31, 0x22, 0x2c, 0x22, 0x6d, 0x6e, 0x22, 0x3a, 0x22, 0x41, 0x44, 0x42, 0x45, 0x20, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x20, 0x47, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x20, 0x2d, 0x20, 0x53, 0x74, 0x72, 0x6f, 0x6b, 0x65, 0x22, 0x2c, 0x22, 0x68, 0x64, 0x22, 0x3a, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x7d, 0x2c, 0x7b, 0x22, 0x74, 0x79, 0x22, 0x3a, 0x22, 0x74, 0x72, 0x22, 0x2c, 0x22, 0x70, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x5b, 0x30, 0x2c, 0x30, 0x5d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x22, 0x61, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x5b, 0x30, 0x2c, 0x30, 0x5d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x31, 0x7d, 0x2c, 0x22, 0x73, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x5b, 0x31, 0x30, 0x30, 0x2c, 0x31, 0x30, 0x30, 0x5d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x33, 0x7d, 0x2c, 0x22, 0x72, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x36, 0x7d, 0x2c, 0x22, 0x6f, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x31, 0x30, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x37, 0x7d, 0x2c, 0x22, 0x73, 0x6b, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x34, 0x7d, 0x2c, 0x22, 0x73, 0x61, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x35, 0x7d, 0x2c, 0x22, 0x6e, 0x6d, 0x22, 0x3a, 0x22, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x22, 0x7d, 0x5d, 0x2c, 0x22, 0x6e, 0x6d, 0x22, 0x3a, 0x22, 0x45,
         0x6c, 0x6c, 0x69, 0x70, 0x73, 0x65, 0x20, 0x31, 0x22, 0x2c, 0x22, 0x6e, 0x70, 0x22, 0x3a, 0x33, 0x2c, 0x22, 0x63, 0x69, 0x78, 0x22, 0x3a, 0x32, 0x2c, 0x22, 0x62, 0x6d, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x31, 0x2c, 0x22, 0x6d, 0x6e, 0x22, 0x3a, 0x22, 0x41, 0x44, 0x42, 0x45, 0x20, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x20, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x2c, 0x22, 0x68, 0x64, 0x22, 0x3a, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x7d, 0x2c, 0x7b, 0x22, 0x74, 0x79, 0x22, 0x3a, 0x22, 0x74, 0x6d, 0x22, 0x2c, 0x22, 0x73, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x31, 0x7d, 0x2c, 0x22, 0x65, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x31, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x5b, 0x7b, 0x22, 0x69, 0x22, 0x3a, 0x7b, 0x22, 0x78, 0x22, 0x3a, 0x5b, 0x30, 0x2e, 0x33, 0x36, 0x38, 0x5d, 0x2c, 0x22, 0x79, 0x22, 0x3a, 0x5b, 0x31, 0x5d, 0x7d, 0x2c, 0x22, 0x6f, 0x22, 0x3a, 0x7b, 0x22, 0x78, 0x22, 0x3a, 0x5b, 0x30, 0x2e, 0x32, 0x35, 0x31, 0x5d, 0x2c, 0x22, 0x79, 0x22, 0x3a, 0x5b, 0x30, 0x5d, 0x7d, 0x2c, 0x22, 0x74, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x73, 0x22, 0x3a, 0x5b, 0x30, 0x5d, 0x7d, 0x2c, 0x7b, 0x22, 0x74, 0x22, 0x3a, 0x34, 0x30, 0x2c, 0x22, 0x73, 0x22, 0x3a, 0x5b, 0x38, 0x34, 0x5d, 0x7d, 0x5d, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x22, 0x6f, 0x22, 0x3a, 0x7b, 0x22, 0x61, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6b, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x33, 0x7d, 0x2c, 0x22, 0x6d, 0x22, 0x3a, 0x31, 0x2c, 0x22, 0x69, 0x78, 0x22, 0x3a, 0x32, 0x2c, 0x22, 0x6e, 0x6d, 0x22, 0x3a, 0x22, 0x54, 0x72, 0x69, 0x6d, 0x20, 0x50, 0x61, 0x74, 0x68, 0x73, 0x20, 0x31, 0x22, 0x2c, 0x22, 0x6d, 0x6e, 0x22, 0x3a, 0x22, 0x41, 0x44, 0x42, 0x45, 0x20, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x2d, 0x20, 0x54, 0x72, 0x69, 0x6d, 0x22, 0x2c, 0x22, 0x68, 0x64, 0x22, 0x3a, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x7d, 0x5d, 0x2c, 0x22, 0x69, 0x70, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x6f, 0x70, 0x22, 0x3a, 0x36, 0x30, 0x2c, 0x22, 0x73, 0x74, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x62, 0x6d, 0x22, 0x3a, 0x30, 0x7d, 0x5d, 0x2c, 0x22, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x73, 0x22, 0x3a, 0x5b, 0x5d, 0x7d,
-        0x00 
+        0x00
 ])
 
index b7fcbba..1016c26 100644 (file)
@@ -6,12 +6,12 @@
  */
 void lv_example_sjpg_1(void)
 {
-  lv_obj_t * wp;
+    lv_obj_t * wp;
 
-  wp = lv_img_create(lv_scr_act());
-  /* Assuming a File system is attached to letter 'A'
-   * E.g. set LV_USE_FS_STDIO 'A' in lv_conf.h */
-  lv_img_set_src(wp, "A:lvgl/examples/libs/sjpg/small_image.sjpg");
+    wp = lv_img_create(lv_scr_act());
+    /* Assuming a File system is attached to letter 'A'
+     * E.g. set LV_USE_FS_STDIO 'A' in lv_conf.h */
+    lv_img_set_src(wp, "A:lvgl/examples/libs/sjpg/small_image.sjpg");
 }
 
 #endif
index 6f69098..7b38fea 100644 (file)
@@ -2,17 +2,23 @@
 Basic grid navigation
 """""""""""""""""""""
 
-.. lv_example:: others/monkey/lv_example_gridnav_1
+.. lv_example:: others/gridnav/lv_example_gridnav_1
   :language: c
 
 Grid navigation on a list
 """"""""""""""""""""""""
 
-.. lv_example:: others/monkey/lv_example_gridnav_2
+.. lv_example:: others/gridnav/lv_example_gridnav_2
   :language: c
 
 Nested grid navigations
 """""""""""""""""""""""
 
-.. lv_example:: others/monkey/lv_example_gridanav_3
+.. lv_example:: others/gridnav/lv_example_gridnav_3
   :language: c
+
+Simple navigation on a list widget
+"""""""""""""""""""""""
+
+.. lv_example:: others/gridnav/lv_example_gridnav_4
+  :language: c
\ No newline at end of file
index efe5e26..1389c90 100644 (file)
@@ -28,6 +28,7 @@ extern "C" {
 void lv_example_gridnav_1(void);
 void lv_example_gridnav_2(void);
 void lv_example_gridnav_3(void);
+void lv_example_gridnav_4(void);
 
 /**********************
  *      MACROS
index b31f7f7..071f28a 100644 (file)
@@ -55,16 +55,16 @@ void lv_example_gridnav_3(void)
     lv_obj_set_style_bg_color(cont_sub1, lv_palette_lighten(LV_PALETTE_RED, 5), LV_STATE_FOCUSED);
     lv_obj_set_width(label, lv_pct(100));
     lv_label_set_text(label,
-            "I'm a very long text which is makes my container scrollable. "
-            "As LV_GRIDNAV_FLAG_SCROLL_FIRST is enabled arrow will scroll me first "
-            "and a new objects will be focused only when an edge is reached with the scrolling.\n\n"
-            "This is only some placeholder text to be sure the parent will be scrollable. \n\n"
-            "Hello world!\n"
-            "Hello world!\n"
-            "Hello world!\n"
-            "Hello world!\n"
-            "Hello world!\n"
-            "Hello world!");
+                      "I'm a very long text which is makes my container scrollable. "
+                      "As LV_GRIDNAV_FLAG_SCROLL_FIRST is enabled arrow will scroll me first "
+                      "and a new objects will be focused only when an edge is reached with the scrolling.\n\n"
+                      "This is only some placeholder text to be sure the parent will be scrollable. \n\n"
+                      "Hello world!\n"
+                      "Hello world!\n"
+                      "Hello world!\n"
+                      "Hello world!\n"
+                      "Hello world!\n"
+                      "Hello world!");
 
     /*Create a third container that can be focused with ENTER and contains an other grid nav*/
     lv_obj_t * cont_sub2 = lv_obj_create(cont_main);
index f054015..4b27194 100644 (file)
@@ -16,6 +16,10 @@ extern "C" {
 #include "snapshot/lv_example_snapshot.h"
 #include "monkey/lv_example_monkey.h"
 #include "gridnav/lv_example_gridnav.h"
+#include "fragment/lv_example_fragment.h"
+#include "imgfont/lv_example_imgfont.h"
+#include "msg/lv_example_msg.h"
+#include "ime/lv_example_ime_pinyin.h"
 
 /*********************
  *      DEFINES
@@ -37,4 +41,4 @@ extern "C" {
 } /*extern "C"*/
 #endif
 
-#endif /*LV_EX_OTHERS_H*/
+#endif /*LV_EXAMPLE_OTHERS_H*/
index 603df81..e6fdfb7 100644 (file)
@@ -1,17 +1,17 @@
 
-Touchpad monkey example 
+Touchpad monkey example
 """""""""""""""""""
 
 .. lv_example:: others/monkey/lv_example_monkey_1
   :language: c
 
-Encoder monkey example 
+Encoder monkey example
 """""""""""""""""""
 
 .. lv_example:: others/monkey/lv_example_monkey_2
   :language: c
 
-Button monkey example 
+Button monkey example
 """""""""""""""""""
 
 .. lv_example:: others/monkey/lv_example_monkey_3
index ec396b1..0541386 100644 (file)
@@ -1,14 +1,14 @@
 #include "../../lv_examples.h"
 #if LV_USE_SNAPSHOT && LV_BUILD_EXAMPLES
 
-static void event_cb(lv_event_t* e)
+static void event_cb(lv_event_t * e)
 {
     lv_obj_t * snapshot_obj = lv_event_get_user_data(e);
     lv_obj_t * img = lv_event_get_target(e);
 
     if(snapshot_obj) {
-        lv_img_dsc_t* snapshot = (void*)lv_img_get_src(snapshot_obj);
-        if(snapshot){
+        lv_img_dsc_t * snapshot = (void *)lv_img_get_src(snapshot_obj);
+        if(snapshot) {
             lv_snapshot_free(snapshot);
         }
 
index 55d5209..db943fa 100644 (file)
@@ -3,18 +3,27 @@
  *
  */
 
- /*Copy this file as "lv_port_disp.c" and set this value to "1" to enable content*/
+/*Copy this file as "lv_port_disp.c" and set this value to "1" to enable content*/
 #if 0
 
 /*********************
  *      INCLUDES
  *********************/
 #include "lv_port_disp_template.h"
-#include "../../lvgl.h"
+#include <stdbool.h>
 
 /*********************
  *      DEFINES
  *********************/
+#ifndef MY_DISP_HOR_RES
+    #warning Please define or replace the macro MY_DISP_HOR_RES with the actual screen width, default value 320 is used for now.
+    #define MY_DISP_HOR_RES    320
+#endif
+
+#ifndef MY_DISP_VER_RES
+    #warning Please define or replace the macro MY_DISP_HOR_RES with the actual screen height, default value 240 is used for now.
+    #define MY_DISP_VER_RES    240
+#endif
 
 /**********************
  *      TYPEDEFS
@@ -88,7 +97,8 @@ void lv_port_disp_init(void)
     static lv_disp_draw_buf_t draw_buf_dsc_3;
     static lv_color_t buf_3_1[MY_DISP_HOR_RES * MY_DISP_VER_RES];            /*A screen sized buffer*/
     static lv_color_t buf_3_2[MY_DISP_HOR_RES * MY_DISP_VER_RES];            /*Another screen sized buffer*/
-    lv_disp_draw_buf_init(&draw_buf_dsc_3, buf_3_1, buf_3_2, MY_DISP_VER_RES * LV_VER_RES_MAX);   /*Initialize the display buffer*/
+    lv_disp_draw_buf_init(&draw_buf_dsc_3, buf_3_1, buf_3_2,
+                          MY_DISP_VER_RES * LV_VER_RES_MAX);   /*Initialize the display buffer*/
 
     /*-----------------------------------
      * Register the display in LVGL
@@ -100,8 +110,8 @@ void lv_port_disp_init(void)
     /*Set up the functions to access to your display*/
 
     /*Set the resolution of the display*/
-    disp_drv.hor_res = 480;
-    disp_drv.ver_res = 320;
+    disp_drv.hor_res = MY_DISP_HOR_RES;
+    disp_drv.ver_res = MY_DISP_VER_RES;
 
     /*Used to copy the buffer's content to the display*/
     disp_drv.flush_cb = disp_flush;
@@ -110,7 +120,7 @@ void lv_port_disp_init(void)
     disp_drv.draw_buf = &draw_buf_dsc_1;
 
     /*Required for Example 3)*/
-    //disp_drv.full_refresh = 1
+    //disp_drv.full_refresh = 1;
 
     /* Fill a memory array with a color if you have GPU.
      * Note that, in lv_conf.h you can enable GPUs that has built-in support in LVGL.
@@ -131,20 +141,38 @@ static void disp_init(void)
     /*You code here*/
 }
 
+volatile bool disp_flush_enabled = true;
+
+/* Enable updating the screen (the flushing process) when disp_flush() is called by LVGL
+ */
+void disp_enable_update(void)
+{
+    disp_flush_enabled = true;
+}
+
+/* Disable updating the screen (the flushing process) when disp_flush() is called by LVGL
+ */
+void disp_disable_update(void)
+{
+    disp_flush_enabled = false;
+}
+
 /*Flush the content of the internal buffer the specific area on the display
  *You can use DMA or any hardware acceleration to do this operation in the background but
  *'lv_disp_flush_ready()' has to be called when finished.*/
 static void disp_flush(lv_disp_drv_t * disp_drv, const lv_area_t * area, lv_color_t * color_p)
 {
-    /*The most simple case (but also the slowest) to put all pixels to the screen one-by-one*/
-
-    int32_t x;
-    int32_t y;
-    for(y = area->y1; y <= area->y2; y++) {
-        for(x = area->x1; x <= area->x2; x++) {
-            /*Put a pixel to the display. For example:*/
-            /*put_px(x, y, *color_p)*/
-            color_p++;
+    if(disp_flush_enabled) {
+        /*The most simple case (but also the slowest) to put all pixels to the screen one-by-one*/
+
+        int32_t x;
+        int32_t y;
+        for(y = area->y1; y <= area->y2; y++) {
+            for(x = area->x1; x <= area->x2; x++) {
+                /*Put a pixel to the display. For example:*/
+                /*put_px(x, y, *color_p)*/
+                color_p++;
+            }
         }
     }
 
index bf1e08d..b3328d5 100644 (file)
@@ -3,7 +3,7 @@
  *
  */
 
- /*Copy this file as "lv_port_disp.h" and set this value to "1" to enable content*/
+/*Copy this file as "lv_port_disp.h" and set this value to "1" to enable content*/
 #if 0
 
 #ifndef LV_PORT_DISP_TEMPL_H
@@ -16,7 +16,11 @@ extern "C" {
 /*********************
  *      INCLUDES
  *********************/
+#if defined(LV_LVGL_H_INCLUDE_SIMPLE)
+#include "lvgl.h"
+#else
 #include "lvgl/lvgl.h"
+#endif
 
 /*********************
  *      DEFINES
@@ -29,8 +33,17 @@ extern "C" {
 /**********************
  * GLOBAL PROTOTYPES
  **********************/
+/* Initialize low level display driver */
 void lv_port_disp_init(void);
 
+/* Enable updating the screen (the flushing process) when disp_flush() is called by LVGL
+ */
+void disp_enable_update(void);
+
+/* Disable updating the screen (the flushing process) when disp_flush() is called by LVGL
+ */
+void disp_disable_update(void);
+
 /**********************
  *      MACROS
  **********************/
index 75a3d27..842d7c3 100644 (file)
@@ -3,7 +3,7 @@
  *
  */
 
- /*Copy this file as "lv_port_fs.c" and set this value to "1" to enable content*/
+/*Copy this file as "lv_port_fs.c" and set this value to "1" to enable content*/
 #if 0
 
 /*********************
@@ -33,7 +33,7 @@ static lv_fs_res_t fs_seek(lv_fs_drv_t * drv, void * file_p, uint32_t pos, lv_fs
 static lv_fs_res_t fs_size(lv_fs_drv_t * drv, void * file_p, uint32_t * size_p);
 static lv_fs_res_t fs_tell(lv_fs_drv_t * drv, void * file_p, uint32_t * pos_p);
 
-static void * fs_dir_open(lv_fs_drv_t * drv, const char *path);
+static void * fs_dir_open(lv_fs_drv_t * drv, const char * path);
 static lv_fs_res_t fs_dir_read(lv_fs_drv_t * drv, void * rddir_p, char * fn);
 static lv_fs_res_t fs_dir_close(lv_fs_drv_t * drv, void * rddir_p);
 
@@ -109,18 +109,15 @@ static void * fs_open(lv_fs_drv_t * drv, const char * path, lv_fs_mode_t mode)
 
     void * f = NULL;
 
-    if(mode == LV_FS_MODE_WR)
-    {
+    if(mode == LV_FS_MODE_WR) {
         /*Open a file for write*/
         f = ...         /*Add your code here*/
     }
-    else if(mode == LV_FS_MODE_RD)
-    {
+    else if(mode == LV_FS_MODE_RD) {
         /*Open a file for read*/
         f = ...         /*Add your code here*/
     }
-    else if(mode == (LV_FS_MODE_WR | LV_FS_MODE_RD))
-    {
+    else if(mode == (LV_FS_MODE_WR | LV_FS_MODE_RD)) {
         /*Open a file for read and write*/
         f = ...         /*Add your code here*/
     }
@@ -166,8 +163,8 @@ static lv_fs_res_t fs_read(lv_fs_drv_t * drv, void * file_p, void * buf, uint32_
  * @param drv       pointer to a driver where this function belongs
  * @param file_p    pointer to a file_t variable
  * @param buf       pointer to a buffer with the bytes to write
- * @param btr       Bytes To Write
- * @param br        the number of real written bytes (Bytes Written). NULL if unused.
+ * @param btw       Bytes To Write
+ * @param bw        the number of real written bytes (Bytes Written). NULL if unused.
  * @return          LV_FS_RES_OK: no error or  any error from @lv_fs_res_t enum
  */
 static lv_fs_res_t fs_write(lv_fs_drv_t * drv, void * file_p, const void * buf, uint32_t btw, uint32_t * bw)
@@ -217,12 +214,12 @@ static lv_fs_res_t fs_tell(lv_fs_drv_t * drv, void * file_p, uint32_t * pos_p)
  * @param path      path to a directory
  * @return          pointer to the directory read descriptor or NULL on error
  */
-static void * fs_dir_open(lv_fs_drv_t * drv, const char *path)
+static void * fs_dir_open(lv_fs_drv_t * drv, const char * path)
 {
     void * dir = NULL;
     /*Add your code here*/
     dir = ...           /*Add your code here*/
-    return dir;
+          return dir;
 }
 
 /**
@@ -233,7 +230,7 @@ static void * fs_dir_open(lv_fs_drv_t * drv, const char *path)
  * @param fn        pointer to a buffer to store the filename
  * @return          LV_FS_RES_OK: no error or  any error from @lv_fs_res_t enum
  */
-static lv_fs_res_t fs_dir_read(lv_fs_drv_t * drv, void * rddir_p, char *fn)
+static lv_fs_res_t fs_dir_read(lv_fs_drv_t * drv, void * rddir_p, char * fn)
 {
     lv_fs_res_t res = LV_FS_RES_NOT_IMP;
 
index ef39d4f..b34fd3c 100644 (file)
@@ -3,7 +3,7 @@
  *
  */
 
- /*Copy this file as "lv_port_fs.h" and set this value to "1" to enable content*/
+/*Copy this file as "lv_port_fs.h" and set this value to "1" to enable content*/
 #if 0
 
 #ifndef LV_PORT_FS_TEMPL_H
@@ -29,7 +29,7 @@ extern "C" {
 /**********************
  * GLOBAL PROTOTYPES
  **********************/
- void lv_port_fs_init(void);
+void lv_port_fs_init(void);
 
 /**********************
  *      MACROS
index d90b0c8..5971a18 100644 (file)
@@ -3,7 +3,7 @@
  *
  */
 
- /*Copy this file as "lv_port_indev.c" and set this value to "1" to enable content*/
+/*Copy this file as "lv_port_indev.c" and set this value to "1" to enable content*/
 #if 0
 
 /*********************
@@ -165,8 +165,8 @@ void lv_port_indev_init(void)
 
     /*Assign buttons to points on the screen*/
     static const lv_point_t btn_points[2] = {
-            {10, 10},   /*Button 0 -> x:10; y:10*/
-            {40, 100},  /*Button 1 -> x:40; y:100*/
+        {10, 10},   /*Button 0 -> x:10; y:10*/
+        {40, 100},  /*Button 1 -> x:40; y:100*/
     };
     lv_indev_set_button_points(indev_button, btn_points);
 }
@@ -195,7 +195,8 @@ static void touchpad_read(lv_indev_drv_t * indev_drv, lv_indev_data_t * data)
     if(touchpad_is_pressed()) {
         touchpad_get_xy(&last_x, &last_y);
         data->state = LV_INDEV_STATE_PR;
-    } else {
+    }
+    else {
         data->state = LV_INDEV_STATE_REL;
     }
 
@@ -240,7 +241,8 @@ static void mouse_read(lv_indev_drv_t * indev_drv, lv_indev_data_t * data)
     /*Get whether the mouse button is pressed or released*/
     if(mouse_is_pressed()) {
         data->state = LV_INDEV_STATE_PR;
-    } else {
+    }
+    else {
         data->state = LV_INDEV_STATE_REL;
     }
 }
@@ -287,25 +289,26 @@ static void keypad_read(lv_indev_drv_t * indev_drv, lv_indev_data_t * data)
 
         /*Translate the keys to LVGL control characters according to your key definitions*/
         switch(act_key) {
-        case 1:
-            act_key = LV_KEY_NEXT;
-            break;
-        case 2:
-            act_key = LV_KEY_PREV;
-            break;
-        case 3:
-            act_key = LV_KEY_LEFT;
-            break;
-        case 4:
-            act_key = LV_KEY_RIGHT;
-            break;
-        case 5:
-            act_key = LV_KEY_ENTER;
-            break;
+            case 1:
+                act_key = LV_KEY_NEXT;
+                break;
+            case 2:
+                act_key = LV_KEY_PREV;
+                break;
+            case 3:
+                act_key = LV_KEY_LEFT;
+                break;
+            case 4:
+                act_key = LV_KEY_RIGHT;
+                break;
+            case 5:
+                act_key = LV_KEY_ENTER;
+                break;
         }
 
         last_key = act_key;
-    } else {
+    }
+    else {
         data->state = LV_INDEV_STATE_REL;
     }
 
@@ -369,7 +372,8 @@ static void button_read(lv_indev_drv_t * indev_drv, lv_indev_data_t * data)
     if(btn_act >= 0) {
         data->state = LV_INDEV_STATE_PR;
         last_btn = btn_act;
-    } else {
+    }
+    else {
         data->state = LV_INDEV_STATE_REL;
     }
 
index 00eac25..8a142ba 100644 (file)
@@ -4,7 +4,7 @@
  *
  */
 
- /*Copy this file as "lv_port_indev.h" and set this value to "1" to enable content*/
+/*Copy this file as "lv_port_indev.h" and set this value to "1" to enable content*/
 #if 0
 
 #ifndef LV_PORT_INDEV_TEMPL_H
index 94011a1..0b39205 100644 (file)
@@ -1,5 +1,5 @@
 
-Nested scrolling 
+Nested scrolling
 """"""""""""""""
 
 .. lv_example:: scroll/lv_example_scroll_1
@@ -19,15 +19,15 @@ Styling the scrollbars
 """"""""""""""""""""""""
 .. lv_example:: scroll/lv_example_scroll_4
   :language: c
-  
+
 Right to left scrolling
 """"""""""""""""""""""""
 .. lv_example:: scroll/lv_example_scroll_5
   :language: c
-  
+
 Translate on scroll
 """"""""""""""""""""""""
 .. lv_example:: scroll/lv_example_scroll_6
   :language: c
-  
-  
+
+
index fa62097..37d19f0 100644 (file)
@@ -34,7 +34,8 @@ void lv_example_scroll_2(void)
         if(i == 3) {
             lv_label_set_text_fmt(label, "Panel %"LV_PRIu32"\nno snap", i);
             lv_obj_clear_flag(btn, LV_OBJ_FLAG_SNAPPABLE);
-        } else {
+        }
+        else {
             lv_label_set_text_fmt(label, "Panel %"LV_PRIu32, i);
         }
 
index 7d49e5d..52e40e3 100644 (file)
@@ -21,7 +21,7 @@ panel.set_scroll_snap_x(lv.SCROLL_SNAP.CENTER)
 panel.set_flex_flow(lv.FLEX_FLOW.ROW)
 panel.center()
 
-for i in range(10): 
+for i in range(10):
     btn = lv.btn(panel)
     btn.set_size(150, 100)
 
index a48476b..1d05e69 100644 (file)
@@ -22,7 +22,7 @@ static void float_btn_event_cb(lv_event_t * e)
 }
 
 /**
- * Create a list a with a floating button
+ * Create a list with a floating button
  */
 void lv_example_scroll_3(void)
 {
index bb575ed..aae306e 100644 (file)
@@ -2,7 +2,7 @@ class ScrollExample_3():
     def __init__(self):
         self.btn_cnt = 1
         #
-        # Create a list a with a floating button
+        # Create a list with a floating button
         #
 
         list = lv.list(lv.scr_act())
@@ -20,7 +20,7 @@ class ScrollExample_3():
         float_btn.set_style_radius(lv.RADIUS.CIRCLE, 0)
         float_btn.set_style_bg_img_src(lv.SYMBOL.PLUS, 0)
         float_btn.set_style_text_font(lv.theme_get_font_large(float_btn), 0)
-            
+
     def float_btn_event_cb(self,e,list):
         code = e.get_code()
         float_btn = e.get_target()
@@ -32,7 +32,7 @@ class ScrollExample_3():
             float_btn.move_foreground()
 
             list_btn.scroll_to_view(lv.ANIM.ON)
-            
+
 scroll_example_3 = ScrollExample_3()
 
 
index 55fb12e..5bbff5c 100644 (file)
@@ -13,20 +13,20 @@ void lv_example_scroll_4(void)
 
     lv_obj_t * label = lv_label_create(obj);
     lv_label_set_text(label,
-            "Lorem ipsum dolor sit amet, consectetur adipiscing elit.\n"
-            "Etiam dictum, tortor vestibulum lacinia laoreet, mi neque consectetur neque, vel mattis odio dolor egestas ligula. \n"
-            "Sed vestibulum sapien nulla, id convallis ex porttitor nec. \n"
-            "Duis et massa eu libero accumsan faucibus a in arcu. \n"
-            "Ut pulvinar odio lorem, vel tempus turpis condimentum quis. Nam consectetur condimentum sem in auctor. \n"
-            "Sed nisl augue, venenatis in blandit et, gravida ac tortor. \n"
-            "Etiam dapibus elementum suscipit. \n"
-            "Proin mollis sollicitudin convallis. \n"
-            "Integer dapibus tempus arcu nec viverra. \n"
-            "Donec molestie nulla enim, eu interdum velit placerat quis. \n"
-            "Donec id efficitur risus, at molestie turpis. \n"
-            "Suspendisse vestibulum consectetur nunc ut commodo. \n"
-            "Fusce molestie rhoncus nisi sit amet tincidunt. \n"
-            "Suspendisse a nunc ut magna ornare volutpat.");
+                      "Lorem ipsum dolor sit amet, consectetur adipiscing elit.\n"
+                      "Etiam dictum, tortor vestibulum lacinia laoreet, mi neque consectetur neque, vel mattis odio dolor egestas ligula. \n"
+                      "Sed vestibulum sapien nulla, id convallis ex porttitor nec. \n"
+                      "Duis et massa eu libero accumsan faucibus a in arcu. \n"
+                      "Ut pulvinar odio lorem, vel tempus turpis condimentum quis. Nam consectetur condimentum sem in auctor. \n"
+                      "Sed nisl augue, venenatis in blandit et, gravida ac tortor. \n"
+                      "Etiam dapibus elementum suscipit. \n"
+                      "Proin mollis sollicitudin convallis. \n"
+                      "Integer dapibus tempus arcu nec viverra. \n"
+                      "Donec molestie nulla enim, eu interdum velit placerat quis. \n"
+                      "Donec id efficitur risus, at molestie turpis. \n"
+                      "Suspendisse vestibulum consectetur nunc ut commodo. \n"
+                      "Fusce molestie rhoncus nisi sit amet tincidunt. \n"
+                      "Suspendisse a nunc ut magna ornare volutpat.");
 
 
     /*Remove the style of scrollbar to have clean start*/
index 7e48ef3..60e65ff 100644 (file)
@@ -13,7 +13,8 @@ void lv_example_scroll_5(void)
     lv_obj_center(obj);
 
     lv_obj_t * label = lv_label_create(obj);
-    lv_label_set_text(label,"میکروکُنترولر (به انگلیسی: Microcontroller) گونه‌ای ریزپردازنده است که دارای حافظهٔ دسترسی تصادفی (RAM) و حافظهٔ فقط‌خواندنی (ROM)، تایمر، پورت‌های ورودی و خروجی (I/O) و درگاه ترتیبی (Serial Port پورت سریال)، درون خود تراشه است، و می‌تواند به تنهایی ابزارهای دیگر را کنترل کند. به عبارت دیگر یک میکروکنترلر، مدار مجتمع کوچکی است که از یک CPU کوچک و اجزای دیگری مانند تایمر، درگاه‌های ورودی و خروجی آنالوگ و دیجیتال و حافظه تشکیل شده‌است.");
+    lv_label_set_text(label,
+                      "میکروکُنترولر (به انگلیسی: Microcontroller) گونه‌ای ریزپردازنده است که دارای حافظهٔ دسترسی تصادفی (RAM) و حافظهٔ فقط‌خواندنی (ROM)، تایمر، پورت‌های ورودی و خروجی (I/O) و درگاه ترتیبی (Serial Port پورت سریال)، درون خود تراشه است، و می‌تواند به تنهایی ابزارهای دیگر را کنترل کند. به عبارت دیگر یک میکروکنترلر، مدار مجتمع کوچکی است که از یک CPU کوچک و اجزای دیگری مانند تایمر، درگاه‌های ورودی و خروجی آنالوگ و دیجیتال و حافظه تشکیل شده‌است.");
     lv_obj_set_width(label, 400);
     lv_obj_set_style_text_font(label, &lv_font_dejavu_16_persian_hebrew, 0);
 
index 68bdcd3..5ce864a 100644 (file)
@@ -27,7 +27,8 @@ static void scroll_event_cb(lv_event_t * e)
         /*If diff_y is out of the circle use the last point of the circle (the radius)*/
         if(diff_y >= r) {
             x = r;
-        } else {
+        }
+        else {
             /*Use Pythagoras theorem to get x from radius and y*/
             uint32_t x_sqr = r * r - diff_y * diff_y;
             lv_sqrt_res_t res;
index cf3894f..9b1e9b8 100644 (file)
@@ -7,7 +7,7 @@ def scroll_event_cb(e):
     cont_y_center = cont_a.y1 + cont_a.get_height() // 2
 
     r = cont.get_height() * 7 // 10
-    
+
     child_cnt = cont.get_child_cnt()
     for i in range(child_cnt):
         child = cont.get_child(i)
@@ -20,7 +20,7 @@ def scroll_event_cb(e):
         diff_y = abs(diff_y)
 
         # Get the x of diff_y on a circle.
-        
+
         # If diff_y is out of the circle use the last point of the circle (the radius)
         if diff_y >= r:
             x = r
@@ -56,7 +56,7 @@ cont.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
 for i in range(20):
     btn = lv.btn(cont)
     btn.set_width(lv.pct(100))
-    
+
     label = lv.label(btn)
     label.set_text("Button " + str(i))
 
index 5c84d95..a76ff1e 100644 (file)
@@ -28,64 +28,71 @@ Shadow styles
 
 .. lv_example:: styles/lv_example_style_5
   :language: c
-  
+
 Image styles
 """"""""""""""""""""""""
 
 .. lv_example:: styles/lv_example_style_6
   :language: c
-  
+
 Arc styles
 """"""""""""""""""""""""
 
 .. lv_example:: style/lv_example_style_7
   :language: c
-  
+
 Text styles
 """"""""""""""""""""""""
 
 .. lv_example:: styles/lv_example_style_8
   :language: c
-  
+
 Line styles
 """"""""""""""""""""""""
 
 .. lv_example:: styles/lv_example_style_9
   :language: c
-  
-  
+
+
 Transition
 """"""""""""""""""""""""
 
 .. lv_example:: styles/lv_example_style_10
   :language: c
-  
-  
+
+
 Using multiple styles
 """"""""""""""""""""""""
 
 .. lv_example:: styles/lv_example_style_11
   :language: c
-  
-  
+
+
 Local styles
 """"""""""""""""""""""""
 
 .. lv_example:: styles/lv_example_style_12
   :language: c
-  
-  
+
+
 Add styles to parts and states
 """""""""""""""""""""""""""""""
 
 .. lv_example:: styles/lv_example_style_13
   :language: c
-  
-  
+
+
 Extending the current theme
 """"""""""""""""""""""""""""""""""
 
 .. lv_example:: styles/lv_example_style_14
   :language: c
-  
-  
+
+
+Opacity and Transformations
+""""""""""""""""""""""""""""""""""
+
+.. lv_example:: styles/lv_example_style_15
+  :language: c
+
+
index 40d106b..680443c 100644 (file)
@@ -39,6 +39,7 @@ void lv_example_style_11(void);
 void lv_example_style_12(void);
 void lv_example_style_13(void);
 void lv_example_style_14(void);
+void lv_example_style_15(void);
 
 /**********************
  *      MACROS
index ccfe3af..948c5d2 100644 (file)
@@ -6,26 +6,26 @@
  */
 void lv_example_style_1(void)
 {
-     static lv_style_t style;
-     lv_style_init(&style);
-     lv_style_set_radius(&style, 5);
+    static lv_style_t style;
+    lv_style_init(&style);
+    lv_style_set_radius(&style, 5);
 
-     /*Make a gradient*/
-     lv_style_set_width(&style, 150);
-     lv_style_set_height(&style, LV_SIZE_CONTENT);
+    /*Make a gradient*/
+    lv_style_set_width(&style, 150);
+    lv_style_set_height(&style, LV_SIZE_CONTENT);
 
-     lv_style_set_pad_ver(&style, 20);
-     lv_style_set_pad_left(&style, 5);
+    lv_style_set_pad_ver(&style, 20);
+    lv_style_set_pad_left(&style, 5);
 
-     lv_style_set_x(&style, lv_pct(50));
-     lv_style_set_y(&style, 80);
+    lv_style_set_x(&style, lv_pct(50));
+    lv_style_set_y(&style, 80);
 
-     /*Create an object with the new style*/
-     lv_obj_t * obj = lv_obj_create(lv_scr_act());
-     lv_obj_add_style(obj, &style, 0);
+    /*Create an object with the new style*/
+    lv_obj_t * obj = lv_obj_create(lv_scr_act());
+    lv_obj_add_style(obj, &style, 0);
 
-     lv_obj_t * label = lv_label_create(obj);
-     lv_label_set_text(label, "Hello");
+    lv_obj_t * label = lv_label_create(obj);
+    lv_label_set_text(label, "Hello");
 }
 
 #endif
index a925d65..5eb25e8 100644 (file)
@@ -16,7 +16,7 @@ void lv_example_style_12(void)
     lv_obj_add_style(obj, &style, 0);
 
     /*Overwrite the background color locally*/
-    lv_obj_set_style_bg_color(obj,lv_palette_main(LV_PALETTE_ORANGE), LV_PART_MAIN);
+    lv_obj_set_style_bg_color(obj, lv_palette_main(LV_PALETTE_ORANGE), LV_PART_MAIN);
 
     lv_obj_center(obj);
 }
index 7a80433..fbb5702 100644 (file)
@@ -12,16 +12,16 @@ class NewTheme(lv.theme_t):
         self.style_btn.set_border_color(lv.palette_darken(lv.PALETTE.GREEN, 3))
         self.style_btn.set_border_width(3)
 
-        # This theme is based on active theme 
+        # This theme is based on active theme
         th_act = lv.theme_get_from_obj(lv.scr_act())
         # This theme will be applied only after base theme is applied
-        self.set_parent(th_act)        
+        self.set_parent(th_act)
 
 
 class ExampleStyle_14:
-    
+
     def __init__(self):
-        # 
+        #
         # Extending the current theme
         #
 
@@ -30,23 +30,23 @@ class ExampleStyle_14:
 
         label = lv.label(btn)
         label.set_text("Original theme")
-        
+
         self.new_theme_init_and_set()
-        
+
         btn = lv.btn(lv.scr_act())
         btn.align(lv.ALIGN.BOTTOM_MID, 0, -20)
-        
+
         label = lv.label(btn)
         label.set_text("New theme")
-        
+
     def new_theme_apply_cb(self, th, obj):
         print(th,obj)
         if obj.get_class() == lv.btn_class:
             obj.add_style(self.th_new.style_btn, 0)
-        
+
     def new_theme_init_and_set(self):
         print("new_theme_init_and_set")
-        # Initialize the new theme from the current theme        
+        # Initialize the new theme from the current theme
         self.th_new = NewTheme()
         self.th_new.set_apply_cb(self.new_theme_apply_cb)
         lv.disp_get_default().set_theme(self.th_new)
index 7857fd2..8bc8afb 100644 (file)
@@ -17,8 +17,8 @@ void lv_example_style_5(void)
     /*Add a shadow*/
     lv_style_set_shadow_width(&style, 55);
     lv_style_set_shadow_color(&style, lv_palette_main(LV_PALETTE_BLUE));
-//    lv_style_set_shadow_ofs_x(&style, 10);
-//    lv_style_set_shadow_ofs_y(&style, 20);
+    //    lv_style_set_shadow_ofs_x(&style, 10);
+    //    lv_style_set_shadow_ofs_y(&style, 20);
 
     /*Create an object with the new style*/
     lv_obj_t * obj = lv_obj_create(lv_scr_act());
index 91ea0c3..9efe14e 100644 (file)
@@ -11,10 +11,10 @@ try:
 except:
     print("Could not find img_cogwheel_argb.png")
     sys.exit()
-    
+
 img_cogwheel_argb = lv.img_dsc_t({
   'data_size': len(png_data),
-  'data': png_data 
+  'data': png_data
 })
 
 #
index 14bf892..d816b02 100644 (file)
@@ -25,7 +25,7 @@ void lv_example_style_8(void)
     lv_obj_t * obj = lv_label_create(lv_scr_act());
     lv_obj_add_style(obj, &style, 0);
     lv_label_set_text(obj, "Text of\n"
-                            "a label");
+                      "a label");
 
     lv_obj_center(obj);
 }
index 00dadf7..7f54d3f 100644 (file)
@@ -12,8 +12,8 @@ style.set_line_rounded(True)
 # Create an object with the new style
 obj = lv.line(lv.scr_act())
 obj.add_style(style, 0)
-p =  [ {"x":10, "y":30}, 
-       {"x":30, "y":50}, 
+p =  [ {"x":10, "y":30},
+       {"x":30, "y":50},
        {"x":100, "y":0}]
 
 obj.set_points(p, 3)
index 9f7045f..4341b6f 100644 (file)
@@ -4,7 +4,7 @@ LV_IMG_DECLARE(animimg001)
 LV_IMG_DECLARE(animimg002)
 LV_IMG_DECLARE(animimg003)
 
-static const lv_img_dsc_t* anim_imgs[3] = {
+static const lv_img_dsc_t * anim_imgs[3] = {
     &animimg001,
     &animimg002,
     &animimg003,
@@ -14,7 +14,7 @@ void lv_example_animimg_1(void)
 {
     lv_obj_t * animimg0 = lv_animimg_create(lv_scr_act());
     lv_obj_center(animimg0);
-    lv_animimg_set_src(animimg0, (lv_img_dsc_t**) anim_imgs, 3);
+    lv_animimg_set_src(animimg0, (const void **) anim_imgs, 3);
     lv_animimg_set_duration(animimg0, 1000);
     lv_animimg_set_repeat_count(animimg0, LV_ANIM_REPEAT_INFINITE);
     lv_animimg_start(animimg0);
index 93938e7..f3a31fd 100644 (file)
@@ -13,10 +13,10 @@ try:
 except:
     print("Could not find animimg001.png")
     sys.exit()
-    
+
 anim_imgs[0] = lv.img_dsc_t({
   'data_size': len(anim001_data),
-  'data': anim001_data 
+  'data': anim001_data
 })
 
 try:
@@ -25,10 +25,10 @@ try:
 except:
     print("Could not find animimg002.png")
     sys.exit()
-    
+
 anim_imgs[1] = lv.img_dsc_t({
   'data_size': len(anim002_data),
-  'data': anim002_data 
+  'data': anim002_data
 })
 
 try:
@@ -37,10 +37,10 @@ try:
 except:
     print("Could not find animimg003.png")
     sys.exit()
-    
+
 anim_imgs[2] = lv.img_dsc_t({
   'data_size': len(anim003_data),
-  'data': anim003_data 
+  'data': anim003_data
 })
 
 animimg0 = lv.animimg(lv.scr_act())
index c257384..8dea69d 100644 (file)
@@ -1,12 +1,12 @@
 
-Simple Arc 
+Simple Arc
 """"""""""""""""
 
 .. lv_example:: widgets/arc/lv_example_arc_1
   :language: c
   :description: A simple example to demonstrate the use of an arc.
 
-Loader with Arc 
+Loader with Arc
 """"""""""""""""
 
 .. lv_example:: widgets/arc/lv_example_arc_2
index 28ddaac..e1ff4e8 100644 (file)
@@ -2,15 +2,34 @@
 
 #if LV_USE_ARC && LV_BUILD_EXAMPLES
 
+static void value_changed_event_cb(lv_event_t * e);
+
 void lv_example_arc_1(void)
 {
-  /*Create an Arc*/
-  lv_obj_t * arc = lv_arc_create(lv_scr_act());
-  lv_obj_set_size(arc, 150, 150);
-  lv_arc_set_rotation(arc, 135);
-  lv_arc_set_bg_angles(arc, 0, 270);
-  lv_arc_set_value(arc, 40);
-  lv_obj_center(arc);
+    lv_obj_t * label = lv_label_create(lv_scr_act());
+
+    /*Create an Arc*/
+    lv_obj_t * arc = lv_arc_create(lv_scr_act());
+    lv_obj_set_size(arc, 150, 150);
+    lv_arc_set_rotation(arc, 135);
+    lv_arc_set_bg_angles(arc, 0, 270);
+    lv_arc_set_value(arc, 10);
+    lv_obj_center(arc);
+    lv_obj_add_event_cb(arc, value_changed_event_cb, LV_EVENT_VALUE_CHANGED, label);
+
+    /*Manually update the label for the first time*/
+    lv_event_send(arc, LV_EVENT_VALUE_CHANGED, NULL);
+}
+
+static void value_changed_event_cb(lv_event_t * e)
+{
+    lv_obj_t * arc = lv_event_get_target(e);
+    lv_obj_t * label = lv_event_get_user_data(e);
+
+    lv_label_set_text_fmt(label, "%d%%", lv_arc_get_value(arc));
+
+    /*Rotate the label to the current position of the arc*/
+    lv_arc_rotate_obj_to_angle(arc, label, 25);
 }
 
 #endif
index 438c44e..3b94a75 100644 (file)
@@ -12,23 +12,23 @@ static void set_angle(void * obj, int32_t v)
  */
 void lv_example_arc_2(void)
 {
-  /*Create an Arc*/
-  lv_obj_t * arc = lv_arc_create(lv_scr_act());
-  lv_arc_set_rotation(arc, 270);
-  lv_arc_set_bg_angles(arc, 0, 360);
-  lv_obj_remove_style(arc, NULL, LV_PART_KNOB);   /*Be sure the knob is not displayed*/
-  lv_obj_clear_flag(arc, LV_OBJ_FLAG_CLICKABLE);  /*To not allow adjusting by click*/
-  lv_obj_center(arc);
-
-  lv_anim_t a;
-  lv_anim_init(&a);
-  lv_anim_set_var(&a, arc);
-  lv_anim_set_exec_cb(&a, set_angle);
-  lv_anim_set_time(&a, 1000);
-  lv_anim_set_repeat_count(&a, LV_ANIM_REPEAT_INFINITE);    /*Just for the demo*/
-  lv_anim_set_repeat_delay(&a, 500);
-  lv_anim_set_values(&a, 0, 100);
-  lv_anim_start(&a);
+    /*Create an Arc*/
+    lv_obj_t * arc = lv_arc_create(lv_scr_act());
+    lv_arc_set_rotation(arc, 270);
+    lv_arc_set_bg_angles(arc, 0, 360);
+    lv_obj_remove_style(arc, NULL, LV_PART_KNOB);   /*Be sure the knob is not displayed*/
+    lv_obj_clear_flag(arc, LV_OBJ_FLAG_CLICKABLE);  /*To not allow adjusting by click*/
+    lv_obj_center(arc);
+
+    lv_anim_t a;
+    lv_anim_init(&a);
+    lv_anim_set_var(&a, arc);
+    lv_anim_set_exec_cb(&a, set_angle);
+    lv_anim_set_time(&a, 1000);
+    lv_anim_set_repeat_count(&a, LV_ANIM_REPEAT_INFINITE);    /*Just for the demo*/
+    lv_anim_set_repeat_delay(&a, 500);
+    lv_anim_set_values(&a, 0, 100);
+    lv_anim_start(&a);
 
 
 
index a550587..91336e2 100644 (file)
@@ -4,7 +4,7 @@
 class ArcLoader():
     def __init__(self):
         self.a = 270
-        
+
     def arc_loader_cb(self,tim,arc):
         # print(tim,arc)
         self.a += 5
@@ -33,5 +33,5 @@ arc_loader = ArcLoader()
 timer = lv.timer_create_basic()
 timer.set_period(20)
 timer.set_cb(lambda src: arc_loader.arc_loader_cb(timer,arc))
-  
+
 
index 5aba5a7..4c4bb85 100644 (file)
@@ -1,27 +1,27 @@
-Simple Bar 
+Simple Bar
 """"""""""""""""
 
 .. lv_example:: widgets/bar/lv_example_bar_1
   :language: c
-  
+
 Styling a bar
 """"""""""""""""
 
 .. lv_example:: widgets/bar/lv_example_bar_2
   :language: c
-  
+
 Temperature meter
 """"""""""""""""""
 
 .. lv_example:: widgets/bar/lv_example_bar_3
   :language: c
-  
+
 Stripe pattern and range value
 """"""""""""""""""""""""""""""""
 
 .. lv_example:: widgets/bar/lv_example_bar_4
   :language: c
-  
+
 Bar with LTR and RTL base direction
 """"""""""""""""""""""""""""""""""""
 
@@ -33,4 +33,4 @@ Custom drawer to show the current value
 
 .. lv_example:: widgets/bar/lv_example_bar_6
   :language: c
-  
+
index 3d534a4..dcfb192 100644 (file)
@@ -8,9 +8,9 @@ def get_icon(filename,xres,yres):
         with open(sdl_filename,'rb') as f:
             icon_data = f.read()
     except:
-        print("Could not find image file: " + filename) 
+        print("Could not find image file: " + filename)
         return None
-    
+
     icon_dsc = lv.img_dsc_t(
         {
             "header": {"always_zero": 0, "w": xres, "h": yres, "cf": lv.img.CF.TRUE_COLOR_ALPHA},
@@ -42,4 +42,4 @@ bar.set_value(90, lv.ANIM.OFF)
 bar.set_start_value(20, lv.ANIM.OFF)
 
 
-    
+
index 8e50b8a..2a159cc 100644 (file)
@@ -1,17 +1,17 @@
 #include "../../lv_examples.h"
 #if LV_USE_BAR && LV_BUILD_EXAMPLES
 
-static void set_value(void *bar, int32_t v)
+static void set_value(void * bar, int32_t v)
 {
     lv_bar_set_value(bar, v, LV_ANIM_OFF);
 }
 
 static void event_cb(lv_event_t * e)
 {
-    lv_obj_draw_part_dsc_t * dsc = lv_event_get_param(e);
+    lv_obj_draw_part_dsc_t * dsc = lv_event_get_draw_part_dsc(e);
     if(dsc->part != LV_PART_INDICATOR) return;
 
-    lv_obj_t * obj= lv_event_get_target(e);
+    lv_obj_t * obj = lv_event_get_target(e);
 
     lv_draw_label_dsc_t label_dsc;
     lv_draw_label_dsc_init(&label_dsc);
@@ -21,7 +21,8 @@ static void event_cb(lv_event_t * e)
     lv_snprintf(buf, sizeof(buf), "%d", (int)lv_bar_get_value(obj));
 
     lv_point_t txt_size;
-    lv_txt_get_size(&txt_size, buf, label_dsc.font, label_dsc.letter_space, label_dsc.line_space, LV_COORD_MAX, label_dsc.flag);
+    lv_txt_get_size(&txt_size, buf, label_dsc.font, label_dsc.letter_space, label_dsc.line_space, LV_COORD_MAX,
+                    label_dsc.flag);
 
     lv_area_t txt_area;
     /*If the indicator is long enough put the text inside on the right*/
index dc1ab0f..de4adb1 100644 (file)
@@ -1,5 +1,5 @@
 
-Simple Buttons 
+Simple Buttons
 """"""""""""""""
 
 .. lv_example:: widgets/btn/lv_example_btn_1
@@ -11,7 +11,7 @@ Styling buttons
 
 .. lv_example:: widgets/btn/lv_example_btn_2
   :language: c
-  
+
 Gummy button
 """"""""""""""""
 
index ebf6844..19fdba1 100644 (file)
@@ -5,7 +5,7 @@ def event_handler(evt):
             print("Clicked event seen")
     elif code == lv.EVENT.VALUE_CHANGED:
         print("Value changed seen")
-        
+
 # create a simple button
 btn1 = lv.btn(lv.scr_act())
 
index 1b8ef66..24d76c3 100644 (file)
@@ -8,7 +8,7 @@ void lv_example_btn_3(void)
 {
     /*Properties to transition*/
     static lv_style_prop_t props[] = {
-            LV_STYLE_TRANSFORM_WIDTH, LV_STYLE_TRANSFORM_HEIGHT, LV_STYLE_TEXT_LETTER_SPACE, 0
+        LV_STYLE_TRANSFORM_WIDTH, LV_STYLE_TRANSFORM_HEIGHT, LV_STYLE_TEXT_LETTER_SPACE, 0
     };
 
     /*Transition descriptor when going back to the default state.
index 0a882b8..9f569ea 100644 (file)
@@ -1,19 +1,19 @@
 
-Simple Button matrix 
+Simple Button matrix
 """"""""""""""""""""""
 
 .. lv_example:: widgets/btnmatrix/lv_example_btnmatrix_1
   :language: c
 
 
-Custom buttons 
+Custom buttons
 """"""""""""""""""""""
 
 .. lv_example:: widgets/btnmatrix/lv_example_btnmatrix_2
   :language: c
 
 
-Pagination 
+Pagination
 """"""""""""""""""""""
 
 .. lv_example:: widgets/btnmatrix/lv_example_btnmatrix_3
index 3119ede..262165f 100644 (file)
@@ -16,7 +16,8 @@ static void event_handler(lv_event_t * e)
 
 static const char * btnm_map[] = {"1", "2", "3", "4", "5", "\n",
                                   "6", "7", "8", "9", "0", "\n",
-                                  "Action1", "Action2", ""};
+                                  "Action1", "Action2", ""
+                                 };
 
 void lv_example_btnmatrix_1(void)
 {
index 5f42d5d..985a3d1 100644 (file)
@@ -7,54 +7,60 @@ static void event_cb(lv_event_t * e)
     lv_event_code_t code = lv_event_get_code(e);
     lv_obj_t * obj = lv_event_get_target(e);
     if(code == LV_EVENT_DRAW_PART_BEGIN) {
-        lv_obj_draw_part_dsc_t * dsc = lv_event_get_param(e);
+        lv_obj_draw_part_dsc_t * dsc = lv_event_get_draw_part_dsc(e);
 
-        /*Change the draw descriptor the 2nd button*/
-        if(dsc->id == 1) {
-            dsc->rect_dsc->radius = 0;
-            if(lv_btnmatrix_get_selected_btn(obj) == dsc->id)  dsc->rect_dsc->bg_color = lv_palette_darken(LV_PALETTE_BLUE, 3);
-            else dsc->rect_dsc->bg_color = lv_palette_main(LV_PALETTE_BLUE);
+        /*When the button matrix draws the buttons...*/
+        if(dsc->class_p == &lv_btnmatrix_class && dsc->type == LV_BTNMATRIX_DRAW_PART_BTN) {
+            /*Change the draw descriptor of the 2nd button*/
+            if(dsc->id == 1) {
+                dsc->rect_dsc->radius = 0;
+                if(lv_btnmatrix_get_selected_btn(obj) == dsc->id)  dsc->rect_dsc->bg_color = lv_palette_darken(LV_PALETTE_BLUE, 3);
+                else dsc->rect_dsc->bg_color = lv_palette_main(LV_PALETTE_BLUE);
 
-            dsc->rect_dsc->shadow_width = 6;
-            dsc->rect_dsc->shadow_ofs_x = 3;
-            dsc->rect_dsc->shadow_ofs_y = 3;
-            dsc->label_dsc->color = lv_color_white();
-        }
-        /*Change the draw descriptor the 3rd button*/
-        else if(dsc->id == 2) {
-            dsc->rect_dsc->radius = LV_RADIUS_CIRCLE;
-            if(lv_btnmatrix_get_selected_btn(obj) == dsc->id)  dsc->rect_dsc->bg_color = lv_palette_darken(LV_PALETTE_RED, 3);
-            else dsc->rect_dsc->bg_color = lv_palette_main(LV_PALETTE_RED);
+                dsc->rect_dsc->shadow_width = 6;
+                dsc->rect_dsc->shadow_ofs_x = 3;
+                dsc->rect_dsc->shadow_ofs_y = 3;
+                dsc->label_dsc->color = lv_color_white();
+            }
+            /*Change the draw descriptor of the 3rd button*/
+            else if(dsc->id == 2) {
+                dsc->rect_dsc->radius = LV_RADIUS_CIRCLE;
+                if(lv_btnmatrix_get_selected_btn(obj) == dsc->id)  dsc->rect_dsc->bg_color = lv_palette_darken(LV_PALETTE_RED, 3);
+                else dsc->rect_dsc->bg_color = lv_palette_main(LV_PALETTE_RED);
 
-            dsc->label_dsc->color = lv_color_white();
-        }
-        else if(dsc->id == 3) {
-            dsc->label_dsc->opa = LV_OPA_TRANSP; /*Hide the text if any*/
+                dsc->label_dsc->color = lv_color_white();
+            }
+            else if(dsc->id == 3) {
+                dsc->label_dsc->opa = LV_OPA_TRANSP; /*Hide the text if any*/
 
+            }
         }
     }
     if(code == LV_EVENT_DRAW_PART_END) {
-        lv_obj_draw_part_dsc_t * dsc = lv_event_get_param(e);
+        lv_obj_draw_part_dsc_t * dsc = lv_event_get_draw_part_dsc(e);
 
-        /*Add custom content to the 4th button when the button itself was drawn*/
-        if(dsc->id == 3) {
-            LV_IMG_DECLARE(img_star);
-            lv_img_header_t header;
-            lv_res_t res = lv_img_decoder_get_info(&img_star, &header);
-            if(res != LV_RES_OK) return;
+        /*When the button matrix draws the buttons...*/
+        if(dsc->class_p == &lv_btnmatrix_class && dsc->type == LV_BTNMATRIX_DRAW_PART_BTN) {
+            /*Add custom content to the 4th button when the button itself was drawn*/
+            if(dsc->id == 3) {
+                LV_IMG_DECLARE(img_star);
+                lv_img_header_t header;
+                lv_res_t res = lv_img_decoder_get_info(&img_star, &header);
+                if(res != LV_RES_OK) return;
 
-            lv_area_t a;
-            a.x1 = dsc->draw_area->x1 + (lv_area_get_width(dsc->draw_area) - header.w) / 2;
-            a.x2 = a.x1 + header.w - 1;
-            a.y1 = dsc->draw_area->y1 + (lv_area_get_height(dsc->draw_area) - header.h) / 2;
-            a.y2 = a.y1 + header.h - 1;
+                lv_area_t a;
+                a.x1 = dsc->draw_area->x1 + (lv_area_get_width(dsc->draw_area) - header.w) / 2;
+                a.x2 = a.x1 + header.w - 1;
+                a.y1 = dsc->draw_area->y1 + (lv_area_get_height(dsc->draw_area) - header.h) / 2;
+                a.y2 = a.y1 + header.h - 1;
 
-            lv_draw_img_dsc_t img_draw_dsc;
-            lv_draw_img_dsc_init(&img_draw_dsc);
-            img_draw_dsc.recolor = lv_color_black();
-            if(lv_btnmatrix_get_selected_btn(obj) == dsc->id)  img_draw_dsc.recolor_opa = LV_OPA_30;
+                lv_draw_img_dsc_t img_draw_dsc;
+                lv_draw_img_dsc_init(&img_draw_dsc);
+                img_draw_dsc.recolor = lv_color_black();
+                if(lv_btnmatrix_get_selected_btn(obj) == dsc->id)  img_draw_dsc.recolor_opa = LV_OPA_30;
 
-            lv_draw_img(dsc->draw_ctx, &img_draw_dsc, &a, &img_star);
+                lv_draw_img(dsc->draw_ctx, &img_draw_dsc, &a, &img_star);
+            }
         }
     }
 }
index 4381990..21f7c71 100644 (file)
@@ -12,10 +12,10 @@ try:
 except:
     print("Could not find star.png")
     sys.exit()
-    
+
 img_star_argb = lv.img_dsc_t({
   'data_size': len(png_data),
-  'data': png_data 
+  'data': png_data
 })
 
 def event_cb(e):
@@ -44,7 +44,7 @@ def event_cb(e):
                 dsc.rect_dsc.bg_color = lv.palette_darken(lv.PALETTE.RED, 3)
             else:
                 dsc.rect_dsc.bg_color = lv.palette_main(lv.PALETTE.RED)
-                
+
                 dsc.label_dsc.color = lv.color_white()
         elif dsc.id == 3:
             dsc.label_dsc.opa = lv.OPA.TRANSP  # Hide the text if any
index 65f1ea1..2df024d 100644 (file)
@@ -5,10 +5,10 @@ def event_handler(evt):
     if code == lv.EVENT.VALUE_CHANGED:
         source = evt.get_current_target()
         date = lv.calendar_date_t()
-        if source.get_pressed_date(date) == lv.RES.OK:        
+        if source.get_pressed_date(date) == lv.RES.OK:
             calendar.set_today_date(date.year, date.month, date.day)
             print("Clicked date: %02d.%02d.%02d"%(date.day, date.month, date.year))
-                
+
 
 calendar = lv.calendar(lv.scr_act())
 calendar.set_size(200, 200)
index 93130e0..b2cd7d4 100644 (file)
@@ -1,5 +1,5 @@
 
-Drawing on the Canvas and rotate 
+Drawing on the Canvas and rotate
 """"""""""""""""""""""""""""""""""
 
 .. lv_example:: widgets/canvas/lv_example_canvas_1
index 77a5401..a857c66 100644 (file)
@@ -34,8 +34,8 @@ void lv_example_canvas_2(void)
     /*Create hole on the canvas*/
     uint32_t x;
     uint32_t y;
-    for( y = 10; y < 30; y++) {
-        for( x = 5; x < 20; x++) {
+    for(y = 10; y < 30; y++) {
+        for(x = 5; x < 20; x++) {
             lv_canvas_set_px_color(canvas, x, y, c0);
         }
     }
index 75a55c8..faefc87 100644 (file)
@@ -1,6 +1,6 @@
 CANVAS_WIDTH   = 50
 CANVAS_HEIGHT  = 50
-LV_COLOR_CHROMA_KEY = lv.color_hex(0x00ff00) 
+LV_COLOR_CHROMA_KEY = lv.color_hex(0x00ff00)
 
 def LV_IMG_BUF_SIZE_ALPHA_1BIT(w, h):
     return int(((w / 8) + 1) * h)
@@ -13,7 +13,7 @@ def LV_CANVAS_BUF_SIZE_INDEXED_1BIT(w, h):
 
 #
 # Create a transparent canvas with Chroma keying and indexed color format (palette).
-# 
+#
 
 # Create a button to better see the transparency
 btn=lv.btn(lv.scr_act())
index 92492fe..d07f096 100644 (file)
@@ -1,41 +1,41 @@
 
-Line Chart 
+Line Chart
 """"""""""
 
 .. lv_example:: widgets/chart/lv_example_chart_1
   :language: c
-  
-  
-Faded area line chart with custom division lines 
+
+
+Faded area line chart with custom division lines
 """""""""""""""""""""""""""""""""""""""""""""""""""
 
 .. lv_example:: widgets/chart/lv_example_chart_2
   :language: c
-  
+
 Axis ticks and labels with scrolling
 """"""""""""""""""""""""""""""""""""
 
 .. lv_example:: widgets/chart/lv_example_chart_3
   :language: c
-  
+
 Show the value of the pressed points
 """"""""""""""""""""""""""""""""""""""
 
 .. lv_example:: widgets/chart/lv_example_chart_4
   :language: c
-  
+
 Display 1000 data points with zooming and scrolling
 """"""""""""""""""""""""""""""""""""""""""""""""""""
 
 .. lv_example:: widgets/chart/lv_example_chart_5
   :language: c
-  
+
 Show cursor on the clicked point
 """""""""""""""""""""""""""""""""""
 
 .. lv_example:: widgets/chart/lv_example_chart_6
   :language: c
-  
+
 Scatter chart
 """""""""""""""""""""""""""""""""""
 
index 95963dd..a10f6f9 100644 (file)
@@ -16,13 +16,15 @@ static void draw_event_cb(lv_event_t * e)
 
         /*Add a line mask that keeps the area below the line*/
         lv_draw_mask_line_param_t line_mask_param;
-        lv_draw_mask_line_points_init(&line_mask_param, dsc->p1->x, dsc->p1->y, dsc->p2->x, dsc->p2->y, LV_DRAW_MASK_LINE_SIDE_BOTTOM);
+        lv_draw_mask_line_points_init(&line_mask_param, dsc->p1->x, dsc->p1->y, dsc->p2->x, dsc->p2->y,
+                                      LV_DRAW_MASK_LINE_SIDE_BOTTOM);
         int16_t line_mask_id = lv_draw_mask_add(&line_mask_param, NULL);
 
         /*Add a fade effect: transparent bottom covering top*/
         lv_coord_t h = lv_obj_get_height(obj);
         lv_draw_mask_fade_param_t fade_mask_param;
-        lv_draw_mask_fade_init(&fade_mask_param, &obj->coords, LV_OPA_COVER, obj->coords.y1 + h / 8, LV_OPA_TRANSP,obj->coords.y2);
+        lv_draw_mask_fade_init(&fade_mask_param, &obj->coords, LV_OPA_COVER, obj->coords.y1 + h / 8, LV_OPA_TRANSP,
+                               obj->coords.y2);
         int16_t fade_mask_id = lv_draw_mask_add(&fade_mask_param, NULL);
 
         /*Draw a rectangle that will be affected by the mask*/
@@ -77,7 +79,8 @@ static void draw_event_cb(lv_event_t * e)
 
             if(dsc->id == 1  || dsc->id == 3) {
                 dsc->line_dsc->color  = lv_palette_main(LV_PALETTE_GREEN);
-            } else {
+            }
+            else {
                 dsc->line_dsc->color  = lv_palette_lighten(LV_PALETTE_GREY, 1);
             }
         }
index 4a750b8..b511150 100644 (file)
@@ -38,7 +38,8 @@ void lv_example_chart_3(void)
 
     /*Add two data series*/
     lv_chart_series_t * ser1 = lv_chart_add_series(chart, lv_palette_lighten(LV_PALETTE_GREEN, 2), LV_CHART_AXIS_PRIMARY_Y);
-    lv_chart_series_t * ser2 = lv_chart_add_series(chart, lv_palette_darken(LV_PALETTE_GREEN, 2), LV_CHART_AXIS_SECONDARY_Y);
+    lv_chart_series_t * ser2 = lv_chart_add_series(chart, lv_palette_darken(LV_PALETTE_GREEN, 2),
+                                                   LV_CHART_AXIS_SECONDARY_Y);
 
     /*Set the next points on 'ser1'*/
     lv_chart_set_next_value(chart, ser1, 31);
index 6dc1259..0afe6fe 100644 (file)
@@ -1,10 +1,10 @@
 def draw_event_cb(e):
 
     dsc = lv.obj_draw_part_dsc_t.__cast__(e.get_param())
-    if dsc.part == lv.PART.TICKS and dsc.id == lv.chart.AXIS.PRIMARY_X: 
+    if dsc.part == lv.PART.TICKS and dsc.id == lv.chart.AXIS.PRIMARY_X:
         month = ["Jan", "Febr", "March", "Apr", "May", "Jun", "July", "Aug", "Sept", "Oct", "Nov", "Dec"]
         # dsc.text is defined char text[16], I must therefore convert the Python string to a byte_array
-        dsc.text = bytes(month[dsc.value],"ascii") 
+        dsc.text = bytes(month[dsc.value],"ascii")
 #
 # Add ticks and labels to the axis and demonstrate scrolling
 #
index 1d688d7..8508ef1 100644 (file)
@@ -78,8 +78,8 @@ void lv_example_chart_4(void)
     lv_chart_series_t * ser2 = lv_chart_add_series(chart, lv_palette_main(LV_PALETTE_GREEN), LV_CHART_AXIS_PRIMARY_Y);
     uint32_t i;
     for(i = 0; i < 10; i++) {
-        lv_chart_set_next_value(chart, ser1, lv_rand(60,90));
-        lv_chart_set_next_value(chart, ser2, lv_rand(10,40));
+        lv_chart_set_next_value(chart, ser1, lv_rand(60, 90));
+        lv_chart_set_next_value(chart, ser2, lv_rand(10, 40));
     }
 }
 
index 5fe3067..3b8d063 100644 (file)
@@ -18,7 +18,7 @@ def event_cb(e):
             chart.get_point_pos_by_id(series[i], id, p)
             value = series_points[i][id]
             buf = lv.SYMBOL.DUMMY + "$" + str(value)
-            
+
             draw_rect_dsc = lv.draw_rect_dsc_t()
             draw_rect_dsc.init()
             draw_rect_dsc.bg_color = lv.color_black()
@@ -26,7 +26,7 @@ def event_cb(e):
             draw_rect_dsc.radius = 3
             draw_rect_dsc.bg_img_src = buf
             draw_rect_dsc.bg_img_recolor = lv.color_white()
-            
+
             a = lv.area_t()
             coords = lv.area_t()
             chart.get_coords(coords)
@@ -34,14 +34,14 @@ def event_cb(e):
             a.x2 = coords.x1 + p.x + 20
             a.y1 = coords.y1 + p.y - 30
             a.y2 = coords.y1 + p.y - 10
-            
+
             clip_area = lv.area_t.__cast__(e.get_param())
             lv.draw_rect(a, clip_area, draw_rect_dsc)
-            
+
     elif code == lv.EVENT.RELEASED:
         chart.invalidate()
-            
-# 
+
+#
 # Add ticks and labels to the axis and demonstrate scrolling
 #
 
index f960695..c175e37 100644 (file)
@@ -5,46 +5,46 @@ static lv_obj_t * chart;
 /* Source: https://github.com/ankur219/ECG-Arrhythmia-classification/blob/642230149583adfae1e4bd26c6f0e1fd8af2be0e/sample.csv*/
 static const lv_coord_t ecg_sample[] = {
     -2, 2, 0, -15, -39, -63, -71, -68, -67, -69, -84, -95, -104, -107, -108, -107, -107, -107, -107, -114, -118, -117,
-    -112, -100, -89, -83, -71, -64, -58, -58, -62, -62, -58, -51, -46, -39, -27, -10, 4, 7, 1, -3, 0, 14, 24, 30, 25, 19,
-    13, 7, 12, 15, 18, 21, 13, 6, 9, 8, 17, 19, 13, 11, 11, 11, 23, 30, 37, 34, 25, 14, 15, 19, 28, 31, 26, 23, 25, 31,
-    39, 37, 37, 34, 30, 32, 22, 29, 31, 33, 37, 23, 13, 7, 2, 4, -2, 2, 11, 22, 33, 19, -1, -27, -55, -67, -72, -71, -63,
-    -49, -18, 35, 113, 230, 369, 525, 651, 722, 730, 667, 563, 454, 357, 305, 288, 274, 255, 212, 173, 143, 117, 82, 39,
-    -13, -53, -78, -91, -101, -113, -124, -131, -131, -131, -129, -128, -129, -125, -123, -123, -129, -139, -148, -153,
-    -159, -166, -183, -205, -227, -243, -248, -246, -254, -280, -327, -381, -429, -473, -517, -556, -592, -612, -620,
-    -620, -614, -604, -591, -574, -540, -497, -441, -389, -358, -336, -313, -284, -222, -167, -114, -70, -47, -28, -4, 12,
-    38, 52, 58, 56, 56, 57, 68, 77, 86, 86, 80, 69, 67, 70, 82, 85, 89, 90, 89, 89, 88, 91, 96, 97, 91, 83, 78, 82, 88, 95,
-    96, 105, 106, 110, 102, 100, 96, 98, 97, 101, 98, 99, 100, 107, 113, 119, 115, 110, 96, 85, 73, 64, 69, 76, 79,
-    78, 75, 85, 100, 114, 113, 105, 96, 84, 74, 66, 60, 75, 85, 89, 83, 67, 61, 67, 73, 79, 74, 63, 57, 56, 58, 61, 55,
-    48, 45, 46, 55, 62, 55, 49, 43, 50, 59, 63, 57, 40, 31, 23, 25, 27, 31, 35, 34, 30, 36, 34, 42, 38, 36, 40, 46, 50,
-    47, 32, 30, 32, 52, 67, 73, 71, 63, 54, 53, 45, 41, 28, 13, 3, 1, 4, 4, -8, -23, -32, -31, -19, -5, 3, 9, 13, 19,
-    24, 27, 29, 25, 22, 26, 32, 42, 51, 56, 60, 57, 55, 53, 53, 54, 59, 54, 49, 26, -3, -11, -20, -47, -100, -194, -236,
-    -212, -123, 8, 103, 142, 147, 120, 105, 98, 93, 81, 61, 40, 26, 28, 30, 30, 27, 19, 17, 21, 20, 19, 19, 22, 36, 40,
-    35, 20, 7, 1, 10, 18, 27, 22, 6, -4, -2, 3, 6, -2, -13, -14, -10, -2, 3, 2, -1, -5, -10, -19, -32, -42, -55, -60,
-    -68, -77, -86, -101, -110, -117, -115, -104, -92, -84, -85, -84, -73, -65, -52, -50, -45, -35, -20, -3, 12, 20, 25,
-    26, 28, 28, 30, 28, 25, 28, 33, 42, 42, 36, 23, 9, 0, 1, -4, 1, -4, -4, 1, 5, 9, 9, -3, -1, -18, -50, -108, -190,
-    -272, -340, -408, -446, -537, -643, -777, -894, -920, -853, -697, -461, -251, -60, 58, 103, 129, 139, 155, 170, 173,
-    178, 185, 190, 193, 200, 208, 215, 225, 224, 232, 234, 240, 240, 236, 229, 226, 224, 232, 233, 232, 224, 219, 219,
-    223, 231, 226, 223, 219, 218, 223, 223, 223, 233, 245, 268, 286, 296, 295, 283, 271, 263, 252, 243, 226, 210, 197,
-    186, 171, 152, 133, 117, 114, 110, 107, 96, 80, 63, 48, 40, 38, 34, 28, 15, 2, -7, -11, -14, -18, -29, -37, -44, -50,
-    -58, -63, -61, -52, -50, -48, -61, -59, -58, -54, -47, -52, -62, -61, -64, -54, -52, -59, -69, -76, -76, -69, -67,
-    -74, -78, -81, -80, -73, -65, -57, -53, -51, -47, -35, -27, -22, -22, -24, -21, -17, -13, -10, -11, -13, -20, -20,
-    -12, -2, 7, -1, -12, -16, -13, -2, 2, -4, -5, -2, 9, 19, 19, 14, 11, 13, 19, 21, 20, 18, 19, 19, 19, 16, 15, 13, 14,
-    9, 3, -5, -9, -5, -3, -2, -3, -3, 2, 8, 9, 9, 5, 6, 8, 8, 7, 4, 3, 4, 5, 3, 5, 5, 13, 13, 12, 10, 10, 15, 22, 17,
-    14, 7, 10, 15, 16, 11, 12, 10, 13, 9, -2, -4, -2, 7, 16, 16, 17, 16, 7, -1, -16, -18, -16, -9, -4, -5, -10, -9, -8,
-    -3, -4, -10, -19, -20, -16, -9, -9, -23, -40, -48, -43, -33, -19, -21, -26, -31, -33, -19, 0, 17, 24, 9, -17, -47,
-    -63, -67, -59, -52, -51, -50, -49, -42, -26, -21, -15, -20, -23, -22, -19, -12, -8, 5, 18, 27, 32, 26, 25, 26, 22,
-    23, 17, 14, 17, 21, 25, 2, -45, -121, -196, -226, -200, -118, -9, 73, 126, 131, 114, 87, 60, 42, 29, 26, 34, 35, 34,
-    25, 12, 9, 7, 3, 2, -8, -11, 2, 23, 38, 41, 23, 9, 10, 13, 16, 8, -8, -17, -23, -26, -25, -21, -15, -10, -13, -13,
-    -19, -22, -29, -40, -48, -48, -54, -55, -66, -82, -85, -90, -92, -98, -114, -119, -124, -129, -132, -146, -146, -138,
-    -124, -99, -85, -72, -65, -65, -65, -66, -63, -64, -64, -58, -46, -26, -9, 2, 2, 4, 0, 1, 4, 3, 10, 11, 10, 2, -4,
-    0, 10, 18, 20, 6, 2, -9, -7, -3, -3, -2, -7, -12, -5, 5, 24, 36, 31, 25, 6, 3, 7, 12, 17, 11, 0, -6, -9, -8, -7, -5,
-    -6, -2, -2, -6, -2, 2, 14, 24, 22, 15, 8, 4, 6, 7, 12, 16, 25, 20, 7, -16, -41, -60, -67, -65, -54, -35, -11, 30,
-    84, 175, 302, 455, 603, 707, 743, 714, 625, 519, 414, 337, 300, 281, 263, 239, 197, 163, 136, 109, 77, 34, -18, -50,
-    -66, -74, -79, -92, -107, -117, -127, -129, -135, -139, -141, -155, -159, -167, -171, -169, -174, -175, -178, -191,
-    -202, -223, -235, -243, -237, -240, -256, -298, -345, -393, -432, -475, -518, -565, -596, -619, -623, -623, -614,
-    -599, -583, -559, -524, -477, -425, -383, -357, -331, -301, -252, -198, -143, -96, -57, -29, -8, 10, 31, 45, 60, 65,
-    70, 74, 76, 79, 82, 79, 75, 62,
-};
+        -112, -100, -89, -83, -71, -64, -58, -58, -62, -62, -58, -51, -46, -39, -27, -10, 4, 7, 1, -3, 0, 14, 24, 30, 25, 19,
+        13, 7, 12, 15, 18, 21, 13, 6, 9, 8, 17, 19, 13, 11, 11, 11, 23, 30, 37, 34, 25, 14, 15, 19, 28, 31, 26, 23, 25, 31,
+        39, 37, 37, 34, 30, 32, 22, 29, 31, 33, 37, 23, 13, 7, 2, 4, -2, 2, 11, 22, 33, 19, -1, -27, -55, -67, -72, -71, -63,
+        -49, -18, 35, 113, 230, 369, 525, 651, 722, 730, 667, 563, 454, 357, 305, 288, 274, 255, 212, 173, 143, 117, 82, 39,
+        -13, -53, -78, -91, -101, -113, -124, -131, -131, -131, -129, -128, -129, -125, -123, -123, -129, -139, -148, -153,
+        -159, -166, -183, -205, -227, -243, -248, -246, -254, -280, -327, -381, -429, -473, -517, -556, -592, -612, -620,
+        -620, -614, -604, -591, -574, -540, -497, -441, -389, -358, -336, -313, -284, -222, -167, -114, -70, -47, -28, -4, 12,
+        38, 52, 58, 56, 56, 57, 68, 77, 86, 86, 80, 69, 67, 70, 82, 85, 89, 90, 89, 89, 88, 91, 96, 97, 91, 83, 78, 82, 88, 95,
+        96, 105, 106, 110, 102, 100, 96, 98, 97, 101, 98, 99, 100, 107, 113, 119, 115, 110, 96, 85, 73, 64, 69, 76, 79,
+        78, 75, 85, 100, 114, 113, 105, 96, 84, 74, 66, 60, 75, 85, 89, 83, 67, 61, 67, 73, 79, 74, 63, 57, 56, 58, 61, 55,
+        48, 45, 46, 55, 62, 55, 49, 43, 50, 59, 63, 57, 40, 31, 23, 25, 27, 31, 35, 34, 30, 36, 34, 42, 38, 36, 40, 46, 50,
+        47, 32, 30, 32, 52, 67, 73, 71, 63, 54, 53, 45, 41, 28, 13, 3, 1, 4, 4, -8, -23, -32, -31, -19, -5, 3, 9, 13, 19,
+        24, 27, 29, 25, 22, 26, 32, 42, 51, 56, 60, 57, 55, 53, 53, 54, 59, 54, 49, 26, -3, -11, -20, -47, -100, -194, -236,
+        -212, -123, 8, 103, 142, 147, 120, 105, 98, 93, 81, 61, 40, 26, 28, 30, 30, 27, 19, 17, 21, 20, 19, 19, 22, 36, 40,
+        35, 20, 7, 1, 10, 18, 27, 22, 6, -4, -2, 3, 6, -2, -13, -14, -10, -2, 3, 2, -1, -5, -10, -19, -32, -42, -55, -60,
+        -68, -77, -86, -101, -110, -117, -115, -104, -92, -84, -85, -84, -73, -65, -52, -50, -45, -35, -20, -3, 12, 20, 25,
+        26, 28, 28, 30, 28, 25, 28, 33, 42, 42, 36, 23, 9, 0, 1, -4, 1, -4, -4, 1, 5, 9, 9, -3, -1, -18, -50, -108, -190,
+        -272, -340, -408, -446, -537, -643, -777, -894, -920, -853, -697, -461, -251, -60, 58, 103, 129, 139, 155, 170, 173,
+        178, 185, 190, 193, 200, 208, 215, 225, 224, 232, 234, 240, 240, 236, 229, 226, 224, 232, 233, 232, 224, 219, 219,
+        223, 231, 226, 223, 219, 218, 223, 223, 223, 233, 245, 268, 286, 296, 295, 283, 271, 263, 252, 243, 226, 210, 197,
+        186, 171, 152, 133, 117, 114, 110, 107, 96, 80, 63, 48, 40, 38, 34, 28, 15, 2, -7, -11, -14, -18, -29, -37, -44, -50,
+        -58, -63, -61, -52, -50, -48, -61, -59, -58, -54, -47, -52, -62, -61, -64, -54, -52, -59, -69, -76, -76, -69, -67,
+        -74, -78, -81, -80, -73, -65, -57, -53, -51, -47, -35, -27, -22, -22, -24, -21, -17, -13, -10, -11, -13, -20, -20,
+        -12, -2, 7, -1, -12, -16, -13, -2, 2, -4, -5, -2, 9, 19, 19, 14, 11, 13, 19, 21, 20, 18, 19, 19, 19, 16, 15, 13, 14,
+        9, 3, -5, -9, -5, -3, -2, -3, -3, 2, 8, 9, 9, 5, 6, 8, 8, 7, 4, 3, 4, 5, 3, 5, 5, 13, 13, 12, 10, 10, 15, 22, 17,
+        14, 7, 10, 15, 16, 11, 12, 10, 13, 9, -2, -4, -2, 7, 16, 16, 17, 16, 7, -1, -16, -18, -16, -9, -4, -5, -10, -9, -8,
+        -3, -4, -10, -19, -20, -16, -9, -9, -23, -40, -48, -43, -33, -19, -21, -26, -31, -33, -19, 0, 17, 24, 9, -17, -47,
+        -63, -67, -59, -52, -51, -50, -49, -42, -26, -21, -15, -20, -23, -22, -19, -12, -8, 5, 18, 27, 32, 26, 25, 26, 22,
+        23, 17, 14, 17, 21, 25, 2, -45, -121, -196, -226, -200, -118, -9, 73, 126, 131, 114, 87, 60, 42, 29, 26, 34, 35, 34,
+        25, 12, 9, 7, 3, 2, -8, -11, 2, 23, 38, 41, 23, 9, 10, 13, 16, 8, -8, -17, -23, -26, -25, -21, -15, -10, -13, -13,
+        -19, -22, -29, -40, -48, -48, -54, -55, -66, -82, -85, -90, -92, -98, -114, -119, -124, -129, -132, -146, -146, -138,
+        -124, -99, -85, -72, -65, -65, -65, -66, -63, -64, -64, -58, -46, -26, -9, 2, 2, 4, 0, 1, 4, 3, 10, 11, 10, 2, -4,
+        0, 10, 18, 20, 6, 2, -9, -7, -3, -3, -2, -7, -12, -5, 5, 24, 36, 31, 25, 6, 3, 7, 12, 17, 11, 0, -6, -9, -8, -7, -5,
+        -6, -2, -2, -6, -2, 2, 14, 24, 22, 15, 8, 4, 6, 7, 12, 16, 25, 20, 7, -16, -41, -60, -67, -65, -54, -35, -11, 30,
+        84, 175, 302, 455, 603, 707, 743, 714, 625, 519, 414, 337, 300, 281, 263, 239, 197, 163, 136, 109, 77, 34, -18, -50,
+        -66, -74, -79, -92, -107, -117, -127, -129, -135, -139, -141, -155, -159, -167, -171, -169, -174, -175, -178, -191,
+        -202, -223, -235, -243, -237, -240, -256, -298, -345, -393, -432, -475, -518, -565, -596, -619, -623, -623, -614,
+        -599, -583, -559, -524, -477, -425, -383, -357, -331, -301, -252, -198, -143, -96, -57, -29, -8, 10, 31, 45, 60, 65,
+        70, 74, 76, 79, 82, 79, 75, 62,
+    };
 
 static void slider_x_event_cb(lv_event_t * e)
 {
index 198cae1..f0d5832 100644 (file)
@@ -59,7 +59,7 @@ def slider_y_event_cb(e):
 # Display 1000 data points with zooming and scrolling.
 # See how the chart changes drawing mode (draw only vertical lines) when
 # the points get too crowded.
- 
+
 # Create a chart
 chart = lv.chart(lv.scr_act())
 chart.set_size(200, 150)
index 90e2740..463ab67 100644 (file)
@@ -74,7 +74,7 @@ void lv_example_chart_6(void)
     ser = lv_chart_add_series(chart, lv_palette_main(LV_PALETTE_RED), LV_CHART_AXIS_PRIMARY_Y);
     uint32_t i;
     for(i = 0; i < 10; i++) {
-        lv_chart_set_next_value(chart, ser, lv_rand(10,90));
+        lv_chart_set_next_value(chart, ser, lv_rand(10, 90));
     }
 
     lv_chart_set_zoom_x(chart, 500);
index cb110ca..acc4e11 100644 (file)
@@ -1,5 +1,5 @@
 class ExampleChart_6():
-    
+
     def __init__(self):
         self.last_id = -1
         #
@@ -9,21 +9,21 @@ class ExampleChart_6():
         chart = lv.chart(lv.scr_act())
         chart.set_size(200, 150)
         chart.align(lv.ALIGN.CENTER, 0, -10)
-        
+
         chart.set_axis_tick(lv.chart.AXIS.PRIMARY_Y, 10, 5, 6, 5, True, 40)
         chart.set_axis_tick(lv.chart.AXIS.PRIMARY_X, 10, 5, 10, 1, True, 30)
-        
+
         chart.add_event_cb(self.event_cb, lv.EVENT.ALL, None)
         chart.refresh_ext_draw_size()
-        
+
         self.cursor = chart.add_cursor(lv.palette_main(lv.PALETTE.BLUE), lv.DIR.LEFT | lv.DIR.BOTTOM)
-        
+
         self.ser = chart.add_series(lv.palette_main(lv.PALETTE.RED), lv.chart.AXIS.PRIMARY_Y)
 
         self.ser_p = []
         for i in range(10):
             self.ser_p.append(lv.rand(10,90))
-        self.ser.y_points = self.ser_p                     
+        self.ser.y_points = self.ser_p
 
         newser = chart.get_series_next(None)
         # print("length of data points: ",len(newser.points))
@@ -32,8 +32,8 @@ class ExampleChart_6():
         label = lv.label(lv.scr_act())
         label.set_text("Click on a point")
         label.align_to(chart, lv.ALIGN.OUT_TOP_MID, 0, -5)
-        
-        
+
+
     def event_cb(self,e):
 
         code = e.get_code()
@@ -46,7 +46,7 @@ class ExampleChart_6():
                 p = lv.point_t()
                 chart.get_point_pos_by_id(self.ser, self.last_id, p)
                 chart.set_cursor_point(self.cursor, None, self.last_id)
-                
+
         elif code == lv.EVENT.DRAW_PART_END:
             # print("EVENT.DRAW_PART_END")
             dsc = lv.obj_draw_part_dsc_t.__cast__(e.get_param())
@@ -57,25 +57,25 @@ class ExampleChart_6():
             if dsc.part == lv.PART.CURSOR and dsc.p1 and dsc.p2 and dsc.p1.y == dsc.p2.y and self.last_id >= 0:
 
                 v = self.ser_p[self.last_id]
-     
+
                 # print("value: ",v)
                 value_txt = str(v)
                 size = lv.point_t()
                 lv.txt_get_size(size, value_txt, lv.font_default(), 0, 0, lv.COORD.MAX, lv.TEXT_FLAG.NONE)
-                
+
                 a = lv.area_t()
                 a.y2 = dsc.p1.y - 5
                 a.y1 = a.y2 - size.y - 10
                 a.x1 = dsc.p1.x + 10
                 a.x2 = a.x1 + size.x + 10
-                
+
                 draw_rect_dsc = lv.draw_rect_dsc_t()
                 draw_rect_dsc.init()
                 draw_rect_dsc.bg_color = lv.palette_main(lv.PALETTE.BLUE)
                 draw_rect_dsc.radius = 3
-                
+
                 lv.draw_rect(a, dsc.clip_area, draw_rect_dsc)
-                
+
                 draw_label_dsc = lv.draw_label_dsc_t()
                 draw_label_dsc.init()
                 draw_label_dsc.color = lv.color_white()
index b65fc19..506f887 100644 (file)
@@ -21,8 +21,8 @@ static void draw_event_cb(lv_event_t * e)
         lv_opa_t y_opa = (y_array[p_act] * LV_OPA_50) / 1000;
 
         dsc->rect_dsc->bg_color = lv_color_mix(lv_palette_main(LV_PALETTE_RED),
-                                                lv_palette_main(LV_PALETTE_BLUE),
-                                                x_opa + y_opa);
+                                               lv_palette_main(LV_PALETTE_BLUE),
+                                               x_opa + y_opa);
     }
 }
 
@@ -30,7 +30,7 @@ static void add_data(lv_timer_t * timer)
 {
     LV_UNUSED(timer);
     lv_obj_t * chart = timer->user_data;
-    lv_chart_set_next_value2(chart, lv_chart_get_series_next(chart, NULL), lv_rand(0,200), lv_rand(0,1000));
+    lv_chart_set_next_value2(chart, lv_chart_get_series_next(chart, NULL), lv_rand(0, 200), lv_rand(0, 1000));
 }
 
 /**
index 8b73717..23f17e1 100644 (file)
@@ -12,7 +12,7 @@ def draw_event_cb(e):
         # print("cnt: ",cnt)
         # Make older value more transparent
         dsc.rect_dsc.bg_opa = (lv.OPA.COVER *  dsc.id) // (cnt - 1)
-        
+
         # Make smaller values blue, higher values red
         # x_array = chart.get_x_array(ser)
         # y_array = chart.get_y_array(ser)
@@ -23,11 +23,11 @@ def draw_event_cb(e):
         # print("p_act", p_act)
         x_opa = (x_array[p_act] * lv.OPA._50) // 200
         y_opa = (y_array[p_act] * lv.OPA._50) // 1000
-        
+
         dsc.rect_dsc.bg_color = lv.palette_main(lv.PALETTE.RED).color_mix(
                                              lv.palette_main(lv.PALETTE.BLUE),
                                              x_opa + y_opa)
-        
+
 def add_data(timer,chart):
     # print("add_data")
     x = lv.rand(0,200)
@@ -38,7 +38,7 @@ def add_data(timer,chart):
     x_array.append(x)
     y_array.pop(0)
     y_array.append(y)
-    
+
 #
 # A scatter chart
 #
@@ -66,7 +66,7 @@ y_array = []
 for i in range(50):
     x_array.append(lv.rand(0, 200))
     y_array.append(lv.rand(0, 1000))
-                        
+
 ser.x_points = x_array
 ser.y_points = y_array
 
index 6561da2..ca2c8f8 100644 (file)
@@ -2,10 +2,9 @@
 #if LV_USE_CHART && LV_DRAW_COMPLEX && LV_BUILD_EXAMPLES
 
 /*  A struct is used to keep track of the series list because later we need to draw to the series in the reverse order to which they were initialised. */
-typedef struct
-{
-    lv_obj_t *obj;
-    lv_chart_series_t *series_list[3];
+typedef struct {
+    lv_obj_t * obj;
+    lv_chart_series_t * series_list[3];
 } stacked_area_chart_t;
 
 static stacked_area_chart_t stacked_area_chart;
@@ -13,20 +12,20 @@ static stacked_area_chart_t stacked_area_chart;
 /**
  * Callback which draws the blocks of colour under the lines
  **/
-static void draw_event_cb(lv_event_t *e)
+static void draw_event_cb(lv_event_t * e)
 {
-    lv_obj_t *obj = lv_event_get_target(e);
+    lv_obj_t * obj = lv_event_get_target(e);
 
     /*Add the faded area before the lines are drawn*/
-    lv_obj_draw_part_dsc_t *dsc = lv_event_get_draw_part_dsc(e);
-    if (dsc->part == LV_PART_ITEMS)
-    {
-        if (!dsc->p1 || !dsc->p2)
+    lv_obj_draw_part_dsc_t * dsc = lv_event_get_draw_part_dsc(e);
+    if(dsc->part == LV_PART_ITEMS) {
+        if(!dsc->p1 || !dsc->p2)
             return;
 
         /*Add a line mask that keeps the area below the line*/
         lv_draw_mask_line_param_t line_mask_param;
-        lv_draw_mask_line_points_init(&line_mask_param, dsc->p1->x, dsc->p1->y, dsc->p2->x, dsc->p2->y, LV_DRAW_MASK_LINE_SIDE_BOTTOM);
+        lv_draw_mask_line_points_init(&line_mask_param, dsc->p1->x, dsc->p1->y, dsc->p2->x, dsc->p2->y,
+                                      LV_DRAW_MASK_LINE_SIDE_BOTTOM);
         int16_t line_mask_id = lv_draw_mask_add(&line_mask_param, NULL);
 
         /*Draw a rectangle that will be affected by the mask*/
@@ -39,7 +38,8 @@ static void draw_event_cb(lv_event_t *e)
         a.x1 = dsc->p1->x;
         a.x2 = dsc->p2->x;
         a.y1 = LV_MIN(dsc->p1->y, dsc->p2->y);
-        a.y2 = obj->coords.y2 - 13; /* -13 cuts off where the rectangle draws over the chart margin. Without this an area of 0 doesn't look like 0 */
+        a.y2 = obj->coords.y2 -
+               13; /* -13 cuts off where the rectangle draws over the chart margin. Without this an area of 0 doesn't look like 0 */
         lv_draw_rect(dsc->draw_ctx, &draw_rect_dsc, &a);
 
         /*Remove the mask*/
@@ -55,8 +55,7 @@ static int32_t round_fixed_point(int32_t n, int8_t shift)
 {
     /* Create a bitmask to isolates the decimal part of the fixed point number */
     int32_t mask = 1;
-    for (int32_t bit_pos = 0; bit_pos < shift; bit_pos++)
-    {
+    for(int32_t bit_pos = 0; bit_pos < shift; bit_pos++) {
         mask = (mask << 1) + 1;
     }
 
@@ -83,19 +82,21 @@ void lv_example_chart_8(void)
     lv_obj_add_event_cb(stacked_area_chart.obj, draw_event_cb, LV_EVENT_DRAW_PART_BEGIN, NULL);
 
     /* Set range to 0 to 100 for percentages. Draw ticks */
-    lv_chart_set_range(stacked_area_chart.obj,LV_CHART_AXIS_PRIMARY_Y,0,100);
+    lv_chart_set_range(stacked_area_chart.obj, LV_CHART_AXIS_PRIMARY_Y, 0, 100);
     lv_chart_set_axis_tick(stacked_area_chart.obj, LV_CHART_AXIS_PRIMARY_Y, 3, 0, 5, 1, true, 30);
 
     /*Set point size to 0 so the lines are smooth */
     lv_obj_set_style_size(stacked_area_chart.obj, 0, LV_PART_INDICATOR);
 
     /*Add some data series*/
-    stacked_area_chart.series_list[0] = lv_chart_add_series(stacked_area_chart.obj, lv_palette_main(LV_PALETTE_RED), LV_CHART_AXIS_PRIMARY_Y);
-    stacked_area_chart.series_list[1] = lv_chart_add_series(stacked_area_chart.obj, lv_palette_main(LV_PALETTE_BLUE), LV_CHART_AXIS_PRIMARY_Y);
-    stacked_area_chart.series_list[2] = lv_chart_add_series(stacked_area_chart.obj, lv_palette_main(LV_PALETTE_GREEN), LV_CHART_AXIS_PRIMARY_Y);
-
-    for (int point = 0; point < 10; point++)
-    {
+    stacked_area_chart.series_list[0] = lv_chart_add_series(stacked_area_chart.obj, lv_palette_main(LV_PALETTE_RED),
+                                                            LV_CHART_AXIS_PRIMARY_Y);
+    stacked_area_chart.series_list[1] = lv_chart_add_series(stacked_area_chart.obj, lv_palette_main(LV_PALETTE_BLUE),
+                                                            LV_CHART_AXIS_PRIMARY_Y);
+    stacked_area_chart.series_list[2] = lv_chart_add_series(stacked_area_chart.obj, lv_palette_main(LV_PALETTE_GREEN),
+                                                            LV_CHART_AXIS_PRIMARY_Y);
+
+    for(int point = 0; point < 10; point++) {
         /* Make some random data */
         uint32_t vals[3] = {lv_rand(10, 20), lv_rand(20, 30), lv_rand(20, 30)};
 
@@ -106,8 +107,7 @@ void lv_example_chart_8(void)
         uint32_t decimal_sum = 0;
 
         /* Fixed point cascade rounding ensures percentages add to 100 */
-        for (int32_t series_index = 0; series_index < 3; series_index++)
-        {
+        for(int32_t series_index = 0; series_index < 3; series_index++) {
             decimal_sum += (((vals[series_index] * 100) << fixed_point_shift) / total);
             int_sum += (vals[series_index] * 100) / total;
 
@@ -120,7 +120,8 @@ void lv_example_chart_8(void)
             /*  Draw to the series in the reverse order to which they were initialised.
                 Without this the higher values will draw on top of the lower ones.
                 This is because the Z-height of a series matches the order it was initialised */
-            lv_chart_set_next_value(stacked_area_chart.obj, stacked_area_chart.series_list[3 - series_index - 1], draw_heights[series_index]);
+            lv_chart_set_next_value(stacked_area_chart.obj, stacked_area_chart.series_list[3 - series_index - 1],
+                                    draw_heights[series_index]);
         }
     }
 
index 2e94a5b..20996b3 100644 (file)
@@ -81,7 +81,7 @@ def lv_example_chart_8():
     stacked_area_chart.obj.set_div_line_count(5, 7)
     stacked_area_chart.obj.add_event_cb( draw_event_cb, lv.EVENT.DRAW_PART_BEGIN, None)
 
-    # Set range to 0 to 100 for percentages. Draw ticks 
+    # Set range to 0 to 100 for percentages. Draw ticks
     stacked_area_chart.obj.set_range(lv.chart.AXIS.PRIMARY_Y,0,100)
     stacked_area_chart.obj.set_axis_tick(lv.chart.AXIS.PRIMARY_Y, 3, 0, 5, 1, True, 30)
 
index 46391ec..02a5728 100644 (file)
@@ -59,7 +59,7 @@ void lv_example_checkbox_2(void)
     lv_obj_set_size(cont1, lv_pct(40), lv_pct(80));
     lv_obj_add_event_cb(cont1, radio_event_handler, LV_EVENT_CLICKED, &active_index_1);
 
-    for (i = 0;i < 5;i++) {
+    for(i = 0; i < 5; i++) {
         lv_snprintf(buf, sizeof(buf), "A %d", (int)i + 1);
         radiobutton_create(cont1, buf);
 
@@ -73,7 +73,7 @@ void lv_example_checkbox_2(void)
     lv_obj_set_x(cont2, lv_pct(50));
     lv_obj_add_event_cb(cont2, radio_event_handler, LV_EVENT_CLICKED, &active_index_2);
 
-    for (i = 0;i < 3;i++) {
+    for(i = 0; i < 3; i++) {
         lv_snprintf(buf, sizeof(buf), "B %d", (int)i + 1);
         radiobutton_create(cont2, buf);
     }
index f35b337..275e6cf 100644 (file)
@@ -18,15 +18,15 @@ void lv_example_dropdown_1(void)
     /*Create a normal drop down list*/
     lv_obj_t * dd = lv_dropdown_create(lv_scr_act());
     lv_dropdown_set_options(dd, "Apple\n"
-                                "Banana\n"
-                                "Orange\n"
-                                "Cherry\n"
-                                "Grape\n"
-                                "Raspberry\n"
-                                "Melon\n"
-                                "Orange\n"
-                                "Lemon\n"
-                                "Nuts");
+                            "Banana\n"
+                            "Orange\n"
+                            "Cherry\n"
+                            "Grape\n"
+                            "Raspberry\n"
+                            "Melon\n"
+                            "Orange\n"
+                            "Lemon\n"
+                            "Nuts");
 
     lv_obj_align(dd, LV_ALIGN_TOP_MID, 0, 20);
     lv_obj_add_event_cb(dd, event_handler, LV_EVENT_ALL, NULL);
index 6592ad3..ad7621e 100644 (file)
@@ -1,7 +1,7 @@
 def event_handler(e):
     code = e.get_code()
     obj = e.get_target()
-    if code == lv.EVENT.VALUE_CHANGED: 
+    if code == lv.EVENT.VALUE_CHANGED:
         option = " "*10 # should be large enough to store the option
         obj.get_selected_str(option, len(option))
         # .strip() removes trailing spaces
index f158a19..123cb8d 100644 (file)
@@ -18,13 +18,13 @@ void lv_example_dropdown_3(void)
     lv_obj_t * dropdown = lv_dropdown_create(lv_scr_act());
     lv_obj_align(dropdown, LV_ALIGN_TOP_LEFT, 10, 10);
     lv_dropdown_set_options(dropdown, "New project\n"
-                                      "New file\n"
-                                      "Save\n"
-                                      "Save as ...\n"
-                                      "Open project\n"
-                                      "Recent projects\n"
-                                      "Preferences\n"
-                                      "Exit");
+                            "New file\n"
+                            "Save\n"
+                            "Save as ...\n"
+                            "Open project\n"
+                            "Recent projects\n"
+                            "Preferences\n"
+                            "Exit");
 
     /*Set a fixed text to display on the button of the drop-down list*/
     lv_dropdown_set_text(dropdown, "Menu");
index 181c7c5..07ba071 100644 (file)
@@ -12,10 +12,10 @@ try:
 except:
     print("Could not find img_caret_down.png")
     sys.exit()
-    
+
 img_caret_down_argb = lv.img_dsc_t({
   'data_size': len(png_data),
-  'data': png_data 
+  'data': png_data
 })
 
 def event_cb(e):
index ede75e4..efba6b4 100644 (file)
@@ -1,24 +1,24 @@
 
-Image from variable and symbol 
+Image from variable and symbol
 """""""""""""""""""""""""""""""
 
 .. lv_example:: widgets/img/lv_example_img_1
   :language: c
 
 
-Image recoloring 
+Image recoloring
 """"""""""""""""
 
 .. lv_example:: widgets/img/lv_example_img_2
   :language: c
 
 
-Rotate and zoom 
+Rotate and zoom
 """"""""""""""""
 
 .. lv_example:: widgets/img/lv_example_img_3
   :language: c
-  
+
 Image offset and styling
 """"""""""""""""""""""""
 
index 8f5e541..b5242f6 100644 (file)
@@ -16,10 +16,10 @@ try:
 except:
     print("Could not find img_cogwheel_argb.png")
     sys.exit()
-    
+
 img_cogwheel_argb = lv.img_dsc_t({
   'data_size': len(png_data),
-  'data': png_data 
+  'data': png_data
 })
 
 img1 = lv.img(lv.scr_act())
index 756ef03..698ab90 100644 (file)
@@ -43,7 +43,8 @@ static void slider_event_cb(lv_event_t * e)
     LV_UNUSED(e);
 
     /*Recolor the image based on the sliders' values*/
-    lv_color_t color  = lv_color_make(lv_slider_get_value(red_slider), lv_slider_get_value(green_slider), lv_slider_get_value(blue_slider));
+    lv_color_t color  = lv_color_make(lv_slider_get_value(red_slider), lv_slider_get_value(green_slider),
+                                      lv_slider_get_value(blue_slider));
     lv_opa_t intense = lv_slider_get_value(intense_slider);
     lv_obj_set_style_img_recolor_opa(img1, intense, 0);
     lv_obj_set_style_img_recolor(img1, color, 0);
index b69fedd..7660dea 100644 (file)
@@ -16,10 +16,10 @@ try:
 except:
     print("Could not find img_cogwheel_argb.png")
     sys.exit()
-    
+
 img_cogwheel_argb = lv.img_dsc_t({
   'data_size': len(png_data),
-  'data': png_data 
+  'data': png_data
 })
 
 def create_slider(color):
@@ -37,7 +37,7 @@ def slider_event_cb(e):
     intense = intense_slider.get_value()
     img1.set_style_img_recolor_opa(intense, 0)
     img1.set_style_img_recolor(color, 0)
-    
+
 #
 # Demonstrate runtime image re-coloring
 #
index 6584d51..07f222d 100644 (file)
@@ -16,10 +16,10 @@ try:
 except:
     print("Could not find img_cogwheel_argb.png")
     sys.exit()
-    
+
 img_cogwheel_argb = lv.img_dsc_t({
   'data_size': len(png_data),
-  'data': png_data 
+  'data': png_data
 })
 
 def set_angle(img, v):
index f40e74a..37b24a0 100644 (file)
@@ -1,9 +1,9 @@
 from imagetools import get_png_info, open_png
 
-def ofs_y_anim(img, v):    
+def ofs_y_anim(img, v):
     img.set_offset_y(v)
     # print(img,v)
-    
+
 # Register PNG image decoder
 decoder = lv.img.decoder_create()
 decoder.info_cb = get_png_info
@@ -16,10 +16,10 @@ try:
 except:
     print("Could not find img_skew_strip.png")
     sys.exit()
-    
+
 img_skew_strip = lv.img_dsc_t({
   'data_size': len(png_data),
-  'data': png_data 
+  'data': png_data
 })
 
 #
index d1931a7..2341055 100644 (file)
@@ -12,10 +12,10 @@ try:
 except:
     print("Could not find imgbtn_left.png")
     sys.exit()
-    
+
 imgbtn_left_dsc = lv.img_dsc_t({
   'data_size': len(imgbtn_left_data),
-  'data': imgbtn_left_data 
+  'data': imgbtn_left_data
 })
 
 try:
@@ -24,10 +24,10 @@ try:
 except:
     print("Could not find imgbtn_mid.png")
     sys.exit()
-    
+
 imgbtn_mid_dsc = lv.img_dsc_t({
   'data_size': len(imgbtn_mid_data),
-  'data': imgbtn_mid_data 
+  'data': imgbtn_mid_data
 })
 
 try:
@@ -36,10 +36,10 @@ try:
 except:
     print("Could not find imgbtn_right.png")
     sys.exit()
-    
+
 imgbtn_right_dsc = lv.img_dsc_t({
   'data_size': len(imgbtn_right_data),
-  'data': imgbtn_right_data 
+  'data': imgbtn_right_data
 })
 
 # Create a transition animation on width transformation and recolor.
index 04c05f3..710098f 100644 (file)
@@ -20,7 +20,7 @@ static void ta_event_cb(lv_event_t * e)
 void lv_example_keyboard_1(void)
 {
     /*Create a keyboard to use it with an of the text areas*/
-    lv_obj_t *kb = lv_keyboard_create(lv_scr_act());
+    lv_obj_t * kb = lv_keyboard_create(lv_scr_act());
 
     /*Create a text area. The keyboard will write here*/
     lv_obj_t * ta;
index 3fa3875..7b7591f 100644 (file)
@@ -8,7 +8,7 @@ def ta_event_cb(e,kb):
     if code == lv.EVENT.DEFOCUSED:
         kb.set_textarea(None)
         kb.add_flag(lv.obj.FLAG.HIDDEN)
-        
+
 # Create a keyboard to use it with one of the text areas
 kb = lv.keyboard(lv.scr_act())
 
index 4060149..b2b5647 100644 (file)
@@ -1,16 +1,16 @@
-  
-Line wrap, recoloring and scrolling 
+
+Line wrap, recoloring and scrolling
 """""""""""""""""""""""""""""""""""
 
 .. lv_example:: widgets/label/lv_example_label_1
   :language: c
 
-Text shadow 
+Text shadow
 """"""""""""
 
 .. lv_example:: widgets/label/lv_example_label_2
   :language: c
-  
+
 Show LTR, RTL and Chinese texts
 """"""""""""""""""""""""""""""""""""
 
@@ -23,3 +23,9 @@ Draw label with gradient color
 .. lv_example:: widgets/label/lv_example_label_4
   :language: c
 
+Customize circular scrolling animation
+""""""""""""""""""""""""""""""""""""
+
+.. lv_example:: widgets/label/lv_example_label_5
+  :language: c
+
index 88d9108..886cd4a 100644 (file)
@@ -10,7 +10,7 @@ void lv_example_label_1(void)
     lv_label_set_long_mode(label1, LV_LABEL_LONG_WRAP);     /*Break the long lines*/
     lv_label_set_recolor(label1, true);                      /*Enable re-coloring by commands in the text*/
     lv_label_set_text(label1, "#0000ff Re-color# #ff00ff words# #ff0000 of a# label, align the lines to the center "
-                              "and wrap long text automatically.");
+                      "and wrap long text automatically.");
     lv_obj_set_width(label1, 150);  /*Set smaller width to make the lines wrap*/
     lv_obj_set_style_text_align(label1, LV_TEXT_ALIGN_CENTER, 0);
     lv_obj_align(label1, LV_ALIGN_CENTER, 0, -40);
index f708fa1..0b605cf 100644 (file)
@@ -19,9 +19,9 @@ void lv_example_label_2(void)
     /*Create the main label*/
     lv_obj_t * main_label = lv_label_create(lv_scr_act());
     lv_label_set_text(main_label, "A simple method to create\n"
-                                  "shadows on a text.\n"
-                                  "It even works with\n\n"
-                                  "newlines     and spaces.");
+                      "shadows on a text.\n"
+                      "It even works with\n\n"
+                      "newlines     and spaces.");
 
     /*Set the same text for the shadow label*/
     lv_label_set_text(shadow_label, lv_label_get_text(main_label));
index d4e1f33..680d88f 100644 (file)
@@ -13,14 +13,16 @@ void lv_example_label_3(void)
     lv_obj_align(ltr_label, LV_ALIGN_TOP_LEFT, 5, 5);
 
     lv_obj_t * rtl_label = lv_label_create(lv_scr_act());
-    lv_label_set_text(rtl_label, "מעבד, או בשמו המלא יחידת עיבוד מרכזית (באנגלית: CPU - Central Processing Unit).");
+    lv_label_set_text(rtl_label,
+                      "מעבד, או בשמו המלא יחידת עיבוד מרכזית (באנגלית: CPU - Central Processing Unit).");
     lv_obj_set_style_base_dir(rtl_label, LV_BASE_DIR_RTL, 0);
     lv_obj_set_style_text_font(rtl_label, &lv_font_dejavu_16_persian_hebrew, 0);
     lv_obj_set_width(rtl_label, 310);
     lv_obj_align(rtl_label, LV_ALIGN_LEFT_MID, 5, 0);
 
     lv_obj_t * cz_label = lv_label_create(lv_scr_act());
-    lv_label_set_text(cz_label, "嵌入式系统(Embedded System),\n是一种嵌入机械或电气系统内部、具有专一功能和实时计算性能的计算机系统。");
+    lv_label_set_text(cz_label,
+                      "嵌入式系统(Embedded System),\n是一种嵌入机械或电气系统内部、具有专一功能和实时计算性能的计算机系统。");
     lv_obj_set_style_text_font(cz_label, &lv_font_simsun_16_cjk, 0);
     lv_obj_set_width(cz_label, 310);
     lv_obj_align(cz_label, LV_ALIGN_BOTTOM_LEFT, 5, -5);
index b785bf4..12c9034 100644 (file)
@@ -15,7 +15,7 @@ try:
 except:
     font_montserrat_16 = lv.font_load("S:../../assets/font/montserrat-16.fnt")
     ltr_label.set_style_text_font(font_montserrat_16, 0)
-    
+
 ltr_label.set_width(310)
 ltr_label.align(lv.ALIGN.TOP_LEFT, 5, 5)
 
@@ -30,7 +30,7 @@ font_simsun_16_cjk = lv.font_load("S:../../assets/font/lv_font_simsun_16_cjk.fnt
 
 cz_label = lv.label(lv.scr_act())
 cz_label.set_style_text_font(font_simsun_16_cjk, 0)
-cz_label.set_text("嵌入式系统(Embedded System),\n是一种嵌入机械或电气系统内部、具有专一功能和实时计算性能的计算机系统。")    
+cz_label.set_text("嵌入式系统(Embedded System),\n是一种嵌入机械或电气系统内部、具有专一功能和实时计算性能的计算机系统。")
 cz_label.set_width(310)
 cz_label.align(lv.ALIGN.BOTTOM_LEFT, 5, -5)
 
index 816f9db..3a5822f 100644 (file)
@@ -1,8 +1,8 @@
 # Create an array for the points of the line
-line_points = [ {"x":5, "y":5}, 
-                {"x":70, "y":70}, 
-                {"x":120, "y":10}, 
-                {"x":180, "y":60}, 
+line_points = [ {"x":5, "y":5},
+                {"x":70, "y":70},
+                {"x":120, "y":10},
+                {"x":180, "y":60},
                 {"x":240, "y":10}]
 
 # Create style
index 9b9affb..ca8a897 100644 (file)
@@ -1,12 +1,12 @@
 
-Simple List 
+Simple List
 """"""""""""""""
 
 .. lv_example:: widgets/list/lv_example_list_1
   :language: c
 
 
-Sorting a List using up and down buttons 
+Sorting a List using up and down buttons
 """"""""""""""""
 
 .. lv_example:: widgets/list/lv_example_list_2
index 918b994..0def918 100644 (file)
@@ -4,76 +4,67 @@
 #include "../../lv_examples.h"
 #if LV_USE_LIST && LV_BUILD_EXAMPLES
 
-static lv_obj_t* list1;
-static lv_obj_t* list2;
+static lv_obj_t * list1;
+static lv_obj_t * list2;
 
-static lv_obj_t* currentButton = NULL;
+static lv_obj_t * currentButton = NULL;
 
-static void event_handler(lv_event_t* e)
+static void event_handler(lv_event_t * e)
 {
     lv_event_code_t code = lv_event_get_code(e);
-    lv_obj_t* obj = lv_event_get_target(e);
-    if (code == LV_EVENT_CLICKED)
-    {
+    lv_obj_t * obj = lv_event_get_target(e);
+    if(code == LV_EVENT_CLICKED) {
         LV_LOG_USER("Clicked: %s", lv_list_get_btn_text(list1, obj));
 
-        if (currentButton == obj)
-        {
+        if(currentButton == obj) {
             currentButton = NULL;
         }
-        else
-        {
+        else {
             currentButton = obj;
         }
-        lv_obj_t* parent = lv_obj_get_parent(obj);
+        lv_obj_t * parent = lv_obj_get_parent(obj);
         uint32_t i;
-        for (i = 0; i < lv_obj_get_child_cnt(parent); i++)
-        {
-            lv_obj_t* child = lv_obj_get_child(parent, i);
-            if (child == currentButton)
-            {
+        for(i = 0; i < lv_obj_get_child_cnt(parent); i++) {
+            lv_obj_t * child = lv_obj_get_child(parent, i);
+            if(child == currentButton) {
                 lv_obj_add_state(child, LV_STATE_CHECKED);
             }
-            else
-            {
+            else {
                 lv_obj_clear_state(child, LV_STATE_CHECKED);
             }
         }
     }
 }
 
-static void event_handler_top(lv_event_t* e)
+static void event_handler_top(lv_event_t * e)
 {
     lv_event_code_t code = lv_event_get_code(e);
-    if (code == LV_EVENT_CLICKED)
-    {
-        if (currentButton == NULL) return;
+    if(code == LV_EVENT_CLICKED) {
+        if(currentButton == NULL) return;
         lv_obj_move_background(currentButton);
         lv_obj_scroll_to_view(currentButton, LV_ANIM_ON);
     }
 }
 
-static void event_handler_up(lv_event_t* e)
+static void event_handler_up(lv_event_t * e)
 {
     lv_event_code_t code = lv_event_get_code(e);
-    if ((code == LV_EVENT_CLICKED) || (code == LV_EVENT_LONG_PRESSED_REPEAT))
-    {
-        if (currentButton == NULL) return;
+    if((code == LV_EVENT_CLICKED) || (code == LV_EVENT_LONG_PRESSED_REPEAT)) {
+        if(currentButton == NULL) return;
         uint32_t index = lv_obj_get_index(currentButton);
-        if (index <= 0) return;
+        if(index <= 0) return;
         lv_obj_move_to_index(currentButton, index - 1);
         lv_obj_scroll_to_view(currentButton, LV_ANIM_ON);
     }
 }
 
-static void event_handler_center(lv_event_t* e)
+static void event_handler_center(lv_event_t * e)
 {
     const lv_event_code_t code = lv_event_get_code(e);
-    if ((code == LV_EVENT_CLICKED) || (code == LV_EVENT_LONG_PRESSED_REPEAT))
-    {
-        if (currentButton == NULL) return;
+    if((code == LV_EVENT_CLICKED) || (code == LV_EVENT_LONG_PRESSED_REPEAT)) {
+        if(currentButton == NULL) return;
 
-        lv_obj_t* parent = lv_obj_get_parent(currentButton);
+        lv_obj_t * parent = lv_obj_get_parent(currentButton);
         const uint32_t pos = lv_obj_get_child_cnt(parent) / 2;
 
         lv_obj_move_to_index(currentButton, pos);
@@ -82,12 +73,11 @@ static void event_handler_center(lv_event_t* e)
     }
 }
 
-static void event_handler_dn(lv_event_t* e)
+static void event_handler_dn(lv_event_t * e)
 {
     const lv_event_code_t code = lv_event_get_code(e);
-    if ((code == LV_EVENT_CLICKED) || (code == LV_EVENT_LONG_PRESSED_REPEAT))
-    {
-        if (currentButton == NULL) return;
+    if((code == LV_EVENT_CLICKED) || (code == LV_EVENT_LONG_PRESSED_REPEAT)) {
+        if(currentButton == NULL) return;
         const uint32_t index = lv_obj_get_index(currentButton);
 
         lv_obj_move_to_index(currentButton, index + 1);
@@ -95,31 +85,27 @@ static void event_handler_dn(lv_event_t* e)
     }
 }
 
-static void event_handler_bottom(lv_event_t* e)
+static void event_handler_bottom(lv_event_t * e)
 {
     const lv_event_code_t code = lv_event_get_code(e);
-    if (code == LV_EVENT_CLICKED)
-    {
-        if (currentButton == NULL) return;
+    if(code == LV_EVENT_CLICKED) {
+        if(currentButton == NULL) return;
         lv_obj_move_foreground(currentButton);
         lv_obj_scroll_to_view(currentButton, LV_ANIM_ON);
     }
 }
 
-static void event_handler_swap(lv_event_t* e)
+static void event_handler_swap(lv_event_t * e)
 {
     const lv_event_code_t code = lv_event_get_code(e);
     // lv_obj_t* obj = lv_event_get_target(e);
-    if ((code == LV_EVENT_CLICKED) || (code == LV_EVENT_LONG_PRESSED_REPEAT))
-    {
+    if((code == LV_EVENT_CLICKED) || (code == LV_EVENT_LONG_PRESSED_REPEAT)) {
         uint32_t cnt = lv_obj_get_child_cnt(list1);
-        for (int i = 0; i < 100; i++)
-            if (cnt > 1)
-            {
-                lv_obj_t* obj = lv_obj_get_child(list1, rand() % cnt);
+        for(int i = 0; i < 100; i++)
+            if(cnt > 1) {
+                lv_obj_t * obj = lv_obj_get_child(list1, rand() % cnt);
                 lv_obj_move_to_index(obj, rand() % cnt);
-                if (currentButton != NULL)
-                {
+                if(currentButton != NULL) {
                     lv_obj_scroll_to_view(currentButton, LV_ANIM_ON);
                 }
             }
@@ -134,14 +120,14 @@ void lv_example_list_2(void)
     lv_obj_set_style_pad_row(list1, 5, 0);
 
     /*Add buttons to the list*/
-    lv_obj_t* btn;
+    lv_obj_t * btn;
     int i;
-    for (i = 0; i < 15; i++) {
+    for(i = 0; i < 15; i++) {
         btn = lv_btn_create(list1);
         lv_obj_set_width(btn, lv_pct(50));
         lv_obj_add_event_cb(btn, event_handler, LV_EVENT_CLICKED, NULL);
 
-        lv_obj_t* lab = lv_label_create(btn);
+        lv_obj_t * lab = lv_label_create(btn);
         lv_label_set_text_fmt(lab, "Item %d", i);
     }
 
index 254d1df..bf553c3 100644 (file)
@@ -81,7 +81,7 @@ def event_handler_swap(evt):
     global list1
     code = evt.get_code()
     obj = evt.get_target()
-    if code == lv.EVENT.CLICKED:    
+    if code == lv.EVENT.CLICKED:
         cnt = list1.get_child_cnt()
         for i in range(100):
             if cnt > 1:
@@ -89,7 +89,7 @@ def event_handler_swap(evt):
                 obj.move_to_index(urandom.getrandbits(32) % cnt)
         if currentButton != None:
             currentButton.scroll_to_view(lv.ANIM.ON)
-                
+
 #Create a list with buttons that can be sorted
 list1 = lv.list(lv.scr_act())
 list1.set_size(lv.pct(60), lv.pct(100))
index 17b6ac2..1d1ae16 100644 (file)
@@ -82,6 +82,7 @@ void lv_example_label_1(void);
 void lv_example_label_2(void);
 void lv_example_label_3(void);
 void lv_example_label_4(void);
+void lv_example_label_5(void);
 
 void lv_example_led_1(void);
 
index 06e6a6c..4a5e7c8 100644 (file)
@@ -1,16 +1,16 @@
 
-Simple Menu 
+Simple Menu
 """"""""""""""""
 
 .. lv_example:: widgets/menu/lv_example_menu_1
   :language: c
-  
+
 Simple Menu with root btn
 """"""""""""""""""""""""""""
 
 .. lv_example:: widgets/menu/lv_example_menu_2
   :language: c
-  
+
 Simple Menu with custom header
 """"""""""""""""""""""""""""
 
@@ -22,7 +22,7 @@ Simple Menu with floating btn to add new menu page
 
 .. lv_example:: widgets/menu/lv_example_menu_4
   :language: c
-  
+
 Complex Menu
 """"""""""""""""""""""""""""
 
index b28d630..5787f54 100644 (file)
@@ -3,7 +3,7 @@ def back_event_handler(e):
     if menu.back_btn_is_root(obj):
         mbox1 = lv.msgbox(lv.scr_act(), "Hello", "Root back btn click.", None, True)
         mbox1.center()
-       
+
 # Create a menu object
 menu = lv.menu(lv.scr_act())
 menu.set_mode_root_back_btn(lv.menu.ROOT_BACK_BTN.ENABLED)
index 836a913..7c96db5 100644 (file)
@@ -17,12 +17,12 @@ static void float_btn_event_cb(lv_event_t * e)
     lv_obj_t * sub_page = lv_menu_page_create(menu, NULL);
 
     cont = lv_menu_cont_create(sub_page);
-    label= lv_label_create(cont);
-    lv_label_set_text_fmt(label, "Hello, I am hiding inside %i", btn_cnt);
+    label = lv_label_create(cont);
+    lv_label_set_text_fmt(label, "Hello, I am hiding inside %"LV_PRIu32, btn_cnt);
 
     cont = lv_menu_cont_create(main_page);
-    label= lv_label_create(cont);
-    lv_label_set_text_fmt(label, "Item %i", btn_cnt);
+    label = lv_label_create(cont);
+    lv_label_set_text_fmt(label, "Item %"LV_PRIu32, btn_cnt);
     lv_menu_set_load_page_event(menu, cont, sub_page);
 
     lv_obj_scroll_to_view_recursive(cont, LV_ANIM_ON);
index dfd3318..e8068ac 100644 (file)
@@ -11,11 +11,11 @@ static void back_event_handler(lv_event_t * e);
 static void switch_handler(lv_event_t * e);
 lv_obj_t * root_page;
 static lv_obj_t * create_text(lv_obj_t * parent, const char * icon, const char * txt,
-                                        lv_menu_builder_variant_t builder_variant);
+                              lv_menu_builder_variant_t builder_variant);
 static lv_obj_t * create_slider(lv_obj_t * parent,
-                                   const char * icon, const char * txt, int32_t min, int32_t max, int32_t val);
+                                const char * icon, const char * txt, int32_t min, int32_t max, int32_t val);
 static lv_obj_t * create_switch(lv_obj_t * parent,
-                                   const char * icon, const char * txt, bool chk);
+                                const char * icon, const char * txt, bool chk);
 
 void lv_example_menu_5(void)
 {
@@ -24,7 +24,8 @@ void lv_example_menu_5(void)
     lv_color_t bg_color = lv_obj_get_style_bg_color(menu, 0);
     if(lv_color_brightness(bg_color) > 127) {
         lv_obj_set_style_bg_color(menu, lv_color_darken(lv_obj_get_style_bg_color(menu, 0), 10), 0);
-    }else{
+    }
+    else {
         lv_obj_set_style_bg_color(menu, lv_color_darken(lv_obj_get_style_bg_color(menu, 0), 50), 0);
     }
     lv_menu_set_mode_root_back_btn(menu, LV_MENU_ROOT_BACK_BTN_ENABLED);
@@ -64,8 +65,10 @@ void lv_example_menu_5(void)
     lv_obj_t * sub_legal_info_page = lv_menu_page_create(menu, NULL);
     lv_obj_set_style_pad_hor(sub_legal_info_page, lv_obj_get_style_pad_left(lv_menu_get_main_header(menu), 0), 0);
     section = lv_menu_section_create(sub_legal_info_page);
-    for(uint32_t i=0; i<15; i++){
-        create_text(section, NULL, "This is a long long long long long long long long long text, if it is long enough it may scroll.", LV_MENU_ITEM_BUILDER_VARIANT_1);
+    for(uint32_t i = 0; i < 15; i++) {
+        create_text(section, NULL,
+                    "This is a long long long long long long long long long text, if it is long enough it may scroll.",
+                    LV_MENU_ITEM_BUILDER_VARIANT_1);
     }
 
     lv_obj_t * sub_about_page = lv_menu_page_create(menu, NULL);
@@ -128,7 +131,8 @@ static void switch_handler(lv_event_t * e)
             lv_menu_set_page(menu, NULL);
             lv_menu_set_sidebar_page(menu, root_page);
             lv_event_send(lv_obj_get_child(lv_obj_get_child(lv_menu_get_cur_sidebar_page(menu), 0), 0), LV_EVENT_CLICKED, NULL);
-        }else {
+        }
+        else {
             lv_menu_set_sidebar_page(menu, NULL);
             lv_menu_clear_history(menu); /* Clear history because we will be showing the root page later */
             lv_menu_set_page(menu, root_page);
@@ -137,7 +141,7 @@ static void switch_handler(lv_event_t * e)
 }
 
 static lv_obj_t * create_text(lv_obj_t * parent, const char * icon, const char * txt,
-                                        lv_menu_builder_variant_t builder_variant)
+                              lv_menu_builder_variant_t builder_variant)
 {
     lv_obj_t * obj = lv_menu_cont_create(parent);
 
@@ -164,7 +168,8 @@ static lv_obj_t * create_text(lv_obj_t * parent, const char * icon, const char *
     return obj;
 }
 
-static lv_obj_t * create_slider(lv_obj_t * parent, const char * icon, const char * txt, int32_t min, int32_t max, int32_t val)
+static lv_obj_t * create_slider(lv_obj_t * parent, const char * icon, const char * txt, int32_t min, int32_t max,
+                                int32_t val)
 {
     lv_obj_t * obj = create_text(parent, icon, txt, LV_MENU_ITEM_BUILDER_VARIANT_2);
 
index f453ced..40686ca 100644 (file)
@@ -30,7 +30,8 @@ void lv_example_meter_1(void)
     lv_meter_set_indicator_end_value(meter, indic, 20);
 
     /*Make the tick lines blue at the start of the scale*/
-    indic = lv_meter_add_scale_lines(meter, scale, lv_palette_main(LV_PALETTE_BLUE), lv_palette_main(LV_PALETTE_BLUE), false, 0);
+    indic = lv_meter_add_scale_lines(meter, scale, lv_palette_main(LV_PALETTE_BLUE), lv_palette_main(LV_PALETTE_BLUE),
+                                     false, 0);
     lv_meter_set_indicator_start_value(meter, indic, 0);
     lv_meter_set_indicator_end_value(meter, indic, 20);
 
@@ -40,7 +41,8 @@ void lv_example_meter_1(void)
     lv_meter_set_indicator_end_value(meter, indic, 100);
 
     /*Make the tick lines red at the end of the scale*/
-    indic = lv_meter_add_scale_lines(meter, scale, lv_palette_main(LV_PALETTE_RED), lv_palette_main(LV_PALETTE_RED), false, 0);
+    indic = lv_meter_add_scale_lines(meter, scale, lv_palette_main(LV_PALETTE_RED), lv_palette_main(LV_PALETTE_RED), false,
+                                     0);
     lv_meter_set_indicator_start_value(meter, indic, 80);
     lv_meter_set_indicator_end_value(meter, indic, 100);
 
index 7f0e7f9..2d7c6da 100644 (file)
@@ -16,10 +16,10 @@ try:
 except:
     print("Could not find img_hand_min.png")
     sys.exit()
-    
+
 img_hand_min_dsc = lv.img_dsc_t({
   'data_size': len(img_hand_min_data),
-  'data': img_hand_min_data 
+  'data': img_hand_min_data
 })
 
 # Create an image from the png file
@@ -29,10 +29,10 @@ try:
 except:
     print("Could not find img_hand_hour.png")
     sys.exit()
-    
+
 img_hand_hour_dsc = lv.img_dsc_t({
   'data_size': len(img_hand_hour_data),
-  'data': img_hand_hour_data 
+  'data': img_hand_hour_data
 })
 
 def set_value(indic, v):
@@ -78,6 +78,6 @@ a2.init()
 a2.set_var(indic_hour)
 a2.set_time(24000)       # 24 sec for 1 turn of the hour hand
 a2.set_values(0, 60)
-a2.set_custom_exec_cb(lambda a2,val: set_value(indic_hour,val))            
+a2.set_custom_exec_cb(lambda a2,val: set_value(indic_hour,val))
 lv.anim_t.start(a2)
 
index 8650e4e..e16fd2a 100644 (file)
@@ -22,7 +22,7 @@ void lv_example_meter_4(void)
 
     /*Add a three arc indicator*/
     lv_coord_t indic_w = 100;
-    lv_meter_indicator_t * indic1 = lv_meter_add_arc(meter, scale, indic_w,lv_palette_main(LV_PALETTE_ORANGE), 0);
+    lv_meter_indicator_t * indic1 = lv_meter_add_arc(meter, scale, indic_w, lv_palette_main(LV_PALETTE_ORANGE), 0);
     lv_meter_set_indicator_start_value(meter, indic1, 0);
     lv_meter_set_indicator_end_value(meter, indic1, 40);
 
index e3674a6..9ae8606 100644 (file)
@@ -9,7 +9,7 @@ static void event_cb(lv_event_t * e)
 
 void lv_example_msgbox_1(void)
 {
-    static const char * btns[] ={"Apply", "Close", ""};
+    static const char * btns[] = {"Apply", "Close", ""};
 
     lv_obj_t * mbox1 = lv_msgbox_create(NULL, "Hello", "This is a message box with two buttons.", btns, true);
     lv_obj_add_event_cb(mbox1, event_cb, LV_EVENT_VALUE_CHANGED, NULL);
index 6f9b081..2bf39db 100644 (file)
@@ -1,11 +1,11 @@
 
-Base objects with custom styles 
+Base objects with custom styles
 """"""""""""""""""""""""""""""""
 
 .. lv_example:: widgets/obj/lv_example_obj_1
   :language: c
-  
-Make an object draggable 
+
+Make an object draggable
 """"""""""""""""""""""""""""
 
 .. lv_example:: widgets/obj/lv_example_obj_2
index 5e154dc..23a81d6 100644 (file)
@@ -1,10 +1,10 @@
 
-Simple Roller 
+Simple Roller
 """"""""""""""""
 
 .. lv_example:: widgets/roller/lv_example_roller_1
   :language: c
-  
+
 Styling the roller
 """"""""""""""""""
 
index 2aa3523..93dd0be 100644 (file)
@@ -17,21 +17,21 @@ static void event_handler(lv_event_t * e)
  */
 void lv_example_roller_1(void)
 {
-    lv_obj_t *roller1 = lv_roller_create(lv_scr_act());
+    lv_obj_t * roller1 = lv_roller_create(lv_scr_act());
     lv_roller_set_options(roller1,
-                        "January\n"
-                        "February\n"
-                        "March\n"
-                        "April\n"
-                        "May\n"
-                        "June\n"
-                        "July\n"
-                        "August\n"
-                        "September\n"
-                        "October\n"
-                        "November\n"
-                        "December",
-                        LV_ROLLER_MODE_INFINITE);
+                          "January\n"
+                          "February\n"
+                          "March\n"
+                          "April\n"
+                          "May\n"
+                          "June\n"
+                          "July\n"
+                          "August\n"
+                          "September\n"
+                          "October\n"
+                          "November\n"
+                          "December",
+                          LV_ROLLER_MODE_INFINITE);
 
     lv_roller_set_visible_row_count(roller1, 4);
     lv_obj_center(roller1);
index 8738812..8c4b6fd 100644 (file)
@@ -23,7 +23,7 @@ void lv_example_roller_2(void)
     lv_style_set_text_font(&style_sel, &lv_font_montserrat_22);
 
     const char * opts = "1\n2\n3\n4\n5\n6\n7\n8\n9\n10";
-    lv_obj_t *roller;
+    lv_obj_t * roller;
 
     /*A roller on the left with left aligned text, and custom width*/
     roller = lv_roller_create(lv_scr_act());
index 08e5e29..7f8f7b3 100644 (file)
@@ -4,7 +4,7 @@ import fs_driver
 def event_handler(e):
     code = e.get_code()
     obj = e.get_target()
-    if code == lv.EVENT.VALUE_CHANGED: 
+    if code == lv.EVENT.VALUE_CHANGED:
         option = " "*10
         obj.get_selected_str(option, len(option))
         print("Selected value: %s\n" + option.strip())
@@ -25,7 +25,7 @@ except:
     print("montserrat-22 not enabled in lv_conf.h, dynamically loading the font")
     font_montserrat_22 = lv.font_load("S:" + "../../assets/font/montserrat-22.fnt")
     style_sel.set_text_font(font_montserrat_22)
-    
+
 opts = "\n".join(["1","2","3","4","5","6","7","8","9","10"])
 
 # A roller on the left with left aligned text, and custom width
index 02311af..c1e70ff 100644 (file)
@@ -9,10 +9,11 @@ static void mask_event_cb(lv_event_t * e)
     static int16_t mask_top_id = -1;
     static int16_t mask_bottom_id = -1;
 
-    if (code == LV_EVENT_COVER_CHECK) {
+    if(code == LV_EVENT_COVER_CHECK) {
         lv_event_set_cover_res(e, LV_COVER_RES_MASKED);
 
-    } else if (code == LV_EVENT_DRAW_MAIN_BEGIN) {
+    }
+    else if(code == LV_EVENT_DRAW_MAIN_BEGIN) {
         /* add mask */
         const lv_font_t * font = lv_obj_get_style_text_font(obj, LV_PART_MAIN);
         lv_coord_t line_space = lv_obj_get_style_text_line_space(obj, LV_PART_MAIN);
@@ -34,11 +35,12 @@ static void mask_event_cb(lv_event_t * e)
         rect_area.y1 = rect_area.y2 + font_h + line_space - 1;
         rect_area.y2 = roller_coords.y2;
 
-        lv_draw_mask_fade_param_t * fade_mask_bottom =lv_mem_buf_get(sizeof(lv_draw_mask_fade_param_t));
+        lv_draw_mask_fade_param_t * fade_mask_bottom = lv_mem_buf_get(sizeof(lv_draw_mask_fade_param_t));
         lv_draw_mask_fade_init(fade_mask_bottom, &rect_area, LV_OPA_COVER, rect_area.y1, LV_OPA_TRANSP, rect_area.y2);
         mask_bottom_id = lv_draw_mask_add(fade_mask_bottom, NULL);
 
-    } else if (code == LV_EVENT_DRAW_POST_END) {
+    }
+    else if(code == LV_EVENT_DRAW_POST_END) {
         lv_draw_mask_fade_param_t * fade_mask_top = lv_draw_mask_remove_id(mask_top_id);
         lv_draw_mask_fade_param_t * fade_mask_bottom = lv_draw_mask_remove_id(mask_bottom_id);
         lv_draw_mask_free_param(fade_mask_top);
@@ -63,7 +65,7 @@ void lv_example_roller_3(void)
     lv_style_set_pad_all(&style, 0);
     lv_obj_add_style(lv_scr_act(), &style, 0);
 
-    lv_obj_t *roller1 = lv_roller_create(lv_scr_act());
+    lv_obj_t * roller1 = lv_roller_create(lv_scr_act());
     lv_obj_add_style(roller1, &style, 0);
     lv_obj_set_style_bg_opa(roller1, LV_OPA_TRANSP, LV_PART_SELECTED);
 
@@ -72,19 +74,19 @@ void lv_example_roller_3(void)
 #endif
 
     lv_roller_set_options(roller1,
-                        "January\n"
-                        "February\n"
-                        "March\n"
-                        "April\n"
-                        "May\n"
-                        "June\n"
-                        "July\n"
-                        "August\n"
-                        "September\n"
-                        "October\n"
-                        "November\n"
-                        "December",
-                        LV_ROLLER_MODE_NORMAL);
+                          "January\n"
+                          "February\n"
+                          "March\n"
+                          "April\n"
+                          "May\n"
+                          "June\n"
+                          "July\n"
+                          "August\n"
+                          "September\n"
+                          "October\n"
+                          "November\n"
+                          "December",
+                          LV_ROLLER_MODE_NORMAL);
 
     lv_obj_center(roller1);
     lv_roller_set_visible_row_count(roller1, 3);
index be073dc..13c9e9f 100644 (file)
@@ -6,23 +6,23 @@ class Lv_Roller_3():
     def __init__(self):
         self.mask_top_id = -1
         self.mask_bottom_id = -1
-        
-        # 
+
+        #
         # Add a fade mask to roller.
         #
         style = lv.style_t()
         style.init()
         style.set_bg_color(lv.color_black())
         style.set_text_color(lv.color_white())
-        
+
         lv.scr_act().add_style(style, 0)
-        
+
         roller1 = lv.roller(lv.scr_act())
         roller1.add_style(style, 0)
         roller1.set_style_border_width(0, 0)
         roller1.set_style_pad_all(0, 0)
         roller1.set_style_bg_opa(lv.OPA.TRANSP, lv.PART.SELECTED)
-        
+
         #if LV_FONT_MONTSERRAT_22
         #    lv_obj_set_style_text_font(roller1, &lv_font_montserrat_22, LV_PART_SELECTED);
         #endif
@@ -34,7 +34,7 @@ class Lv_Roller_3():
             print("montserrat-22 not enabled in lv_conf.h, dynamically loading the font")
             font_montserrat_22 = lv.font_load("S:" + "../../assets/font/montserrat-22.fnt")
             roller1.set_style_text_font(font_montserrat_22,lv.PART.SELECTED)
-           
+
         roller1.set_options("\n".join([
             "January",
             "February",
@@ -62,27 +62,27 @@ class Lv_Roller_3():
             e.set_cover_res(lv.COVER_RES.MASKED)
 
         elif code == lv.EVENT.DRAW_MAIN_BEGIN:
-            # add mask 
+            # add mask
             font = obj.get_style_text_font(lv.PART.MAIN)
             line_space = obj.get_style_text_line_space(lv.PART.MAIN)
             font_h = font.get_line_height()
-            
+
             roller_coords = lv.area_t()
             obj.get_coords(roller_coords)
-            
+
             rect_area = lv.area_t()
             rect_area.x1 = roller_coords.x1
             rect_area.x2 = roller_coords.x2
             rect_area.y1 = roller_coords.y1
             rect_area.y2 = roller_coords.y1 + (obj.get_height() - font_h - line_space) // 2
-            
+
             fade_mask_top = lv.draw_mask_fade_param_t()
             fade_mask_top.init(rect_area, lv.OPA.TRANSP, rect_area.y1, lv.OPA.COVER, rect_area.y2)
             self.mask_top_id = lv.draw_mask_add(fade_mask_top,None)
-            
+
             rect_area.y1 = rect_area.y2 + font_h + line_space - 1
             rect_area.y2 = roller_coords.y2
-            
+
             fade_mask_bottom = lv.draw_mask_fade_param_t()
             fade_mask_bottom.init(rect_area, lv.OPA.COVER, rect_area.y1, lv.OPA.TRANSP, rect_area.y2)
             self.mask_bottom_id = lv.draw_mask_add(fade_mask_bottom, None)
@@ -95,5 +95,5 @@ class Lv_Roller_3():
             lv.draw_mask_remove_id(self.mask_bottom_id)
             self.mask_top_id = -1
             self.mask_bottom_id = -1
-            
+
 roller3 = Lv_Roller_3()
index 96dcf0f..b808de3 100644 (file)
@@ -10,11 +10,11 @@ Slider with custom style
 
 .. lv_example:: widgets/slider/lv_example_slider_2
   :language: c
-  
+
 Slider with extended drawer
 """"""""""""""""""""""""""""
 
 .. lv_example:: widgets/slider/lv_example_slider_3
   :language: c
-  
+
 
index d92b2f3..3194a1f 100644 (file)
@@ -29,11 +29,10 @@ static void slider_event_cb(lv_event_t * e)
 
     /*Provide some extra space for the value*/
     if(code == LV_EVENT_REFR_EXT_DRAW_SIZE) {
-        lv_coord_t * size = lv_event_get_param(e);
-        *size = LV_MAX(*size, 50);
+        lv_event_set_ext_draw_size(e, 50);
     }
     else if(code == LV_EVENT_DRAW_PART_END) {
-        lv_obj_draw_part_dsc_t * dsc = lv_event_get_param(e);
+        lv_obj_draw_part_dsc_t * dsc = lv_event_get_draw_part_dsc(e);
         if(dsc->part == LV_PART_INDICATOR) {
             char buf[16];
             lv_snprintf(buf, sizeof(buf), "%d - %d", (int)lv_slider_get_left_value(obj), (int)lv_slider_get_value(obj));
@@ -48,7 +47,7 @@ static void slider_event_cb(lv_event_t * e)
 
             lv_draw_label_dsc_t label_draw_dsc;
             lv_draw_label_dsc_init(&label_draw_dsc);
-
+            label_draw_dsc.color = lv_color_hex3(0x888);
             lv_draw_label(dsc->draw_ctx, &label_draw_dsc, &label_area, buf, NULL);
         }
     }
index 654359c..b96135e 100644 (file)
@@ -5,7 +5,7 @@ def slider_event_cb(e):
     # Provide some extra space for the value
     if code == lv.EVENT.REFR_EXT_DRAW_SIZE:
         e.set_ext_draw_size(50)
-        
+
     elif code == lv.EVENT.DRAW_PART_END:
         # print("DRAW_PART_END")
         dsc = lv.obj_draw_part_dsc_t.__cast__(e.get_param())
index e465bce..e09caed 100644 (file)
@@ -14,7 +14,7 @@ void lv_example_span_1(void)
 
     lv_obj_t * spans = lv_spangroup_create(lv_scr_act());
     lv_obj_set_width(spans, 300);
-    lv_obj_set_height(spans,300);
+    lv_obj_set_height(spans, 300);
     lv_obj_center(spans);
     lv_obj_add_style(spans, &style, 0);
 
@@ -26,7 +26,7 @@ void lv_example_span_1(void)
     lv_span_t * span = lv_spangroup_new_span(spans);
     lv_span_set_text(span, "China is a beautiful country.");
     lv_style_set_text_color(&span->style, lv_palette_main(LV_PALETTE_RED));
-    lv_style_set_text_decor(&span->style, LV_TEXT_DECOR_STRIKETHROUGH | LV_TEXT_DECOR_UNDERLINE);
+    lv_style_set_text_decor(&span->style, LV_TEXT_DECOR_UNDERLINE);
     lv_style_set_text_opa(&span->style, LV_OPA_50);
 
     span = lv_spangroup_new_span(spans);
@@ -50,6 +50,7 @@ void lv_example_span_1(void)
 
     span = lv_spangroup_new_span(spans);
     lv_span_set_text(span, "I have a dream that hope to come true.");
+    lv_style_set_text_decor(&span->style, LV_TEXT_DECOR_STRIKETHROUGH);
 
     lv_spangroup_refr_mode(spans);
 }
index abd5c74..0072bbb 100644 (file)
@@ -1,11 +1,11 @@
 
 
-Simple table 
+Simple table
 """""""""""""""""""""""
 
 .. lv_example:: widgets/table/lv_example_table_1
   :language: c
-  
+
 Lightweighted list from table
 """"""""""""""""""""""""""""""
 
index cf528c8..dc77637 100644 (file)
@@ -4,7 +4,7 @@
 static void draw_part_event_cb(lv_event_t * e)
 {
     lv_obj_t * obj = lv_event_get_target(e);
-    lv_obj_draw_part_dsc_t * dsc = lv_event_get_param(e);
+    lv_obj_draw_part_dsc_t * dsc = lv_event_get_draw_part_dsc(e);
     /*If the cells are drawn...*/
     if(dsc->part == LV_PART_ITEMS) {
         uint32_t row = dsc->id /  lv_table_get_col_cnt(obj);
index 4e02c68..bd1e933 100644 (file)
@@ -27,7 +27,8 @@ static void draw_event_cb(lv_event_t * e)
         if(chk) {
             sw_area.x2 -= 2;
             sw_area.x1 = sw_area.x2 - 16;
-        } else {
+        }
+        else {
             sw_area.x1 += 2;
             sw_area.x2 = sw_area.x1 + 16;
         }
@@ -92,8 +93,8 @@ void lv_example_table_2(void)
 
     lv_obj_t * label = lv_label_create(lv_scr_act());
     lv_label_set_text_fmt(label, "%"LV_PRIu32" items were created in %"LV_PRIu32" ms\n"
-                                  "using %"LV_PRIu32" bytes of memory",
-                                  ITEM_CNT, elaps, mem_used);
+                          "using %"LV_PRIu32" bytes of memory",
+                          ITEM_CNT, elaps, mem_used);
 
     lv_obj_align(label, LV_ALIGN_BOTTOM_MID, 0, -10);
 
index 794131a..2da2161 100644 (file)
@@ -17,7 +17,7 @@ def draw_event_cb(e):
             rect_dsc.bg_color = lv.theme_get_color_primary(obj)
         else:
             rect_dsc.bg_color = lv.palette_lighten(lv.PALETTE.GREY, 2)
-            
+
         rect_dsc.radius = lv.RADIUS.CIRCLE
 
         sw_area = lv.area_t()
@@ -26,9 +26,9 @@ def draw_event_cb(e):
         sw_area.y1 = dsc.draw_area.y1 + dsc.draw_area.get_height() // 2 - 10
         sw_area.y2 = sw_area.y1 + 20
         dsc.draw_ctx.rect(rect_dsc, sw_area)
-         
+
         rect_dsc.bg_color = lv.color_white()
-        
+
         if chk:
             sw_area.x2 -= 2
             sw_area.x1 = sw_area.x2 - 16
index 17fc82e..570a7b8 100644 (file)
@@ -4,31 +4,31 @@
 void lv_example_tabview_1(void)
 {
     /*Create a Tab view object*/
-    lv_obj_t *tabview;
+    lv_obj_t * tabview;
     tabview = lv_tabview_create(lv_scr_act(), LV_DIR_TOP, 50);
 
     /*Add 3 tabs (the tabs are page (lv_page) and can be scrolled*/
-    lv_obj_t *tab1 = lv_tabview_add_tab(tabview, "Tab 1");
-    lv_obj_t *tab2 = lv_tabview_add_tab(tabview, "Tab 2");
-    lv_obj_t *tab3 = lv_tabview_add_tab(tabview, "Tab 3");
+    lv_obj_t * tab1 = lv_tabview_add_tab(tabview, "Tab 1");
+    lv_obj_t * tab2 = lv_tabview_add_tab(tabview, "Tab 2");
+    lv_obj_t * tab3 = lv_tabview_add_tab(tabview, "Tab 3");
 
     /*Add content to the tabs*/
     lv_obj_t * label = lv_label_create(tab1);
     lv_label_set_text(label, "This the first tab\n\n"
-                             "If the content\n"
-                             "of a tab\n"
-                             "becomes too\n"
-                             "longer\n"
-                             "than the\n"
-                             "container\n"
-                             "then it\n"
-                             "automatically\n"
-                             "becomes\n"
-                             "scrollable.\n"
-                             "\n"
-                             "\n"
-                             "\n"
-                             "Can you see it?");
+                      "If the content\n"
+                      "of a tab\n"
+                      "becomes too\n"
+                      "longer\n"
+                      "than the\n"
+                      "container\n"
+                      "then it\n"
+                      "automatically\n"
+                      "becomes\n"
+                      "scrollable.\n"
+                      "\n"
+                      "\n"
+                      "\n"
+                      "Can you see it?");
 
     label = lv_label_create(tab2);
     lv_label_set_text(label, "Second tab");
index e90a563..0266042 100644 (file)
@@ -13,7 +13,7 @@ static void scroll_begin_event(lv_event_t * e)
 void lv_example_tabview_2(void)
 {
     /*Create a Tab view object*/
-    lv_obj_t *tabview;
+    lv_obj_t * tabview;
     tabview = lv_tabview_create(lv_scr_act(), LV_DIR_LEFT, 80);
     lv_obj_add_event_cb(lv_tabview_get_content(tabview), scroll_begin_event, LV_EVENT_SCROLL_BEGIN, NULL);
 
@@ -26,11 +26,11 @@ void lv_example_tabview_2(void)
 
 
     /*Add 3 tabs (the tabs are page (lv_page) and can be scrolled*/
-    lv_obj_t *tab1 = lv_tabview_add_tab(tabview, "Tab 1");
-    lv_obj_t *tab2 = lv_tabview_add_tab(tabview, "Tab 2");
-    lv_obj_t *tab3 = lv_tabview_add_tab(tabview, "Tab 3");
-    lv_obj_t *tab4 = lv_tabview_add_tab(tabview, "Tab 4");
-    lv_obj_t *tab5 = lv_tabview_add_tab(tabview, "Tab 5");
+    lv_obj_t * tab1 = lv_tabview_add_tab(tabview, "Tab 1");
+    lv_obj_t * tab2 = lv_tabview_add_tab(tabview, "Tab 2");
+    lv_obj_t * tab3 = lv_tabview_add_tab(tabview, "Tab 3");
+    lv_obj_t * tab4 = lv_tabview_add_tab(tabview, "Tab 4");
+    lv_obj_t * tab5 = lv_tabview_add_tab(tabview, "Tab 5");
 
     lv_obj_set_style_bg_color(tab2, lv_palette_lighten(LV_PALETTE_AMBER, 3), 0);
     lv_obj_set_style_bg_opa(tab2, LV_OPA_COVER, 0);
index 5ea651c..9bb7bb5 100644 (file)
@@ -4,14 +4,14 @@ Simple Text area
 
 .. lv_example:: widgets/textarea/lv_example_textarea_1
   :language: c
-      
-      
-Text area with password field 
+
+
+Text area with password field
 """""""""""""""""""""""""""""
 
 .. lv_example:: widgets/textarea/lv_example_textarea_2
   :language: c
-      
+
 Text auto-formatting
 """""""""""""""""""""""""""""
 
index cf75709..d8689cb 100644 (file)
@@ -28,9 +28,10 @@ void lv_example_textarea_1(void)
     lv_obj_add_state(ta, LV_STATE_FOCUSED); /*To be sure the cursor is visible*/
 
     static const char * btnm_map[] = {"1", "2", "3", "\n",
-                               "4", "5", "6", "\n",
-                               "7", "8", "9", "\n",
-                               LV_SYMBOL_BACKSPACE, "0", LV_SYMBOL_NEW_LINE, ""};
+                                      "4", "5", "6", "\n",
+                                      "7", "8", "9", "\n",
+                                      LV_SYMBOL_BACKSPACE, "0", LV_SYMBOL_NEW_LINE, ""
+                                     };
 
     lv_obj_t * btnm = lv_btnmatrix_create(lv_scr_act());
     lv_obj_set_size(btnm, 200, 150);
index 5363a00..c557188 100644 (file)
@@ -23,7 +23,7 @@ btnm_map = ["1", "2", "3", "\n",
             "4", "5", "6", "\n",
             "7", "8", "9", "\n",
             lv.SYMBOL.BACKSPACE, "0", lv.SYMBOL.NEW_LINE, ""]
-         
+
 btnm = lv.btnmatrix(lv.scr_act())
 btnm.set_size(200, 150)
 btnm.align(lv.ALIGN.BOTTOM_MID, 0, -10)
index 21cb31b..d3a453a 100644 (file)
@@ -31,9 +31,8 @@ static void ta_event_cb(lv_event_t * e)
     lv_obj_t * ta = lv_event_get_target(e);
     const char * txt = lv_textarea_get_text(ta);
     if(txt[0] >= '0' && txt[0] <= '9' &&
-        txt[1] >= '0' && txt[1] <= '9' &&
-        txt[2] != ':')
-    {
+       txt[1] >= '0' && txt[1] <= '9' &&
+       txt[2] != ':') {
         lv_textarea_set_cursor_pos(ta, 2);
         lv_textarea_add_char(ta, ':');
     }
index 400596b..71d7c2d 100644 (file)
@@ -14,7 +14,7 @@ def ta_event_cb(e):
         rest = txt[colon_pos:]
         if len(rest) > 3:
             ta.del_char()
-            
+
     if len(txt) < 2:
         return
     if ":" in txt:
index c153d01..8f91d27 100644 (file)
@@ -8,7 +8,7 @@
  */
 void lv_example_tileview_1(void)
 {
-    lv_obj_t *tv = lv_tileview_create(lv_scr_act());
+    lv_obj_t * tv = lv_tileview_create(lv_scr_act());
 
     /*Tile1: just a label*/
     lv_obj_t * tile1 = lv_tileview_add_tile(tv, 0, 0, LV_DIR_BOTTOM);
index bf49e54..4df0bff 100644 (file)
@@ -26,18 +26,18 @@ void lv_example_win_1(void)
     lv_obj_t * cont = lv_win_get_content(win);  /*Content can be added here*/
     lv_obj_t * label = lv_label_create(cont);
     lv_label_set_text(label, "This is\n"
-                             "a pretty\n"
-                             "long text\n"
-                             "to see how\n"
-                             "the window\n"
-                             "becomes\n"
-                             "scrollable.\n"
-                             "\n"
-                             "\n"
-                             "Some more\n"
-                             "text to be\n"
-                             "sure it\n"
-                             "overflows. :)");
+                      "a pretty\n"
+                      "long text\n"
+                      "to see how\n"
+                      "the window\n"
+                      "becomes\n"
+                      "scrollable.\n"
+                      "\n"
+                      "\n"
+                      "Some more\n"
+                      "text to be\n"
+                      "sure it\n"
+                      "overflows. :)");
 
 
 }
index ba3fff1..9b1a2e2 100644 (file)
@@ -1,2 +1,5 @@
 description: LVGL - Light and Versatile Graphics Library
-url: https://github.com/lvgl/lvgl
\ No newline at end of file
+url: https://lvgl.io/
+repository: https://github.com/lvgl/lvgl.git
+documentation: https://docs.lvgl.io/
+issues: https://github.com/lvgl/lvgl/issues
index 4118152..389d8e8 100644 (file)
@@ -1,6 +1,6 @@
 {
        "name": "lvgl",
-       "version": "8.2.0",
+       "version": "8.3.7",
        "keywords": "graphics, gui, embedded, tft, lvgl",
        "description": "Graphics library to create embedded GUI with easy-to-use graphical elements, beautiful visual effects and low memory footprint. It offers anti-aliasing, opacity, and animations using only one frame buffer.",
        "repository": {
index 99a97ed..c8f7ae9 100644 (file)
@@ -1,5 +1,5 @@
 name=lvgl
-version=8.2.0
+version=8.3.7
 author=kisvegabor
 maintainer=kisvegabor,embeddedt,pete-pjb
 sentence=Full-featured Graphics Library for Embedded Systems
index 0f0a709..54bb972 100644 (file)
 #define LV_FONT_ZHANSI_DEMO 1
 #endif
 
+#ifdef CONFIG_LVGL_YINGKA_CUSTOMER_FONT
+#define LV_FONT_YINGKA_DEMO 1
+#endif
+
 #ifdef CONFIG_LVGL_QUANSHENG_CUSTOMER_FONT
 #define LV_FONT_QUANSHENG_DEMO 1
 #endif
 #define LV_DISP_DEF_REFR_PERIOD     30      /*[ms]*/
 
 /*Input device read period in milliseconds*/
-#define LV_INDEV_DEF_READ_PERIOD    20      /*[ms]*/
+#define LV_INDEV_DEF_READ_PERIOD    10      /*[ms]*/
 
 /*Use a custom tick source that tells the elapsed time in milliseconds.
  *It removes the need to manually update the tick with `lv_tick_inc()`)*/
  *0: to disable caching*/
 #if defined(BOARD_EC600NCN_LF_ALIPAY)
 #define LV_IMG_CACHE_DEF_SIZE       8
-#elif defined(BOARD_EC800MCN_GA_ALIPAY) 
-#define LV_IMG_CACHE_DEF_SIZE       16
-#elif defined(BOARD_EG810MCN_GA_ALIPAY)
+#elif defined(BOARD_EC800MCN_GA_ALIPAY)
 #define LV_IMG_CACHE_DEF_SIZE       16
 #else
 #define LV_IMG_CACHE_DEF_SIZE       1
@@ -395,27 +397,127 @@ e.g. "stm32f769xx.h" or "stm32f429xx.h"*/
 
 /*Montserrat fonts with ASCII range and some symbols using bpp = 4
  *https://fonts.google.com/specimen/Montserrat*/
-#define LV_FONT_MONTSERRAT_8     0
-#define LV_FONT_MONTSERRAT_10    0
-#define LV_FONT_MONTSERRAT_12    0
+#if CONFIG_LVGL_FONT_MONTSERRAT8
+  #define LV_FONT_MONTSERRAT_8     1
+#else
+  #define LV_FONT_MONTSERRAT_8     0
+#endif
+
+#if CONFIG_LVGL_FONT_MONTSERRAT10
+  #define LV_FONT_MONTSERRAT_10     1
+#else
+  #define LV_FONT_MONTSERRAT_10     0
+#endif
+
+#if CONFIG_LVGL_FONT_MONTSERRAT12
+  #define LV_FONT_MONTSERRAT_12     1
+#else
+  #define LV_FONT_MONTSERRAT_12     0
+#endif
+
 #define LV_FONT_MONTSERRAT_14    1
-#define LV_FONT_MONTSERRAT_16    0
-#define LV_FONT_MONTSERRAT_18    0
-#define LV_FONT_MONTSERRAT_20    0
-#define LV_FONT_MONTSERRAT_22    0
-#define LV_FONT_MONTSERRAT_24    0
-#define LV_FONT_MONTSERRAT_26    0
-#define LV_FONT_MONTSERRAT_28    0
-#define LV_FONT_MONTSERRAT_30    0
-#define LV_FONT_MONTSERRAT_32    0
-#define LV_FONT_MONTSERRAT_34    0
-#define LV_FONT_MONTSERRAT_36    0
-#define LV_FONT_MONTSERRAT_38    0
-#define LV_FONT_MONTSERRAT_40    0
-#define LV_FONT_MONTSERRAT_42    0
-#define LV_FONT_MONTSERRAT_44    0
-#define LV_FONT_MONTSERRAT_46    0
-#define LV_FONT_MONTSERRAT_48    0
+
+#if CONFIG_LVGL_FONT_MONTSERRAT16
+  #define LV_FONT_MONTSERRAT_16     1
+#else
+  #define LV_FONT_MONTSERRAT_16     0
+#endif
+
+#if CONFIG_LVGL_FONT_MONTSERRAT18
+  #define LV_FONT_MONTSERRAT_18     1
+#else
+  #define LV_FONT_MONTSERRAT_18     0
+#endif
+
+#if CONFIG_LVGL_FONT_MONTSERRAT20
+  #define LV_FONT_MONTSERRAT_20     1
+#else
+  #define LV_FONT_MONTSERRAT_20     0
+#endif
+
+#if CONFIG_LVGL_FONT_MONTSERRAT22
+  #define LV_FONT_MONTSERRAT_22     1
+#else
+  #define LV_FONT_MONTSERRAT_22     0
+#endif
+
+#if CONFIG_LVGL_FONT_MONTSERRAT24
+  #define LV_FONT_MONTSERRAT_24     1
+#else
+  #define LV_FONT_MONTSERRAT_24     0
+#endif
+
+#if CONFIG_LVGL_FONT_MONTSERRAT26
+  #define LV_FONT_MONTSERRAT_26     1
+#else
+  #define LV_FONT_MONTSERRAT_26    0
+#endif
+
+#if CONFIG_LVGL_FONT_MONTSERRAT28
+  #define LV_FONT_MONTSERRAT_28     1
+#else
+  #define LV_FONT_MONTSERRAT_28     0
+#endif
+
+#if CONFIG_LVGL_FONT_MONTSERRAT30
+  #define LV_FONT_MONTSERRAT_30     1
+#else
+  #define LV_FONT_MONTSERRAT_30     0
+#endif
+
+#if CONFIG_LVGL_FONT_MONTSERRAT32
+  #define LV_FONT_MONTSERRAT_32     1
+#else
+  #define LV_FONT_MONTSERRAT_32     0
+#endif
+
+#if CONFIG_LVGL_FONT_MONTSERRAT34
+  #define LV_FONT_MONTSERRAT_34     1
+#else
+  #define LV_FONT_MONTSERRAT_34     0
+#endif
+
+#if CONFIG_LVGL_FONT_MONTSERRAT36
+  #define LV_FONT_MONTSERRAT_36     1
+#else
+  #define LV_FONT_MONTSERRAT_36     0
+#endif
+
+#if CONFIG_LVGL_FONT_MONTSERRAT38
+  #define LV_FONT_MONTSERRAT_38     1
+#else
+  #define LV_FONT_MONTSERRAT_38     0
+#endif
+
+#if CONFIG_LVGL_FONT_MONTSERRAT40
+  #define LV_FONT_MONTSERRAT_40     1
+#else
+  #define LV_FONT_MONTSERRAT_40     0
+#endif
+
+#if CONFIG_LVGL_FONT_MONTSERRAT42
+  #define LV_FONT_MONTSERRAT_42     1
+#else
+  #define LV_FONT_MONTSERRAT_42     0
+#endif
+
+#if CONFIG_LVGL_FONT_MONTSERRAT44
+  #define LV_FONT_MONTSERRAT_44     1
+#else
+  #define LV_FONT_MONTSERRAT_44     0
+#endif
+
+#if CONFIG_LVGL_FONT_MONTSERRAT46
+  #define LV_FONT_MONTSERRAT_46     1
+#else
+  #define LV_FONT_MONTSERRAT_46     0
+#endif
+
+#if CONFIG_LVGL_FONT_MONTSERRAT48
+  #define LV_FONT_MONTSERRAT_48     1
+#else
+  #define LV_FONT_MONTSERRAT_48     0
+#endif
 
 /*Demonstrate special features*/
 #define LV_FONT_MONTSERRAT_12_SUBPX      0
index df96d21..985c796 100644 (file)
@@ -14,8 +14,8 @@ extern "C" {
  * CURRENT VERSION OF LVGL
  ***************************/
 #define LVGL_VERSION_MAJOR 8
-#define LVGL_VERSION_MINOR 2
-#define LVGL_VERSION_PATCH 0
+#define LVGL_VERSION_MINOR 3
+#define LVGL_VERSION_PATCH 7
 #define LVGL_VERSION_INFO ""
 
 /*********************
@@ -67,11 +67,6 @@ extern "C" {
  * EXTRAS
  *----------------*/
 #include "src/extra/lv_extra.h"
-#include "src/extra/widgets/lv_widgets.h"
-#include "src/extra/layouts/lv_layouts.h"
-#include "src/extra/themes/lv_themes.h"
-#include "src/extra/others/lv_others.h"
-#include "src/extra/libs/lv_libs.h"
 
 /*********************
  *      DEFINES
index 4c66ed7..ae8b631 100644 (file)
@@ -6,6 +6,7 @@ rm -rf emscripten_builder
 git clone https://github.com/lvgl/lv_sim_emscripten.git emscripten_builder
 scripts/genexamplelist.sh > emscripten_builder/examplelist.c
 cd emscripten_builder
+git checkout 45e0bc5c8d3e55cfbcaf8214361d2335b8b9a7b4
 git submodule update --init -- lvgl
 cd lvgl
 git checkout $CURRENT_REF
index 76fa1ff..085e31c 100644 (file)
@@ -21,7 +21,7 @@
   {{/commit-list}}
   {{#commit-list fixes heading='' message='^arch' exclude='BREAKING CHANGE'}}
     - {{commit.subject}} [`{{commit.shorthash}}`]({{commit.href}})
-  {{/commit-list}}  
+  {{/commit-list}}
 
   ### New Features
   {{#commit-list merges heading='' message='^feat' exclude='BREAKING CHANGE'}}
@@ -33,8 +33,8 @@
   {{#commit-list fixes heading='' message='^feat' exclude='BREAKING CHANGE'}}
     - {{commit.subject}} [`{{commit.shorthash}}`]({{commit.href}})
   {{/commit-list}}
-  
-  
+
+
   ### Performance
   {{#commit-list merges heading='' message='^perf' exclude='BREAKING CHANGE'}}
     - {{message}} [`{{id}}`]({{href}})
@@ -56,8 +56,8 @@
   {{#commit-list fixes heading=''  message='^fix' exclude='(^fix conflict|^fix warning|BREAKING CHANGE)'}}
     - {{commit.subject}} [`{{commit.shorthash}}`]({{commit.href}})
   {{/commit-list}}
-  
-  
+
+
   ### Examples
   {{#commit-list merges heading='' message='^example'}}
     - {{message}} [`{{id}}`]({{href}})
@@ -68,8 +68,8 @@
   {{#commit-list fixes heading='' message='^example'}}
     - {{commit.subject}} [`{{commit.shorthash}}`]({{commit.href}})
   {{/commit-list}}
-  
-  
+
+
   ### Docs
   {{#commit-list merges heading='' message='^docs'}}
     - {{message}} [`{{id}}`]({{href}})
@@ -80,7 +80,7 @@
   {{#commit-list fixes heading='' message='^docs'}}
     - {{commit.subject}} [`{{commit.shorthash}}`]({{commit.href}})
   {{/commit-list}}
-  
+
   ### CI and tests
   {{#commit-list merges heading='' message='(^ci|^test)'}}
     - {{message}} [`{{id}}`]({{href}})
@@ -91,7 +91,7 @@
   {{#commit-list fixes heading='' message='(^ci|^test)'}}
     - {{commit.subject}} [`{{commit.shorthash}}`]({{commit.href}})
   {{/commit-list}}
-  
+
   ### Others
   {{#commit-list merges heading='' exclude='(^fix|^feat|^perf|^docs|^example|^ci|^test)'}}
     - {{message}} [`{{id}}`]({{href}})
   {{#commit-list fixes heading=''  exclude='(^fix|^feat|^perf|^docs|^example|^ci|^test)'}}
     - {{commit.subject}} [`{{commit.shorthash}}`]({{commit.href}})
   {{/commit-list}}
-  
+
 {{/each}}
index 1a36e6d..01d69ab 100644 (file)
@@ -1,15 +1,15 @@
 # Generate CHANGELOG_LAST.md from changes since the last version tag. (vx.y.z-dev tags are ignored)
 # CHANGELOG_LAST.md can be edited manually if required and manually added to docs/CHANGELOG.md
 #
-# Requirements: 
+# Requirements:
 #    npm install -g auto-changelog
 #
-# Usage: 
+# Usage:
 #    changelog-gen <next-version>
 #
-# Example: if the latest verision is v5.6.7 the followings can be used for bugfix, minor or major versions:  
-#    changelog-gen v5.6.8         
-#    changelog-gen v5.7.0         
-#    changelog-gen v6.0.0         
+# Example: if the latest verision is v5.6.7 the followings can be used for bugfix, minor or major versions:
+#    changelog-gen v5.6.8
+#    changelog-gen v5.7.0
+#    changelog-gen v6.0.0
 
 auto-changelog -t changelog-template.hbs -l false --latest-version $1 --unreleased-only  --tag-pattern ^v[0-9]+.[0-9]+.[0-9]+$ -o CHANGELOG_LAST.md
index d82d5c1..159ef46 100644 (file)
 --max-continuation-indent=120
 --mode=c
 --lineend=linux
---recursive
 --suffix=none
 --preserve-date
 --formatted
+--ignore-exclude-errors
+--ignore-exclude-errors-x
+--exclude=assets
+--exclude=../src/core/lv_obj_style_gen.c
+--exclude=../src/core/lv_obj_style_gen.h
 --exclude=../src/extra/libs/gif/gifdec.c
 --exclude=../src/extra/libs/gif/gifdec.h
 --exclude=../src/extra/libs/png/lodepng.c
@@ -32,4 +36,7 @@
 --exclude=../src/extra/libs/sjpg/tjpgd.c
 --exclude=../src/extra/libs/sjpg/tjpgd.h
 --exclude=../src/extra/libs/sjpg/tjpgdcnf.h
+--exclude=../src/misc/lv_style_gen.c
+--exclude=../src/misc/lv_style_gen.h
 --exclude=../src/lv_conf_internal.h
+--exclude=../tests/src/test_cases/_test_template.c
index f7e65e7..fc126c8 100644 (file)
@@ -2,4 +2,14 @@
 
 import os
 
-os.system('astyle --options=code-format.cfg "../src/*.c,*.h"')
+print("Formatting src")
+os.system('astyle --options=code-format.cfg --recursive "../src/*.c,*.h"')
+
+print("\nFormatting demos")
+os.system('astyle --options=code-format.cfg --recursive "../demos/*.c,*.h"')
+
+print("\nFormatting examples")
+os.system('astyle --options=code-format.cfg --recursive "../examples/*.c,*.h"')
+
+print("\nFormatting tests")
+os.system('astyle --options=code-format.cfg --recursive "../tests/src/test_cases/*.c"')
index fc533f6..86fa380 100644 (file)
@@ -3,7 +3,7 @@
 # Dependencies: (PYTHON-3)
 ##################################################################
 SJPG_FILE_FORMAT_VERSION = "V1.00"  #
-JPEG_SPLIT_HEIGHT   = 16 
+JPEG_SPLIT_HEIGHT   = 16
 ##################################################################
 import math, os, sys, time
 from PIL import Image
index 3801a07..0347827 100644 (file)
@@ -4,15 +4,20 @@
 Generates lv_conf_internal.h from lv_conf_template.h to provide default values
 '''
 
+import os
 import sys
 import re
 
+SCRIPT_DIR = os.path.dirname(__file__)
+LV_CONF_TEMPLATE = os.path.join(SCRIPT_DIR, "..", "lv_conf_template.h")
+LV_CONF_INTERNAL = os.path.join(SCRIPT_DIR, "..", "src", "lv_conf_internal.h")
+
 if sys.version_info < (3,6,0):
   print("Python >=3.6 is required", file=sys.stderr)
   exit(1)
 
-fin = open("../lv_conf_template.h", "r")
-fout = open("../src/lv_conf_internal.h", "w")
+fin = open(LV_CONF_TEMPLATE)
+fout = open(LV_CONF_INTERNAL, "w")
 
 fout.write(
 '''/**
@@ -57,6 +62,11 @@ fout.write(
     #else
         #include "../../lv_conf.h"                /*Else assume lv_conf.h is next to the lvgl folder*/
     #endif
+    #if !defined(LV_CONF_H) && !defined(LV_CONF_SUPPRESS_DEFINE_CHECK)
+        /* #include will sometimes silently fail when __has_include is used */
+        /* https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80753 */
+        #pragma message("Possible failure to include lv_conf.h, please read the comment in this file if you get errors")
+    #endif
 #endif
 
 #ifdef CONFIG_LV_COLOR_DEPTH
@@ -82,20 +92,20 @@ for line in fin.read().splitlines():
   if '/*--END OF LV_CONF_H--*/' in line: break
 
   #Is there a #define in this line?
-  r = re.search(r'^([\s]*)#[\s]*define[\s]+([^\s]+).*$', line)   # \s means any white space character
+  r = re.search(r'^([\s]*)#[\s]*(undef|define)[\s]+([^\s]+).*$', line)   # \s means any white space character
 
   if r:
     indent = r[1]
 
-    name = r[2]
+    name = r[3]
     name = re.sub('\(.*?\)', '', name, 1)    #remove parentheses from macros. E.g. MY_FUNC(5) -> MY_FUNC
 
-    name_and_value = re.sub('[\s]*#[\s]*define', '', line, 1)
+    line = re.sub('[\s]*', '', line, 1)
 
     #If the value should be 1 (enabled) by default use a more complex structure for Kconfig checks because
     #if a not defined CONFIG_... value should be interpreted as 0 and not the LVGL default
-    is_one = re.search(r'[\s]*#[\s]*define[\s]*[A-Z0-9_]+[\s]+1[\s]*$', line)
-    if(is_one):
+    is_one = re.search(r'#[\s]*define[\s]*[A-Z0-9_]+[\s]+1([\s]*$|[\s]+)', line)
+    if is_one:
       #1. Use the value if already set from lv_conf.h or anything else (i.e. do nothing)
       #2. In Kconfig environment use the CONFIG_... value if set, else use 0
       #3. In not Kconfig environment use the LVGL's default value
@@ -109,7 +119,7 @@ for line in fin.read().splitlines():
         f'{indent}            #define {name} 0\n'
         f'{indent}        #endif\n'
         f'{indent}    #else\n'
-        f'{indent}        #define{name_and_value}\n'
+        f'{indent}        {line}\n'
         f'{indent}    #endif\n'
         f'{indent}#endif\n'
       )
@@ -123,7 +133,7 @@ for line in fin.read().splitlines():
         f'{indent}    #ifdef CONFIG_{name.upper()}\n'
         f'{indent}        #define {name} CONFIG_{name.upper()}\n'
         f'{indent}    #else\n'
-        f'{indent}        #define{name_and_value}\n'
+        f'{indent}        {line}\n'
         f'{indent}    #endif\n'
         f'{indent}#endif\n'
       )
index d03b19c..0cf8c6d 100644 (file)
@@ -66,7 +66,7 @@ def get_lvgl_version():
             if m: ver[2] = m.group(1)
 
     f.close()
-    
+
     print("Version found: " + ver_format(ver))
 
     return ver
@@ -103,6 +103,6 @@ def update_version(ver):
       define_set("./lvgl.h", "LVGL_VERSION_MINOR", str(ver[1]))
       define_set("./lvgl.h", "LVGL_VERSION_PATCH", str(ver[2]))
       define_set("./lvgl.h", "LVGL_VERSION_INFO", "\"" + ver[3] + "\"")
-        
+
   cmd("git commit -am 'Update versions to " + ver_str + "'")
-  
+
index 1100a38..9ccdc73 100644 (file)
@@ -3,8 +3,8 @@
 # Applies a commit or commits on branch or branches
 # USAGE:
 # patch.py -c <commit-list> -b <branch-list> [-p] [-t]
-#   - <commit-list>: list of commit SHAs to apply. 
-#   - <branch-list>: branches where the commit should be applied. * can be used as wildchar 
+#   - <commit-list>: list of commit SHAs to apply.
+#   - <branch-list>: branches where the commit should be applied. * can be used as wildchar
 # -  p: push the changes to <branch-list>
 # -  t: increment version number and create a tag
 
@@ -20,7 +20,7 @@ def clone(repo):
   com.cmd("git remote update origin --prune")
   com.cmd("git pull origin --tags")
   os.chdir("..")
-    
+
 # Get the list of related minor version branches
 
 #clone("lvgl")
@@ -52,18 +52,18 @@ for br in branches:
   for c in commits:
     h = c.split(" ")
     com.cmd("git cherry-pick " + h[0])
-      
+
   ver = com.get_lvgl_version(br)
   ver_new = ver.copy()
   ver_new[2] = str(int(ver_new[2]) + 1)
   print("Updating branch '" + br + "' from '" + com.ver_format(ver) + "' to '" + com.ver_format(ver_new) + "'")
   com.update_version(ver_new)
   com.cmd("git tag -a " + com.ver_format(ver_new) + "-m \"Release " + com.ver_format(ver_new) + "\"")
-  
+
   if push:
     com.cmd("git push origin " + br + "--tags")
-    
-com.cmd("git checkout master")    
+
+com.cmd("git checkout master")
 ver = com.get_lvgl_version("master")
 ver = com.get_lvgl_version(br)
 ver_new[2] = str(int(ver_new[2]) + 1)
index 25ef0d5..7da8230 100644 (file)
@@ -13,5 +13,5 @@
 # - Update the simulator and lv_port projects
 #
 # USAGE:
-# release.py <type>  
+# release.py <type>
 # - <type>: -minor or -major
index 699fbe3..5bcdded 100644 (file)
@@ -1,6 +1,8 @@
 #!/usr/bin/env python3
 
-import sys, os, re
+import os
+import re
+import sys
 
 props = [
 {'section': 'Size and position', 'dsc':'Properties related to size, position, alignment and layout of the objects.' },
@@ -58,11 +60,19 @@ props = [
 
 {'name': 'TRANSFORM_ZOOM',
  'style_type': 'num',   'var_type': 'lv_coord_t',  'default':0, 'inherited': 0, 'layout': 1, 'ext_draw': 1,
- 'dsc': "Zoom image-like objects. Multiplied with the zoom set on the object. The value 256 (or `LV_IMG_ZOOM_NONE`) means normal size, 128 half size, 512 double size, and so on" },
+ 'dsc': "Zoom an objects. The value 256 (or `LV_IMG_ZOOM_NONE`) means normal size, 128 half size, 512 double size, and so on" },
 
 {'name': 'TRANSFORM_ANGLE',
  'style_type': 'num',   'var_type': 'lv_coord_t',  'default':0, 'inherited': 0, 'layout': 1, 'ext_draw': 1,
- 'dsc': "Rotate image-like objects. Added to the rotation set on the object. The value is interpreted in 0.1 degree units. E.g. 45 deg. = 450"},
+ 'dsc': "Rotate an objects. The value is interpreted in 0.1 degree units. E.g. 450 means 45 deg."},
+
+{'name': 'TRANSFORM_PIVOT_X',
+ 'style_type': 'num',   'var_type': 'lv_coord_t',  'default':0, 'inherited': 0, 'layout': 0, 'ext_draw': 0,
+ 'dsc': "Set the pivot point's X coordinate for transformations. Relative to the object's top left corner'"},
+
+{'name': 'TRANSFORM_PIVOT_Y',
+ 'style_type': 'num',   'var_type': 'lv_coord_t',  'default':0, 'inherited': 0, 'layout': 0, 'ext_draw': 0,
+ 'dsc': "Set the pivot point's Y coordinate for transformations. Relative to the object's top left corner'"},
 
 {'section': 'Padding', 'dsc' : "Properties to describe spacing between the parent's sides and the children and among the children. Very similar to the padding properties in HTML."},
 {'name': 'PAD_TOP',
@@ -91,23 +101,17 @@ props = [
 
 {'section': 'Background', 'dsc':'Properties to describe the background color and image of the objects.' },
 {'name': 'BG_COLOR',
- 'style_type': 'color', 'var_type': 'lv_color_t', 'default':'`0xffffff`', 'inherited': 0, 'layout': 0, 'ext_draw': 0,
+ 'style_type': 'color', 'var_type': 'lv_color_t', 'default':'`0xffffff`', 'inherited': 0, 'layout': 0, 'ext_draw': 0, 'filtered': 1,
  'dsc': "Set the background color of the object."},
 
-{'name': 'BG_COLOR_FILTERED',
- 'style_type': 'color', 'var_type': 'lv_color_t' },
-
 {'name': 'BG_OPA',
  'style_type': 'num',   'var_type': 'lv_opa_t',  'default':'`LV_OPA_TRANSP`', 'inherited': 0, 'layout': 0, 'ext_draw': 0,
  'dsc': "Set the opacity of the background. Value 0, `LV_OPA_0` or `LV_OPA_TRANSP` means fully transparent, 255, `LV_OPA_100` or `LV_OPA_COVER` means fully covering, other values or LV_OPA_10, LV_OPA_20, etc means semi transparency."},
 
 {'name': 'BG_GRAD_COLOR',
- 'style_type': 'color', 'var_type': 'lv_color_t',  'default':'`0x000000`', 'inherited': 0, 'layout': 0, 'ext_draw': 0,
+ 'style_type': 'color', 'var_type': 'lv_color_t',  'default':'`0x000000`', 'inherited': 0, 'layout': 0, 'ext_draw': 0, 'filtered': 1,
  'dsc': "Set the gradient color of the background. Used only if `grad_dir` is not `LV_GRAD_DIR_NONE`"},
 
-{'name': 'BG_GRAD_COLOR_FILTERED',
- 'style_type': 'color', 'var_type': 'lv_color_t' },
-
 {'name': 'BG_GRAD_DIR',
  'style_type': 'num',   'var_type': 'lv_grad_dir_t',  'default':'`LV_GRAD_DIR_NONE`', 'inherited': 0, 'layout': 0, 'ext_draw': 0,
  'dsc': "Set the direction of the gradient of the background. The possible values are `LV_GRAD_DIR_NONE/HOR/VER`."},
@@ -137,12 +141,9 @@ props = [
  'dsc': "Set the opacity of the background image. Value 0, `LV_OPA_0` or `LV_OPA_TRANSP` means fully transparent, 255, `LV_OPA_100` or `LV_OPA_COVER` means fully covering, other values or LV_OPA_10, LV_OPA_20, etc means semi transparency."},
 
 {'name': 'BG_IMG_RECOLOR',
- 'style_type': 'color', 'var_type': 'lv_color_t',  'default':'`0x000000`', 'inherited': 0, 'layout': 0, 'ext_draw': 0,
+ 'style_type': 'color', 'var_type': 'lv_color_t',  'default':'`0x000000`', 'inherited': 0, 'layout': 0, 'ext_draw': 0, 'filtered': 1,
  'dsc': "Set a color to mix to the background image."},
 
-{'name': 'BG_IMG_RECOLOR_FILTERED',
- 'style_type': 'color', 'var_type': 'lv_color_t'},
-
 {'name': 'BG_IMG_RECOLOR_OPA',
  'style_type': 'num',   'var_type': 'lv_opa_t',  'default':'`LV_OPA_TRANSP`', 'inherited': 0, 'layout': 0, 'ext_draw': 0,
  'dsc': "Set the intensity of background image recoloring. Value 0, `LV_OPA_0` or `LV_OPA_TRANSP` means no mixing, 255, `LV_OPA_100` or `LV_OPA_COVER` means full recoloring, other values or LV_OPA_10, LV_OPA_20, etc are interpreted proportionally."},
@@ -153,12 +154,9 @@ props = [
 
 {'section': 'Border', 'dsc':'Properties to describe the borders' },
 {'name': 'BORDER_COLOR',
- 'style_type': 'color', 'var_type': 'lv_color_t',  'default':'`0x000000`', 'inherited': 0, 'layout': 0, 'ext_draw': 0,
+ 'style_type': 'color', 'var_type': 'lv_color_t',  'default':'`0x000000`', 'inherited': 0, 'layout': 0, 'ext_draw': 0, 'filtered': 1,
  'dsc': "Set the color of the border"},
 
-{'name': 'BORDER_COLOR_FILTERED',
- 'style_type': 'color', 'var_type': 'lv_color_t' },
-
 {'name': 'BORDER_OPA',
  'style_type': 'num',   'var_type': 'lv_opa_t' ,  'default':'`LV_OPA_COVER`', 'inherited': 0, 'layout': 0, 'ext_draw': 0,
  'dsc': "Set the opacity of the border. Value 0, `LV_OPA_0` or `LV_OPA_TRANSP` means fully transparent, 255, `LV_OPA_100` or `LV_OPA_COVER` means fully covering, other values or LV_OPA_10, LV_OPA_20, etc means semi transparency."},
@@ -181,12 +179,9 @@ props = [
  'dsc': "Set the width of the outline in pixels. "},
 
 {'name': 'OUTLINE_COLOR',
- 'style_type': 'color', 'var_type': 'lv_color_t' ,  'default':'`0x000000`', 'inherited': 0, 'layout': 0, 'ext_draw': 0,
+ 'style_type': 'color', 'var_type': 'lv_color_t' ,  'default':'`0x000000`', 'inherited': 0, 'layout': 0, 'ext_draw': 0, 'filtered': 1,
  'dsc': "Set the color of the outline."},
 
-{'name': 'OUTLINE_COLOR_FILTERED',
-'style_type': 'color', 'var_type': 'lv_color_t'},
-
 {'name': 'OUTLINE_OPA',
 'style_type': 'num',   'var_type': 'lv_opa_t' ,  'default':'`LV_OPA_COVER`', 'inherited': 0, 'layout': 0, 'ext_draw': 1,
  'dsc': "Set the opacity of the outline. Value 0, `LV_OPA_0` or `LV_OPA_TRANSP` means fully transparent, 255, `LV_OPA_100` or `LV_OPA_COVER` means fully covering, other values or LV_OPA_10, LV_OPA_20, etc means semi transparency."},
@@ -213,12 +208,9 @@ props = [
  'dsc': "Make the shadow calculation to use a larger or smaller rectangle as base. The value can be in pixel to make the area larger/smaller"},
 
 {'name': 'SHADOW_COLOR',
-  'style_type': 'color', 'var_type': 'lv_color_t' ,  'default':'`0x000000`', 'inherited': 0, 'layout': 0, 'ext_draw': 0,
+  'style_type': 'color', 'var_type': 'lv_color_t' ,  'default':'`0x000000`', 'inherited': 0, 'layout': 0, 'ext_draw': 0, 'filtered': 1,
  'dsc': "Set the color of the shadow"},
 
-{'name': 'SHADOW_COLOR_FILTERED',
- 'style_type': 'color', 'var_type': 'lv_color_t'},
-
 {'name': 'SHADOW_OPA',
  'style_type': 'num',   'var_type': 'lv_opa_t' ,  'default':'`LV_OPA_COVER`', 'inherited': 0, 'layout': 0, 'ext_draw': 1,
  'dsc': "Set the opacity of the shadow. Value 0, `LV_OPA_0` or `LV_OPA_TRANSP` means fully transparent, 255, `LV_OPA_100` or `LV_OPA_COVER` means fully covering, other values or LV_OPA_10, LV_OPA_20, etc means semi transparency."},
@@ -229,12 +221,9 @@ props = [
  'dsc': "Set the opacity of an image. Value 0, `LV_OPA_0` or `LV_OPA_TRANSP` means fully transparent, 255, `LV_OPA_100` or `LV_OPA_COVER` means fully covering, other values or LV_OPA_10, LV_OPA_20, etc means semi transparency."},
 
 {'name': 'IMG_RECOLOR',
- 'style_type': 'color', 'var_type': 'lv_color_t',  'default':'`0x000000`', 'inherited': 0, 'layout': 0, 'ext_draw': 0,
+ 'style_type': 'color', 'var_type': 'lv_color_t',  'default':'`0x000000`', 'inherited': 0, 'layout': 0, 'ext_draw': 0, 'filtered': 1,
  'dsc': "Set color to mixt to the image."},
 
-{'name': 'IMG_RECOLOR_FILTERED',
- 'style_type': 'color', 'var_type': 'lv_color_t'},
-
 {'name': 'IMG_RECOLOR_OPA',
  'style_type': 'num',   'var_type': 'lv_opa_t' ,  'default':0, 'inherited': 0, 'layout': 0, 'ext_draw': 0,
  'dsc': "Set the intensity of the color mixing. Value 0, `LV_OPA_0` or `LV_OPA_TRANSP` means fully transparent, 255, `LV_OPA_100` or `LV_OPA_COVER` means fully covering, other values or LV_OPA_10, LV_OPA_20, etc means semi transparency."},
@@ -257,12 +246,9 @@ props = [
  'dsc': "Make the end points of the lines rounded. `true`: rounded, `false`: perpendicular line ending "},
 
 {'name': 'LINE_COLOR',
- 'style_type': 'color', 'var_type': 'lv_color_t' ,  'default':'`0x000000`', 'inherited': 0, 'layout': 0, 'ext_draw': 0,
+ 'style_type': 'color', 'var_type': 'lv_color_t' ,  'default':'`0x000000`', 'inherited': 0, 'layout': 0, 'ext_draw': 0, 'filtered': 1,
  'dsc': "Set the color fo the lines."},
 
-{'name': 'LINE_COLOR_FILTERED',
- 'style_type': 'color', 'var_type': 'lv_color_t'},
-
 {'name': 'LINE_OPA',
  'style_type': 'num',   'var_type': 'lv_opa_t' ,  'default':'`LV_OPA_COVER`', 'inherited': 0, 'layout': 0, 'ext_draw': 0,
  'dsc': "Set the opacity of the lines."},
@@ -277,12 +263,9 @@ props = [
  'dsc': "Make the end points of the arcs rounded. `true`: rounded, `false`: perpendicular line ending "},
 
 {'name': 'ARC_COLOR',
- 'style_type': 'color', 'var_type': 'lv_color_t',  'default':'`0x000000`', 'inherited': 0, 'layout': 0, 'ext_draw': 0,
+ 'style_type': 'color', 'var_type': 'lv_color_t',  'default':'`0x000000`', 'inherited': 0, 'layout': 0, 'ext_draw': 0, 'filtered': 1,
  'dsc': "Set the color of the arc."},
 
-{'name': 'ARC_COLOR_FILTERED',
- 'style_type': 'color', 'var_type': 'lv_color_t' },
-
 {'name': 'ARC_OPA',
  'style_type': 'num',   'var_type': 'lv_opa_t' ,  'default':'`LV_OPA_COVER`', 'inherited': 0, 'layout': 0, 'ext_draw': 0,
  'dsc': "Set the opacity of the arcs."},
@@ -293,12 +276,9 @@ props = [
 
 {'section': 'Text', 'dsc':'Properties to describe the properties of text. All these properties are inherited.' },
 {'name': 'TEXT_COLOR',
-'style_type': 'color', 'var_type': 'lv_color_t',  'default':'`0x000000`', 'inherited': 1, 'layout': 0, 'ext_draw': 0,
+'style_type': 'color', 'var_type': 'lv_color_t',  'default':'`0x000000`', 'inherited': 1, 'layout': 0, 'ext_draw': 0, 'filtered': 1,
  'dsc': "Sets the color of the text."},
 
-{'name': 'TEXT_COLOR_FILTERED',
- 'style_type': 'color', 'var_type': 'lv_color_t'},
-
 {'name': 'TEXT_OPA',
  'style_type': 'num',   'var_type': 'lv_opa_t',  'default':'`LV_OPA_COVER`', 'inherited': 1, 'layout': 0, 'ext_draw': 0,
  'dsc': "Set the opacity of the text. Value 0, `LV_OPA_0` or `LV_OPA_TRANSP` means fully transparent, 255, `LV_OPA_100` or `LV_OPA_COVER` means fully covering, other values or LV_OPA_10, LV_OPA_20, etc means semi transparency."},
@@ -344,6 +324,10 @@ props = [
  'style_type': 'num',   'var_type': 'lv_opa_t' ,  'default':'`LV_OPA_TRANSP`', 'inherited': 0, 'layout': 0, 'ext_draw': 0,
  'dsc': "The intensity of mixing of color filter."},
 
+ {'name': 'ANIM',
+ 'style_type': 'ptr',   'var_type': 'const lv_anim_t *',  'default':'`NULL`', 'inherited': 0, 'layout': 0, 'ext_draw': 0,
+ 'dsc': "The animation template for the object's animation. Should be a pointer to `lv_anim_t`. The animation parameters are widget specific, e.g. animation time could be the E.g. blink time of the cursor on the text area or scroll time of a roller. See the widgets' documentation to learn more."},
+
 {'name': 'ANIM_TIME',
  'style_type': 'num',   'var_type': 'uint32_t' ,  'default':0, 'inherited': 0, 'layout': 0, 'ext_draw': 0,
  'dsc': "The animation time in milliseconds. Its meaning is widget specific. E.g. blink time of the cursor on the text area or scroll time of a roller. See the widgets' documentation to learn more."},
@@ -388,6 +372,15 @@ def obj_style_get(p):
   print("}")
   print("")
 
+  if 'filtered' in p and p['filtered']:
+    print("static inline " + p['var_type'] + " lv_obj_get_style_" + p['name'].lower() +"_filtered(const struct _lv_obj_t * obj, uint32_t part)")
+    print("{")
+    print("    lv_style_value_t v = _lv_obj_style_apply_color_filter(obj, part, lv_obj_get_style_prop(obj, part, LV_STYLE_" + p['name'] + "));")
+    print("    return " + cast + "v." + p['style_type'] + ";")
+    print("}")
+    print("")
+
+
 
 def style_set_cast(style_type):
   cast = ""
index a7d283d..677a9f6 100644 (file)
@@ -1,16 +1,20 @@
-lvgl_SRCS  +=  $(LVGL_DIR_NAME)/src/core/lv_disp.c
-lvgl_SRCS  +=  $(LVGL_DIR_NAME)/src/core/lv_group.c
-lvgl_SRCS  +=  $(LVGL_DIR_NAME)/src/core/lv_indev.c
-lvgl_SRCS  +=  $(LVGL_DIR_NAME)/src/core/lv_indev_scroll.c
-lvgl_SRCS  +=  $(LVGL_DIR_NAME)/src/core/lv_obj.c
-lvgl_SRCS  +=  $(LVGL_DIR_NAME)/src/core/lv_obj_class.c
-lvgl_SRCS  +=  $(LVGL_DIR_NAME)/src/core/lv_obj_draw.c
-lvgl_SRCS  +=  $(LVGL_DIR_NAME)/src/core/lv_obj_pos.c
-lvgl_SRCS  +=  $(LVGL_DIR_NAME)/src/core/lv_obj_scroll.c
-lvgl_SRCS  +=  $(LVGL_DIR_NAME)/src/core/lv_obj_style.c
-lvgl_SRCS  +=  $(LVGL_DIR_NAME)/src/core/lv_obj_style_gen.c
-lvgl_SRCS  +=  $(LVGL_DIR_NAME)/src/core/lv_obj_tree.c
-lvgl_SRCS  +=  $(LVGL_DIR_NAME)/src/core/lv_event.c
-lvgl_SRCS  +=  $(LVGL_DIR_NAME)/src/core/lv_refr.c
-lvgl_SRCS  +=  $(LVGL_DIR_NAME)/src/core/lv_theme.c
+CSRCS += lv_disp.c
+CSRCS += lv_group.c
+CSRCS += lv_indev.c
+CSRCS += lv_indev_scroll.c
+CSRCS += lv_obj.c
+CSRCS += lv_obj_class.c
+CSRCS += lv_obj_draw.c
+CSRCS += lv_obj_pos.c
+CSRCS += lv_obj_scroll.c
+CSRCS += lv_obj_style.c
+CSRCS += lv_obj_style_gen.c
+CSRCS += lv_obj_tree.c
+CSRCS += lv_event.c
+CSRCS += lv_refr.c
+CSRCS += lv_theme.c
 
+DEPPATH += --dep-path $(LVGL_DIR)/$(LVGL_DIR_NAME)/src/core
+VPATH += :$(LVGL_DIR)/$(LVGL_DIR_NAME)/src/core
+
+CFLAGS += "-I$(LVGL_DIR)/$(LVGL_DIR_NAME)/src/core"
index 2806c4e..dd0f789 100644 (file)
 /**********************
  *  STATIC PROTOTYPES
  **********************/
-
+static void scr_load_internal(lv_obj_t * scr);
 static void scr_load_anim_start(lv_anim_t * a);
 static void opa_scale_anim(void * obj, int32_t v);
 static void set_x_anim(void * obj, int32_t v);
 static void set_y_anim(void * obj, int32_t v);
 static void scr_anim_ready(lv_anim_t * a);
+static bool is_out_anim(lv_scr_load_anim_t a);
 
 /**********************
  *  STATIC VARIABLES
@@ -80,20 +81,7 @@ lv_obj_t * lv_disp_get_scr_prev(lv_disp_t * disp)
  */
 void lv_disp_load_scr(lv_obj_t * scr)
 {
-    lv_disp_t * d = lv_obj_get_disp(scr);
-    if(!d) return;  /*Shouldn't happen, just to be sure*/
-
-    lv_obj_t * old_scr = d->act_scr;
-
-    if(d->act_scr) lv_event_send(old_scr, LV_EVENT_SCREEN_UNLOAD_START, NULL);
-    if(d->act_scr) lv_event_send(scr, LV_EVENT_SCREEN_LOAD_START, NULL);
-
-    d->act_scr = scr;
-
-    if(d->act_scr) lv_event_send(scr, LV_EVENT_SCREEN_LOADED, NULL);
-    if(d->act_scr) lv_event_send(old_scr, LV_EVENT_SCREEN_UNLOADED, NULL);
-
-    lv_obj_invalidate(scr);
+    lv_scr_load_anim(scr, LV_SCR_LOAD_ANIM_NONE, 0, 0, false);
 }
 
 /**
@@ -135,7 +123,12 @@ lv_obj_t * lv_disp_get_layer_sys(lv_disp_t * disp)
  */
 void lv_disp_set_theme(lv_disp_t * disp, lv_theme_t * th)
 {
-    if(disp == NULL) disp = lv_disp_get_default();
+    if(!disp) disp = lv_disp_get_default();
+    if(!disp) {
+        LV_LOG_WARN("no display registered");
+        return;
+    }
+
     disp->theme = th;
 
     if(disp->screen_cnt == 3 &&
@@ -220,7 +213,7 @@ void lv_disp_set_bg_opa(lv_disp_t * disp, lv_opa_t opa)
 /**
  * Switch screen with animation
  * @param scr pointer to the new screen to load
- * @param anim_type type of the animation from `lv_scr_load_anim_t`. E.g.  `LV_SCR_LOAD_ANIM_MOVE_LEFT`
+ * @param anim_type type of the animation from `lv_scr_load_anim_t`, e.g. `LV_SCR_LOAD_ANIM_MOVE_LEFT`
  * @param time time of the animation
  * @param delay delay before the transition
  * @param auto_del true: automatically delete the old screen
@@ -234,7 +227,7 @@ void lv_scr_load_anim(lv_obj_t * new_scr, lv_scr_load_anim_t anim_type, uint32_t
     /*If an other screen load animation is in progress
      *make target screen loaded immediately. */
     if(d->scr_to_load && act_scr != d->scr_to_load) {
-        lv_disp_load_scr(d->scr_to_load);
+        scr_load_internal(d->scr_to_load);
         lv_anim_del(d->scr_to_load, NULL);
         lv_obj_set_pos(d->scr_to_load, 0, 0);
         lv_obj_remove_local_style_prop(d->scr_to_load, LV_STYLE_OPA, 0);
@@ -252,6 +245,7 @@ void lv_scr_load_anim(lv_obj_t * new_scr, lv_scr_load_anim_t anim_type, uint32_t
         d->prev_scr = NULL;
     }
 
+    d->draw_prev_over_act = is_out_anim(anim_type);
     d->del_prev = auto_del;
 
     /*Be sure there is no other animation on the screens*/
@@ -264,6 +258,14 @@ void lv_scr_load_anim(lv_obj_t * new_scr, lv_scr_load_anim_t anim_type, uint32_t
     lv_obj_remove_local_style_prop(new_scr, LV_STYLE_OPA, 0);
     lv_obj_remove_local_style_prop(lv_scr_act(), LV_STYLE_OPA, 0);
 
+
+    /*Shortcut for immediate load*/
+    if(time == 0 && delay == 0) {
+        scr_load_internal(new_scr);
+        if(auto_del) lv_obj_del(act_scr);
+        return;
+    }
+
     lv_anim_t a_new;
     lv_anim_init(&a_new);
     lv_anim_set_var(&a_new, new_scr);
@@ -328,18 +330,36 @@ void lv_scr_load_anim(lv_obj_t * new_scr, lv_scr_load_anim_t anim_type, uint32_t
             lv_anim_set_exec_cb(&a_old, set_y_anim);
             lv_anim_set_values(&a_old, 0, lv_disp_get_ver_res(d));
             break;
-
-        case LV_SCR_LOAD_ANIM_FADE_ON:
+        case LV_SCR_LOAD_ANIM_FADE_IN:
             lv_anim_set_exec_cb(&a_new, opa_scale_anim);
             lv_anim_set_values(&a_new, LV_OPA_TRANSP, LV_OPA_COVER);
             break;
+        case LV_SCR_LOAD_ANIM_FADE_OUT:
+            lv_anim_set_exec_cb(&a_old, opa_scale_anim);
+            lv_anim_set_values(&a_old, LV_OPA_COVER, LV_OPA_TRANSP);
+            break;
+        case LV_SCR_LOAD_ANIM_OUT_LEFT:
+            lv_anim_set_exec_cb(&a_old, set_x_anim);
+            lv_anim_set_values(&a_old, 0, -lv_disp_get_hor_res(d));
+            break;
+        case LV_SCR_LOAD_ANIM_OUT_RIGHT:
+            lv_anim_set_exec_cb(&a_old, set_x_anim);
+            lv_anim_set_values(&a_old, 0, lv_disp_get_hor_res(d));
+            break;
+        case LV_SCR_LOAD_ANIM_OUT_TOP:
+            lv_anim_set_exec_cb(&a_old, set_y_anim);
+            lv_anim_set_values(&a_old, 0, -lv_disp_get_ver_res(d));
+            break;
+        case LV_SCR_LOAD_ANIM_OUT_BOTTOM:
+            lv_anim_set_exec_cb(&a_old, set_y_anim);
+            lv_anim_set_values(&a_old, 0, lv_disp_get_ver_res(d));
+            break;
     }
 
     lv_event_send(act_scr, LV_EVENT_SCREEN_UNLOAD_START, NULL);
 
     lv_anim_start(&a_new);
     lv_anim_start(&a_old);
-
 }
 
 /**
@@ -394,6 +414,38 @@ void lv_disp_clean_dcache(lv_disp_t * disp)
         disp->driver->clean_dcache_cb(disp->driver);
 }
 
+/**
+ * Temporarily enable and disable the invalidation of the display.
+ * @param disp pointer to a display (NULL to use the default display)
+ * @param en true: enable invalidation; false: invalidation
+ */
+void lv_disp_enable_invalidation(lv_disp_t * disp, bool en)
+{
+    if(!disp) disp = lv_disp_get_default();
+    if(!disp) {
+        LV_LOG_WARN("no display registered");
+        return;
+    }
+
+    disp->inv_en_cnt += en ? 1 : -1;
+}
+
+/**
+ * Get display invalidation is enabled.
+ * @param disp pointer to a display (NULL to use the default display)
+ * @return return true if invalidation is enabled
+ */
+bool lv_disp_is_invalidation_enabled(lv_disp_t * disp)
+{
+    if(!disp) disp = lv_disp_get_default();
+    if(!disp) {
+        LV_LOG_WARN("no display registered");
+        return false;
+    }
+
+    return (disp->inv_en_cnt > 0);
+}
+
 /**
  * Get a pointer to the screen refresher timer to
  * modify its parameters with `lv_timer_...` functions.
@@ -415,6 +467,24 @@ lv_timer_t * _lv_disp_get_refr_timer(lv_disp_t * disp)
  *   STATIC FUNCTIONS
  **********************/
 
+static void scr_load_internal(lv_obj_t * scr)
+{
+    lv_disp_t * d = lv_obj_get_disp(scr);
+    if(!d) return;  /*Shouldn't happen, just to be sure*/
+
+    lv_obj_t * old_scr = d->act_scr;
+
+    if(d->act_scr) lv_event_send(old_scr, LV_EVENT_SCREEN_UNLOAD_START, NULL);
+    if(d->act_scr) lv_event_send(scr, LV_EVENT_SCREEN_LOAD_START, NULL);
+
+    d->act_scr = scr;
+
+    if(d->act_scr) lv_event_send(scr, LV_EVENT_SCREEN_LOADED, NULL);
+    if(d->act_scr) lv_event_send(old_scr, LV_EVENT_SCREEN_UNLOADED, NULL);
+
+    lv_obj_invalidate(scr);
+}
+
 static void scr_load_anim_start(lv_anim_t * a)
 {
     lv_disp_t * d = lv_obj_get_disp(a->var);
@@ -449,6 +519,17 @@ static void scr_anim_ready(lv_anim_t * a)
 
     if(d->prev_scr && d->del_prev) lv_obj_del(d->prev_scr);
     d->prev_scr = NULL;
+    d->draw_prev_over_act = false;
     d->scr_to_load = NULL;
     lv_obj_remove_local_style_prop(a->var, LV_STYLE_OPA, 0);
+    lv_obj_invalidate(d->act_scr);
+}
+
+static bool is_out_anim(lv_scr_load_anim_t anim_type)
+{
+    return anim_type == LV_SCR_LOAD_ANIM_FADE_OUT  ||
+           anim_type == LV_SCR_LOAD_ANIM_OUT_LEFT  ||
+           anim_type == LV_SCR_LOAD_ANIM_OUT_RIGHT ||
+           anim_type == LV_SCR_LOAD_ANIM_OUT_TOP   ||
+           anim_type == LV_SCR_LOAD_ANIM_OUT_BOTTOM;
 }
index 01766b3..7854cb7 100644 (file)
@@ -35,7 +35,13 @@ typedef enum {
     LV_SCR_LOAD_ANIM_MOVE_RIGHT,
     LV_SCR_LOAD_ANIM_MOVE_TOP,
     LV_SCR_LOAD_ANIM_MOVE_BOTTOM,
-    LV_SCR_LOAD_ANIM_FADE_ON,
+    LV_SCR_LOAD_ANIM_FADE_IN,
+    LV_SCR_LOAD_ANIM_FADE_ON = LV_SCR_LOAD_ANIM_FADE_IN, /*For backward compatibility*/
+    LV_SCR_LOAD_ANIM_FADE_OUT,
+    LV_SCR_LOAD_ANIM_OUT_LEFT,
+    LV_SCR_LOAD_ANIM_OUT_RIGHT,
+    LV_SCR_LOAD_ANIM_OUT_TOP,
+    LV_SCR_LOAD_ANIM_OUT_BOTTOM,
 } lv_scr_load_anim_t;
 
 /**********************
@@ -116,7 +122,7 @@ void lv_disp_set_bg_opa(lv_disp_t * disp, lv_opa_t opa);
 /**
  * Switch screen with animation
  * @param scr pointer to the new screen to load
- * @param anim_type type of the animation from `lv_scr_load_anim_t`. E.g.  `LV_SCR_LOAD_ANIM_MOVE_LEFT`
+ * @param anim_type type of the animation from `lv_scr_load_anim_t`, e.g. `LV_SCR_LOAD_ANIM_MOVE_LEFT`
  * @param time time of the animation
  * @param delay delay before the transition
  * @param auto_del true: automatically delete the old screen
@@ -142,6 +148,20 @@ void lv_disp_trig_activity(lv_disp_t * disp);
  */
 void lv_disp_clean_dcache(lv_disp_t * disp);
 
+/**
+ * Temporarily enable and disable the invalidation of the display.
+ * @param disp pointer to a display (NULL to use the default display)
+ * @param en true: enable invalidation; false: invalidation
+ */
+void lv_disp_enable_invalidation(lv_disp_t * disp, bool en);
+
+/**
+ * Get display invalidation is enabled.
+ * @param disp pointer to a display (NULL to use the default display)
+ * @return return true if invalidation is enabled
+ */
+bool lv_disp_is_invalidation_enabled(lv_disp_t * disp);
+
 /**
  * Get a pointer to the screen refresher timer to
  * modify its parameters with `lv_timer_...` functions.
index 3329179..f53ceac 100644 (file)
@@ -8,7 +8,6 @@
  *********************/
 #include "lv_obj.h"
 #include "lv_indev.h"
-#include "helios_os.h"
 
 /*********************
  *      DEFINES
@@ -35,7 +34,7 @@ static bool event_is_bubbled(lv_event_t * e);
 /**********************
  *  STATIC VARIABLES
  **********************/
-static lv_event_t * event_head = NULL;
+static lv_event_t * event_head;
 
 /**********************
  *      MACROS
@@ -50,17 +49,11 @@ static lv_event_t * event_head = NULL;
  *   GLOBAL FUNCTIONS
  **********************/
 
-static Helios_Mutex_t lv_event_mutex = 0;
-
-
 lv_res_t lv_event_send(lv_obj_t * obj, lv_event_code_t event_code, void * param)
 {
     if(obj == NULL) return LV_RES_OK;
-    if(0 == lv_event_mutex) {
-        lv_event_mutex = Helios_Mutex_Create();
-    }  
+
     LV_ASSERT_OBJ(obj, MY_CLASS);
-       Helios_Mutex_Lock(lv_event_mutex, HELIOS_WAIT_FOREVER);
 
     lv_event_t e;
     e.target = obj;
@@ -75,19 +68,14 @@ lv_res_t lv_event_send(lv_obj_t * obj, lv_event_code_t event_code, void * param)
     /*Build a simple linked list from the objects used in the events
      *It's important to know if this object was deleted by a nested event
      *called from this `event_cb`.*/
-    //LV_LOG_ERROR("event[%x]prev[%x]e[%x]\n", event_head, e.prev, &e);
     e.prev = event_head;
     event_head = &e;
-       Helios_Mutex_Unlock(lv_event_mutex);
 
     /*Send the event*/
     lv_res_t res = event_send_core(&e);
 
     /*Remove this element from the list*/
-       Helios_Mutex_Lock(lv_event_mutex, HELIOS_WAIT_FOREVER);
-    //LV_LOG_ERROR("event1[%x]prev[%x]e[%x]\n", event_head, e.prev, &e);
     event_head = e.prev;
-       Helios_Mutex_Unlock(lv_event_mutex);
 
     return res;
 }
@@ -162,25 +150,12 @@ uint32_t lv_event_register_id(void)
 
 void _lv_event_mark_deleted(lv_obj_t * obj)
 {
-       
-    if(0 == lv_event_mutex) {
-        lv_event_mutex = Helios_Mutex_Create();
-    }
-       Helios_Mutex_Lock(lv_event_mutex, HELIOS_WAIT_FOREVER);
     lv_event_t * e = event_head;
 
     while(e) {
         if(e->current_target == obj || e->target == obj) e->deleted = 1;
-        if(e == e->prev)
-        {
-            event_head = NULL;
-            LV_LOG_ERROR("_lv_event_mark_deleted:assert\n");
-            break;
-        }
         e = e->prev;
     }
-       
-       Helios_Mutex_Unlock(lv_event_mutex);
 }
 
 
@@ -233,7 +208,7 @@ bool lv_obj_remove_event_cb_with_user_data(lv_obj_t * obj, lv_event_cb_t event_c
 
     int32_t i = 0;
     for(i = 0; i < obj->spec_attr->event_dsc_cnt; i++) {
-        if((event_cb == NULL || obj->spec_attr->event_dsc[i].cb) &&
+        if((event_cb == NULL || obj->spec_attr->event_dsc[i].cb == event_cb) &&
            obj->spec_attr->event_dsc[i].user_data == user_data) {
             /*Shift the remaining event handlers forward*/
             for(; i < (obj->spec_attr->event_dsc_cnt - 1); i++) {
@@ -279,7 +254,7 @@ bool lv_obj_remove_event_dsc(lv_obj_t * obj, struct _lv_event_dsc_t * event_dsc)
 void * lv_obj_get_event_user_data(struct _lv_obj_t * obj, lv_event_cb_t event_cb)
 {
     LV_ASSERT_OBJ(obj, MY_CLASS);
-    if(obj->spec_attr == NULL) return false;
+    if(obj->spec_attr == NULL) return NULL;
 
     int32_t i = 0;
     for(i = 0; i < obj->spec_attr->event_dsc_cnt; i++) {
@@ -461,7 +436,7 @@ static lv_res_t event_send_core(lv_event_t * e)
     }
 
     lv_res_t res = LV_RES_OK;
-    lv_event_dsc_t * event_dsc = res == LV_RES_INV ? NULL : lv_obj_get_event_dsc(e->current_target, 0);
+    lv_event_dsc_t * event_dsc = lv_obj_get_event_dsc(e->current_target, 0);
 
     uint32_t i = 0;
     while(event_dsc && res == LV_RES_OK) {
index 038570b..d5a9eb6 100644 (file)
@@ -41,7 +41,7 @@ typedef enum {
     LV_EVENT_LONG_PRESSED_REPEAT, /**< Called after `long_press_time` in every `long_press_repeat_time` ms.  Not called if scrolled.*/
     LV_EVENT_CLICKED,             /**< Called on release if not scrolled (regardless to long press)*/
     LV_EVENT_RELEASED,            /**< Called in every cases when the object has been released*/
-    LV_EVENT_SCROLL_BEGIN,        /**< Scrolling begins*/
+    LV_EVENT_SCROLL_BEGIN,        /**< Scrolling begins. The event parameter is a pointer to the animation of the scroll. Can be modified*/
     LV_EVENT_SCROLL_END,          /**< Scrolling ends*/
     LV_EVENT_SCROLL,              /**< Scrolling*/
     LV_EVENT_GESTURE,             /**< A gesture is detected. Get the gesture with `lv_indev_get_gesture_dir(lv_indev_get_act());` */
index 3e13b0b..63fde71 100644 (file)
@@ -24,7 +24,7 @@
 /**********************
  *  STATIC PROTOTYPES
  **********************/
-static void focus_next_core(lv_group_t * group, void * (*begin)(const lv_ll_t *),
+static bool focus_next_core(lv_group_t * group, void * (*begin)(const lv_ll_t *),
                             void * (*move)(const lv_ll_t *, const void *));
 static void lv_group_refocus(lv_group_t * g);
 static lv_indev_t * get_indev(const lv_group_t * g);
@@ -57,6 +57,7 @@ lv_group_t * lv_group_create(void)
     group->obj_focus      = NULL;
     group->frozen         = 0;
     group->focus_cb       = NULL;
+    group->edge_cb        = NULL;
     group->editing        = 0;
     group->refocus_policy = LV_GROUP_REFOCUS_POLICY_PREV;
     group->wrap           = 1;
@@ -91,6 +92,7 @@ void lv_group_del(lv_group_t * group)
         indev = lv_indev_get_next(indev);
     }
 
+    if(default_group == group) default_group = NULL;
     _lv_ll_clear(&(group->obj_ll));
     _lv_ll_remove(&LV_GC_ROOT(_lv_group_ll), group);
     lv_mem_free(group);
@@ -112,6 +114,9 @@ void lv_group_add_obj(lv_group_t * group, lv_obj_t * obj)
 
     LV_LOG_TRACE("begin");
 
+    /*Be sure the object is removed from its current group*/
+    lv_group_remove_obj(obj);
+
     /*Do not add the object twice*/
     lv_obj_t ** obj_i;
     _LV_LL_READ(&group->obj_ll, obj_i) {
@@ -261,12 +266,20 @@ void lv_group_focus_obj(lv_obj_t * obj)
 
 void lv_group_focus_next(lv_group_t * group)
 {
-    focus_next_core(group, _lv_ll_get_head, _lv_ll_get_next);
+    bool focus_changed = focus_next_core(group, _lv_ll_get_head, _lv_ll_get_next);
+    if(group->edge_cb) {
+        if(!focus_changed)
+            group->edge_cb(group, true);
+    }
 }
 
 void lv_group_focus_prev(lv_group_t * group)
 {
-    focus_next_core(group, _lv_ll_get_tail, _lv_ll_get_prev);
+    bool focus_changed = focus_next_core(group, _lv_ll_get_tail, _lv_ll_get_prev);
+    if(group->edge_cb) {
+        if(!focus_changed)
+            group->edge_cb(group, false);
+    }
 }
 
 void lv_group_focus_freeze(lv_group_t * group, bool en)
@@ -279,6 +292,9 @@ lv_res_t lv_group_send_data(lv_group_t * group, uint32_t c)
 {
     lv_obj_t * act = lv_group_get_focused(group);
     if(act == NULL) return LV_RES_OK;
+
+    if(lv_obj_has_state(act, LV_STATE_DISABLED)) return LV_RES_OK;
+
     return lv_event_send(act, LV_EVENT_KEY, &c);
 }
 
@@ -287,6 +303,11 @@ void lv_group_set_focus_cb(lv_group_t * group, lv_group_focus_cb_t focus_cb)
     group->focus_cb = focus_cb;
 }
 
+void lv_group_set_edge_cb(lv_group_t * group, lv_group_edge_cb_t edge_cb)
+{
+    group->edge_cb = edge_cb;
+}
+
 void lv_group_set_editing(lv_group_t * group, bool edit)
 {
     if(group == NULL) return;
@@ -329,6 +350,12 @@ lv_group_focus_cb_t lv_group_get_focus_cb(const lv_group_t * group)
     return group->focus_cb;
 }
 
+lv_group_edge_cb_t lv_group_get_edge_cb(const lv_group_t * group)
+{
+    if(!group) return NULL;
+    return group->edge_cb;
+}
+
 bool lv_group_get_editing(const lv_group_t * group)
 {
     if(!group) return false;
@@ -363,10 +390,11 @@ static void lv_group_refocus(lv_group_t * g)
     g->wrap = temp_wrap;
 }
 
-static void focus_next_core(lv_group_t * group, void * (*begin)(const lv_ll_t *),
+static bool focus_next_core(lv_group_t * group, void * (*begin)(const lv_ll_t *),
                             void * (*move)(const lv_ll_t *, const void *))
 {
-    if(group->frozen) return;
+    bool focus_changed = false;
+    if(group->frozen) return focus_changed;
 
     lv_obj_t ** obj_next     = group->obj_focus;
     lv_obj_t ** obj_sentinel = NULL;
@@ -376,27 +404,27 @@ static void focus_next_core(lv_group_t * group, void * (*begin)(const lv_ll_t *)
     for(;;) {
         if(obj_next == NULL) {
             if(group->wrap || obj_sentinel == NULL) {
-                if(!can_begin) return;
+                if(!can_begin) return focus_changed;
                 obj_next  = begin(&group->obj_ll);
                 can_move  = false;
                 can_begin = false;
             }
             else {
                 /*Currently focused object is the last/first in the group, keep it that way*/
-                return;
+                return focus_changed;
             }
         }
 
         if(obj_sentinel == NULL) {
             obj_sentinel = obj_next;
-            if(obj_sentinel == NULL) return; /*Group is empty*/
+            if(obj_sentinel == NULL) return focus_changed; /*Group is empty*/
         }
 
         if(can_move) {
             obj_next = move(&group->obj_ll, obj_next);
 
             /*Give up if we walked the entire list and haven't found another visible object*/
-            if(obj_next == obj_sentinel) return;
+            if(obj_next == obj_sentinel) return focus_changed;
         }
 
         can_move = true;
@@ -418,22 +446,24 @@ static void focus_next_core(lv_group_t * group, void * (*begin)(const lv_ll_t *)
         break;
     }
 
-    if(obj_next == group->obj_focus) return; /*There's only one visible object and it's already focused*/
+    if(obj_next == group->obj_focus) return focus_changed; /*There's only one visible object and it's already focused*/
 
     if(group->obj_focus) {
         lv_res_t res = lv_event_send(*group->obj_focus, LV_EVENT_DEFOCUSED, get_indev(group));
-        if(res != LV_RES_OK) return;
+        if(res != LV_RES_OK) return focus_changed;
         lv_obj_invalidate(*group->obj_focus);
     }
 
     group->obj_focus = obj_next;
 
     lv_res_t res = lv_event_send(*group->obj_focus, LV_EVENT_FOCUSED, get_indev(group));
-    if(res != LV_RES_OK) return;
+    if(res != LV_RES_OK) return focus_changed;
 
     lv_obj_invalidate(*group->obj_focus);
 
     if(group->focus_cb) group->focus_cb(group);
+    focus_changed = true;
+    return focus_changed;
 }
 
 /**
index ecf88df..0910597 100644 (file)
@@ -50,6 +50,7 @@ struct _lv_obj_t;
 struct _lv_group_t;
 
 typedef void (*lv_group_focus_cb_t)(struct _lv_group_t *);
+typedef void (*lv_group_edge_cb_t)(struct _lv_group_t *, bool);
 
 /**
  * Groups can be used to logically hold objects so that they can be individually focused.
@@ -60,6 +61,10 @@ typedef struct _lv_group_t {
     struct _lv_obj_t ** obj_focus; /**< The object in focus*/
 
     lv_group_focus_cb_t focus_cb;              /**< A function to call when a new object is focused (optional)*/
+    lv_group_edge_cb_t  edge_cb;               /**< A function to call when an edge is reached, no more focus
+                                                    targets are available in this direction (to allow edge feedback
+                                                    like a sound or a scroll bounce) */
+
 #if LV_USE_USER_DATA
     void * user_data;
 #endif
@@ -178,6 +183,14 @@ lv_res_t lv_group_send_data(lv_group_t * group, uint32_t c);
  */
 void lv_group_set_focus_cb(lv_group_t * group, lv_group_focus_cb_t focus_cb);
 
+/**
+ * Set a function for a group which will be called when a focus edge is reached
+ * @param group         pointer to a group
+ * @param edge_cb      the call back function or NULL if unused
+ */
+void lv_group_set_edge_cb(lv_group_t * group, lv_group_edge_cb_t edge_cb);
+
+
 /**
  * Set whether the next or previous item in a group is focused if the currently focused obj is
  * deleted.
@@ -214,6 +227,13 @@ struct _lv_obj_t * lv_group_get_focused(const lv_group_t * group);
  */
 lv_group_focus_cb_t lv_group_get_focus_cb(const lv_group_t * group);
 
+/**
+ * Get the edge callback function of a group
+ * @param group pointer to a group
+ * @return the call back function or NULL if not set
+ */
+lv_group_edge_cb_t lv_group_get_edge_cb(const lv_group_t * group);
+
 /**
  * Get the current mode (edit or navigate).
  * @param group         pointer to group
index d983e93..caf9c31 100644 (file)
@@ -75,14 +75,15 @@ void lv_indev_read_timer_cb(lv_timer_t * timer)
     /*Handle reset query before processing the point*/
     indev_proc_reset_query_handler(indev_act);
 
-    if(indev_act->proc.disabled) return;
+    if(indev_act->proc.disabled ||
+       indev_act->driver->disp->prev_scr != NULL) return; /*Input disabled or screen animation active*/
     bool continue_reading;
     do {
         /*Read the data*/
         _lv_indev_read(indev_act, &data);
         continue_reading = data.continue_reading;
 
-        /*The active object might deleted even in the read function*/
+        /*The active object might be deleted even in the read function*/
         indev_proc_reset_query_handler(indev_act);
         indev_obj_act = NULL;
 
@@ -121,9 +122,18 @@ void lv_indev_read_timer_cb(lv_timer_t * timer)
 
 void lv_indev_enable(lv_indev_t * indev, bool en)
 {
-    if(!indev) return;
+    uint8_t enable = en ? 0 : 1;
 
-    indev->proc.disabled = en ? 0 : 1;
+    if(indev) {
+        indev->proc.disabled = enable;
+    }
+    else {
+        lv_indev_t * i = lv_indev_get_next(NULL);
+        while(i) {
+            i->proc.disabled = enable;
+            i = lv_indev_get_next(i);
+        }
+    }
 }
 
 lv_indev_t * lv_indev_get_act(void)
@@ -286,6 +296,7 @@ lv_timer_t * lv_indev_get_read_timer(lv_disp_t * indev)
     return indev->refr_timer;
 }
 
+
 lv_obj_t * lv_indev_search_obj(lv_obj_t * obj, lv_point_t * point)
 {
     lv_obj_t * found_p = NULL;
@@ -293,16 +304,20 @@ lv_obj_t * lv_indev_search_obj(lv_obj_t * obj, lv_point_t * point)
     /*If this obj is hidden the children are hidden too so return immediately*/
     if(lv_obj_has_flag(obj, LV_OBJ_FLAG_HIDDEN)) return NULL;
 
-    bool hit_test_ok = lv_obj_hit_test(obj, point);
+    lv_point_t p_trans = *point;
+    lv_obj_transform_point(obj, &p_trans, false, true);
+
+    bool hit_test_ok = lv_obj_hit_test(obj, &p_trans);
 
     /*If the point is on this object or has overflow visible check its children too*/
-    if(_lv_area_is_point_on(&obj->coords, point, 0) || lv_obj_has_flag(obj, LV_OBJ_FLAG_OVERFLOW_VISIBLE)) {
+    if(_lv_area_is_point_on(&obj->coords, &p_trans, 0) || lv_obj_has_flag(obj, LV_OBJ_FLAG_OVERFLOW_VISIBLE)) {
         int32_t i;
         uint32_t child_cnt = lv_obj_get_child_cnt(obj);
+
         /*If a child matches use it*/
         for(i = child_cnt - 1; i >= 0; i--) {
             lv_obj_t * child = obj->spec_attr->children[i];
-            found_p = lv_indev_search_obj(child, point);
+            found_p = lv_indev_search_obj(child, &p_trans);
             if(found_p) return found_p;
         }
     }
@@ -341,16 +356,16 @@ static void indev_pointer_proc(lv_indev_t * i, lv_indev_data_t * data)
 
     /*Simple sanity check*/
     if(data->point.x < 0) {
-        //LV_LOG_WARN("X is %d which is smaller than zero", data->point.x);
+        LV_LOG_WARN("X is %d which is smaller than zero", data->point.x);
     }
     if(data->point.x >= lv_disp_get_hor_res(i->driver->disp)) {
-        //LV_LOG_WARN("X is %d which is greater than hor. res", data->point.x);
+        LV_LOG_WARN("X is %d which is greater than hor. res", data->point.x);
     }
     if(data->point.y < 0) {
-        //LV_LOG_WARN("Y is %d which is smaller than zero", data->point.y);
+        LV_LOG_WARN("Y is %d which is smaller than zero", data->point.y);
     }
     if(data->point.y >= lv_disp_get_ver_res(i->driver->disp)) {
-        //LV_LOG_WARN("Y is %d which is greater than ver. res", data->point.y);
+        LV_LOG_WARN("Y is %d which is greater than ver. res", data->point.y);
     }
 
     /*Move the cursor if set and moved*/
@@ -395,6 +410,8 @@ static void indev_keypad_proc(lv_indev_t * i, lv_indev_data_t * data)
     indev_obj_act = lv_group_get_focused(g);
     if(indev_obj_act == NULL) return;
 
+    bool dis = lv_obj_has_state(indev_obj_act, LV_STATE_DISABLED);
+
     /*Save the last key to compare it with the current latter on RELEASE*/
     uint32_t prev_key = i->proc.types.keypad.last_key;
 
@@ -410,26 +427,11 @@ static void indev_keypad_proc(lv_indev_t * i, lv_indev_data_t * data)
 
     /*Key press happened*/
     if(data->state == LV_INDEV_STATE_PRESSED && prev_state == LV_INDEV_STATE_RELEASED) {
-        LV_LOG_INFO("%d key is pressed", data->key);
+        LV_LOG_INFO("%" LV_PRIu32 " key is pressed", data->key);
         i->proc.pr_timestamp = lv_tick_get();
 
-        /*Simulate a press on the object if ENTER was pressed*/
-        if(data->key == LV_KEY_ENTER) {
-            /*Send the ENTER as a normal KEY*/
-            lv_group_send_data(g, LV_KEY_ENTER);
-
-            lv_event_send(indev_obj_act, LV_EVENT_PRESSED, indev_act);
-            if(indev_reset_check(&i->proc)) return;
-        }
-        else if(data->key == LV_KEY_ESC) {
-            /*Send the ESC as a normal KEY*/
-            lv_group_send_data(g, LV_KEY_ESC);
-
-            lv_event_send(indev_obj_act, LV_EVENT_CANCEL, indev_act);
-            if(indev_reset_check(&i->proc)) return;
-        }
         /*Move the focus on NEXT*/
-        else if(data->key == LV_KEY_NEXT) {
+        if(data->key == LV_KEY_NEXT) {
             lv_group_set_editing(g, false); /*Editing is not used by KEYPAD is be sure it is disabled*/
             lv_group_focus_next(g);
             if(indev_reset_check(&i->proc)) return;
@@ -440,13 +442,33 @@ static void indev_keypad_proc(lv_indev_t * i, lv_indev_data_t * data)
             lv_group_focus_prev(g);
             if(indev_reset_check(&i->proc)) return;
         }
-        /*Just send other keys to the object (e.g. 'A' or `LV_GROUP_KEY_RIGHT`)*/
-        else {
-            lv_group_send_data(g, data->key);
+        else if(!dis) {
+            /*Simulate a press on the object if ENTER was pressed*/
+            if(data->key == LV_KEY_ENTER) {
+                /*Send the ENTER as a normal KEY*/
+                lv_group_send_data(g, LV_KEY_ENTER);
+                if(indev_reset_check(&i->proc)) return;
+
+                if(!dis) lv_event_send(indev_obj_act, LV_EVENT_PRESSED, indev_act);
+                if(indev_reset_check(&i->proc)) return;
+            }
+            else if(data->key == LV_KEY_ESC) {
+                /*Send the ESC as a normal KEY*/
+                lv_group_send_data(g, LV_KEY_ESC);
+                if(indev_reset_check(&i->proc)) return;
+
+                lv_event_send(indev_obj_act, LV_EVENT_CANCEL, indev_act);
+                if(indev_reset_check(&i->proc)) return;
+            }
+            /*Just send other keys to the object (e.g. 'A' or `LV_GROUP_KEY_RIGHT`)*/
+            else {
+                lv_group_send_data(g, data->key);
+                if(indev_reset_check(&i->proc)) return;
+            }
         }
     }
     /*Pressing*/
-    else if(data->state == LV_INDEV_STATE_PRESSED && prev_state == LV_INDEV_STATE_PRESSED) {
+    else if(!dis && data->state == LV_INDEV_STATE_PRESSED && prev_state == LV_INDEV_STATE_PRESSED) {
 
         if(data->key == LV_KEY_ENTER) {
             lv_event_send(indev_obj_act, LV_EVENT_PRESSING, indev_act);
@@ -493,8 +515,8 @@ static void indev_keypad_proc(lv_indev_t * i, lv_indev_data_t * data)
         }
     }
     /*Release happened*/
-    else if(data->state == LV_INDEV_STATE_RELEASED && prev_state == LV_INDEV_STATE_PRESSED) {
-        LV_LOG_INFO("%d key is released", data->key);
+    else if(!dis && data->state == LV_INDEV_STATE_RELEASED && prev_state == LV_INDEV_STATE_PRESSED) {
+        LV_LOG_INFO("%" LV_PRIu32 " key is released", data->key);
         /*The user might clear the key when it was released. Always release the pressed key*/
         data->key = prev_key;
         if(data->key == LV_KEY_ENTER) {
@@ -579,6 +601,7 @@ static void indev_encoder_proc(lv_indev_t * i, lv_indev_data_t * data)
         else if(data->key == LV_KEY_ESC) {
             /*Send the ESC as a normal KEY*/
             lv_group_send_data(g, LV_KEY_ESC);
+            if(indev_reset_check(&i->proc)) return;
 
             lv_event_send(indev_obj_act, LV_EVENT_CANCEL, indev_act);
             if(indev_reset_check(&i->proc)) return;
@@ -586,6 +609,7 @@ static void indev_encoder_proc(lv_indev_t * i, lv_indev_data_t * data)
         /*Just send other keys to the object (e.g. 'A' or `LV_GROUP_KEY_RIGHT`)*/
         else {
             lv_group_send_data(g, data->key);
+            if(indev_reset_check(&i->proc)) return;
         }
     }
     /*Pressing*/
@@ -676,8 +700,8 @@ static void indev_encoder_proc(lv_indev_t * i, lv_indev_data_t * data)
                     lv_event_send(indev_obj_act, LV_EVENT_CLICKED, indev_act);
                     if(indev_reset_check(&i->proc)) return;
 
-
                     lv_group_send_data(g, LV_KEY_ENTER);
+                    if(indev_reset_check(&i->proc)) return;
                 }
                 else {
                     lv_obj_clear_state(indev_obj_act, LV_STATE_PRESSED);    /*Remove the pressed state manually*/
@@ -703,10 +727,16 @@ static void indev_encoder_proc(lv_indev_t * i, lv_indev_data_t * data)
             LV_LOG_INFO("rotated by %+d (edit)", data->enc_diff);
             int32_t s;
             if(data->enc_diff < 0) {
-                for(s = 0; s < -data->enc_diff; s++) lv_group_send_data(g, LV_KEY_LEFT);
+                for(s = 0; s < -data->enc_diff; s++) {
+                    lv_group_send_data(g, LV_KEY_LEFT);
+                    if(indev_reset_check(&i->proc)) return;
+                }
             }
             else if(data->enc_diff > 0) {
-                for(s = 0; s < data->enc_diff; s++) lv_group_send_data(g, LV_KEY_RIGHT);
+                for(s = 0; s < data->enc_diff; s++) {
+                    lv_group_send_data(g, LV_KEY_RIGHT);
+                    if(indev_reset_check(&i->proc)) return;
+                }
             }
         }
         /*In navigate mode focus on the next/prev objects*/
@@ -714,10 +744,16 @@ static void indev_encoder_proc(lv_indev_t * i, lv_indev_data_t * data)
             LV_LOG_INFO("rotated by %+d (nav)", data->enc_diff);
             int32_t s;
             if(data->enc_diff < 0) {
-                for(s = 0; s < -data->enc_diff; s++) lv_group_focus_prev(g);
+                for(s = 0; s < -data->enc_diff; s++) {
+                    lv_group_focus_prev(g);
+                    if(indev_reset_check(&i->proc)) return;
+                }
             }
             else if(data->enc_diff > 0) {
-                for(s = 0; s < data->enc_diff; s++) lv_group_focus_next(g);
+                for(s = 0; s < data->enc_diff; s++) {
+                    lv_group_focus_next(g);
+                    if(indev_reset_check(&i->proc)) return;
+                }
             }
         }
     }
@@ -743,10 +779,10 @@ static void indev_button_proc(lv_indev_t * i, lv_indev_data_t * data)
     static lv_indev_state_t prev_state = LV_INDEV_STATE_RELEASED;
     if(prev_state != data->state) {
         if(data->state == LV_INDEV_STATE_PRESSED) {
-            LV_LOG_INFO("button %d is pressed (x:%d y:%d)", data->btn_id, x, y);
+            LV_LOG_INFO("button %" LV_PRIu32 " is pressed (x:%d y:%d)", data->btn_id, x, y);
         }
         else {
-            LV_LOG_INFO("button %d is released (x:%d y:%d)", data->btn_id, x, y);
+            LV_LOG_INFO("button %" LV_PRIu32 " is released (x:%d y:%d)", data->btn_id, x, y);
         }
     }
 
@@ -816,7 +852,7 @@ static void indev_proc_press(_lv_indev_proc_t * proc)
         if(indev_reset_check(proc)) return;
     }
 
-    /*If a new object was found reset some variables and send a pressed Call the ancestor's event handler*/
+    /*If a new object was found reset some variables and send a pressed event handler*/
     if(indev_obj_act != proc->types.pointer.act_obj) {
         proc->types.pointer.last_point.x = proc->types.pointer.act_point.x;
         proc->types.pointer.last_point.y = proc->types.pointer.act_point.y;
@@ -864,11 +900,8 @@ static void indev_proc_press(_lv_indev_proc_t * proc)
     proc->types.pointer.vect.x = proc->types.pointer.act_point.x - proc->types.pointer.last_point.x;
     proc->types.pointer.vect.y = proc->types.pointer.act_point.y - proc->types.pointer.last_point.y;
 
-    proc->types.pointer.scroll_throw_vect.x = (proc->types.pointer.scroll_throw_vect.x * 4) >> 3;
-    proc->types.pointer.scroll_throw_vect.y = (proc->types.pointer.scroll_throw_vect.y * 4) >> 3;
-
-    proc->types.pointer.scroll_throw_vect.x += (proc->types.pointer.vect.x * 4) >> 3;
-    proc->types.pointer.scroll_throw_vect.y += (proc->types.pointer.vect.y * 4) >> 3;
+    proc->types.pointer.scroll_throw_vect.x = (proc->types.pointer.scroll_throw_vect.x + proc->types.pointer.vect.x) / 2;
+    proc->types.pointer.scroll_throw_vect.y = (proc->types.pointer.scroll_throw_vect.y + proc->types.pointer.vect.y) / 2;
 
     proc->types.pointer.scroll_throw_vect_ori = proc->types.pointer.scroll_throw_vect;
 
@@ -917,6 +950,9 @@ static void indev_proc_press(_lv_indev_proc_t * proc)
 static void indev_proc_release(_lv_indev_proc_t * proc)
 {
     if(proc->wait_until_release != 0) {
+        lv_event_send(proc->types.pointer.act_obj, LV_EVENT_PRESS_LOST, indev_act);
+        if(indev_reset_check(proc)) return;
+
         proc->types.pointer.act_obj  = NULL;
         proc->types.pointer.last_obj = NULL;
         proc->pr_timestamp           = 0;
@@ -949,6 +985,27 @@ static void indev_proc_release(_lv_indev_proc_t * proc)
         proc->pr_timestamp          = 0;
         proc->longpr_rep_timestamp  = 0;
 
+
+        /*Get the transformed vector with this object*/
+        if(scroll_obj) {
+            int16_t angle = 0;
+            int16_t zoom = 256;
+            lv_point_t pivot = { 0, 0 };
+            lv_obj_t * parent = scroll_obj;
+            while(parent) {
+                angle += lv_obj_get_style_transform_angle(parent, 0);
+                zoom *= (lv_obj_get_style_transform_zoom(parent, 0) / 256);
+                parent = lv_obj_get_parent(parent);
+            }
+
+            if(angle != 0 || zoom != LV_IMG_ZOOM_NONE) {
+                angle = -angle;
+                zoom = (256 * 256) / zoom;
+                lv_point_transform(&proc->types.pointer.scroll_throw_vect, angle, zoom, &pivot);
+                lv_point_transform(&proc->types.pointer.scroll_throw_vect_ori, angle, zoom, &pivot);
+            }
+        }
+
     }
 
     /*The reset can be set in the Call the ancestor's event handler function.
index 80c7939..a98df86 100644 (file)
@@ -35,7 +35,11 @@ extern "C" {
  */
 void lv_indev_read_timer_cb(lv_timer_t * timer);
 
-
+/**
+ * Enable or disable one or all input devices (default enabled)
+ * @param indev pointer to an input device or NULL to enable/disable all of them
+ * @param en true to enable, false to disable
+ */
 void lv_indev_enable(lv_indev_t * indev, bool en);
 
 /**
index 96fa2f6..8a36ab3 100644 (file)
@@ -45,12 +45,13 @@ static lv_coord_t elastic_diff(lv_obj_t * scroll_obj, lv_coord_t diff, lv_coord_
 
 void _lv_indev_scroll_handler(_lv_indev_proc_t * proc)
 {
+    if(proc->types.pointer.vect.x == 0 && proc->types.pointer.vect.y == 0) {
+        return;
+    }
+
     lv_obj_t * scroll_obj = proc->types.pointer.scroll_obj;
     /*If there is no scroll object yet try to find one*/
     if(scroll_obj == NULL) {
-        proc->types.pointer.scroll_sum.x += proc->types.pointer.vect.x;
-        proc->types.pointer.scroll_sum.y += proc->types.pointer.vect.y;
-
         scroll_obj = find_scroll_obj(proc);
         if(scroll_obj == NULL) return;
 
@@ -61,34 +62,50 @@ void _lv_indev_scroll_handler(_lv_indev_proc_t * proc)
     }
 
     /*Set new position or scroll if the vector is not zero*/
-    if(proc->types.pointer.vect.x != 0 || proc->types.pointer.vect.y != 0) {
-        lv_coord_t diff_x = 0;
-        lv_coord_t diff_y = 0;
+    int16_t angle = 0;
+    int16_t zoom = 256;
+    lv_obj_t * parent = scroll_obj;
+    while(parent) {
+        angle += lv_obj_get_style_transform_angle(parent, 0);
+        zoom *= (lv_obj_get_style_transform_zoom(parent, 0) / 256);
+        parent = lv_obj_get_parent(parent);
+    }
 
-        if(proc->types.pointer.scroll_dir == LV_DIR_HOR) {
-            lv_coord_t sr = lv_obj_get_scroll_right(scroll_obj);
-            lv_coord_t sl = lv_obj_get_scroll_left(scroll_obj);
-            diff_x = elastic_diff(scroll_obj, proc->types.pointer.vect.x, sl, sr, LV_DIR_HOR);
-        }
-        else {
-            lv_coord_t st = lv_obj_get_scroll_top(scroll_obj);
-            lv_coord_t sb = lv_obj_get_scroll_bottom(scroll_obj);
-            diff_y = elastic_diff(scroll_obj, proc->types.pointer.vect.y, st, sb, LV_DIR_VER);
-        }
+    if(angle != 0 || zoom != LV_IMG_ZOOM_NONE) {
+        angle = -angle;
+        zoom = (256 * 256) / zoom;
+        lv_point_t pivot = { 0, 0 };
+        lv_point_transform(&proc->types.pointer.vect, angle, zoom, &pivot);
+    }
 
-        lv_dir_t scroll_dir = lv_obj_get_scroll_dir(scroll_obj);
-        if((scroll_dir & LV_DIR_LEFT)   == 0 && diff_x > 0) diff_x = 0;
-        if((scroll_dir & LV_DIR_RIGHT)  == 0 && diff_x < 0) diff_x = 0;
-        if((scroll_dir & LV_DIR_TOP)    == 0 && diff_y > 0) diff_y = 0;
-        if((scroll_dir & LV_DIR_BOTTOM) == 0 && diff_y < 0) diff_y = 0;
 
-        /*Respect the scroll limit area*/
-        scroll_limit_diff(proc, &diff_x, &diff_y);
 
-        lv_obj_scroll_by(scroll_obj, diff_x, diff_y, LV_ANIM_OFF);
-        proc->types.pointer.scroll_sum.x += diff_x;
-        proc->types.pointer.scroll_sum.y += diff_y;
+    lv_coord_t diff_x = 0;
+    lv_coord_t diff_y = 0;
+    if(proc->types.pointer.scroll_dir == LV_DIR_HOR) {
+        lv_coord_t sr = lv_obj_get_scroll_right(scroll_obj);
+        lv_coord_t sl = lv_obj_get_scroll_left(scroll_obj);
+        diff_x = elastic_diff(scroll_obj, proc->types.pointer.vect.x, sl, sr, LV_DIR_HOR);
     }
+    else {
+        lv_coord_t st = lv_obj_get_scroll_top(scroll_obj);
+        lv_coord_t sb = lv_obj_get_scroll_bottom(scroll_obj);
+        diff_y = elastic_diff(scroll_obj, proc->types.pointer.vect.y, st, sb, LV_DIR_VER);
+    }
+
+    lv_dir_t scroll_dir = lv_obj_get_scroll_dir(scroll_obj);
+    if((scroll_dir & LV_DIR_LEFT)   == 0 && diff_x > 0) diff_x = 0;
+    if((scroll_dir & LV_DIR_RIGHT)  == 0 && diff_x < 0) diff_x = 0;
+    if((scroll_dir & LV_DIR_TOP)    == 0 && diff_y > 0) diff_y = 0;
+    if((scroll_dir & LV_DIR_BOTTOM) == 0 && diff_y < 0) diff_y = 0;
+
+    /*Respect the scroll limit area*/
+    scroll_limit_diff(proc, &diff_x, &diff_y);
+
+    _lv_obj_scroll_by_raw(scroll_obj, diff_x, diff_y);
+    if(proc->reset_query) return;
+    proc->types.pointer.scroll_sum.x += diff_x;
+    proc->types.pointer.scroll_sum.y += diff_y;
 }
 
 
@@ -98,7 +115,6 @@ void _lv_indev_scroll_throw_handler(_lv_indev_proc_t * proc)
     if(scroll_obj == NULL) return;
     if(proc->types.pointer.scroll_dir == LV_DIR_NONE) return;
 
-
     lv_indev_t * indev_act = lv_indev_get_act();
     lv_coord_t scroll_throw = indev_act->driver->scroll_throw;
 
@@ -258,14 +274,37 @@ static lv_obj_t * find_scroll_obj(_lv_indev_proc_t * proc)
     /*Decide if it's a horizontal or vertical scroll*/
     bool hor_en = false;
     bool ver_en = false;
-    if(LV_ABS(proc->types.pointer.scroll_sum.x) > LV_ABS(proc->types.pointer.scroll_sum.y)) {
-        hor_en = true;
-    }
-    else {
-        ver_en = true;
-    }
+
+    proc->types.pointer.scroll_sum.x += proc->types.pointer.vect.x;
+    proc->types.pointer.scroll_sum.y += proc->types.pointer.vect.y;
 
     while(obj_act) {
+        /*Get the transformed scroll_sum with this object*/
+        int16_t angle = 0;
+        int32_t zoom = 256;
+        lv_point_t pivot = { 0, 0 };
+        lv_obj_t * parent = obj_act;
+        while(parent) {
+            angle += lv_obj_get_style_transform_angle(parent, 0);
+            int32_t zoom_act = lv_obj_get_style_transform_zoom(parent, 0);
+            zoom = (zoom * zoom_act) >> 8;
+            parent = lv_obj_get_parent(parent);
+        }
+
+        lv_point_t obj_scroll_sum = proc->types.pointer.scroll_sum;
+        if(angle != 0 || zoom != LV_IMG_ZOOM_NONE) {
+            angle = -angle;
+            zoom = (256 * 256) / zoom;
+            lv_point_transform(&obj_scroll_sum, angle, zoom, &pivot);
+        }
+
+        if(LV_ABS(obj_scroll_sum.x) > LV_ABS(obj_scroll_sum.y)) {
+            hor_en = true;
+        }
+        else {
+            ver_en = true;
+        }
+
         if(lv_obj_has_flag(obj_act, LV_OBJ_FLAG_SCROLLABLE) == false) {
             /*If this object don't want to chain the scroll to the parent stop searching*/
             if(lv_obj_has_flag(obj_act, LV_OBJ_FLAG_SCROLL_CHAIN_HOR) == false && hor_en) break;
@@ -299,15 +338,15 @@ static lv_obj_t * find_scroll_obj(_lv_indev_proc_t * proc)
          *is propagated to this object it can show at least elastic scroll effect.
          *But if not hor/ver scrollable do not scroll it at all (so it's not a good candidate)*/
         if((st > 0 || sb > 0)  &&
-           ((up_en    && proc->types.pointer.scroll_sum.y >=   scroll_limit) ||
-            (down_en  && proc->types.pointer.scroll_sum.y <= - scroll_limit))) {
+           ((up_en    && obj_scroll_sum.y >=   scroll_limit) ||
+            (down_en  && obj_scroll_sum.y <= - scroll_limit))) {
             obj_candidate = obj_act;
             dir_candidate = LV_DIR_VER;
         }
 
         if((sl > 0 || sr > 0)  &&
-           ((left_en   && proc->types.pointer.scroll_sum.x >=   scroll_limit) ||
-            (right_en  && proc->types.pointer.scroll_sum.x <= - scroll_limit))) {
+           ((left_en   && obj_scroll_sum.x >=   scroll_limit) ||
+            (right_en  && obj_scroll_sum.x <= - scroll_limit))) {
             obj_candidate = obj_act;
             dir_candidate = LV_DIR_HOR;
         }
@@ -317,11 +356,11 @@ static lv_obj_t * find_scroll_obj(_lv_indev_proc_t * proc)
         if(sl <= 0) left_en = false;
         if(sr <= 0) right_en = false;
 
-        /*If the object really can be scrolled into the current direction the use it.*/
-        if((left_en  && proc->types.pointer.scroll_sum.x >=   scroll_limit) ||
-           (right_en && proc->types.pointer.scroll_sum.x <= - scroll_limit) ||
-           (up_en    && proc->types.pointer.scroll_sum.y >=   scroll_limit) ||
-           (down_en  && proc->types.pointer.scroll_sum.y <= - scroll_limit)) {
+        /*If the object really can be scrolled into the current direction then use it.*/
+        if((left_en  && obj_scroll_sum.x >=   scroll_limit) ||
+           (right_en && obj_scroll_sum.x <= - scroll_limit) ||
+           (up_en    && obj_scroll_sum.y >=   scroll_limit) ||
+           (down_en  && obj_scroll_sum.y <= - scroll_limit)) {
             proc->types.pointer.scroll_dir = hor_en ? LV_DIR_HOR : LV_DIR_VER;
             break;
         }
index 66e5c72..d7bd045 100644 (file)
     #include "../draw/stm32_dma2d/lv_gpu_stm32_dma2d.h"
 #endif
 
+#if LV_USE_GPU_RA6M3_G2D
+    #include "../draw/renesas/lv_gpu_d2_ra6m3.h"
+#endif
+
+#if LV_USE_GPU_SWM341_DMA2D
+    #include "../draw/swm341_dma2d/lv_gpu_swm341_dma2d.h"
+#endif
+
 #if LV_USE_GPU_NXP_PXP && LV_USE_GPU_NXP_PXP_AUTO_INIT
-    #include "../gpu/lv_gpu_nxp_pxp.h"
-    #include "../gpu/lv_gpu_nxp_pxp_osa.h"
+    #include "../draw/nxp/pxp/lv_gpu_nxp_pxp.h"
 #endif
 
 /*********************
@@ -41,7 +48,6 @@
 #define MY_CLASS &lv_obj_class
 #define LV_OBJ_DEF_WIDTH    (LV_DPX(100))
 #define LV_OBJ_DEF_HEIGHT   (LV_DPX(50))
-#define GRID_DEBUG          0   /*Draw rectangles on grid cells*/
 #define STYLE_TRANSITION_MAX 32
 
 /**********************
@@ -117,11 +123,18 @@ void lv_init(void)
     lv_draw_stm32_dma2d_init();
 #endif
 
+#if LV_USE_GPU_RA6M3_G2D
+    /*Initialize G2D GPU*/
+    lv_draw_ra6m3_g2d_init();
+#endif
+
+#if LV_USE_GPU_SWM341_DMA2D
+    /*Initialize DMA2D GPU*/
+    lv_draw_swm341_dma2d_init();
+#endif
+
 #if LV_USE_GPU_NXP_PXP && LV_USE_GPU_NXP_PXP_AUTO_INIT
-    if(lv_gpu_nxp_pxp_init(&pxp_default_cfg) != LV_RES_OK) {
-        LV_LOG_ERROR("PXP init error. STOP.\n");
-        for(; ;) ;
-    }
+    PXP_COND_STOP(!lv_gpu_nxp_pxp_init(), "PXP init failed.");
 #endif
 
     _lv_obj_style_init();
@@ -195,19 +208,6 @@ void lv_deinit(void)
     lv_log_register_print_cb(NULL);
 #endif
 }
-#else
-void lv_deinit(void)
-{
-
-    lv_disp_set_default(NULL);
-    lv_initialized = false;
-    LV_LOG_INFO("lv_deinit done");
-    
-#if LV_USE_LOG
-    lv_log_register_print_cb(NULL);
-#endif
-}
-
 #endif
 
 lv_obj_t * lv_obj_create(lv_obj_t * parent)
@@ -278,6 +278,7 @@ void lv_obj_clear_flag(lv_obj_t * obj, lv_obj_flag_t f)
     if((was_on_layout != lv_obj_is_layout_positioned(obj)) || (f & (LV_OBJ_FLAG_LAYOUT_1 |  LV_OBJ_FLAG_LAYOUT_2))) {
         lv_obj_mark_layout_as_dirty(lv_obj_get_parent(obj));
     }
+
 }
 
 void lv_obj_add_state(lv_obj_t * obj, lv_state_t state)
@@ -502,17 +503,6 @@ static void lv_obj_draw(lv_event_t * e)
             return;
         }
 
-#if LV_DRAW_COMPLEX
-        if(lv_obj_get_style_blend_mode(obj, LV_PART_MAIN) != LV_BLEND_MODE_NORMAL) {
-            info->res = LV_COVER_RES_NOT_COVER;
-            return;
-        }
-#endif
-        if(lv_obj_get_style_opa(obj, LV_PART_MAIN) < LV_OPA_MAX) {
-            info->res = LV_COVER_RES_NOT_COVER;
-            return;
-        }
-
         info->res = LV_COVER_RES_COVER;
 
     }
@@ -544,7 +534,6 @@ static void lv_obj_draw(lv_event_t * e)
         part_dsc.part = LV_PART_MAIN;
         lv_event_send(obj, LV_EVENT_DRAW_PART_BEGIN, &part_dsc);
 
-
 #if LV_DRAW_COMPLEX
         /*With clip corner enabled draw the bg img separately to make it clipped*/
         bool clip_corner = (lv_obj_get_style_clip_corner(obj, LV_PART_MAIN) && draw_dsc.radius != 0) ? true : false;
@@ -859,9 +848,8 @@ static void lv_obj_event(const lv_obj_class_t * class_p, lv_event_t * e)
         }
     }
     else if(code == LV_EVENT_REFR_EXT_DRAW_SIZE) {
-        lv_coord_t * s = lv_event_get_param(e);
         lv_coord_t d = lv_obj_calculate_ext_draw_size(obj, LV_PART_MAIN);
-        *s = LV_MAX(*s, d);
+        lv_event_set_ext_draw_size(e, d);
     }
     else if(code == LV_EVENT_DRAW_MAIN || code == LV_EVENT_DRAW_POST || code == LV_EVENT_COVER_CHECK) {
         lv_obj_draw(e);
@@ -899,7 +887,7 @@ static void lv_obj_set_state(lv_obj_t * obj, lv_state_t new_state)
         if(obj_style->is_trans) continue;
 
         lv_style_value_t v;
-        if(lv_style_get_prop_inlined(obj_style->style, LV_STYLE_TRANSITION, &v) == false) continue;
+        if(lv_style_get_prop_inlined(obj_style->style, LV_STYLE_TRANSITION, &v) != LV_STYLE_RES_FOUND) continue;
         const lv_style_transition_dsc_t * tr = v.ptr;
 
         /*Add the props to the set if not added yet or added but with smaller weight*/
index bc6f3e3..8547bc0 100644 (file)
@@ -63,7 +63,7 @@ typedef uint16_t lv_state_t;
  * The possible parts of widgets.
  * The parts can be considered as the internal building block of the widgets.
  * E.g. slider = background + indicator + knob
- * Note every part is used by every widget
+ * Not all parts are used by every widget
  */
 enum {
     LV_PART_MAIN         = 0x000000,   /**< A background like rectangle*/
@@ -167,7 +167,8 @@ typedef struct {
     lv_scroll_snap_t scroll_snap_x : 2;     /**< Where to align the snappable children horizontally*/
     lv_scroll_snap_t scroll_snap_y : 2;     /**< Where to align the snappable children vertically*/
     lv_dir_t scroll_dir : 4;                /**< The allowed scroll direction(s)*/
-    uint8_t event_dsc_cnt;                  /**< Number of event callbacks stored in `event_dsc` array*/
+    uint8_t event_dsc_cnt : 6;              /**< Number of event callbacks stored in `event_dsc` array*/
+    uint8_t layer_type : 2;    /**< Cache the layer type here. Element of @lv_intermediate_layer_type_t */
 } _lv_obj_spec_attr_t;
 
 typedef struct _lv_obj_t {
index 174453e..fe20448 100644 (file)
@@ -56,6 +56,7 @@ lv_obj_t * lv_obj_class_create_obj(const lv_obj_class_t * class_p, lv_obj_t * pa
         lv_disp_t * disp = lv_disp_get_default();
         if(!disp) {
             LV_LOG_WARN("No display created yet. No place to assign the new screen");
+            lv_mem_free(obj);
             return NULL;
         }
 
index db7c6ea..f2428cd 100644 (file)
 
 void lv_obj_init_draw_rect_dsc(lv_obj_t * obj, uint32_t part, lv_draw_rect_dsc_t * draw_dsc)
 {
+    lv_opa_t opa = LV_OPA_COVER;
+    if(part != LV_PART_MAIN) {
+        opa = lv_obj_get_style_opa(obj, part);
+        if(opa <= LV_OPA_MIN) {
+            draw_dsc->bg_opa = LV_OPA_TRANSP;
+            draw_dsc->bg_img_opa = LV_OPA_TRANSP;
+            draw_dsc->border_opa = LV_OPA_TRANSP;
+            draw_dsc->outline_opa = LV_OPA_TRANSP;
+            draw_dsc->shadow_opa = LV_OPA_TRANSP;
+            return;
+        }
+    }
 
 #if LV_DRAW_COMPLEX
-    draw_dsc->radius = lv_obj_get_style_radius(obj, part);
-
-    lv_opa_t main_opa = part != LV_PART_MAIN ? lv_obj_get_style_opa(obj, part) : LV_OPA_COVER;
-    lv_opa_t opa = lv_obj_get_style_opa(obj, part);
-    if(opa <= LV_OPA_MIN || main_opa <= LV_OPA_MIN) {
-        draw_dsc->bg_opa = LV_OPA_TRANSP;
-        draw_dsc->border_opa = LV_OPA_TRANSP;
-        draw_dsc->shadow_opa = LV_OPA_TRANSP;
-        draw_dsc->outline_opa = LV_OPA_TRANSP;
-        return;
-    }
+    if(part != LV_PART_MAIN) draw_dsc->blend_mode = lv_obj_get_style_blend_mode(obj, part);
 
-    draw_dsc->blend_mode = lv_obj_get_style_blend_mode(obj, part);
+    draw_dsc->radius = lv_obj_get_style_radius(obj, part);
 
     if(draw_dsc->bg_opa != LV_OPA_TRANSP) {
         draw_dsc->bg_opa = lv_obj_get_style_bg_opa(obj, part);
@@ -130,17 +132,6 @@ void lv_obj_init_draw_rect_dsc(lv_obj_t * obj, uint32_t part, lv_draw_rect_dsc_t
         }
     }
 
-    if(main_opa < LV_OPA_MAX) {
-        opa = (uint16_t)((uint16_t) main_opa * opa) >> 8;
-    }
-
-    if(opa < LV_OPA_MAX) {
-        draw_dsc->bg_opa = (uint16_t)((uint16_t)draw_dsc->bg_opa * opa) >> 8;
-        draw_dsc->bg_img_opa = (uint16_t)((uint16_t)draw_dsc->bg_img_opa * opa) >> 8;
-        draw_dsc->border_opa = (uint16_t)((uint16_t)draw_dsc->border_opa * opa) >> 8;
-        draw_dsc->shadow_opa = (uint16_t)((uint16_t)draw_dsc->shadow_opa * opa) >> 8;
-        draw_dsc->outline_opa = (uint16_t)((uint16_t)draw_dsc->outline_opa * opa) >> 8;
-    }
 #else /*LV_DRAW_COMPLEX*/
     if(draw_dsc->bg_opa != LV_OPA_TRANSP) {
         draw_dsc->bg_opa = lv_obj_get_style_bg_opa(obj, part);
@@ -189,6 +180,16 @@ void lv_obj_init_draw_rect_dsc(lv_obj_t * obj, uint32_t part, lv_draw_rect_dsc_t
         }
     }
 #endif
+
+    if(part != LV_PART_MAIN) {
+        if(opa < LV_OPA_MAX) {
+            draw_dsc->bg_opa = (opa * draw_dsc->shadow_opa) >> 8;
+            draw_dsc->bg_img_opa = (opa * draw_dsc->shadow_opa) >> 8;
+            draw_dsc->border_opa = (opa * draw_dsc->shadow_opa) >> 8;
+            draw_dsc->outline_opa = (opa * draw_dsc->shadow_opa) >> 8;
+            draw_dsc->shadow_opa = (opa * draw_dsc->shadow_opa) >> 8;
+        }
+    }
 }
 
 void lv_obj_init_draw_label_dsc(lv_obj_t * obj, uint32_t part, lv_draw_label_dsc_t * draw_dsc)
@@ -196,18 +197,23 @@ void lv_obj_init_draw_label_dsc(lv_obj_t * obj, uint32_t part, lv_draw_label_dsc
     draw_dsc->opa = lv_obj_get_style_text_opa(obj, part);
     if(draw_dsc->opa <= LV_OPA_MIN) return;
 
-    lv_opa_t opa = lv_obj_get_style_opa(obj, part);
-    if(opa < LV_OPA_MAX) {
-        draw_dsc->opa = (uint16_t)((uint16_t)draw_dsc->opa * opa) >> 8;
+    if(part != LV_PART_MAIN) {
+        lv_opa_t opa = lv_obj_get_style_opa(obj, part);
+        if(opa <= LV_OPA_MIN) {
+            draw_dsc->opa = LV_OPA_TRANSP;
+            return;
+        }
+        if(opa < LV_OPA_MAX) {
+            draw_dsc->opa = (opa * draw_dsc->opa) >> 8;
+        }
     }
-    if(draw_dsc->opa <= LV_OPA_MIN) return;
 
     draw_dsc->color = lv_obj_get_style_text_color_filtered(obj, part);
     draw_dsc->letter_space = lv_obj_get_style_text_letter_space(obj, part);
     draw_dsc->line_space = lv_obj_get_style_text_line_space(obj, part);
     draw_dsc->decor = lv_obj_get_style_text_decor(obj, part);
 #if LV_DRAW_COMPLEX
-    draw_dsc->blend_mode = lv_obj_get_style_blend_mode(obj, part);
+    if(part != LV_PART_MAIN) draw_dsc->blend_mode = lv_obj_get_style_blend_mode(obj, part);
 #endif
 
     draw_dsc->font = lv_obj_get_style_text_font(obj, part);
@@ -222,13 +228,18 @@ void lv_obj_init_draw_label_dsc(lv_obj_t * obj, uint32_t part, lv_draw_label_dsc
 void lv_obj_init_draw_img_dsc(lv_obj_t * obj, uint32_t part, lv_draw_img_dsc_t * draw_dsc)
 {
     draw_dsc->opa = lv_obj_get_style_img_opa(obj, part);
-    if(draw_dsc->opa <= LV_OPA_MIN)  return;
+    if(draw_dsc->opa <= LV_OPA_MIN) return;
 
-    lv_opa_t opa_scale = lv_obj_get_style_opa(obj, part);
-    if(opa_scale < LV_OPA_MAX) {
-        draw_dsc->opa = (uint16_t)((uint16_t)draw_dsc->opa * opa_scale) >> 8;
+    if(part != LV_PART_MAIN) {
+        lv_opa_t opa = lv_obj_get_style_opa(obj, part);
+        if(opa <= LV_OPA_MIN) {
+            draw_dsc->opa = LV_OPA_TRANSP;
+            return;
+        }
+        if(opa < LV_OPA_MAX) {
+            draw_dsc->opa = (opa * draw_dsc->opa) >> 8;
+        }
     }
-    if(draw_dsc->opa <= LV_OPA_MIN)  return;
 
     draw_dsc->angle = 0;
     draw_dsc->zoom = LV_IMG_ZOOM_NONE;
@@ -240,23 +251,28 @@ void lv_obj_init_draw_img_dsc(lv_obj_t * obj, uint32_t part, lv_draw_img_dsc_t *
         draw_dsc->recolor = lv_obj_get_style_img_recolor_filtered(obj, part);
     }
 #if LV_DRAW_COMPLEX
-    draw_dsc->blend_mode = lv_obj_get_style_blend_mode(obj, part);
+    if(part != LV_PART_MAIN) draw_dsc->blend_mode = lv_obj_get_style_blend_mode(obj, part);
 #endif
 }
 
 void lv_obj_init_draw_line_dsc(lv_obj_t * obj, uint32_t part, lv_draw_line_dsc_t * draw_dsc)
 {
-    draw_dsc->width = lv_obj_get_style_line_width(obj, part);
-    if(draw_dsc->width == 0) return;
-
     draw_dsc->opa = lv_obj_get_style_line_opa(obj, part);
     if(draw_dsc->opa <= LV_OPA_MIN)  return;
 
-    lv_opa_t opa = lv_obj_get_style_opa(obj, part);
-    if(opa < LV_OPA_MAX) {
-        draw_dsc->opa = (uint16_t)((uint16_t)draw_dsc->opa * opa) >> 8;
+    if(part != LV_PART_MAIN) {
+        lv_opa_t opa = lv_obj_get_style_opa(obj, part);
+        if(opa <= LV_OPA_MIN) {
+            draw_dsc->opa = LV_OPA_TRANSP;
+            return;
+        }
+        if(opa < LV_OPA_MAX) {
+            draw_dsc->opa = (opa * draw_dsc->opa) >> 8;
+        }
     }
-    if(draw_dsc->opa <= LV_OPA_MIN)  return;
+
+    draw_dsc->width = lv_obj_get_style_line_width(obj, part);
+    if(draw_dsc->width == 0) return;
 
     draw_dsc->color = lv_obj_get_style_line_color_filtered(obj, part);
 
@@ -269,7 +285,7 @@ void lv_obj_init_draw_line_dsc(lv_obj_t * obj, uint32_t part, lv_draw_line_dsc_t
     draw_dsc->round_end = draw_dsc->round_start;
 
 #if LV_DRAW_COMPLEX
-    draw_dsc->blend_mode = lv_obj_get_style_blend_mode(obj, part);
+    if(part != LV_PART_MAIN) draw_dsc->blend_mode = lv_obj_get_style_blend_mode(obj, part);
 #endif
 }
 
@@ -281,11 +297,16 @@ void lv_obj_init_draw_arc_dsc(lv_obj_t * obj, uint32_t part, lv_draw_arc_dsc_t *
     draw_dsc->opa = lv_obj_get_style_arc_opa(obj, part);
     if(draw_dsc->opa <= LV_OPA_MIN)  return;
 
-    lv_opa_t opa = lv_obj_get_style_opa(obj, part);
-    if(opa < LV_OPA_MAX) {
-        draw_dsc->opa = (uint16_t)((uint16_t)draw_dsc->opa * opa) >> 8;
+    if(part != LV_PART_MAIN) {
+        lv_opa_t opa = lv_obj_get_style_opa(obj, part);
+        if(opa <= LV_OPA_MIN) {
+            draw_dsc->opa = LV_OPA_TRANSP;
+            return;
+        }
+        if(opa < LV_OPA_MAX) {
+            draw_dsc->opa = (opa * draw_dsc->opa) >> 8;
+        }
     }
-    if(draw_dsc->opa <= LV_OPA_MIN)  return;
 
     draw_dsc->color = lv_obj_get_style_arc_color_filtered(obj, part);
     draw_dsc->img_src = lv_obj_get_style_arc_img_src(obj, part);
@@ -293,7 +314,7 @@ void lv_obj_init_draw_arc_dsc(lv_obj_t * obj, uint32_t part, lv_draw_arc_dsc_t *
     draw_dsc->rounded = lv_obj_get_style_arc_rounded(obj, part);
 
 #if LV_DRAW_COMPLEX
-    draw_dsc->blend_mode = lv_obj_get_style_blend_mode(obj, part);
+    if(part != LV_PART_MAIN) draw_dsc->blend_mode = lv_obj_get_style_blend_mode(obj, part);
 #endif
 }
 
@@ -373,6 +394,13 @@ lv_coord_t _lv_obj_get_ext_draw_size(const lv_obj_t * obj)
     else return 0;
 }
 
+lv_layer_type_t _lv_obj_get_layer_type(const lv_obj_t * obj)
+{
+
+    if(obj->spec_attr) return obj->spec_attr->layer_type;
+    else return LV_LAYER_TYPE_NONE;
+}
+
 /**********************
  *   STATIC FUNCTIONS
  **********************/
index 0632165..3f9d0f3 100644 (file)
@@ -33,6 +33,12 @@ typedef enum {
     LV_COVER_RES_MASKED     = 2,
 } lv_cover_res_t;
 
+typedef enum {
+    LV_LAYER_TYPE_NONE,
+    LV_LAYER_TYPE_SIMPLE,
+    LV_LAYER_TYPE_TRANSFORM,
+} lv_layer_type_t;
+
 typedef struct {
     lv_draw_ctx_t * draw_ctx;           /**< Draw context*/
     const struct _lv_obj_class_t * class_p;     /**< The class that sent the event */
@@ -50,14 +56,14 @@ typedef struct {
     arc_dsc;       /**< A draw descriptor that can be modified to changed what LVGL will draw. Set only for arc-like parts*/
     const lv_point_t *
     p1;              /**< A point calculated during drawing. E.g. a point of chart or the center of an arc.*/
-    const lv_point_t * p2;              /**< A point calculated during drawing. E.g. a point of chart.*/
+    const lv_point_t * p2;        /**< A point calculated during drawing. E.g. a point of chart.*/
     char * text;                  /**< A text calculated during drawing. Can be modified. E.g. tick labels on a chart axis.*/
-    uint32_t text_length;               /**< Size of the text buffer containing null-terminated text string calculated during drawing.*/
-    uint32_t part;                      /**< The current part for which the event is sent*/
-    uint32_t id;                        /**< The index of the part. E.g. a button's index on button matrix or table cell index.*/
-    lv_coord_t radius;                  /**< E.g. the radius of an arc (not the corner radius).*/
-    int32_t value;                      /**< A value calculated during drawing. E.g. Chart's tick line value.*/
-    const void * sub_part_ptr;          /**< A pointer the identifies something in the part. E.g. chart series. */
+    uint32_t text_length;         /**< Size of the text buffer containing null-terminated text string calculated during drawing.*/
+    uint32_t part;                /**< The current part for which the event is sent*/
+    uint32_t id;                  /**< The index of the part. E.g. a button's index on button matrix or table cell index.*/
+    lv_coord_t radius;            /**< E.g. the radius of an arc (not the corner radius).*/
+    int32_t value;                /**< A value calculated during drawing. E.g. Chart's tick line value.*/
+    const void * sub_part_ptr;    /**< A pointer the identifies something in the part. E.g. chart series. */
 } lv_obj_draw_part_dsc_t;
 
 /**********************
@@ -66,11 +72,11 @@ typedef struct {
 
 /**
  * Initialize a rectangle draw descriptor from an object's styles in its current state
- * @param obj pointer to an object
- * @param part part of the object. E.g.  `LV_PART_MAIN`, `LV_PART_SCROLLBAR`, `LV_PART_KNOB`, etc
- * @param draw_dsc the descriptor to initialize.
- *                 If an `..._opa` field is set to `LV_OPA_TRANSP` the related properties won't be initialized.
- *                 Should be initialized with `lv_draw_rect_dsc_init(draw_dsc)`.
+ * @param obj       pointer to an object
+ * @param part      part of the object, e.g. `LV_PART_MAIN`, `LV_PART_SCROLLBAR`, `LV_PART_KNOB`, etc
+ * @param draw_dsc  the descriptor to initialize.
+ *                  If an `..._opa` field is set to `LV_OPA_TRANSP` the related properties won't be initialized.
+ *                  Should be initialized with `lv_draw_rect_dsc_init(draw_dsc)`.
  * @note Only the relevant fields will be set.
  *       E.g. if `border width == 0` the other border properties won't be evaluated.
  */
@@ -78,20 +84,20 @@ void lv_obj_init_draw_rect_dsc(struct _lv_obj_t * obj, uint32_t part, lv_draw_re
 
 /**
  * Initialize a label draw descriptor from an object's styles in its current state
- * @param obj pointer to an object
- * @param part part of the object. E.g.  `LV_PART_MAIN`, `LV_PART_SCROLLBAR`, `LV_PART_KNOB`, etc
- * @param draw_dsc the descriptor to initialize.
- *                 If the `opa` field is set to or the property is equal to `LV_OPA_TRANSP` the rest won't be initialized.
- *                 Should be initialized with `lv_draw_label_dsc_init(draw_dsc)`.
+ * @param obj       pointer to an object
+ * @param part      part of the object, e.g. `LV_PART_MAIN`, `LV_PART_SCROLLBAR`, `LV_PART_KNOB`, etc
+ * @param draw_dsc  the descriptor to initialize.
+ *                  If the `opa` field is set to or the property is equal to `LV_OPA_TRANSP` the rest won't be initialized.
+ *                  Should be initialized with `lv_draw_label_dsc_init(draw_dsc)`.
  */
 void lv_obj_init_draw_label_dsc(struct _lv_obj_t * obj, uint32_t part, lv_draw_label_dsc_t * draw_dsc);
 
 /**
  * Initialize an image draw descriptor from an object's styles in its current state
- * @param obj pointer to an object
- * @param part part of the object. E.g.  `LV_PART_MAIN`, `LV_PART_SCROLLBAR`, `LV_PART_KNOB`, etc
- * @param draw_dsc the descriptor to initialize.
- *                 Should be initialized with `lv_draw_image_dsc_init(draw_dsc)`.
+ * @param obj       pointer to an object
+ * @param part      part of the object, e.g. `LV_PART_MAIN`, `LV_PART_SCROLLBAR`, `LV_PART_KNOB`, etc
+ * @param draw_dsc  the descriptor to initialize.
+ *                  Should be initialized with `lv_draw_image_dsc_init(draw_dsc)`.
  */
 void lv_obj_init_draw_img_dsc(struct _lv_obj_t * obj, uint32_t part, lv_draw_img_dsc_t * draw_dsc);
 
@@ -99,33 +105,33 @@ void lv_obj_init_draw_img_dsc(struct _lv_obj_t * obj, uint32_t part, lv_draw_img
 /**
  * Initialize a line draw descriptor from an object's styles in its current state
  * @param obj pointer to an object
- * @param part part of the object. E.g.  `LV_PART_MAIN`, `LV_PART_SCROLLBAR`, `LV_PART_KNOB`, etc
- * @param draw_dsc the descriptor to initialize.
- *                 Should be initialized with `lv_draw_line_dsc_init(draw_dsc)`.
+ * @param part      part of the object, e.g. `LV_PART_MAIN`, `LV_PART_SCROLLBAR`, `LV_PART_KNOB`, etc
+ * @param draw_dsc  the descriptor to initialize.
+ *                  Should be initialized with `lv_draw_line_dsc_init(draw_dsc)`.
  */
 void lv_obj_init_draw_line_dsc(struct _lv_obj_t * obj, uint32_t part, lv_draw_line_dsc_t * draw_dsc);
 
 /**
  * Initialize an arc draw descriptor from an object's styles in its current state
- * @param obj pointer to an object
- * @param part part of the object. E.g.  `LV_PART_MAIN`, `LV_PART_SCROLLBAR`, `LV_PART_KNOB`, etc
- * @param draw_dsc the descriptor to initialize.
- *                 Should be initialized with `lv_draw_arc_dsc_init(draw_dsc)`.
+ * @param obj       pointer to an object
+ * @param part      part of the object, e.g. `LV_PART_MAIN`, `LV_PART_SCROLLBAR`, `LV_PART_KNOB`, etc
+ * @param draw_dsc  the descriptor to initialize.
+ *                  Should be initialized with `lv_draw_arc_dsc_init(draw_dsc)`.
  */
 void lv_obj_init_draw_arc_dsc(struct _lv_obj_t * obj, uint32_t part, lv_draw_arc_dsc_t * draw_dsc);
 
 /**
  * Get the required extra size (around the object's part) to draw shadow, outline, value etc.
- * @param obj pointer to an object
- * @param part part of the object
- * @return the extra size required around the object
+ * @param obj       pointer to an object
+ * @param part      part of the object
+ * @return          the extra size required around the object
  */
 lv_coord_t lv_obj_calculate_ext_draw_size(struct _lv_obj_t * obj, uint32_t part);
 
 /**
  * Initialize a draw descriptor used in events.
- * @param dsc pointer to a descriptor. Later it should be passed as parameter to an `LV_EEVNT_DRAW_PART_BEGIN/END` event.
- * @param draw the current draw context. (usually returned by `lv_event_get_draw_ctx(e)`)
+ * @param dsc       pointer to a descriptor. Later it should be passed as parameter to an `LV_EVENT_DRAW_PART_BEGIN/END` event.
+ * @param           draw the current draw context. (usually returned by `lv_event_get_draw_ctx(e)`)
  */
 void lv_obj_draw_dsc_init(lv_obj_draw_part_dsc_t * dsc, lv_draw_ctx_t * draw_ctx);
 
@@ -141,17 +147,20 @@ bool lv_obj_draw_part_check_type(lv_obj_draw_part_dsc_t * dsc, const struct _lv_
 /**
  * Send a 'LV_EVENT_REFR_EXT_DRAW_SIZE' Call the ancestor's event handler to the object to refresh the value of the extended draw size.
  * The result will be saved in `obj`.
- * @param obj pointer to an object
+ * @param obj       pointer to an object
  */
 void lv_obj_refresh_ext_draw_size(struct _lv_obj_t * obj);
 
 /**
  * Get the extended draw area of an object.
- * @param obj pointer to an object
- * @return the size extended draw area around the real coordinates
+ * @param obj       pointer to an object
+ * @return          the size extended draw area around the real coordinates
  */
 lv_coord_t _lv_obj_get_ext_draw_size(const struct _lv_obj_t * obj);
 
+
+lv_layer_type_t _lv_obj_get_layer_type(const struct _lv_obj_t * obj);
+
 /**********************
  *      MACROS
  **********************/
index 92d4bc4..5fc7db9 100644 (file)
@@ -26,6 +26,7 @@
 static lv_coord_t calc_content_width(lv_obj_t * obj);
 static lv_coord_t calc_content_height(lv_obj_t * obj);
 static void layout_update_core(lv_obj_t * obj);
+static void transform_point(const lv_obj_t * obj, lv_point_t * p, bool inv);
 
 /**********************
  *  STATIC VARIABLES
@@ -206,6 +207,8 @@ bool lv_obj_refr_size(lv_obj_t * obj)
     bool on2 = _lv_area_is_in(&obj->coords, &parent_fit_area, 0);
     if(on1 || (!on1 && on2)) lv_obj_scrollbar_invalidate(parent);
 
+    lv_obj_refresh_ext_draw_size(obj);
+
     return true;
 }
 
@@ -627,6 +630,7 @@ void lv_obj_refr_pos(lv_obj_t * obj)
 {
     if(lv_obj_is_layout_positioned(obj)) return;
 
+
     lv_obj_t * parent = lv_obj_get_parent(obj);
     lv_coord_t x = lv_obj_get_style_x(obj, LV_PART_MAIN);
     lv_coord_t y = lv_obj_get_style_y(obj, LV_PART_MAIN);
@@ -791,28 +795,63 @@ void lv_obj_move_children_by(lv_obj_t * obj, lv_coord_t x_diff, lv_coord_t y_dif
     }
 }
 
+void lv_obj_transform_point(const lv_obj_t * obj, lv_point_t * p, bool recursive, bool inv)
+{
+    if(obj) {
+        lv_layer_type_t layer_type = _lv_obj_get_layer_type(obj);
+        bool do_tranf = layer_type == LV_LAYER_TYPE_TRANSFORM;
+        if(inv) {
+            if(recursive) lv_obj_transform_point(lv_obj_get_parent(obj), p, recursive, inv);
+            if(do_tranf) transform_point(obj, p, inv);
+        }
+        else {
+            if(do_tranf) transform_point(obj, p, inv);
+            if(recursive) lv_obj_transform_point(lv_obj_get_parent(obj), p, recursive, inv);
+        }
+    }
+}
+
+void lv_obj_get_transformed_area(const lv_obj_t * obj, lv_area_t * area, bool recursive,
+                                 bool inv)
+{
+    lv_point_t p[4] = {
+        {area->x1, area->y1},
+        {area->x1, area->y2},
+        {area->x2, area->y1},
+        {area->x2, area->y2},
+    };
+
+    lv_obj_transform_point(obj, &p[0], recursive, inv);
+    lv_obj_transform_point(obj, &p[1], recursive, inv);
+    lv_obj_transform_point(obj, &p[2], recursive, inv);
+    lv_obj_transform_point(obj, &p[3], recursive, inv);
+
+    area->x1 = LV_MIN4(p[0].x, p[1].x, p[2].x, p[3].x);
+    area->x2 = LV_MAX4(p[0].x, p[1].x, p[2].x, p[3].x);
+    area->y1 = LV_MIN4(p[0].y, p[1].y, p[2].y, p[3].y);
+    area->y2 = LV_MAX4(p[0].y, p[1].y, p[2].y, p[3].y);
+    lv_area_increase(area, 5, 5);
+}
+
 
 void lv_obj_invalidate_area(const lv_obj_t * obj, const lv_area_t * area)
 {
     LV_ASSERT_OBJ(obj, MY_CLASS);
 
+    lv_disp_t * disp   = lv_obj_get_disp(obj);
+    if(!lv_disp_is_invalidation_enabled(disp)) return;
+
     lv_area_t area_tmp;
     lv_area_copy(&area_tmp, area);
-    bool visible = lv_obj_area_is_visible(obj, &area_tmp);
+    if(!lv_obj_area_is_visible(obj, &area_tmp)) return;
 
-    if(visible) _lv_inv_area(lv_obj_get_disp(obj), &area_tmp);
+    _lv_inv_area(lv_obj_get_disp(obj),  &area_tmp);
 }
 
 void lv_obj_invalidate(const lv_obj_t * obj)
 {
     LV_ASSERT_OBJ(obj, MY_CLASS);
 
-    /*If the object has overflow visible it can be drawn anywhere on its parent
-     *It needs to be checked recursively*/
-    while(lv_obj_get_parent(obj) && lv_obj_has_flag(obj, LV_OBJ_FLAG_OVERFLOW_VISIBLE)) {
-        obj = lv_obj_get_parent(obj);
-    }
-
     /*Truncate the area to the object*/
     lv_area_t obj_coords;
     lv_coord_t ext_size = _lv_obj_get_ext_draw_size(obj);
@@ -841,7 +880,7 @@ bool lv_obj_area_is_visible(const lv_obj_t * obj, lv_area_t * area)
     }
 
     /*Truncate the area to the object*/
-    if(!lv_obj_has_flag(obj, LV_OBJ_FLAG_OVERFLOW_VISIBLE)) {
+    if(!lv_obj_has_flag_any(obj, LV_OBJ_FLAG_OVERFLOW_VISIBLE)) {
         lv_area_t obj_coords;
         lv_coord_t ext_size = _lv_obj_get_ext_draw_size(obj);
         lv_area_copy(&obj_coords, &obj->coords);
@@ -854,6 +893,9 @@ bool lv_obj_area_is_visible(const lv_obj_t * obj, lv_area_t * area)
         if(!_lv_area_intersect(area, area, &obj_coords)) return false;
     }
 
+    lv_obj_get_transformed_area(obj, area, true, false);
+
+
     /*Truncate recursively to the parents*/
     lv_obj_t * par = lv_obj_get_parent(obj);
     while(par != NULL) {
@@ -861,8 +903,10 @@ bool lv_obj_area_is_visible(const lv_obj_t * obj, lv_area_t * area)
         if(lv_obj_has_flag(par, LV_OBJ_FLAG_HIDDEN)) return false;
 
         /*Truncate to the parent and if no common parts break*/
-        if(!lv_obj_has_flag(par, LV_OBJ_FLAG_OVERFLOW_VISIBLE)) {
-            if(!_lv_area_intersect(area, area, &par->coords)) return false;
+        if(!lv_obj_has_flag_any(par, LV_OBJ_FLAG_OVERFLOW_VISIBLE)) {
+            lv_area_t par_area = par->coords;
+            lv_obj_get_transformed_area(par, &par_area, true, false);
+            if(!_lv_area_intersect(area, area, &par_area)) return false;
         }
 
         par = lv_obj_get_parent(par);
@@ -1108,3 +1152,33 @@ static void layout_update_core(lv_obj_t * obj)
         }
     }
 }
+
+static void transform_point(const lv_obj_t * obj, lv_point_t * p, bool inv)
+{
+    int16_t angle = lv_obj_get_style_transform_angle(obj, 0);
+    int16_t zoom = lv_obj_get_style_transform_zoom(obj, 0);
+
+    if(angle == 0 && zoom == LV_IMG_ZOOM_NONE) return;
+
+    lv_point_t pivot = {
+        .x = lv_obj_get_style_transform_pivot_x(obj, 0),
+        .y = lv_obj_get_style_transform_pivot_y(obj, 0)
+    };
+
+    if(LV_COORD_IS_PCT(pivot.x)) {
+        pivot.x = (LV_COORD_GET_PCT(pivot.x) * lv_area_get_width(&obj->coords)) / 100;
+    }
+    if(LV_COORD_IS_PCT(pivot.y)) {
+        pivot.y = (LV_COORD_GET_PCT(pivot.y) * lv_area_get_height(&obj->coords)) / 100;
+    }
+
+    pivot.x = obj->coords.x1 + pivot.x;
+    pivot.y = obj->coords.y1 + pivot.y;
+
+    if(inv) {
+        angle = -angle;
+        zoom = (256 * 256) / zoom;
+    }
+
+    lv_point_transform(p, angle, zoom, &pivot);
+}
index 6013039..d20ee96 100644 (file)
@@ -348,6 +348,24 @@ void lv_obj_move_to(struct _lv_obj_t * obj, lv_coord_t x, lv_coord_t y);
 
 void lv_obj_move_children_by(struct _lv_obj_t * obj, lv_coord_t x_diff, lv_coord_t y_diff, bool ignore_floating);
 
+/**
+ * Transform a point using the angle and zoom style properties of an object
+ * @param obj           pointer to an object whose style properties should be used
+ * @param p             a point to transform, the result will be written back here too
+ * @param recursive     consider the transformation properties of the parents too
+ * @param inv           do the inverse of the transformation (-angle and 1/zoom)
+ */
+void lv_obj_transform_point(const struct _lv_obj_t * obj, lv_point_t * p, bool recursive, bool inv);
+
+/**
+ * Transform an area using the angle and zoom style properties of an object
+ * @param obj           pointer to an object whose style properties should be used
+ * @param area          an area to transform, the result will be written back here too
+ * @param recursive     consider the transformation properties of the parents too
+ * @param inv           do the inverse of the transformation (-angle and 1/zoom)
+ */
+void lv_obj_get_transformed_area(const struct _lv_obj_t * obj, lv_area_t * area, bool recursive, bool inv);
+
 /**
  * Mark an area of an object as invalid.
  * The area will be truncated to the object's area and marked for redraw.
index 6927aca..02b9826 100644 (file)
@@ -31,7 +31,6 @@
 /**********************
  *  STATIC PROTOTYPES
  **********************/
-static void scroll_by_raw(lv_obj_t * obj, lv_coord_t x, lv_coord_t y);
 static void scroll_x_anim(void * obj, int32_t v);
 static void scroll_y_anim(void * obj, int32_t v);
 static void scroll_anim_ready_cb(lv_anim_t * a);
@@ -345,14 +344,18 @@ void lv_obj_scroll_by(lv_obj_t * obj, lv_coord_t dx, lv_coord_t dy, lv_anim_enab
     }
     else {
         /*Remove pending animations*/
-        bool y_del = lv_anim_del(obj, scroll_y_anim);
-        bool x_del = lv_anim_del(obj, scroll_x_anim);
-        scroll_by_raw(obj, dx, dy);
-        if(y_del || x_del) {
-            lv_res_t res;
-            res = lv_event_send(obj, LV_EVENT_SCROLL_END, NULL);
-            if(res != LV_RES_OK) return;
-        }
+        lv_anim_del(obj, scroll_y_anim);
+        lv_anim_del(obj, scroll_x_anim);
+
+        lv_res_t res;
+        res = lv_event_send(obj, LV_EVENT_SCROLL_BEGIN, NULL);
+        if(res != LV_RES_OK) return;
+
+        res = _lv_obj_scroll_by_raw(obj, dx, dy);
+        if(res != LV_RES_OK) return;
+
+        res = lv_event_send(obj, LV_EVENT_SCROLL_END, NULL);
+        if(res != LV_RES_OK) return;
     }
 }
 
@@ -406,6 +409,23 @@ void lv_obj_scroll_to_view_recursive(lv_obj_t * obj, lv_anim_enable_t anim_en)
     }
 }
 
+lv_res_t _lv_obj_scroll_by_raw(lv_obj_t * obj, lv_coord_t x, lv_coord_t y)
+{
+    if(x == 0 && y == 0) return LV_RES_OK;
+
+    lv_obj_allocate_spec_attr(obj);
+
+    obj->spec_attr->scroll.x += x;
+    obj->spec_attr->scroll.y += y;
+
+    lv_obj_move_children_by(obj, x, y, true);
+    lv_res_t res = lv_event_send(obj, LV_EVENT_SCROLL, NULL);
+    if(res != LV_RES_OK) return res;
+    lv_obj_invalidate(obj);
+    return LV_RES_OK;
+}
+
+
 bool lv_obj_is_scrolling(const lv_obj_t * obj)
 {
     lv_indev_t * indev = lv_indev_get_next(NULL);
@@ -648,29 +668,15 @@ void lv_obj_readjust_scroll(lv_obj_t * obj, lv_anim_enable_t anim_en)
  *   STATIC FUNCTIONS
  **********************/
 
-static void scroll_by_raw(lv_obj_t * obj, lv_coord_t x, lv_coord_t y)
-{
-    if(x == 0 && y == 0) return;
-
-    lv_obj_allocate_spec_attr(obj);
-
-    obj->spec_attr->scroll.x += x;
-    obj->spec_attr->scroll.y += y;
-
-    lv_obj_move_children_by(obj, x, y, true);
-    lv_res_t res = lv_event_send(obj, LV_EVENT_SCROLL, NULL);
-    if(res != LV_RES_OK) return;
-    lv_obj_invalidate(obj);
-}
 
 static void scroll_x_anim(void * obj, int32_t v)
 {
-    scroll_by_raw(obj, v + lv_obj_get_scroll_x(obj), 0);
+    _lv_obj_scroll_by_raw(obj, v + lv_obj_get_scroll_x(obj), 0);
 }
 
 static void scroll_y_anim(void * obj, int32_t v)
 {
-    scroll_by_raw(obj, 0, v + lv_obj_get_scroll_y(obj));
+    _lv_obj_scroll_by_raw(obj, 0, v + lv_obj_get_scroll_y(obj));
 }
 
 static void scroll_anim_ready_cb(lv_anim_t * a)
@@ -746,7 +752,7 @@ static void scroll_area_into_view(const lv_area_t * area, lv_obj_t * child, lv_p
         x_scroll = left_diff;
         /*Do not let scrolling in*/
         lv_coord_t sl = lv_obj_get_scroll_left(parent);
-        if(sl + x_scroll > 0) x_scroll = 0;
+        if(sl - x_scroll < 0) x_scroll = 0;
     }
     else if(right_diff > 0) {
         x_scroll = -right_diff;
index c9fdd72..e1da245 100644 (file)
@@ -15,6 +15,7 @@ extern "C" {
  *********************/
 #include "../misc/lv_area.h"
 #include "../misc/lv_anim.h"
+#include "../misc/lv_types.h"
 
 /*********************
  *      DEFINES
@@ -248,6 +249,18 @@ void lv_obj_scroll_to_view(struct _lv_obj_t * obj, lv_anim_enable_t anim_en);
  */
 void lv_obj_scroll_to_view_recursive(struct _lv_obj_t * obj, lv_anim_enable_t anim_en);
 
+
+/**
+ * Low level function to scroll by given x and y coordinates.
+ * `LV_EVENT_SCROLL` is sent.
+ * @param obj       pointer to an object to scroll
+ * @param x         pixels to scroll horizontally
+ * @param y         pixels to scroll vertically
+ * @return          `LV_RES_INV`: to object was deleted in `LV_EVENT_SCROLL`;
+ *                  `LV_RES_OK`: if the object is still valid
+ */
+lv_res_t _lv_obj_scroll_by_raw(struct _lv_obj_t * obj, lv_coord_t x, lv_coord_t y);
+
 /**
  * Tell whether an object is being scrolled or not at this moment
  * @param obj   pointer to an object
index 82e1ebb..bdce9cf 100644 (file)
@@ -44,14 +44,14 @@ typedef enum {
  **********************/
 static lv_style_t * get_local_style(lv_obj_t * obj, lv_style_selector_t selector);
 static _lv_obj_style_t * get_trans_style(lv_obj_t * obj, uint32_t part);
-static bool get_prop_core(const lv_obj_t * obj, lv_part_t part, lv_style_prop_t prop, lv_style_value_t * v);
-static lv_style_value_t apply_color_filter(const lv_obj_t * obj, uint32_t part, lv_style_value_t v);
+static lv_style_res_t get_prop_core(const lv_obj_t * obj, lv_part_t part, lv_style_prop_t prop, lv_style_value_t * v);
 static void report_style_change_core(void * style, lv_obj_t * obj);
 static void refresh_children_style(lv_obj_t * obj);
 static bool trans_del(lv_obj_t * obj, lv_part_t part, lv_style_prop_t prop, trans_t * tr_limit);
 static void trans_anim_cb(void * _tr, int32_t v);
 static void trans_anim_start_cb(lv_anim_t * a);
 static void trans_anim_ready_cb(lv_anim_t * a);
+static lv_layer_type_t calculate_layer_type(lv_obj_t * obj);
 static void fade_anim_cb(void * obj, int32_t v);
 static void fade_in_anim_ready(lv_anim_t * a);
 
@@ -76,7 +76,7 @@ void _lv_obj_style_init(void)
 void lv_obj_add_style(lv_obj_t * obj, lv_style_t * style, lv_style_selector_t selector)
 {
     trans_del(obj, selector, LV_STYLE_PROP_ANY, NULL);
-
+    assert(obj->style_cnt < 63);
     uint32_t i;
     /*Go after the transition and local styles*/
     for(i = 0; i < obj->style_cnt; i++) {
@@ -174,7 +174,12 @@ void lv_obj_refresh_style(lv_obj_t * obj, lv_style_selector_t selector, lv_style
 
     lv_part_t part = lv_obj_style_get_selector_part(selector);
 
-    if(prop & LV_STYLE_PROP_LAYOUT_REFR) {
+    bool is_layout_refr = lv_style_prop_has_flag(prop, LV_STYLE_PROP_LAYOUT_REFR);
+    bool is_ext_draw = lv_style_prop_has_flag(prop, LV_STYLE_PROP_EXT_DRAW);
+    bool is_inheritable = lv_style_prop_has_flag(prop, LV_STYLE_PROP_INHERIT);
+    bool is_layer_refr = lv_style_prop_has_flag(prop, LV_STYLE_PROP_LAYER_REFR);
+
+    if(is_layout_refr) {
         if(part == LV_PART_ANY ||
            part == LV_PART_MAIN ||
            lv_obj_get_style_height(obj, 0) == LV_SIZE_CONTENT ||
@@ -183,19 +188,27 @@ void lv_obj_refresh_style(lv_obj_t * obj, lv_style_selector_t selector, lv_style
             lv_obj_mark_layout_as_dirty(obj);
         }
     }
-    if((part == LV_PART_ANY || part == LV_PART_MAIN) && (prop == LV_STYLE_PROP_ANY ||
-                                                         (prop & LV_STYLE_PROP_PARENT_LAYOUT_REFR))) {
+    if((part == LV_PART_ANY || part == LV_PART_MAIN) && (prop == LV_STYLE_PROP_ANY || is_layout_refr)) {
         lv_obj_t * parent = lv_obj_get_parent(obj);
         if(parent) lv_obj_mark_layout_as_dirty(parent);
     }
 
-    if(prop == LV_STYLE_PROP_ANY || (prop & LV_STYLE_PROP_EXT_DRAW)) {
+    /*Cache the layer type*/
+    if((part == LV_PART_ANY || part == LV_PART_MAIN) && is_layer_refr) {
+        lv_layer_type_t layer_type = calculate_layer_type(obj);
+        if(obj->spec_attr) obj->spec_attr->layer_type = layer_type;
+        else if(layer_type != LV_LAYER_TYPE_NONE) {
+            lv_obj_allocate_spec_attr(obj);
+            obj->spec_attr->layer_type = layer_type;
+        }
+    }
+
+    if(prop == LV_STYLE_PROP_ANY || is_ext_draw) {
         lv_obj_refresh_ext_draw_size(obj);
     }
     lv_obj_invalidate(obj);
 
-    if(prop == LV_STYLE_PROP_ANY ||
-       ((prop & LV_STYLE_PROP_INHERIT) && ((prop & LV_STYLE_PROP_EXT_DRAW) || (prop & LV_STYLE_PROP_LAYOUT_REFR)))) {
+    if(prop == LV_STYLE_PROP_ANY || (is_inheritable && (is_ext_draw || is_layout_refr))) {
         if(part != LV_PART_SCROLLBAR) {
             refresh_children_style(obj);
         }
@@ -210,19 +223,15 @@ void lv_obj_enable_style_refresh(bool en)
 lv_style_value_t lv_obj_get_style_prop(const lv_obj_t * obj, lv_part_t part, lv_style_prop_t prop)
 {
     lv_style_value_t value_act;
-    bool inherit = prop & LV_STYLE_PROP_INHERIT ? true : false;
-    bool filter = prop & LV_STYLE_PROP_FILTER ? true : false;
-    if(filter) {
-        prop &= ~LV_STYLE_PROP_FILTER;
-    }
-    bool found = false;
+    bool inheritable = lv_style_prop_has_flag(prop, LV_STYLE_PROP_INHERIT);
+    lv_style_res_t found = LV_STYLE_RES_NOT_FOUND;
     while(obj) {
         found = get_prop_core(obj, part, prop, &value_act);
-        if(found) break;
-        if(!inherit) break;
+        if(found == LV_STYLE_RES_FOUND) break;
+        if(!inheritable) break;
 
         /*If not found, check the `MAIN` style first*/
-        if(part != LV_PART_MAIN) {
+        if(found != LV_STYLE_RES_INHERIT && part != LV_PART_MAIN) {
             part = LV_PART_MAIN;
             continue;
         }
@@ -231,7 +240,7 @@ lv_style_value_t lv_obj_get_style_prop(const lv_obj_t * obj, lv_part_t part, lv_
         obj = lv_obj_get_parent(obj);
     }
 
-    if(!found) {
+    if(found != LV_STYLE_RES_FOUND) {
         if(part == LV_PART_MAIN && (prop == LV_STYLE_WIDTH || prop == LV_STYLE_HEIGHT)) {
             const lv_obj_class_t * cls = obj->class_p;
             while(cls) {
@@ -244,13 +253,17 @@ lv_style_value_t lv_obj_get_style_prop(const lv_obj_t * obj, lv_part_t part, lv_
                 cls = cls->base_class;
             }
 
-            value_act.num = prop == LV_STYLE_WIDTH ? cls->width_def : cls->height_def;
+            if(cls) {
+                value_act.num = prop == LV_STYLE_WIDTH ? cls->width_def : cls->height_def;
+            }
+            else {
+                value_act.num = 0;
+            }
         }
         else {
             value_act = lv_style_prop_get_default(prop);
         }
     }
-    if(filter) value_act = apply_color_filter(obj, part, value_act);
     return value_act;
 }
 
@@ -262,9 +275,17 @@ void lv_obj_set_local_style_prop(lv_obj_t * obj, lv_style_prop_t prop, lv_style_
     lv_obj_refresh_style(obj, selector, prop);
 }
 
+void lv_obj_set_local_style_prop_meta(lv_obj_t * obj, lv_style_prop_t prop, uint16_t meta,
+                                      lv_style_selector_t selector)
+{
+    lv_style_t * style = get_local_style(obj, selector);
+    lv_style_set_prop_meta(style, prop, meta);
+    lv_obj_refresh_style(obj, selector, prop);
+}
+
 
-lv_res_t lv_obj_get_local_style_prop(lv_obj_t * obj, lv_style_prop_t prop, lv_style_value_t * value,
-                                     lv_style_selector_t selector)
+lv_style_res_t lv_obj_get_local_style_prop(lv_obj_t * obj, lv_style_prop_t prop, lv_style_value_t * value,
+                                           lv_style_selector_t selector)
 {
     uint32_t i;
     for(i = 0; i < obj->style_cnt; i++) {
@@ -274,7 +295,7 @@ lv_res_t lv_obj_get_local_style_prop(lv_obj_t * obj, lv_style_prop_t prop, lv_st
         }
     }
 
-    return LV_RES_INV;
+    return LV_STYLE_RES_NOT_FOUND;
 }
 
 bool lv_obj_remove_local_style_prop(lv_obj_t * obj, lv_style_prop_t prop, lv_style_selector_t selector)
@@ -293,7 +314,12 @@ bool lv_obj_remove_local_style_prop(lv_obj_t * obj, lv_style_prop_t prop, lv_sty
     /*The style is not found*/
     if(i == obj->style_cnt) return false;
 
-    return lv_style_remove_prop(obj->styles[i].style, prop);
+    lv_res_t res = lv_style_remove_prop(obj->styles[i].style, prop);
+    if(res == LV_RES_OK) {
+        lv_obj_refresh_style(obj, selector, prop);
+    }
+
+    return res;
 }
 
 void _lv_obj_style_create_transition(lv_obj_t * obj, lv_part_t part, lv_state_t prev_state, lv_state_t new_state,
@@ -320,7 +346,7 @@ void _lv_obj_style_create_transition(lv_obj_t * obj, lv_part_t part, lv_state_t
     if(tr_dsc->prop == LV_STYLE_RADIUS) {
         if(v1.num == LV_RADIUS_CIRCLE || v2.num == LV_RADIUS_CIRCLE) {
             lv_coord_t whalf = lv_obj_get_width(obj) / 2;
-            lv_coord_t hhalf = lv_obj_get_width(obj) / 2;
+            lv_coord_t hhalf = lv_obj_get_height(obj) / 2;
             if(v1.num == LV_RADIUS_CIRCLE) v1.num = LV_MIN(whalf + 1, hhalf + 1);
             if(v2.num == LV_RADIUS_CIRCLE) v2.num = LV_MIN(whalf + 1, hhalf + 1);
         }
@@ -331,28 +357,37 @@ void _lv_obj_style_create_transition(lv_obj_t * obj, lv_part_t part, lv_state_t
     if(tr == NULL) return;
     tr->start_value = v1;
     tr->end_value = v2;
+    tr->obj = obj;
+    tr->prop = tr_dsc->prop;
+    tr->selector = part;
 
-    if(tr) {
-        tr->obj = obj;
-        tr->prop = tr_dsc->prop;
-        tr->selector = part;
-
-        lv_anim_t a;
-        lv_anim_init(&a);
-        lv_anim_set_var(&a, tr);
-        lv_anim_set_exec_cb(&a, trans_anim_cb);
-        lv_anim_set_start_cb(&a, trans_anim_start_cb);
-        lv_anim_set_ready_cb(&a, trans_anim_ready_cb);
-        lv_anim_set_values(&a, 0x00, 0xFF);
-        lv_anim_set_time(&a, tr_dsc->time);
-        lv_anim_set_delay(&a, tr_dsc->delay);
-        lv_anim_set_path_cb(&a, tr_dsc->path_cb);
-        lv_anim_set_early_apply(&a, false);
+    lv_anim_t a;
+    lv_anim_init(&a);
+    lv_anim_set_var(&a, tr);
+    lv_anim_set_exec_cb(&a, trans_anim_cb);
+    lv_anim_set_start_cb(&a, trans_anim_start_cb);
+    lv_anim_set_ready_cb(&a, trans_anim_ready_cb);
+    lv_anim_set_values(&a, 0x00, 0xFF);
+    lv_anim_set_time(&a, tr_dsc->time);
+    lv_anim_set_delay(&a, tr_dsc->delay);
+    lv_anim_set_path_cb(&a, tr_dsc->path_cb);
+    lv_anim_set_early_apply(&a, false);
 #if LV_USE_USER_DATA
-        a.user_data = tr_dsc->user_data;
+    a.user_data = tr_dsc->user_data;
 #endif
-        lv_anim_start(&a);
+    lv_anim_start(&a);
+}
+
+
+lv_style_value_t _lv_obj_style_apply_color_filter(const lv_obj_t * obj, uint32_t part, lv_style_value_t v)
+{
+    if(obj == NULL) return v;
+    const lv_color_filter_dsc_t * f = lv_obj_get_style_color_filter_dsc(obj, part);
+    if(f && f->filter_cb) {
+        lv_opa_t f_opa = lv_obj_get_style_color_filter_opa(obj, part);
+        if(f_opa != 0) v.color = f->filter_cb(f, v.color, f_opa);
     }
+    return v;
 }
 
 _lv_style_state_cmp_t _lv_obj_style_state_compare(lv_obj_t * obj, lv_state_t state1, lv_state_t state2)
@@ -534,7 +569,7 @@ static _lv_obj_style_t * get_trans_style(lv_obj_t * obj,  lv_style_selector_t se
 }
 
 
-static bool get_prop_core(const lv_obj_t * obj, lv_part_t part, lv_style_prop_t prop, lv_style_value_t * v)
+static lv_style_res_t get_prop_core(const lv_obj_t * obj, lv_part_t part, lv_style_prop_t prop, lv_style_value_t * v)
 {
     uint8_t group = 1 << _lv_style_get_prop_group(prop);
     int32_t weight = -1;
@@ -543,7 +578,7 @@ static bool get_prop_core(const lv_obj_t * obj, lv_part_t part, lv_style_prop_t
     lv_style_value_t value_tmp;
     bool skip_trans = obj->skip_trans;
     uint32_t i;
-    bool found;
+    lv_style_res_t found;
     for(i = 0; i < obj->style_cnt; i++) {
         _lv_obj_style_t * obj_style = &obj->styles[i];
         if(obj_style->is_trans == false) break;
@@ -554,20 +589,22 @@ static bool get_prop_core(const lv_obj_t * obj, lv_part_t part, lv_style_prop_t
         if(part_act != part) continue;
         if((obj_style->style->has_group & group) == 0) continue;
         found = lv_style_get_prop(obj_style->style, prop, &value_tmp);
-        if(found) {
+        if(found == LV_STYLE_RES_FOUND) {
             *v = value_tmp;
-            return true;
+            return LV_STYLE_RES_FOUND;
+        }
+        else if(found == LV_STYLE_RES_INHERIT) {
+            return LV_STYLE_RES_INHERIT;
         }
     }
 
     for(; i < obj->style_cnt; i++) {
+        if((obj->styles[i].style->has_group & group) == 0) continue;
         _lv_obj_style_t * obj_style = &obj->styles[i];
         lv_part_t part_act = lv_obj_style_get_selector_part(obj->styles[i].selector);
         lv_state_t state_act = lv_obj_style_get_selector_state(obj->styles[i].selector);
         if(part_act != part) continue;
 
-        if((obj_style->style->has_group & group) == 0) continue;
-
         /*Be sure the style not specifies other state than the requested.
          *E.g. For HOVER+PRESS object state, HOVER style only is OK, but HOVER+FOCUS style is not*/
         if((state_act & state_inv)) continue;
@@ -577,34 +614,26 @@ static bool get_prop_core(const lv_obj_t * obj, lv_part_t part, lv_style_prop_t
 
         found = lv_style_get_prop(obj_style->style, prop, &value_tmp);
 
-        if(found) {
+        if(found == LV_STYLE_RES_FOUND) {
             if(state_act == state) {
                 *v = value_tmp;
-                return true;
+                return LV_STYLE_RES_FOUND;
             }
             if(weight < state_act) {
                 weight = state_act;
                 *v = value_tmp;
             }
         }
+        else if(found == LV_STYLE_RES_INHERIT) {
+            return LV_STYLE_RES_INHERIT;
+        }
     }
 
     if(weight >= 0) {
         *v = value_tmp;
-        return true;
-    }
-    else return false;
-}
-
-static lv_style_value_t apply_color_filter(const lv_obj_t * obj, uint32_t part, lv_style_value_t v)
-{
-    if(obj == NULL) return v;
-    const lv_color_filter_dsc_t * f = lv_obj_get_style_color_filter_dsc(obj, part);
-    if(f && f->filter_cb) {
-        lv_opa_t f_opa = lv_obj_get_style_color_filter_opa(obj, part);
-        if(f_opa != 0) v.color = f->filter_cb(f, v.color, f_opa);
+        return LV_STYLE_RES_FOUND;
     }
-    return v;
+    else return LV_STYLE_RES_NOT_FOUND;
 }
 
 /**
@@ -669,19 +698,21 @@ static bool trans_del(lv_obj_t * obj, lv_part_t part, lv_style_prop_t prop, tran
         tr_prev = _lv_ll_get_prev(&LV_GC_ROOT(_lv_obj_style_trans_ll), tr);
 
         if(tr->obj == obj && (part == tr->selector || part == LV_PART_ANY) && (prop == tr->prop || prop == LV_STYLE_PROP_ANY)) {
-            /*Remove the transitioned property from trans. style
+            /*Remove any transitioned properties from the trans. style
              *to allow changing it by normal styles*/
             uint32_t i;
             for(i = 0; i < obj->style_cnt; i++) {
                 if(obj->styles[i].is_trans && (part == LV_PART_ANY || obj->styles[i].selector == part)) {
                     lv_style_remove_prop(obj->styles[i].style, tr->prop);
-                    lv_anim_del(tr, NULL);
-                    _lv_ll_remove(&LV_GC_ROOT(_lv_obj_style_trans_ll), tr);
-                    lv_mem_free(tr);
-                    removed = true;
                 }
             }
 
+            /*Free the transition descriptor too*/
+            lv_anim_del(tr, NULL);
+            _lv_ll_remove(&LV_GC_ROOT(_lv_obj_style_trans_ll), tr);
+            lv_mem_free(tr);
+            removed = true;
+
         }
         tr = tr_prev;
     }
@@ -718,6 +749,7 @@ static void trans_anim_cb(void * _tr, int32_t v)
                 else value_final.ptr = tr->end_value.ptr;
                 break;
             case LV_STYLE_BG_COLOR:
+            case LV_STYLE_BG_GRAD_COLOR:
             case LV_STYLE_BORDER_COLOR:
             case LV_STYLE_TEXT_COLOR:
             case LV_STYLE_SHADOW_COLOR:
@@ -810,6 +842,18 @@ static void trans_anim_ready_cb(lv_anim_t * a)
     }
 }
 
+static lv_layer_type_t calculate_layer_type(lv_obj_t * obj)
+{
+    if(lv_obj_get_style_transform_angle(obj, 0) != 0) return LV_LAYER_TYPE_TRANSFORM;
+    if(lv_obj_get_style_transform_zoom(obj, 0) != 256) return LV_LAYER_TYPE_TRANSFORM;
+    if(lv_obj_get_style_opa(obj, 0) != LV_OPA_COVER) return LV_LAYER_TYPE_SIMPLE;
+
+#if LV_DRAW_COMPLEX
+    if(lv_obj_get_style_blend_mode(obj, 0) != LV_BLEND_MODE_NORMAL) return LV_LAYER_TYPE_SIMPLE;
+#endif
+    return LV_LAYER_TYPE_NONE;
+}
+
 static void fade_anim_cb(void * obj, int32_t v)
 {
     lv_obj_set_style_opa(obj, v, 0);
index 7fb2723..5d122ca 100644 (file)
@@ -140,8 +140,11 @@ lv_style_value_t lv_obj_get_style_prop(const struct _lv_obj_t * obj, lv_part_t p
 void lv_obj_set_local_style_prop(struct _lv_obj_t * obj, lv_style_prop_t prop, lv_style_value_t value,
                                  lv_style_selector_t selector);
 
-lv_res_t lv_obj_get_local_style_prop(struct _lv_obj_t * obj, lv_style_prop_t prop, lv_style_value_t * value,
-                                     lv_style_selector_t selector);
+void lv_obj_set_local_style_prop_meta(struct _lv_obj_t * obj, lv_style_prop_t prop, uint16_t meta,
+                                      lv_style_selector_t selector);
+
+lv_style_res_t lv_obj_get_local_style_prop(struct _lv_obj_t * obj, lv_style_prop_t prop, lv_style_value_t * value,
+                                           lv_style_selector_t selector);
 
 /**
  * Remove a local style property from a part of an object with a given state.
@@ -152,6 +155,11 @@ lv_res_t lv_obj_get_local_style_prop(struct _lv_obj_t * obj, lv_style_prop_t pro
  */
 bool lv_obj_remove_local_style_prop(struct _lv_obj_t * obj, lv_style_prop_t prop, lv_style_selector_t selector);
 
+/**
+ * Used internally for color filtering
+ */
+lv_style_value_t _lv_obj_style_apply_color_filter(const struct _lv_obj_t * obj, uint32_t part, lv_style_value_t v);
+
 /**
  * Used internally to create a style transition
  * @param obj
index 8eb7ebe..64a0bb2 100644 (file)
@@ -120,6 +120,22 @@ void lv_obj_set_style_transform_angle(struct _lv_obj_t * obj, lv_coord_t value,
     lv_obj_set_local_style_prop(obj, LV_STYLE_TRANSFORM_ANGLE, v, selector);
 }
 
+void lv_obj_set_style_transform_pivot_x(struct _lv_obj_t * obj, lv_coord_t value, lv_style_selector_t selector)
+{
+    lv_style_value_t v = {
+        .num = (int32_t)value
+    };
+    lv_obj_set_local_style_prop(obj, LV_STYLE_TRANSFORM_PIVOT_X, v, selector);
+}
+
+void lv_obj_set_style_transform_pivot_y(struct _lv_obj_t * obj, lv_coord_t value, lv_style_selector_t selector)
+{
+    lv_style_value_t v = {
+        .num = (int32_t)value
+    };
+    lv_obj_set_local_style_prop(obj, LV_STYLE_TRANSFORM_PIVOT_Y, v, selector);
+}
+
 void lv_obj_set_style_pad_top(struct _lv_obj_t * obj, lv_coord_t value, lv_style_selector_t selector)
 {
     lv_style_value_t v = {
@@ -176,14 +192,6 @@ void lv_obj_set_style_bg_color(struct _lv_obj_t * obj, lv_color_t value, lv_styl
     lv_obj_set_local_style_prop(obj, LV_STYLE_BG_COLOR, v, selector);
 }
 
-void lv_obj_set_style_bg_color_filtered(struct _lv_obj_t * obj, lv_color_t value, lv_style_selector_t selector)
-{
-    lv_style_value_t v = {
-        .color = value
-    };
-    lv_obj_set_local_style_prop(obj, LV_STYLE_BG_COLOR_FILTERED, v, selector);
-}
-
 void lv_obj_set_style_bg_opa(struct _lv_obj_t * obj, lv_opa_t value, lv_style_selector_t selector)
 {
     lv_style_value_t v = {
@@ -200,14 +208,6 @@ void lv_obj_set_style_bg_grad_color(struct _lv_obj_t * obj, lv_color_t value, lv
     lv_obj_set_local_style_prop(obj, LV_STYLE_BG_GRAD_COLOR, v, selector);
 }
 
-void lv_obj_set_style_bg_grad_color_filtered(struct _lv_obj_t * obj, lv_color_t value, lv_style_selector_t selector)
-{
-    lv_style_value_t v = {
-        .color = value
-    };
-    lv_obj_set_local_style_prop(obj, LV_STYLE_BG_GRAD_COLOR_FILTERED, v, selector);
-}
-
 void lv_obj_set_style_bg_grad_dir(struct _lv_obj_t * obj, lv_grad_dir_t value, lv_style_selector_t selector)
 {
     lv_style_value_t v = {
@@ -272,14 +272,6 @@ void lv_obj_set_style_bg_img_recolor(struct _lv_obj_t * obj, lv_color_t value, l
     lv_obj_set_local_style_prop(obj, LV_STYLE_BG_IMG_RECOLOR, v, selector);
 }
 
-void lv_obj_set_style_bg_img_recolor_filtered(struct _lv_obj_t * obj, lv_color_t value, lv_style_selector_t selector)
-{
-    lv_style_value_t v = {
-        .color = value
-    };
-    lv_obj_set_local_style_prop(obj, LV_STYLE_BG_IMG_RECOLOR_FILTERED, v, selector);
-}
-
 void lv_obj_set_style_bg_img_recolor_opa(struct _lv_obj_t * obj, lv_opa_t value, lv_style_selector_t selector)
 {
     lv_style_value_t v = {
@@ -304,14 +296,6 @@ void lv_obj_set_style_border_color(struct _lv_obj_t * obj, lv_color_t value, lv_
     lv_obj_set_local_style_prop(obj, LV_STYLE_BORDER_COLOR, v, selector);
 }
 
-void lv_obj_set_style_border_color_filtered(struct _lv_obj_t * obj, lv_color_t value, lv_style_selector_t selector)
-{
-    lv_style_value_t v = {
-        .color = value
-    };
-    lv_obj_set_local_style_prop(obj, LV_STYLE_BORDER_COLOR_FILTERED, v, selector);
-}
-
 void lv_obj_set_style_border_opa(struct _lv_obj_t * obj, lv_opa_t value, lv_style_selector_t selector)
 {
     lv_style_value_t v = {
@@ -360,14 +344,6 @@ void lv_obj_set_style_outline_color(struct _lv_obj_t * obj, lv_color_t value, lv
     lv_obj_set_local_style_prop(obj, LV_STYLE_OUTLINE_COLOR, v, selector);
 }
 
-void lv_obj_set_style_outline_color_filtered(struct _lv_obj_t * obj, lv_color_t value, lv_style_selector_t selector)
-{
-    lv_style_value_t v = {
-        .color = value
-    };
-    lv_obj_set_local_style_prop(obj, LV_STYLE_OUTLINE_COLOR_FILTERED, v, selector);
-}
-
 void lv_obj_set_style_outline_opa(struct _lv_obj_t * obj, lv_opa_t value, lv_style_selector_t selector)
 {
     lv_style_value_t v = {
@@ -424,14 +400,6 @@ void lv_obj_set_style_shadow_color(struct _lv_obj_t * obj, lv_color_t value, lv_
     lv_obj_set_local_style_prop(obj, LV_STYLE_SHADOW_COLOR, v, selector);
 }
 
-void lv_obj_set_style_shadow_color_filtered(struct _lv_obj_t * obj, lv_color_t value, lv_style_selector_t selector)
-{
-    lv_style_value_t v = {
-        .color = value
-    };
-    lv_obj_set_local_style_prop(obj, LV_STYLE_SHADOW_COLOR_FILTERED, v, selector);
-}
-
 void lv_obj_set_style_shadow_opa(struct _lv_obj_t * obj, lv_opa_t value, lv_style_selector_t selector)
 {
     lv_style_value_t v = {
@@ -456,14 +424,6 @@ void lv_obj_set_style_img_recolor(struct _lv_obj_t * obj, lv_color_t value, lv_s
     lv_obj_set_local_style_prop(obj, LV_STYLE_IMG_RECOLOR, v, selector);
 }
 
-void lv_obj_set_style_img_recolor_filtered(struct _lv_obj_t * obj, lv_color_t value, lv_style_selector_t selector)
-{
-    lv_style_value_t v = {
-        .color = value
-    };
-    lv_obj_set_local_style_prop(obj, LV_STYLE_IMG_RECOLOR_FILTERED, v, selector);
-}
-
 void lv_obj_set_style_img_recolor_opa(struct _lv_obj_t * obj, lv_opa_t value, lv_style_selector_t selector)
 {
     lv_style_value_t v = {
@@ -512,14 +472,6 @@ void lv_obj_set_style_line_color(struct _lv_obj_t * obj, lv_color_t value, lv_st
     lv_obj_set_local_style_prop(obj, LV_STYLE_LINE_COLOR, v, selector);
 }
 
-void lv_obj_set_style_line_color_filtered(struct _lv_obj_t * obj, lv_color_t value, lv_style_selector_t selector)
-{
-    lv_style_value_t v = {
-        .color = value
-    };
-    lv_obj_set_local_style_prop(obj, LV_STYLE_LINE_COLOR_FILTERED, v, selector);
-}
-
 void lv_obj_set_style_line_opa(struct _lv_obj_t * obj, lv_opa_t value, lv_style_selector_t selector)
 {
     lv_style_value_t v = {
@@ -552,14 +504,6 @@ void lv_obj_set_style_arc_color(struct _lv_obj_t * obj, lv_color_t value, lv_sty
     lv_obj_set_local_style_prop(obj, LV_STYLE_ARC_COLOR, v, selector);
 }
 
-void lv_obj_set_style_arc_color_filtered(struct _lv_obj_t * obj, lv_color_t value, lv_style_selector_t selector)
-{
-    lv_style_value_t v = {
-        .color = value
-    };
-    lv_obj_set_local_style_prop(obj, LV_STYLE_ARC_COLOR_FILTERED, v, selector);
-}
-
 void lv_obj_set_style_arc_opa(struct _lv_obj_t * obj, lv_opa_t value, lv_style_selector_t selector)
 {
     lv_style_value_t v = {
@@ -584,14 +528,6 @@ void lv_obj_set_style_text_color(struct _lv_obj_t * obj, lv_color_t value, lv_st
     lv_obj_set_local_style_prop(obj, LV_STYLE_TEXT_COLOR, v, selector);
 }
 
-void lv_obj_set_style_text_color_filtered(struct _lv_obj_t * obj, lv_color_t value, lv_style_selector_t selector)
-{
-    lv_style_value_t v = {
-        .color = value
-    };
-    lv_obj_set_local_style_prop(obj, LV_STYLE_TEXT_COLOR_FILTERED, v, selector);
-}
-
 void lv_obj_set_style_text_opa(struct _lv_obj_t * obj, lv_opa_t value, lv_style_selector_t selector)
 {
     lv_style_value_t v = {
@@ -664,8 +600,7 @@ void lv_obj_set_style_opa(struct _lv_obj_t * obj, lv_opa_t value, lv_style_selec
     lv_obj_set_local_style_prop(obj, LV_STYLE_OPA, v, selector);
 }
 
-void lv_obj_set_style_color_filter_dsc(struct _lv_obj_t * obj, const lv_color_filter_dsc_t * value,
-                                       lv_style_selector_t selector)
+void lv_obj_set_style_color_filter_dsc(struct _lv_obj_t * obj, const lv_color_filter_dsc_t * value, lv_style_selector_t selector)
 {
     lv_style_value_t v = {
         .ptr = value
@@ -681,6 +616,14 @@ void lv_obj_set_style_color_filter_opa(struct _lv_obj_t * obj, lv_opa_t value, l
     lv_obj_set_local_style_prop(obj, LV_STYLE_COLOR_FILTER_OPA, v, selector);
 }
 
+void lv_obj_set_style_anim(struct _lv_obj_t * obj, const lv_anim_t * value, lv_style_selector_t selector)
+{
+    lv_style_value_t v = {
+        .ptr = value
+    };
+    lv_obj_set_local_style_prop(obj, LV_STYLE_ANIM, v, selector);
+}
+
 void lv_obj_set_style_anim_time(struct _lv_obj_t * obj, uint32_t value, lv_style_selector_t selector)
 {
     lv_style_value_t v = {
@@ -697,8 +640,7 @@ void lv_obj_set_style_anim_speed(struct _lv_obj_t * obj, uint32_t value, lv_styl
     lv_obj_set_local_style_prop(obj, LV_STYLE_ANIM_SPEED, v, selector);
 }
 
-void lv_obj_set_style_transition(struct _lv_obj_t * obj, const lv_style_transition_dsc_t * value,
-                                 lv_style_selector_t selector)
+void lv_obj_set_style_transition(struct _lv_obj_t * obj, const lv_style_transition_dsc_t * value, lv_style_selector_t selector)
 {
     lv_style_value_t v = {
         .ptr = value
index e4383d5..576927d 100644 (file)
@@ -88,6 +88,18 @@ static inline lv_coord_t lv_obj_get_style_transform_angle(const struct _lv_obj_t
     return (lv_coord_t)v.num;
 }
 
+static inline lv_coord_t lv_obj_get_style_transform_pivot_x(const struct _lv_obj_t * obj, uint32_t part)
+{
+    lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TRANSFORM_PIVOT_X);
+    return (lv_coord_t)v.num;
+}
+
+static inline lv_coord_t lv_obj_get_style_transform_pivot_y(const struct _lv_obj_t * obj, uint32_t part)
+{
+    lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TRANSFORM_PIVOT_Y);
+    return (lv_coord_t)v.num;
+}
+
 static inline lv_coord_t lv_obj_get_style_pad_top(const struct _lv_obj_t * obj, uint32_t part)
 {
     lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_PAD_TOP);
@@ -132,7 +144,7 @@ static inline lv_color_t lv_obj_get_style_bg_color(const struct _lv_obj_t * obj,
 
 static inline lv_color_t lv_obj_get_style_bg_color_filtered(const struct _lv_obj_t * obj, uint32_t part)
 {
-    lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BG_COLOR_FILTERED);
+    lv_style_value_t v = _lv_obj_style_apply_color_filter(obj, part, lv_obj_get_style_prop(obj, part, LV_STYLE_BG_COLOR));
     return v.color;
 }
 
@@ -150,7 +162,7 @@ static inline lv_color_t lv_obj_get_style_bg_grad_color(const struct _lv_obj_t *
 
 static inline lv_color_t lv_obj_get_style_bg_grad_color_filtered(const struct _lv_obj_t * obj, uint32_t part)
 {
-    lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BG_GRAD_COLOR_FILTERED);
+    lv_style_value_t v = _lv_obj_style_apply_color_filter(obj, part, lv_obj_get_style_prop(obj, part, LV_STYLE_BG_GRAD_COLOR));
     return v.color;
 }
 
@@ -204,7 +216,7 @@ static inline lv_color_t lv_obj_get_style_bg_img_recolor(const struct _lv_obj_t
 
 static inline lv_color_t lv_obj_get_style_bg_img_recolor_filtered(const struct _lv_obj_t * obj, uint32_t part)
 {
-    lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BG_IMG_RECOLOR_FILTERED);
+    lv_style_value_t v = _lv_obj_style_apply_color_filter(obj, part, lv_obj_get_style_prop(obj, part, LV_STYLE_BG_IMG_RECOLOR));
     return v.color;
 }
 
@@ -228,7 +240,7 @@ static inline lv_color_t lv_obj_get_style_border_color(const struct _lv_obj_t *
 
 static inline lv_color_t lv_obj_get_style_border_color_filtered(const struct _lv_obj_t * obj, uint32_t part)
 {
-    lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_BORDER_COLOR_FILTERED);
+    lv_style_value_t v = _lv_obj_style_apply_color_filter(obj, part, lv_obj_get_style_prop(obj, part, LV_STYLE_BORDER_COLOR));
     return v.color;
 }
 
@@ -270,7 +282,7 @@ static inline lv_color_t lv_obj_get_style_outline_color(const struct _lv_obj_t *
 
 static inline lv_color_t lv_obj_get_style_outline_color_filtered(const struct _lv_obj_t * obj, uint32_t part)
 {
-    lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_OUTLINE_COLOR_FILTERED);
+    lv_style_value_t v = _lv_obj_style_apply_color_filter(obj, part, lv_obj_get_style_prop(obj, part, LV_STYLE_OUTLINE_COLOR));
     return v.color;
 }
 
@@ -318,7 +330,7 @@ static inline lv_color_t lv_obj_get_style_shadow_color(const struct _lv_obj_t *
 
 static inline lv_color_t lv_obj_get_style_shadow_color_filtered(const struct _lv_obj_t * obj, uint32_t part)
 {
-    lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_SHADOW_COLOR_FILTERED);
+    lv_style_value_t v = _lv_obj_style_apply_color_filter(obj, part, lv_obj_get_style_prop(obj, part, LV_STYLE_SHADOW_COLOR));
     return v.color;
 }
 
@@ -342,7 +354,7 @@ static inline lv_color_t lv_obj_get_style_img_recolor(const struct _lv_obj_t * o
 
 static inline lv_color_t lv_obj_get_style_img_recolor_filtered(const struct _lv_obj_t * obj, uint32_t part)
 {
-    lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_IMG_RECOLOR_FILTERED);
+    lv_style_value_t v = _lv_obj_style_apply_color_filter(obj, part, lv_obj_get_style_prop(obj, part, LV_STYLE_IMG_RECOLOR));
     return v.color;
 }
 
@@ -384,7 +396,7 @@ static inline lv_color_t lv_obj_get_style_line_color(const struct _lv_obj_t * ob
 
 static inline lv_color_t lv_obj_get_style_line_color_filtered(const struct _lv_obj_t * obj, uint32_t part)
 {
-    lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_LINE_COLOR_FILTERED);
+    lv_style_value_t v = _lv_obj_style_apply_color_filter(obj, part, lv_obj_get_style_prop(obj, part, LV_STYLE_LINE_COLOR));
     return v.color;
 }
 
@@ -414,7 +426,7 @@ static inline lv_color_t lv_obj_get_style_arc_color(const struct _lv_obj_t * obj
 
 static inline lv_color_t lv_obj_get_style_arc_color_filtered(const struct _lv_obj_t * obj, uint32_t part)
 {
-    lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_ARC_COLOR_FILTERED);
+    lv_style_value_t v = _lv_obj_style_apply_color_filter(obj, part, lv_obj_get_style_prop(obj, part, LV_STYLE_ARC_COLOR));
     return v.color;
 }
 
@@ -438,7 +450,7 @@ static inline lv_color_t lv_obj_get_style_text_color(const struct _lv_obj_t * ob
 
 static inline lv_color_t lv_obj_get_style_text_color_filtered(const struct _lv_obj_t * obj, uint32_t part)
 {
-    lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_TEXT_COLOR_FILTERED);
+    lv_style_value_t v = _lv_obj_style_apply_color_filter(obj, part, lv_obj_get_style_prop(obj, part, LV_STYLE_TEXT_COLOR));
     return v.color;
 }
 
@@ -496,8 +508,7 @@ static inline lv_opa_t lv_obj_get_style_opa(const struct _lv_obj_t * obj, uint32
     return (lv_opa_t)v.num;
 }
 
-static inline const lv_color_filter_dsc_t * lv_obj_get_style_color_filter_dsc(const struct _lv_obj_t * obj,
-                                                                              uint32_t part)
+static inline const lv_color_filter_dsc_t * lv_obj_get_style_color_filter_dsc(const struct _lv_obj_t * obj, uint32_t part)
 {
     lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_COLOR_FILTER_DSC);
     return (const lv_color_filter_dsc_t *)v.ptr;
@@ -509,6 +520,12 @@ static inline lv_opa_t lv_obj_get_style_color_filter_opa(const struct _lv_obj_t
     return (lv_opa_t)v.num;
 }
 
+static inline const lv_anim_t * lv_obj_get_style_anim(const struct _lv_obj_t * obj, uint32_t part)
+{
+    lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_ANIM);
+    return (const lv_anim_t *)v.ptr;
+}
+
 static inline uint32_t lv_obj_get_style_anim_time(const struct _lv_obj_t * obj, uint32_t part)
 {
     lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_ANIM_TIME);
@@ -560,6 +577,8 @@ void lv_obj_set_style_translate_x(struct _lv_obj_t * obj, lv_coord_t value, lv_s
 void lv_obj_set_style_translate_y(struct _lv_obj_t * obj, lv_coord_t value, lv_style_selector_t selector);
 void lv_obj_set_style_transform_zoom(struct _lv_obj_t * obj, lv_coord_t value, lv_style_selector_t selector);
 void lv_obj_set_style_transform_angle(struct _lv_obj_t * obj, lv_coord_t value, lv_style_selector_t selector);
+void lv_obj_set_style_transform_pivot_x(struct _lv_obj_t * obj, lv_coord_t value, lv_style_selector_t selector);
+void lv_obj_set_style_transform_pivot_y(struct _lv_obj_t * obj, lv_coord_t value, lv_style_selector_t selector);
 void lv_obj_set_style_pad_top(struct _lv_obj_t * obj, lv_coord_t value, lv_style_selector_t selector);
 void lv_obj_set_style_pad_bottom(struct _lv_obj_t * obj, lv_coord_t value, lv_style_selector_t selector);
 void lv_obj_set_style_pad_left(struct _lv_obj_t * obj, lv_coord_t value, lv_style_selector_t selector);
@@ -567,10 +586,8 @@ void lv_obj_set_style_pad_right(struct _lv_obj_t * obj, lv_coord_t value, lv_sty
 void lv_obj_set_style_pad_row(struct _lv_obj_t * obj, lv_coord_t value, lv_style_selector_t selector);
 void lv_obj_set_style_pad_column(struct _lv_obj_t * obj, lv_coord_t value, lv_style_selector_t selector);
 void lv_obj_set_style_bg_color(struct _lv_obj_t * obj, lv_color_t value, lv_style_selector_t selector);
-void lv_obj_set_style_bg_color_filtered(struct _lv_obj_t * obj, lv_color_t value, lv_style_selector_t selector);
 void lv_obj_set_style_bg_opa(struct _lv_obj_t * obj, lv_opa_t value, lv_style_selector_t selector);
 void lv_obj_set_style_bg_grad_color(struct _lv_obj_t * obj, lv_color_t value, lv_style_selector_t selector);
-void lv_obj_set_style_bg_grad_color_filtered(struct _lv_obj_t * obj, lv_color_t value, lv_style_selector_t selector);
 void lv_obj_set_style_bg_grad_dir(struct _lv_obj_t * obj, lv_grad_dir_t value, lv_style_selector_t selector);
 void lv_obj_set_style_bg_main_stop(struct _lv_obj_t * obj, lv_coord_t value, lv_style_selector_t selector);
 void lv_obj_set_style_bg_grad_stop(struct _lv_obj_t * obj, lv_coord_t value, lv_style_selector_t selector);
@@ -579,18 +596,15 @@ void lv_obj_set_style_bg_dither_mode(struct _lv_obj_t * obj, lv_dither_mode_t va
 void lv_obj_set_style_bg_img_src(struct _lv_obj_t * obj, const void * value, lv_style_selector_t selector);
 void lv_obj_set_style_bg_img_opa(struct _lv_obj_t * obj, lv_opa_t value, lv_style_selector_t selector);
 void lv_obj_set_style_bg_img_recolor(struct _lv_obj_t * obj, lv_color_t value, lv_style_selector_t selector);
-void lv_obj_set_style_bg_img_recolor_filtered(struct _lv_obj_t * obj, lv_color_t value, lv_style_selector_t selector);
 void lv_obj_set_style_bg_img_recolor_opa(struct _lv_obj_t * obj, lv_opa_t value, lv_style_selector_t selector);
 void lv_obj_set_style_bg_img_tiled(struct _lv_obj_t * obj, bool value, lv_style_selector_t selector);
 void lv_obj_set_style_border_color(struct _lv_obj_t * obj, lv_color_t value, lv_style_selector_t selector);
-void lv_obj_set_style_border_color_filtered(struct _lv_obj_t * obj, lv_color_t value, lv_style_selector_t selector);
 void lv_obj_set_style_border_opa(struct _lv_obj_t * obj, lv_opa_t value, lv_style_selector_t selector);
 void lv_obj_set_style_border_width(struct _lv_obj_t * obj, lv_coord_t value, lv_style_selector_t selector);
 void lv_obj_set_style_border_side(struct _lv_obj_t * obj, lv_border_side_t value, lv_style_selector_t selector);
 void lv_obj_set_style_border_post(struct _lv_obj_t * obj, bool value, lv_style_selector_t selector);
 void lv_obj_set_style_outline_width(struct _lv_obj_t * obj, lv_coord_t value, lv_style_selector_t selector);
 void lv_obj_set_style_outline_color(struct _lv_obj_t * obj, lv_color_t value, lv_style_selector_t selector);
-void lv_obj_set_style_outline_color_filtered(struct _lv_obj_t * obj, lv_color_t value, lv_style_selector_t selector);
 void lv_obj_set_style_outline_opa(struct _lv_obj_t * obj, lv_opa_t value, lv_style_selector_t selector);
 void lv_obj_set_style_outline_pad(struct _lv_obj_t * obj, lv_coord_t value, lv_style_selector_t selector);
 void lv_obj_set_style_shadow_width(struct _lv_obj_t * obj, lv_coord_t value, lv_style_selector_t selector);
@@ -598,27 +612,22 @@ void lv_obj_set_style_shadow_ofs_x(struct _lv_obj_t * obj, lv_coord_t value, lv_
 void lv_obj_set_style_shadow_ofs_y(struct _lv_obj_t * obj, lv_coord_t value, lv_style_selector_t selector);
 void lv_obj_set_style_shadow_spread(struct _lv_obj_t * obj, lv_coord_t value, lv_style_selector_t selector);
 void lv_obj_set_style_shadow_color(struct _lv_obj_t * obj, lv_color_t value, lv_style_selector_t selector);
-void lv_obj_set_style_shadow_color_filtered(struct _lv_obj_t * obj, lv_color_t value, lv_style_selector_t selector);
 void lv_obj_set_style_shadow_opa(struct _lv_obj_t * obj, lv_opa_t value, lv_style_selector_t selector);
 void lv_obj_set_style_img_opa(struct _lv_obj_t * obj, lv_opa_t value, lv_style_selector_t selector);
 void lv_obj_set_style_img_recolor(struct _lv_obj_t * obj, lv_color_t value, lv_style_selector_t selector);
-void lv_obj_set_style_img_recolor_filtered(struct _lv_obj_t * obj, lv_color_t value, lv_style_selector_t selector);
 void lv_obj_set_style_img_recolor_opa(struct _lv_obj_t * obj, lv_opa_t value, lv_style_selector_t selector);
 void lv_obj_set_style_line_width(struct _lv_obj_t * obj, lv_coord_t value, lv_style_selector_t selector);
 void lv_obj_set_style_line_dash_width(struct _lv_obj_t * obj, lv_coord_t value, lv_style_selector_t selector);
 void lv_obj_set_style_line_dash_gap(struct _lv_obj_t * obj, lv_coord_t value, lv_style_selector_t selector);
 void lv_obj_set_style_line_rounded(struct _lv_obj_t * obj, bool value, lv_style_selector_t selector);
 void lv_obj_set_style_line_color(struct _lv_obj_t * obj, lv_color_t value, lv_style_selector_t selector);
-void lv_obj_set_style_line_color_filtered(struct _lv_obj_t * obj, lv_color_t value, lv_style_selector_t selector);
 void lv_obj_set_style_line_opa(struct _lv_obj_t * obj, lv_opa_t value, lv_style_selector_t selector);
 void lv_obj_set_style_arc_width(struct _lv_obj_t * obj, lv_coord_t value, lv_style_selector_t selector);
 void lv_obj_set_style_arc_rounded(struct _lv_obj_t * obj, bool value, lv_style_selector_t selector);
 void lv_obj_set_style_arc_color(struct _lv_obj_t * obj, lv_color_t value, lv_style_selector_t selector);
-void lv_obj_set_style_arc_color_filtered(struct _lv_obj_t * obj, lv_color_t value, lv_style_selector_t selector);
 void lv_obj_set_style_arc_opa(struct _lv_obj_t * obj, lv_opa_t value, lv_style_selector_t selector);
 void lv_obj_set_style_arc_img_src(struct _lv_obj_t * obj, const void * value, lv_style_selector_t selector);
 void lv_obj_set_style_text_color(struct _lv_obj_t * obj, lv_color_t value, lv_style_selector_t selector);
-void lv_obj_set_style_text_color_filtered(struct _lv_obj_t * obj, lv_color_t value, lv_style_selector_t selector);
 void lv_obj_set_style_text_opa(struct _lv_obj_t * obj, lv_opa_t value, lv_style_selector_t selector);
 void lv_obj_set_style_text_font(struct _lv_obj_t * obj, const lv_font_t * value, lv_style_selector_t selector);
 void lv_obj_set_style_text_letter_space(struct _lv_obj_t * obj, lv_coord_t value, lv_style_selector_t selector);
@@ -628,13 +637,12 @@ void lv_obj_set_style_text_align(struct _lv_obj_t * obj, lv_text_align_t value,
 void lv_obj_set_style_radius(struct _lv_obj_t * obj, lv_coord_t value, lv_style_selector_t selector);
 void lv_obj_set_style_clip_corner(struct _lv_obj_t * obj, bool value, lv_style_selector_t selector);
 void lv_obj_set_style_opa(struct _lv_obj_t * obj, lv_opa_t value, lv_style_selector_t selector);
-void lv_obj_set_style_color_filter_dsc(struct _lv_obj_t * obj, const lv_color_filter_dsc_t * value,
-                                       lv_style_selector_t selector);
+void lv_obj_set_style_color_filter_dsc(struct _lv_obj_t * obj, const lv_color_filter_dsc_t * value, lv_style_selector_t selector);
 void lv_obj_set_style_color_filter_opa(struct _lv_obj_t * obj, lv_opa_t value, lv_style_selector_t selector);
+void lv_obj_set_style_anim(struct _lv_obj_t * obj, const lv_anim_t * value, lv_style_selector_t selector);
 void lv_obj_set_style_anim_time(struct _lv_obj_t * obj, uint32_t value, lv_style_selector_t selector);
 void lv_obj_set_style_anim_speed(struct _lv_obj_t * obj, uint32_t value, lv_style_selector_t selector);
-void lv_obj_set_style_transition(struct _lv_obj_t * obj, const lv_style_transition_dsc_t * value,
-                                 lv_style_selector_t selector);
+void lv_obj_set_style_transition(struct _lv_obj_t * obj, const lv_style_transition_dsc_t * value, lv_style_selector_t selector);
 void lv_obj_set_style_blend_mode(struct _lv_obj_t * obj, lv_blend_mode_t value, lv_style_selector_t selector);
 void lv_obj_set_style_layout(struct _lv_obj_t * obj, uint16_t value, lv_style_selector_t selector);
 void lv_obj_set_style_base_dir(struct _lv_obj_t * obj, lv_base_dir_t value, lv_style_selector_t selector);
index cf82553..d3ad16a 100644 (file)
@@ -65,6 +65,7 @@ void lv_obj_del(lv_obj_t * obj)
 
     /*Call the ancestor's event handler to the parent to notify it about the child delete*/
     if(par) {
+        lv_obj_update_layout(par);
         lv_obj_readjust_scroll(par, LV_ANIM_OFF);
         lv_obj_scrollbar_invalidate(par);
         lv_event_send(par, LV_EVENT_CHILD_CHANGED, NULL);
index b9b569f..45ff2e0 100644 (file)
@@ -17,6 +17,7 @@
 #include "../misc/lv_gc.h"
 #include "../draw/lv_draw.h"
 #include "../font/lv_font_fmt_txt.h"
+#include "../extra/others/snapshot/lv_snapshot.h"
 
 #if LV_USE_PERF_MONITOR || LV_USE_MEM_MONITOR
     #include "../widgets/lv_label.h"
@@ -51,11 +52,12 @@ typedef struct {
  *  STATIC PROTOTYPES
  **********************/
 static void lv_refr_join_area(void);
-static void lv_refr_areas(void);
-static void lv_refr_area(const lv_area_t * area_p);
-static void lv_refr_area_part(lv_draw_ctx_t * draw_ctx);
+static void refr_invalid_areas(void);
+static void refr_area(const lv_area_t * area_p);
+static void refr_area_part(lv_draw_ctx_t * draw_ctx);
 static lv_obj_t * lv_refr_get_top_obj(const lv_area_t * area_p, lv_obj_t * obj);
-static void lv_refr_obj_and_children(lv_draw_ctx_t * draw_ctx, lv_obj_t * top_obj);
+static void refr_obj_and_children(lv_draw_ctx_t * draw_ctx, lv_obj_t * top_obj);
+static void refr_obj(lv_draw_ctx_t * draw_ctx, lv_obj_t * obj);
 static uint32_t get_max_row(lv_disp_t * disp, lv_coord_t area_w, lv_coord_t area_h);
 static void draw_buf_flush(lv_disp_t * disp);
 static void call_flush_cb(lv_disp_drv_t * drv, const lv_area_t * area, lv_color_t * color_p);
@@ -124,11 +126,8 @@ void lv_refr_now(lv_disp_t * disp)
     }
 }
 
-void lv_refr_obj(lv_draw_ctx_t * draw_ctx, lv_obj_t * obj)
+void lv_obj_redraw(lv_draw_ctx_t * draw_ctx, lv_obj_t * obj)
 {
-    /*Do not refresh hidden objects*/
-    if(lv_obj_has_flag(obj, LV_OBJ_FLAG_HIDDEN)) return;
-
     const lv_area_t * clip_area_ori = draw_ctx->clip_area;
     lv_area_t clip_coords_for_obj;
 
@@ -137,31 +136,33 @@ void lv_refr_obj(lv_draw_ctx_t * draw_ctx, lv_obj_t * obj)
     lv_obj_get_coords(obj, &obj_coords_ext);
     lv_coord_t ext_draw_size = _lv_obj_get_ext_draw_size(obj);
     lv_area_increase(&obj_coords_ext, ext_draw_size, ext_draw_size);
-    if(!_lv_area_intersect(&clip_coords_for_obj, clip_area_ori, &obj_coords_ext)) return;
-
-    draw_ctx->clip_area = &clip_coords_for_obj;
-
-    /*Draw the object*/
-    lv_event_send(obj, LV_EVENT_DRAW_MAIN_BEGIN, draw_ctx);
-    lv_event_send(obj, LV_EVENT_DRAW_MAIN, draw_ctx);
-    lv_event_send(obj, LV_EVENT_DRAW_MAIN_END, draw_ctx);
-
+    bool com_clip_res = _lv_area_intersect(&clip_coords_for_obj, clip_area_ori, &obj_coords_ext);
+    /*If the object is visible on the current clip area OR has overflow visible draw it.
+     *With overflow visible drawing should happen to apply the masks which might affect children */
+    bool should_draw = com_clip_res || lv_obj_has_flag(obj, LV_OBJ_FLAG_OVERFLOW_VISIBLE);
+    if(should_draw) {
+        draw_ctx->clip_area = &clip_coords_for_obj;
+
+        lv_event_send(obj, LV_EVENT_DRAW_MAIN_BEGIN, draw_ctx);
+        lv_event_send(obj, LV_EVENT_DRAW_MAIN, draw_ctx);
+        lv_event_send(obj, LV_EVENT_DRAW_MAIN_END, draw_ctx);
 #if LV_USE_REFR_DEBUG
-    lv_color_t debug_color = lv_color_make(lv_rand(0, 0xFF), lv_rand(0, 0xFF), lv_rand(0, 0xFF));
-    lv_draw_rect_dsc_t draw_dsc;
-    lv_draw_rect_dsc_init(&draw_dsc);
-    draw_dsc.bg_color.full = debug_color.full;
-    draw_dsc.bg_opa = LV_OPA_20;
-    draw_dsc.border_width = 1;
-    draw_dsc.border_opa = LV_OPA_30;
-    draw_dsc.border_color = debug_color;
-    lv_draw_rect(draw_ctx, &draw_dsc, &obj_coords_ext);
+        lv_color_t debug_color = lv_color_make(lv_rand(0, 0xFF), lv_rand(0, 0xFF), lv_rand(0, 0xFF));
+        lv_draw_rect_dsc_t draw_dsc;
+        lv_draw_rect_dsc_init(&draw_dsc);
+        draw_dsc.bg_color.full = debug_color.full;
+        draw_dsc.bg_opa = LV_OPA_20;
+        draw_dsc.border_width = 1;
+        draw_dsc.border_opa = LV_OPA_30;
+        draw_dsc.border_color = debug_color;
+        lv_draw_rect(draw_ctx, &draw_dsc, &obj_coords_ext);
 #endif
+    }
 
     /*With overflow visible keep the previous clip area to let the children visible out of this object too
      *With not overflow visible limit the clip are to the object's coordinates to clip the children*/
-    bool refr_children = true;
     lv_area_t clip_coords_for_children;
+    bool refr_children = true;
     if(lv_obj_has_flag(obj, LV_OBJ_FLAG_OVERFLOW_VISIBLE)) {
         clip_coords_for_children  = *clip_area_ori;
     }
@@ -177,20 +178,24 @@ void lv_refr_obj(lv_draw_ctx_t * draw_ctx, lv_obj_t * obj)
         uint32_t child_cnt = lv_obj_get_child_cnt(obj);
         for(i = 0; i < child_cnt; i++) {
             lv_obj_t * child = obj->spec_attr->children[i];
-            lv_refr_obj(draw_ctx, child);
+            refr_obj(draw_ctx, child);
         }
     }
 
-    draw_ctx->clip_area = &clip_coords_for_obj;
+    /*If the object was visible on the clip area call the post draw events too*/
+    if(should_draw) {
+        draw_ctx->clip_area = &clip_coords_for_obj;
 
-    /*If all the children are redrawn make 'post draw' draw*/
-    lv_event_send(obj, LV_EVENT_DRAW_POST_BEGIN, draw_ctx);
-    lv_event_send(obj, LV_EVENT_DRAW_POST, draw_ctx);
-    lv_event_send(obj, LV_EVENT_DRAW_POST_END, draw_ctx);
+        /*If all the children are redrawn make 'post draw' draw*/
+        lv_event_send(obj, LV_EVENT_DRAW_POST_BEGIN, draw_ctx);
+        lv_event_send(obj, LV_EVENT_DRAW_POST, draw_ctx);
+        lv_event_send(obj, LV_EVENT_DRAW_POST_END, draw_ctx);
+    }
 
     draw_ctx->clip_area = clip_area_ori;
 }
 
+
 /**
  * Invalidate an area on display to redraw it
  * @param area_p pointer to area which should be invalidated (NULL: delete the invalidated areas)
@@ -201,6 +206,12 @@ void _lv_inv_area(lv_disp_t * disp, const lv_area_t * area_p)
 {
     if(!disp) disp = lv_disp_get_default();
     if(!disp) return;
+    if(!lv_disp_is_invalidation_enabled(disp)) return;
+
+    if(disp->rendering_in_progress) {
+        LV_LOG_ERROR("detected modifying dirty areas in render");
+        return;
+    }
 
     /*Clear the invalidate buffer if the parameter is NULL*/
     if(area_p == NULL) {
@@ -310,16 +321,10 @@ void _lv_disp_refr_timer(lv_timer_t * tmr)
 
     lv_refr_join_area();
 
-    lv_refr_areas();
+    refr_invalid_areas();
 
     /*If refresh happened ...*/
     if(disp_refr->inv_p != 0) {
-        if(disp_refr->driver->full_refresh) {
-            lv_area_t disp_area;
-            lv_area_set(&disp_area, 0, 0, lv_disp_get_hor_res(disp_refr) - 1, lv_disp_get_ver_res(disp_refr) - 1);
-            disp_refr->driver->draw_ctx->buf_area = &disp_area;
-            draw_buf_flush(disp_refr);
-        }
 
         /*Clean up*/
         lv_memset_00(disp_refr->inv_areas, sizeof(disp_refr->inv_areas));
@@ -327,6 +332,7 @@ void _lv_disp_refr_timer(lv_timer_t * tmr)
         disp_refr->inv_p = 0;
 
         elaps = lv_tick_elaps(start);
+
         /*Call monitor cb if present*/
         if(disp_refr->driver->monitor_cb) {
             disp_refr->driver->monitor_cb(disp_refr->driver, elaps, px_num);
@@ -365,9 +371,16 @@ void _lv_disp_refr_timer(lv_timer_t * tmr)
     }
     else {
         perf_monitor.perf_last_time = lv_tick_get();
-        uint32_t fps_limit = 1000 / disp_refr->refr_timer->period;
+        uint32_t fps_limit;
         uint32_t fps;
 
+        if(disp_refr->refr_timer) {
+            fps_limit = 1000 / disp_refr->refr_timer->period;
+        }
+        else {
+            fps_limit = 1000 / LV_DISP_DEF_REFR_PERIOD;
+        }
+
         if(perf_monitor.elaps_sum == 0) {
             perf_monitor.elaps_sum = 1;
         }
@@ -413,8 +426,10 @@ void _lv_disp_refr_timer(lv_timer_t * tmr)
         uint32_t used_size = mon.total_size - mon.free_size;;
         uint32_t used_kb = used_size / 1024;
         uint32_t used_kb_tenth = (used_size - (used_kb * 1024)) / 102;
-        lv_label_set_text_fmt(mem_label, "%" LV_PRIu32 ".%" LV_PRIu32 " kB used (%d %%)\n" \
-                              "%d%% frag.", used_kb, used_kb_tenth, mon.used_pct,
+        lv_label_set_text_fmt(mem_label,
+                              "%"LV_PRIu32 ".%"LV_PRIu32 " kB used (%d %%)\n"
+                              "%d%% frag.",
+                              used_kb, used_kb_tenth, mon.used_pct,
                               mon.frag_pct);
     }
 #endif
@@ -483,7 +498,7 @@ static void lv_refr_join_area(void)
 /**
  * Refresh the joined areas
  */
-static void lv_refr_areas(void)
+static void refr_invalid_areas(void)
 {
     px_num = 0;
 
@@ -499,8 +514,14 @@ static void lv_refr_areas(void)
         }
     }
 
+    /*Notify the display driven rendering has started*/
+    if(disp_refr->driver->render_start_cb) {
+        disp_refr->driver->render_start_cb(disp_refr->driver);
+    }
+
     disp_refr->driver->draw_buf->last_area = 0;
     disp_refr->driver->draw_buf->last_part = 0;
+    disp_refr->rendering_in_progress = true;
 
     for(i = 0; i < disp_refr->inv_p; i++) {
         /*Refresh the unjoined areas*/
@@ -508,18 +529,20 @@ static void lv_refr_areas(void)
 
             if(i == last_i) disp_refr->driver->draw_buf->last_area = 1;
             disp_refr->driver->draw_buf->last_part = 0;
-            lv_refr_area(&disp_refr->inv_areas[i]);
+            refr_area(&disp_refr->inv_areas[i]);
 
             px_num += lv_area_get_size(&disp_refr->inv_areas[i]);
         }
     }
+
+    disp_refr->rendering_in_progress = false;
 }
 
 /**
  * Refresh an area if there is Virtual Display Buffer
  * @param area_p  pointer to an area to refresh
  */
-static void lv_refr_area(const lv_area_t * area_p)
+static void refr_area(const lv_area_t * area_p)
 {
     lv_draw_ctx_t * draw_ctx = disp_refr->driver->draw_ctx;
     draw_ctx->buf = disp_refr->driver->draw_buf->buf_act;
@@ -534,12 +557,12 @@ static void lv_refr_area(const lv_area_t * area_p)
         if(disp_refr->driver->full_refresh) {
             disp_refr->driver->draw_buf->last_part = 1;
             draw_ctx->clip_area = &disp_area;
-            lv_refr_area_part(draw_ctx);
+            refr_area_part(draw_ctx);
         }
         else {
             disp_refr->driver->draw_buf->last_part = disp_refr->driver->draw_buf->last_area;
             draw_ctx->clip_area = area_p;
-            lv_refr_area_part(draw_ctx);
+            refr_area_part(draw_ctx);
         }
         return;
     }
@@ -568,7 +591,7 @@ static void lv_refr_area(const lv_area_t * area_p)
         if(sub_area.y2 > y2) sub_area.y2 = y2;
         row_last = sub_area.y2;
         if(y2 == row_last) disp_refr->driver->draw_buf->last_part = 1;
-        lv_refr_area_part(draw_ctx);
+        refr_area_part(draw_ctx);
     }
 
     /*If the last y coordinates are not handled yet ...*/
@@ -582,20 +605,38 @@ static void lv_refr_area(const lv_area_t * area_p)
         draw_ctx->clip_area = &sub_area;
         draw_ctx->buf = disp_refr->driver->draw_buf->buf_act;
         disp_refr->driver->draw_buf->last_part = 1;
-        lv_refr_area_part(draw_ctx);
+        refr_area_part(draw_ctx);
     }
 }
 
-static void lv_refr_area_part(lv_draw_ctx_t * draw_ctx)
+static void refr_area_part(lv_draw_ctx_t * draw_ctx)
 {
     lv_disp_draw_buf_t * draw_buf = lv_disp_get_draw_buf(disp_refr);
 
+    if(draw_ctx->init_buf)
+        draw_ctx->init_buf(draw_ctx);
+
     /* Below the `area_p` area will be redrawn into the draw buffer.
-     * In single buffered mode wait here until the buffer is freed.*/
-    if(draw_buf->buf1 && !draw_buf->buf2) {
+     * In single buffered mode wait here until the buffer is freed.
+     * In full double buffered mode wait here while the buffers are swapped and a buffer becomes available*/
+    bool full_sized = draw_buf->size == (uint32_t)disp_refr->driver->hor_res * disp_refr->driver->ver_res;
+    if((draw_buf->buf1 && !draw_buf->buf2) ||
+       (draw_buf->buf1 && draw_buf->buf2 && full_sized)) {
         while(draw_buf->flushing) {
             if(disp_refr->driver->wait_cb) disp_refr->driver->wait_cb(disp_refr->driver);
         }
+
+        /*If the screen is transparent initialize it when the flushing is ready*/
+#if LV_COLOR_SCREEN_TRANSP
+        if(disp_refr->driver->screen_transp) {
+            if(disp_refr->driver->clear_cb) {
+                disp_refr->driver->clear_cb(disp_refr->driver, disp_refr->driver->draw_buf->buf_act, disp_refr->driver->draw_buf->size);
+            }
+            else {
+                lv_memset_00(disp_refr->driver->draw_buf->buf_act, disp_refr->driver->draw_buf->size * LV_IMG_PX_SIZE_ALPHA_BYTE);
+            }
+        }
+#endif
     }
 
     lv_obj_t * top_act_scr = NULL;
@@ -609,6 +650,9 @@ static void lv_refr_area_part(lv_draw_ctx_t * draw_ctx)
 
     /*Draw a display background if there is no top object*/
     if(top_act_scr == NULL && top_prev_scr == NULL) {
+        lv_area_t a;
+        lv_area_set(&a, 0, 0,
+                    lv_disp_get_hor_res(disp_refr) - 1, lv_disp_get_ver_res(disp_refr) - 1);
         if(draw_ctx->draw_bg) {
             lv_draw_rect_dsc_t dsc;
             lv_draw_rect_dsc_init(&dsc);
@@ -616,15 +660,12 @@ static void lv_refr_area_part(lv_draw_ctx_t * draw_ctx)
             dsc.bg_img_opa = disp_refr->bg_opa;
             dsc.bg_color = disp_refr->bg_color;
             dsc.bg_opa = disp_refr->bg_opa;
-            draw_ctx->draw_bg(draw_ctx, &dsc, draw_ctx->buf_area);
+            draw_ctx->draw_bg(draw_ctx, &dsc, &a);
         }
         else if(disp_refr->bg_img) {
             lv_img_header_t header;
-            lv_res_t res;
-            res = lv_img_decoder_get_info(disp_refr->bg_img, &header);
+            lv_res_t res = lv_img_decoder_get_info(disp_refr->bg_img, &header);
             if(res == LV_RES_OK) {
-                lv_area_t a;
-                lv_area_set(&a, 0, 0, header.w - 1, header.h - 1);
                 lv_draw_img_dsc_t dsc;
                 lv_draw_img_dsc_init(&dsc);
                 dsc.opa = disp_refr->bg_opa;
@@ -642,24 +683,33 @@ static void lv_refr_area_part(lv_draw_ctx_t * draw_ctx)
             lv_draw_rect(draw_ctx, &dsc, draw_ctx->buf_area);
         }
     }
-    /*Refresh the previous screen if any*/
-    if(disp_refr->prev_scr) {
-        if(top_prev_scr == NULL) top_prev_scr = disp_refr->prev_scr;
-        lv_refr_obj_and_children(draw_ctx, top_prev_scr);
+
+    if(disp_refr->draw_prev_over_act) {
+        if(top_act_scr == NULL) top_act_scr = disp_refr->act_scr;
+        refr_obj_and_children(draw_ctx, top_act_scr);
+
+        /*Refresh the previous screen if any*/
+        if(disp_refr->prev_scr) {
+            if(top_prev_scr == NULL) top_prev_scr = disp_refr->prev_scr;
+            refr_obj_and_children(draw_ctx, top_prev_scr);
+        }
     }
+    else {
+        /*Refresh the previous screen if any*/
+        if(disp_refr->prev_scr) {
+            if(top_prev_scr == NULL) top_prev_scr = disp_refr->prev_scr;
+            refr_obj_and_children(draw_ctx, top_prev_scr);
+        }
 
-    if(top_act_scr == NULL) top_act_scr = disp_refr->act_scr;
-    lv_refr_obj_and_children(draw_ctx, top_act_scr);
+        if(top_act_scr == NULL) top_act_scr = disp_refr->act_scr;
+        refr_obj_and_children(draw_ctx, top_act_scr);
+    }
 
     /*Also refresh top and sys layer unconditionally*/
-    lv_refr_obj_and_children(draw_ctx, lv_disp_get_layer_top(disp_refr));
-    lv_refr_obj_and_children(draw_ctx, lv_disp_get_layer_sys(disp_refr));
+    refr_obj_and_children(draw_ctx, lv_disp_get_layer_top(disp_refr));
+    refr_obj_and_children(draw_ctx, lv_disp_get_layer_sys(disp_refr));
 
-    /*In true double buffered mode flush only once when all areas were rendered.
-     *In normal mode flush after every area*/
-    if(disp_refr->driver->full_refresh == false) {
-        draw_buf_flush(disp_refr);
-    }
+    draw_buf_flush(disp_refr);
 }
 
 /**
@@ -672,32 +722,32 @@ static lv_obj_t * lv_refr_get_top_obj(const lv_area_t * area_p, lv_obj_t * obj)
 {
     lv_obj_t * found_p = NULL;
 
+    if(_lv_area_is_in(area_p, &obj->coords, 0) == false) return NULL;
+    if(lv_obj_has_flag(obj, LV_OBJ_FLAG_HIDDEN)) return NULL;
+    if(_lv_obj_get_layer_type(obj) != LV_LAYER_TYPE_NONE) return NULL;
+
     /*If this object is fully cover the draw area then check the children too*/
-    if(_lv_area_is_in(area_p, &obj->coords, 0) && lv_obj_has_flag(obj, LV_OBJ_FLAG_HIDDEN) == false) {
-        lv_cover_check_info_t info;
-        info.res = LV_COVER_RES_COVER;
-        info.area = area_p;
-        lv_event_send(obj, LV_EVENT_COVER_CHECK, &info);
-        if(info.res == LV_COVER_RES_MASKED) return NULL;
+    lv_cover_check_info_t info;
+    info.res = LV_COVER_RES_COVER;
+    info.area = area_p;
+    lv_event_send(obj, LV_EVENT_COVER_CHECK, &info);
+    if(info.res == LV_COVER_RES_MASKED) return NULL;
 
-        uint32_t i;
-        uint32_t child_cnt = lv_obj_get_child_cnt(obj);
-        for(i = 0; i < child_cnt; i++) {
-            lv_obj_t * child = obj->spec_attr->children[i];
-            found_p = lv_refr_get_top_obj(area_p, child);
+    int32_t i;
+    int32_t child_cnt = lv_obj_get_child_cnt(obj);
+    for(i = child_cnt - 1; i >= 0; i--) {
+        lv_obj_t * child = obj->spec_attr->children[i];
+        found_p = lv_refr_get_top_obj(area_p, child);
 
-            /*If a children is ok then break*/
-            if(found_p != NULL) {
-                break;
-            }
+        /*If a children is ok then break*/
+        if(found_p != NULL) {
+            break;
         }
+    }
 
-        /*If no better children use this object*/
-        if(found_p == NULL) {
-            if(info.res == LV_COVER_RES_COVER) {
-                found_p = obj;
-            }
-        }
+    /*If no better children use this object*/
+    if(found_p == NULL && info.res == LV_COVER_RES_COVER) {
+        found_p = obj;
     }
 
     return found_p;
@@ -708,7 +758,7 @@ static lv_obj_t * lv_refr_get_top_obj(const lv_area_t * area_p, lv_obj_t * obj)
  * @param top_p pointer to an objects. Start the drawing from it.
  * @param mask_p pointer to an area, the objects will be drawn only here
  */
-static void lv_refr_obj_and_children(lv_draw_ctx_t * draw_ctx, lv_obj_t * top_obj)
+static void refr_obj_and_children(lv_draw_ctx_t * draw_ctx, lv_obj_t * top_obj)
 {
     /*Normally always will be a top_obj (at least the screen)
      *but in special cases (e.g. if the screen has alpha) it won't.
@@ -717,7 +767,7 @@ static void lv_refr_obj_and_children(lv_draw_ctx_t * draw_ctx, lv_obj_t * top_ob
     if(top_obj == NULL) return;  /*Shouldn't happen*/
 
     /*Refresh the top object and its children*/
-    lv_refr_obj(draw_ctx, top_obj);
+    refr_obj(draw_ctx, top_obj);
 
     /*Draw the 'younger' sibling objects because they can be on top_obj*/
     lv_obj_t * parent;
@@ -737,7 +787,7 @@ static void lv_refr_obj_and_children(lv_draw_ctx_t * draw_ctx, lv_obj_t * top_ob
             }
             else {
                 /*Refresh the objects*/
-                lv_refr_obj(draw_ctx, child);
+                refr_obj(draw_ctx, child);
             }
         }
 
@@ -754,6 +804,167 @@ static void lv_refr_obj_and_children(lv_draw_ctx_t * draw_ctx, lv_obj_t * top_ob
     }
 }
 
+
+static lv_res_t layer_get_area(lv_draw_ctx_t * draw_ctx, lv_obj_t * obj, lv_layer_type_t layer_type,
+                               lv_area_t * layer_area_out)
+{
+    lv_coord_t ext_draw_size = _lv_obj_get_ext_draw_size(obj);
+    lv_area_t obj_coords_ext;
+    lv_obj_get_coords(obj, &obj_coords_ext);
+    lv_area_increase(&obj_coords_ext, ext_draw_size, ext_draw_size);
+
+    if(layer_type == LV_LAYER_TYPE_TRANSFORM) {
+        /*Get the transformed area and clip it to the current clip area.
+         *This area needs to be updated on the screen.*/
+        lv_area_t clip_coords_for_obj;
+        lv_area_t tranf_coords = obj_coords_ext;
+        lv_obj_get_transformed_area(obj, &tranf_coords, false, false);
+        if(!_lv_area_intersect(&clip_coords_for_obj, draw_ctx->clip_area, &tranf_coords)) {
+            return LV_RES_INV;
+        }
+
+        /*Transform back (inverse) the transformed area.
+         *It will tell which area of the non-transformed widget needs to be redrawn
+         *in order to cover transformed area after transformation.*/
+        lv_area_t inverse_clip_coords_for_obj = clip_coords_for_obj;
+        lv_obj_get_transformed_area(obj, &inverse_clip_coords_for_obj, false, true);
+        if(!_lv_area_intersect(&inverse_clip_coords_for_obj, &inverse_clip_coords_for_obj, &obj_coords_ext)) {
+            return LV_RES_INV;
+        }
+
+        *layer_area_out = inverse_clip_coords_for_obj;
+    }
+    else if(layer_type == LV_LAYER_TYPE_SIMPLE) {
+        lv_area_t clip_coords_for_obj;
+        if(!_lv_area_intersect(&clip_coords_for_obj, draw_ctx->clip_area, &obj_coords_ext)) {
+            return LV_RES_INV;
+        }
+        *layer_area_out = clip_coords_for_obj;
+    }
+    else {
+        LV_LOG_WARN("Unhandled intermediate layer type");
+        return LV_RES_INV;
+    }
+
+    return LV_RES_OK;
+}
+
+static void layer_alpha_test(lv_obj_t * obj, lv_draw_ctx_t * draw_ctx, lv_draw_layer_ctx_t * layer_ctx,
+                             lv_draw_layer_flags_t flags)
+{
+    bool has_alpha;
+    /*If globally the layer has alpha maybe this smaller section has not (e.g. not on a rounded corner)
+     *If turns out that this section has no alpha renderer can choose faster algorithms*/
+    if(flags & LV_DRAW_LAYER_FLAG_HAS_ALPHA) {
+        /*Test for alpha by assuming there is no alpha. If it fails, fall back to rendering with alpha*/
+        has_alpha = true;
+        if(_lv_area_is_in(&layer_ctx->area_act, &obj->coords, 0)) {
+            lv_cover_check_info_t info;
+            info.res = LV_COVER_RES_COVER;
+            info.area = &layer_ctx->area_act;
+            lv_event_send(obj, LV_EVENT_COVER_CHECK, &info);
+            if(info.res == LV_COVER_RES_COVER) has_alpha = false;
+        }
+
+        if(has_alpha) {
+            layer_ctx->area_act.y2 = layer_ctx->area_act.y1 + layer_ctx->max_row_with_alpha - 1;
+        }
+    }
+    else {
+        has_alpha = false;
+    }
+
+    if(layer_ctx->area_act.y2 > layer_ctx->area_full.y2) layer_ctx->area_act.y2 = layer_ctx->area_full.y2;
+    lv_draw_layer_adjust(draw_ctx, layer_ctx, has_alpha ? LV_DRAW_LAYER_FLAG_HAS_ALPHA : LV_DRAW_LAYER_FLAG_NONE);
+}
+
+
+void refr_obj(lv_draw_ctx_t * draw_ctx, lv_obj_t * obj)
+{
+    /*Do not refresh hidden objects*/
+    if(lv_obj_has_flag(obj, LV_OBJ_FLAG_HIDDEN)) return;
+    lv_layer_type_t layer_type = _lv_obj_get_layer_type(obj);
+    if(layer_type == LV_LAYER_TYPE_NONE) {
+        lv_obj_redraw(draw_ctx, obj);
+    }
+    else {
+        lv_opa_t opa = lv_obj_get_style_opa(obj, 0);
+        if(opa < LV_OPA_MIN) return;
+
+        lv_area_t layer_area_full;
+        lv_res_t res = layer_get_area(draw_ctx, obj, layer_type, &layer_area_full);
+        if(res != LV_RES_OK) return;
+
+        lv_draw_layer_flags_t flags = LV_DRAW_LAYER_FLAG_HAS_ALPHA;
+
+        if(_lv_area_is_in(&layer_area_full, &obj->coords, 0)) {
+            lv_cover_check_info_t info;
+            info.res = LV_COVER_RES_COVER;
+            info.area = &layer_area_full;
+            lv_event_send(obj, LV_EVENT_COVER_CHECK, &info);
+            if(info.res == LV_COVER_RES_COVER) flags &= ~LV_DRAW_LAYER_FLAG_HAS_ALPHA;
+        }
+
+        if(layer_type == LV_LAYER_TYPE_SIMPLE) flags |= LV_DRAW_LAYER_FLAG_CAN_SUBDIVIDE;
+
+        lv_draw_layer_ctx_t * layer_ctx = lv_draw_layer_create(draw_ctx, &layer_area_full, flags);
+        if(layer_ctx == NULL) {
+            LV_LOG_WARN("Couldn't create a new layer context");
+            return;
+        }
+        lv_point_t pivot = {
+            .x = lv_obj_get_style_transform_pivot_x(obj, 0),
+            .y = lv_obj_get_style_transform_pivot_y(obj, 0)
+        };
+
+        if(LV_COORD_IS_PCT(pivot.x)) {
+            pivot.x = (LV_COORD_GET_PCT(pivot.x) * lv_area_get_width(&obj->coords)) / 100;
+        }
+        if(LV_COORD_IS_PCT(pivot.y)) {
+            pivot.y = (LV_COORD_GET_PCT(pivot.y) * lv_area_get_height(&obj->coords)) / 100;
+        }
+
+        lv_draw_img_dsc_t draw_dsc;
+        lv_draw_img_dsc_init(&draw_dsc);
+        draw_dsc.opa = opa;
+        draw_dsc.angle = lv_obj_get_style_transform_angle(obj, 0);
+        if(draw_dsc.angle > 3600) draw_dsc.angle -= 3600;
+        else if(draw_dsc.angle < 0) draw_dsc.angle += 3600;
+
+        draw_dsc.zoom = lv_obj_get_style_transform_zoom(obj, 0);
+        draw_dsc.blend_mode = lv_obj_get_style_blend_mode(obj, 0);
+        draw_dsc.antialias = disp_refr->driver->antialiasing;
+
+        if(flags & LV_DRAW_LAYER_FLAG_CAN_SUBDIVIDE) {
+            layer_ctx->area_act = layer_ctx->area_full;
+            layer_ctx->area_act.y2 = layer_ctx->area_act.y1 + layer_ctx->max_row_with_no_alpha - 1;
+            if(layer_ctx->area_act.y2 > layer_ctx->area_full.y2) layer_ctx->area_act.y2 = layer_ctx->area_full.y2;
+        }
+
+        while(layer_ctx->area_act.y1 <= layer_area_full.y2) {
+            if(flags & LV_DRAW_LAYER_FLAG_CAN_SUBDIVIDE) {
+                layer_alpha_test(obj, draw_ctx, layer_ctx, flags);
+            }
+
+            lv_obj_redraw(draw_ctx, obj);
+
+            draw_dsc.pivot.x = obj->coords.x1 + pivot.x - draw_ctx->buf_area->x1;
+            draw_dsc.pivot.y = obj->coords.y1 + pivot.y - draw_ctx->buf_area->y1;
+
+            /*With LV_DRAW_LAYER_FLAG_CAN_SUBDIVIDE it should also go the next chunk*/
+            lv_draw_layer_blend(draw_ctx, layer_ctx, &draw_dsc);
+
+            if((flags & LV_DRAW_LAYER_FLAG_CAN_SUBDIVIDE) == 0) break;
+
+            layer_ctx->area_act.y1 = layer_ctx->area_act.y2 + 1;
+            layer_ctx->area_act.y2 = layer_ctx->area_act.y1 + layer_ctx->max_row_with_no_alpha - 1;
+        }
+
+        lv_draw_layer_destroy(draw_ctx, layer_ctx);
+    }
+}
+
+
 static uint32_t get_max_row(lv_disp_t * disp, lv_coord_t area_w, lv_coord_t area_h)
 {
     int32_t max_row = (uint32_t)disp->driver->draw_buf->size / area_w;
@@ -980,9 +1191,10 @@ static void draw_buf_flush(lv_disp_t * disp)
     lv_draw_ctx_t * draw_ctx = disp->driver->draw_ctx;
     if(draw_ctx->wait_for_finish) draw_ctx->wait_for_finish(draw_ctx);
 
-    /* In double buffered mode wait until the other buffer is freed
+    /* In partial double buffered mode wait until the other buffer is freed
      * and driver is ready to receive the new buffer */
-    if(draw_buf->buf1 && draw_buf->buf2) {
+    bool full_sized = draw_buf->size == (uint32_t)disp_refr->driver->hor_res * disp_refr->driver->ver_res;
+    if(draw_buf->buf1 && draw_buf->buf2 && !full_sized) {
         while(draw_buf->flushing) {
             if(disp_refr->driver->wait_cb) disp_refr->driver->wait_cb(disp_refr->driver);
         }
@@ -1004,6 +1216,7 @@ static void draw_buf_flush(lv_disp_t * disp)
             call_flush_cb(disp->driver, draw_ctx->buf_area, draw_ctx->buf);
         }
     }
+
     /*If there are 2 buffers swap them. With direct mode swap only on the last area*/
     if(draw_buf->buf1 && draw_buf->buf2 && (!disp->driver->direct_mode || flushing_last)) {
         if(draw_buf->buf_act == draw_buf->buf1)
index 984168a..72e8d6c 100644 (file)
@@ -61,7 +61,7 @@ void lv_refr_now(lv_disp_t * disp);
  * @param draw  pointer to an initialized draw context
  * @param obj   the start object from the redraw should start
  */
-void lv_refr_obj(lv_draw_ctx_t * draw_ctx, lv_obj_t * obj);
+void lv_obj_redraw(lv_draw_ctx_t * draw_ctx, lv_obj_t * obj);
 
 /**
  * Invalidate an area on display to redraw it
index 116e3b2..823f707 100644 (file)
 
 void lv_draw_init(void)
 {
-    //    backend_head = NULL;
-    //    lv_draw_sw_init();
-    //
-    //#if LV_USE_GPU_STM32_DMA2D == 0
-    //    lv_gpu_stm32_dma2d_init();
-    //#endif
+    /*Nothing to init now*/
+}
+
+void lv_draw_wait_for_finish(lv_draw_ctx_t * draw_ctx)
+{
+    if(draw_ctx->wait_for_finish) draw_ctx->wait_for_finish(draw_ctx);
 }
 
 /**********************
index 8e3c6cb..ffe1d4e 100644 (file)
@@ -27,6 +27,8 @@ extern "C" {
 #include "lv_draw_triangle.h"
 #include "lv_draw_arc.h"
 #include "lv_draw_mask.h"
+#include "lv_draw_transform.h"
+#include "lv_draw_layer.h"
 
 /*********************
  *      DEFINES
@@ -40,6 +42,19 @@ typedef struct {
     void * user_data;
 } lv_draw_mask_t;
 
+typedef struct _lv_draw_layer_ctx_t {
+    lv_area_t area_full;
+    lv_area_t area_act;
+    lv_coord_t max_row_with_alpha;
+    lv_coord_t max_row_with_no_alpha;
+    void * buf;
+    struct {
+        const lv_area_t * clip_area;
+        lv_area_t * buf_area;
+        void * buf;
+        bool screen_transp;
+    } original;
+} lv_draw_layer_ctx_t;
 
 typedef struct _lv_draw_ctx_t  {
     /**
@@ -57,6 +72,7 @@ typedef struct _lv_draw_ctx_t  {
      */
     const lv_area_t * clip_area;
 
+    void (*init_buf)(struct _lv_draw_ctx_t * draw_ctx);
 
     void (*draw_rect)(struct _lv_draw_ctx_t * draw_ctx, const lv_draw_rect_dsc_t * dsc, const lv_area_t * coords);
 
@@ -80,6 +96,24 @@ typedef struct _lv_draw_ctx_t  {
     void (*draw_polygon)(struct _lv_draw_ctx_t * draw_ctx, const lv_draw_rect_dsc_t * draw_dsc,
                          const lv_point_t * points, uint16_t point_cnt);
 
+
+    /**
+     * Get an area of a transformed image (zoomed and/or rotated)
+     * @param draw_ctx      pointer to a draw context
+     * @param dest_area     get this area of the result image. It assumes that the original image is placed to the 0;0 position.
+     * @param src_buf       the source image
+     * @param src_w         width of the source image in [px]
+     * @param src_h         height of the source image in [px]
+     * @param src_stride    the stride in [px].
+     * @param draw_dsc      an `lv_draw_img_dsc_t` descriptor containing the transformation parameters
+     * @param cf            the color format of `src_buf`
+     * @param cbuf          place the colors of the pixels on `dest_area` here in RGB format
+     * @param abuf          place the opacity of the pixels on `dest_area` here
+     */
+    void (*draw_transform)(struct _lv_draw_ctx_t * draw_ctx, const lv_area_t * dest_area, const void * src_buf,
+                           lv_coord_t src_w, lv_coord_t src_h, lv_coord_t src_stride,
+                           const lv_draw_img_dsc_t * draw_dsc, lv_img_cf_t cf, lv_color_t * cbuf, lv_opa_t * abuf);
+
     /**
      * Replace the buffer with a rect without decoration like radius or borders
      */
@@ -88,7 +122,68 @@ typedef struct _lv_draw_ctx_t  {
     /**
      * Wait until all background operations are finished. (E.g. GPU operations)
      */
-    void (*wait_for_finish)(struct _lv_draw_ctx_t * draw);
+    void (*wait_for_finish)(struct _lv_draw_ctx_t * draw_ctx);
+
+    /**
+     * Copy an area from buffer to an other
+     * @param draw_ctx      pointer to a draw context
+     * @param dest_buf      copy the buffer into this buffer
+     * @param dest_stride   the width of the dest_buf in pixels
+     * @param dest_area     the destination area
+     * @param src_buf       copy from this buffer
+     * @param src_stride    the width of src_buf in pixels
+     * @param src_area      the source area.
+     *
+     * @note dest_area and src_area must have the same width and height
+     *       but can have different x and y position.
+     * @note dest_area and src_area must be clipped to the real dimensions of the buffers
+     */
+    void (*buffer_copy)(struct _lv_draw_ctx_t * draw_ctx, void * dest_buf, lv_coord_t dest_stride,
+                        const lv_area_t * dest_area,
+                        void * src_buf, lv_coord_t src_stride, const lv_area_t * src_area);
+
+    /**
+     * Initialize a new layer context.
+     * The original buffer and area data are already saved from `draw_ctx` to `layer_ctx`
+     * @param draw_ctx      pointer to the current draw context
+     * @param layer_area    the coordinates of the layer
+     * @param flags         OR-ed flags from @lv_draw_layer_flags_t
+     * @return              pointer to the layer context, or NULL on error
+     */
+    struct _lv_draw_layer_ctx_t * (*layer_init)(struct _lv_draw_ctx_t * draw_ctx, struct _lv_draw_layer_ctx_t * layer_ctx,
+                                                lv_draw_layer_flags_t flags);
+
+    /**
+     * Adjust the layer_ctx and/or draw_ctx based on the `layer_ctx->area_act`.
+     * It's called only if flags has `LV_DRAW_LAYER_FLAG_CAN_SUBDIVIDE`
+     * @param draw_ctx      pointer to the current draw context
+     * @param layer_ctx     pointer to a layer context
+     * @param flags         OR-ed flags from @lv_draw_layer_flags_t
+     */
+    void (*layer_adjust)(struct _lv_draw_ctx_t * draw_ctx, struct _lv_draw_layer_ctx_t * layer_ctx,
+                         lv_draw_layer_flags_t flags);
+
+    /**
+     * Blend a rendered layer to `layer_ctx->area_act`
+     * @param draw_ctx      pointer to the current draw context
+     * @param layer_ctx     pointer to a layer context
+     * @param draw_dsc      pointer to an image draw descriptor
+     */
+    void (*layer_blend)(struct _lv_draw_ctx_t * draw_ctx, struct _lv_draw_layer_ctx_t * layer_ctx,
+                        const lv_draw_img_dsc_t * draw_dsc);
+
+    /**
+     * Destroy a layer context. The original buffer and area data of the `draw_ctx` will be restored
+     * and the `layer_ctx` itself will be freed automatically.
+     * @param draw_ctx      pointer to the current draw context
+     * @param layer_ctx     pointer to a layer context
+     */
+    void (*layer_destroy)(struct _lv_draw_ctx_t * draw_ctx, lv_draw_layer_ctx_t * layer_ctx);
+
+    /**
+     * Size of a layer context in bytes.
+     */
+    size_t layer_instance_size;
 
 #if LV_USE_USER_DATA
     void * user_data;
@@ -102,6 +197,9 @@ typedef struct _lv_draw_ctx_t  {
 
 void lv_draw_init(void);
 
+
+void lv_draw_wait_for_finish(lv_draw_ctx_t * draw_ctx);
+
 /**********************
  *  GLOBAL VARIABLES
  **********************/
index f8ca7b1..f48f48f 100644 (file)
@@ -1,13 +1,25 @@
-lvgl_SRCS  += $(LVGL_DIR_NAME)/src/draw/lv_draw_arc.c
-lvgl_SRCS  += $(LVGL_DIR_NAME)/src/draw/lv_draw.c
-lvgl_SRCS  += $(LVGL_DIR_NAME)/src/draw/lv_draw_img.c
-lvgl_SRCS  += $(LVGL_DIR_NAME)/src/draw/lv_draw_label.c
-lvgl_SRCS  += $(LVGL_DIR_NAME)/src/draw/lv_draw_line.c
-lvgl_SRCS  += $(LVGL_DIR_NAME)/src/draw/lv_draw_mask.c
-lvgl_SRCS  += $(LVGL_DIR_NAME)/src/draw/lv_draw_rect.c
-lvgl_SRCS  += $(LVGL_DIR_NAME)/src/draw/lv_draw_triangle.c
-lvgl_SRCS  += $(LVGL_DIR_NAME)/src/draw/lv_img_buf.c
-lvgl_SRCS  += $(LVGL_DIR_NAME)/src/draw/lv_img_cache.c
-lvgl_SRCS  += $(LVGL_DIR_NAME)/src/draw/lv_img_decoder.c
+CSRCS += lv_draw_arc.c
+CSRCS += lv_draw.c
+CSRCS += lv_draw_img.c
+CSRCS += lv_draw_label.c
+CSRCS += lv_draw_line.c
+CSRCS += lv_draw_mask.c
+CSRCS += lv_draw_rect.c
+CSRCS += lv_draw_transform.c
+CSRCS += lv_draw_layer.c
+CSRCS += lv_draw_triangle.c
+CSRCS += lv_img_buf.c
+CSRCS += lv_img_cache.c
+CSRCS += lv_img_decoder.c
 
+DEPPATH += --dep-path $(LVGL_DIR)/$(LVGL_DIR_NAME)/src/draw
+VPATH += :$(LVGL_DIR)/$(LVGL_DIR_NAME)/src/draw
+
+CFLAGS += "-I$(LVGL_DIR)/$(LVGL_DIR_NAME)/src/draw"
+
+include $(LVGL_DIR)/$(LVGL_DIR_NAME)/src/draw/arm2d/lv_draw_arm2d.mk
+include $(LVGL_DIR)/$(LVGL_DIR_NAME)/src/draw/nxp/lv_draw_nxp.mk
 include $(LVGL_DIR)/$(LVGL_DIR_NAME)/src/draw/sdl/lv_draw_sdl.mk
+include $(LVGL_DIR)/$(LVGL_DIR_NAME)/src/draw/stm32_dma2d/lv_draw_stm32_dma2d.mk
+include $(LVGL_DIR)/$(LVGL_DIR_NAME)/src/draw/sw/lv_draw_sw.mk
+include $(LVGL_DIR)/$(LVGL_DIR_NAME)/src/draw/swm341_dma2d/lv_draw_swm341_dma2d.mk
index 3209132..1e83eaf 100644 (file)
@@ -69,18 +69,19 @@ void lv_draw_img(lv_draw_ctx_t * draw_ctx, const lv_draw_img_dsc_t * dsc, const
 
     if(dsc->opa <= LV_OPA_MIN) return;
 
-    lv_res_t res;
+    lv_res_t res = LV_RES_INV;
+
     if(draw_ctx->draw_img) {
         res = draw_ctx->draw_img(draw_ctx, dsc, coords, src);
     }
-    else {
+
+    if(res != LV_RES_OK) {
         res = decode_and_draw(draw_ctx, dsc, coords, src);
     }
 
-    if(res == LV_RES_INV) {
+    if(res != LV_RES_OK) {
         LV_LOG_WARN("Image draw error");
         show_error(draw_ctx, coords, "No\ndata");
-        return;
     }
 }
 
@@ -197,11 +198,19 @@ lv_img_src_t lv_img_src_get_type(const void * src)
     if(src == NULL) return img_src_type;
     const uint8_t * u8_p = src;
 
-    /*The first byte shows the type of the image source*/
+    /*The first or fourth byte depending on platform endianess shows the type of the image source*/
+#if LV_BIG_ENDIAN_SYSTEM
+    if(u8_p[3] >= 0x20 && u8_p[3] <= 0x7F) {
+#else
     if(u8_p[0] >= 0x20 && u8_p[0] <= 0x7F) {
+#endif
         img_src_type = LV_IMG_SRC_FILE; /*If it's an ASCII character then it's file name*/
     }
+#if LV_BIG_ENDIAN_SYSTEM
+    else if(u8_p[3] >= 0x80) {
+#else
     else if(u8_p[0] >= 0x80) {
+#endif
         img_src_type = LV_IMG_SRC_SYMBOL; /*Symbols begins after 0x7F*/
     }
     else {
@@ -236,12 +245,21 @@ LV_ATTRIBUTE_FAST_MEM static lv_res_t decode_and_draw(lv_draw_ctx_t * draw_ctx,
 
     if(cdsc == NULL) return LV_RES_INV;
 
-
     lv_img_cf_t cf;
     if(lv_img_cf_is_chroma_keyed(cdsc->dec_dsc.header.cf)) cf = LV_IMG_CF_TRUE_COLOR_CHROMA_KEYED;
+    else if(LV_IMG_CF_ALPHA_8BIT == cdsc->dec_dsc.header.cf) cf = LV_IMG_CF_ALPHA_8BIT;
+    else if(LV_IMG_CF_RGB565A8 == cdsc->dec_dsc.header.cf) cf = LV_IMG_CF_RGB565A8;
     else if(lv_img_cf_has_alpha(cdsc->dec_dsc.header.cf)) cf = LV_IMG_CF_TRUE_COLOR_ALPHA;
     else cf = LV_IMG_CF_TRUE_COLOR;
 
+    if(cf == LV_IMG_CF_ALPHA_8BIT) {
+        if(draw_dsc->angle || draw_dsc->zoom != LV_IMG_ZOOM_NONE) {
+            /* resume normal method */
+            cf = LV_IMG_CF_TRUE_COLOR_ALPHA;
+            cdsc->dec_dsc.img_data = NULL;
+        }
+    }
+
     if(cdsc->dec_dsc.error_msg != NULL) {
         LV_LOG_WARN("Image draw error");
 
index 504beda..a88a33c 100644 (file)
@@ -31,7 +31,7 @@ extern "C" {
 
 typedef struct {
 
-    uint16_t angle;
+    int16_t angle;
     uint16_t zoom;
     lv_point_t pivot;
 
index 8569c7d..7f80df4 100644 (file)
@@ -202,7 +202,7 @@ LV_ATTRIBUTE_FAST_MEM void lv_draw_label(lv_draw_ctx_t * draw_ctx, const lv_draw
     cmd_state_t cmd_state = CMD_STATE_WAIT;
     uint32_t i;
     uint32_t par_start = 0;
-    lv_color_t recolor;
+    lv_color_t recolor  = lv_color_black();
     lv_color_t color = lv_color_black();
     int32_t letter_w;
 
index 430fd56..2170da9 100644 (file)
@@ -202,7 +202,7 @@ void * lv_draw_mask_remove_custom(void * custom_id)
 
 /**
  * Free the data from the parameter.
- * It's called inside  `lv_draw_mask_remove_id` and `lv_draw_mask_remove_custom`
+ * It's called inside `lv_draw_mask_remove_id` and `lv_draw_mask_remove_custom`
  * Needs to be called only in special cases when the mask is not added by `lv_draw_mask_add`
  * and not removed by `lv_draw_mask_remove_id` or `lv_draw_mask_remove_custom`
  * @param p pointer to a mask parameter
@@ -446,9 +446,6 @@ void lv_draw_mask_angle_init(lv_draw_mask_angle_param_t * param, lv_coord_t vert
     if(start_angle >= 0 && start_angle < 180) {
         start_side = LV_DRAW_MASK_LINE_SIDE_LEFT;
     }
-    else if(start_angle >= 180 && start_angle < 360) {
-        start_side = LV_DRAW_MASK_LINE_SIDE_RIGHT;
-    }
     else
         start_side = LV_DRAW_MASK_LINE_SIDE_RIGHT; /*silence compiler*/
 
index b6ec14f..b7e4e1c 100644 (file)
@@ -280,7 +280,7 @@ void * lv_draw_mask_remove_custom(void * custom_id);
 
 /**
  * Free the data from the parameter.
- * It's called inside  `lv_draw_mask_remove_id` and `lv_draw_mask_remove_custom`
+ * It's called inside `lv_draw_mask_remove_id` and `lv_draw_mask_remove_custom`
  * Needs to be called only in special cases when the mask is not added by `lv_draw_mask_add`
  * and not removed by `lv_draw_mask_remove_id` or `lv_draw_mask_remove_custom`
  * @param p pointer to a mask parameter
index 8cb4288..f34854d 100644 (file)
@@ -38,9 +38,7 @@ LV_ATTRIBUTE_FAST_MEM void lv_draw_rect_dsc_init(lv_draw_rect_dsc_t * dsc)
 {
     lv_memset_00(dsc, sizeof(lv_draw_rect_dsc_t));
     dsc->bg_color = lv_color_white();
-#if __STDC_VERSION__ < 201112L
     dsc->bg_grad.stops[0].color = lv_color_white();
-#endif
     dsc->bg_grad.stops[1].color = lv_color_black();
     dsc->bg_grad.stops[1].frac = 0xFF;
     dsc->bg_grad.stops_count = 2;
index efa630c..1583e3e 100644 (file)
@@ -35,14 +35,8 @@ typedef struct {
 
     /*Background*/
     lv_opa_t bg_opa;
-#if __STDC_VERSION__ >= 201112L
-    union {
-#endif
-        lv_color_t bg_color;        /**< First element of a gradient is a color, so it maps well here*/
-        lv_grad_dsc_t bg_grad;
-#if __STDC_VERSION__ >= 201112L
-    };
-#endif
+    lv_color_t bg_color;        /**< First element of a gradient is a color, so it maps well here*/
+    lv_grad_dsc_t bg_grad;
 
     /*Background img*/
     const void * bg_img_src;
index a6d0efc..4c939dd 100644 (file)
@@ -54,7 +54,7 @@ lv_color_t lv_img_buf_get_px_color(lv_img_dsc_t * dsc, lv_coord_t x, lv_coord_t
     uint8_t * buf_u8 = (uint8_t *)dsc->data;
 
     if(dsc->header.cf == LV_IMG_CF_TRUE_COLOR || dsc->header.cf == LV_IMG_CF_TRUE_COLOR_CHROMA_KEYED ||
-       dsc->header.cf == LV_IMG_CF_TRUE_COLOR_ALPHA) {
+       dsc->header.cf == LV_IMG_CF_TRUE_COLOR_ALPHA || dsc->header.cf == LV_IMG_CF_RGB565A8) {
         uint8_t px_size = lv_img_cf_get_px_size(dsc->header.cf) >> 3;
         uint32_t px     = dsc->header.w * y * px_size + x * px_size;
         lv_memcpy_small(&p_color, &buf_u8[px], sizeof(lv_color_t));
@@ -386,6 +386,7 @@ uint32_t lv_img_buf_get_img_size(lv_coord_t w, lv_coord_t h, lv_img_cf_t cf)
         case LV_IMG_CF_TRUE_COLOR:
             return LV_IMG_BUF_SIZE_TRUE_COLOR(w, h);
         case LV_IMG_CF_TRUE_COLOR_ALPHA:
+        case LV_IMG_CF_RGB565A8:
             return LV_IMG_BUF_SIZE_TRUE_COLOR_ALPHA(w, h);
         case LV_IMG_CF_TRUE_COLOR_CHROMA_KEYED:
             return LV_IMG_BUF_SIZE_TRUE_COLOR_CHROMA_KEYED(w, h);
@@ -410,58 +411,6 @@ uint32_t lv_img_buf_get_img_size(lv_coord_t w, lv_coord_t h, lv_img_cf_t cf)
     }
 }
 
-#if LV_DRAW_COMPLEX
-/**
- * Initialize a descriptor to transform an image
- * @param dsc pointer to an `lv_img_transform_dsc_t` variable whose `cfg` field is initialized
- */
-void _lv_img_buf_transform_init(lv_img_transform_dsc_t * dsc)
-{
-    dsc->tmp.pivot_x_256 = dsc->cfg.pivot_x * 256;
-    dsc->tmp.pivot_y_256 = dsc->cfg.pivot_y * 256;
-
-    int32_t angle_low = dsc->cfg.angle / 10;
-    int32_t angle_high = angle_low + 1;
-    int32_t angle_rem = dsc->cfg.angle  - (angle_low * 10);
-
-    int32_t s1 = lv_trigo_sin(-angle_low);
-    int32_t s2 = lv_trigo_sin(-angle_high);
-
-    int32_t c1 = lv_trigo_sin(-angle_low + 90);
-    int32_t c2 = lv_trigo_sin(-angle_high + 90);
-
-    dsc->tmp.sinma = (s1 * (10 - angle_rem) + s2 * angle_rem) / 10;
-    dsc->tmp.cosma = (c1 * (10 - angle_rem) + c2 * angle_rem) / 10;
-
-    /*Use smaller value to avoid overflow*/
-    dsc->tmp.sinma = dsc->tmp.sinma >> (LV_TRIGO_SHIFT - _LV_TRANSFORM_TRIGO_SHIFT);
-    dsc->tmp.cosma = dsc->tmp.cosma >> (LV_TRIGO_SHIFT - _LV_TRANSFORM_TRIGO_SHIFT);
-
-    dsc->tmp.chroma_keyed = lv_img_cf_is_chroma_keyed(dsc->cfg.cf) ? 1 : 0;
-    dsc->tmp.has_alpha = lv_img_cf_has_alpha(dsc->cfg.cf) ? 1 : 0;
-    if(dsc->cfg.cf == LV_IMG_CF_TRUE_COLOR || dsc->cfg.cf == LV_IMG_CF_TRUE_COLOR_ALPHA ||
-       dsc->cfg.cf == LV_IMG_CF_TRUE_COLOR_CHROMA_KEYED) {
-        dsc->tmp.native_color = 1;
-    }
-    else {
-        dsc->tmp.native_color = 0;
-    }
-
-    dsc->tmp.img_dsc.data = dsc->cfg.src;
-    dsc->tmp.img_dsc.header.always_zero = 0;
-    dsc->tmp.img_dsc.header.cf = dsc->cfg.cf;
-    dsc->tmp.img_dsc.header.w = dsc->cfg.src_w;
-    dsc->tmp.img_dsc.header.h = dsc->cfg.src_h;
-
-    /*The inverse of the zoom will be sued during the transformation
-     * + dsc->cfg.zoom / 2 for rounding*/
-    dsc->tmp.zoom_inv = (((256 * 256) << _LV_ZOOM_INV_UPSCALE) + dsc->cfg.zoom / 2) / dsc->cfg.zoom;
-
-    dsc->res.opa = LV_OPA_COVER;
-    dsc->res.color = dsc->cfg.color;
-}
-#endif
-
 /**
  * Get the area of a rectangle if its rotated and scaled
  * @param res store the coordinates here
@@ -483,68 +432,21 @@ void _lv_img_buf_get_transformed_area(lv_area_t * res, lv_coord_t w, lv_coord_t
         return;
     }
 
-    res->x1 = (((int32_t)(-pivot->x) * zoom) >> 8) - 1;
-    res->y1 = (((int32_t)(-pivot->y) * zoom) >> 8) - 1;
-    res->x2 = (((int32_t)(w - pivot->x) * zoom) >> 8) + 2;
-    res->y2 = (((int32_t)(h - pivot->y) * zoom) >> 8) + 2;
-
-    if(angle == 0) {
-        res->x1 += pivot->x;
-        res->y1 += pivot->y;
-        res->x2 += pivot->x;
-        res->y2 += pivot->y;
-        return;
-    }
-
-    int32_t angle_low = angle / 10;
-    int32_t angle_high = angle_low + 1;
-    int32_t angle_rem = angle  - (angle_low * 10);
-
-    int32_t s1 = lv_trigo_sin(angle_low);
-    int32_t s2 = lv_trigo_sin(angle_high);
-
-    int32_t c1 = lv_trigo_sin(angle_low + 90);
-    int32_t c2 = lv_trigo_sin(angle_high + 90);
-
-    int32_t sinma = (s1 * (10 - angle_rem) + s2 * angle_rem) / 10;
-    int32_t cosma = (c1 * (10 - angle_rem) + c2 * angle_rem) / 10;
-
-    /*Use smaller value to avoid overflow*/
-    sinma = sinma >> (LV_TRIGO_SHIFT - _LV_TRANSFORM_TRIGO_SHIFT);
-    cosma = cosma >> (LV_TRIGO_SHIFT - _LV_TRANSFORM_TRIGO_SHIFT);
-
-    lv_point_t lt;
-    lv_point_t rt;
-    lv_point_t lb;
-    lv_point_t rb;
-
-    lv_coord_t xt;
-    lv_coord_t yt;
-
-    xt = res->x1;
-    yt = res->y1;
-    lt.x = ((cosma * xt - sinma * yt) >> _LV_TRANSFORM_TRIGO_SHIFT) + pivot->x;
-    lt.y = ((sinma * xt + cosma * yt) >> _LV_TRANSFORM_TRIGO_SHIFT) + pivot->y;
+    lv_point_t p[4] = {
+        {0, 0},
+        {w, 0},
+        {0, h},
+        {w, h},
+    };
+    lv_point_transform(&p[0], angle, zoom, pivot);
+    lv_point_transform(&p[1], angle, zoom, pivot);
+    lv_point_transform(&p[2], angle, zoom, pivot);
+    lv_point_transform(&p[3], angle, zoom, pivot);
+    res->x1 = LV_MIN4(p[0].x, p[1].x, p[2].x, p[3].x) - 2;
+    res->x2 = LV_MAX4(p[0].x, p[1].x, p[2].x, p[3].x) + 2;
+    res->y1 = LV_MIN4(p[0].y, p[1].y, p[2].y, p[3].y) - 2;
+    res->y2 = LV_MAX4(p[0].y, p[1].y, p[2].y, p[3].y) + 2;
 
-    xt = res->x2;
-    yt = res->y1;
-    rt.x = ((cosma * xt - sinma * yt) >> _LV_TRANSFORM_TRIGO_SHIFT) + pivot->x;
-    rt.y = ((sinma * xt + cosma * yt) >> _LV_TRANSFORM_TRIGO_SHIFT) + pivot->y;
-
-    xt = res->x1;
-    yt = res->y2;
-    lb.x = ((cosma * xt - sinma * yt) >> _LV_TRANSFORM_TRIGO_SHIFT) + pivot->x;
-    lb.y = ((sinma * xt + cosma * yt) >> _LV_TRANSFORM_TRIGO_SHIFT) + pivot->y;
-
-    xt = res->x2;
-    yt = res->y2;
-    rb.x = ((cosma * xt - sinma * yt) >> _LV_TRANSFORM_TRIGO_SHIFT) + pivot->x;
-    rb.y = ((sinma * xt + cosma * yt) >> _LV_TRANSFORM_TRIGO_SHIFT) + pivot->y;
-
-    res->x1 = LV_MIN4(lb.x, lt.x, rb.x, rt.x);
-    res->x2 = LV_MAX4(lb.x, lt.x, rb.x, rt.x);
-    res->y1 = LV_MIN4(lb.y, lt.y, rb.y, rt.y);
-    res->y2 = LV_MAX4(lb.y, lt.y, rb.y, rt.y);
 #else
     LV_UNUSED(angle);
     LV_UNUSED(zoom);
@@ -556,217 +458,6 @@ void _lv_img_buf_get_transformed_area(lv_area_t * res, lv_coord_t w, lv_coord_t
 #endif
 }
 
-
-#if LV_DRAW_COMPLEX
-/**
- * Get which color and opa would come to a pixel if it were rotated
- * @param dsc a descriptor initialized by `lv_img_buf_rotate_init`
- * @param x the coordinate which color and opa should be get
- * @param y the coordinate which color and opa should be get
- * @return true: there is valid pixel on these x/y coordinates; false: the rotated pixel was out of the image
- * @note the result is written back to `dsc->res_color` and `dsc->res_opa`
- */
-bool _lv_img_buf_transform(lv_img_transform_dsc_t * dsc, lv_coord_t x, lv_coord_t y)
-{
-    const uint8_t * src_u8 = (const uint8_t *)dsc->cfg.src;
-
-    /*Get the target point relative coordinates to the pivot*/
-    int32_t xt = x - dsc->cfg.pivot_x;
-    int32_t yt = y - dsc->cfg.pivot_y;
-
-    int32_t xs;
-    int32_t ys;
-    if(dsc->cfg.zoom == LV_IMG_ZOOM_NONE) {
-        /*Get the source pixel from the upscaled image*/
-        xs = ((dsc->tmp.cosma * xt - dsc->tmp.sinma * yt) >> (_LV_TRANSFORM_TRIGO_SHIFT - 8)) + dsc->tmp.pivot_x_256;
-        ys = ((dsc->tmp.sinma * xt + dsc->tmp.cosma * yt) >> (_LV_TRANSFORM_TRIGO_SHIFT - 8)) + dsc->tmp.pivot_y_256;
-    }
-    else if(dsc->cfg.angle == 0) {
-        xt = (int32_t)((int32_t)xt * dsc->tmp.zoom_inv) >> _LV_ZOOM_INV_UPSCALE;
-        yt = (int32_t)((int32_t)yt * dsc->tmp.zoom_inv) >> _LV_ZOOM_INV_UPSCALE;
-        xs = xt + dsc->tmp.pivot_x_256;
-        ys = yt + dsc->tmp.pivot_y_256;
-    }
-    else {
-        xt = (int32_t)((int32_t)xt * dsc->tmp.zoom_inv) >> _LV_ZOOM_INV_UPSCALE;
-        yt = (int32_t)((int32_t)yt * dsc->tmp.zoom_inv) >> _LV_ZOOM_INV_UPSCALE;
-        xs = ((dsc->tmp.cosma * xt - dsc->tmp.sinma * yt) >> (_LV_TRANSFORM_TRIGO_SHIFT)) + dsc->tmp.pivot_x_256;
-        ys = ((dsc->tmp.sinma * xt + dsc->tmp.cosma * yt) >> (_LV_TRANSFORM_TRIGO_SHIFT)) + dsc->tmp.pivot_y_256;
-    }
-
-    /*Get the integer part of the source pixel*/
-    int32_t xs_int = xs >> 8;
-    int32_t ys_int = ys >> 8;
-
-    if(xs_int >= dsc->cfg.src_w) return false;
-    else if(xs_int < 0) return false;
-
-    if(ys_int >= dsc->cfg.src_h) return false;
-    else if(ys_int < 0) return false;
-
-    uint8_t px_size;
-    uint32_t pxi;
-    if(dsc->tmp.native_color) {
-        if(dsc->tmp.has_alpha == 0) {
-            px_size = LV_COLOR_SIZE >> 3;
-
-            pxi     = dsc->cfg.src_w * ys_int * px_size + xs_int * px_size;
-            lv_memcpy_small(&dsc->res.color, &src_u8[pxi], px_size);
-        }
-        else {
-            px_size = LV_IMG_PX_SIZE_ALPHA_BYTE;
-            pxi     = dsc->cfg.src_w * ys_int * px_size + xs_int * px_size;
-            lv_memcpy_small(&dsc->res.color, &src_u8[pxi], px_size - 1);
-            dsc->res.opa = src_u8[pxi + px_size - 1];
-        }
-    }
-    else {
-        pxi = 0; /*unused*/
-        px_size = 0;    /*unused*/
-        dsc->res.color = lv_img_buf_get_px_color(&dsc->tmp.img_dsc, xs_int, ys_int, dsc->cfg.color);
-        dsc->res.opa = lv_img_buf_get_px_alpha(&dsc->tmp.img_dsc, xs_int, ys_int);
-    }
-
-    if(dsc->tmp.chroma_keyed) {
-        lv_color_t ct = LV_COLOR_CHROMA_KEY;
-        if(dsc->res.color.full == ct.full) return false;
-    }
-
-    if(dsc->cfg.antialias == false) return true;
-
-    dsc->tmp.xs = xs;
-    dsc->tmp.ys = ys;
-    dsc->tmp.xs_int = xs_int;
-    dsc->tmp.ys_int = ys_int;
-    dsc->tmp.pxi = pxi;
-    dsc->tmp.px_size = px_size;
-
-    bool ret;
-    ret = _lv_img_buf_transform_anti_alias(dsc);
-
-    return ret;
-}
-
-/**
- * Continue transformation by taking the neighbors into account
- * @param dsc pointer to the transformation descriptor
- */
-bool _lv_img_buf_transform_anti_alias(lv_img_transform_dsc_t * dsc)
-{
-    const uint8_t * src_u8 = dsc->cfg.src;
-
-    /*Get the fractional part of the source pixel*/
-    int xs_fract = dsc->tmp.xs & 0xff;
-    int ys_fract = dsc->tmp.ys & 0xff;
-    int32_t xn;      /*x neighbor*/
-    lv_opa_t xr; /*x mix ratio*/
-
-    if(xs_fract < 0x70) {
-        xn = - 1;
-        if(dsc->tmp.xs_int + xn < 0) xn = 0;
-        xr = xs_fract + 0x80;
-    }
-    else if(xs_fract > 0x90) {
-        xn = 1;
-        if(dsc->tmp.xs_int + xn >= dsc->cfg.src_w) xn = 0;
-        xr = (0xFF - xs_fract) + 0x80;
-    }
-    else {
-        xn = 0;
-        xr = 0xFF;
-    }
-
-    int32_t yn;      /*x neighbor*/
-    lv_opa_t yr; /*x mix ratio*/
-
-    if(ys_fract < 0x70) {
-        yn = - 1;
-        if(dsc->tmp.ys_int + yn < 0) yn = 0;
-
-        yr = ys_fract + 0x80;
-    }
-    else if(ys_fract > 0x90) {
-        yn = 1;
-        if(dsc->tmp.ys_int + yn >= dsc->cfg.src_h) yn = 0;
-
-        yr = (0xFF - ys_fract) + 0x80;
-    }
-    else {
-        yn = 0;
-        yr = 0xFF;
-    }
-
-    lv_color_t c00 = dsc->res.color;
-    lv_color_t c01;
-    lv_color_t c10;
-    lv_color_t c11;
-
-    lv_opa_t a00 = dsc->res.opa;
-    lv_opa_t a10 = 0;
-    lv_opa_t a01 = 0;
-    lv_opa_t a11 = 0;
-
-    if(dsc->tmp.native_color) {
-        lv_memcpy_small(&c01, &src_u8[dsc->tmp.pxi + dsc->tmp.px_size * xn], sizeof(lv_color_t));
-        lv_memcpy_small(&c10, &src_u8[dsc->tmp.pxi + dsc->cfg.src_w * dsc->tmp.px_size * yn], sizeof(lv_color_t));
-        lv_memcpy_small(&c11, &src_u8[dsc->tmp.pxi + dsc->cfg.src_w * dsc->tmp.px_size * yn + dsc->tmp.px_size * xn],
-                        sizeof(lv_color_t));
-        if(dsc->tmp.has_alpha) {
-            a10 = src_u8[dsc->tmp.pxi + dsc->tmp.px_size * xn + dsc->tmp.px_size - 1];
-            a01 = src_u8[dsc->tmp.pxi + dsc->cfg.src_w * dsc->tmp.px_size * yn + dsc->tmp.px_size - 1];
-            a11 = src_u8[dsc->tmp.pxi + dsc->cfg.src_w * dsc->tmp.px_size * yn + dsc->tmp.px_size * xn + dsc->tmp.px_size - 1];
-        }
-    }
-    else {
-        c01 = lv_img_buf_get_px_color(&dsc->tmp.img_dsc, dsc->tmp.xs_int + xn, dsc->tmp.ys_int, dsc->cfg.color);
-        c10 = lv_img_buf_get_px_color(&dsc->tmp.img_dsc, dsc->tmp.xs_int, dsc->tmp.ys_int + yn, dsc->cfg.color);
-        c11 = lv_img_buf_get_px_color(&dsc->tmp.img_dsc, dsc->tmp.xs_int + xn, dsc->tmp.ys_int + yn, dsc->cfg.color);
-
-        if(dsc->tmp.has_alpha) {
-            a10 = lv_img_buf_get_px_alpha(&dsc->tmp.img_dsc, dsc->tmp.xs_int + xn, dsc->tmp.ys_int);
-            a01 = lv_img_buf_get_px_alpha(&dsc->tmp.img_dsc, dsc->tmp.xs_int, dsc->tmp.ys_int + yn);
-            a11 = lv_img_buf_get_px_alpha(&dsc->tmp.img_dsc, dsc->tmp.xs_int + xn, dsc->tmp.ys_int + yn);
-        }
-    }
-
-    lv_opa_t xr0 = xr;
-    lv_opa_t xr1 = xr;
-    if(dsc->tmp.has_alpha) {
-        lv_opa_t a0 = (a00 * xr + (a10 * (255 - xr))) >> 8;
-        lv_opa_t a1 = (a01 * xr + (a11 * (255 - xr))) >> 8;
-        dsc->res.opa = (a0 * yr + (a1 * (255 - yr))) >> 8;
-
-        if(a0 <= LV_OPA_MIN && a1 <= LV_OPA_MIN) return false;
-        if(a0 <= LV_OPA_MIN) yr = LV_OPA_TRANSP;
-        if(a1 <= LV_OPA_MIN) yr = LV_OPA_COVER;
-        if(a00 <= LV_OPA_MIN) xr0 = LV_OPA_TRANSP;
-        if(a10 <= LV_OPA_MIN) xr0 = LV_OPA_COVER;
-        if(a01 <= LV_OPA_MIN) xr1 = LV_OPA_TRANSP;
-        if(a11 <= LV_OPA_MIN) xr1 = LV_OPA_COVER;
-    }
-    else {
-        xr0 = xr;
-        xr1 = xr;
-        dsc->res.opa = LV_OPA_COVER;
-    }
-
-    lv_color_t c0;
-    if(xr0 == LV_OPA_TRANSP) c0 = c01;
-    else if(xr0 == LV_OPA_COVER) c0 = c00;
-    else c0 = lv_color_mix(c00, c01, xr0);
-
-    lv_color_t c1;
-    if(xr1 == LV_OPA_TRANSP) c1 = c11;
-    else if(xr1 == LV_OPA_COVER) c1 = c10;
-    else c1 = lv_color_mix(c10, c11, xr1);
-
-    if(yr == LV_OPA_TRANSP) dsc->res.color = c1;
-    else if(yr == LV_OPA_COVER) dsc->res.color = c0;
-    else dsc->res.color = lv_color_mix(c0, c1, yr);
-
-    return true;
-}
-#endif
 /**********************
  *   STATIC FUNCTIONS
  **********************/
index 1d4112d..1be7bb6 100644 (file)
@@ -45,7 +45,6 @@ extern "C" {
 #define LV_IMG_BUF_SIZE_INDEXED_4BIT(w, h) (LV_IMG_BUF_SIZE_ALPHA_4BIT(w, h) + 4 * 16)
 #define LV_IMG_BUF_SIZE_INDEXED_8BIT(w, h) (LV_IMG_BUF_SIZE_ALPHA_8BIT(w, h) + 4 * 256)
 
-#define _LV_TRANSFORM_TRIGO_SHIFT 10
 #define _LV_ZOOM_INV_UPSCALE 5
 
 /**********************
@@ -67,16 +66,23 @@ enum {
     LV_IMG_CF_TRUE_COLOR_CHROMA_KEYED, /**< Same as `LV_IMG_CF_TRUE_COLOR` but LV_COLOR_TRANSP pixels
                                           will be transparent*/
 
-    LV_IMG_CF_INDEXED_1BIT, /**< Can have 2 different colors in a palette (always chroma keyed)*/
-    LV_IMG_CF_INDEXED_2BIT, /**< Can have 4 different colors in a palette (always chroma keyed)*/
-    LV_IMG_CF_INDEXED_4BIT, /**< Can have 16 different colors in a palette (always chroma keyed)*/
-    LV_IMG_CF_INDEXED_8BIT, /**< Can have 256 different colors in a palette (always chroma keyed)*/
+    LV_IMG_CF_INDEXED_1BIT, /**< Can have 2 different colors in a palette (can't be chroma keyed)*/
+    LV_IMG_CF_INDEXED_2BIT, /**< Can have 4 different colors in a palette (can't be chroma keyed)*/
+    LV_IMG_CF_INDEXED_4BIT, /**< Can have 16 different colors in a palette (can't be chroma keyed)*/
+    LV_IMG_CF_INDEXED_8BIT, /**< Can have 256 different colors in a palette (can't be chroma keyed)*/
 
     LV_IMG_CF_ALPHA_1BIT, /**< Can have one color and it can be drawn or not*/
     LV_IMG_CF_ALPHA_2BIT, /**< Can have one color but 4 different alpha value*/
     LV_IMG_CF_ALPHA_4BIT, /**< Can have one color but 16 different alpha value*/
     LV_IMG_CF_ALPHA_8BIT, /**< Can have one color but 256 different alpha value*/
 
+    LV_IMG_CF_RGB888,
+    LV_IMG_CF_RGBA8888,
+    LV_IMG_CF_RGBX8888,
+    LV_IMG_CF_RGB565,
+    LV_IMG_CF_RGBA5658,
+    LV_IMG_CF_RGB565A8,
+
     LV_IMG_CF_RESERVED_15,              /**< Reserved for further use.*/
     LV_IMG_CF_RESERVED_16,              /**< Reserved for further use.*/
     LV_IMG_CF_RESERVED_17,              /**< Reserved for further use.*/
@@ -135,56 +141,9 @@ typedef struct {
 typedef struct {
     lv_img_header_t header; /**< A header describing the basics of the image*/
     uint32_t data_size;     /**< Size of the image in bytes*/
-#ifdef BOARD_EC600UCN_LB_ICC
-    uint8_t * data;
-#else
     const uint8_t * data;   /**< Pointer to the data of the image*/
-#endif
 } lv_img_dsc_t;
 
-typedef struct {
-    struct {
-        const void * src;           /*image source (array of pixels)*/
-        lv_coord_t src_w;           /*width of the image source*/
-        lv_coord_t src_h;           /*height of the image source*/
-        lv_coord_t pivot_x;         /*pivot x*/
-        lv_coord_t pivot_y;         /*pivot y*/
-        int16_t angle;              /*angle to rotate*/
-        uint16_t zoom;              /*256 no zoom, 128 half size, 512 double size*/
-        lv_color_t color;           /*a color used for `LV_IMG_CF_INDEXED_1/2/4/8BIT` color formats*/
-        lv_img_cf_t cf;             /*color format of the image to rotate*/
-        bool antialias;
-    } cfg;
-
-    struct {
-        lv_color_t color;
-        lv_opa_t opa;
-    } res;
-
-    struct {
-        lv_img_dsc_t img_dsc;
-        int32_t pivot_x_256;
-        int32_t pivot_y_256;
-        int32_t sinma;
-        int32_t cosma;
-
-        uint8_t chroma_keyed : 1;
-        uint8_t has_alpha : 1;
-        uint8_t native_color : 1;
-
-        uint32_t zoom_inv;
-
-        /*Runtime data*/
-        lv_coord_t xs;
-        lv_coord_t ys;
-        lv_coord_t xs_int;
-        lv_coord_t ys_int;
-        uint32_t pxi;
-        uint8_t px_size;
-    } tmp;
-} lv_img_transform_dsc_t;
-
-
 /**********************
  * GLOBAL PROTOTYPES
  **********************/
@@ -267,30 +226,6 @@ void lv_img_buf_free(lv_img_dsc_t * dsc);
  */
 uint32_t lv_img_buf_get_img_size(lv_coord_t w, lv_coord_t h, lv_img_cf_t cf);
 
-#if LV_DRAW_COMPLEX
-/**
- * Initialize a descriptor to rotate an image
- * @param dsc pointer to an `lv_img_transform_dsc_t` variable whose `cfg` field is initialized
- */
-void _lv_img_buf_transform_init(lv_img_transform_dsc_t * dsc);
-
-/**
- * Continue transformation by taking the neighbors into account
- * @param dsc pointer to the transformation descriptor
- */
-bool _lv_img_buf_transform_anti_alias(lv_img_transform_dsc_t * dsc);
-
-/**
- * Get which color and opa would come to a pixel if it were rotated
- * @param dsc a descriptor initialized by `lv_img_buf_rotate_init`
- * @param x the coordinate which color and opa should be get
- * @param y the coordinate which color and opa should be get
- * @return true: there is valid pixel on these x/y coordinates; false: the rotated pixel was out of the image
- * @note the result is written back to `dsc->res_color` and `dsc->res_opa`
- */
-bool _lv_img_buf_transform(lv_img_transform_dsc_t * dsc, lv_coord_t x, lv_coord_t y);
-
-#endif
 /**
  * Get the area of a rectangle if its rotated and scaled
  * @param res store the coordinates here
index 3678a57..13050b8 100644 (file)
@@ -15,8 +15,8 @@
 /*********************
  *      DEFINES
  *********************/
-#define CF_BUILT_IN_FIRST LV_IMG_CF_TRUE_COLOR
-#define CF_BUILT_IN_LAST LV_IMG_CF_ALPHA_8BIT
+#define CF_BUILT_IN_FIRST   LV_IMG_CF_TRUE_COLOR
+#define CF_BUILT_IN_LAST    LV_IMG_CF_RGB565A8
 
 /**********************
  *      TYPEDEFS
@@ -146,7 +146,7 @@ lv_res_t lv_img_decoder_open(lv_img_decoder_dsc_t * dsc, const void * src, lv_co
         dsc->decoder = decoder;
         res = decoder->open_cb(decoder, dsc);
 
-        /*Opened successfully. It is a good decoder to for this image source*/
+        /*Opened successfully. It is a good decoder for this image source*/
         if(res == LV_RES_OK) return res;
 
         /*Prepare for the next loop*/
@@ -361,7 +361,9 @@ lv_res_t lv_img_decoder_built_in_open(lv_img_decoder_t * decoder, lv_img_decoder
 
     lv_img_cf_t cf = dsc->header.cf;
     /*Process true color formats*/
-    if(cf == LV_IMG_CF_TRUE_COLOR || cf == LV_IMG_CF_TRUE_COLOR_ALPHA || cf == LV_IMG_CF_TRUE_COLOR_CHROMA_KEYED) {
+    if(cf == LV_IMG_CF_TRUE_COLOR || cf == LV_IMG_CF_TRUE_COLOR_ALPHA ||
+       cf == LV_IMG_CF_TRUE_COLOR_CHROMA_KEYED || cf == LV_IMG_CF_RGB565A8 ||
+       cf == LV_IMG_CF_ALPHA_8BIT) {
         if(dsc->src_type == LV_IMG_SRC_VARIABLE) {
             /*In case of uncompressed formats the image stored in the ROM/RAM.
              *So simply give its pointer*/
@@ -426,8 +428,7 @@ lv_res_t lv_img_decoder_built_in_open(lv_img_decoder_t * decoder, lv_img_decoder
         return LV_RES_OK;
     }
     /*Alpha indexed images.*/
-    else if(cf == LV_IMG_CF_ALPHA_1BIT || cf == LV_IMG_CF_ALPHA_2BIT || cf == LV_IMG_CF_ALPHA_4BIT ||
-            cf == LV_IMG_CF_ALPHA_8BIT) {
+    else if(cf == LV_IMG_CF_ALPHA_1BIT || cf == LV_IMG_CF_ALPHA_2BIT || cf == LV_IMG_CF_ALPHA_4BIT) {
         return LV_RES_OK; /*Nothing to process*/
     }
     /*Unknown format. Can't decode it.*/
index ebebf10..9dc84dd 100644 (file)
@@ -144,7 +144,7 @@ void _lv_img_decoder_init(void);
  * Get information about an image.
  * Try the created image decoder one by one. Once one is able to get info that info will be used.
  * @param src the image source. Can be
- *  1) File name: E.g. "S:folder/img1.png" (The drivers needs to registered via `lv_fs_add_drv()`)
+ *  1) File name: E.g. "S:folder/img1.png" (The drivers needs to registered via `lv_fs_drv_register()`)
  *  2) Variable: Pointer to an `lv_img_dsc_t` variable
  *  3) Symbol: E.g. `LV_SYMBOL_OK`
  * @param header the image info will be stored here
@@ -154,10 +154,10 @@ lv_res_t lv_img_decoder_get_info(const void * src, lv_img_header_t * header);
 
 /**
  * Open an image.
- * Try the created image decoder one by one. Once one is able to open the image that decoder is save in `dsc`
- * @param dsc describe a decoding session. Simply a pointer to an `lv_img_decoder_dsc_t` variable.
+ * Try the created image decoders one by one. Once one is able to open the image that decoder is saved in `dsc`
+ * @param dsc describes a decoding session. Simply a pointer to an `lv_img_decoder_dsc_t` variable.
  * @param src the image source. Can be
- *  1) File name: E.g. "S:folder/img1.png" (The drivers needs to registered via `lv_fs_add_drv()`)
+ *  1) File name: E.g. "S:folder/img1.png" (The drivers needs to registered via `lv_fs_drv_register())`)
  *  2) Variable: Pointer to an `lv_img_dsc_t` variable
  *  3) Symbol: E.g. `LV_SYMBOL_OK`
  * @param color The color of the image with `LV_IMG_CF_ALPHA_...`
index 430f3a2..e3cdf57 100644 (file)
@@ -15,6 +15,7 @@
 #include "lv_draw_sdl.h"
 #include "lv_draw_sdl_utils.h"
 #include "lv_draw_sdl_texture_cache.h"
+#include "lv_draw_sdl_layer.h"
 
 /*********************
  *      DEFINES
@@ -69,6 +70,10 @@ void lv_draw_sdl_init_ctx(lv_disp_drv_t * disp_drv, lv_draw_ctx_t * draw_ctx)
     draw_ctx->draw_arc = lv_draw_sdl_draw_arc;
     draw_ctx->draw_polygon = lv_draw_sdl_polygon;
     draw_ctx->draw_bg = lv_draw_sdl_draw_bg;
+    draw_ctx->layer_init = lv_draw_sdl_layer_init;
+    draw_ctx->layer_blend = lv_draw_sdl_layer_blend;
+    draw_ctx->layer_destroy = lv_draw_sdl_layer_destroy;
+    draw_ctx->layer_instance_size = sizeof(lv_draw_sdl_layer_ctx_t);
     lv_draw_sdl_ctx_t * draw_ctx_sdl = (lv_draw_sdl_ctx_t *) draw_ctx;
     draw_ctx_sdl->renderer = ((lv_draw_sdl_drv_param_t *) disp_drv->user_data)->renderer;
     draw_ctx_sdl->internals = lv_mem_alloc(sizeof(lv_draw_sdl_context_internals_t));
index 1ce413b..c5c28b6 100644 (file)
@@ -1,13 +1,19 @@
-lvgl_SRCS  += $(LVGL_DIR_NAME)/src/draw/sdl/lv_draw_sdl.c
-lvgl_SRCS  += $(LVGL_DIR_NAME)/src/draw/sdl/lv_draw_sdl_arc.c
-lvgl_SRCS  += $(LVGL_DIR_NAME)/src/draw/sdl/lv_draw_sdl_bg.c
-lvgl_SRCS  += $(LVGL_DIR_NAME)/src/draw/sdl/lv_draw_sdl_composite.c
-lvgl_SRCS  += $(LVGL_DIR_NAME)/src/draw/sdl/lv_draw_sdl_img.c
-lvgl_SRCS  += $(LVGL_DIR_NAME)/src/draw/sdl/lv_draw_sdl_label.c
-lvgl_SRCS  += $(LVGL_DIR_NAME)/src/draw/sdl/lv_draw_sdl_line.c
-lvgl_SRCS  += $(LVGL_DIR_NAME)/src/draw/sdl/lv_draw_sdl_mask.c
-lvgl_SRCS  += $(LVGL_DIR_NAME)/src/draw/sdl/lv_draw_sdl_polygon.c
-lvgl_SRCS  += $(LVGL_DIR_NAME)/src/draw/sdl/lv_draw_sdl_rect.c
-lvgl_SRCS  += $(LVGL_DIR_NAME)/src/draw/sdl/lv_draw_sdl_stack_blur.c
-lvgl_SRCS  += $(LVGL_DIR_NAME)/src/draw/sdl/lv_draw_sdl_texture_cache.c
-lvgl_SRCS  += $(LVGL_DIR_NAME)/src/draw/sdl/lv_draw_sdl_utils.c
+CSRCS += lv_draw_sdl.c
+CSRCS += lv_draw_sdl_arc.c
+CSRCS += lv_draw_sdl_bg.c
+CSRCS += lv_draw_sdl_composite.c
+CSRCS += lv_draw_sdl_img.c
+CSRCS += lv_draw_sdl_label.c
+CSRCS += lv_draw_sdl_line.c
+CSRCS += lv_draw_sdl_mask.c
+CSRCS += lv_draw_sdl_polygon.c
+CSRCS += lv_draw_sdl_rect.c
+CSRCS += lv_draw_sdl_stack_blur.c
+CSRCS += lv_draw_sdl_texture_cache.c
+CSRCS += lv_draw_sdl_utils.c
+CSRCS += lv_draw_sdl_layer.c
+
+DEPPATH += --dep-path $(LVGL_DIR)/$(LVGL_DIR_NAME)/src/draw/sdl
+VPATH += :$(LVGL_DIR)/$(LVGL_DIR_NAME)/src/draw/sdl
+
+CFLAGS += "-I$(LVGL_DIR)/$(LVGL_DIR_NAME)/src/draw/sdl"
index 5786eae..f43fef6 100644 (file)
@@ -104,7 +104,9 @@ void lv_draw_sdl_draw_arc(lv_draw_ctx_t * draw_ctx, const lv_draw_arc_dsc_t * ds
     }
 
     lv_coord_t w = lv_area_get_width(&draw_area), h = lv_area_get_height(&draw_area);
-    SDL_Texture * texture = lv_draw_sdl_composite_texture_obtain(ctx, LV_DRAW_SDL_COMPOSITE_TEXTURE_ID_STREAM1, w, h);
+    bool texture_cached = false;
+    SDL_Texture * texture = lv_draw_sdl_composite_texture_obtain(ctx, LV_DRAW_SDL_COMPOSITE_TEXTURE_ID_STREAM1, w, h,
+                                                                 &texture_cached);
     SDL_SetTextureBlendMode(texture, SDL_BLENDMODE_BLEND);
     dump_masks(texture, &draw_area, mask_ids, mask_ids_count, cap_ids[0] != LV_MASK_ID_INV ? cap_ids : NULL);
 
@@ -135,6 +137,11 @@ void lv_draw_sdl_draw_arc(lv_draw_ctx_t * draw_ctx, const lv_draw_arc_dsc_t * ds
     SDL_SetTextureColorMod(texture, color.r, color.g, color.b);
     SDL_SetTextureAlphaMod(texture, dsc->opa);
     SDL_RenderCopy(ctx->renderer, texture, &srcrect, &dstrect);
+
+    if(!texture_cached) {
+        LV_LOG_WARN("Texture is not cached, this will impact performance.");
+        SDL_DestroyTexture(texture);
+    }
 }
 
 /**********************
index 1ee843f..e155570 100644 (file)
@@ -13,7 +13,6 @@
 #include "../../misc/lv_gc.h"
 #include "../../core/lv_refr.h"
 #include "lv_draw_sdl_composite.h"
-#include "lv_draw_sdl_mask.h"
 #include "lv_draw_sdl_utils.h"
 #include "lv_draw_sdl_priv.h"
 #include "lv_draw_sdl_texture_cache.h"
@@ -84,18 +83,23 @@ bool lv_draw_sdl_composite_begin(lv_draw_sdl_ctx_t * ctx, const lv_area_t * coor
     const bool draw_blend = blend_mode != LV_BLEND_MODE_NORMAL;
     if(draw_mask || draw_blend) {
         lv_draw_sdl_context_internals_t * internals = ctx->internals;
-        LV_ASSERT(internals->mask == NULL && internals->composition == NULL);
+        LV_ASSERT(internals->mask == NULL && internals->composition == NULL && internals->target_backup == NULL);
 
         lv_coord_t w = lv_area_get_width(apply_area), h = lv_area_get_height(apply_area);
-        internals->composition = lv_draw_sdl_composite_texture_obtain(ctx, LV_DRAW_SDL_COMPOSITE_TEXTURE_ID_TARGET0, w, h);
-        /* Don't need to worry about overflow */
+        internals->composition = lv_draw_sdl_composite_texture_obtain(ctx, LV_DRAW_SDL_COMPOSITE_TEXTURE_ID_TARGET0, w, h,
+                                                                      &internals->composition_cached);
+        /* Don't need to worry about integral overflow */
         lv_coord_t ofs_x = (lv_coord_t) - apply_area->x1, ofs_y = (lv_coord_t) - apply_area->y1;
         /* Offset draw area to start with (0,0) of coords */
         lv_area_move(coords_out, ofs_x, ofs_y);
         lv_area_move(clip_out, ofs_x, ofs_y);
+        internals->target_backup = SDL_GetRenderTarget(ctx->renderer);
         SDL_SetRenderTarget(ctx->renderer, internals->composition);
         SDL_SetRenderDrawColor(ctx->renderer, 255, 255, 255, 0);
-        SDL_RenderClear(ctx->renderer);
+        /* SDL_RenderClear is not working properly, so we overwrite the target with solid color */
+        SDL_SetRenderDrawBlendMode(ctx->renderer, SDL_BLENDMODE_NONE);
+        SDL_RenderFillRect(ctx->renderer, NULL);
+        SDL_SetRenderDrawBlendMode(ctx->renderer, SDL_BLENDMODE_BLEND);
 #if LV_GPU_SDL_CUSTOM_BLEND_MODE
         internals->mask = lv_draw_sdl_composite_texture_obtain(ctx, LV_DRAW_SDL_COMPOSITE_TEXTURE_ID_STREAM0, w, h);
         dump_masks(internals->mask, apply_area);
@@ -140,7 +144,7 @@ void lv_draw_sdl_composite_end(lv_draw_sdl_ctx_t * ctx, const lv_area_t * apply_
         SDL_Rect dst_rect;
         lv_area_to_sdl_rect(apply_area, &dst_rect);
 
-        SDL_SetRenderTarget(ctx->renderer, ctx->base_draw.buf);
+        SDL_SetRenderTarget(ctx->renderer, internals->target_backup);
         switch(blend_mode) {
             case LV_BLEND_MODE_NORMAL:
                 SDL_SetTextureBlendMode(internals->composition, SDL_BLENDMODE_BLEND);
@@ -171,29 +175,47 @@ void lv_draw_sdl_composite_end(lv_draw_sdl_ctx_t * ctx, const lv_area_t * apply_
                 break;
         }
         SDL_RenderCopy(ctx->renderer, internals->composition, &src_rect, &dst_rect);
+        if(!internals->composition_cached) {
+            LV_LOG_WARN("Texture is not cached, this will impact performance.");
+            SDL_DestroyTexture(internals->composition);
+        }
     }
 
-    internals->mask = internals->composition = NULL;
+    internals->mask = internals->composition = internals->target_backup = NULL;
 }
 
 SDL_Texture * lv_draw_sdl_composite_texture_obtain(lv_draw_sdl_ctx_t * ctx, lv_draw_sdl_composite_texture_id_t id,
-                                                   lv_coord_t w, lv_coord_t h)
+                                                   lv_coord_t w, lv_coord_t h, bool * texture_in_cache)
 {
     lv_point_t * tex_size = NULL;
     composite_key_t mask_key = mask_key_create(id);
     SDL_Texture * result = lv_draw_sdl_texture_cache_get_with_userdata(ctx, &mask_key, sizeof(composite_key_t), NULL,
                                                                        (void **) &tex_size);
-    if(!result || tex_size->x < w || tex_size->y < h) {
+    if(result == NULL || tex_size->x < w || tex_size->y < h) {
         lv_coord_t size = next_pow_of_2(LV_MAX(w, h));
         int access = SDL_TEXTUREACCESS_STREAMING;
-        if(id >= LV_DRAW_SDL_COMPOSITE_TEXTURE_ID_TARGET0) {
+        if(id >= LV_DRAW_SDL_COMPOSITE_TEXTURE_ID_TRANSFORM0) {
+            access = SDL_TEXTUREACCESS_TARGET;
+        }
+        else if(id >= LV_DRAW_SDL_COMPOSITE_TEXTURE_ID_TARGET0) {
             access = SDL_TEXTUREACCESS_TARGET;
         }
         result = SDL_CreateTexture(ctx->renderer, LV_DRAW_SDL_TEXTURE_FORMAT, access, size, size);
         tex_size = lv_mem_alloc(sizeof(lv_point_t));
         tex_size->x = tex_size->y = size;
-        lv_draw_sdl_texture_cache_put_advanced(ctx, &mask_key, sizeof(composite_key_t), result, tex_size, lv_mem_free, 0);
+        bool in_cache = lv_draw_sdl_texture_cache_put_advanced(ctx, &mask_key, sizeof(composite_key_t), result,
+                                                               tex_size, lv_mem_free, 0);
+        if(!in_cache) {
+            lv_mem_free(tex_size);
+        }
+        if(texture_in_cache != NULL) {
+            *texture_in_cache = in_cache;
+        }
+    }
+    else if(texture_in_cache != NULL) {
+        *texture_in_cache = true;
     }
+
     return result;
 }
 
index 3050815..57191bb 100644 (file)
@@ -35,6 +35,7 @@ typedef enum lv_draw_sdl_composite_texture_id_t {
     LV_DRAW_SDL_COMPOSITE_TEXTURE_ID_STREAM1,
     LV_DRAW_SDL_COMPOSITE_TEXTURE_ID_TARGET0,
     LV_DRAW_SDL_COMPOSITE_TEXTURE_ID_TARGET1,
+    LV_DRAW_SDL_COMPOSITE_TEXTURE_ID_TRANSFORM0,
 } lv_draw_sdl_composite_texture_id_t;
 
 /**********************
@@ -44,6 +45,7 @@ typedef enum lv_draw_sdl_composite_texture_id_t {
 /**
  * Begin drawing with mask. Render target will be switched to a temporary texture,
  * and drawing coordinates may get clipped or translated
+ * @param ctx Drawing context
  * @param coords_in Original coordinates
  * @param clip_in Original clip area
  * @param extension Useful for shadows or outlines, can be NULL
@@ -58,8 +60,18 @@ bool lv_draw_sdl_composite_begin(lv_draw_sdl_ctx_t * ctx, const lv_area_t * coor
 
 void lv_draw_sdl_composite_end(lv_draw_sdl_ctx_t * ctx, const lv_area_t * apply_area, lv_blend_mode_t blend_mode);
 
+/**
+ *
+ * @param ctx Drawing context
+ * @param id Texture ID
+ * @param w Maximum width needed
+ * @param h Maximum height needed
+ * @param texture_in_cache output to query if the texture is in cache. If it's not in cache, you'll need to destroy it
+ * by yourself
+ * @return Obtained texture
+ */
 SDL_Texture * lv_draw_sdl_composite_texture_obtain(lv_draw_sdl_ctx_t * ctx, lv_draw_sdl_composite_texture_id_t id,
-                                                   lv_coord_t w, lv_coord_t h);
+                                                   lv_coord_t w, lv_coord_t h, bool * texture_in_cache);
 
 /**********************
  *      MACROS
index c678238..4dddc8c 100644 (file)
@@ -22,6 +22,7 @@
 #include "lv_draw_sdl_texture_cache.h"
 #include "lv_draw_sdl_composite.h"
 #include "lv_draw_sdl_rect.h"
+#include "lv_draw_sdl_layer.h"
 
 /*********************
  *      DEFINES
@@ -71,7 +72,8 @@ static void draw_img_rounded(lv_draw_sdl_ctx_t * ctx, SDL_Texture * texture, con
                              lv_coord_t radius);
 
 static SDL_Texture * img_rounded_frag_obtain(lv_draw_sdl_ctx_t * ctx, SDL_Texture * texture,
-                                             const lv_draw_sdl_img_header_t * header, int w, int h, lv_coord_t radius);
+                                             const lv_draw_sdl_img_header_t * header, int w, int h, lv_coord_t radius,
+                                             bool * in_cache);
 
 static lv_draw_img_rounded_key_t rounded_key_create(const SDL_Texture * texture, lv_coord_t w, lv_coord_t h,
                                                     lv_coord_t radius);
@@ -105,11 +107,16 @@ lv_res_t lv_draw_sdl_img_core(lv_draw_ctx_t * draw_ctx, const lv_draw_img_dsc_t
     lv_draw_sdl_img_header_t * header = NULL;
     SDL_Texture * texture = lv_draw_sdl_texture_cache_get_with_userdata(ctx, key, key_size, &texture_found,
                                                                         (void **) &header);
+    bool texture_in_cache = false;
     if(!texture_found) {
-        lv_draw_sdl_img_load_texture(ctx, key, key_size, src, draw_dsc->frame_id, &texture, &header);
+        lv_draw_sdl_img_load_texture(ctx, key, key_size, src, draw_dsc->frame_id, &texture, &header,
+                                     &texture_in_cache);
+    }
+    else {
+        texture_in_cache = true;
     }
     SDL_free(key);
-    if(!texture) {
+    if(!texture || !header) {
         return LV_RES_INV;
     }
 
@@ -123,11 +130,15 @@ lv_res_t lv_draw_sdl_img_core(lv_draw_ctx_t * draw_ctx, const lv_draw_img_dsc_t
     /* Coords will be translated so coords will start at (0,0) */
     lv_area_t t_coords = zoomed_cords, t_clip = *clip, apply_area;
 
+    bool has_composite = false;
+
     if(!check_mask_simple_radius(&t_coords, &radius)) {
-        lv_draw_sdl_composite_begin(ctx, &zoomed_cords, clip, NULL, draw_dsc->blend_mode,
-                                    &t_coords, &t_clip, &apply_area);
+        has_composite = lv_draw_sdl_composite_begin(ctx, &zoomed_cords, clip, NULL, draw_dsc->blend_mode,
+                                                    &t_coords, &t_clip, &apply_area);
     }
 
+    lv_draw_sdl_transform_areas_offset(ctx, has_composite, &apply_area, &t_coords, &t_clip);
+
     SDL_Rect clip_rect, coords_rect;
     lv_area_to_sdl_rect(&t_clip, &clip_rect);
     lv_area_to_sdl_rect(&t_coords, &coords_rect);
@@ -143,6 +154,14 @@ lv_res_t lv_draw_sdl_img_core(lv_draw_ctx_t * draw_ctx, const lv_draw_img_dsc_t
 
     lv_draw_sdl_composite_end(ctx, &apply_area, draw_dsc->blend_mode);
 
+    if(!texture_in_cache) {
+        LV_LOG_WARN("Texture is not cached, this will impact performance.");
+        if(!header->managed) {
+            SDL_DestroyTexture(texture);
+        }
+        lv_mem_free(header);
+    }
+
     return LV_RES_OK;
 }
 
@@ -180,7 +199,7 @@ static void calc_draw_part(SDL_Texture * texture, const lv_draw_sdl_img_header_t
 
 bool lv_draw_sdl_img_load_texture(lv_draw_sdl_ctx_t * ctx, lv_draw_sdl_cache_key_head_img_t * key, size_t key_size,
                                   const void * src, int32_t frame_id, SDL_Texture ** texture,
-                                  lv_draw_sdl_img_header_t ** header)
+                                  lv_draw_sdl_img_header_t ** header, bool * texture_in_cache)
 {
     _lv_img_cache_entry_t * cdsc = _lv_img_cache_open(src, lv_color_white(), frame_id);
     lv_draw_sdl_cache_flag_t tex_flags = 0;
@@ -205,16 +224,18 @@ bool lv_draw_sdl_img_load_texture(lv_draw_sdl_ctx_t * ctx, lv_draw_sdl_cache_key
 #endif
     }
     if(texture && cdsc) {
-        *header = SDL_malloc(sizeof(lv_draw_sdl_img_header_t));
+        *header = lv_mem_alloc(sizeof(lv_draw_sdl_img_header_t));
         SDL_memcpy(&(*header)->base, &cdsc->dec_dsc.header, sizeof(lv_img_header_t));
         (*header)->rect = rect;
-        lv_draw_sdl_texture_cache_put_advanced(ctx, key, key_size, *texture, *header, SDL_free, tex_flags);
+        (*header)->managed = (tex_flags & LV_DRAW_SDL_CACHE_FLAG_MANAGED) != 0;
+        *texture_in_cache = lv_draw_sdl_texture_cache_put_advanced(ctx, key, key_size, *texture, *header, SDL_free,
+                                                                   tex_flags);
+        return true;
     }
     else {
-        lv_draw_sdl_texture_cache_put(ctx, key, key_size, NULL);
+        *texture_in_cache = lv_draw_sdl_texture_cache_put(ctx, key, key_size, NULL);
         return false;
     }
-    return true;
 }
 
 /**********************
@@ -315,7 +336,8 @@ static void draw_img_rounded(lv_draw_sdl_ctx_t * ctx, SDL_Texture * texture, con
 {
     const int w = lv_area_get_width(coords), h = lv_area_get_height(coords);
     lv_coord_t real_radius = LV_MIN3(radius, w, h);
-    SDL_Texture * frag = img_rounded_frag_obtain(ctx, texture, header, w, h, real_radius);
+    bool frag_in_cache = false;
+    SDL_Texture * frag = img_rounded_frag_obtain(ctx, texture, header, w, h, real_radius, &frag_in_cache);
     apply_recolor_opa(frag, draw_dsc);
     lv_draw_sdl_rect_bg_frag_draw_corners(ctx, frag, real_radius, coords, clip, true);
 
@@ -355,6 +377,11 @@ static void draw_img_rounded(lv_draw_sdl_ctx_t * ctx, SDL_Texture * texture, con
         SDL_RenderCopy(ctx->renderer, texture, &src_rect, &dst_rect);
     }
     SDL_RenderSetClipRect(ctx->renderer, NULL);
+
+    if(!frag_in_cache) {
+        LV_LOG_WARN("Texture is not cached, this will impact performance.");
+        SDL_DestroyTexture(frag);
+    }
 }
 
 static void apply_recolor_opa(SDL_Texture * texture, const lv_draw_img_dsc_t * draw_dsc)
@@ -372,22 +399,28 @@ static void apply_recolor_opa(SDL_Texture * texture, const lv_draw_img_dsc_t * d
 }
 
 static SDL_Texture * img_rounded_frag_obtain(lv_draw_sdl_ctx_t * ctx, SDL_Texture * texture,
-                                             const lv_draw_sdl_img_header_t * header, int w, int h, lv_coord_t radius)
+                                             const lv_draw_sdl_img_header_t * header, int w, int h, lv_coord_t radius,
+                                             bool * in_cache)
 {
     lv_draw_img_rounded_key_t key = rounded_key_create(texture, w, h, radius);
-    SDL_Texture * mask_frag = lv_draw_sdl_rect_bg_frag_obtain(ctx, radius);
+    bool mask_frag_in_cache = false;
+    SDL_Texture * mask_frag = lv_draw_sdl_rect_bg_frag_obtain(ctx, radius, &mask_frag_in_cache);
     SDL_Texture * img_frag = lv_draw_sdl_texture_cache_get(ctx, &key, sizeof(key), NULL);
     if(img_frag == NULL) {
         const lv_coord_t full_frag_size = radius * 2 + 3;
         img_frag = SDL_CreateTexture(ctx->renderer, LV_DRAW_SDL_TEXTURE_FORMAT, SDL_TEXTUREACCESS_TARGET,
                                      full_frag_size, full_frag_size);
+        SDL_assert(img_frag);
         SDL_SetTextureBlendMode(img_frag, SDL_BLENDMODE_BLEND);
         SDL_Texture * old_target = SDL_GetRenderTarget(ctx->renderer);
         SDL_SetRenderTarget(ctx->renderer, img_frag);
         SDL_SetRenderDrawColor(ctx->renderer, 0, 0, 0, 0);
-        SDL_RenderClear(ctx->renderer);
+        /* SDL_RenderClear is not working properly, so we overwrite the target with solid color */
+        SDL_SetRenderDrawBlendMode(ctx->renderer, SDL_BLENDMODE_NONE);
+        SDL_RenderFillRect(ctx->renderer, NULL);
+        SDL_SetRenderDrawBlendMode(ctx->renderer, SDL_BLENDMODE_BLEND);
 
-        lv_area_t coords = {0, 0, w - 1, h - 1}, clip;
+        lv_area_t coords = {0, 0, w - 1, h - 1};
         lv_area_t frag_coords = {0, 0, full_frag_size - 1, full_frag_size - 1};
         lv_draw_sdl_rect_bg_frag_draw_corners(ctx, mask_frag, radius, &frag_coords, NULL, false);
 
@@ -438,7 +471,14 @@ static SDL_Texture * img_rounded_frag_obtain(lv_draw_sdl_ctx_t * ctx, SDL_Textur
         SDL_SetTextureBlendMode(texture, SDL_BLENDMODE_BLEND);
 
         SDL_SetRenderTarget(ctx->renderer, old_target);
-        lv_draw_sdl_texture_cache_put(ctx, &key, sizeof(key), img_frag);
+        *in_cache = lv_draw_sdl_texture_cache_put(ctx, &key, sizeof(key), img_frag);
+    }
+    else {
+        *in_cache = true;
+    }
+    if(!mask_frag_in_cache) {
+        LV_LOG_WARN("Texture is not cached, this will impact performance.");
+        SDL_DestroyTexture(mask_frag);
     }
     return img_frag;
 }
index 0e27027..6233913 100644 (file)
@@ -35,6 +35,7 @@ extern "C" {
 typedef struct lv_draw_sdl_img_header_t {
     lv_img_header_t base;
     SDL_Rect rect;
+    bool managed;
 } lv_draw_sdl_img_header_t;
 
 /**********************
@@ -56,9 +57,22 @@ typedef struct lv_draw_sdl_img_header_t {
 /*=====================
  * Other functions
  *====================*/
+/**
+ *
+ * @param ctx Drawing context
+ * @param key Texture cache key
+ * @param key_size Size of texture cache key
+ * @param src Image source pointer
+ * @param frame_id Frame ID for animated image
+ * @param texture Texture for render
+ * @param header Header also holds sdl image info
+ * @param texture_in_cache Whether the texture has been put in the cache. Please note for managed texture,
+ * this will be false too. So you'll need to check header.managed too.
+ * @return Whether the image has been loaded successfully
+ */
 bool lv_draw_sdl_img_load_texture(lv_draw_sdl_ctx_t * ctx, lv_draw_sdl_cache_key_head_img_t * key, size_t key_size,
                                   const void * src, int32_t frame_id, SDL_Texture ** texture,
-                                  lv_draw_sdl_img_header_t ** header);
+                                  lv_draw_sdl_img_header_t ** header, bool * texture_in_cache);
 /**********************
  *      MACROS
  **********************/
index a067c8a..d043c51 100644 (file)
@@ -19,6 +19,7 @@
 #include "lv_draw_sdl_utils.h"
 #include "lv_draw_sdl_texture_cache.h"
 #include "lv_draw_sdl_composite.h"
+#include "lv_draw_sdl_layer.h"
 
 /*********************
  *      DEFINES
@@ -53,7 +54,7 @@ static lv_font_glyph_key_t font_key_glyph_create(const lv_font_t * font_p, uint3
  *   GLOBAL FUNCTIONS
  **********************/
 
-void lv_draw_sdl_draw_letter(lv_draw_ctx_t * draw_ctx, const lv_draw_label_dsc_t * dsc,  const lv_point_t * pos_p,
+void lv_draw_sdl_draw_letter(lv_draw_ctx_t * draw_ctx, const lv_draw_label_dsc_t * dsc, const lv_point_t * pos_p,
                              uint32_t letter)
 {
     const lv_area_t * clip_area = draw_ctx->clip_area;
@@ -77,6 +78,21 @@ void lv_draw_sdl_draw_letter(lv_draw_ctx_t * draw_ctx, const lv_draw_label_dsc_t
            letter != 0xf8ff && /*LV_SYMBOL_DUMMY*/
            letter != 0x200c) { /*ZERO WIDTH NON-JOINER*/
             LV_LOG_WARN("lv_draw_letter: glyph dsc. not found for U+%X", letter);
+
+            /* draw placeholder */
+            lv_area_t glyph_coords;
+            lv_draw_rect_dsc_t glyph_dsc;
+            lv_coord_t begin_x = pos_p->x + g.ofs_x;
+            lv_coord_t begin_y = pos_p->y + g.ofs_y;
+            lv_area_set(&glyph_coords, begin_x, begin_y, begin_x + g.box_w, begin_y + g.box_h);
+            lv_draw_rect_dsc_init(&glyph_dsc);
+            glyph_dsc.bg_opa = LV_OPA_MIN;
+            glyph_dsc.outline_opa = LV_OPA_MIN;
+            glyph_dsc.shadow_opa = LV_OPA_MIN;
+            glyph_dsc.bg_img_opa = LV_OPA_MIN;
+            glyph_dsc.border_color = dsc->color;
+            glyph_dsc.border_width = 1;
+            draw_ctx->draw_rect(draw_ctx, &glyph_dsc, &glyph_coords);
         }
         return;
     }
@@ -101,6 +117,7 @@ void lv_draw_sdl_draw_letter(lv_draw_ctx_t * draw_ctx, const lv_draw_label_dsc_t
     lv_font_glyph_key_t glyph_key = font_key_glyph_create(font_p, letter);
     bool glyph_found = false;
     SDL_Texture * texture = lv_draw_sdl_texture_cache_get(ctx, &glyph_key, sizeof(glyph_key), &glyph_found);
+    bool in_cache = false;
     if(!glyph_found) {
         if(g.resolved_font) {
             font_p = g.resolved_font;
@@ -112,18 +129,27 @@ void lv_draw_sdl_draw_letter(lv_draw_ctx_t * draw_ctx, const lv_draw_label_dsc_t
         texture = SDL_CreateTextureFromSurface(renderer, mask);
         SDL_FreeSurface(mask);
         lv_mem_free(buf);
-        lv_draw_sdl_texture_cache_put(ctx, &glyph_key, sizeof(glyph_key), texture);
+        in_cache = lv_draw_sdl_texture_cache_put(ctx, &glyph_key, sizeof(glyph_key), texture);
+    }
+    else {
+        in_cache = true;
     }
     if(!texture) {
         return;
     }
 
     lv_area_t t_letter = letter_area, t_clip = *clip_area, apply_area;
-    bool has_mask = lv_draw_sdl_composite_begin(ctx, &letter_area, clip_area, NULL, dsc->blend_mode, &t_letter, &t_clip,
-                                                &apply_area);
+    bool has_composite = lv_draw_sdl_composite_begin(ctx, &letter_area, clip_area, NULL, dsc->blend_mode, &t_letter,
+                                                     &t_clip, &apply_area);
+
+    lv_draw_sdl_transform_areas_offset(ctx, has_composite, &apply_area, &t_letter, &t_clip);
 
     /*If the letter is completely out of mask don't draw it*/
     if(!_lv_area_intersect(&draw_area, &t_letter, &t_clip)) {
+        if(!in_cache) {
+            LV_LOG_WARN("Texture is not cached, this will impact performance.");
+            SDL_DestroyTexture(texture);
+        }
         return;
     }
     SDL_Rect srcrect, dstrect;
@@ -138,6 +164,11 @@ void lv_draw_sdl_draw_letter(lv_draw_ctx_t * draw_ctx, const lv_draw_label_dsc_t
     SDL_RenderCopy(renderer, texture, &srcrect, &dstrect);
 
     lv_draw_sdl_composite_end(ctx, &apply_area, dsc->blend_mode);
+
+    if(!in_cache) {
+        LV_LOG_WARN("Texture is not cached, this will impact performance.");
+        SDL_DestroyTexture(texture);
+    }
 }
 
 /**********************
index 8dd7b2e..204e1a3 100644 (file)
@@ -53,7 +53,7 @@ static SDL_Texture * line_texture_create(lv_draw_sdl_ctx_t * sdl_ctx, const lv_d
  *   GLOBAL FUNCTIONS
  **********************/
 void lv_draw_sdl_draw_line(lv_draw_ctx_t * draw_ctx, const lv_draw_line_dsc_t * dsc, const lv_point_t * point1,
-                           const lv_point_t * point2)
+                           const lv_point_t * point2, bool * in_cache)
 {
     lv_draw_sdl_ctx_t * sdl_ctx = (lv_draw_sdl_ctx_t *) draw_ctx;
     SDL_Renderer * renderer = sdl_ctx->renderer;
@@ -68,7 +68,7 @@ void lv_draw_sdl_draw_line(lv_draw_ctx_t * draw_ctx, const lv_draw_line_dsc_t *
     SDL_Texture * texture = lv_draw_sdl_texture_cache_get(sdl_ctx, &key, sizeof(key), NULL);
     if(!texture) {
         texture = line_texture_create(sdl_ctx, dsc, (lv_coord_t) length);
-        lv_draw_sdl_texture_cache_put(sdl_ctx, &key, sizeof(key), texture);
+        *in_cache = lv_draw_sdl_texture_cache_put(sdl_ctx, &key, sizeof(key), texture);
     }
 
     lv_area_t coords = {x1, y1, x2, y2};
@@ -126,7 +126,10 @@ static SDL_Texture * line_texture_create(lv_draw_sdl_ctx_t * sdl_ctx, const lv_d
     SDL_SetRenderTarget(sdl_ctx->renderer, texture);
     SDL_SetTextureBlendMode(texture, SDL_BLENDMODE_BLEND);
     SDL_SetRenderDrawColor(sdl_ctx->renderer, 0xFF, 0xFF, 0xFF, 0x0);
-    SDL_RenderClear(sdl_ctx->renderer);
+    /* SDL_RenderClear is not working properly, so we overwrite the target with solid color */
+    SDL_SetRenderDrawBlendMode(sdl_ctx->renderer, SDL_BLENDMODE_NONE);
+    SDL_RenderFillRect(sdl_ctx->renderer, NULL);
+    SDL_SetRenderDrawBlendMode(sdl_ctx->renderer, SDL_BLENDMODE_BLEND);
     SDL_SetRenderDrawColor(sdl_ctx->renderer, 0xFF, 0xFF, 0xFF, 0xFF);
     SDL_Rect line_rect = {1 + dsc->width / 2, 1, length, dsc->width};
     SDL_RenderFillRect(sdl_ctx->renderer, &line_rect);
index c5df50c..68305c7 100644 (file)
@@ -77,7 +77,9 @@ void lv_draw_sdl_polygon(lv_draw_ctx_t * draw_ctx, const lv_draw_rect_dsc_t * dr
     int16_t mask_id = lv_draw_mask_add(&polygon_param, NULL);
 
     lv_coord_t w = lv_area_get_width(&draw_area), h = lv_area_get_height(&draw_area);
-    SDL_Texture * texture = lv_draw_sdl_composite_texture_obtain(ctx, LV_DRAW_SDL_COMPOSITE_TEXTURE_ID_STREAM1, w, h);
+    bool texture_in_cache = false;
+    SDL_Texture * texture = lv_draw_sdl_composite_texture_obtain(ctx, LV_DRAW_SDL_COMPOSITE_TEXTURE_ID_STREAM1, w, h,
+                                                                 &texture_in_cache);
     SDL_SetTextureBlendMode(texture, SDL_BLENDMODE_BLEND);
     dump_masks(texture, &draw_area);
 
@@ -91,6 +93,10 @@ void lv_draw_sdl_polygon(lv_draw_ctx_t * draw_ctx, const lv_draw_rect_dsc_t * dr
     SDL_SetTextureColorMod(texture, color.r, color.g, color.b);
     SDL_SetTextureAlphaMod(texture, draw_dsc->bg_opa);
     SDL_RenderCopy(ctx->renderer, texture, &srcrect, &dstrect);
+    if(!texture_in_cache) {
+        LV_LOG_WARN("Texture is not cached, this will impact performance.");
+        SDL_DestroyTexture(texture);
+    }
 }
 
 /**********************
index 1f44c22..ffc191b 100644 (file)
@@ -35,6 +35,9 @@ typedef struct lv_draw_sdl_context_internals_t {
     lv_lru_t * texture_cache;
     SDL_Texture * mask;
     SDL_Texture * composition;
+    bool composition_cached;
+    SDL_Texture * target_backup;
+    uint8_t transform_count;
 } lv_draw_sdl_context_internals_t;
 
 /**********************
index 4df113e..149dcbf 100644 (file)
 #include "lv_draw_sdl_composite.h"
 #include "lv_draw_sdl_mask.h"
 #include "lv_draw_sdl_stack_blur.h"
-#include "lv_draw_sdl_img.h"
+#include "lv_draw_sdl_layer.h"
 
 /*********************
  *      DEFINES
  *********************/
 
+#define FRAG_SPACING 3
+
 /**********************
  *      TYPEDEFS
  **********************/
@@ -37,6 +39,23 @@ typedef struct {
     lv_coord_t size;
 } lv_draw_rect_bg_key_t;
 
+typedef struct {
+    lv_sdl_cache_key_magic_t magic;
+    lv_gradient_stop_t stops[LV_GRADIENT_MAX_STOPS];
+    uint8_t stops_count;
+    lv_grad_dir_t dir;
+} lv_draw_rect_grad_strip_key_t;
+
+typedef struct {
+    lv_sdl_cache_key_magic_t magic;
+    lv_gradient_stop_t stops[LV_GRADIENT_MAX_STOPS];
+    uint8_t stops_count;
+    lv_grad_dir_t dir;
+    lv_coord_t w;
+    lv_coord_t h;
+    lv_coord_t radius;
+} lv_draw_rect_grad_frag_key_t;
+
 typedef struct {
     lv_sdl_cache_key_magic_t magic;
     lv_coord_t radius;
@@ -57,6 +76,12 @@ typedef struct {
 static void draw_bg_color(lv_draw_sdl_ctx_t * ctx, const lv_area_t * coords, const lv_area_t * draw_area,
                           const lv_draw_rect_dsc_t * dsc);
 
+static void draw_bg_grad_simple(lv_draw_sdl_ctx_t * ctx, const lv_area_t * coords, const lv_area_t * draw_area,
+                                const lv_grad_dsc_t * grad, bool blend_mod);
+
+static void draw_bg_grad_radius(lv_draw_sdl_ctx_t * ctx, const lv_area_t * coords, const lv_area_t * draw_area,
+                                const lv_draw_rect_dsc_t * dsc);
+
 static void draw_bg_img(lv_draw_sdl_ctx_t * ctx, const lv_area_t * coords, const lv_area_t * draw_area,
                         const lv_draw_rect_dsc_t * dsc);
 
@@ -81,6 +106,11 @@ static void frag_render_center(SDL_Renderer * renderer, SDL_Texture * frag, lv_c
 
 static lv_draw_rect_bg_key_t rect_bg_key_create(lv_coord_t radius, lv_coord_t size);
 
+static lv_draw_rect_grad_frag_key_t rect_grad_frag_key_create(const lv_grad_dsc_t * grad, lv_coord_t w, lv_coord_t h,
+                                                              lv_coord_t radius);
+
+static lv_draw_rect_grad_strip_key_t rect_grad_strip_key_create(const lv_grad_dsc_t * grad);
+
 static lv_draw_rect_shadow_key_t rect_shadow_key_create(lv_coord_t radius, lv_coord_t size, lv_coord_t blur);
 
 static lv_draw_rect_border_key_t rect_border_key_create(lv_coord_t rout, lv_coord_t rin, const lv_area_t * outer_area,
@@ -124,7 +154,11 @@ void lv_draw_sdl_draw_rect(lv_draw_ctx_t * draw_ctx, const lv_draw_rect_dsc_t *
     }
     /* Coords will be translated so coords will start at (0,0) */
     lv_area_t t_coords = *coords, t_clip = *clip, apply_area, t_area;
-    lv_draw_sdl_composite_begin(ctx, coords, clip, &extension, dsc->blend_mode, &t_coords, &t_clip, &apply_area);
+    bool has_composite = lv_draw_sdl_composite_begin(ctx, coords, clip, &extension, dsc->blend_mode, &t_coords, &t_clip,
+                                                     &apply_area);
+
+    lv_draw_sdl_transform_areas_offset(ctx, has_composite, &apply_area, &t_coords, &t_clip);
+
     bool has_content = _lv_area_intersect(&t_area, &t_coords, &t_clip);
 
     SDL_Rect clip_rect;
@@ -141,20 +175,106 @@ void lv_draw_sdl_draw_rect(lv_draw_ctx_t * draw_ctx, const lv_draw_rect_dsc_t *
     lv_draw_sdl_composite_end(ctx, &apply_area, dsc->blend_mode);
 }
 
-SDL_Texture * lv_draw_sdl_rect_bg_frag_obtain(lv_draw_sdl_ctx_t * ctx, lv_coord_t radius)
+SDL_Texture * lv_draw_sdl_rect_bg_frag_obtain(lv_draw_sdl_ctx_t * ctx, lv_coord_t radius, bool * in_cache)
 {
     lv_draw_rect_bg_key_t key = rect_bg_key_create(radius, radius);
-    lv_area_t coords = {0, 0, radius * 2 - 1, radius * 2 - 1};
-    lv_area_t coords_frag = {0, 0, radius - 1, radius - 1};
     SDL_Texture * texture = lv_draw_sdl_texture_cache_get(ctx, &key, sizeof(key), NULL);
     if(texture == NULL) {
+        lv_area_t coords = {0, 0, radius * 2 - 1, radius * 2 - 1};
+        lv_area_t coords_frag = {0, 0, radius - 1, radius - 1};
         lv_draw_mask_radius_param_t mask_rout_param;
         lv_draw_mask_radius_init(&mask_rout_param, &coords, radius, false);
         int16_t mask_id = lv_draw_mask_add(&mask_rout_param, NULL);
         texture = lv_draw_sdl_mask_dump_texture(ctx->renderer, &coords_frag, &mask_id, 1);
+        SDL_assert(texture != NULL);
         lv_draw_mask_remove_id(mask_id);
-        SDL_assert(texture);
-        lv_draw_sdl_texture_cache_put(ctx, &key, sizeof(key), texture);
+        *in_cache = lv_draw_sdl_texture_cache_put(ctx, &key, sizeof(key), texture);
+    }
+    else {
+        *in_cache = true;
+    }
+    return texture;
+}
+
+SDL_Texture * lv_draw_sdl_rect_grad_frag_obtain(lv_draw_sdl_ctx_t * ctx, const lv_grad_dsc_t * grad, lv_coord_t w,
+                                                lv_coord_t h, lv_coord_t radius, bool * in_cache)
+{
+    lv_draw_rect_grad_frag_key_t key = rect_grad_frag_key_create(grad, w, h, radius);
+    SDL_Texture * texture = lv_draw_sdl_texture_cache_get(ctx, &key, sizeof(key), NULL);
+    if(texture == NULL) {
+        lv_area_t coords = {0, 0, radius * 2 + FRAG_SPACING - 1, radius * 2 + FRAG_SPACING - 1};
+        texture = SDL_CreateTexture(ctx->renderer, LV_DRAW_SDL_TEXTURE_FORMAT, SDL_TEXTUREACCESS_TARGET,
+                                    lv_area_get_width(&coords), lv_area_get_height(&coords));
+        SDL_assert(texture != NULL);
+
+        lv_draw_mask_radius_param_t mask_rout_param;
+        lv_draw_mask_radius_init(&mask_rout_param, &coords, radius, false);
+        int16_t mask_id = lv_draw_mask_add(&mask_rout_param, NULL);
+        SDL_Texture * mask = lv_draw_sdl_mask_dump_texture(ctx->renderer, &coords, &mask_id, 1);
+        SDL_assert(mask != NULL);
+        SDL_SetTextureBlendMode(mask, SDL_BLENDMODE_NONE);
+        lv_draw_mask_remove_id(mask_id);
+
+        SDL_Texture * target_backup = SDL_GetRenderTarget(ctx->renderer);
+        SDL_SetRenderTarget(ctx->renderer, texture);
+        SDL_RenderCopy(ctx->renderer, mask, NULL, NULL);
+        SDL_DestroyTexture(mask);
+
+        lv_area_t blend_coords = {.x1 = 0, .y1 = 0, .x2 = w - 1, .y2 = h - 1};
+        lv_area_t draw_area = {.x1 = 0, .y1 = 0, .x2 = radius - 1, .y2 = radius - 1};
+        /* Align to top left */
+        lv_area_align(&coords, &draw_area, LV_ALIGN_TOP_LEFT, 0, 0);
+        lv_area_align(&coords, &blend_coords, LV_ALIGN_TOP_LEFT, 0, 0);
+        draw_bg_grad_simple(ctx, &blend_coords, &draw_area, grad, true);
+
+        /* Align to top right */
+        lv_area_align(&coords, &draw_area, LV_ALIGN_TOP_RIGHT, 0, 0);
+        lv_area_align(&coords, &blend_coords, LV_ALIGN_TOP_RIGHT, 0, 0);
+        draw_bg_grad_simple(ctx, &blend_coords, &draw_area, grad, true);
+
+        /* Align to bottom right */
+        lv_area_align(&coords, &draw_area, LV_ALIGN_BOTTOM_RIGHT, 0, 0);
+        lv_area_align(&coords, &blend_coords, LV_ALIGN_BOTTOM_RIGHT, 0, 0);
+        draw_bg_grad_simple(ctx, &blend_coords, &draw_area, grad, true);
+
+        /* Align to bottom left */
+        lv_area_align(&coords, &draw_area, LV_ALIGN_BOTTOM_LEFT, 0, 0);
+        lv_area_align(&coords, &blend_coords, LV_ALIGN_BOTTOM_LEFT, 0, 0);
+        draw_bg_grad_simple(ctx, &blend_coords, &draw_area, grad, true);
+
+        SDL_SetRenderTarget(ctx->renderer, target_backup);
+        *in_cache = lv_draw_sdl_texture_cache_put(ctx, &key, sizeof(key), texture);
+    }
+    else {
+        *in_cache = true;
+    }
+    return texture;
+}
+
+SDL_Texture * lv_draw_sdl_rect_grad_strip_obtain(lv_draw_sdl_ctx_t * ctx, const lv_grad_dsc_t * grad, bool * in_cache)
+{
+    lv_draw_rect_grad_strip_key_t key = rect_grad_strip_key_create(grad);
+    SDL_Texture * texture = lv_draw_sdl_texture_cache_get(ctx, &key, sizeof(key), NULL);
+    if(texture == NULL) {
+        Uint32 amask = 0xFF000000;
+        Uint32 rmask = 0x00FF0000;
+        Uint32 gmask = 0x0000FF00;
+        Uint32 bmask = 0x000000FF;
+        lv_color_t pixels[256];
+        for(int i = 0; i < 256; i++) {
+            pixels[i] = lv_gradient_calculate(grad, 256, i);
+        }
+        int width = grad->dir == LV_GRAD_DIR_VER ? 1 : 256;
+        int height = grad->dir == LV_GRAD_DIR_VER ? 256 : 1;
+        SDL_Surface * surface = SDL_CreateRGBSurfaceFrom(pixels, width, height, LV_COLOR_DEPTH, width * LV_COLOR_DEPTH / 8,
+                                                         rmask, gmask, bmask, amask);
+        texture = SDL_CreateTextureFromSurface(ctx->renderer, surface);
+        SDL_assert(texture != NULL);
+        SDL_FreeSurface(surface);
+        *in_cache = lv_draw_sdl_texture_cache_put(ctx, &key, sizeof(key), texture);
+    }
+    else {
+        *in_cache = true;
     }
     return texture;
 }
@@ -189,7 +309,7 @@ void lv_draw_sdl_rect_bg_frag_draw_corners(lv_draw_sdl_ctx_t * ctx, SDL_Texture
         if(full) {
             lv_coord_t sx = (lv_coord_t)(dst_area.x1 - corner_area.x1),
                        sy = (lv_coord_t)(dst_area.y1 - corner_area.y1);
-            SDL_Rect src_rect = {frag_size + 3 + sx, sy, dw, dh};
+            SDL_Rect src_rect = {frag_size + FRAG_SPACING + sx, sy, dw, dh};
             SDL_RenderCopy(ctx->renderer, frag, &src_rect, &dst_rect);
         }
         else {
@@ -208,7 +328,7 @@ void lv_draw_sdl_rect_bg_frag_draw_corners(lv_draw_sdl_ctx_t * ctx, SDL_Texture
         if(full) {
             lv_coord_t sx = (lv_coord_t)(dst_area.x1 - corner_area.x1),
                        sy = (lv_coord_t)(dst_area.y1 - corner_area.y1);
-            SDL_Rect src_rect = {frag_size + 3 + sx, frag_size + 3 + sy, dw, dh};
+            SDL_Rect src_rect = {frag_size + FRAG_SPACING + sx, frag_size + FRAG_SPACING + sy, dw, dh};
             SDL_RenderCopy(ctx->renderer, frag, &src_rect, &dst_rect);
         }
         else {
@@ -216,7 +336,7 @@ void lv_draw_sdl_rect_bg_frag_draw_corners(lv_draw_sdl_ctx_t * ctx, SDL_Texture
             SDL_RenderCopyEx(ctx->renderer, frag, &src_rect, &dst_rect, 0, NULL, SDL_FLIP_HORIZONTAL | SDL_FLIP_VERTICAL);
         }
     }
-    /* Lower left, right edge should not be clip */
+    /* Lower left, right edge should not be clipped */
     corner_area.x1 = coords->x1;
     corner_area.x2 = coords->x1 + frag_size - 1;
     if(_lv_area_intersect(&dst_area, &corner_area, clip)) {
@@ -227,7 +347,7 @@ void lv_draw_sdl_rect_bg_frag_draw_corners(lv_draw_sdl_ctx_t * ctx, SDL_Texture
         if(full) {
             lv_coord_t sx = (lv_coord_t)(dst_area.x1 - corner_area.x1),
                        sy = (lv_coord_t)(dst_area.y1 - corner_area.y1);
-            SDL_Rect src_rect = {sx, frag_size + 3 + sy, dw, dh};
+            SDL_Rect src_rect = {sx, frag_size + FRAG_SPACING + sy, dw, dh};
             SDL_RenderCopy(ctx->renderer, frag, &src_rect, &dst_rect);
         }
         else {
@@ -248,9 +368,23 @@ static void draw_bg_color(lv_draw_sdl_ctx_t * ctx, const lv_area_t * coords, con
     if(dsc->bg_opa == 0) {
         return;
     }
-    SDL_Color bg_color;
-    lv_color_to_sdl_color(&dsc->bg_color, &bg_color);
     lv_coord_t radius = dsc->radius;
+    SDL_Color bg_color;
+    if(dsc->bg_grad.dir == LV_GRAD_DIR_NONE) {
+        lv_color_to_sdl_color(&dsc->bg_color, &bg_color);
+    }
+    else if(dsc->bg_grad.stops_count == 1) {
+        lv_color_to_sdl_color(&dsc->bg_grad.stops[0].color, &bg_color);
+    }
+    else {
+        if(radius <= 0) {
+            draw_bg_grad_simple(ctx, coords, draw_area, &dsc->bg_grad, false);
+        }
+        else {
+            draw_bg_grad_radius(ctx, coords, draw_area, dsc);
+        }
+        return;
+    }
     if(radius <= 0) {
         SDL_Rect rect;
         lv_area_to_sdl_rect(draw_area, &rect);
@@ -263,7 +397,8 @@ static void draw_bg_color(lv_draw_sdl_ctx_t * ctx, const lv_area_t * coords, con
     /*A small texture with a quarter of the rect is enough*/
     lv_coord_t bg_w = lv_area_get_width(coords), bg_h = lv_area_get_height(coords);
     lv_coord_t real_radius = LV_MIN3(bg_w / 2, bg_h / 2, radius);
-    SDL_Texture * texture = lv_draw_sdl_rect_bg_frag_obtain(ctx, real_radius);
+    bool texture_in_cache = false;
+    SDL_Texture * texture = lv_draw_sdl_rect_bg_frag_obtain(ctx, real_radius, &texture_in_cache);
 
     SDL_SetTextureBlendMode(texture, SDL_BLENDMODE_BLEND);
     SDL_SetTextureAlphaMod(texture, dsc->bg_opa);
@@ -271,11 +406,131 @@ static void draw_bg_color(lv_draw_sdl_ctx_t * ctx, const lv_area_t * coords, con
     lv_draw_sdl_rect_bg_frag_draw_corners(ctx, texture, real_radius, coords, draw_area, false);
     frag_render_borders(ctx->renderer, texture, real_radius, coords, draw_area, false);
     frag_render_center(ctx->renderer, texture, real_radius, coords, draw_area, false);
+
+    if(!texture_in_cache) {
+        LV_LOG_WARN("Texture is not cached, this will impact performance.");
+        SDL_DestroyTexture(texture);
+    }
+}
+
+static void draw_bg_grad_simple(lv_draw_sdl_ctx_t * ctx, const lv_area_t * coords, const lv_area_t * draw_area,
+                                const lv_grad_dsc_t * grad, bool blend_mod)
+{
+    SDL_Rect dstrect;
+    lv_area_to_sdl_rect(draw_area, &dstrect);
+    SDL_Rect srcrect;
+    if(grad->dir == LV_GRAD_DIR_VER) {
+        lv_coord_t coords_h = lv_area_get_height(coords);
+        srcrect.x = 0;
+        srcrect.y = (draw_area->y1 - coords->y1) * 255 / coords_h;
+        srcrect.w = 1;
+        srcrect.h = dstrect.h * 256 / coords_h;
+
+        if(srcrect.y < 0 || srcrect.y > 255) {
+            return;
+        }
+    }
+    else {
+        lv_coord_t coords_w = lv_area_get_width(coords);
+        srcrect.x = (draw_area->x1 - coords->x1) * 255 / coords_w;
+        srcrect.y = 0;
+        srcrect.w = dstrect.w * 256 / coords_w;
+        srcrect.h = 1;
+
+        if(srcrect.x < 0 || srcrect.x > 255) {
+            return;
+        }
+    }
+
+    bool grad_texture_in_cache = false;
+    SDL_Texture * grad_texture = lv_draw_sdl_rect_grad_strip_obtain(ctx, grad, &grad_texture_in_cache);
+    if(blend_mod) {
+        SDL_SetTextureBlendMode(grad_texture, SDL_BLENDMODE_MOD);
+    }
+    else {
+        SDL_SetTextureBlendMode(grad_texture, SDL_BLENDMODE_BLEND);
+    }
+
+    SDL_RenderCopy(ctx->renderer, grad_texture, &srcrect, &dstrect);
+
+    if(!grad_texture_in_cache) {
+        LV_LOG_WARN("Texture is not cached, this will impact performance.");
+        SDL_DestroyTexture(grad_texture);
+    }
+}
+
+static void draw_bg_grad_radius(lv_draw_sdl_ctx_t * ctx, const lv_area_t * coords, const lv_area_t * draw_area,
+                                const lv_draw_rect_dsc_t * dsc)
+{
+    lv_coord_t radius = dsc->radius;
+    /*A small texture with a quarter of the rect is enough*/
+    lv_coord_t bg_w = lv_area_get_width(coords), bg_h = lv_area_get_height(coords);
+    lv_coord_t real_radius = LV_MIN3(bg_w / 2, bg_h / 2, radius);
+    bool grad_texture_in_cache = false;
+    SDL_Texture * grad_texture = lv_draw_sdl_rect_grad_frag_obtain(ctx, &dsc->bg_grad, bg_w, bg_h, radius,
+                                                                   &grad_texture_in_cache);
+    SDL_SetTextureBlendMode(grad_texture, SDL_BLENDMODE_BLEND);
+
+    lv_draw_sdl_rect_bg_frag_draw_corners(ctx, grad_texture, real_radius, coords, draw_area, true);
+    lv_area_t part_coords;
+    lv_area_t part_area;
+    if(bg_w > radius * 2) {
+        /*Draw left, middle, right*/
+        part_coords.x1 = 0;
+        part_coords.x2 = radius - 1;
+        part_coords.y1 = radius;
+        part_coords.y2 = bg_h - radius - 1;
+
+        lv_area_align(coords, &part_coords, LV_ALIGN_LEFT_MID, 0, 0);
+        _lv_area_intersect(&part_area, &part_coords, draw_area);
+        draw_bg_grad_simple(ctx, coords, &part_area, &dsc->bg_grad, false);
+
+        lv_area_align(coords, &part_coords, LV_ALIGN_RIGHT_MID, 0, 0);
+        _lv_area_intersect(&part_area, &part_coords, draw_area);
+        draw_bg_grad_simple(ctx, coords, &part_area, &dsc->bg_grad, false);
+
+        part_coords.x1 = radius;
+        part_coords.x2 = bg_w - radius - 1;
+        part_coords.y1 = 0;
+        part_coords.y2 = bg_h - 1;
+        lv_area_align(coords, &part_coords, LV_ALIGN_CENTER, 0, 0);
+        _lv_area_intersect(&part_area, &part_coords, draw_area);
+        draw_bg_grad_simple(ctx, coords, &part_area, &dsc->bg_grad, false);
+    }
+    else if(bg_h > radius * 2) {
+        /*Draw top, middle, bottom*/
+        part_coords.x1 = radius;
+        part_coords.x2 = bg_w - radius - 1;
+        part_coords.y1 = 0;
+        part_coords.y2 = radius - 1;
+
+        lv_area_align(coords, &part_coords, LV_ALIGN_TOP_MID, 0, 0);
+        _lv_area_intersect(&part_area, &part_coords, draw_area);
+        draw_bg_grad_simple(ctx, coords, &part_area, &dsc->bg_grad, false);
+
+        lv_area_align(coords, &part_coords, LV_ALIGN_BOTTOM_MID, 0, 0);
+        _lv_area_intersect(&part_area, &part_coords, draw_area);
+        draw_bg_grad_simple(ctx, coords, &part_area, &dsc->bg_grad, false);
+
+        part_coords.x1 = 0;
+        part_coords.x2 = bg_w - 1;
+        part_coords.y1 = radius;
+        part_coords.y2 = bg_h - radius - 1;
+        lv_area_align(coords, &part_coords, LV_ALIGN_CENTER, 0, 0);
+        _lv_area_intersect(&part_area, &part_coords, draw_area);
+        draw_bg_grad_simple(ctx, coords, &part_area, &dsc->bg_grad, false);
+    }
+
+    if(!grad_texture_in_cache) {
+        LV_LOG_WARN("Texture is not cached, this will impact performance.");
+        SDL_DestroyTexture(grad_texture);
+    }
 }
 
 static void draw_bg_img(lv_draw_sdl_ctx_t * ctx, const lv_area_t * coords, const lv_area_t * draw_area,
                         const lv_draw_rect_dsc_t * dsc)
 {
+    LV_UNUSED(draw_area);
     if(SKIP_IMAGE(dsc)) return;
 
     lv_img_src_t src_type = lv_img_src_get_type(dsc->bg_img_src);
@@ -405,6 +660,7 @@ static void draw_shadow(lv_draw_sdl_ctx_t * ctx, const lv_area_t * coords, const
     lv_draw_rect_shadow_key_t key = rect_shadow_key_create(radius, frag_size, sw);
 
     SDL_Texture * texture = lv_draw_sdl_texture_cache_get(ctx, &key, sizeof(key), NULL);
+    bool texture_in_cache = false;
     if(texture == NULL) {
         lv_area_t mask_area = {blur_growth, blur_growth}, mask_area_blurred = {0, 0};
         lv_area_set_width(&mask_area, frag_size * 2);
@@ -423,7 +679,10 @@ static void draw_shadow(lv_draw_sdl_ctx_t * ctx, const lv_area_t * coords, const
         lv_mem_buf_release(mask_buf);
         lv_draw_mask_remove_id(mask_id);
         SDL_assert(texture);
-        lv_draw_sdl_texture_cache_put(ctx, &key, sizeof(key), texture);
+        texture_in_cache = lv_draw_sdl_texture_cache_put(ctx, &key, sizeof(key), texture);
+    }
+    else {
+        texture_in_cache = true;
     }
 
     SDL_Color shadow_color;
@@ -435,6 +694,11 @@ static void draw_shadow(lv_draw_sdl_ctx_t * ctx, const lv_area_t * coords, const
     lv_draw_sdl_rect_bg_frag_draw_corners(ctx, texture, blur_frag_size, &shadow_area, clip, false);
     frag_render_borders(ctx->renderer, texture, blur_frag_size, &shadow_area, clip, false);
     frag_render_center(ctx->renderer, texture, blur_frag_size, &shadow_area, clip, false);
+
+    if(!texture_in_cache) {
+        LV_LOG_WARN("Texture is not cached, this will impact performance.");
+        SDL_DestroyTexture(texture);
+    }
 }
 
 
@@ -516,9 +780,10 @@ static void draw_border_generic(lv_draw_sdl_ctx_t * ctx, const lv_area_t * outer
     lv_coord_t max_side = LV_MAX4(key.offsets.x1, key.offsets.y1, -key.offsets.x2, -key.offsets.y2);
     lv_coord_t frag_size = LV_MAX(radius, max_side);
     SDL_Texture * texture = lv_draw_sdl_texture_cache_get(ctx, &key, sizeof(key), NULL);
+    bool texture_in_cache;
     if(texture == NULL) {
-        /* Create a mask texture with size of (frag_size * 2 + 3) */
-        const lv_area_t frag_area = {0, 0, frag_size * 2 + 2, frag_size * 2 + 2};
+        /* Create a mask texture with size of (frag_size * 2 + FRAG_SPACING) */
+        const lv_area_t frag_area = {0, 0, frag_size * 2 + FRAG_SPACING - 1, frag_size * 2 + FRAG_SPACING - 1};
 
         /*Create mask for the outer area*/
         int16_t mask_ids[2] = {LV_MASK_ID_INV, LV_MASK_ID_INV};
@@ -542,7 +807,10 @@ static void draw_border_generic(lv_draw_sdl_ctx_t * ctx, const lv_area_t * outer
         lv_draw_mask_remove_id(mask_ids[1]);
         lv_draw_mask_remove_id(mask_ids[0]);
         SDL_assert(texture);
-        lv_draw_sdl_texture_cache_put(ctx, &key, sizeof(key), texture);
+        texture_in_cache = lv_draw_sdl_texture_cache_put(ctx, &key, sizeof(key), texture);
+    }
+    else {
+        texture_in_cache = true;
     }
 
     SDL_Rect outer_rect;
@@ -556,6 +824,11 @@ static void draw_border_generic(lv_draw_sdl_ctx_t * ctx, const lv_area_t * outer
 
     lv_draw_sdl_rect_bg_frag_draw_corners(ctx, texture, frag_size, outer_area, clip, true);
     frag_render_borders(renderer, texture, frag_size, outer_area, clip, true);
+
+    if(!texture_in_cache) {
+        LV_LOG_WARN("Texture is not cached, this will impact performance.");
+        SDL_DestroyTexture(texture);
+    }
 }
 
 static void frag_render_borders(SDL_Renderer * renderer, SDL_Texture * frag, lv_coord_t frag_size,
@@ -591,7 +864,7 @@ static void frag_render_borders(SDL_Renderer * renderer, SDL_Texture * frag, lv_
         lv_coord_t dh = lv_area_get_height(&dst_area);
         if(full) {
             lv_coord_t sy = (lv_coord_t)(dst_area.y1 - border_area.y1);
-            SDL_Rect src_rect = {frag_size + 1, frag_size + 3 + sy, 1, dh};
+            SDL_Rect src_rect = {frag_size + 1, frag_size + FRAG_SPACING + sy, 1, dh};
             SDL_RenderCopy(renderer, frag, &src_rect, &dst_rect);
         }
         else {
@@ -630,7 +903,7 @@ static void frag_render_borders(SDL_Renderer * renderer, SDL_Texture * frag, lv_
         lv_coord_t dw = lv_area_get_width(&dst_area);
         if(full) {
             lv_coord_t sx = (lv_coord_t)(dst_area.x1 - border_area.x1);
-            SDL_Rect src_rect = {frag_size + 3 + sx, frag_size + 1, dw, 1};
+            SDL_Rect src_rect = {frag_size + FRAG_SPACING + sx, frag_size + 1, dw, 1};
             SDL_RenderCopy(renderer, frag, &src_rect, &dst_rect);
         }
         else {
@@ -678,6 +951,38 @@ static lv_draw_rect_bg_key_t rect_bg_key_create(lv_coord_t radius, lv_coord_t si
     return key;
 }
 
+static lv_draw_rect_grad_frag_key_t rect_grad_frag_key_create(const lv_grad_dsc_t * grad, lv_coord_t w, lv_coord_t h,
+                                                              lv_coord_t radius)
+{
+    lv_draw_rect_grad_frag_key_t key;
+    SDL_memset(&key, 0, sizeof(key));
+    key.magic = LV_GPU_CACHE_KEY_MAGIC_RECT_GRAD;
+    key.stops_count = grad->stops_count;
+    key.dir = grad->dir;
+    for(uint8_t i = 0; i < grad->stops_count; i++) {
+        key.stops[i].frac = grad->stops[i].frac;
+        key.stops[i].color = grad->stops[i].color;
+    }
+    key.w = w;
+    key.h = h;
+    key.radius = radius;
+    return key;
+}
+
+static lv_draw_rect_grad_strip_key_t rect_grad_strip_key_create(const lv_grad_dsc_t * grad)
+{
+    lv_draw_rect_grad_strip_key_t key;
+    SDL_memset(&key, 0, sizeof(key));
+    key.magic = LV_GPU_CACHE_KEY_MAGIC_RECT_GRAD;
+    key.stops_count = grad->stops_count;
+    key.dir = grad->dir;
+    for(uint8_t i = 0; i < grad->stops_count; i++) {
+        key.stops[i].frac = grad->stops[i].frac;
+        key.stops[i].color = grad->stops[i].color;
+    }
+    return key;
+}
+
 static lv_draw_rect_shadow_key_t rect_shadow_key_create(lv_coord_t radius, lv_coord_t size, lv_coord_t blur)
 {
     lv_draw_rect_shadow_key_t key;
index 1e9be34..c3262d5 100644 (file)
@@ -57,7 +57,36 @@ typedef struct lv_draw_sdl_rect_header_t {
  * Other functions
  *====================*/
 
-SDL_Texture * lv_draw_sdl_rect_bg_frag_obtain(lv_draw_sdl_ctx_t * ctx, lv_coord_t radius);
+/**
+ *
+ * @param ctx Drawing context
+ * @param radius Corner radius of the rectangle
+ * @param in_cache Whether the texture has been put in the cache
+ * @return Background fragment texture
+ */
+SDL_Texture * lv_draw_sdl_rect_bg_frag_obtain(lv_draw_sdl_ctx_t * ctx, lv_coord_t radius, bool * in_cache);
+
+/**
+ *
+ * @param ctx Drawing context
+ * @param grad Gradient info
+ * @param w Width of the rectangle
+ * @param h Height of the rectangle
+ * @param radius Corner radius of the rectangle
+ * @param in_cache Whether the texture has been put in the cache
+ * @return Gradient fragment texture
+ */
+SDL_Texture * lv_draw_sdl_rect_grad_frag_obtain(lv_draw_sdl_ctx_t * ctx, const lv_grad_dsc_t * grad, lv_coord_t w,
+                                                lv_coord_t h, lv_coord_t radius, bool * in_cache);
+
+/**
+ *
+ * @param ctx Drawing context
+ * @param grad Gradient info
+ * @param in_cache Whether the texture has been put in the cache
+ * @return Gradient strip texture
+ */
+SDL_Texture * lv_draw_sdl_rect_grad_strip_obtain(lv_draw_sdl_ctx_t * ctx, const lv_grad_dsc_t * grad, bool * in_cache);
 
 void lv_draw_sdl_rect_bg_frag_draw_corners(lv_draw_sdl_ctx_t * ctx, SDL_Texture * frag, lv_coord_t frag_size,
                                            const lv_area_t * coords, const lv_area_t * clip, bool full);
index 58ff9f3..4067417 100644 (file)
@@ -81,12 +81,12 @@ SDL_Texture * lv_draw_sdl_texture_cache_get_with_userdata(lv_draw_sdl_ctx_t * ct
     return value->texture;
 }
 
-void lv_draw_sdl_texture_cache_put(lv_draw_sdl_ctx_t * ctx, const void * key, size_t key_length, SDL_Texture * texture)
+bool lv_draw_sdl_texture_cache_put(lv_draw_sdl_ctx_t * ctx, const void * key, size_t key_length, SDL_Texture * texture)
 {
-    lv_draw_sdl_texture_cache_put_advanced(ctx, key, key_length, texture, NULL, NULL, 0);
+    return lv_draw_sdl_texture_cache_put_advanced(ctx, key, key_length, texture, NULL, NULL, 0);
 }
 
-void lv_draw_sdl_texture_cache_put_advanced(lv_draw_sdl_ctx_t * ctx, const void * key, size_t key_length,
+bool lv_draw_sdl_texture_cache_put_advanced(lv_draw_sdl_ctx_t * ctx, const void * key, size_t key_length,
                                             SDL_Texture * texture, void * userdata, void userdata_free(void *),
                                             lv_draw_sdl_cache_flag_t flags)
 {
@@ -97,22 +97,20 @@ void lv_draw_sdl_texture_cache_put_advanced(lv_draw_sdl_ctx_t * ctx, const void
     value->userdata_free = userdata_free;
     value->flags = flags;
     if(!texture) {
-        lv_lru_set(lru, key, key_length, value, 1);
-        return;
+        return lv_lru_set(lru, key, key_length, value, 1) == LV_LRU_OK;
     }
     if(flags & LV_DRAW_SDL_CACHE_FLAG_MANAGED) {
         /* Managed texture doesn't count into cache size */
-        LV_LOG_INFO("cache texture %p, %d*%d@%dbpp", texture, width, height, SDL_BITSPERPIXEL(format));
-        lv_lru_set(lru, key, key_length, value, 1);
-        return;
+        LV_LOG_INFO("cache texture %p", texture);
+        return lv_lru_set(lru, key, key_length, value, 1) == LV_LRU_OK;
     }
     Uint32 format;
     int access, width, height;
     if(SDL_QueryTexture(texture, &format, &access, &width, &height) != 0) {
-        return;
+        return false;
     }
     LV_LOG_INFO("cache texture %p, %d*%d@%dbpp", texture, width, height, SDL_BITSPERPIXEL(format));
-    lv_lru_set(lru, key, key_length, value, width * height * SDL_BITSPERPIXEL(format) / 8);
+    return lv_lru_set(lru, key, key_length, value, width * height * SDL_BITSPERPIXEL(format) / 8) == LV_LRU_OK;
 }
 
 lv_draw_sdl_cache_key_head_img_t * lv_draw_sdl_texture_img_key_create(const void * src, int32_t frame_id, size_t * size)
index dc8b578..3a799f5 100644 (file)
@@ -50,6 +50,7 @@ typedef enum {
     LV_GPU_CACHE_KEY_MAGIC_RECT_BG = 0x31,
     LV_GPU_CACHE_KEY_MAGIC_RECT_SHADOW = 0x32,
     LV_GPU_CACHE_KEY_MAGIC_RECT_BORDER = 0x33,
+    LV_GPU_CACHE_KEY_MAGIC_RECT_GRAD = 0x34,
     LV_GPU_CACHE_KEY_MAGIC_FONT_GLYPH = 0x41,
     LV_GPU_CACHE_KEY_MAGIC_MASK = 0x51,
 } lv_sdl_cache_key_magic_t;
@@ -81,9 +82,15 @@ SDL_Texture * lv_draw_sdl_texture_cache_get(lv_draw_sdl_ctx_t * ctx, const void
 SDL_Texture * lv_draw_sdl_texture_cache_get_with_userdata(lv_draw_sdl_ctx_t * ctx, const void * key, size_t key_length,
                                                           bool * found, void ** userdata);
 
-void lv_draw_sdl_texture_cache_put(lv_draw_sdl_ctx_t * ctx, const void * key, size_t key_length, SDL_Texture * texture);
+/**
+ * @return Whether the texture has been put in the cache
+ */
+bool lv_draw_sdl_texture_cache_put(lv_draw_sdl_ctx_t * ctx, const void * key, size_t key_length, SDL_Texture * texture);
 
-void lv_draw_sdl_texture_cache_put_advanced(lv_draw_sdl_ctx_t * ctx, const void * key, size_t key_length,
+/**
+ * @return Whether the texture has been put in the cache
+ */
+bool lv_draw_sdl_texture_cache_put_advanced(lv_draw_sdl_ctx_t * ctx, const void * key, size_t key_length,
                                             SDL_Texture * texture, void * userdata, void userdata_free(void *),
                                             lv_draw_sdl_cache_flag_t flags);
 
index 20344a5..908909d 100644 (file)
 
 #if LV_USE_GPU_STM32_DMA2D
 
-#include LV_GPU_DMA2D_CMSIS_INCLUDE
-
 /*********************
  *      DEFINES
  *********************/
-
 #if LV_COLOR_16_SWAP
-    // TODO: F7 has red blue swap bit in control register for all layers and output
-    #error "Can't use DMA2D with LV_COLOR_16_SWAP 1"
+    // Note: DMA2D red/blue swap (RBS) works for all color modes
+    #define RBS_BIT 1U
+#else
+    #define RBS_BIT 0U
 #endif
 
-#if LV_COLOR_DEPTH == 8
-    #error "Can't use DMA2D with LV_COLOR_DEPTH == 8"
-#endif
+#define CACHE_ROW_SIZE 32U // cache row size in Bytes
+
+// For code/implementation discussion refer to https://github.com/lvgl/lvgl/issues/3714#issuecomment-1365187036
+// astyle --options=lvgl/scripts/code-format.cfg --ignore-exclude-errors lvgl/src/draw/stm32_dma2d/*.c lvgl/src/draw/stm32_dma2d/*.h
 
 #if LV_COLOR_DEPTH == 16
-    #define LV_DMA2D_COLOR_FORMAT LV_DMA2D_RGB565
+    const dma2d_color_format_t LvglColorFormat = RGB565;
 #elif LV_COLOR_DEPTH == 32
-    #define LV_DMA2D_COLOR_FORMAT LV_DMA2D_ARGB8888
+    const dma2d_color_format_t LvglColorFormat = ARGB8888;
 #else
-    /*Can't use GPU with other formats*/
+    #error "Cannot use DMA2D with LV_COLOR_DEPTH other than 16 or 32"
 #endif
 
-/**********************
- *      TYPEDEFS
- **********************/
-
-/**********************
- *  STATIC PROTOTYPES
- **********************/
-
-static void lv_draw_stm32_dma2d_blend_fill(lv_color_t * dest_buf, lv_coord_t dest_stride, const lv_area_t * fill_area,
-                                           lv_color_t color);
-
-
-static void lv_draw_stm32_dma2d_blend_map(lv_color_t * dest_buf, const lv_area_t * dest_area, lv_coord_t dest_stride,
-                                          const lv_color_t * src_buf, lv_coord_t src_stride, lv_opa_t opa);
-
-static void lv_draw_stm32_dma2d_img_decoded(lv_draw_ctx_t * draw, const lv_draw_img_dsc_t * dsc,
-                                            const lv_area_t * coords, const uint8_t * map_p, lv_img_cf_t color_format);
-
-
-static void invalidate_cache(void);
-
-/**********************
- *  STATIC VARIABLES
- **********************/
-
-/**********************
- *      MACROS
- **********************/
-
-/**********************
- *   GLOBAL FUNCTIONS
- **********************/
+static bool isDma2dInProgess = false; // indicates whether DMA2D transfer *initiated here* is in progress
 
 /**
  * Turn on the peripheral and set output color mode, this only needs to be done once
  */
 void lv_draw_stm32_dma2d_init(void)
 {
-    /*Enable DMA2D clock*/
+    // Enable DMA2D clock
 #if defined(STM32F4) || defined(STM32F7)
-    RCC->AHB1ENR |= RCC_AHB1ENR_DMA2DEN;
+    RCC->AHB1ENR |= RCC_AHB1ENR_DMA2DEN; // enable DMA2D
 #elif defined(STM32H7)
     RCC->AHB3ENR |= RCC_AHB3ENR_DMA2DEN;
 #else
 # warning "LVGL can't enable the clock of DMA2D"
 #endif
 
-    /*Wait for hardware access to complete*/
+    // Wait for hardware access to complete
     __asm volatile("DSB\n");
 
-    /*Delay after setting peripheral clock*/
+    // Delay after setting peripheral clock
     volatile uint32_t temp = RCC->AHB1ENR;
     LV_UNUSED(temp);
 
-    /*set output colour mode*/
-    DMA2D->OPFCCR = LV_DMA2D_COLOR_FORMAT;
+    // AHB master timer configuration
+    DMA2D->AMTCR = 0; // AHB bus guaranteed dead time disabled
+#if defined(LV_STM32_DMA2D_TEST)
+    _lv_gpu_stm32_dwt_init(); // init µs timer
+#endif
 }
 
-
 void lv_draw_stm32_dma2d_ctx_init(lv_disp_drv_t * drv, lv_draw_ctx_t * draw_ctx)
 {
-
     lv_draw_sw_init_ctx(drv, draw_ctx);
 
     lv_draw_stm32_dma2d_ctx_t * dma2d_draw_ctx = (lv_draw_sw_ctx_t *)draw_ctx;
 
     dma2d_draw_ctx->blend = lv_draw_stm32_dma2d_blend;
-    //    dma2d_draw_ctx->base_draw.draw_img_decoded = lv_draw_stm32_dma2d_img_decoded;
-    dma2d_draw_ctx->base_draw.wait_for_finish = lv_gpu_stm32_dma2d_wait_cb;
-
+    dma2d_draw_ctx->base_draw.draw_img_decoded = lv_draw_stm32_dma2d_img_decoded;
+    //dma2d_draw_ctx->base_draw.draw_img = lv_draw_stm32_dma2d_img;
+    // Note: currently it does not make sense use lv_gpu_stm32_dma2d_wait_cb() since waiting starts right after the dma2d transfer
+    //dma2d_draw_ctx->base_draw.wait_for_finish = lv_gpu_stm32_dma2d_wait_cb;
+    dma2d_draw_ctx->base_draw.buffer_copy = lv_draw_stm32_dma2d_buffer_copy;
 }
 
 void lv_draw_stm32_dma2d_ctx_deinit(lv_disp_drv_t * drv, lv_draw_ctx_t * draw_ctx)
@@ -112,145 +84,660 @@ void lv_draw_stm32_dma2d_ctx_deinit(lv_disp_drv_t * drv, lv_draw_ctx_t * draw_ct
     LV_UNUSED(draw_ctx);
 }
 
-
-void lv_draw_stm32_dma2d_blend(lv_draw_ctx_t * draw_ctx, const lv_draw_sw_blend_dsc_t * dsc)
+static void lv_draw_stm32_dma2d_blend(lv_draw_ctx_t * draw_ctx, const lv_draw_sw_blend_dsc_t * dsc)
 {
-    lv_area_t blend_area;
-    if(!_lv_area_intersect(&blend_area, dsc->blend_area, draw_ctx->clip_area)) return;
-
-    bool done = false;
-
-    if(dsc->mask_buf == NULL && dsc->blend_mode == LV_BLEND_MODE_NORMAL && lv_area_get_size(&blend_area) > 100) {
-        lv_coord_t dest_stride = lv_area_get_width(draw_ctx->buf_area);
+    if(dsc->blend_mode != LV_BLEND_MODE_NORMAL) {
+        lv_draw_sw_blend_basic(draw_ctx, dsc);
+        return;
+    }
+    // Note: x1 must be zero. Otherwise, there is no way to correctly calculate dest_stride.
+    //LV_ASSERT_MSG(draw_ctx->buf_area->x1 == 0); // critical?
+    // Both draw buffer start address and buffer size *must* be 32-byte aligned since draw buffer cache is being invalidated.
+    //uint32_t drawBufferLength = lv_area_get_size(draw_ctx->buf_area) * sizeof(lv_color_t);
+    //LV_ASSERT_MSG(drawBufferLength % CACHE_ROW_SIZE == 0); // critical, but this is not the way to test it
+    //LV_ASSERT_MSG((uint32_t)draw_ctx->buf % CACHE_ROW_SIZE == 0, "draw_ctx.buf is not 32B aligned"); // critical?
+
+    if(dsc->src_buf) {
+        // For performance reasons, both source buffer start address and buffer size *should* be 32-byte aligned since source buffer cache is being cleaned.
+        //uint32_t srcBufferLength = lv_area_get_size(dsc->blend_area) * sizeof(lv_color_t);
+        //LV_ASSERT_MSG(srcBufferLength % CACHE_ROW_SIZE == 0); // FIXME: assert fails (performance, non-critical)
+        //LV_ASSERT_MSG((uint32_t)dsc->src_buf % CACHE_ROW_SIZE == 0); // FIXME: assert fails (performance, non-critical)
+    }
 
-        lv_color_t * dest_buf = draw_ctx->buf;
-        dest_buf += dest_stride * (blend_area.y1 - draw_ctx->buf_area->y1) + (blend_area.x1 - draw_ctx->buf_area->x1);
-
-        const lv_color_t * src_buf = dsc->src_buf;
-        if(src_buf) {
-            lv_draw_sw_blend_basic(draw_ctx, dsc);
-            lv_coord_t src_stride;
-            src_stride = lv_area_get_width(dsc->blend_area);
-            src_buf += src_stride * (blend_area.y1 - dsc->blend_area->y1) + (blend_area.x1 -  dsc->blend_area->x1);
-            lv_area_move(&blend_area, -draw_ctx->buf_area->x1, -draw_ctx->buf_area->y1);
-            lv_draw_stm32_dma2d_blend_map(dest_buf, &blend_area, dest_stride, src_buf, src_stride, dsc->opa);
-            done = true;
+    lv_area_t draw_area;
+    if(!_lv_area_intersect(&draw_area, dsc->blend_area, draw_ctx->clip_area)) return;
+    // + draw_ctx->buf_area has the entire draw buffer location
+    // + draw_ctx->clip_area has the current draw buffer location
+    // + dsc->blend_area has the location of the area intended to be painted - image etc.
+    // + draw_area has the area actually being painted
+    // All coordinates are relative to the screen.
+
+    const lv_opa_t * mask = dsc->mask_buf;
+
+    if(dsc->mask_buf && dsc->mask_res == LV_DRAW_MASK_RES_TRANSP) return;
+    else if(dsc->mask_res == LV_DRAW_MASK_RES_FULL_COVER) mask = NULL;
+
+    lv_coord_t dest_stride = lv_area_get_width(draw_ctx->buf_area);
+    if(mask != NULL) {
+        // For performance reasons, both mask buffer start address and buffer size *should* be 32-byte aligned since mask buffer cache is being cleaned.
+        //uint32_t srcBufferLength = lv_area_get_size(dsc->mask_area) * sizeof(lv_opa_t);
+        //LV_ASSERT_MSG(srcBufferLength % CACHE_ROW_SIZE == 0); // FIXME: assert fails (performance, non-critical)
+        //LV_ASSERT_MSG((uint32_t)mask % CACHE_ROW_SIZE == 0); // FIXME: assert fails (performance, non-critical)
+
+        lv_coord_t mask_stride = lv_area_get_width(dsc->mask_area);
+        lv_point_t mask_offset = lv_area_get_offset(dsc->mask_area, &draw_area); // mask offset in relation to draw_area
+
+        if(dsc->src_buf == NULL) {  // 93.5%
+            lv_area_move(&draw_area, -draw_ctx->buf_area->x1, -draw_ctx->buf_area->y1);
+            _lv_draw_stm32_dma2d_blend_paint(draw_ctx->buf, dest_stride, &draw_area, mask, mask_stride, &mask_offset, dsc->color,
+                                             dsc->opa);
+        }
+        else {   // 0.2%
+            // note: (x)RGB dsc->src_buf does not carry alpha channel bytes,
+            // alpha channel bytes are carried in dsc->mask_buf
+#if LV_COLOR_DEPTH == 32
+            lv_coord_t src_stride = lv_area_get_width(dsc->blend_area);
+            lv_point_t src_offset = lv_area_get_offset(dsc->blend_area, &draw_area); // source image offset in relation to draw_area
+            lv_coord_t draw_width = lv_area_get_width(&draw_area);
+            lv_coord_t draw_height = lv_area_get_height(&draw_area);
+
+            // merge mask alpha bytes with src RGB bytes
+            // TODO: optimize by reading 4 or 8 mask bytes at a time
+            mask += (mask_stride * mask_offset.y) + mask_offset.x;
+            lv_color_t * src_buf = (lv_color_t *)dsc->src_buf;
+            src_buf += (src_stride * src_offset.y) + src_offset.x;
+            uint16_t mask_buffer_offset = mask_stride - draw_width;
+            uint16_t src_buffer_offset = src_stride - draw_width;
+            while(draw_height > 0) {
+                draw_height--;
+                for(uint16_t x = 0; x < draw_width; x++) {
+                    (*src_buf).ch.alpha = *mask;
+                    src_buf++;
+                    mask++;
+                }
+                mask += mask_buffer_offset;
+                src_buf += src_buffer_offset;
+            }
+
+            lv_area_move(&draw_area, -draw_ctx->buf_area->x1,
+                         -draw_ctx->buf_area->y1); // translate the screen draw area to the origin of the buffer area
+            _lv_draw_stm32_dma2d_blend_map(draw_ctx->buf, dest_stride, &draw_area, dsc->src_buf, src_stride, &src_offset, dsc->opa,
+                                           ARGB8888, false);
+#else
+            // Note: 16-bit bitmap hardware blending with mask and background is possible, but requires a temp 24 or 32-bit buffer to combine bitmap with mask first.
+
+            lv_draw_sw_blend_basic(draw_ctx, dsc); // (e.g. Shop Items)
+            // clean cache after software drawing - this does not help since this is not the only place where buffer is written without dma2d
+            // lv_coord_t draw_width = lv_area_get_width(&draw_area);
+            // lv_coord_t draw_height = lv_area_get_height(&draw_area);
+            // uint32_t dest_address = (uint32_t)(draw_ctx->buf + (dest_stride * draw_area.y1) + draw_area.x1);
+            // _lv_gpu_stm32_dma2d_clean_cache(dest_address, dest_stride - draw_width, draw_width, draw_height, sizeof(lv_color_t));
+#endif
         }
-        else if(dsc->opa >= LV_OPA_MAX) {
-            lv_area_move(&blend_area, -draw_ctx->buf_area->x1, -draw_ctx->buf_area->y1);
-            lv_draw_stm32_dma2d_blend_fill(dest_buf, dest_stride, &blend_area, dsc->color);
-            done = true;
+    }
+    else {
+        if(dsc->src_buf == NULL) {  // 6.1%
+            lv_area_move(&draw_area, -draw_ctx->buf_area->x1,
+                         -draw_ctx->buf_area->y1); // translate the screen draw area to the origin of the buffer area
+            _lv_draw_stm32_dma2d_blend_fill(draw_ctx->buf, dest_stride, &draw_area, dsc->color, dsc->opa);
+        }
+        else {   // 0.2%
+            lv_coord_t src_stride = lv_area_get_width(dsc->blend_area);
+            lv_point_t src_offset = lv_area_get_offset(dsc->blend_area, &draw_area); // source image offset in relation to draw_area
+            lv_area_move(&draw_area, -draw_ctx->buf_area->x1,
+                         -draw_ctx->buf_area->y1); // translate the screen draw area to the origin of the buffer area
+            _lv_draw_stm32_dma2d_blend_map(draw_ctx->buf, dest_stride, &draw_area, dsc->src_buf, src_stride, &src_offset, dsc->opa,
+                                           LvglColorFormat, true);
         }
     }
-
-    if(!done) lv_draw_sw_blend_basic(draw_ctx, dsc);
 }
 
+// Does dest_area = intersect(draw_ctx->clip_area, src_area) ?
+// See: https://github.com/lvgl/lvgl/issues/3714#issuecomment-1331710788
+static void lv_draw_stm32_dma2d_buffer_copy(lv_draw_ctx_t * draw_ctx, void * dest_buf, lv_coord_t dest_stride,
+                                            const lv_area_t * dest_area, void * src_buf, lv_coord_t src_stride, const lv_area_t * src_area)
+{
+    // Both draw buffer start address and buffer size *must* be 32-byte aligned since draw buffer cache is being invalidated.
+    //uint32_t drawBufferLength = lv_area_get_size(draw_ctx->buf_area) * sizeof(lv_color_t);
+    //LV_ASSERT_MSG(drawBufferLength % CACHE_ROW_SIZE == 0); // critical, but this is not the way to test it
+    //LV_ASSERT_MSG((uint32_t)draw_ctx->buf % CACHE_ROW_SIZE == 0, "draw_ctx.buf is not 32B aligned"); // critical?
+    // FIXME:
+    // 1. Both src_buf and dest_buf pixel size *must* be known to use DMA2D.
+    // 2. Verify both buffers start addresses and lengths are 32-byte (cache row size) aligned.
+    LV_UNUSED(draw_ctx);
+    lv_point_t src_offset = lv_area_get_offset(src_area, dest_area);
+    // FIXME: use lv_area_move(dest_area, -dest_area->x1, -dest_area->y1) here ?
+    // TODO: It is assumed that dest_buf and src_buf buffers are of lv_color_t type. Verify it, this assumption may be incorrect.
+    _lv_draw_stm32_dma2d_blend_map((const lv_color_t *)dest_buf, dest_stride, dest_area, (const lv_color_t *)src_buf,
+                                   src_stride, &src_offset, 0xff, LvglColorFormat, true);
+    // TODO: Investigate if output buffer cache needs to be invalidated. It depends on what the destination buffer is and how it is used next - by dma2d or not.
+    _lv_gpu_stm32_dma2d_await_dma_transfer_finish(NULL); // TODO: is this line needed here?
+}
 
-static void lv_draw_stm32_dma2d_img_decoded(lv_draw_ctx_t * draw_ctx, const lv_draw_img_dsc_t * dsc,
-                                            const lv_area_t * coords, const uint8_t * map_p, lv_img_cf_t color_format)
+static void lv_draw_stm32_dma2d_img_decoded(lv_draw_ctx_t * draw_ctx, const lv_draw_img_dsc_t * img_dsc,
+                                            const lv_area_t * coords, const uint8_t * src_buf, lv_img_cf_t color_format)
 {
-    /*TODO basic ARGB8888 image can be handles here*/
+    if(draw_ctx->draw_img_decoded == NULL) return;
+    lv_area_t draw_area;
+    lv_area_copy(&draw_area, draw_ctx->clip_area);
 
-    lv_draw_sw_img_decoded(draw_ctx, dsc, coords, map_p, color_format);
+    bool mask_any = lv_draw_mask_is_any(&draw_area);
+    bool transform = img_dsc->angle != 0 || img_dsc->zoom != LV_IMG_ZOOM_NONE;
+    const dma2d_color_format_t bitmapColorFormat = lv_color_format_to_dma2d_color_format(color_format);
+    const bool ignoreBitmapAlpha = (color_format == LV_IMG_CF_RGBX8888);
+
+    if(!mask_any && !transform && bitmapColorFormat != UNSUPPORTED && img_dsc->recolor_opa == LV_OPA_TRANSP) {
+        // simple bitmap blending, optionally with supported color format conversion - handle directly by dma2d
+        lv_coord_t dest_stride = lv_area_get_width(draw_ctx->buf_area);
+        lv_coord_t src_stride = lv_area_get_width(coords);
+        lv_point_t src_offset = lv_area_get_offset(coords, &draw_area); // source image offset in relation to draw_area
+        lv_area_move(&draw_area, -draw_ctx->buf_area->x1, -draw_ctx->buf_area->y1);
+        _lv_draw_stm32_dma2d_blend_map(draw_ctx->buf, dest_stride, &draw_area, src_buf, src_stride, &src_offset,
+                                       img_dsc->opa, bitmapColorFormat, ignoreBitmapAlpha);
+    }
+    else {
+        // all more complex cases which require additional image transformations
+        lv_draw_sw_img_decoded(draw_ctx, img_dsc, coords, src_buf, color_format);
+
+    }
 }
 
-static void lv_draw_stm32_dma2d_blend_fill(lv_color_t * dest_buf, lv_coord_t dest_stride, const lv_area_t * fill_area,
-                                           lv_color_t color)
+static lv_point_t lv_area_get_offset(const lv_area_t * area1, const lv_area_t * area2)
 {
-    /*Simply fill an area*/
-    int32_t area_w = lv_area_get_width(fill_area);
-    int32_t area_h = lv_area_get_height(fill_area);
-    invalidate_cache();
+    lv_point_t offset = {x: area2->x1 - area1->x1, y: area2->y1 - area1->y1};
+    return offset;
+}
 
-    DMA2D->CR = 0x30000;
-    DMA2D->OMAR = (uint32_t)dest_buf;
-    /*as input color mode is same as output we don't need to convert here do we?*/
-    DMA2D->OCOLR = color.full;
-    DMA2D->OOR = dest_stride - area_w;
-    DMA2D->NLR = (area_w << DMA2D_NLR_PL_Pos) | (area_h << DMA2D_NLR_NL_Pos);
+static dma2d_color_format_t lv_color_format_to_dma2d_color_format(lv_img_cf_t color_format)
+{
+    switch(color_format) {
+        case LV_IMG_CF_RGBA8888:
+            // note: LV_IMG_CF_RGBA8888 is actually ARGB8888
+            return ARGB8888;
+        case LV_IMG_CF_RGBX8888:
+            // note: LV_IMG_CF_RGBX8888 is actually XRGB8888
+            return ARGB8888;
+        case LV_IMG_CF_RGB565:
+            return RGB565;
+        case LV_IMG_CF_TRUE_COLOR:
+            return LvglColorFormat;
+        case LV_IMG_CF_TRUE_COLOR_ALPHA:
+#if LV_COLOR_DEPTH == 16
+            // bitmap color format is 24b ARGB8565 - dma2d unsupported
+            return UNSUPPORTED;
+#elif LV_COLOR_DEPTH == 32
+            return ARGB8888;
+#else
+            // unknown bitmap color format
+            return UNSUPPORTED;
+#endif
+        default:
+            return UNSUPPORTED;
+    }
+}
 
-    /*start transfer*/
-    DMA2D->CR |= DMA2D_CR_START_Msk;
+static lv_res_t lv_draw_stm32_dma2d_img(lv_draw_ctx_t * draw_ctx, const lv_draw_img_dsc_t * img_dsc,
+                                        const lv_area_t * src_area,
+                                        const void * src)
+{
+    //if(lv_img_src_get_type(src) != LV_IMG_SRC_VARIABLE) return LV_RES_INV;
+    return LV_RES_INV;
+    if(img_dsc->opa <= LV_OPA_MIN) return LV_RES_OK;
+    const lv_img_dsc_t * img = src;
+    const dma2d_color_format_t bitmapColorFormat = lv_color_format_to_dma2d_color_format(img->header.cf);
+    const bool ignoreBitmapAlpha = (img->header.cf == LV_IMG_CF_RGBX8888);
+
+    if(bitmapColorFormat == UNSUPPORTED || img_dsc->angle != 0 || img_dsc->zoom != LV_IMG_ZOOM_NONE) {
+        return LV_RES_INV; // sorry, dma2d can handle this
+    }
 
+    // FIXME: handle dsc.pivot, dsc.recolor, dsc.blend_mode
+    // FIXME: src pixel size *must* be known to use DMA2D
+    // FIXME: If image is drawn by SW, then output cache needs to be cleaned next. Currently it is not possible.
+    // Both draw buffer start address and buffer size *must* be 32-byte aligned since draw buffer cache is being invalidated.
+    //uint32_t drawBufferLength = lv_area_get_size(draw_ctx->buf_area) * sizeof(lv_color_t);
+    //LV_ASSERT_MSG(drawBufferLength % CACHE_ROW_SIZE == 0); // critical, but this is not the way to test it
+    //LV_ASSERT_MSG((uint32_t)draw_ctx->buf % CACHE_ROW_SIZE == 0, "draw_ctx.buf is not 32B aligned"); // critical?
+
+    // For performance reasons, both source buffer start address and buffer size *should* be 32-byte aligned since source buffer cache is being cleaned.
+    //uint32_t srcBufferLength = lv_area_get_size(src_area) * sizeof(lv_color_t); // TODO: verify src pixel size = sizeof(lv_color_t)
+    //LV_ASSERT_MSG(srcBufferLength % CACHE_ROW_SIZE == 0); // FIXME: assert fails (performance, non-critical)
+    //LV_ASSERT_MSG((uint32_t)src % CACHE_ROW_SIZE == 0); // FIXME: assert fails (performance, non-critical)
+
+    lv_area_t draw_area;
+    if(!_lv_area_intersect(&draw_area, src_area, draw_ctx->clip_area)) return LV_RES_OK;
+
+    lv_coord_t dest_stride = lv_area_get_width(draw_ctx->buf_area);
+    lv_point_t src_offset = lv_area_get_offset(src_area, &draw_area); // source image offset in relation to draw_area
+    lv_area_move(&draw_area, -draw_ctx->buf_area->x1, -draw_ctx->buf_area->y1);
+    _lv_draw_stm32_dma2d_blend_map(draw_ctx->buf, dest_stride, &draw_area, img->data, img->header.w,
+                                   &src_offset, img_dsc->opa, bitmapColorFormat, ignoreBitmapAlpha);
+    return LV_RES_OK;
 }
 
+static void lv_gpu_stm32_dma2d_wait_cb(lv_draw_ctx_t * draw_ctx)
+{
+    lv_disp_t * disp = _lv_refr_get_disp_refreshing();
+    _lv_gpu_stm32_dma2d_await_dma_transfer_finish(disp->driver);
+    lv_draw_sw_wait_for_finish(draw_ctx);
+}
+
+/**********************
+ *   STATIC FUNCTIONS
+ **********************/
 
-static void lv_draw_stm32_dma2d_blend_map(lv_color_t * dest_buf, const lv_area_t * dest_area, lv_coord_t dest_stride,
-                                          const lv_color_t * src_buf, lv_coord_t src_stride, lv_opa_t opa)
+/**
+ * @brief Fills draw_area with specified color.
+ * @param color color to be painted, note: alpha is ignored
+ */
+LV_STM32_DMA2D_STATIC void _lv_draw_stm32_dma2d_blend_fill(const lv_color_t * dest_buf, lv_coord_t dest_stride,
+                                                           const lv_area_t * draw_area, lv_color_t color, lv_opa_t opa)
 {
+    LV_ASSERT_MSG(!isDma2dInProgess, "dma2d transfer has not finished"); // critical
+    lv_coord_t draw_width = lv_area_get_width(draw_area);
+    lv_coord_t draw_height = lv_area_get_height(draw_area);
 
-    /*Simple copy*/
-    int32_t dest_w = lv_area_get_width(dest_area);
-    int32_t dest_h = lv_area_get_height(dest_area);
+    _lv_gpu_stm32_dma2d_await_dma_transfer_finish(NULL);
 
-    invalidate_cache();
     if(opa >= LV_OPA_MAX) {
-        DMA2D->CR = 0;
-        /*copy output colour mode, this register controls both input and output colour format*/
-        DMA2D->FGPFCCR = LV_DMA2D_COLOR_FORMAT;
-        DMA2D->FGMAR = (uint32_t)src_buf;
-        DMA2D->FGOR = src_stride - dest_w;
-        DMA2D->OMAR = (uint32_t)dest_buf;
-        DMA2D->OOR = dest_stride - dest_w;
-        DMA2D->NLR = (dest_w << DMA2D_NLR_PL_Pos) | (dest_h << DMA2D_NLR_NL_Pos);
-
-        /*start transfer*/
-        DMA2D->CR |= DMA2D_CR_START_Msk;
+        DMA2D->CR = 0x3UL << DMA2D_CR_MODE_Pos; // Register-to-memory (no FG nor BG, only output stage active)
+
+        DMA2D->OPFCCR = LvglColorFormat;
+#if defined(DMA2D_OPFCCR_RBS_Pos)
+        DMA2D->OPFCCR |= (RBS_BIT << DMA2D_OPFCCR_RBS_Pos);
+#endif
+        DMA2D->OMAR = (uint32_t)(dest_buf + (dest_stride * draw_area->y1) + draw_area->x1);
+        DMA2D->OOR = dest_stride - draw_width;  // out buffer offset
+        // Note: unlike FGCOLR and BGCOLR, OCOLR bits must match DMA2D_OUTPUT_COLOR, alpha can be specified
+#if RBS_BIT
+        // swap red/blue bits
+        DMA2D->OCOLR = (color.ch.blue << 11) | (color.ch.green_l << 5 | color.ch.green_h << 8) | (color.ch.red);
+#else
+        DMA2D->OCOLR = color.full;
+#endif
     }
     else {
-        DMA2D->CR = 0x20000;
-
-        DMA2D->BGPFCCR = LV_DMA2D_COLOR_FORMAT;
-        DMA2D->BGMAR = (uint32_t)dest_buf;
-        DMA2D->BGOR = dest_stride - dest_w;
-
-        DMA2D->FGPFCCR = (uint32_t)LV_DMA2D_COLOR_FORMAT
-                         /*alpha mode 2, replace with foreground * alpha value*/
-                         | (2 << DMA2D_FGPFCCR_AM_Pos)
-                         /*alpha value*/
-                         | (opa << DMA2D_FGPFCCR_ALPHA_Pos);
-        DMA2D->FGMAR = (uint32_t)src_buf;
-        DMA2D->FGOR = src_stride - dest_w;
-
-        DMA2D->OMAR = (uint32_t)src_buf;
-        DMA2D->OOR = src_stride - dest_w;
-        DMA2D->NLR = (dest_w << DMA2D_NLR_PL_Pos) | (dest_h << DMA2D_NLR_NL_Pos);
-
-        /*start transfer*/
-        DMA2D->CR |= DMA2D_CR_START_Msk;
+        DMA2D->CR = 0x2UL << DMA2D_CR_MODE_Pos; // Memory-to-memory with blending (FG and BG fetch with PFC and blending)
+
+        DMA2D->FGPFCCR = A8;
+        DMA2D->FGPFCCR |= (opa << DMA2D_FGPFCCR_ALPHA_Pos);
+        // Alpha Mode 1: Replace original foreground image alpha channel value by FGPFCCR.ALPHA
+        DMA2D->FGPFCCR |= (0x1UL << DMA2D_FGPFCCR_AM_Pos);
+        //DMA2D->FGPFCCR |= (RBS_BIT << DMA2D_FGPFCCR_RBS_Pos);
+
+        // Note: in Alpha Mode 1 FGMAR and FGOR are not used to supply foreground A8 bytes,
+        // those bytes are replaced by constant ALPHA defined in FGPFCCR
+        DMA2D->FGMAR = (uint32_t)dest_buf;
+        DMA2D->FGOR = dest_stride;
+        DMA2D->FGCOLR = lv_color_to32(color) & 0x00ffffff; // swap FGCOLR R/B bits if FGPFCCR.RBS (RBS_BIT) bit is set
+
+        DMA2D->BGPFCCR = LvglColorFormat;
+#if defined(DMA2D_BGPFCCR_RBS_Pos)
+        DMA2D->BGPFCCR |= (RBS_BIT << DMA2D_BGPFCCR_RBS_Pos);
+#endif
+        DMA2D->BGMAR = (uint32_t)(dest_buf + (dest_stride * draw_area->y1) + draw_area->x1);
+        DMA2D->BGOR = dest_stride - draw_width;
+        DMA2D->BGCOLR = 0;  // used in A4 and A8 modes only
+        _lv_gpu_stm32_dma2d_clean_cache(DMA2D->BGMAR, DMA2D->BGOR, draw_width, draw_height, sizeof(lv_color_t));
+
+        DMA2D->OPFCCR = LvglColorFormat;
+#if defined(DMA2D_OPFCCR_RBS_Pos)
+        DMA2D->OPFCCR |= (RBS_BIT << DMA2D_OPFCCR_RBS_Pos);
+#endif
+        DMA2D->OMAR = DMA2D->BGMAR;
+        DMA2D->OOR = DMA2D->BGOR;
+        DMA2D->OCOLR = 0;
     }
+    // PL - pixel per lines (14 bit), NL - number of lines (16 bit)
+    DMA2D->NLR = (draw_width << DMA2D_NLR_PL_Pos) | (draw_height << DMA2D_NLR_NL_Pos);
+
+    _lv_gpu_stm32_dma2d_start_dma_transfer();
 }
 
-void lv_gpu_stm32_dma2d_wait_cb(lv_draw_ctx_t * draw_ctx)
+/**
+ * @brief Draws src (foreground) map on dst (background) map.
+ * @param src_offset src offset in relation to dst, useful when src is larger than draw_area
+ * @param opa constant opacity to be applied
+ * @param bitmapColorCode bitmap color type
+ * @param ignoreAlpha if TRUE, bitmap src alpha channel is ignored
+ */
+LV_STM32_DMA2D_STATIC void _lv_draw_stm32_dma2d_blend_map(const lv_color_t * dest_buf, lv_coord_t dest_stride,
+                                                          const lv_area_t * draw_area, const void * src_buf, lv_coord_t src_stride, const lv_point_t * src_offset, lv_opa_t opa,
+                                                          dma2d_color_format_t src_color_format, bool ignore_src_alpha)
 {
-    lv_disp_t * disp = _lv_refr_get_disp_refreshing();
-    if(disp->driver && disp->driver->wait_cb) {
-        while(DMA2D->CR & DMA2D_CR_START_Msk) {
-            disp->driver->wait_cb(disp->driver);
+    LV_ASSERT_MSG(!isDma2dInProgess, "dma2d transfer has not finished"); // critical
+    if(opa <= LV_OPA_MIN || src_color_format == UNSUPPORTED) return;
+    lv_coord_t draw_width = lv_area_get_width(draw_area);
+    lv_coord_t draw_height = lv_area_get_height(draw_area);
+    bool bitmapHasOpacity = !ignore_src_alpha && (src_color_format == ARGB8888 || src_color_format == ARGB1555 ||
+                                                  src_color_format == ARGB4444);
+
+    if(opa >= LV_OPA_MAX) opa = 0xff;
+
+    uint8_t srcBpp; // source bytes per pixel
+    switch(src_color_format) {
+        case ARGB8888:
+            srcBpp = 4;
+            break;
+        case RGB888:
+            srcBpp = 3;
+            break;
+        case RGB565:
+        case ARGB1555:
+        case ARGB4444:
+            srcBpp = 2;
+            break;
+        default:
+            LV_LOG_ERROR("unsupported color format");
+            return;
+    }
+
+    _lv_gpu_stm32_dma2d_await_dma_transfer_finish(NULL);
+
+    DMA2D->FGPFCCR = src_color_format;
+
+    if(opa == 0xff && !bitmapHasOpacity) {
+        // no need to blend
+        if(src_color_format == LvglColorFormat) {
+            // no need to convert pixel format (PFC) either
+            DMA2D->CR = 0x0UL;
+        }
+        else {
+            DMA2D->CR = 0x1UL << DMA2D_CR_MODE_Pos; // Memory-to-memory with PFC (FG fetch only with FG PFC active)
         }
+        // Alpha Mode 0: No modification of the foreground image alpha channel value
     }
     else {
-        while(DMA2D->CR & DMA2D_CR_START_Msk);
+        // blend
+        DMA2D->CR = 0x2UL << DMA2D_CR_MODE_Pos; // Memory-to-memory with blending (FG and BG fetch with PFC and blending)
+        DMA2D->FGPFCCR |= (opa << DMA2D_FGPFCCR_ALPHA_Pos);
+        if(bitmapHasOpacity) {
+            // Alpha Mode 2: Replace original foreground image alpha channel value by FGPFCCR.ALPHA multiplied with original alpha channel value
+            DMA2D->FGPFCCR |= (0x2UL << DMA2D_FGPFCCR_AM_Pos);
+        }
+        else {
+            // Alpha Mode 1: Replace original foreground image alpha channel value by FGPFCCR.ALPHA
+            DMA2D->FGPFCCR |= (0x1UL << DMA2D_FGPFCCR_AM_Pos);
+        }
     }
-    lv_draw_sw_wait_for_finish(draw_ctx);
+#if defined(DMA2D_FGPFCCR_RBS_Pos)
+    DMA2D->FGPFCCR |= (RBS_BIT << DMA2D_FGPFCCR_RBS_Pos);
+#endif
+    DMA2D->FGMAR = ((uint32_t)src_buf) + srcBpp * ((src_stride * src_offset->y) + src_offset->x);
+    DMA2D->FGOR = src_stride - draw_width;
+    DMA2D->FGCOLR = 0;  // used in A4 and A8 modes only
+    _lv_gpu_stm32_dma2d_clean_cache(DMA2D->FGMAR, DMA2D->FGOR, draw_width, draw_height, srcBpp);
+
+    DMA2D->OPFCCR = LvglColorFormat;
+#if defined(DMA2D_OPFCCR_RBS_Pos)
+    DMA2D->OPFCCR |= (RBS_BIT << DMA2D_OPFCCR_RBS_Pos);
+#endif
+    DMA2D->OMAR = (uint32_t)(dest_buf + (dest_stride * draw_area->y1) + draw_area->x1);
+    DMA2D->OOR = dest_stride - draw_width;
+    DMA2D->OCOLR = 0;
+
+    if(opa != 0xff || bitmapHasOpacity) {
+        // use background (BG*) registers
+        DMA2D->BGPFCCR = LvglColorFormat;
+#if defined(DMA2D_BGPFCCR_RBS_Pos)
+        DMA2D->BGPFCCR |= (RBS_BIT << DMA2D_BGPFCCR_RBS_Pos);
+#endif
+        DMA2D->BGMAR = DMA2D->OMAR;
+        DMA2D->BGOR = DMA2D->OOR;
+        DMA2D->BGCOLR = 0;  // used in A4 and A8 modes only
+        _lv_gpu_stm32_dma2d_clean_cache(DMA2D->BGMAR, DMA2D->BGOR, draw_width, draw_height, sizeof(lv_color_t));
+    }
+
+    // PL - pixel per lines (14 bit), NL - number of lines (16 bit)
+    DMA2D->NLR = (draw_width << DMA2D_NLR_PL_Pos) | (draw_height << DMA2D_NLR_NL_Pos);
 
+    _lv_gpu_stm32_dma2d_start_dma_transfer();
 }
 
-/**********************
- *   STATIC FUNCTIONS
- **********************/
+/**
+ * @brief Paints solid color with alpha mask with additional constant opacity. Useful e.g. for painting anti-aliased fonts.
+ * @param src_offset src offset in relation to dst, useful when src (alpha mask) is larger than draw_area
+ * @param color color to paint, note: alpha is ignored
+ * @param opa constant opacity to be applied
+ */
+LV_STM32_DMA2D_STATIC void _lv_draw_stm32_dma2d_blend_paint(const lv_color_t * dest_buf, lv_coord_t dest_stride,
+                                                            const lv_area_t * draw_area, const lv_opa_t * mask_buf, lv_coord_t mask_stride, const lv_point_t * mask_offset,
+                                                            lv_color_t color, lv_opa_t opa)
+{
+    LV_ASSERT_MSG(!isDma2dInProgess, "dma2d transfer has not finished"); // critical
+    lv_coord_t draw_width = lv_area_get_width(draw_area);
+    lv_coord_t draw_height = lv_area_get_height(draw_area);
+
+    _lv_gpu_stm32_dma2d_await_dma_transfer_finish(NULL);
+
+    DMA2D->CR = 0x2UL << DMA2D_CR_MODE_Pos;  // Memory-to-memory with blending (FG and BG fetch with PFC and blending)
 
-static void invalidate_cache(void)
+    DMA2D->FGPFCCR = A8;
+    if(opa < LV_OPA_MAX) {
+        DMA2D->FGPFCCR |= (opa << DMA2D_FGPFCCR_ALPHA_Pos);
+        DMA2D->FGPFCCR |= (0x2UL <<
+                           DMA2D_FGPFCCR_AM_Pos); // Alpha Mode: Replace original foreground image alpha channel value by FGPFCCR.ALPHA multiplied with original alpha channel value
+    }
+    //DMA2D->FGPFCCR |= (RBS_BIT << DMA2D_FGPFCCR_RBS_Pos);
+    DMA2D->FGMAR = (uint32_t)(mask_buf + (mask_stride * mask_offset->y) + mask_offset->x);
+    DMA2D->FGOR = mask_stride - draw_width;
+    DMA2D->FGCOLR = lv_color_to32(color) & 0x00ffffff;  // swap FGCOLR R/B bits if FGPFCCR.RBS (RBS_BIT) bit is set
+    _lv_gpu_stm32_dma2d_clean_cache(DMA2D->FGMAR, DMA2D->FGOR, draw_width, draw_height, sizeof(lv_opa_t));
+
+    DMA2D->BGPFCCR = LvglColorFormat;
+#if defined(DMA2D_BGPFCCR_RBS_Pos)
+    DMA2D->BGPFCCR |= (RBS_BIT << DMA2D_BGPFCCR_RBS_Pos);
+#endif
+    DMA2D->BGMAR = (uint32_t)(dest_buf + (dest_stride * draw_area->y1) + draw_area->x1);
+    DMA2D->BGOR = dest_stride - draw_width;
+    DMA2D->BGCOLR = 0;  // used in A4 and A8 modes only
+    _lv_gpu_stm32_dma2d_clean_cache(DMA2D->BGMAR, DMA2D->BGOR, draw_width, draw_height, sizeof(lv_color_t));
+
+    DMA2D->OPFCCR = LvglColorFormat;
+#if defined(DMA2D_OPFCCR_RBS_Pos)
+    DMA2D->OPFCCR |= (RBS_BIT << DMA2D_OPFCCR_RBS_Pos);
+#endif
+    DMA2D->OMAR = DMA2D->BGMAR;
+    DMA2D->OOR = DMA2D->BGOR;
+    DMA2D->OCOLR = 0;
+    // PL - pixel per lines (14 bit), NL - number of lines (16 bit)
+    DMA2D->NLR = (draw_width << DMA2D_NLR_PL_Pos) | (draw_height << DMA2D_NLR_NL_Pos);
+
+    _lv_gpu_stm32_dma2d_start_dma_transfer();
+}
+
+/**
+ * @brief Copies src (foreground) map to the dst (background) map.
+ * @param src_offset src offset in relation to dst, useful when src is larger than draw_area
+ */
+LV_STM32_DMA2D_STATIC void _lv_draw_stm32_dma2d_copy_buffer(const lv_color_t * dest_buf, lv_coord_t dest_stride,
+                                                            const lv_area_t * draw_area, const lv_color_t * src_buf, lv_coord_t src_stride, const lv_point_t * src_offset)
 {
-    lv_disp_t * disp = _lv_refr_get_disp_refreshing();
-    if(disp->driver->clean_dcache_cb) disp->driver->clean_dcache_cb(disp->driver);
+    LV_ASSERT_MSG(!isDma2dInProgess, "dma2d transfer has not finished"); // critical
+    lv_coord_t draw_width = lv_area_get_width(draw_area);
+    lv_coord_t draw_height = lv_area_get_height(draw_area);
+
+    _lv_gpu_stm32_dma2d_await_dma_transfer_finish(NULL);
+
+    DMA2D->CR = 0x0UL; // Memory-to-memory (FG fetch only)
+
+    DMA2D->FGPFCCR = LvglColorFormat;
+#if defined(DMA2D_FGPFCCR_RBS_Pos)
+    DMA2D->FGPFCCR |= (RBS_BIT << DMA2D_FGPFCCR_RBS_Pos);
+#endif
+    DMA2D->FGMAR = (uint32_t)(src_buf + (src_stride * src_offset->y) + src_offset->x);
+    DMA2D->FGOR = src_stride - draw_width;
+    DMA2D->FGCOLR = 0;  // used in A4 and A8 modes only
+    _lv_gpu_stm32_dma2d_clean_cache(DMA2D->FGMAR, DMA2D->FGOR, draw_width, draw_height, sizeof(lv_color_t));
+
+    // Note BG* registers do not need to be set up since BG is not used
+
+    DMA2D->OPFCCR = LvglColorFormat;
+#if defined(DMA2D_OPFCCR_RBS_Pos)
+    DMA2D->OPFCCR |= (RBS_BIT << DMA2D_OPFCCR_RBS_Pos);
+#endif
+    DMA2D->OMAR = (uint32_t)(dest_buf + (dest_stride * draw_area->y1) + draw_area->x1);
+    DMA2D->OOR = dest_stride - draw_width;
+    DMA2D->OCOLR = 0;
+
+    // PL - pixel per lines (14 bit), NL - number of lines (16 bit)
+    DMA2D->NLR = (draw_width << DMA2D_NLR_PL_Pos) | (draw_height << DMA2D_NLR_NL_Pos);
+
+    _lv_gpu_stm32_dma2d_start_dma_transfer();
+}
+
+LV_STM32_DMA2D_STATIC void _lv_gpu_stm32_dma2d_start_dma_transfer(void)
+{
+    LV_ASSERT_MSG(!isDma2dInProgess, "dma2d transfer has not finished");
+    isDma2dInProgess = true;
+    DMA2D->IFCR = 0x3FU; // trigger ISR flags reset
+    // Note: cleaning output buffer cache is needed only when buffer may be misaligned or adjacent area may have been drawn in sw-fashion, e.g. using lv_draw_sw_blend_basic()
+#if LV_COLOR_DEPTH == 16
+    _lv_gpu_stm32_dma2d_clean_cache(DMA2D->OMAR, DMA2D->OOR, (DMA2D->NLR & DMA2D_NLR_PL_Msk) >> DMA2D_NLR_PL_Pos,
+                                    (DMA2D->NLR & DMA2D_NLR_NL_Msk) >> DMA2D_NLR_NL_Pos, sizeof(lv_color_t));
+#endif
+    DMA2D->CR |= DMA2D_CR_START;
+    // Note: for some reason mask buffer gets damaged during transfer if waiting is postponed
+    _lv_gpu_stm32_dma2d_await_dma_transfer_finish(NULL); // FIXME: this line should not be needed here, but it is
+}
+
+LV_STM32_DMA2D_STATIC void _lv_gpu_stm32_dma2d_await_dma_transfer_finish(lv_disp_drv_t * disp_drv)
+{
+    if(disp_drv && disp_drv->wait_cb) {
+        while((DMA2D->CR & DMA2D_CR_START) != 0U) {
+            disp_drv->wait_cb(disp_drv);
+        }
+    }
     else {
-#if __CORTEX_M >= 0x07
-        if((SCB->CCR) & (uint32_t)SCB_CCR_DC_Msk)
-            SCB_CleanInvalidateDCache();
+        while((DMA2D->CR & DMA2D_CR_START) != 0U);
+    }
+
+    __IO uint32_t isrFlags = DMA2D->ISR;
+
+    if(isrFlags & DMA2D_ISR_CEIF) {
+        LV_LOG_ERROR("DMA2D config error");
+    }
+
+    if(isrFlags & DMA2D_ISR_TEIF) {
+        LV_LOG_ERROR("DMA2D transfer error");
+    }
+
+    DMA2D->IFCR = 0x3FU; // trigger ISR flags reset
+
+    if(isDma2dInProgess) {
+        // invalidate output buffer cached memory ONLY after DMA2D transfer
+        //_lv_gpu_stm32_dma2d_invalidate_cache(DMA2D->OMAR, DMA2D->OOR, (DMA2D->NLR & DMA2D_NLR_PL_Msk) >> DMA2D_NLR_PL_Pos, (DMA2D->NLR & DMA2D_NLR_NL_Msk) >> DMA2D_NLR_NL_Pos, sizeof(lv_color_t));
+        isDma2dInProgess = false;
+    }
+}
+
+LV_STM32_DMA2D_STATIC void _lv_gpu_stm32_dma2d_invalidate_cache(uint32_t address, lv_coord_t offset, lv_coord_t width,
+                                                                lv_coord_t height, uint8_t pixel_size)
+{
+#if defined (__DCACHE_PRESENT) && (__DCACHE_PRESENT == 1U)
+    if(((SCB->CCR) & SCB_CCR_DC_Msk) == 0) return; // L1 data cache is disabled
+    uint16_t stride = pixel_size * (width + offset); // in bytes
+    uint16_t ll = pixel_size * width; // line length in bytes
+    uint32_t n = 0; // address of the next cache row after the last invalidated row
+    lv_coord_t h = 0;
+
+    __DSB();
+
+    while(h < height) {
+        uint32_t a = address + (h * stride);
+        uint32_t e = a + ll; // end address, address of the first byte after the current line
+        a &= ~(CACHE_ROW_SIZE - 1U);
+        if(a < n) a = n;  // prevent the previous last cache row from being invalidated again
+
+        while(a < e) {
+            SCB->DCIMVAC = a;
+            a += CACHE_ROW_SIZE;
+        }
+
+        n = a;
+        h++;
+    };
+
+    __DSB();
+    __ISB();
 #endif
+}
+
+LV_STM32_DMA2D_STATIC void _lv_gpu_stm32_dma2d_clean_cache(uint32_t address, lv_coord_t offset, lv_coord_t width,
+                                                           lv_coord_t height, uint8_t pixel_size)
+{
+#if defined (__DCACHE_PRESENT) && (__DCACHE_PRESENT == 1U)
+    if(((SCB->CCR) & SCB_CCR_DC_Msk) == 0) return; // L1 data cache is disabled
+    uint16_t stride = pixel_size * (width + offset); // in bytes
+    uint16_t ll = pixel_size * width; // line length in bytes
+    uint32_t n = 0; // address of the next cache row after the last cleaned row
+    lv_coord_t h = 0;
+    __DSB();
+
+    while(h < height) {
+        uint32_t a = address + (h * stride);
+        uint32_t e = a + ll; // end address, address of the first byte after the current line
+        a &= ~(CACHE_ROW_SIZE - 1U);
+        if(a < n) a = n;  // prevent the previous last cache row from being cleaned again
+
+        while(a < e) {
+            SCB->DCCMVAC = a;
+            a += CACHE_ROW_SIZE;
+        }
+
+        n = a;
+        h++;
+    };
+
+    __DSB();
+    __ISB();
+#endif
+}
+
+// initialize µs timer
+LV_STM32_DMA2D_STATIC bool _lv_gpu_stm32_dwt_init(void)
+{
+    // disable TRC
+    CoreDebug->DEMCR &= ~CoreDebug_DEMCR_TRCENA_Msk;
+    // enable TRC
+    CoreDebug->DEMCR |= CoreDebug_DEMCR_TRCENA_Msk;
+
+#if defined(__CORTEX_M) && (__CORTEX_M == 7U)
+    DWT->LAR = 0xC5ACCE55;
+#endif
+    // disable clock cycle counter
+    DWT->CTRL &= ~DWT_CTRL_CYCCNTENA_Msk;
+    // enable  clock cycle counter
+    DWT->CTRL |= DWT_CTRL_CYCCNTENA_Msk;
+
+    // reset the clock cycle counter value
+    DWT->CYCCNT = 0;
+
+    // 3 NO OPERATION instructions
+    __ASM volatile("NOP");
+    __ASM volatile("NOP");
+    __ASM volatile("NOP");
+
+    // check if clock cycle counter has started
+    if(DWT->CYCCNT) {
+        return true; // clock cycle counter started
     }
+    else {
+        return false; // clock cycle counter not started
+    }
+}
+
+// get elapsed µs since reset
+LV_STM32_DMA2D_STATIC uint32_t _lv_gpu_stm32_dwt_get_us(void)
+{
+    uint32_t us = (DWT->CYCCNT * 1000000) / HAL_RCC_GetHCLKFreq();
+    return us;
+}
+
+// reset µs timer
+LV_STM32_DMA2D_STATIC void _lv_gpu_stm32_dwt_reset(void)
+{
+    DWT->CYCCNT = 0;
 }
 
 #endif
index 73054ca..5ecce6d 100644 (file)
@@ -10,9 +10,6 @@
 extern "C" {
 #endif
 
-/*********************
- *      INCLUDES
- *********************/
 #include "../../misc/lv_color.h"
 #include "../../hal/lv_hal_disp.h"
 #include "../sw/lv_draw_sw.h"
@@ -20,38 +17,76 @@ extern "C" {
 #if LV_USE_GPU_STM32_DMA2D
 
 /*********************
- *      DEFINES
+ *      INCLUDES
  *********************/
+#include LV_GPU_DMA2D_CMSIS_INCLUDE
 
-#define LV_DMA2D_ARGB8888 0
-#define LV_DMA2D_RGB888 1
-#define LV_DMA2D_RGB565 2
-#define LV_DMA2D_ARGB1555 3
-#define LV_DMA2D_ARGB4444 4
+/*********************
+ *      DEFINES
+ *********************/
+#if defined(LV_STM32_DMA2D_TEST)
+// removes "static" modifier for some internal methods in order to test them
+#define LV_STM32_DMA2D_STATIC
+#else
+#define LV_STM32_DMA2D_STATIC static
+#endif
 
 /**********************
  *      TYPEDEFS
  **********************/
+enum dma2d_color_format {
+    ARGB8888 = 0x0,
+    RGB888 = 0x01,
+    RGB565 = 0x02,
+    ARGB1555 = 0x03,
+    ARGB4444 = 0x04,
+    A8 = 0x09,
+    UNSUPPORTED = 0xff,
+};
+typedef enum dma2d_color_format dma2d_color_format_t;
 typedef lv_draw_sw_ctx_t lv_draw_stm32_dma2d_ctx_t;
-
 struct _lv_disp_drv_t;
 
 /**********************
  * GLOBAL PROTOTYPES
  **********************/
-
-/**
- * Turn on the peripheral and set output color mode, this only needs to be done once
- */
 void lv_draw_stm32_dma2d_init(void);
-
 void lv_draw_stm32_dma2d_ctx_init(struct _lv_disp_drv_t * drv, lv_draw_ctx_t * draw_ctx);
-
 void lv_draw_stm32_dma2d_ctx_deinit(struct _lv_disp_drv_t * drv, lv_draw_ctx_t * draw_ctx);
+static void lv_draw_stm32_dma2d_blend(lv_draw_ctx_t * draw_ctx, const lv_draw_sw_blend_dsc_t * dsc);
+static void lv_draw_stm32_dma2d_buffer_copy(lv_draw_ctx_t * draw_ctx,
+                                            void * dest_buf, lv_coord_t dest_stride, const lv_area_t * dest_area,
+                                            void * src_buf, lv_coord_t src_stride, const lv_area_t * src_area);
+static lv_res_t lv_draw_stm32_dma2d_img(lv_draw_ctx_t * draw_ctx, const lv_draw_img_dsc_t * img_dsc,
+                                        const lv_area_t * src_area, const void * src);
+static void lv_gpu_stm32_dma2d_wait_cb(lv_draw_ctx_t * draw_ctx);
+static void lv_draw_stm32_dma2d_img_decoded(lv_draw_ctx_t * draw_ctx, const lv_draw_img_dsc_t * img_dsc,
+                                            const lv_area_t * coords, const uint8_t * src_buf, lv_img_cf_t color_format);
+static dma2d_color_format_t lv_color_format_to_dma2d_color_format(lv_img_cf_t color_format);
+static lv_point_t lv_area_get_offset(const lv_area_t * area1, const lv_area_t * area2);
 
-void lv_draw_stm32_dma2d_blend(lv_draw_ctx_t * draw_ctx, const lv_draw_sw_blend_dsc_t * dsc);
-
-void lv_gpu_stm32_dma2d_wait_cb(lv_draw_ctx_t * draw_ctx);
+/**********************
+ *  STATIC PROTOTYPES
+ **********************/
+LV_STM32_DMA2D_STATIC void _lv_draw_stm32_dma2d_blend_fill(const lv_color_t * dst_buf, lv_coord_t dst_stride,
+                                                           const lv_area_t * draw_area, lv_color_t color, lv_opa_t opa);
+LV_STM32_DMA2D_STATIC void _lv_draw_stm32_dma2d_blend_map(const lv_color_t * dest_buf, lv_coord_t dest_stride,
+                                                          const lv_area_t * draw_area, const void * src_buf, lv_coord_t src_stride, const lv_point_t * src_offset, lv_opa_t opa,
+                                                          dma2d_color_format_t src_color_format, bool ignore_src_alpha);
+LV_STM32_DMA2D_STATIC void _lv_draw_stm32_dma2d_blend_paint(const lv_color_t * dst_buf, lv_coord_t dst_stride,
+                                                            const lv_area_t * draw_area, const lv_opa_t * mask_buf, lv_coord_t mask_stride, const lv_point_t * mask_offset,
+                                                            lv_color_t color, lv_opa_t opa);
+LV_STM32_DMA2D_STATIC void _lv_draw_stm32_dma2d_copy_buffer(const lv_color_t * dest_buf, lv_coord_t dest_stride,
+                                                            const lv_area_t * draw_area, const lv_color_t * src_buf, lv_coord_t src_stride, const lv_point_t * src_offset);
+LV_STM32_DMA2D_STATIC void _lv_gpu_stm32_dma2d_await_dma_transfer_finish(lv_disp_drv_t * disp_drv);
+LV_STM32_DMA2D_STATIC void _lv_gpu_stm32_dma2d_start_dma_transfer(void);
+LV_STM32_DMA2D_STATIC void _lv_gpu_stm32_dma2d_invalidate_cache(uint32_t address, lv_coord_t offset,
+                                                                lv_coord_t width, lv_coord_t height, uint8_t pixel_size);
+LV_STM32_DMA2D_STATIC void _lv_gpu_stm32_dma2d_clean_cache(uint32_t address, lv_coord_t offset, lv_coord_t width,
+                                                           lv_coord_t height, uint8_t pixel_size);
+LV_STM32_DMA2D_STATIC bool _lv_gpu_stm32_dwt_init(void);
+LV_STM32_DMA2D_STATIC void _lv_gpu_stm32_dwt_reset(void);
+LV_STM32_DMA2D_STATIC uint32_t _lv_gpu_stm32_dwt_get_us(void);
 
 /**********************
  *      MACROS
index 21da4ee..1c0c6d4 100644 (file)
@@ -51,8 +51,17 @@ void lv_draw_sw_init_ctx(lv_disp_drv_t * drv, lv_draw_ctx_t * draw_ctx)
     draw_sw_ctx->base_draw.draw_img_decoded = lv_draw_sw_img_decoded;
     draw_sw_ctx->base_draw.draw_line = lv_draw_sw_line;
     draw_sw_ctx->base_draw.draw_polygon = lv_draw_sw_polygon;
+#if LV_DRAW_COMPLEX
+    draw_sw_ctx->base_draw.draw_transform = lv_draw_sw_transform;
+#endif
     draw_sw_ctx->base_draw.wait_for_finish = lv_draw_sw_wait_for_finish;
+    draw_sw_ctx->base_draw.buffer_copy = lv_draw_sw_buffer_copy;
+    draw_sw_ctx->base_draw.layer_init = lv_draw_sw_layer_create;
+    draw_sw_ctx->base_draw.layer_adjust = lv_draw_sw_layer_adjust;
+    draw_sw_ctx->base_draw.layer_blend = lv_draw_sw_layer_blend;
+    draw_sw_ctx->base_draw.layer_destroy = lv_draw_sw_layer_destroy;
     draw_sw_ctx->blend = lv_draw_sw_blend_basic;
+    draw_ctx->layer_instance_size = sizeof(lv_draw_sw_layer_ctx_t);
 }
 
 void lv_draw_sw_deinit_ctx(lv_disp_drv_t * drv, lv_draw_ctx_t * draw_ctx)
@@ -69,6 +78,31 @@ void lv_draw_sw_wait_for_finish(lv_draw_ctx_t * draw_ctx)
     /*Nothing to wait for*/
 }
 
+void lv_draw_sw_buffer_copy(lv_draw_ctx_t * draw_ctx,
+                            void * dest_buf, lv_coord_t dest_stride, const lv_area_t * dest_area,
+                            void * src_buf, lv_coord_t src_stride, const lv_area_t * src_area)
+{
+    LV_UNUSED(draw_ctx);
+
+    lv_color_t * dest_bufc =  dest_buf;
+    lv_color_t * src_bufc =  src_buf;
+
+    /*Got the first pixel of each buffer*/
+    dest_bufc += dest_stride * dest_area->y1;
+    dest_bufc += dest_area->x1;
+
+    src_bufc += src_stride * src_area->y1;
+    src_bufc += src_area->x1;
+
+    uint32_t line_length = lv_area_get_width(dest_area) * sizeof(lv_color_t);
+    lv_coord_t y;
+    for(y = dest_area->y1; y <= dest_area->y2; y++) {
+        lv_memcpy(dest_bufc, src_bufc, line_length);
+        dest_bufc += dest_stride;
+        src_bufc += src_stride;
+    }
+}
+
 /**********************
  *   STATIC FUNCTIONS
  **********************/
index cba5b48..1618649 100644 (file)
@@ -36,6 +36,13 @@ typedef struct {
     void (*blend)(lv_draw_ctx_t * draw_ctx, const lv_draw_sw_blend_dsc_t * dsc);
 } lv_draw_sw_ctx_t;
 
+typedef struct {
+    lv_draw_layer_ctx_t base_draw;
+
+    uint32_t buf_size_bytes: 31;
+    uint32_t has_alpha : 1;
+} lv_draw_sw_layer_ctx_t;
+
 /**********************
  * GLOBAL PROTOTYPES
  **********************/
@@ -63,6 +70,25 @@ LV_ATTRIBUTE_FAST_MEM void lv_draw_sw_line(struct _lv_draw_ctx_t * draw_ctx, con
 void lv_draw_sw_polygon(struct _lv_draw_ctx_t * draw_ctx, const lv_draw_rect_dsc_t * draw_dsc,
                         const lv_point_t * points, uint16_t point_cnt);
 
+void lv_draw_sw_buffer_copy(lv_draw_ctx_t * draw_ctx,
+                            void * dest_buf, lv_coord_t dest_stride, const lv_area_t * dest_area,
+                            void * src_buf, lv_coord_t src_stride, const lv_area_t * src_area);
+
+void lv_draw_sw_transform(lv_draw_ctx_t * draw_ctx, const lv_area_t * dest_area, const void * src_buf,
+                          lv_coord_t src_w, lv_coord_t src_h, lv_coord_t src_stride,
+                          const lv_draw_img_dsc_t * draw_dsc, lv_img_cf_t cf, lv_color_t * cbuf, lv_opa_t * abuf);
+
+struct _lv_draw_layer_ctx_t * lv_draw_sw_layer_create(struct _lv_draw_ctx_t * draw_ctx, lv_draw_layer_ctx_t * layer_ctx,
+                                                      lv_draw_layer_flags_t flags);
+
+void lv_draw_sw_layer_adjust(struct _lv_draw_ctx_t * draw_ctx, struct _lv_draw_layer_ctx_t * layer_ctx,
+                             lv_draw_layer_flags_t flags);
+
+void lv_draw_sw_layer_blend(struct _lv_draw_ctx_t * draw_ctx, struct _lv_draw_layer_ctx_t * layer_ctx,
+                            const lv_draw_img_dsc_t * draw_dsc);
+
+void lv_draw_sw_layer_destroy(lv_draw_ctx_t * draw_ctx, lv_draw_layer_ctx_t * layer_ctx);
+
 /***********************
  * GLOBAL VARIABLES
  ***********************/
index 5048447..4625cbc 100644 (file)
@@ -1,10 +1,17 @@
-lvgl_SRCS  += $(LVGL_DIR_NAME)/src/draw/sw/lv_draw_sw.c
-lvgl_SRCS  += $(LVGL_DIR_NAME)/src/draw/sw/lv_draw_sw_arc.c
-lvgl_SRCS  += $(LVGL_DIR_NAME)/src/draw/sw/lv_draw_sw_blend.c
-lvgl_SRCS  += $(LVGL_DIR_NAME)/src/draw/sw/lv_draw_sw_img.c
-lvgl_SRCS  += $(LVGL_DIR_NAME)/src/draw/sw/lv_draw_sw_letter.c
-lvgl_SRCS  += $(LVGL_DIR_NAME)/src/draw/sw/lv_draw_sw_line.c
-lvgl_SRCS  += $(LVGL_DIR_NAME)/src/draw/sw/lv_draw_sw_rect.c
-lvgl_SRCS  += $(LVGL_DIR_NAME)/src/draw/sw/lv_draw_sw_polygon.c
-lvgl_SRCS  += $(LVGL_DIR_NAME)/src/draw/sw/lv_draw_sw_gradient.c
-lvgl_SRCS  += $(LVGL_DIR_NAME)/src/draw/sw/lv_draw_sw_dither.c
+CSRCS += lv_draw_sw.c
+CSRCS += lv_draw_sw_arc.c
+CSRCS += lv_draw_sw_blend.c
+CSRCS += lv_draw_sw_dither.c
+CSRCS += lv_draw_sw_gradient.c
+CSRCS += lv_draw_sw_img.c
+CSRCS += lv_draw_sw_letter.c
+CSRCS += lv_draw_sw_line.c
+CSRCS += lv_draw_sw_polygon.c
+CSRCS += lv_draw_sw_rect.c
+CSRCS += lv_draw_sw_transform.c
+CSRCS += lv_draw_sw_layer.c
+
+DEPPATH += --dep-path $(LVGL_DIR)/$(LVGL_DIR_NAME)/src/draw/sw
+VPATH += :$(LVGL_DIR)/$(LVGL_DIR_NAME)/src/draw/sw
+
+CFLAGS += "-I$(LVGL_DIR)/$(LVGL_DIR_NAME)/src/draw/sw"
index d020fdd..3ed62b6 100644 (file)
@@ -97,8 +97,10 @@ void lv_draw_sw_arc(lv_draw_ctx_t * draw_ctx, const lv_draw_arc_dsc_t * dsc, con
     /*Create inner the mask*/
     int16_t mask_in_id = LV_MASK_ID_INV;
     lv_draw_mask_radius_param_t mask_in_param;
+    bool mask_in_param_valid = false;
     if(lv_area_get_width(&area_in) > 0 && lv_area_get_height(&area_in) > 0) {
         lv_draw_mask_radius_init(&mask_in_param, &area_in, LV_RADIUS_CIRCLE, true);
+        mask_in_param_valid = true;
         mask_in_id = lv_draw_mask_add(&mask_in_param, NULL);
     }
 
@@ -115,7 +117,9 @@ void lv_draw_sw_arc(lv_draw_ctx_t * draw_ctx, const lv_draw_arc_dsc_t * dsc, con
         if(mask_in_id != LV_MASK_ID_INV) lv_draw_mask_remove_id(mask_in_id);
 
         lv_draw_mask_free_param(&mask_out_param);
-        lv_draw_mask_free_param(&mask_in_param);
+        if(mask_in_param_valid) {
+            lv_draw_mask_free_param(&mask_in_param);
+        }
 
         return;
     }
@@ -162,7 +166,9 @@ void lv_draw_sw_arc(lv_draw_ctx_t * draw_ctx, const lv_draw_arc_dsc_t * dsc, con
 
     lv_draw_mask_free_param(&mask_angle_param);
     lv_draw_mask_free_param(&mask_out_param);
-    lv_draw_mask_free_param(&mask_in_param);
+    if(mask_in_param_valid) {
+        lv_draw_mask_free_param(&mask_in_param);
+    }
 
     lv_draw_mask_remove_id(mask_angle_id);
     lv_draw_mask_remove_id(mask_out_id);
@@ -237,7 +243,7 @@ static void draw_quarter_0(quarter_draw_dsc_t * q)
         bool ok = _lv_area_intersect(&quarter_area, &quarter_area, clip_area_ori);
         if(ok) {
             q->draw_ctx->clip_area = &quarter_area;
-            lv_draw_rect(q->draw_ctx, q->draw_dsc, &quarter_area);
+            lv_draw_rect(q->draw_ctx, q->draw_dsc, q->draw_area);
         }
     }
     else if(q->start_quarter == 0 || q->end_quarter == 0) {
@@ -252,7 +258,7 @@ static void draw_quarter_0(quarter_draw_dsc_t * q)
             bool ok = _lv_area_intersect(&quarter_area, &quarter_area, clip_area_ori);
             if(ok) {
                 q->draw_ctx->clip_area = &quarter_area;
-                lv_draw_rect(q->draw_ctx, q->draw_dsc, &quarter_area);
+                lv_draw_rect(q->draw_ctx, q->draw_dsc, q->draw_area);
             }
         }
         if(q->end_quarter == 0) {
@@ -265,7 +271,7 @@ static void draw_quarter_0(quarter_draw_dsc_t * q)
             bool ok = _lv_area_intersect(&quarter_area, &quarter_area, clip_area_ori);
             if(ok) {
                 q->draw_ctx->clip_area = &quarter_area;
-                lv_draw_rect(q->draw_ctx, q->draw_dsc, &quarter_area);
+                lv_draw_rect(q->draw_ctx, q->draw_dsc, q->draw_area);
             }
         }
     }
@@ -282,7 +288,7 @@ static void draw_quarter_0(quarter_draw_dsc_t * q)
         bool ok = _lv_area_intersect(&quarter_area, &quarter_area, clip_area_ori);
         if(ok) {
             q->draw_ctx->clip_area = &quarter_area;
-            lv_draw_rect(q->draw_ctx, q->draw_dsc, &quarter_area);
+            lv_draw_rect(q->draw_ctx, q->draw_dsc, q->draw_area);
         }
     }
     q->draw_ctx->clip_area = clip_area_ori;
@@ -304,7 +310,7 @@ static void draw_quarter_1(quarter_draw_dsc_t * q)
         bool ok = _lv_area_intersect(&quarter_area, &quarter_area, clip_area_ori);
         if(ok) {
             q->draw_ctx->clip_area = &quarter_area;
-            lv_draw_rect(q->draw_ctx, q->draw_dsc, &quarter_area);
+            lv_draw_rect(q->draw_ctx, q->draw_dsc, q->draw_area);
         }
     }
     else if(q->start_quarter == 1 || q->end_quarter == 1) {
@@ -319,7 +325,7 @@ static void draw_quarter_1(quarter_draw_dsc_t * q)
             bool ok = _lv_area_intersect(&quarter_area, &quarter_area, clip_area_ori);
             if(ok) {
                 q->draw_ctx->clip_area = &quarter_area;
-                lv_draw_rect(q->draw_ctx, q->draw_dsc, &quarter_area);
+                lv_draw_rect(q->draw_ctx, q->draw_dsc, q->draw_area);
             }
         }
         if(q->end_quarter == 1) {
@@ -332,7 +338,7 @@ static void draw_quarter_1(quarter_draw_dsc_t * q)
             bool ok = _lv_area_intersect(&quarter_area, &quarter_area, clip_area_ori);
             if(ok) {
                 q->draw_ctx->clip_area = &quarter_area;
-                lv_draw_rect(q->draw_ctx, q->draw_dsc, &quarter_area);
+                lv_draw_rect(q->draw_ctx, q->draw_dsc, q->draw_area);
             }
         }
     }
@@ -349,7 +355,7 @@ static void draw_quarter_1(quarter_draw_dsc_t * q)
         bool ok = _lv_area_intersect(&quarter_area, &quarter_area, clip_area_ori);
         if(ok) {
             q->draw_ctx->clip_area = &quarter_area;
-            lv_draw_rect(q->draw_ctx, q->draw_dsc, &quarter_area);
+            lv_draw_rect(q->draw_ctx, q->draw_dsc, q->draw_area);
         }
     }
     q->draw_ctx->clip_area = clip_area_ori;
@@ -371,7 +377,7 @@ static void draw_quarter_2(quarter_draw_dsc_t * q)
         bool ok = _lv_area_intersect(&quarter_area, &quarter_area, clip_area_ori);
         if(ok) {
             q->draw_ctx->clip_area = &quarter_area;
-            lv_draw_rect(q->draw_ctx, q->draw_dsc, &quarter_area);
+            lv_draw_rect(q->draw_ctx, q->draw_dsc, q->draw_area);
         }
     }
     else if(q->start_quarter == 2 || q->end_quarter == 2) {
@@ -386,7 +392,7 @@ static void draw_quarter_2(quarter_draw_dsc_t * q)
             bool ok = _lv_area_intersect(&quarter_area, &quarter_area, clip_area_ori);
             if(ok) {
                 q->draw_ctx->clip_area = &quarter_area;
-                lv_draw_rect(q->draw_ctx, q->draw_dsc, &quarter_area);
+                lv_draw_rect(q->draw_ctx, q->draw_dsc, q->draw_area);
             }
         }
         if(q->end_quarter == 2) {
@@ -399,7 +405,7 @@ static void draw_quarter_2(quarter_draw_dsc_t * q)
             bool ok = _lv_area_intersect(&quarter_area, &quarter_area, clip_area_ori);
             if(ok) {
                 q->draw_ctx->clip_area = &quarter_area;
-                lv_draw_rect(q->draw_ctx, q->draw_dsc, &quarter_area);
+                lv_draw_rect(q->draw_ctx, q->draw_dsc, q->draw_area);
             }
         }
     }
@@ -416,7 +422,7 @@ static void draw_quarter_2(quarter_draw_dsc_t * q)
         bool ok = _lv_area_intersect(&quarter_area, &quarter_area, clip_area_ori);
         if(ok) {
             q->draw_ctx->clip_area = &quarter_area;
-            lv_draw_rect(q->draw_ctx, q->draw_dsc, &quarter_area);
+            lv_draw_rect(q->draw_ctx, q->draw_dsc, q->draw_area);
         }
     }
     q->draw_ctx->clip_area = clip_area_ori;
@@ -438,7 +444,7 @@ static void draw_quarter_3(quarter_draw_dsc_t * q)
         bool ok = _lv_area_intersect(&quarter_area, &quarter_area, clip_area_ori);
         if(ok) {
             q->draw_ctx->clip_area = &quarter_area;
-            lv_draw_rect(q->draw_ctx, q->draw_dsc, &quarter_area);
+            lv_draw_rect(q->draw_ctx, q->draw_dsc, q->draw_area);
         }
     }
     else if(q->start_quarter == 3 || q->end_quarter == 3) {
@@ -453,7 +459,7 @@ static void draw_quarter_3(quarter_draw_dsc_t * q)
             bool ok = _lv_area_intersect(&quarter_area, &quarter_area, clip_area_ori);
             if(ok) {
                 q->draw_ctx->clip_area = &quarter_area;
-                lv_draw_rect(q->draw_ctx, q->draw_dsc, &quarter_area);
+                lv_draw_rect(q->draw_ctx, q->draw_dsc, q->draw_area);
             }
         }
         if(q->end_quarter == 3) {
@@ -466,7 +472,7 @@ static void draw_quarter_3(quarter_draw_dsc_t * q)
             bool ok = _lv_area_intersect(&quarter_area, &quarter_area, clip_area_ori);
             if(ok) {
                 q->draw_ctx->clip_area = &quarter_area;
-                lv_draw_rect(q->draw_ctx, q->draw_dsc, &quarter_area);
+                lv_draw_rect(q->draw_ctx, q->draw_dsc, q->draw_area);
             }
         }
     }
@@ -483,7 +489,7 @@ static void draw_quarter_3(quarter_draw_dsc_t * q)
         bool ok = _lv_area_intersect(&quarter_area, &quarter_area, clip_area_ori);
         if(ok) {
             q->draw_ctx->clip_area = &quarter_area;
-            lv_draw_rect(q->draw_ctx, q->draw_dsc, &quarter_area);
+            lv_draw_rect(q->draw_ctx, q->draw_dsc, q->draw_area);
         }
     }
 
index 82d0138..a31d64a 100644 (file)
 
 static void fill_set_px(lv_color_t * dest_buf, const lv_area_t * blend_area, lv_coord_t dest_stride,
                         lv_color_t color, lv_opa_t opa, const lv_opa_t * mask, lv_coord_t mask_stide);
+
 LV_ATTRIBUTE_FAST_MEM static void fill_normal(lv_color_t * dest_buf, const lv_area_t * dest_area,
                                               lv_coord_t dest_stride, lv_color_t color, lv_opa_t opa, const lv_opa_t * mask, lv_coord_t mask_stride);
+
+
+#if LV_COLOR_SCREEN_TRANSP
+LV_ATTRIBUTE_FAST_MEM static void fill_argb(lv_color_t * dest_buf, const lv_area_t * dest_area,
+                                            lv_coord_t dest_stride, lv_color_t color, lv_opa_t opa, const lv_opa_t * mask, lv_coord_t mask_stride);
+#endif /*LV_COLOR_SCREEN_TRANSP*/
+
 #if LV_DRAW_COMPLEX
 static void fill_blended(lv_color_t * dest_buf, const lv_area_t * dest_area, lv_coord_t dest_stride, lv_color_t color,
                          lv_opa_t opa, const lv_opa_t * mask, lv_coord_t mask_stride, lv_blend_mode_t blend_mode);
@@ -38,6 +46,13 @@ static void map_set_px(lv_color_t * dest_buf, const lv_area_t * dest_area, lv_co
 LV_ATTRIBUTE_FAST_MEM static void map_normal(lv_color_t * dest_buf, const lv_area_t * dest_area, lv_coord_t dest_stride,
                                              const lv_color_t * src_buf, lv_coord_t src_stride, lv_opa_t opa, const lv_opa_t * mask, lv_coord_t mask_stride);
 
+#if LV_COLOR_SCREEN_TRANSP
+LV_ATTRIBUTE_FAST_MEM static void map_argb(lv_color_t * dest_buf, const lv_area_t * dest_area, lv_coord_t dest_stride,
+                                           const lv_color_t * src_buf, lv_coord_t src_stride, lv_opa_t opa,
+                                           const lv_opa_t * mask, lv_coord_t mask_stride, lv_blend_mode_t blend_mode);
+
+#endif /*LV_COLOR_SCREEN_TRANSP*/
+
 #if LV_DRAW_COMPLEX
 static void map_blended(lv_color_t * dest_buf, const lv_area_t * dest_area, lv_coord_t dest_stride,
                         const lv_color_t * src_buf, lv_coord_t src_stride, lv_opa_t opa,
@@ -55,22 +70,12 @@ static inline lv_color_t color_blend_true_color_multiply(lv_color_t fg, lv_color
 /**********************
  *      MACROS
  **********************/
-#if LV_COLOR_SCREEN_TRANSP == 0
 #define FILL_NORMAL_MASK_PX(color)                                                          \
     if(*mask == LV_OPA_COVER) *dest_buf = color;                                 \
     else *dest_buf = lv_color_mix(color, *dest_buf, *mask);            \
     mask++;                                                         \
     dest_buf++;
 
-#else
-#define FILL_NORMAL_MASK_PX(color)                                               \
-    if(*mask == LV_OPA_COVER) *dest_buf = color;                                 \
-    else if(disp->driver->screen_transp) lv_color_mix_with_alpha(*dest_buf, dest_buf->ch.alpha, color, *mask, dest_buf, &dest_buf->ch.alpha);           \
-    else *dest_buf = lv_color_mix(color, *dest_buf, *mask);            \
-    mask++;                                                         \
-    dest_buf++;
-#endif
-
 #define MAP_NORMAL_MASK_PX(x)                                                          \
     if(*mask_tmp_x) {          \
         if(*mask_tmp_x == LV_OPA_COVER) dest_buf[x] = src_buf[x];                                 \
@@ -78,15 +83,6 @@ static inline lv_color_t color_blend_true_color_multiply(lv_color_t fg, lv_color
     }                                                                                               \
     mask_tmp_x++;
 
-#define MAP_NORMAL_MASK_PX_SCR_TRANSP(x)                        \
-    if(*mask_tmp_x) {          \
-        if(*mask_tmp_x == LV_OPA_COVER) dest_buf[x] = src_buf[x];                                 \
-        else if(disp->driver->screen_transp) lv_color_mix_with_alpha(dest_buf[x], dest_buf[x].ch.alpha,              \
-                                                                         src_buf[x], *mask_tmp_x, &dest_buf[x], &dest_buf[x].ch.alpha);                  \
-        else dest_buf[x] = lv_color_mix(src_buf[x], dest_buf[x], *mask_tmp_x);            \
-    }                                                                                               \
-    mask_tmp_x++;
-
 
 /**********************
  *   GLOBAL FUNCTIONS
@@ -107,7 +103,7 @@ void lv_draw_sw_blend(lv_draw_ctx_t * draw_ctx, const lv_draw_sw_blend_dsc_t * d
 
 LV_ATTRIBUTE_FAST_MEM void lv_draw_sw_blend_basic(lv_draw_ctx_t * draw_ctx, const lv_draw_sw_blend_dsc_t * dsc)
 {
-    const lv_opa_t * mask;
+    lv_opa_t * mask;
     if(dsc->mask_buf == NULL) mask = NULL;
     if(dsc->mask_buf && dsc->mask_res == LV_DRAW_MASK_RES_TRANSP) return;
     else if(dsc->mask_res == LV_DRAW_MASK_RES_FULL_COVER) mask = NULL;
@@ -121,7 +117,16 @@ LV_ATTRIBUTE_FAST_MEM void lv_draw_sw_blend_basic(lv_draw_ctx_t * draw_ctx, cons
     lv_disp_t * disp = _lv_refr_get_disp_refreshing();
     lv_color_t * dest_buf = draw_ctx->buf;
     if(disp->driver->set_px_cb == NULL) {
-        dest_buf += dest_stride * (blend_area.y1 - draw_ctx->buf_area->y1) + (blend_area.x1 - draw_ctx->buf_area->x1);
+        if(disp->driver->screen_transp == 0) {
+            dest_buf += dest_stride * (blend_area.y1 - draw_ctx->buf_area->y1) + (blend_area.x1 - draw_ctx->buf_area->x1);
+        }
+        else {
+            /*With LV_COLOR_DEPTH 16 it means ARGB8565 (3 bytes format)*/
+            uint8_t * dest_buf8 = (uint8_t *) dest_buf;
+            dest_buf8 += dest_stride * (blend_area.y1 - draw_ctx->buf_area->y1) * LV_IMG_PX_SIZE_ALPHA_BYTE;
+            dest_buf8 += (blend_area.x1 - draw_ctx->buf_area->x1) * LV_IMG_PX_SIZE_ALPHA_BYTE;
+            dest_buf = (lv_color_t *)dest_buf8;
+        }
     }
 
     const lv_color_t * src_buf = dsc->src_buf;
@@ -136,8 +141,18 @@ LV_ATTRIBUTE_FAST_MEM void lv_draw_sw_blend_basic(lv_draw_ctx_t * draw_ctx, cons
 
     lv_coord_t mask_stride;
     if(mask) {
+        /*Round the values in the mask if anti-aliasing is disabled*/
+        if(disp->driver->antialiasing == 0) {
+            int32_t mask_size = lv_area_get_size(dsc->mask_area);
+            int32_t i;
+            for(i = 0; i < mask_size; i++) {
+                mask[i] = mask[i] > 128 ? LV_OPA_COVER : LV_OPA_TRANSP;
+            }
+        }
+
         mask_stride = lv_area_get_width(dsc->mask_area);
-        mask += mask_stride * (dsc->mask_area->y1 - blend_area.y1) + (dsc->mask_area->x1 - blend_area.x1);
+        mask += mask_stride * (blend_area.y1 - dsc->mask_area->y1) + (blend_area.x1 - dsc->mask_area->x1);
+
     }
     else {
         mask_stride = 0;
@@ -154,21 +169,29 @@ LV_ATTRIBUTE_FAST_MEM void lv_draw_sw_blend_basic(lv_draw_ctx_t * draw_ctx, cons
             map_set_px(dest_buf, &blend_area, dest_stride, src_buf, src_stride, dsc->opa, mask, mask_stride);
         }
     }
-    else if(dsc->src_buf == NULL) {
-        if(dsc->blend_mode == LV_BLEND_MODE_NORMAL) {
-            fill_normal(dest_buf, &blend_area, dest_stride, dsc->color, dsc->opa, mask, mask_stride);
+#if LV_COLOR_SCREEN_TRANSP
+    else if(disp->driver->screen_transp) {
+        if(dsc->src_buf == NULL) {
+            fill_argb(dest_buf, &blend_area, dest_stride, dsc->color, dsc->opa, mask, mask_stride);
         }
-#if LV_DRAW_COMPLEX
         else {
-            fill_blended(dest_buf, &blend_area, dest_stride, dsc->color, dsc->opa, mask, mask_stride, dsc->blend_mode);
+            map_argb(dest_buf, &blend_area, dest_stride, src_buf, src_stride, dsc->opa, mask, mask_stride, dsc->blend_mode);
         }
-#endif
     }
-    else {
-        if(dsc->blend_mode == LV_BLEND_MODE_NORMAL) {
+#endif
+    else if(dsc->blend_mode == LV_BLEND_MODE_NORMAL) {
+        if(dsc->src_buf == NULL) {
+            fill_normal(dest_buf, &blend_area, dest_stride, dsc->color, dsc->opa, mask, mask_stride);
+        }
+        else {
             map_normal(dest_buf, &blend_area, dest_stride, src_buf, src_stride, dsc->opa, mask, mask_stride);
         }
+    }
+    else {
 #if LV_DRAW_COMPLEX
+        if(dsc->src_buf == NULL) {
+            fill_blended(dest_buf, &blend_area, dest_stride, dsc->color, dsc->opa, mask, mask_stride, dsc->blend_mode);
+        }
         else {
             map_blended(dest_buf, &blend_area, dest_stride, src_buf, src_stride, dsc->opa, mask, mask_stride, dsc->blend_mode);
         }
@@ -203,6 +226,8 @@ static void fill_set_px(lv_color_t * dest_buf, const lv_area_t * blend_area, lv_
         for(y = 0; y < h; y++) {
             for(x = 0; x < w; x++) {
                 if(mask[x]) {
+
+
                     disp->driver->set_px_cb(disp->driver, (void *)dest_buf, dest_stride, blend_area->x1 + x, blend_area->y1 + y, color,
                                             (uint32_t)((uint32_t)opa * mask[x]) >> 8);
                 }
@@ -215,7 +240,6 @@ static void fill_set_px(lv_color_t * dest_buf, const lv_area_t * blend_area, lv_
 LV_ATTRIBUTE_FAST_MEM static void fill_normal(lv_color_t * dest_buf, const lv_area_t * dest_area,
                                               lv_coord_t dest_stride, lv_color_t color, lv_opa_t opa, const lv_opa_t * mask, lv_coord_t mask_stride)
 {
-    lv_disp_t * disp = _lv_refr_get_disp_refreshing();
     int32_t w = lv_area_get_width(dest_area);
     int32_t h = lv_area_get_height(dest_area);
 
@@ -235,6 +259,14 @@ LV_ATTRIBUTE_FAST_MEM static void fill_normal(lv_color_t * dest_buf, const lv_ar
             lv_color_t last_dest_color = lv_color_black();
             lv_color_t last_res_color = lv_color_mix(color, last_dest_color, opa);
 
+#if LV_COLOR_MIX_ROUND_OFS == 0 && LV_COLOR_DEPTH == 16
+            /*lv_color_mix work with an optimized algorithm with 16 bit color depth.
+             *However, it introduces some rounded error on opa.
+             *Introduce the same error here too to make lv_color_premult produces the same result */
+            opa = (uint32_t)((uint32_t)opa + 4) >> 3;
+            opa = opa << 3;
+#endif
+
             uint16_t color_premult[3];
             lv_color_premult(color, opa, color_premult);
             lv_opa_t opa_inv = 255 - opa;
@@ -243,19 +275,7 @@ LV_ATTRIBUTE_FAST_MEM static void fill_normal(lv_color_t * dest_buf, const lv_ar
                 for(x = 0; x < w; x++) {
                     if(last_dest_color.full != dest_buf[x].full) {
                         last_dest_color = dest_buf[x];
-
-#if LV_COLOR_SCREEN_TRANSP
-                        if(disp->driver->screen_transp) {
-                            lv_color_mix_with_alpha(dest_buf[x], dest_buf[x].ch.alpha, color, opa, &last_res_color,
-                                                    &last_res_color.ch.alpha);
-                        }
-                        else
-#else
-                        LV_UNUSED(disp);
-#endif
-                        {
-                            last_res_color = lv_color_mix_premult(color_premult, dest_buf[x], opa_inv);
-                        }
+                        last_res_color = lv_color_mix_premult(color_premult, dest_buf[x], opa_inv);
                     }
                     dest_buf[x] = last_res_color;
                 }
@@ -335,17 +355,8 @@ LV_ATTRIBUTE_FAST_MEM static void fill_normal(lv_color_t * dest_buf, const lv_ar
                         if(*mask != last_mask) opa_tmp = *mask == LV_OPA_COVER ? opa :
                                                              (uint32_t)((uint32_t)(*mask) * opa) >> 8;
                         if(*mask != last_mask || last_dest_color.full != dest_buf[x].full) {
-#if LV_COLOR_SCREEN_TRANSP
-                            if(disp->driver->screen_transp) {
-                                lv_color_mix_with_alpha(dest_buf[x], dest_buf[x].ch.alpha, color, opa_tmp, &last_res_color,
-                                                        &last_res_color.ch.alpha);
-                            }
-                            else
-#endif
-                            {
-                                if(opa_tmp == LV_OPA_COVER) last_res_color = color;
-                                else last_res_color = lv_color_mix(color, dest_buf[x], opa_tmp);
-                            }
+                            if(opa_tmp == LV_OPA_COVER) last_res_color = color;
+                            else last_res_color = lv_color_mix(color, dest_buf[x], opa_tmp);
                             last_mask = *mask;
                             last_dest_color.full = dest_buf[x].full;
                         }
@@ -360,6 +371,161 @@ LV_ATTRIBUTE_FAST_MEM static void fill_normal(lv_color_t * dest_buf, const lv_ar
     }
 }
 
+#if LV_COLOR_SCREEN_TRANSP
+static inline void set_px_argb(uint8_t * buf, lv_color_t color, lv_opa_t opa)
+{
+    lv_color_t bg_color;
+    lv_color_t res_color;
+    lv_opa_t bg_opa = buf[LV_IMG_PX_SIZE_ALPHA_BYTE - 1];
+#if LV_COLOR_DEPTH == 8
+    bg_color.full = buf[0];
+    lv_color_mix_with_alpha(bg_color, bg_opa, color, opa, &res_color, &buf[1]);
+    if(buf[1] <= LV_OPA_MIN) return;
+    buf[0] = res_color.full;
+#elif LV_COLOR_DEPTH == 16
+    bg_color.full = buf[0] + (buf[1] << 8);
+    lv_color_mix_with_alpha(bg_color, bg_opa, color, opa, &res_color, &buf[2]);
+    if(buf[2] <= LV_OPA_MIN) return;
+    buf[0] = res_color.full & 0xff;
+    buf[1] = res_color.full >> 8;
+#elif LV_COLOR_DEPTH == 32
+    bg_color = *((lv_color_t *)buf);
+    lv_color_mix_with_alpha(bg_color, bg_opa, color, opa, &res_color, &buf[3]);
+    if(buf[3] <= LV_OPA_MIN) return;
+    buf[0] = res_color.ch.blue;
+    buf[1] = res_color.ch.green;
+    buf[2] = res_color.ch.red;
+#endif
+}
+
+static inline void set_px_argb_blend(uint8_t * buf, lv_color_t color, lv_opa_t opa, lv_color_t (*blend_fp)(lv_color_t,
+                                                                                                           lv_color_t, lv_opa_t))
+{
+    static lv_color_t last_dest_color;
+    static lv_color_t last_src_color;
+    static lv_color_t last_res_color;
+    static uint32_t last_opa = 0xffff; /*Set to an invalid value for first*/
+
+    lv_color_t bg_color;
+
+    /*Get the BG color*/
+#if LV_COLOR_DEPTH == 8
+    if(buf[1] <= LV_OPA_MIN) return;
+    bg_color.full = buf[0];
+#elif LV_COLOR_DEPTH == 16
+    if(buf[2] <= LV_OPA_MIN) return;
+    bg_color.full = buf[0] + (buf[1] << 8);
+#elif LV_COLOR_DEPTH == 32
+    if(buf[3] <= LV_OPA_MIN) return;
+    bg_color = *((lv_color_t *)buf);
+#endif
+
+    /*Get the result color*/
+    if(last_dest_color.full != bg_color.full || last_src_color.full != color.full || last_opa != opa) {
+        last_dest_color = bg_color;
+        last_src_color = color;
+        last_opa = opa;
+        last_res_color = blend_fp(last_src_color, last_dest_color, last_opa);
+    }
+
+    /*Set the result color*/
+#if LV_COLOR_DEPTH == 8
+    buf[0] = last_res_color.full;
+#elif LV_COLOR_DEPTH == 16
+    buf[0] = last_res_color.full & 0xff;
+    buf[1] = last_res_color.full >> 8;
+#elif LV_COLOR_DEPTH == 32
+    buf[0] = last_res_color.ch.blue;
+    buf[1] = last_res_color.ch.green;
+    buf[2] = last_res_color.ch.red;
+#endif
+
+}
+
+LV_ATTRIBUTE_FAST_MEM static void fill_argb(lv_color_t * dest_buf, const lv_area_t * dest_area,
+                                            lv_coord_t dest_stride, lv_color_t color, lv_opa_t opa, const lv_opa_t * mask, lv_coord_t mask_stride)
+{
+    uint8_t * dest_buf8 = (uint8_t *) dest_buf;
+    int32_t w = lv_area_get_width(dest_area);
+    int32_t h = lv_area_get_height(dest_area);
+
+    int32_t x;
+    int32_t y;
+
+    uint8_t ctmp[LV_IMG_PX_SIZE_ALPHA_BYTE];
+    lv_memcpy(ctmp, &color, sizeof(lv_color_t));
+    ctmp[LV_IMG_PX_SIZE_ALPHA_BYTE - 1] = opa;
+
+    /*No mask*/
+    if(mask == NULL) {
+        if(opa >= LV_OPA_MAX) {
+            for(x = 0; x < w; x++) {
+                lv_memcpy(dest_buf8, ctmp, LV_IMG_PX_SIZE_ALPHA_BYTE);
+                dest_buf8 += LV_IMG_PX_SIZE_ALPHA_BYTE;
+            }
+
+            dest_buf8 += (dest_stride - w) * LV_IMG_PX_SIZE_ALPHA_BYTE;
+
+            for(y = 1; y < h; y++) {
+                lv_memcpy(dest_buf8, (uint8_t *) dest_buf, w * LV_IMG_PX_SIZE_ALPHA_BYTE);
+                dest_buf8 += dest_stride * LV_IMG_PX_SIZE_ALPHA_BYTE;
+            }
+        }
+        /*Has opacity*/
+        else {
+            uint8_t * dest_buf8_row = dest_buf8;
+            for(y = 0; y < h; y++) {
+                for(x = 0; x < w; x++) {
+                    set_px_argb(dest_buf8, color, opa);
+                    dest_buf8 += LV_IMG_PX_SIZE_ALPHA_BYTE;
+                }
+                dest_buf8_row += dest_stride * LV_IMG_PX_SIZE_ALPHA_BYTE;
+                dest_buf8 = dest_buf8_row;
+            }
+        }
+    }
+    /*Masked*/
+    else {
+        /*Only the mask matters*/
+        if(opa >= LV_OPA_MAX) {
+            uint8_t * dest_buf8_row = dest_buf8;
+            for(y = 0; y < h; y++) {
+                for(x = 0; x < w; x++) {
+                    set_px_argb(dest_buf8, color,  *mask);
+                    mask++;
+                    dest_buf8 += LV_IMG_PX_SIZE_ALPHA_BYTE;
+                }
+                dest_buf8_row += dest_stride * LV_IMG_PX_SIZE_ALPHA_BYTE;
+                dest_buf8 = dest_buf8_row;
+            }
+        }
+        /*With opacity*/
+        else {
+            /*Buffer the result color to avoid recalculating the same color*/
+            lv_opa_t last_mask = LV_OPA_TRANSP;
+            lv_opa_t opa_tmp = LV_OPA_TRANSP;
+
+            uint8_t * dest_buf8_row = dest_buf8;
+            for(y = 0; y < h; y++) {
+                for(x = 0; x < w; x++) {
+                    if(*mask) {
+                        if(*mask != last_mask) opa_tmp = *mask == LV_OPA_COVER ? opa :
+                                                             (uint32_t)((uint32_t)(*mask) * opa) >> 8;
+
+                        set_px_argb(dest_buf8, color,  opa_tmp);
+                    }
+                    dest_buf8 += LV_IMG_PX_SIZE_ALPHA_BYTE;
+                    mask++;
+                }
+                dest_buf8_row += dest_stride * LV_IMG_PX_SIZE_ALPHA_BYTE;
+                dest_buf8 = dest_buf8_row;
+                mask += (mask_stride - w);
+            }
+        }
+    }
+}
+#endif
+
 #if LV_DRAW_COMPLEX
 static void fill_blended(lv_color_t * dest_buf, const lv_area_t * dest_area,
                          lv_coord_t dest_stride, lv_color_t color, lv_opa_t opa, const lv_opa_t * mask, lv_coord_t mask_stride,
@@ -477,10 +643,6 @@ LV_ATTRIBUTE_FAST_MEM static void map_normal(lv_color_t * dest_buf, const lv_are
     int32_t x;
     int32_t y;
 
-#if LV_COLOR_SCREEN_TRANSP
-    lv_disp_t * disp = _lv_refr_get_disp_refreshing();
-#endif
-
     /*Simple fill (maybe with opacity), no masking*/
     if(mask == NULL) {
         if(opa >= LV_OPA_MAX) {
@@ -493,16 +655,7 @@ LV_ATTRIBUTE_FAST_MEM static void map_normal(lv_color_t * dest_buf, const lv_are
         else {
             for(y = 0; y < h; y++) {
                 for(x = 0; x < w; x++) {
-#if LV_COLOR_SCREEN_TRANSP
-                    if(disp->driver->screen_transp) {
-                        lv_color_mix_with_alpha(dest_buf[x], dest_buf[x].ch.alpha, src_buf[x], opa, &dest_buf[x],
-                                                &dest_buf[x].ch.alpha);
-                    }
-                    else
-#endif
-                    {
-                        dest_buf[x] = lv_color_mix(src_buf[x], dest_buf[x], opa);
-                    }
+                    dest_buf[x] = lv_color_mix(src_buf[x], dest_buf[x], opa);
                 }
                 dest_buf += dest_stride;
                 src_buf += src_stride;
@@ -523,11 +676,7 @@ LV_ATTRIBUTE_FAST_MEM static void map_normal(lv_color_t * dest_buf, const lv_are
                 }
 #else
                 for(x = 0; x < w && ((lv_uintptr_t)mask_tmp_x & 0x3); x++) {
-#if LV_COLOR_SCREEN_TRANSP
-                    MAP_NORMAL_MASK_PX_SCR_TRANSP(x)
-#else
                     MAP_NORMAL_MASK_PX(x)
-#endif
                 }
 
                 uint32_t * mask32 = (uint32_t *)mask_tmp_x;
@@ -541,17 +690,10 @@ LV_ATTRIBUTE_FAST_MEM static void map_normal(lv_color_t * dest_buf, const lv_are
                         }
                         else {
                             mask_tmp_x = (const lv_opa_t *)mask32;
-#if LV_COLOR_SCREEN_TRANSP
-                            MAP_NORMAL_MASK_PX_SCR_TRANSP(x)
-                            MAP_NORMAL_MASK_PX_SCR_TRANSP(x + 1)
-                            MAP_NORMAL_MASK_PX_SCR_TRANSP(x + 2)
-                            MAP_NORMAL_MASK_PX_SCR_TRANSP(x + 3)
-#else
                             MAP_NORMAL_MASK_PX(x)
                             MAP_NORMAL_MASK_PX(x + 1)
                             MAP_NORMAL_MASK_PX(x + 2)
                             MAP_NORMAL_MASK_PX(x + 3)
-#endif
                         }
                     }
                     mask32++;
@@ -559,11 +701,7 @@ LV_ATTRIBUTE_FAST_MEM static void map_normal(lv_color_t * dest_buf, const lv_are
 
                 mask_tmp_x = (const lv_opa_t *)mask32;
                 for(; x < w ; x++) {
-#if LV_COLOR_SCREEN_TRANSP
-                    MAP_NORMAL_MASK_PX_SCR_TRANSP(x)
-#else
                     MAP_NORMAL_MASK_PX(x)
-#endif
                 }
 #endif
                 dest_buf += dest_stride;
@@ -577,25 +715,160 @@ LV_ATTRIBUTE_FAST_MEM static void map_normal(lv_color_t * dest_buf, const lv_are
                 for(x = 0; x < w; x++) {
                     if(mask[x]) {
                         lv_opa_t opa_tmp = mask[x] >= LV_OPA_MAX ? opa : ((opa * mask[x]) >> 8);
+                        dest_buf[x] = lv_color_mix(src_buf[x], dest_buf[x], opa_tmp);
+                    }
+                }
+                dest_buf += dest_stride;
+                src_buf += src_stride;
+                mask += mask_stride;
+            }
+        }
+    }
+}
+
+
+
 #if LV_COLOR_SCREEN_TRANSP
-                        if(disp->driver->screen_transp) {
-                            lv_color_mix_with_alpha(dest_buf[x], dest_buf[x].ch.alpha, src_buf[x], opa_tmp,
-                                                    &dest_buf[x], &dest_buf[x].ch.alpha);
+LV_ATTRIBUTE_FAST_MEM static void map_argb(lv_color_t * dest_buf, const lv_area_t * dest_area, lv_coord_t dest_stride,
+                                           const lv_color_t * src_buf, lv_coord_t src_stride, lv_opa_t opa,
+                                           const lv_opa_t * mask, lv_coord_t mask_stride, lv_blend_mode_t blend_mode)
+
+{
+    uint8_t * dest_buf8 = (uint8_t *) dest_buf;
+
+    int32_t w = lv_area_get_width(dest_area);
+    int32_t h = lv_area_get_height(dest_area);
+
+    int32_t x;
+    int32_t y;
+
+    lv_color_t (*blend_fp)(lv_color_t, lv_color_t, lv_opa_t);
+    switch(blend_mode) {
+        case LV_BLEND_MODE_ADDITIVE:
+            blend_fp = color_blend_true_color_additive;
+            break;
+        case LV_BLEND_MODE_SUBTRACTIVE:
+            blend_fp = color_blend_true_color_subtractive;
+            break;
+        case LV_BLEND_MODE_MULTIPLY:
+            blend_fp = color_blend_true_color_multiply;
+            break;
+        default:
+            blend_fp = NULL;
+    }
+
+    /*Simple fill (maybe with opacity), no masking*/
+    if(mask == NULL) {
+        if(opa >= LV_OPA_MAX) {
+            if(blend_fp == NULL && LV_COLOR_DEPTH == 32) {
+                for(y = 0; y < h; y++) {
+                    lv_memcpy(dest_buf, src_buf, w * sizeof(lv_color_t));
+                    dest_buf += dest_stride;
+                    src_buf += src_stride;
+                }
+            }
+            else {
+                uint8_t * dest_buf8_row = dest_buf8;
+                for(y = 0; y < h; y++) {
+                    if(blend_fp == NULL) {
+                        for(x = 0; x < w; x++) {
+                            set_px_argb(dest_buf8, src_buf[x], LV_OPA_COVER);
+                            dest_buf8 += LV_IMG_PX_SIZE_ALPHA_BYTE;
                         }
-                        else
-#endif
-                        {
-                            dest_buf[x] = lv_color_mix(src_buf[x], dest_buf[x], opa_tmp);
+                    }
+                    else {
+                        for(x = 0; x < w; x++) {
+                            set_px_argb_blend(dest_buf8, src_buf[x], LV_OPA_COVER, blend_fp);
+                            dest_buf8 += LV_IMG_PX_SIZE_ALPHA_BYTE;
                         }
                     }
+
+                    dest_buf8_row += dest_stride * LV_IMG_PX_SIZE_ALPHA_BYTE;
+                    dest_buf8 = dest_buf8_row;
+                    src_buf += src_stride;
                 }
-                dest_buf += dest_stride;
+            }
+        }
+        /*No mask but opacity*/
+        else {
+            uint8_t * dest_buf8_row = dest_buf8;
+            for(y = 0; y < h; y++) {
+                if(blend_fp == NULL) {
+                    for(x = 0; x < w; x++) {
+                        set_px_argb(dest_buf8, src_buf[x], opa);
+                        dest_buf8 += LV_IMG_PX_SIZE_ALPHA_BYTE;
+                    }
+                }
+                else {
+                    for(x = 0; x < w; x++) {
+                        set_px_argb_blend(dest_buf8, src_buf[x], opa, blend_fp);
+                        dest_buf8 += LV_IMG_PX_SIZE_ALPHA_BYTE;
+                    }
+                }
+
+                dest_buf8_row += dest_stride * LV_IMG_PX_SIZE_ALPHA_BYTE;
+                dest_buf8 = dest_buf8_row;
+                src_buf += src_stride;
+            }
+        }
+    }
+    /*Masked*/
+    else {
+        /*Only the mask matters*/
+        if(opa > LV_OPA_MAX) {
+            uint8_t * dest_buf8_row = dest_buf8;
+            for(y = 0; y < h; y++) {
+                if(blend_fp == NULL) {
+                    for(x = 0; x < w; x++) {
+                        set_px_argb(dest_buf8, src_buf[x], mask[x]);
+                        dest_buf8 += LV_IMG_PX_SIZE_ALPHA_BYTE;
+                    }
+                }
+                else {
+                    for(x = 0; x < w; x++) {
+                        set_px_argb_blend(dest_buf8, src_buf[x], mask[x], blend_fp);
+                        dest_buf8 += LV_IMG_PX_SIZE_ALPHA_BYTE;
+                    }
+                }
+                dest_buf8_row += dest_stride * LV_IMG_PX_SIZE_ALPHA_BYTE;
+                dest_buf8 = dest_buf8_row;
+                src_buf += src_stride;
+                mask += mask_stride;
+            }
+        }
+        /*Handle opa and mask values too*/
+        else {
+            uint8_t * dest_buf8_row = dest_buf8;
+            for(y = 0; y < h; y++) {
+                if(blend_fp == NULL) {
+                    for(x = 0; x < w; x++) {
+                        if(mask[x]) {
+                            lv_opa_t opa_tmp = mask[x] >= LV_OPA_MAX ? opa : ((opa * mask[x]) >> 8);
+                            set_px_argb(dest_buf8, src_buf[x], opa_tmp);
+                        }
+                        dest_buf8 += LV_IMG_PX_SIZE_ALPHA_BYTE;
+                    }
+                }
+                else {
+                    for(x = 0; x < w; x++) {
+                        if(mask[x]) {
+                            lv_opa_t opa_tmp = mask[x] >= LV_OPA_MAX ? opa : ((opa * mask[x]) >> 8);
+                            set_px_argb_blend(dest_buf8, src_buf[x], opa_tmp, blend_fp);
+                        }
+                        dest_buf8 += LV_IMG_PX_SIZE_ALPHA_BYTE;
+                    }
+                }
+                dest_buf8_row += dest_stride * LV_IMG_PX_SIZE_ALPHA_BYTE;
+                dest_buf8 = dest_buf8_row;
                 src_buf += src_stride;
                 mask += mask_stride;
             }
         }
     }
 }
+#endif
+
+
 #if LV_DRAW_COMPLEX
 static void map_blended(lv_color_t * dest_buf, const lv_area_t * dest_area, lv_coord_t dest_stride,
                         const lv_color_t * src_buf, lv_coord_t src_stride, lv_opa_t opa,
@@ -624,13 +897,21 @@ static void map_blended(lv_color_t * dest_buf, const lv_area_t * dest_area, lv_c
             return;
     }
 
+    lv_color_t last_dest_color;
+    lv_color_t last_src_color;
     /*Simple fill (maybe with opacity), no masking*/
     if(mask == NULL) {
-        /*The map will be indexed from `draw_area->x1` so compensate it.*/
-
+        last_dest_color = dest_buf[0];
+        last_src_color = src_buf[0];
+        lv_color_t last_res_color = blend_fp(last_src_color, last_dest_color, opa);
         for(y = 0; y < h; y++) {
             for(x = 0; x < w; x++) {
-                dest_buf[x] = blend_fp(src_buf[x], dest_buf[x], opa);
+                if(last_src_color.full != src_buf[x].full || last_dest_color.full != dest_buf[x].full) {
+                    last_dest_color = dest_buf[x];
+                    last_src_color = src_buf[x];
+                    last_res_color = blend_fp(last_src_color, last_dest_color, opa);
+                }
+                dest_buf[x] = last_res_color;
             }
             dest_buf += dest_stride;
             src_buf += src_stride;
@@ -638,11 +919,21 @@ static void map_blended(lv_color_t * dest_buf, const lv_area_t * dest_area, lv_c
     }
     /*Masked*/
     else {
+        last_dest_color = dest_buf[0];
+        last_src_color = src_buf[0];
+        lv_opa_t last_opa = mask[0] >= LV_OPA_MAX ? opa : ((opa * mask[0]) >> 8);
+        lv_color_t last_res_color = blend_fp(last_src_color, last_dest_color, last_opa);
         for(y = 0; y < h; y++) {
             for(x = 0; x < w; x++) {
                 if(mask[x] == 0) continue;
                 lv_opa_t opa_tmp = mask[x] >= LV_OPA_MAX ? opa : ((opa * mask[x]) >> 8);
-                dest_buf[x] = blend_fp(src_buf[x], dest_buf[x], opa_tmp);
+                if(last_src_color.full != src_buf[x].full || last_dest_color.full != dest_buf[x].full || last_opa != opa_tmp) {
+                    last_dest_color = dest_buf[x];
+                    last_src_color = src_buf[x];
+                    last_opa = opa_tmp;
+                    last_res_color = blend_fp(last_src_color, last_dest_color, last_opa);
+                }
+                dest_buf[x] = last_res_color;
             }
             dest_buf += dest_stride;
             src_buf += src_stride;
index c5b3207..4e46632 100644 (file)
     #define GRAD_CONV(t, x) t = x
 #endif
 
+#undef ALIGN
 #if defined(LV_ARCH_64)
     #define ALIGN(X)    (((X) + 7) & ~7)
 #else
     #define ALIGN(X)    (((X) + 3) & ~3)
 #endif
 
-#define MAX_WIN_RES     1024 /**TODO: Find a way to get this information: max(horz_res, vert_res)*/
-
-#if _DITHER_GRADIENT
-    #if LV_DITHER_ERROR_DIFFUSION == 1
-        #define LV_DEFAULT_GRAD_CACHE_SIZE  sizeof(lv_gradient_cache_t) + MAX_WIN_RES * sizeof(lv_grad_color_t) + MAX_WIN_RES * sizeof(lv_color_t) + MAX_WIN_RES * sizeof(lv_scolor24_t)
-    #else
-        #define LV_DEFAULT_GRAD_CACHE_SIZE  sizeof(lv_gradient_cache_t) + MAX_WIN_RES * sizeof(lv_grad_color_t) + MAX_WIN_RES * sizeof(lv_color_t)
-    #endif /* LV_DITHER_ERROR_DIFFUSION */
-#else
-    #define LV_DEFAULT_GRAD_CACHE_SIZE  sizeof(lv_gradient_cache_t) + MAX_WIN_RES * sizeof(lv_grad_color_t)
-#endif /* _DITHER_GRADIENT */
+#if LV_GRAD_CACHE_DEF_SIZE != 0 && LV_GRAD_CACHE_DEF_SIZE < 256
+    #error "LV_GRAD_CACHE_DEF_SIZE is too small"
+#endif
 
 /**********************
  *  STATIC PROTOTYPES
@@ -94,8 +87,6 @@ static lv_grad_t * next_in_cache(lv_grad_t * item)
 
     if(item == NULL)
         return (lv_grad_t *)LV_GC_ROOT(_lv_grad_cache_mem);
-    if(item == NULL)
-        return NULL;
 
     size_t s = get_cache_item_size(item);
     /*Compute the size for this cache item*/
@@ -334,6 +325,8 @@ LV_ATTRIBUTE_FAST_MEM lv_grad_color_t lv_gradient_calculate(const lv_grad_dsc_t
         }
     }
 
+    LV_ASSERT(d != 0);
+
     /*Then interpolate*/
     frac -= min;
     lv_opa_t mix = (frac * 255) / d;
index 76c3084..9578bc7 100644 (file)
@@ -17,6 +17,7 @@
 /*********************
  *      DEFINES
  *********************/
+#define MAX_BUF_SIZE (uint32_t) lv_disp_get_hor_res(_lv_refr_get_disp_refreshing())
 
 /**********************
  *      TYPEDEFS
@@ -25,6 +26,8 @@
 /**********************
  *  STATIC PROTOTYPES
  **********************/
+static void convert_cb(const lv_area_t * dest_area, const void * src_buf, lv_coord_t src_w, lv_coord_t src_h,
+                       lv_coord_t src_stride, const lv_draw_img_dsc_t * draw_dsc, lv_img_cf_t cf, lv_color_t * cbuf, lv_opa_t * abuf);
 
 /**********************
  *  STATIC VARIABLES
@@ -38,6 +41,7 @@
  *   GLOBAL FUNCTIONS
  **********************/
 
+
 LV_ATTRIBUTE_FAST_MEM void lv_draw_sw_img_decoded(struct _lv_draw_ctx_t * draw_ctx, const lv_draw_img_dsc_t * draw_dsc,
                                                   const lv_area_t * coords, const uint8_t * src_buf, lv_img_cf_t cf)
 {
@@ -46,276 +50,248 @@ LV_ATTRIBUTE_FAST_MEM void lv_draw_sw_img_decoded(struct _lv_draw_ctx_t * draw_c
     lv_area_copy(&draw_area, draw_ctx->clip_area);
 
     bool mask_any = lv_draw_mask_is_any(&draw_area);
+    bool transform = draw_dsc->angle != 0 || draw_dsc->zoom != LV_IMG_ZOOM_NONE ? true : false;
 
+    lv_area_t blend_area;
     lv_draw_sw_blend_dsc_t blend_dsc;
-    lv_memset_00(&blend_dsc, sizeof(blend_dsc));
+
+    lv_memset_00(&blend_dsc, sizeof(lv_draw_sw_blend_dsc_t));
     blend_dsc.opa = draw_dsc->opa;
     blend_dsc.blend_mode = draw_dsc->blend_mode;
+    blend_dsc.blend_area = &blend_area;
 
     /*The simplest case just copy the pixels into the draw_buf*/
-    if(!mask_any && draw_dsc->angle == 0 && draw_dsc->zoom == LV_IMG_ZOOM_NONE &&
-       cf == LV_IMG_CF_TRUE_COLOR && draw_dsc->recolor_opa == LV_OPA_TRANSP) {
+    if(!mask_any && !transform && cf == LV_IMG_CF_TRUE_COLOR && draw_dsc->recolor_opa == LV_OPA_TRANSP) {
+        blend_dsc.src_buf = (const lv_color_t *)src_buf;
+
+        blend_dsc.blend_area = coords;
+        lv_draw_sw_blend(draw_ctx, &blend_dsc);
+    }
+    else if(!mask_any && !transform && cf == LV_IMG_CF_ALPHA_8BIT) {
+        lv_area_t clipped_coords;
+        if(!_lv_area_intersect(&clipped_coords, coords, draw_ctx->clip_area)) return;
+
+        blend_dsc.mask_buf = (lv_opa_t *)src_buf;
+        blend_dsc.mask_area = coords;
+        blend_dsc.src_buf = NULL;
+        blend_dsc.color = draw_dsc->recolor;
+        blend_dsc.mask_res = LV_DRAW_MASK_RES_CHANGED;
+
         blend_dsc.blend_area = coords;
+        lv_draw_sw_blend(draw_ctx, &blend_dsc);
+    }
+#if LV_COLOR_DEPTH == 16
+    else if(!mask_any && !transform && cf == LV_IMG_CF_RGB565A8 && draw_dsc->recolor_opa == LV_OPA_TRANSP) {
+        lv_coord_t src_w = lv_area_get_width(coords);
+        lv_coord_t src_h = lv_area_get_height(coords);
         blend_dsc.src_buf = (const lv_color_t *)src_buf;
+        blend_dsc.mask_buf = (lv_opa_t *)src_buf;
+        blend_dsc.mask_buf += sizeof(lv_color_t) * src_w * src_h;
+        blend_dsc.blend_area = coords;
+        blend_dsc.mask_area = coords;
+        blend_dsc.mask_res = LV_DRAW_MASK_RES_CHANGED;
         lv_draw_sw_blend(draw_ctx, &blend_dsc);
     }
+#endif
     /*In the other cases every pixel need to be checked one-by-one*/
     else {
-        //#if LV_DRAW_COMPLEX
-        /*The pixel size in byte is different if an alpha byte is added too*/
-        uint8_t px_size_byte = cf == LV_IMG_CF_TRUE_COLOR_ALPHA ? LV_IMG_PX_SIZE_ALPHA_BYTE : sizeof(lv_color_t);
-
-        /*Go to the first displayed pixel of the map*/
-        int32_t src_stride = lv_area_get_width(coords);
-
-        lv_color_t c;
-        lv_color_t chroma_keyed_color = LV_COLOR_CHROMA_KEY;
-        uint32_t px_i = 0;
-
-        const uint8_t * map_px;
-
-        lv_coord_t draw_area_h = lv_area_get_height(&draw_area);
-        lv_coord_t draw_area_w = lv_area_get_width(&draw_area);
-
-        lv_area_t blend_area;
-        blend_area.x1 = draw_area.x1;
-        blend_area.x2 = draw_area.x2;
-        blend_area.y1 = draw_area.y1;
-        blend_area.y2 = blend_area.y1;
-        blend_dsc.blend_area = &blend_area;
-
-        bool transform = draw_dsc->angle != 0 || draw_dsc->zoom != LV_IMG_ZOOM_NONE ? true : false;
-        /*Simple ARGB image. Handle it as special case because it's very common*/
-        if(!mask_any && !transform && cf == LV_IMG_CF_TRUE_COLOR_ALPHA && draw_dsc->recolor_opa == LV_OPA_TRANSP) {
-            uint32_t hor_res = (uint32_t) lv_disp_get_hor_res(_lv_refr_get_disp_refreshing());
-            uint32_t mask_buf_size = lv_area_get_size(&draw_area) > (uint32_t) hor_res ? hor_res : lv_area_get_size(&draw_area);
-            lv_color_t * src_buf_rgb = lv_mem_buf_get(mask_buf_size * sizeof(lv_color_t));
-            lv_opa_t * mask_buf = lv_mem_buf_get(mask_buf_size);
-            blend_dsc.mask_buf = mask_buf;
-            blend_dsc.mask_area = &blend_area;
-            blend_dsc.mask_res = LV_DRAW_MASK_RES_CHANGED;
-            blend_dsc.src_buf = src_buf_rgb;
-
-            const uint8_t * src_buf_tmp = src_buf;
-            src_buf_tmp += src_stride * (draw_area.y1 - coords->y1) * px_size_byte;
-            src_buf_tmp += (draw_area.x1 - coords->x1) * px_size_byte;
-
-            int32_t x;
-            int32_t y;
-            for(y = 0; y < draw_area_h; y++) {
-                map_px = src_buf_tmp;
-                for(x = 0; x < draw_area_w; x++, map_px += px_size_byte, px_i++) {
-                    lv_opa_t px_opa = map_px[LV_IMG_PX_SIZE_ALPHA_BYTE - 1];
-                    mask_buf[px_i] = px_opa;
-                    if(px_opa) {
-#if LV_COLOR_DEPTH == 8 || LV_COLOR_DEPTH == 1
-                        src_buf_rgb[px_i].full = map_px[0];
-#elif LV_COLOR_DEPTH == 16
-                        src_buf_rgb[px_i].full = map_px[0] + (map_px[1] << 8);
-#elif LV_COLOR_DEPTH == 32
-                        src_buf_rgb[px_i].full = *((uint32_t *)map_px);
-#endif
-                    }
-#if LV_COLOR_DEPTH == 32
-                    src_buf_rgb[px_i].ch.alpha = 0xFF;
-#endif
-                }
-
-                src_buf_tmp += src_stride * px_size_byte;
-                if(px_i + draw_area_w <= mask_buf_size) {
-                    blend_area.y2 ++;
-                }
-                else {
-                    lv_draw_sw_blend(draw_ctx, &blend_dsc);
-
-                    blend_area.y1 = blend_area.y2 + 1;
-                    blend_area.y2 = blend_area.y1;
-
-                    px_i = 0;
-                }
-            }
-            /*Flush the last part*/
-            if(blend_area.y1 != blend_area.y2) {
-                blend_area.y2--;
-                lv_draw_sw_blend(draw_ctx, &blend_dsc);
-            }
-
-            lv_mem_buf_release(mask_buf);
-            lv_mem_buf_release(src_buf_rgb);
+        blend_area.x1 = draw_ctx->clip_area->x1;
+        blend_area.x2 = draw_ctx->clip_area->x2;
+        blend_area.y1 = draw_ctx->clip_area->y1;
+        blend_area.y2 = draw_ctx->clip_area->y2;
+
+        lv_coord_t src_w = lv_area_get_width(coords);
+        lv_coord_t src_h = lv_area_get_height(coords);
+        lv_coord_t blend_h = lv_area_get_height(&blend_area);
+        lv_coord_t blend_w = lv_area_get_width(&blend_area);
+
+        uint32_t max_buf_size = MAX_BUF_SIZE;
+        uint32_t blend_size = lv_area_get_size(&blend_area);
+        uint32_t buf_h;
+        uint32_t buf_w = blend_w;
+        if(blend_size <= max_buf_size) {
+            buf_h = blend_h;
         }
-        /*Most complicated case: transform or other mask or chroma keyed*/
         else {
-            /*Build the image and a mask line-by-line*/
-            uint32_t hor_res = (uint32_t) lv_disp_get_hor_res(_lv_refr_get_disp_refreshing());
-            uint32_t mask_buf_size = lv_area_get_size(&draw_area) > hor_res ? hor_res : lv_area_get_size(&draw_area);
-            lv_color_t * src_buf_rgb = lv_mem_buf_get(mask_buf_size * sizeof(lv_color_t));
-            lv_opa_t * mask_buf = lv_mem_buf_get(mask_buf_size);
-            blend_dsc.mask_buf = mask_buf;
-            blend_dsc.mask_area = &blend_area;
-            blend_dsc.mask_res = LV_DRAW_MASK_RES_CHANGED;
-            blend_dsc.src_buf = src_buf_rgb;
-
-            const uint8_t * src_buf_tmp = NULL;
-#if LV_DRAW_COMPLEX
-            lv_img_transform_dsc_t trans_dsc;
-            lv_memset_00(&trans_dsc, sizeof(lv_img_transform_dsc_t));
+            /*Round to full lines*/
+            buf_h = max_buf_size / blend_w;
+        }
+
+        /*Create buffers and masks*/
+        uint32_t buf_size = buf_w * buf_h;
+
+        lv_color_t * rgb_buf = lv_mem_buf_get(buf_size * sizeof(lv_color_t));
+        lv_opa_t * mask_buf = lv_mem_buf_get(buf_size);
+        blend_dsc.mask_buf = mask_buf;
+        blend_dsc.mask_area = &blend_area;
+        blend_dsc.mask_res = LV_DRAW_MASK_RES_CHANGED;
+        blend_dsc.src_buf = rgb_buf;
+        lv_coord_t y_last = blend_area.y2;
+        blend_area.y2 = blend_area.y1 + buf_h - 1;
+
+        lv_draw_mask_res_t mask_res_def = (cf != LV_IMG_CF_TRUE_COLOR || draw_dsc->angle ||
+                                           draw_dsc->zoom != LV_IMG_ZOOM_NONE) ?
+                                          LV_DRAW_MASK_RES_CHANGED : LV_DRAW_MASK_RES_FULL_COVER;
+        blend_dsc.mask_res = mask_res_def;
+
+        while(blend_area.y1 <= y_last) {
+            /*Apply transformations if any or separate the channels*/
+            lv_area_t transform_area;
+            lv_area_copy(&transform_area, &blend_area);
+            lv_area_move(&transform_area, -coords->x1, -coords->y1);
             if(transform) {
-                trans_dsc.cfg.angle = draw_dsc->angle;
-                trans_dsc.cfg.zoom = draw_dsc->zoom;
-                trans_dsc.cfg.src = src_buf;
-                trans_dsc.cfg.src_w = src_stride;
-                trans_dsc.cfg.src_h = lv_area_get_height(coords);
-                trans_dsc.cfg.cf = cf;
-                trans_dsc.cfg.pivot_x = draw_dsc->pivot.x;
-                trans_dsc.cfg.pivot_y = draw_dsc->pivot.y;
-                trans_dsc.cfg.color = draw_dsc->recolor;
-                trans_dsc.cfg.antialias = draw_dsc->antialias;
-
-                _lv_img_buf_transform_init(&trans_dsc);
+                lv_draw_transform(draw_ctx, &transform_area, src_buf, src_w, src_h, src_w,
+                                  draw_dsc, cf, rgb_buf, mask_buf);
             }
             else {
-                src_buf_tmp = src_buf;
-                src_buf_tmp += src_stride * (draw_area.y1 - coords->y1) * px_size_byte;
-                src_buf_tmp += (draw_area.x1 - coords->x1) * px_size_byte;
-            }
-#endif
-            uint16_t recolor_premult[3] = {0};
-            lv_opa_t recolor_opa_inv = 255 - draw_dsc->recolor_opa;
-            if(draw_dsc->recolor_opa != 0) {
-                lv_color_premult(draw_dsc->recolor, draw_dsc->recolor_opa, recolor_premult);
+                convert_cb(&transform_area, src_buf, src_w, src_h, src_w, draw_dsc, cf, rgb_buf, mask_buf);
             }
 
-            blend_dsc.mask_res = (cf != LV_IMG_CF_TRUE_COLOR || draw_dsc->angle ||
-                                  draw_dsc->zoom != LV_IMG_ZOOM_NONE) ? LV_DRAW_MASK_RES_CHANGED : LV_DRAW_MASK_RES_FULL_COVER;
-
-            /*Prepare the `mask_buf`if there are other masks*/
-            if(mask_any) {
-                lv_memset_ff(mask_buf, mask_buf_size);
-            }
-
-            int32_t x;
-            int32_t y;
-#if LV_DRAW_COMPLEX
-            int32_t rot_y = blend_area.y1 - coords->y1;
-#endif
-            for(y = 0; y < draw_area_h; y++) {
-                map_px = src_buf_tmp;
-#if LV_DRAW_COMPLEX
-                uint32_t px_i_start = px_i;
-                int32_t rot_x = blend_area.x1 - coords->x1;
-#endif
-
-                for(x = 0; x < draw_area_w; x++, px_i++, map_px += px_size_byte) {
-
-#if LV_DRAW_COMPLEX
-                    if(transform) {
-
-                        /*Transform*/
-                        bool ret;
-                        ret = _lv_img_buf_transform(&trans_dsc, rot_x + x, rot_y + y);
-                        if(ret == false) {
-                            mask_buf[px_i] = LV_OPA_TRANSP;
-                            continue;
-                        }
-                        else {
-                            mask_buf[px_i] = trans_dsc.res.opa;
-                            c.full = trans_dsc.res.color.full;
-                        }
-                    }
-                    /*No transform*/
-                    else
-#endif
-                    {
-                        if(cf == LV_IMG_CF_TRUE_COLOR_ALPHA) {
-                            lv_opa_t px_opa = map_px[LV_IMG_PX_SIZE_ALPHA_BYTE - 1];
-                            mask_buf[px_i] = px_opa;
-                            if(px_opa == 0) {
-#if  LV_COLOR_DEPTH == 32
-                                src_buf_rgb[px_i].full = 0;
-#endif
-                                continue;
-                            }
-                        }
-                        else {
-                            mask_buf[px_i] = 0xFF;
-                        }
-
-#if LV_COLOR_DEPTH == 1
-                        c.full = map_px[0];
-#elif LV_COLOR_DEPTH == 8
-                        c.full = map_px[0];
-#elif LV_COLOR_DEPTH == 16
-                        c.full = map_px[0] + (map_px[1] << 8);
-#elif LV_COLOR_DEPTH == 32
-                        c.full = *((uint32_t *)map_px);
-                        c.ch.alpha = 0xFF;
-#endif
-                        if(cf == LV_IMG_CF_TRUE_COLOR_CHROMA_KEYED) {
-                            if(c.full == chroma_keyed_color.full) {
-                                mask_buf[px_i] = LV_OPA_TRANSP;
-#if  LV_COLOR_DEPTH == 32
-                                src_buf_rgb[px_i].full = 0;
-#endif
-                                continue;
-                            }
-                        }
-
-                    }
-                    if(draw_dsc->recolor_opa != 0) {
-                        c = lv_color_mix_premult(recolor_premult, c, recolor_opa_inv);
-                    }
-
-                    src_buf_rgb[px_i].full = c.full;
+            /*Apply recolor*/
+            if(draw_dsc->recolor_opa > LV_OPA_MIN) {
+                uint16_t premult_v[3];
+                lv_opa_t recolor_opa = draw_dsc->recolor_opa;
+                lv_color_t recolor = draw_dsc->recolor;
+                lv_color_premult(recolor, recolor_opa, premult_v);
+                recolor_opa = 255 - recolor_opa;
+                uint32_t i;
+                for(i = 0; i < buf_size; i++) {
+                    rgb_buf[i] = lv_color_mix_premult(premult_v, rgb_buf[i], recolor_opa);
                 }
+            }
 #if LV_DRAW_COMPLEX
-                /*Apply the masks if any*/
-                if(mask_any) {
-                    lv_draw_mask_res_t mask_res_sub;
-                    mask_res_sub = lv_draw_mask_apply(mask_buf + px_i_start, blend_area.x1,
-                                                      y + draw_area.y1, draw_area_w);
-                    if(mask_res_sub == LV_DRAW_MASK_RES_TRANSP) {
-                        lv_memset_00(mask_buf + px_i_start, draw_area_w);
+            /*Apply the masks if any*/
+            if(mask_any) {
+                lv_coord_t y;
+                lv_opa_t * mask_buf_tmp = mask_buf;
+                for(y = blend_area.y1; y <= blend_area.y2; y++) {
+                    lv_draw_mask_res_t mask_res_line;
+                    mask_res_line = lv_draw_mask_apply(mask_buf_tmp, blend_area.x1, y, blend_w);
+
+                    if(mask_res_line == LV_DRAW_MASK_RES_TRANSP) {
+                        lv_memset_00(mask_buf_tmp, blend_w);
                         blend_dsc.mask_res = LV_DRAW_MASK_RES_CHANGED;
                     }
-                    else if(mask_res_sub == LV_DRAW_MASK_RES_CHANGED) {
+                    else if(mask_res_line == LV_DRAW_MASK_RES_CHANGED) {
                         blend_dsc.mask_res = LV_DRAW_MASK_RES_CHANGED;
                     }
+                    mask_buf_tmp += blend_w;
                 }
+            }
 #endif
 
-                src_buf_tmp += src_stride * px_size_byte;
-                if(px_i + draw_area_w < mask_buf_size) {
-                    blend_area.y2 ++;
-                }
-                else {
-                    lv_draw_sw_blend(draw_ctx, &blend_dsc);
+            /*Blend*/
+            lv_draw_sw_blend(draw_ctx, &blend_dsc);
 
-                    blend_area.y1 = blend_area.y2 + 1;
-                    blend_area.y2 = blend_area.y1;
+            /*Go the the next lines*/
+            blend_area.y1 = blend_area.y2 + 1;
+            blend_area.y2 = blend_area.y1 + buf_h - 1;
+            if(blend_area.y2 > y_last) blend_area.y2 = y_last;
+        }
 
-                    px_i = 0;
-                    blend_dsc.mask_res = (cf != LV_IMG_CF_TRUE_COLOR || draw_dsc->angle ||
-                                          draw_dsc->zoom != LV_IMG_ZOOM_NONE) ? LV_DRAW_MASK_RES_CHANGED : LV_DRAW_MASK_RES_FULL_COVER;
+        lv_mem_buf_release(mask_buf);
+        lv_mem_buf_release(rgb_buf);
+    }
+}
 
-                    /*Prepare the `mask_buf`if there are other masks*/
-                    if(mask_any) {
-                        lv_memset_ff(mask_buf, mask_buf_size);
-                    }
-                }
+/**********************
+ *   STATIC FUNCTIONS
+ **********************/
+
+/* Separate the image channels to RGB and Alpha to match LV_COLOR_DEPTH settings*/
+static void convert_cb(const lv_area_t * dest_area, const void * src_buf, lv_coord_t src_w, lv_coord_t src_h,
+                       lv_coord_t src_stride, const lv_draw_img_dsc_t * draw_dsc, lv_img_cf_t cf, lv_color_t * cbuf, lv_opa_t * abuf)
+{
+    LV_UNUSED(draw_dsc);
+    LV_UNUSED(src_h);
+    LV_UNUSED(src_w);
+
+    const uint8_t * src_tmp8 = (const uint8_t *)src_buf;
+    lv_coord_t y;
+    lv_coord_t x;
+
+    if(cf == LV_IMG_CF_TRUE_COLOR || cf == LV_IMG_CF_TRUE_COLOR_CHROMA_KEYED) {
+        uint32_t px_cnt = lv_area_get_size(dest_area);
+        lv_memset_ff(abuf, px_cnt);
+
+        src_tmp8 += (src_stride * dest_area->y1 * sizeof(lv_color_t)) + dest_area->x1 * sizeof(lv_color_t);
+        uint32_t dest_w = lv_area_get_width(dest_area);
+        uint32_t dest_w_byte = dest_w * sizeof(lv_color_t);
+
+        lv_coord_t src_stride_byte = src_stride * sizeof(lv_color_t);
+        lv_color_t * cbuf_tmp = cbuf;
+        for(y = dest_area->y1; y <= dest_area->y2; y++) {
+            lv_memcpy(cbuf_tmp, src_tmp8, dest_w_byte);
+            src_tmp8 += src_stride_byte;
+            cbuf_tmp += dest_w;
+        }
+
+        /*Make "holes" for with Chroma keying*/
+        if(cf == LV_IMG_CF_TRUE_COLOR_CHROMA_KEYED) {
+            uint32_t i;
+            lv_color_t chk = LV_COLOR_CHROMA_KEY;
+#if LV_COLOR_DEPTH == 8 || LV_COLOR_DEPTH == 1
+            uint8_t * cbuf_uint = (uint8_t *)cbuf;
+            uint8_t chk_v = chk.full;
+#elif LV_COLOR_DEPTH == 16
+            uint16_t * cbuf_uint = (uint16_t *)cbuf;
+            uint16_t chk_v = chk.full;
+#elif LV_COLOR_DEPTH == 32
+            uint32_t * cbuf_uint = (uint32_t *)cbuf;
+            uint32_t chk_v = chk.full;
+#endif
+            for(i = 0; i < px_cnt; i++) {
+                if(chk_v == cbuf_uint[i]) abuf[i] = 0x00;
             }
+        }
+    }
+    else if(cf == LV_IMG_CF_TRUE_COLOR_ALPHA) {
+        src_tmp8 += (src_stride * dest_area->y1 * LV_IMG_PX_SIZE_ALPHA_BYTE) + dest_area->x1 * LV_IMG_PX_SIZE_ALPHA_BYTE;
+
+        lv_coord_t src_new_line_step_px = (src_stride - lv_area_get_width(dest_area));
+        lv_coord_t src_new_line_step_byte = src_new_line_step_px * LV_IMG_PX_SIZE_ALPHA_BYTE;
+
+        lv_coord_t dest_h = lv_area_get_height(dest_area);
+        lv_coord_t dest_w = lv_area_get_width(dest_area);
+        for(y = 0; y < dest_h; y++) {
+            for(x = 0; x < dest_w; x++) {
+                abuf[x] = src_tmp8[LV_IMG_PX_SIZE_ALPHA_BYTE - 1];
+#if LV_COLOR_DEPTH == 8 || LV_COLOR_DEPTH == 1
+                cbuf[x].full = *src_tmp8;
+#elif LV_COLOR_DEPTH == 16
+                cbuf[x].full = *src_tmp8 + ((*(src_tmp8 + 1)) << 8);
+#elif LV_COLOR_DEPTH == 32
+                cbuf[x] = *((lv_color_t *) src_tmp8);
+                cbuf[x].ch.alpha = 0xff;
+#endif
+                src_tmp8 += LV_IMG_PX_SIZE_ALPHA_BYTE;
 
-            /*Flush the last part*/
-            if(blend_area.y1 != blend_area.y2) {
-                blend_area.y2--;
-                lv_draw_sw_blend(draw_ctx, &blend_dsc);
             }
+            cbuf += dest_w;
+            abuf += dest_w;
+            src_tmp8 += src_new_line_step_byte;
+        }
+    }
+    else if(cf == LV_IMG_CF_RGB565A8) {
+        src_tmp8 += (src_stride * dest_area->y1 * sizeof(lv_color_t)) + dest_area->x1 * sizeof(lv_color_t);
+
+        lv_coord_t src_stride_byte = src_stride * sizeof(lv_color_t);
 
-            lv_mem_buf_release(mask_buf);
-            lv_mem_buf_release(src_buf_rgb);
+        lv_coord_t dest_h = lv_area_get_height(dest_area);
+        lv_coord_t dest_w = lv_area_get_width(dest_area);
+        for(y = 0; y < dest_h; y++) {
+            lv_memcpy(cbuf, src_tmp8, dest_w * sizeof(lv_color_t));
+            cbuf += dest_w;
+            src_tmp8 += src_stride_byte;
+        }
+
+        src_tmp8 = (const uint8_t *)src_buf;
+        src_tmp8 += sizeof(lv_color_t) * src_w * src_h;
+        src_tmp8 += src_stride * dest_area->y1 + dest_area->x1;
+        for(y = 0; y < dest_h; y++) {
+            lv_memcpy(abuf, src_tmp8, dest_w);
+            abuf += dest_w;
+            src_tmp8 += src_stride;
         }
     }
 }
-
-/**********************
- *   STATIC FUNCTIONS
- **********************/
index e7578cf..7caa749 100644 (file)
@@ -97,13 +97,30 @@ void lv_draw_sw_letter(lv_draw_ctx_t * draw_ctx, const lv_draw_label_dsc_t * dsc
 {
     lv_font_glyph_dsc_t g;
     bool g_ret = lv_font_get_glyph_dsc(dsc->font, &g, letter, '\0');
-    if(g_ret == false)  {
+    if(g_ret == false) {
         /*Add warning if the dsc is not found
          *but do not print warning for non printable ASCII chars (e.g. '\n')*/
         if(letter >= 0x20 &&
            letter != 0xf8ff && /*LV_SYMBOL_DUMMY*/
            letter != 0x200c) { /*ZERO WIDTH NON-JOINER*/
-            LV_LOG_WARN("lv_draw_letter: glyph dsc. not found for U+%X", (unsigned int)letter);
+            LV_LOG_WARN("lv_draw_letter: glyph dsc. not found for U+%" PRIX32, letter);
+
+#if LV_USE_FONT_PLACEHOLDER
+            /* draw placeholder */
+            lv_area_t glyph_coords;
+            lv_draw_rect_dsc_t glyph_dsc;
+            lv_coord_t begin_x = pos_p->x + g.ofs_x;
+            lv_coord_t begin_y = pos_p->y + g.ofs_y;
+            lv_area_set(&glyph_coords, begin_x, begin_y, begin_x + g.box_w, begin_y + g.box_h);
+            lv_draw_rect_dsc_init(&glyph_dsc);
+            glyph_dsc.bg_opa = LV_OPA_MIN;
+            glyph_dsc.outline_opa = LV_OPA_MIN;
+            glyph_dsc.shadow_opa = LV_OPA_MIN;
+            glyph_dsc.bg_img_opa = LV_OPA_MIN;
+            glyph_dsc.border_color = dsc->color;
+            glyph_dsc.border_width = 1;
+            draw_ctx->draw_rect(draw_ctx, &glyph_dsc, &glyph_coords);
+#endif
         }
         return;
     }
@@ -157,6 +174,24 @@ LV_ATTRIBUTE_FAST_MEM static void draw_letter_normal(lv_draw_ctx_t * draw_ctx, c
     uint32_t shades;
     if(bpp == 3) bpp = 4;
 
+#if LV_USE_IMGFONT
+    if(bpp == LV_IMGFONT_BPP) { //is imgfont
+        lv_area_t fill_area;
+        fill_area.x1 = pos->x;
+        fill_area.y1 = pos->y;
+        fill_area.x2 = pos->x + g->box_w - 1;
+        fill_area.y2 = pos->y + g->box_h - 1;
+        lv_draw_img_dsc_t img_dsc;
+        lv_draw_img_dsc_init(&img_dsc);
+        img_dsc.angle = 0;
+        img_dsc.zoom = LV_IMG_ZOOM_NONE;
+        img_dsc.opa = dsc->opa;
+        img_dsc.blend_mode = dsc->blend_mode;
+        lv_draw_img(draw_ctx, &img_dsc, &fill_area, map_p);
+        return;
+    }
+#endif
+
     switch(bpp) {
         case 1:
             bpp_opa_table_p = _lv_bpp1_opa_table;
@@ -408,7 +443,7 @@ static void draw_letter_subpx(lv_draw_ctx_t * draw_ctx, const lv_draw_label_dsc_
 #endif
 
     lv_draw_sw_blend_dsc_t blend_dsc;
-    lv_memset_00(&blend_dsc, sizeof(&blend_dsc));
+    lv_memset_00(&blend_dsc, sizeof(blend_dsc));
     blend_dsc.blend_area = &map_area;
     blend_dsc.mask_area = &map_area;
     blend_dsc.src_buf = color_buf;
@@ -454,8 +489,8 @@ static void draw_letter_subpx(lv_draw_ctx_t * draw_ctx, const lv_draw_label_dsc_
 #endif
 
 #if LV_FONT_SUBPX_BGR
-                res_color.ch.blue = (uint32_t)((uint32_t)txt_rgb[0] * font_rgb[0] + (bg_rgb[0] * (255 - font_rgb[0]))) >> 8;
-                res_color.ch.red = (uint32_t)((uint32_t)txt_rgb[2] * font_rgb[2] + (bg_rgb[2] * (255 - font_rgb[2]))) >> 8;
+                res_color.ch.red = (uint32_t)((uint16_t)txt_rgb[0] * font_rgb[2] + (bg_rgb[0] * (255 - font_rgb[2]))) >> 8;
+                res_color.ch.blue = (uint32_t)((uint16_t)txt_rgb[2] * font_rgb[0] + (bg_rgb[2] * (255 - font_rgb[0]))) >> 8;
 #else
                 res_color.ch.red = (uint32_t)((uint16_t)txt_rgb[0] * font_rgb[0] + (bg_rgb[0] * (255 - font_rgb[0]))) >> 8;
                 res_color.ch.blue = (uint32_t)((uint16_t)txt_rgb[2] * font_rgb[2] + (bg_rgb[2] * (255 - font_rgb[2]))) >> 8;
@@ -507,6 +542,7 @@ static void draw_letter_subpx(lv_draw_ctx_t * draw_ctx, const lv_draw_label_dsc_
             map_area.y2 ++;
         }
         else {
+            blend_dsc.mask_res = LV_DRAW_MASK_RES_CHANGED;
             lv_draw_sw_blend(draw_ctx, &blend_dsc);
 
             map_area.y1 = map_area.y2 + 1;
@@ -526,6 +562,7 @@ static void draw_letter_subpx(lv_draw_ctx_t * draw_ctx, const lv_draw_label_dsc_
     /*Flush the last part*/
     if(map_area.y1 != map_area.y2) {
         map_area.y2--;
+        blend_dsc.mask_res = LV_DRAW_MASK_RES_CHANGED;
         lv_draw_sw_blend(draw_ctx, &blend_dsc);
     }
 
index d94431b..706ec6b 100644 (file)
@@ -128,7 +128,6 @@ static void draw_bg(lv_draw_ctx_t * draw_ctx, const lv_draw_rect_dsc_t * dsc, co
     if(!mask_any && dsc->radius == 0 && (grad_dir == LV_GRAD_DIR_NONE)) {
         blend_dsc.blend_area = &bg_coords;
         blend_dsc.opa = dsc->bg_opa;
-
         lv_draw_sw_blend(draw_ctx, &blend_dsc);
         return;
     }
@@ -333,6 +332,14 @@ static void draw_bg_img(lv_draw_ctx_t * draw_ctx, const lv_draw_rect_dsc_t * dsc
     if(dsc->bg_img_src == NULL) return;
     if(dsc->bg_img_opa <= LV_OPA_MIN) return;
 
+    lv_area_t clip_area;
+    if(!_lv_area_intersect(&clip_area, coords, draw_ctx->clip_area)) {
+        return;
+    }
+
+    const lv_area_t * clip_area_ori = draw_ctx->clip_area;
+    draw_ctx->clip_area = &clip_area;
+
     lv_img_src_t src_type = lv_img_src_get_type(dsc->bg_img_src);
     if(src_type == LV_IMG_SRC_SYMBOL) {
         lv_point_t size;
@@ -353,43 +360,45 @@ static void draw_bg_img(lv_draw_ctx_t * draw_ctx, const lv_draw_rect_dsc_t * dsc
     else {
         lv_img_header_t header;
         lv_res_t res = lv_img_decoder_get_info(dsc->bg_img_src, &header);
-        if(res != LV_RES_OK) {
-            LV_LOG_WARN("Couldn't read the background image");
-            return;
-        }
+        if(res == LV_RES_OK) {
+            lv_draw_img_dsc_t img_dsc;
+            lv_draw_img_dsc_init(&img_dsc);
+            img_dsc.blend_mode = dsc->blend_mode;
+            img_dsc.recolor = dsc->bg_img_recolor;
+            img_dsc.recolor_opa = dsc->bg_img_recolor_opa;
+            img_dsc.opa = dsc->bg_img_opa;
+
+            /*Center align*/
+            if(dsc->bg_img_tiled == false) {
+                lv_area_t area;
+                area.x1 = coords->x1 + lv_area_get_width(coords) / 2 - header.w / 2;
+                area.y1 = coords->y1 + lv_area_get_height(coords) / 2 - header.h / 2;
+                area.x2 = area.x1 + header.w - 1;
+                area.y2 = area.y1 + header.h - 1;
 
-        lv_draw_img_dsc_t img_dsc;
-        lv_draw_img_dsc_init(&img_dsc);
-        img_dsc.blend_mode = dsc->blend_mode;
-        img_dsc.recolor = dsc->bg_img_recolor;
-        img_dsc.recolor_opa = dsc->bg_img_recolor_opa;
-        img_dsc.opa = dsc->bg_img_opa;
-
-        /*Center align*/
-        if(dsc->bg_img_tiled == false) {
-            lv_area_t area;
-            area.x1 = coords->x1 + lv_area_get_width(coords) / 2 - header.w / 2;
-            area.y1 = coords->y1 + lv_area_get_height(coords) / 2 - header.h / 2;
-            area.x2 = area.x1 + header.w - 1;
-            area.y2 = area.y1 + header.h - 1;
-
-            lv_draw_img(draw_ctx, &img_dsc, &area, dsc->bg_img_src);
-        }
-        else {
-            lv_area_t area;
-            area.y1 = coords->y1;
-            area.y2 = area.y1 + header.h - 1;
+                lv_draw_img(draw_ctx, &img_dsc, &area, dsc->bg_img_src);
+            }
+            else {
+                lv_area_t area;
+                area.y1 = coords->y1;
+                area.y2 = area.y1 + header.h - 1;
 
-            for(; area.y1 <= coords->y2; area.y1 += header.h, area.y2 += header.h) {
+                for(; area.y1 <= coords->y2; area.y1 += header.h, area.y2 += header.h) {
 
-                area.x1 = coords->x1;
-                area.x2 = area.x1 + header.w - 1;
-                for(; area.x1 <= coords->x2; area.x1 += header.w, area.x2 += header.w) {
-                    lv_draw_img(draw_ctx, &img_dsc, &area, dsc->bg_img_src);
+                    area.x1 = coords->x1;
+                    area.x2 = area.x1 + header.w - 1;
+                    for(; area.x1 <= coords->x2; area.x1 += header.w, area.x2 += header.w) {
+                        lv_draw_img(draw_ctx, &img_dsc, &area, dsc->bg_img_src);
+                    }
                 }
             }
         }
+        else {
+            LV_LOG_WARN("Couldn't read the background image");
+        }
     }
+
+    draw_ctx->clip_area = clip_area_ori;
 }
 
 static void draw_border(lv_draw_ctx_t * draw_ctx, const lv_draw_rect_dsc_t * dsc, const lv_area_t * coords)
@@ -1150,12 +1159,13 @@ void draw_border_generic(lv_draw_ctx_t * draw_ctx, const lv_area_t * outer_area,
 
     bool mask_any = lv_draw_mask_is_any(outer_area);
 
+#if LV_DRAW_COMPLEX
+
     if(!mask_any && rout == 0 && rin == 0) {
         draw_border_simple(draw_ctx, outer_area, inner_area, color, opa);
         return;
     }
 
-#if LV_DRAW_COMPLEX
     /*Get clipped draw area which is the real draw area.
      *It is always the same or inside `coords`*/
     lv_area_t draw_area;
@@ -1272,12 +1282,12 @@ void draw_border_generic(lv_draw_ctx_t * draw_ctx, const lv_area_t * outer_area,
     /*Draw the corners*/
     lv_coord_t blend_w;
 
-    /*Left and right corner together is they close to eachother*/
+    /*Left and right corner together if they are close to each other*/
     if(!split_hor) {
         /*Calculate the top corner and mirror it to the bottom*/
         blend_area.x1 = draw_area.x1;
         blend_area.x2 = draw_area.x2;
-        lv_coord_t max_h = LV_MAX(rout, outer_area->y1 - inner_area->y1);
+        lv_coord_t max_h = LV_MAX(rout, inner_area->y1 - outer_area->y1);
         for(h = 0; h < max_h; h++) {
             lv_coord_t top_y = outer_area->y1 + h;
             lv_coord_t bottom_y = outer_area->y2 - h;
@@ -1366,6 +1376,13 @@ void draw_border_generic(lv_draw_ctx_t * draw_ctx, const lv_area_t * outer_area,
 
 #else /*LV_DRAW_COMPLEX*/
     LV_UNUSED(blend_mode);
+    LV_UNUSED(rout);
+    LV_UNUSED(rin);
+    if(!mask_any) {
+        draw_border_simple(draw_ctx, outer_area, inner_area, color, opa);
+        return;
+    }
+
 #endif /*LV_DRAW_COMPLEX*/
 }
 static void draw_border_simple(lv_draw_ctx_t * draw_ctx, const lv_area_t * outer_area, const lv_area_t * inner_area,
index 1174211..80bb49d 100644 (file)
@@ -1,6 +1,6 @@
 # Extra components
 
-This directory contains extra (optional) components to lvgl. 
+This directory contains extra (optional) components to lvgl.
 It's a good place for contributions as there are less strict expectations about the completeness and flexibility of the components here.
 
 In other words, if you have created a complex widget from other widgets, or modified an existing widget with special events, styles or animations, or have a new feature that could work as a plugin to lvgl feel free to the share it here.
@@ -10,13 +10,13 @@ In other words, if you have created a complex widget from other widgets, or modi
 - Please and follow the [Coding style](https://github.com/lvgl/lvgl/blob/master/docs/CODING_STYLE.md) of LVGL
 - Add setter/getter functions in pair
 - Update [lv_conf_template.h](https://github.com/lvgl/lvgl/blob/master/lv_conf_template.h)
-- Add description in the [docs](https://github.com/lvgl/lvgl/tree/master/docs) 
+- Add description in the [docs](https://github.com/lvgl/lvgl/tree/master/docs)
 - Add [examples](https://github.com/lvgl/lvgl/tree/master/examples)
 - Update the [changelog](https://github.com/lvgl/lvgl/tree/master/docs/CHANGELOG.md)
 - Add yourself to the [Contributors](#contributors) section below.
 
 ## Ideas
-Here some ideas as inspiration feel free to contribute with ideas too. 
+Here some ideas as inspiration feel free to contribute with ideas too.
 - New [Calendar headers](https://github.com/lvgl/lvgl/tree/master/src/extra/widgets/calendar)
 - Color picker with RGB and or HSV bars
 - Ruler, horizontal or vertical with major and minor ticks and labels
@@ -27,5 +27,5 @@ Here some ideas as inspiration feel free to contribute with ideas too.
 
 ## Contributors
 - lv_animimg: @ZhaoQiang-b45475
-- lv_span: @guoweilkd 
+- lv_span: @guoweilkd
 - lv_menu: @HX2003
\ No newline at end of file
index 1180342..8f0b4d2 100644 (file)
@@ -65,7 +65,7 @@ static lv_obj_t * get_next_item(lv_obj_t * cont, bool rev, int32_t * item_id);
 /**********************
  *  GLOBAL VARIABLES
  **********************/
-uint32_t LV_LAYOUT_FLEX;
+uint16_t LV_LAYOUT_FLEX;
 lv_style_prop_t LV_STYLE_FLEX_FLOW;
 lv_style_prop_t LV_STYLE_FLEX_MAIN_PLACE;
 lv_style_prop_t LV_STYLE_FLEX_CROSS_PLACE;
@@ -93,10 +93,11 @@ void lv_flex_init(void)
 {
     LV_LAYOUT_FLEX = lv_layout_register(flex_update, NULL);
 
-    LV_STYLE_FLEX_FLOW = lv_style_register_prop();
-    LV_STYLE_FLEX_MAIN_PLACE = lv_style_register_prop() | LV_STYLE_PROP_LAYOUT_REFR;
-    LV_STYLE_FLEX_CROSS_PLACE = lv_style_register_prop() | LV_STYLE_PROP_LAYOUT_REFR;
-    LV_STYLE_FLEX_TRACK_PLACE = lv_style_register_prop() | LV_STYLE_PROP_LAYOUT_REFR;
+    LV_STYLE_FLEX_FLOW = lv_style_register_prop(LV_STYLE_PROP_FLAG_NONE);
+    LV_STYLE_FLEX_MAIN_PLACE = lv_style_register_prop(LV_STYLE_PROP_LAYOUT_REFR);
+    LV_STYLE_FLEX_CROSS_PLACE = lv_style_register_prop(LV_STYLE_PROP_LAYOUT_REFR);
+    LV_STYLE_FLEX_TRACK_PLACE = lv_style_register_prop(LV_STYLE_PROP_LAYOUT_REFR);
+    LV_STYLE_FLEX_GROW = lv_style_register_prop(LV_STYLE_PROP_LAYOUT_REFR);
 }
 
 void lv_obj_set_flex_flow(lv_obj_t * obj, lv_flex_flow_t flow)
@@ -428,6 +429,7 @@ static void children_repos(lv_obj_t * cont, flex_t * f, int32_t item_first_id, i
 
         for(i = 0; i < t->grow_item_cnt; i++) {
             if(t->grow_dsc[i].clamped == 0) {
+                LV_ASSERT(grow_value_sum != 0);
                 grow_unit = grow_max_size / grow_value_sum;
                 lv_coord_t size = grow_unit * t->grow_dsc[i].grow_value;
                 lv_coord_t size_clamp = LV_CLAMP(t->grow_dsc[i].min_size, size, t->grow_dsc[i].max_size);
@@ -469,8 +471,14 @@ static void children_repos(lv_obj_t * cont, flex_t * f, int32_t item_first_id, i
                 }
             }
 
-            if(f->row) item->w_layout = 1;
-            else item->h_layout = 1;
+            if(f->row) {
+                item->w_layout = 1;
+                item->h_layout = 0;
+            }
+            else {
+                item->h_layout = 1;
+                item->w_layout = 0;
+            }
 
             if(s != area_get_main_size(&item->coords)) {
                 lv_obj_invalidate(item);
@@ -525,7 +533,7 @@ static void children_repos(lv_obj_t * cont, flex_t * f, int32_t item_first_id, i
             item->coords.y1 += diff_y;
             item->coords.y2 += diff_y;
             lv_obj_invalidate(item);
-            lv_obj_move_children_by(item, diff_x, diff_y, true);
+            lv_obj_move_children_by(item, diff_x, diff_y, false);
         }
 
         if(!(f->row && rtl)) main_pos += area_get_main_size(&item->coords) + item_gap + place_gap;
index 139fd48..58c3221 100644 (file)
@@ -57,7 +57,7 @@ typedef enum {
 /**********************
  * GLOBAL VARIABLES
  **********************/
-extern uint32_t LV_LAYOUT_FLEX;
+extern uint16_t LV_LAYOUT_FLEX;
 extern lv_style_prop_t LV_STYLE_FLEX_FLOW;
 extern lv_style_prop_t LV_STYLE_FLEX_MAIN_PLACE;
 extern lv_style_prop_t LV_STYLE_FLEX_CROSS_PLACE;
@@ -139,7 +139,6 @@ static inline uint8_t lv_obj_get_style_flex_grow(const lv_obj_t * obj, uint32_t
     return (uint8_t)v.num;
 }
 
-
 /**********************
  *      MACROS
  **********************/
index 6812a04..74f8e95 100644 (file)
@@ -102,7 +102,7 @@ static inline uint8_t get_grid_row_align(lv_obj_t * obj)
 /**********************
  *  GLOBAL VARIABLES
  **********************/
-uint32_t LV_LAYOUT_GRID;
+uint16_t LV_LAYOUT_GRID;
 lv_style_prop_t LV_STYLE_GRID_COLUMN_DSC_ARRAY;
 lv_style_prop_t LV_STYLE_GRID_COLUMN_ALIGN;
 lv_style_prop_t LV_STYLE_GRID_ROW_DSC_ARRAY;
@@ -131,17 +131,17 @@ void lv_grid_init(void)
 {
     LV_LAYOUT_GRID = lv_layout_register(grid_update, NULL);
 
-    LV_STYLE_GRID_COLUMN_DSC_ARRAY = lv_style_register_prop() | LV_STYLE_PROP_LAYOUT_REFR;
-    LV_STYLE_GRID_ROW_DSC_ARRAY = lv_style_register_prop() | LV_STYLE_PROP_LAYOUT_REFR;
-    LV_STYLE_GRID_COLUMN_ALIGN = lv_style_register_prop() | LV_STYLE_PROP_LAYOUT_REFR;
-    LV_STYLE_GRID_ROW_ALIGN = lv_style_register_prop() | LV_STYLE_PROP_LAYOUT_REFR;
+    LV_STYLE_GRID_COLUMN_DSC_ARRAY = lv_style_register_prop(LV_STYLE_PROP_LAYOUT_REFR);
+    LV_STYLE_GRID_ROW_DSC_ARRAY = lv_style_register_prop(LV_STYLE_PROP_LAYOUT_REFR);
+    LV_STYLE_GRID_COLUMN_ALIGN = lv_style_register_prop(LV_STYLE_PROP_LAYOUT_REFR);
+    LV_STYLE_GRID_ROW_ALIGN = lv_style_register_prop(LV_STYLE_PROP_LAYOUT_REFR);
 
-    LV_STYLE_GRID_CELL_ROW_SPAN = lv_style_register_prop() | LV_STYLE_PROP_LAYOUT_REFR;
-    LV_STYLE_GRID_CELL_ROW_POS = lv_style_register_prop() | LV_STYLE_PROP_LAYOUT_REFR;
-    LV_STYLE_GRID_CELL_COLUMN_SPAN = lv_style_register_prop() | LV_STYLE_PROP_LAYOUT_REFR;
-    LV_STYLE_GRID_CELL_COLUMN_POS = lv_style_register_prop() | LV_STYLE_PROP_LAYOUT_REFR;
-    LV_STYLE_GRID_CELL_X_ALIGN = lv_style_register_prop() | LV_STYLE_PROP_LAYOUT_REFR;
-    LV_STYLE_GRID_CELL_Y_ALIGN = lv_style_register_prop() | LV_STYLE_PROP_LAYOUT_REFR;
+    LV_STYLE_GRID_CELL_ROW_SPAN = lv_style_register_prop(LV_STYLE_PROP_LAYOUT_REFR);
+    LV_STYLE_GRID_CELL_ROW_POS = lv_style_register_prop(LV_STYLE_PROP_LAYOUT_REFR);
+    LV_STYLE_GRID_CELL_COLUMN_SPAN = lv_style_register_prop(LV_STYLE_PROP_LAYOUT_REFR);
+    LV_STYLE_GRID_CELL_COLUMN_POS = lv_style_register_prop(LV_STYLE_PROP_LAYOUT_REFR);
+    LV_STYLE_GRID_CELL_X_ALIGN = lv_style_register_prop(LV_STYLE_PROP_LAYOUT_REFR);
+    LV_STYLE_GRID_CELL_Y_ALIGN = lv_style_register_prop(LV_STYLE_PROP_LAYOUT_REFR);
 }
 
 void lv_obj_set_grid_dsc_array(lv_obj_t * obj, const lv_coord_t col_dsc[], const lv_coord_t row_dsc[])
@@ -561,6 +561,8 @@ static void calc_rows(lv_obj_t * cont, _lv_grid_calc_t * c)
         if(IS_FR(x)) {
             lv_coord_t f = GET_FR(x);
             c->h[i] = (free_h * f) / row_fr_cnt;
+            last_fr_i = i;
+            last_fr_x = f;
         }
     }
 
@@ -685,7 +687,7 @@ static void item_repos(lv_obj_t * item, _lv_grid_calc_t * c, item_repos_hint_t *
         item->coords.y1 += diff_y;
         item->coords.y2 += diff_y;
         lv_obj_invalidate(item);
-        lv_obj_move_children_by(item, diff_x, diff_y, true);
+        lv_obj_move_children_by(item, diff_x, diff_y, false);
     }
 }
 
index cd2510e..5c4f767 100644 (file)
@@ -53,7 +53,7 @@ typedef enum {
  * GLOBAL VARIABLES
  **********************/
 
-extern uint32_t LV_LAYOUT_GRID;
+extern uint16_t LV_LAYOUT_GRID;
 extern lv_style_prop_t LV_STYLE_GRID_COLUMN_DSC_ARRAY;
 extern lv_style_prop_t LV_STYLE_GRID_COLUMN_ALIGN;
 extern lv_style_prop_t LV_STYLE_GRID_ROW_DSC_ARRAY;
index 73e8030..f89a0a8 100644 (file)
@@ -79,7 +79,7 @@ static lv_res_t decoder_info(lv_img_decoder_t * decoder, const void * src, lv_im
     /*If it's a BMP file...*/
     if(src_type == LV_IMG_SRC_FILE) {
         const char * fn = src;
-        if(!strcmp(&fn[strlen(fn) - 3], "bmp")) {              /*Check the extension*/
+        if(strcmp(lv_fs_get_ext(fn), "bmp") == 0) {              /*Check the extension*/
             /*Save the data in the header*/
             lv_fs_file_t f;
             lv_fs_res_t res = lv_fs_open(&f, src, LV_FS_MODE_RD);
@@ -119,7 +119,7 @@ static lv_res_t decoder_info(lv_img_decoder_t * decoder, const void * src, lv_im
  * Open a PNG image and return the decided image
  * @param src can be file name or pointer to a C array
  * @param style style of the image object (unused now but certain formats might use it)
- * @return pointer to the decoded image or  `LV_IMG_DECODER_OPEN_FAIL` if failed
+ * @return pointer to the decoded image or `LV_IMG_DECODER_OPEN_FAIL` if failed
  */
 static lv_res_t decoder_open(lv_img_decoder_t * decoder, lv_img_decoder_dsc_t * dsc)
 {
@@ -129,7 +129,9 @@ static lv_res_t decoder_open(lv_img_decoder_t * decoder, lv_img_decoder_dsc_t *
     if(dsc->src_type == LV_IMG_SRC_FILE) {
         const char * fn = dsc->src;
 
-        if(strcmp(&fn[strlen(fn) - 3], "bmp")) return LV_RES_INV;       /*Check the extension*/
+        if(strcmp(lv_fs_get_ext(fn), "bmp") != 0) {
+            return LV_RES_INV;       /*Check the extension*/
+        }
 
         bmp_dsc_t b;
         memset(&b, 0x00, sizeof(b));
@@ -152,7 +154,7 @@ static lv_res_t decoder_open(lv_img_decoder_t * decoder, lv_img_decoder_dsc_t *
         b.row_size_bytes = ((b.bpp * b.px_width + 31) / 32) * 4;
 
         bool color_depth_error = false;
-        if(LV_COLOR_DEPTH == 32 && (b.bpp != 32 || b.bpp != 24)) {
+        if(LV_COLOR_DEPTH == 32 && (b.bpp != 32 && b.bpp != 24)) {
             LV_LOG_WARN("LV_COLOR_DEPTH == 32 but bpp is %d (should be 32 or 24)", b.bpp);
             color_depth_error = true;
         }
@@ -201,7 +203,14 @@ static lv_res_t decoder_read_line(lv_img_decoder_t * decoder, lv_img_decoder_dsc
     lv_fs_seek(&b->f, p, LV_FS_SEEK_SET);
     lv_fs_read(&b->f, buf, len * (b->bpp / 8), NULL);
 
-#if LV_COLOR_DEPTH == 32
+#if LV_COLOR_DEPTH == 16 && LV_COLOR_16_SWAP == 1
+    for(unsigned int i = 0; i < len * (b->bpp / 8); i += 2) {
+        buf[i] = buf[i] ^ buf[i + 1];
+        buf[i + 1] = buf[i] ^ buf[i + 1];
+        buf[i] = buf[i] ^ buf[i + 1];
+    }
+
+#elif LV_COLOR_DEPTH == 32
     if(b->bpp == 32) {
         lv_coord_t i;
         for(i = 0; i < len; i++) {
index 73596ec..cc1d2e6 100644 (file)
@@ -161,8 +161,8 @@ static lv_fs_res_t fs_read(lv_fs_drv_t * drv, void * file_p, void * buf, uint32_
  * @param drv pointer to a driver where this function belongs
  * @param file_p pointer to a FIL variable
  * @param buf pointer to a buffer with the bytes to write
- * @param btr Bytes To Write
- * @param br the number of real written bytes (Bytes Written). NULL if unused.
+ * @param btw Bytes To Write
+ * @param bw the number of real written bytes (Bytes Written). NULL if unused.
  * @return LV_FS_RES_OK or any error from lv_fs_res_t enum
  */
 static lv_fs_res_t fs_write(lv_fs_drv_t * drv, void * file_p, const void * buf, uint32_t btw, uint32_t * bw)
index fb5fcd3..e656288 100644 (file)
@@ -104,15 +104,15 @@ static void * fs_open(lv_fs_drv_t * drv, const char * path, lv_fs_mode_t mode)
     LV_UNUSED(drv);
 
     uint32_t flags = 0;
-    if(mode == LV_FS_MODE_WR) flags = O_WRONLY;
+    if(mode == LV_FS_MODE_WR) flags = O_WRONLY | O_CREAT;
     else if(mode == LV_FS_MODE_RD) flags = O_RDONLY;
-    else if(mode == (LV_FS_MODE_WR | LV_FS_MODE_RD)) flags = O_RDWR;
+    else if(mode == (LV_FS_MODE_WR | LV_FS_MODE_RD)) flags = O_RDWR | O_CREAT;
 
     /*Make the path relative to the current directory (the projects root folder)*/
     char buf[256];
-    sprintf(buf, LV_FS_POSIX_PATH "%s", path);
+    lv_snprintf(buf, sizeof(buf), LV_FS_POSIX_PATH "%s", path);
 
-    int f = open(buf, flags);
+    int f = open(buf, flags, 0666);
     if(f < 0) return NULL;
 
     return (void *)(lv_uintptr_t)f;
@@ -154,8 +154,8 @@ static lv_fs_res_t fs_read(lv_fs_drv_t * drv, void * file_p, void * buf, uint32_
  * @param drv pointer to a driver where this function belongs
  * @param file_p a file handle variable
  * @param buf pointer to a buffer with the bytes to write
- * @param btr Bytes To Write
- * @param br the number of real written bytes (Bytes Written). NULL if unused.
+ * @param btw Bytes To Write
+ * @param bw the number of real written bytes (Bytes Written). NULL if unused.
  * @return LV_FS_RES_OK or any error from lv_fs_res_t enum
  */
 static lv_fs_res_t fs_write(lv_fs_drv_t * drv, void * file_p, const void * buf, uint32_t btw, uint32_t * bw)
@@ -176,8 +176,8 @@ static lv_fs_res_t fs_write(lv_fs_drv_t * drv, void * file_p, const void * buf,
 static lv_fs_res_t fs_seek(lv_fs_drv_t * drv, void * file_p, uint32_t pos, lv_fs_whence_t whence)
 {
     LV_UNUSED(drv);
-    lseek((lv_uintptr_t)file_p, pos, whence);
-    return LV_FS_RES_OK;
+    off_t offset = lseek((lv_uintptr_t)file_p, pos, whence);
+    return offset < 0 ? LV_FS_RES_FS_ERR : LV_FS_RES_OK;
 }
 
 /**
@@ -191,8 +191,9 @@ static lv_fs_res_t fs_seek(lv_fs_drv_t * drv, void * file_p, uint32_t pos, lv_fs
 static lv_fs_res_t fs_tell(lv_fs_drv_t * drv, void * file_p, uint32_t * pos_p)
 {
     LV_UNUSED(drv);
-    *pos_p = lseek((lv_uintptr_t)file_p, 0, SEEK_CUR);
-    return LV_FS_RES_OK;
+    off_t offset = lseek((lv_uintptr_t)file_p, 0, SEEK_CUR);
+    *pos_p = offset;
+    return offset < 0 ? LV_FS_RES_FS_ERR : LV_FS_RES_OK;
 }
 
 #ifdef WIN32
@@ -212,7 +213,7 @@ static void * fs_dir_open(lv_fs_drv_t * drv, const char * path)
 #ifndef WIN32
     /*Make the path relative to the current directory (the projects root folder)*/
     char buf[256];
-    sprintf(buf, LV_FS_POSIX_PATH "%s", path);
+    lv_snprintf(buf, sizeof(buf), LV_FS_POSIX_PATH "%s", path);
     return opendir(buf);
 #else
     HANDLE d = INVALID_HANDLE_VALUE;
@@ -220,7 +221,7 @@ static void * fs_dir_open(lv_fs_drv_t * drv, const char * path)
 
     /*Make the path relative to the current directory (the projects root folder)*/
     char buf[256];
-    sprintf(buf, LV_FS_POSIX_PATH "%s\\*", path);
+    lv_snprintf(buf, sizeof(buf), LV_FS_POSIX_PATH "%s\\*", path);
 
     strcpy(next_fn, "");
     d = FindFirstFile(buf, &fdata);
index e4bf077..c2de688 100644 (file)
 /*********************
  *      DEFINES
  *********************/
+#define MAX_PATH_LEN 256
 
 /**********************
  *      TYPEDEFS
  **********************/
+typedef struct {
+#ifdef WIN32
+    HANDLE dir_p;
+    char next_fn[MAX_PATH_LEN];
+#else
+    DIR * dir_p;
+#endif
+} dir_handle_t;
 
 /**********************
  *  STATIC PROTOTYPES
@@ -105,8 +114,8 @@ static void * fs_open(lv_fs_drv_t * drv, const char * path, lv_fs_mode_t mode)
 
     /*Make the path relative to the current directory (the projects root folder)*/
 
-    char buf[256];
-    sprintf(buf, LV_FS_STDIO_PATH "%s", path);
+    char buf[MAX_PATH_LEN];
+    lv_snprintf(buf, sizeof(buf), LV_FS_STDIO_PATH "%s", path);
 
     return fopen(buf, flags);
 }
@@ -147,8 +156,8 @@ static lv_fs_res_t fs_read(lv_fs_drv_t * drv, void * file_p, void * buf, uint32_
  * @param drv pointer to a driver where this function belongs
  * @param file_p pointer to a FILE variable
  * @param buf pointer to a buffer with the bytes to write
- * @param btr Bytes To Write
- * @param br the number of real written bytes (Bytes Written). NULL if unused.
+ * @param btw Bytes To Write
+ * @param bw the number of real written bytes (Bytes Written). NULL if unused.
  * @return LV_FS_RES_OK or any error from lv_fs_res_t enum
  */
 static lv_fs_res_t fs_write(lv_fs_drv_t * drv, void * file_p, const void * buf, uint32_t btw, uint32_t * bw)
@@ -188,10 +197,6 @@ static lv_fs_res_t fs_tell(lv_fs_drv_t * drv, void * file_p, uint32_t * pos_p)
     return LV_FS_RES_OK;
 }
 
-#ifdef WIN32
-    static char next_fn[256];
-#endif
-
 /**
  * Initialize a 'DIR' or 'HANDLE' variable for directory reading
  * @param drv pointer to a driver where this function belongs
@@ -201,37 +206,47 @@ static lv_fs_res_t fs_tell(lv_fs_drv_t * drv, void * file_p, uint32_t * pos_p)
 static void * fs_dir_open(lv_fs_drv_t * drv, const char * path)
 {
     LV_UNUSED(drv);
+    dir_handle_t * handle = (dir_handle_t *)lv_mem_alloc(sizeof(dir_handle_t));
 #ifndef WIN32
     /*Make the path relative to the current directory (the projects root folder)*/
-    char buf[256];
-    sprintf(buf, LV_FS_STDIO_PATH "%s", path);
-    return opendir(buf);
+    char buf[MAX_PATH_LEN];
+    lv_snprintf(buf, sizeof(buf), LV_FS_STDIO_PATH "%s", path);
+    handle->dir_p = opendir(buf);
+    if(handle->dir_p == NULL) {
+        lv_mem_free(handle);
+        return NULL;
+    }
+    return handle;
 #else
-    HANDLE d = INVALID_HANDLE_VALUE;
-    WIN32_FIND_DATA fdata;
+    handle->dir_p = INVALID_HANDLE_VALUE;
+    WIN32_FIND_DATAA fdata;
 
     /*Make the path relative to the current directory (the projects root folder)*/
-    char buf[256];
-    sprintf(buf, LV_FS_STDIO_PATH "%s\\*", path);
+    char buf[MAX_PATH_LEN];
+    lv_snprintf(buf, sizeof(buf), LV_FS_STDIO_PATH "%s\\*", path);
 
-    strcpy(next_fn, "");
-    d = FindFirstFile(buf, &fdata);
+    strcpy(handle->next_fn, "");
+    handle->dir_p = FindFirstFileA(buf, &fdata);
     do {
         if(strcmp(fdata.cFileName, ".") == 0 || strcmp(fdata.cFileName, "..") == 0) {
             continue;
         }
         else {
             if(fdata.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {
-                sprintf(next_fn, "/%s", fdata.cFileName);
+                lv_snprintf(handle->next_fn, sizeof(handle->next_fn), "/%s", fdata.cFileName);
             }
             else {
-                sprintf(next_fn, "%s", fdata.cFileName);
+                lv_snprintf(handle->next_fn, sizeof(handle->next_fn), "%s", fdata.cFileName);
             }
             break;
         }
-    } while(FindNextFileA(d, &fdata));
+    } while(FindNextFileA(handle->dir_p, &fdata));
 
-    return d;
+    if(handle->dir_p == INVALID_HANDLE_VALUE) {
+        lv_mem_free(handle);
+        return INVALID_HANDLE_VALUE;
+    }
+    return handle;
 #endif
 }
 
@@ -246,13 +261,13 @@ static void * fs_dir_open(lv_fs_drv_t * drv, const char * path)
 static lv_fs_res_t fs_dir_read(lv_fs_drv_t * drv, void * dir_p, char * fn)
 {
     LV_UNUSED(drv);
-
+    dir_handle_t * handle = (dir_handle_t *)dir_p;
 #ifndef WIN32
     struct dirent * entry;
     do {
-        entry = readdir(dir_p);
+        entry = readdir(handle->dir_p);
         if(entry) {
-            if(entry->d_type == DT_DIR) sprintf(fn, "/%s", entry->d_name);
+            if(entry->d_type == DT_DIR) lv_snprintf(fn, MAX_PATH_LEN, "/%s", entry->d_name);
             else strcpy(fn, entry->d_name);
         }
         else {
@@ -260,26 +275,26 @@ static lv_fs_res_t fs_dir_read(lv_fs_drv_t * drv, void * dir_p, char * fn)
         }
     } while(strcmp(fn, "/.") == 0 || strcmp(fn, "/..") == 0);
 #else
-    strcpy(fn, next_fn);
+    strcpy(fn, handle->next_fn);
 
-    strcpy(next_fn, "");
-    WIN32_FIND_DATA fdata;
+    strcpy(handle->next_fn, "");
+    WIN32_FIND_DATAA fdata;
 
-    if(FindNextFile(dir_p, &fdata) == false) return LV_FS_RES_OK;
+    if(FindNextFileA(handle->dir_p, &fdata) == false) return LV_FS_RES_OK;
     do {
         if(strcmp(fdata.cFileName, ".") == 0 || strcmp(fdata.cFileName, "..") == 0) {
             continue;
         }
         else {
             if(fdata.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {
-                sprintf(next_fn, "/%s", fdata.cFileName);
+                lv_snprintf(handle->next_fn, sizeof(handle->next_fn), "/%s", fdata.cFileName);
             }
             else {
-                sprintf(next_fn, "%s", fdata.cFileName);
+                lv_snprintf(handle->next_fn, sizeof(handle->next_fn), "%s", fdata.cFileName);
             }
             break;
         }
-    } while(FindNextFile(dir_p, &fdata));
+    } while(FindNextFileA(handle->dir_p, &fdata));
 
 #endif
     return LV_FS_RES_OK;
@@ -294,11 +309,13 @@ static lv_fs_res_t fs_dir_read(lv_fs_drv_t * drv, void * dir_p, char * fn)
 static lv_fs_res_t fs_dir_close(lv_fs_drv_t * drv, void * dir_p)
 {
     LV_UNUSED(drv);
+    dir_handle_t * handle = (dir_handle_t *)dir_p;
 #ifndef WIN32
-    closedir(dir_p);
+    closedir(handle->dir_p);
 #else
-    FindClose(dir_p);
+    FindClose(handle->dir_p);
 #endif
+    lv_mem_free(handle);
     return LV_FS_RES_OK;
 }
 
index ad4536d..1a59aa4 100644 (file)
 /*********************
  *      DEFINES
  *********************/
+#define MAX_PATH_LEN 256
 
 /**********************
  *      TYPEDEFS
  **********************/
+typedef struct {
+    HANDLE dir_p;
+    char next_fn[MAX_PATH_LEN];
+    lv_fs_res_t next_error;
+} dir_handle_t;
 
 /**********************
  *  STATIC PROTOTYPES
@@ -58,7 +64,7 @@ void lv_fs_win32_init(void)
      * Register the file system interface in LVGL
      *--------------------------------------------------*/
 
-    /*Add a simple drive to open images*/
+    /*Add a simple driver to open images*/
     static lv_fs_drv_t fs_drv; /*A driver descriptor*/
     lv_fs_drv_init(&fs_drv);
 
@@ -213,7 +219,7 @@ static void * fs_open(lv_fs_drv_t * drv, const char * path, lv_fs_mode_t mode)
     /*Make the path relative to the current directory (the projects root folder)*/
 
     char buf[MAX_PATH];
-    sprintf(buf, LV_FS_WIN32_PATH "%s", path);
+    lv_snprintf(buf, sizeof(buf), LV_FS_WIN32_PATH "%s", path);
 
     return (void *)CreateFileA(
                buf,
@@ -263,8 +269,8 @@ static lv_fs_res_t fs_read(lv_fs_drv_t * drv, void * file_p, void * buf, uint32_
  * @param drv pointer to a driver where this function belongs
  * @param file_p pointer to a FILE variable
  * @param buf pointer to a buffer with the bytes to write
- * @param btr Bytes To Write
- * @param br the number of real written bytes (Bytes Written). NULL if unused.
+ * @param btw Bytes To Write
+ * @param bw the number of real written bytes (Bytes Written). NULL if unused.
  * @return LV_FS_RES_OK or any error from lv_fs_res_t enum
  */
 static lv_fs_res_t fs_write(lv_fs_drv_t * drv, void * file_p, const void * buf, uint32_t btw, uint32_t * bw)
@@ -344,9 +350,6 @@ static lv_fs_res_t fs_tell(lv_fs_drv_t * drv, void * file_p, uint32_t * pos_p)
     }
 }
 
-static char next_fn[256];
-static lv_fs_res_t next_error = LV_FS_RES_OK;
-
 /**
  * Initialize a 'DIR' or 'HANDLE' variable for directory reading
  * @param drv pointer to a driver where this function belongs
@@ -356,38 +359,45 @@ static lv_fs_res_t next_error = LV_FS_RES_OK;
 static void * fs_dir_open(lv_fs_drv_t * drv, const char * path)
 {
     LV_UNUSED(drv);
-
-    HANDLE d = INVALID_HANDLE_VALUE;
+    dir_handle_t * handle = (dir_handle_t *)lv_mem_alloc(sizeof(dir_handle_t));
+    handle->dir_p = INVALID_HANDLE_VALUE;
+    handle->next_error = LV_FS_RES_OK;
     WIN32_FIND_DATAA fdata;
 
     /*Make the path relative to the current directory (the projects root folder)*/
-    char buf[256];
+    char buf[MAX_PATH_LEN];
 #ifdef LV_FS_WIN32_PATH
-    sprintf(buf, LV_FS_WIN32_PATH "%s\\*", path);
+    lv_snprintf(buf, sizeof(buf), LV_FS_WIN32_PATH "%s\\*", path);
 #else
-    sprintf(buf, "%s\\*", path);
+    lv_snprintf(buf, sizeof(buf), "%s\\*", path);
 #endif
 
-    strcpy(next_fn, "");
-    d = FindFirstFileA(buf, &fdata);
+    strcpy(handle->next_fn, "");
+    handle->dir_p = FindFirstFileA(buf, &fdata);
     do {
         if(is_dots_name(fdata.cFileName)) {
             continue;
         }
         else {
             if(fdata.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {
-                sprintf(next_fn, "/%s", fdata.cFileName);
+                lv_snprintf(handle->next_fn, sizeof(handle->next_fn), "/%s", fdata.cFileName);
             }
             else {
-                sprintf(next_fn, "%s", fdata.cFileName);
+                lv_snprintf(handle->next_fn, sizeof(handle->next_fn), "%s", fdata.cFileName);
             }
             break;
         }
+    } while(FindNextFileA(handle->dir_p, &fdata));
 
-    } while(FindNextFileA(d, &fdata));
-
-    next_error = fs_error_from_win32(GetLastError());
-    return d;
+    if(handle->dir_p == INVALID_HANDLE_VALUE) {
+        lv_mem_free(handle);
+        handle->next_error = fs_error_from_win32(GetLastError());
+        return INVALID_HANDLE_VALUE;
+    }
+    else {
+        handle->next_error = LV_FS_RES_OK;
+        return handle;
+    }
 }
 
 /**
@@ -401,31 +411,30 @@ static void * fs_dir_open(lv_fs_drv_t * drv, const char * path)
 static lv_fs_res_t fs_dir_read(lv_fs_drv_t * drv, void * dir_p, char * fn)
 {
     LV_UNUSED(drv);
+    dir_handle_t * handle = (dir_handle_t *)dir_p;
+    strcpy(fn, handle->next_fn);
+    lv_fs_res_t current_error = handle->next_error;
+    strcpy(handle->next_fn, "");
 
-    strcpy(fn, next_fn);
-    lv_fs_res_t current_error = next_error;
-    next_error = LV_FS_RES_OK;
-
-    strcpy(next_fn, "");
     WIN32_FIND_DATAA fdata;
 
-    while(FindNextFileA(dir_p, &fdata)) {
+    while(FindNextFileA(handle->dir_p, &fdata)) {
         if(is_dots_name(fdata.cFileName)) {
             continue;
         }
         else {
             if(fdata.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {
-                sprintf(next_fn, "/%s", fdata.cFileName);
+                lv_snprintf(handle->next_fn, sizeof(handle->next_fn), "/%s", fdata.cFileName);
             }
             else {
-                sprintf(next_fn, "%s", fdata.cFileName);
+                lv_snprintf(handle->next_fn, sizeof(handle->next_fn), "%s", fdata.cFileName);
             }
             break;
         }
     }
 
-    if(next_fn[0] == '\0') {
-        next_error = fs_error_from_win32(GetLastError());
+    if(handle->next_fn[0] == '\0') {
+        handle->next_error = fs_error_from_win32(GetLastError());
     }
 
     return current_error;
@@ -440,9 +449,12 @@ static lv_fs_res_t fs_dir_read(lv_fs_drv_t * drv, void * dir_p, char * fn)
 static lv_fs_res_t fs_dir_close(lv_fs_drv_t * drv, void * dir_p)
 {
     LV_UNUSED(drv);
-    return FindClose((HANDLE)dir_p)
-           ? LV_FS_RES_OK
-           : fs_error_from_win32(GetLastError());
+    dir_handle_t * handle = (dir_handle_t *)dir_p;
+    lv_fs_res_t res = FindClose(handle->dir_p)
+                      ? LV_FS_RES_OK
+                      : fs_error_from_win32(GetLastError());
+    lv_mem_free(handle);
+    return res;
 }
 
 #else /*LV_USE_FS_WIN32 == 0*/
index ee6a56d..3ee9b71 100644 (file)
@@ -133,29 +133,34 @@ static gd_GIF * gif_open(gd_GIF * gif_base)
 #elif LV_COLOR_DEPTH == 8 || LV_COLOR_DEPTH == 1
     gif->frame = &gif->canvas[2 * width * height];
 #endif
-    if (gif->bgindex)
+    if (gif->bgindex) {
         memset(gif->frame, gif->bgindex, gif->width * gif->height);
+    }
     bgcolor = &gif->palette->colors[gif->bgindex*3];
 
-    if (bgcolor[0] || bgcolor[1] || bgcolor [2])
-        for (i = 0; i < gif->width * gif->height; i++) {
+    for (i = 0; i < gif->width * gif->height; i++) {
 #if LV_COLOR_DEPTH == 32
-            gif->canvas[i*4 + 0] = *(bgcolor + 2);
-            gif->canvas[i*4 + 1] = *(bgcolor + 1);
-            gif->canvas[i*4 + 2] = *(bgcolor + 0);
-            gif->canvas[i*4 + 3] = 0xff;
+        gif->canvas[i*4 + 0] = *(bgcolor + 2);
+        gif->canvas[i*4 + 1] = *(bgcolor + 1);
+        gif->canvas[i*4 + 2] = *(bgcolor + 0);
+        gif->canvas[i*4 + 3] = 0xff;
 #elif LV_COLOR_DEPTH == 16
-            lv_color_t c = lv_color_make(*(bgcolor + 0), *(bgcolor + 1), *(bgcolor + 2));
-            gif->canvas[i*3 + 0] = c.full & 0xff;
-            gif->canvas[i*3 + 1] = (c.full >> 8) & 0xff;
-            gif->canvas[i*3 + 2] = 0xff;
+        lv_color_t c = lv_color_make(*(bgcolor + 0), *(bgcolor + 1), *(bgcolor + 2));
+        gif->canvas[i*3 + 0] = c.full & 0xff;
+        gif->canvas[i*3 + 1] = (c.full >> 8) & 0xff;
+        gif->canvas[i*3 + 2] = 0xff;
 #elif LV_COLOR_DEPTH == 8
-            lv_color_t c = lv_color_make(*(bgcolor + 0), *(bgcolor + 1), *(bgcolor + 2));
-            gif->canvas[i*2 + 0] = c.full;
-            gif->canvas[i*2 + 1] = 0xff;
+        lv_color_t c = lv_color_make(*(bgcolor + 0), *(bgcolor + 1), *(bgcolor + 2));
+        gif->canvas[i*2 + 0] = c.full;
+        gif->canvas[i*2 + 1] = 0xff;
+#elif LV_COLOR_DEPTH == 1
+        lv_color_t c = lv_color_make(*(bgcolor + 0), *(bgcolor + 1), *(bgcolor + 2));
+        gif->canvas[i*2 + 0] = c.ch.red > 128 ? 1 : 0;
+        gif->canvas[i*2 + 1] = 0xff;
 #endif
-        }
+    }
     gif->anim_start = f_gif_seek(gif, 0, LV_FS_SEEK_CUR);
+    gif->loop_count = -1;
     goto ok;
 fail:
     f_gif_close(gif_base);
@@ -235,6 +240,7 @@ read_application_ext(gd_GIF *gif)
 {
     char app_id[8];
     char app_auth_code[3];
+    uint16_t loop_count;
 
     /* Discard block size (always 0x0B). */
     f_gif_seek(gif, 1, LV_FS_SEEK_CUR);
@@ -245,7 +251,15 @@ read_application_ext(gd_GIF *gif)
     if (!strncmp(app_id, "NETSCAPE", sizeof(app_id))) {
         /* Discard block size (0x03) and constant byte (0x01). */
         f_gif_seek(gif, 2, LV_FS_SEEK_CUR);
-        gif->loop_count = read_num(gif);
+        loop_count = read_num(gif);
+        if(gif->loop_count < 0) {
+            if(loop_count == 0) {
+                gif->loop_count = 0;
+            }
+            else{
+                gif->loop_count = loop_count + 1;
+            }
+        }
         /* Skip block terminator. */
         f_gif_seek(gif, 1, LV_FS_SEEK_CUR);
     } else if (gif->application) {
@@ -564,9 +578,16 @@ gd_get_frame(gd_GIF *gif)
     dispose(gif);
     f_gif_read(gif, &sep, 1);
     while (sep != ',') {
-        if (sep == ';')
-            return 0;
-        if (sep == '!')
+        if (sep == ';') {
+            f_gif_seek(gif, gif->anim_start, LV_FS_SEEK_SET);
+            if(gif->loop_count == 1 || gif->loop_count < 0) {
+                return 0;
+            }
+            else if(gif->loop_count > 1) {
+                gif->loop_count--;
+            }
+        }
+        else if (sep == '!')
             read_ext(gif);
         else return -1;
         f_gif_read(gif, &sep, 1);
@@ -594,6 +615,7 @@ gd_render_frame(gd_GIF *gif, uint8_t *buffer)
 void
 gd_rewind(gd_GIF *gif)
 {
+    gif->loop_count = -1;
     f_gif_seek(gif, gif->anim_start, LV_FS_SEEK_SET);
 }
 
index 00f17c1..b68fab5 100644 (file)
@@ -29,7 +29,7 @@ typedef struct gd_GIF {
     int32_t anim_start;
     uint16_t width, height;
     uint16_t depth;
-    uint16_t loop_count;
+    int32_t loop_count;
     gd_GCE gce;
     gd_Palette *palette;
     gd_Palette lct, gct;
index 4cb2955..2bd9e01 100644 (file)
@@ -99,6 +99,8 @@ void lv_gif_restart(lv_obj_t * obj)
 {
     lv_gif_t * gifobj = (lv_gif_t *) obj;
     gd_rewind(gifobj->gif);
+    lv_timer_resume(gifobj->timer);
+    lv_timer_reset(gifobj->timer);
 }
 
 /**********************
@@ -111,6 +113,7 @@ static void lv_gif_constructor(const lv_obj_class_t * class_p, lv_obj_t * obj)
 
     lv_gif_t * gifobj = (lv_gif_t *) obj;
 
+    gifobj->gif = NULL;
     gifobj->timer = lv_timer_create(next_frame_task_cb, 10, obj);
     lv_timer_pause(gifobj->timer);
 }
@@ -120,7 +123,8 @@ static void lv_gif_destructor(const lv_obj_class_t * class_p, lv_obj_t * obj)
     LV_UNUSED(class_p);
     lv_gif_t * gifobj = (lv_gif_t *) obj;
     lv_img_cache_invalidate_src(&gifobj->imgdsc);
-    gd_close_gif(gifobj->gif);
+    if(gifobj->gif)
+        gd_close_gif(gifobj->gif);
     lv_timer_del(gifobj->timer);
 }
 
@@ -136,14 +140,9 @@ static void next_frame_task_cb(lv_timer_t * t)
     int has_next = gd_get_frame(gifobj->gif);
     if(has_next == 0) {
         /*It was the last repeat*/
-        if(gifobj->gif->loop_count == 1) {
-            lv_res_t res = lv_event_send(obj, LV_EVENT_READY, NULL);
-            if(res != LV_FS_RES_OK) return;
-        }
-        else {
-            if(gifobj->gif->loop_count > 1)  gifobj->gif->loop_count--;
-            gd_rewind(gifobj->gif);
-        }
+        lv_res_t res = lv_event_send(obj, LV_EVENT_READY, NULL);
+        lv_timer_pause(t);
+        if(res != LV_FS_RES_OK) return;
     }
 
     gd_render_frame(gifobj->gif, (uint8_t *)gifobj->imgdsc.data);
index d442025..3594f68 100644 (file)
@@ -71,10 +71,8 @@ lodepng source code. Don't forget to remove "static" if you copypaste them
 from here.*/
 
 #ifdef LODEPNG_COMPILE_ALLOCATORS
-1
 static void* lodepng_malloc(size_t size) {
-#ifdef LODEPNG_MAX_ALLO
-2
+#ifdef LODEPNG_MAX_ALLOC
   if(size > LODEPNG_MAX_ALLOC) return 0;
 #endif
   return lv_mem_alloc(size);
@@ -93,161 +91,16 @@ static void lodepng_free(void* ptr) {
 }
 #else /*LODEPNG_COMPILE_ALLOCATORS*/
 /* TODO: support giving additional void* payload to the custom allocators */
-/*------------------------------------start----------------------------------------*/
-
-typedef struct node {
-    void* ptr;
-    struct node* next;
-} node_t;
-
-typedef struct {
-    node_t* head;
-} linked_list_t;
-
-linked_list_t *lvgl_my_malloc_linklist = NULL;
-
-
-linked_list_t* create_list() {
-    linked_list_t* list = (linked_list_t*)malloc(sizeof(linked_list_t));
-    if(list == NULL){
-      return NULL;
-    }
-    list->head = NULL;
-    return list;
-}
-
-void add_node(linked_list_t* list, void* ptr) {
-  if(list && ptr){
-    node_t* new_node = (node_t*)malloc(sizeof(node_t));
-    if(new_node) {
-      new_node->ptr = ptr;
-      new_node->next = list->head;
-      list->head = new_node;
-    }
-  }
-}
-
-void remove_node(linked_list_t* list, void* ptr) {
-    if(list && ptr){
-      node_t* temp = list->head;
-      node_t* prev = NULL;
-
-      if (temp != NULL && temp->ptr == ptr) {
-          list->head = temp->next;
-          if(temp->ptr) {
-            free(temp->ptr);
-          }
-          free(temp);
-          temp = NULL;
-          return;
-      }
-
-      while (temp != NULL && temp->ptr != ptr) {
-          prev = temp;
-          temp = temp->next;
-      }
-
-      if (temp == NULL) return;
-      if(temp->ptr) {
-        free(temp->ptr);
-      }
-
-
-      prev->next = temp->next;
-      free(temp);
-      temp = NULL;
-    }
-}
-
-
-void remove_node1(linked_list_t* list, void* ptr) {
-    if(list && ptr){
-      node_t* temp = list->head;
-      node_t* prev = NULL;
-
-      if (temp != NULL && temp->ptr == ptr) {
-          list->head = temp->next;
-          free(temp);
-          temp = NULL;
-          return;
-      }
-
-      while (temp != NULL && temp->ptr != ptr) {
-          prev = temp;
-          temp = temp->next;
-      }
-
-      if (temp == NULL) return;
-
-      prev->next = temp->next;
-      free(temp);
-      temp = NULL;
-    }
-}
-
-void lvlg_my_free_all() {
-  if(lvgl_my_malloc_linklist) {
-    node_t* current = lvgl_my_malloc_linklist->head;
-    node_t* next;
-    while (current != NULL) {
-        next = current->next;
-        if(current->ptr)
-          free(current->ptr);  // 释放节点所指向的内存
-        if(current)
-          free(current);  // 释放节点本身
-        current = next;
-    }
-
-    lvgl_my_malloc_linklist->head = NULL;  // 将链表头设置为 NULL
-    // free(lvgl_my_malloc_linklist);  // 释放链表本身
-    // lvgl_my_malloc_linklist = NULL;
-  }
-}
-
-void* lvgl_my_malloc(size_t size){
-       if(lvgl_my_malloc_linklist == NULL) {
-                       lvgl_my_malloc_linklist = create_list();
-       }
-
-       void* ret = malloc(size);
-       if(ret) {
-               add_node(lvgl_my_malloc_linklist, ret);
-       }
-       return ret;
-}
-
-void* lvgl_my_realloc(void* ptr, size_t new_size) {
-       void* new_ptr = realloc(ptr, new_size);
-    if (new_ptr) {
-        remove_node1(lvgl_my_malloc_linklist, ptr);  // 删除旧的节点
-        add_node(lvgl_my_malloc_linklist, new_ptr);  // 添加一个新的节点
-    }
-    return new_ptr;
-}
-void lvgl_my_free(void* ptr) {
-       if(ptr) {
-               remove_node(lvgl_my_malloc_linklist, ptr);
-    ptr = NULL;
-       }
-
-}
-
-/*------------------------------------end----------------------------------------*/
-
 void* lodepng_malloc(size_t size) {
-       return lvgl_my_malloc(size);
+       return malloc(size);
 }
 void* lodepng_realloc(void* ptr, size_t new_size) {
-       return lvgl_my_realloc(ptr, new_size);
+       return realloc(ptr, new_size);
 }
 void lodepng_free(void* ptr) {
-       if(ptr) {
-    lvgl_my_free(ptr);
-    ptr = NULL;
-  }
-               
+       if(ptr)
+               free(ptr);
 }
-
 #endif /*LODEPNG_COMPILE_ALLOCATORS*/
 
 /* convince the compiler to inline a function, for use when this measurably improves performance */
@@ -273,14 +126,12 @@ to something as fast. */
 
 static void lodepng_memcpy(void* LODEPNG_RESTRICT dst,
                            const void* LODEPNG_RESTRICT src, size_t size) {
-  size_t i;
-  for(i = 0; i < size; i++) ((char*)dst)[i] = ((const char*)src)[i];
+  lv_memcpy(dst, src, size);
 }
 
 static void lodepng_memset(void* LODEPNG_RESTRICT dst,
                            int value, size_t num) {
-  size_t i;
-  for(i = 0; i < num; i++) ((char*)dst)[i] = (char)value;
+  lv_memset(dst, value, num);
 }
 
 /* does not check memory out of bounds, do not use on untrusted data */
@@ -5910,7 +5761,7 @@ static unsigned preProcessScanlines(unsigned char** out, size_t* outsize, const
     adam7 = (unsigned char*)lodepng_malloc(passstart[7]);
     if(!adam7 && passstart[7]) error = 83; /*alloc fail*/
 
-    if(!error) {
+    if(!error && adam7) {
       unsigned i;
 
       Adam7_interlace(adam7, in, w, h, bpp);
index 688a8c5..3bd21a9 100644 (file)
 #include "lv_png.h"
 #include "lodepng.h"
 #include <stdlib.h>
-#include "lv_ll.h"
-
-extern void* lvgl_my_malloc(size_t size);
-extern void* lvgl_my_realloc(void* ptr, size_t new_size);
-extern void lvgl_my_free(void* ptr);
-
-
-
-
 
 #undef lv_mem_alloc
-#define lv_mem_alloc lvgl_my_malloc
+#define lv_mem_alloc malloc
 
 #undef lv_mem_realloc
-#define lv_mem_realloc lvgl_my_realloc
+#define lv_mem_realloc realloc
 
 
 
@@ -34,12 +25,11 @@ extern void lvgl_my_free(void* ptr);
 static void png_free(void *ptr)
 {
        if(ptr) {
-               lvgl_my_free(ptr);
+               free(ptr);
                ptr = NULL;
        }
 }
 
-
 #undef lv_mem_free
 #define lv_mem_free png_free
 
@@ -102,7 +92,7 @@ static lv_res_t decoder_info(struct _lv_img_decoder_t * decoder, const void * sr
     /*If it's a PNG file...*/
     if(src_type == LV_IMG_SRC_FILE) {
         const char * fn = src;
-        if(!strcmp(&fn[strlen(fn) - 3], "png")) {              /*Check the extension*/
+        if(strcmp(lv_fs_get_ext(fn), "png") == 0) {              /*Check the extension*/
 
             /* Read the width and height from the file. They have a constant location:
              * [16..23]: width
@@ -112,14 +102,18 @@ static lv_res_t decoder_info(struct _lv_img_decoder_t * decoder, const void * sr
             lv_fs_file_t f;
             lv_fs_res_t res = lv_fs_open(&f, fn, LV_FS_MODE_RD);
             if(res != LV_FS_RES_OK) return LV_RES_INV;
+
             lv_fs_seek(&f, 16, LV_FS_SEEK_SET);
+
             uint32_t rn;
             lv_fs_read(&f, &size, 8, &rn);
-            if(rn != 8) return LV_RES_INV;
             lv_fs_close(&f);
+
+            if(rn != 8) return LV_RES_INV;
+
             /*Save the data in the header*/
             header->always_zero = 0;
-            header->cf = LV_IMG_CF_RAW_ALPHA;
+            header->cf = LV_IMG_CF_TRUE_COLOR_ALPHA;
             /*The width and height are stored in Big endian format so convert them to little endian*/
             header->w = (lv_coord_t)((size[0] & 0xff000000) >> 24) + ((size[0] & 0x00ff0000) >> 8);
             header->h = (lv_coord_t)((size[1] & 0xff000000) >> 24) + ((size[1] & 0x00ff0000) >> 8);
@@ -130,12 +124,34 @@ static lv_res_t decoder_info(struct _lv_img_decoder_t * decoder, const void * sr
     /*If it's a PNG file in a  C array...*/
     else if(src_type == LV_IMG_SRC_VARIABLE) {
         const lv_img_dsc_t * img_dsc = src;
+        const uint32_t data_size = img_dsc->data_size;
+        const uint32_t * size = ((uint32_t *)img_dsc->data) + 4;
         const uint8_t magic[] = {0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a};
+        if(data_size < sizeof(magic)) return LV_RES_INV;
         if(memcmp(magic, img_dsc->data, sizeof(magic))) return LV_RES_INV;
         header->always_zero = 0;
-        header->cf = img_dsc->header.cf;       /*Save the color format*/
-        header->w = img_dsc->header.w;         /*Save the color width*/
-        header->h = img_dsc->header.h;         /*Save the color height*/
+
+        if(img_dsc->header.cf) {
+            header->cf = img_dsc->header.cf;       /*Save the color format*/
+        }
+        else {
+            header->cf = LV_IMG_CF_TRUE_COLOR_ALPHA;
+        }
+
+        if(img_dsc->header.w) {
+            header->w = img_dsc->header.w;         /*Save the image width*/
+        }
+        else {
+            header->w = (lv_coord_t)((size[0] & 0xff000000) >> 24) + ((size[0] & 0x00ff0000) >> 8);
+        }
+
+        if(img_dsc->header.h) {
+            header->h = img_dsc->header.h;         /*Save the color height*/
+        }
+        else {
+            header->h = (lv_coord_t)((size[1] & 0xff000000) >> 24) + ((size[1] & 0x00ff0000) >> 8);
+        }
+
         return LV_RES_OK;
     }
 
@@ -147,30 +163,8 @@ static lv_res_t decoder_info(struct _lv_img_decoder_t * decoder, const void * sr
  * Open a PNG image and return the decided image
  * @param src can be file name or pointer to a C array
  * @param style style of the image object (unused now but certain formats might use it)
- * @return pointer to the decoded image or  `LV_IMG_DECODER_OPEN_FAIL` if failed
+ * @return pointer to the decoded image or `LV_IMG_DECODER_OPEN_FAIL` if failed
  */
-uint16_t rgb888_to_rgb565(uint8_t r, uint8_t g, uint8_t b) {
-    return ((r & 0xF8) << 8) | ((g & 0xFC) << 3) | (b >> 3);
-}
-
-typedef struct {
-    uint8_t red;
-    uint8_t green;
-    uint8_t blue;
-} _lv_color24_t;
-static void convert_color_depth1(uint8_t * img, uint32_t px_cnt)
-{
-    uint16_t color = 0;
-    int i = 0;
-    _lv_color24_t *img_rgb888 = (_lv_color24_t*)img;
-    for(i = 0; i < px_cnt; i++) {
-        color =  rgb888_to_rgb565(img_rgb888[i].red, img_rgb888[i].green, img_rgb888[i].blue);
-        img[i * 3 + 2] = 255;
-        img[i * 3 + 1] = color >> 8;
-        img[i * 3 + 0] = color & 0xFF;
-    }
-}
-
 static lv_res_t decoder_open(lv_img_decoder_t * decoder, lv_img_decoder_dsc_t * dsc)
 {
 
@@ -178,13 +172,11 @@ static lv_res_t decoder_open(lv_img_decoder_t * decoder, lv_img_decoder_dsc_t *
     uint32_t error;                 /*For the return values of PNG decoder functions*/
 
     uint8_t * img_data = NULL;
-    uint8_t * img_data_cov = NULL;
 
     /*If it's a PNG file...*/
     if(dsc->src_type == LV_IMG_SRC_FILE) {
         const char * fn = dsc->src;
-
-        if(!strcmp(&fn[strlen(fn) - 3], "png")) {              /*Check the extension*/
+        if(strcmp(lv_fs_get_ext(fn), "png") == 0) {              /*Check the extension*/
 
             /*Load the PNG file into buffer. It's still compressed (not decoded)*/
             unsigned char * png_data;      /*Pointer to the loaded data. Same as the original file just loaded into the RAM*/
@@ -192,52 +184,49 @@ static lv_res_t decoder_open(lv_img_decoder_t * decoder, lv_img_decoder_dsc_t *
 
             error = lodepng_load_file(&png_data, &png_data_size, fn);   /*Load the file*/
             if(error) {
-                LV_LOG_WARN("error %u: %s\n", error, lodepng_error_text(error));
+                LV_LOG_WARN("error %" LV_PRIu32 ": %s\n", error, lodepng_error_text(error));
                 return LV_RES_INV;
             }
 
             /*Decode the PNG image*/
-            uint32_t png_width;             /*Will be the width of the decoded image*/
-            uint32_t png_height;            /*Will be the width of the decoded image*/
+            unsigned png_width;             /*Will be the width of the decoded image*/
+            unsigned png_height;            /*Will be the width of the decoded image*/
 
             /*Decode the loaded image in ARGB8888 */
             error = lodepng_decode32(&img_data, &png_width, &png_height, png_data, png_data_size);
             lv_mem_free(png_data); /*Free the loaded file*/
             if(error) {
-                LV_LOG_WARN("error %u: %s\n", error, lodepng_error_text(error));
-                return LV_RES_INV;
-            }
-            /*Convert the image to the system's color depth*/
-            convert_color_depth(img_data,  png_width * png_height);
-
-            if(img_data) {
-                img_data_cov = lv_mem_alloc(png_width * png_height * 3);
-                if(img_data_cov) {
-                    lv_memcpy(img_data_cov, img_data, png_width * png_height * 3);
+                if(img_data != NULL) {
                     lv_mem_free(img_data);
-                    img_data = NULL;
                 }
+                LV_LOG_WARN("error %" LV_PRIu32 ": %s\n", error, lodepng_error_text(error));
+                return LV_RES_INV;
             }
 
-            dsc->img_data = img_data_cov;
+            /*Convert the image to the system's color depth*/
+            convert_color_depth(img_data,  png_width * png_height);
+            dsc->img_data = img_data;
             return LV_RES_OK;     /*The image is fully decoded. Return with its pointer*/
         }
     }
     /*If it's a PNG file in a  C array...*/
     else if(dsc->src_type == LV_IMG_SRC_VARIABLE) {
         const lv_img_dsc_t * img_dsc = dsc->src;
-        uint32_t png_width;             /*No used, just required by he decoder*/
-        uint32_t png_height;            /*No used, just required by he decoder*/
+        unsigned png_width;             /*No used, just required by he decoder*/
+        unsigned png_height;            /*No used, just required by he decoder*/
 
         /*Decode the image in ARGB8888 */
-        error = lodepng_decode24(&img_data, &png_width, &png_height, img_dsc->data, img_dsc->data_size);
+        error = lodepng_decode32(&img_data, &png_width, &png_height, img_dsc->data, img_dsc->data_size);
 
         if(error) {
+            if(img_data != NULL) {
+                lv_mem_free(img_data);
+            }
             return LV_RES_INV;
         }
 
         /*Convert the image to the system's color depth*/
-        //convert_color_depth(img_data,  png_width * png_height);
+        convert_color_depth(img_data,  png_width * png_height);
 
         dsc->img_data = img_data;
         return LV_RES_OK;     /*Return with its pointer*/
index 2d9ba9e..079873e 100644 (file)
@@ -7,7 +7,6 @@
  *      INCLUDES
  *********************/
 #include "lv_qrcode.h"
-#if LV_USE_CANVAS != 0
 #if LV_USE_QRCODE
 
 #include "qrcodegen.h"
@@ -214,4 +213,3 @@ static void lv_qrcode_destructor(const lv_obj_class_t * class_p, lv_obj_t * obj)
 }
 
 #endif /*LV_USE_QRCODE*/
-#endif /*LV_USE_CANVAS*/
index 4b06c78..37ee742 100644 (file)
@@ -1,9 +1,9 @@
-/* 
+/*
  * QR Code generator library (C)
- * 
+ *
  * Copyright (c) Project Nayuki. (MIT License)
  * https://www.nayuki.io/page/qr-code-generator-library
- * 
+ *
  * Permission is hereby granted, free of charge, to any person obtaining a copy of
  * this software and associated documentation files (the "Software"), to deal in
  * the Software without restriction, including without limitation the rights to
index dceddf6..b484e91 100644 (file)
@@ -1,9 +1,9 @@
-/* 
+/*
  * QR Code generator library (C)
- * 
+ *
  * Copyright (c) Project Nayuki. (MIT License)
  * https://www.nayuki.io/page/qr-code-generator-library
- * 
+ *
  * Permission is hereby granted, free of charge, to any person obtaining a copy of
  * this software and associated documentation files (the "Software"), to deal in
  * the Software without restriction, including without limitation the rights to
@@ -33,14 +33,14 @@ extern "C" {
 #endif
 
 
-/* 
+/*
  * This library creates QR Code symbols, which is a type of two-dimension barcode.
  * Invented by Denso Wave and described in the ISO/IEC 18004 standard.
  * A QR Code structure is an immutable square grid of black and white cells.
  * The library provides functions to create a QR Code from text or binary data.
  * The library covers the QR Code Model 2 specification, supporting all versions (sizes)
  * from 1 to 40, all 4 error correction levels, and 4 character encoding modes.
- * 
+ *
  * Ways to create a QR Code object:
  * - High level: Take the payload data and call qrcodegen_encodeText() or qrcodegen_encodeBinary().
  * - Low level: Custom-make the list of segments and call
@@ -51,7 +51,7 @@ extern "C" {
 
 /*---- Enum and struct types----*/
 
-/* 
+/*
  * The error correction level in a QR Code symbol.
  */
 enum qrcodegen_Ecc {
@@ -64,7 +64,7 @@ enum qrcodegen_Ecc {
 };
 
 
-/* 
+/*
  * The mask pattern used in a QR Code symbol.
  */
 enum qrcodegen_Mask {
@@ -83,7 +83,7 @@ enum qrcodegen_Mask {
 };
 
 
-/* 
+/*
  * Describes how a segment's data bits are interpreted.
  */
 enum qrcodegen_Mode {
@@ -95,7 +95,7 @@ enum qrcodegen_Mode {
 };
 
 
-/* 
+/*
  * A segment of character/binary/control data in a QR Code symbol.
  * The mid-level way to create a segment is to take the payload data
  * and call a factory function such as qrcodegen_makeNumeric().
@@ -147,7 +147,7 @@ struct qrcodegen_Segment {
 
 /*---- Functions (high level) to generate QR Codes ----*/
 
-/* 
+/*
  * Encodes the given text string to a QR Code, returning true if encoding succeeded.
  * If the data is too long to fit in any version in the given range
  * at the given ECC level, then false is returned.
@@ -170,7 +170,7 @@ bool qrcodegen_encodeText(const char *text, uint8_t tempBuffer[], uint8_t qrcode
        enum qrcodegen_Ecc ecl, int minVersion, int maxVersion, enum qrcodegen_Mask mask, bool boostEcl);
 
 
-/* 
+/*
  * Encodes the given binary data to a QR Code, returning true if encoding succeeded.
  * If the data is too long to fit in any version in the given range
  * at the given ECC level, then false is returned.
@@ -194,7 +194,7 @@ bool qrcodegen_encodeBinary(uint8_t dataAndTemp[], size_t dataLen, uint8_t qrcod
 
 /*---- Functions (low level) to generate QR Codes ----*/
 
-/* 
+/*
  * Renders a QR Code representing the given segments at the given error correction level.
  * The smallest possible QR Code version is automatically chosen for the output. Returns true if
  * QR Code creation succeeded, or false if the data is too long to fit in any version. The ECC level
@@ -210,7 +210,7 @@ bool qrcodegen_encodeSegments(const struct qrcodegen_Segment segs[], size_t len,
        enum qrcodegen_Ecc ecl, uint8_t tempBuffer[], uint8_t qrcode[]);
 
 
-/* 
+/*
  * Renders a QR Code representing the given segments with the given encoding parameters.
  * Returns true if QR Code creation succeeded, or false if the data is too long to fit in the range of versions.
  * The smallest possible QR Code version within the given range is automatically
@@ -229,7 +229,7 @@ bool qrcodegen_encodeSegmentsAdvanced(const struct qrcodegen_Segment segs[], siz
        int minVersion, int maxVersion, int mask, bool boostEcl, uint8_t tempBuffer[], uint8_t qrcode[]);
 
 
-/* 
+/*
  * Tests whether the given string can be encoded as a segment in alphanumeric mode.
  * A string is encodable iff each character is in the following set: 0 to 9, A to Z
  * (uppercase only), space, dollar, percent, asterisk, plus, hyphen, period, slash, colon.
@@ -237,14 +237,14 @@ bool qrcodegen_encodeSegmentsAdvanced(const struct qrcodegen_Segment segs[], siz
 bool qrcodegen_isAlphanumeric(const char *text);
 
 
-/* 
+/*
  * Tests whether the given string can be encoded as a segment in numeric mode.
  * A string is encodable iff each character is in the range 0 to 9.
  */
 bool qrcodegen_isNumeric(const char *text);
 
 
-/* 
+/*
  * Returns the number of bytes (uint8_t) needed for the data buffer of a segment
  * containing the given number of characters using the given mode. Notes:
  * - Returns SIZE_MAX on failure, i.e. numChars > INT16_MAX or
@@ -258,7 +258,7 @@ bool qrcodegen_isNumeric(const char *text);
 size_t qrcodegen_calcSegmentBufferSize(enum qrcodegen_Mode mode, size_t numChars);
 
 
-/* 
+/*
  * Returns a segment representing the given binary data encoded in
  * byte mode. All input byte arrays are acceptable. Any text string
  * can be converted to UTF-8 bytes and encoded as a byte mode segment.
@@ -266,13 +266,13 @@ size_t qrcodegen_calcSegmentBufferSize(enum qrcodegen_Mode mode, size_t numChars
 struct qrcodegen_Segment qrcodegen_makeBytes(const uint8_t data[], size_t len, uint8_t buf[]);
 
 
-/* 
+/*
  * Returns a segment representing the given string of decimal digits encoded in numeric mode.
  */
 struct qrcodegen_Segment qrcodegen_makeNumeric(const char *digits, uint8_t buf[]);
 
 
-/* 
+/*
  * Returns a segment representing the given text string encoded in alphanumeric mode.
  * The characters allowed are: 0 to 9, A to Z (uppercase only), space,
  * dollar, percent, asterisk, plus, hyphen, period, slash, colon.
@@ -280,7 +280,7 @@ struct qrcodegen_Segment qrcodegen_makeNumeric(const char *digits, uint8_t buf[]
 struct qrcodegen_Segment qrcodegen_makeAlphanumeric(const char *text, uint8_t buf[]);
 
 
-/* 
+/*
  * Returns a segment representing an Extended Channel Interpretation
  * (ECI) designator with the given assignment value.
  */
@@ -289,7 +289,7 @@ struct qrcodegen_Segment qrcodegen_makeEci(long assignVal, uint8_t buf[]);
 
 /*---- Functions to extract raw data from QR Codes ----*/
 
-/* 
+/*
  * Returns the side length of the given QR Code, assuming that encoding succeeded.
  * The result is in the range [21, 177]. Note that the length of the array buffer
  * is related to the side length - every 'uint8_t qrcode[]' must have length at least
@@ -298,18 +298,18 @@ struct qrcodegen_Segment qrcodegen_makeEci(long assignVal, uint8_t buf[]);
 int qrcodegen_getSize(const uint8_t qrcode[]);
 
 
-/* 
+/*
  * Returns the color of the module (pixel) at the given coordinates, which is false
  * for white or true for black. The top left corner has the coordinates (x=0, y=0).
  * If the given coordinates are out of bounds, then false (white) is returned.
  */
 bool qrcodegen_getModule(const uint8_t qrcode[], int x, int y);
 
-/* 
+/*
  * Returns the qrcode size of the specified version. Returns -1 on failure
  */
 int qrcodegen_version2size(int version);
-/* 
+/*
  * Returns the min version of the data that can be stored. Returns -1 on failure
  */
 int qrcodegen_getMinFitVersion(enum qrcodegen_Ecc ecl, size_t dataLen);
index ce45b70..f13e47d 100644 (file)
  *      TYPEDEFS
  **********************/
 #include <stdlib.h>
-
-extern void* lvgl_my_malloc(size_t size);
-extern void* lvgl_my_realloc(void* ptr, size_t new_size);
-extern void lvgl_my_free(void* ptr);
-
-
-
 #undef lv_mem_alloc
-#define lv_mem_alloc lvgl_my_malloc
+#define lv_mem_alloc malloc
 
 #undef lv_mem_realloc
-#define lv_mem_realloc lvgl_my_realloc
+#define lv_mem_realloc realloc
 
 static void png_free(void *ptr)
 {
        if(ptr) {
-               lvgl_my_free(ptr);
+               free(ptr);
                ptr = NULL;
        }
 }
@@ -137,7 +130,7 @@ static lv_res_t decoder_read_line(lv_img_decoder_t * decoder, lv_img_decoder_dsc
                                   lv_coord_t len, uint8_t * buf);
 static void decoder_close(lv_img_decoder_t * decoder, lv_img_decoder_dsc_t * dsc);
 static size_t input_func(JDEC * jd, uint8_t * buff, size_t ndata);
-static int is_jpg(const uint8_t * raw_data);
+static int is_jpg(const uint8_t * raw_data, size_t len);
 static void lv_sjpg_cleanup(SJPEG * sjpeg);
 static void lv_sjpg_free(SJPEG * sjpeg);
 
@@ -183,8 +176,9 @@ static lv_res_t decoder_info(lv_img_decoder_t * decoder, const void * src, lv_im
     lv_res_t ret = LV_RES_OK;
 
     if(src_type == LV_IMG_SRC_VARIABLE) {
-        uint8_t * raw_sjpeg_data = (uint8_t *)((lv_img_dsc_t *)src)->data;
-        const uint32_t raw_sjpeg_data_size = ((lv_img_dsc_t *)src)->data_size;
+        const lv_img_dsc_t * img_dsc = src;
+        uint8_t * raw_sjpeg_data = (uint8_t *)img_dsc->data;
+        const uint32_t raw_sjpeg_data_size = img_dsc->data_size;
 
         if(!strncmp((char *)raw_sjpeg_data, "_SJPG__", strlen("_SJPG__"))) {
 
@@ -201,7 +195,7 @@ static lv_res_t decoder_info(lv_img_decoder_t * decoder, const void * src, lv_im
             return ret;
 
         }
-        else if(is_jpg(raw_sjpeg_data) == true) {
+        else if(is_jpg(raw_sjpeg_data, raw_sjpeg_data_size) == true) {
             header->always_zero = 0;
             header->cf = LV_IMG_CF_RAW;
 
@@ -236,7 +230,7 @@ end:
     }
     else if(src_type == LV_IMG_SRC_FILE) {
         const char * fn = src;
-        if(!strcmp(&fn[strlen(fn) - 5], ".sjpg")) {
+        if(strcmp(lv_fs_get_ext(fn), "sjpg") == 0) {
 
             uint8_t buff[22];
             memset(buff, 0, sizeof(buff));
@@ -271,7 +265,7 @@ end:
 
             }
         }
-        else if(!strcmp(&fn[strlen(fn) - 4], ".jpg")) {
+        else if(strcmp(lv_fs_get_ext(fn), "jpg") == 0) {
             lv_fs_file_t file;
             lv_fs_res_t res = lv_fs_open(&file, fn, LV_FS_MODE_RD);
             if(res != LV_FS_RES_OK) return 78;
@@ -374,6 +368,7 @@ static lv_res_t decoder_open(lv_img_decoder_t * decoder, lv_img_decoder_dsc_t *
     if(dsc->src_type == LV_IMG_SRC_VARIABLE) {
         uint8_t * data;
         SJPEG * sjpeg = (SJPEG *) dsc->user_data;
+        const uint32_t raw_sjpeg_data_size = ((lv_img_dsc_t *)dsc->src)->data_size;
         if(sjpeg == NULL) {
             sjpeg =  lv_mem_alloc(sizeof(SJPEG));
             if(!sjpeg) return LV_RES_INV;
@@ -446,8 +441,7 @@ static lv_res_t decoder_open(lv_img_decoder_t * decoder, lv_img_decoder_dsc_t *
             dsc->img_data = NULL;
             return lv_ret;
         }
-
-        else if(is_jpg(sjpeg->sjpeg_data) == true) {
+        else if(is_jpg(sjpeg->sjpeg_data, raw_sjpeg_data_size) == true) {
 
             uint8_t * workb_temp = lv_mem_alloc(TJPGD_WORKBUFF_SIZE);
             if(! workb_temp) {
@@ -528,7 +522,7 @@ end:
         const char * fn = dsc->src;
         uint8_t * data;
 
-        if(!strcmp(&fn[strlen(fn) - 5], ".sjpg")) {
+        if(strcmp(lv_fs_get_ext(fn), "sjpg") == 0) {
 
             uint8_t buff[22];
             memset(buff, 0, sizeof(buff));
@@ -631,7 +625,7 @@ end:
                 return LV_RES_OK;
             }
         }
-        else if(!strcmp(&fn[strlen(fn) - 4], ".jpg")) {
+        else if(strcmp(lv_fs_get_ext(fn), "jpg") == 0) {
 
             lv_fs_file_t lv_file;
             lv_fs_res_t res = lv_fs_open(&lv_file, fn, LV_FS_MODE_RD);
@@ -792,7 +786,7 @@ static lv_res_t decoder_read_line(lv_img_decoder_t * decoder, lv_img_decoder_dsc
             uint16_t col_16bit = (*cache++ & 0xf8) << 8;
             col_16bit |= (*cache++ & 0xFC) << 3;
             col_16bit |= (*cache++ >> 3);
-#if  LV_BIG_ENDIAN_SYSTEM == 1
+#if  LV_BIG_ENDIAN_SYSTEM == 1 || LV_COLOR_16_SWAP == 1
             buf[offset++] = col_16bit >> 8;
             buf[offset++] = col_16bit & 0xff;
 #else
@@ -856,7 +850,7 @@ static lv_res_t decoder_read_line(lv_img_decoder_t * decoder, lv_img_decoder_dsc
             uint16_t col_8bit = (*cache++ & 0xf8) << 8;
             col_8bit |= (*cache++ & 0xFC) << 3;
             col_8bit |= (*cache++ >> 3);
-#if  LV_BIG_ENDIAN_SYSTEM == 1
+#if  LV_BIG_ENDIAN_SYSTEM == 1 || LV_COLOR_16_SWAP == 1
             buf[offset++] = col_8bit >> 8;
             buf[offset++] = col_8bit & 0xff;
 #else
@@ -915,9 +909,10 @@ static void decoder_close(lv_img_decoder_t * decoder, lv_img_decoder_dsc_t * dsc
     }
 }
 
-static int is_jpg(const uint8_t * raw_data)
+static int is_jpg(const uint8_t * raw_data, size_t len)
 {
     const uint8_t jpg_signature[] = {0xFF, 0xD8, 0xFF,  0xE0,  0x00,  0x10, 0x4A,  0x46, 0x49, 0x46};
+    if(len < sizeof(jpg_signature)) return false;
     return memcmp(jpg_signature, raw_data, sizeof(jpg_signature)) == 0;
 }
 
index 53158e7..47ddefb 100644 (file)
@@ -946,7 +946,7 @@ static JRESULT mcu_output (
        }
 
        /* Output the rectangular */
-       return outfunc(jd, jd->workbuf, &rect) ? JDR_OK : JDR_INTR; 
+       return outfunc(jd, jd->workbuf, &rect) ? JDR_OK : JDR_INTR;
 }
 
 
index 84d5fc6..c8eeffb 100644 (file)
@@ -42,6 +42,10 @@ void lv_extra_init(void)
     lv_grid_init();
 #endif
 
+#if LV_USE_MSG
+    lv_msg_init();
+#endif
+
 #if LV_USE_FS_FATFS != '\0'
     lv_fs_fatfs_init();
 #endif
@@ -58,6 +62,10 @@ void lv_extra_init(void)
     lv_fs_win32_init();
 #endif
 
+#if LV_USE_FFMPEG
+    lv_ffmpeg_init();
+#endif
+
 #if LV_USE_FS_HELIOS != '\0'
     lv_fs_if_helios_init();
     lv_fs_if_helios_bak_init();
@@ -91,10 +99,6 @@ void lv_extra_init(void)
     lv_freetype_init(0, 0, 0);
 #  endif
 #endif
-
-#if LV_USE_FFMPEG
-    lv_ffmpeg_init();
-#endif
 }
 
 /**********************
index ea9ce38..c0306a9 100644 (file)
@@ -14,6 +14,12 @@ extern "C" {
  *      INCLUDES
  *********************/
 
+#include "layouts/lv_layouts.h"
+#include "libs/lv_libs.h"
+#include "others/lv_others.h"
+#include "themes/lv_themes.h"
+#include "widgets/lv_widgets.h"
+
 /*********************
  *      DEFINES
  *********************/
index 874e6a9..505a977 100644 (file)
@@ -81,6 +81,27 @@ void lv_gridnav_remove(lv_obj_t * obj)
     lv_obj_remove_event_cb(obj, gridnav_event_cb);
 }
 
+void lv_gridnav_set_focused(lv_obj_t * cont, lv_obj_t * to_focus, lv_anim_enable_t anim_en)
+{
+    LV_ASSERT_NULL(to_focus);
+    lv_gridnav_dsc_t * dsc = lv_obj_get_event_user_data(cont, gridnav_event_cb);
+    if(dsc == NULL) {
+        LV_LOG_WARN("`cont` is not a gridnav container");
+        return;
+    }
+
+    if(obj_is_focuable(to_focus) == false) {
+        LV_LOG_WARN("The object to focus is not focusable");
+        return;
+    }
+
+    lv_obj_clear_state(dsc->focused_obj, LV_STATE_FOCUSED | LV_STATE_FOCUS_KEY);
+    lv_obj_add_state(to_focus, LV_STATE_FOCUSED | LV_STATE_FOCUS_KEY);
+    lv_obj_scroll_to_view(to_focus, anim_en);
+    dsc->focused_obj = to_focus;
+
+}
+
 /**********************
  *   STATIC FUNCTIONS
  **********************/
@@ -98,7 +119,7 @@ static void gridnav_event_cb(lv_event_t * e)
         if(dsc->focused_obj == NULL) dsc->focused_obj = find_first_focusable(obj);
         if(dsc->focused_obj == NULL) return;
 
-        uint32_t key = lv_indev_get_key(lv_indev_get_act());
+        uint32_t key = lv_event_get_key(e);
         lv_obj_t * guess = NULL;
 
         if(key == LV_KEY_RIGHT) {
@@ -196,6 +217,7 @@ static void gridnav_event_cb(lv_event_t * e)
         if(dsc->focused_obj == NULL)  dsc->focused_obj = find_first_focusable(obj);
         if(dsc->focused_obj) {
             lv_obj_add_state(dsc->focused_obj, LV_STATE_FOCUSED | LV_STATE_FOCUS_KEY);
+            lv_obj_clear_state(dsc->focused_obj, LV_STATE_PRESSED); /*Be sure the focuses obj is not stuck in pressed state*/
             lv_obj_scroll_to_view(dsc->focused_obj, LV_ANIM_OFF);
         }
     }
@@ -327,7 +349,7 @@ static lv_obj_t * find_last_focusable(lv_obj_t * obj)
 {
     uint32_t child_cnt = lv_obj_get_child_cnt(obj);
     int32_t i;
-    for(i = child_cnt - 1; i >= 0; i++) {
+    for(i = child_cnt - 1; i >= 0; i--) {
         lv_obj_t * child = lv_obj_get_child(obj, i);
         if(obj_is_focuable(child)) return child;
     }
index ea81595..f480ded 100644 (file)
@@ -103,6 +103,14 @@ void lv_gridnav_add(lv_obj_t * obj, lv_gridnav_ctrl_t ctrl);
  */
 void lv_gridnav_remove(lv_obj_t * obj);
 
+/**
+ * Manually focus an object on gridnav container
+ * @param cont      pointer to a gridnav container
+ * @param to_focus  pointer to an object to focus
+ * @param anim_en   LV_ANIM_ON/OFF
+ */
+void lv_gridnav_set_focused(lv_obj_t * cont, lv_obj_t * to_focus, lv_anim_enable_t anim_en);
+
 /**********************
  *      MACROS
  **********************/
index a433866..106d85e 100644 (file)
@@ -16,6 +16,10 @@ extern "C" {
 #include "snapshot/lv_snapshot.h"
 #include "monkey/lv_monkey.h"
 #include "gridnav/lv_gridnav.h"
+#include "fragment/lv_fragment.h"
+#include "imgfont/lv_imgfont.h"
+#include "msg/lv_msg.h"
+#include "ime/lv_ime_pinyin.h"
 
 /*********************
  *      DEFINES
index e9fa751..1b22751 100644 (file)
@@ -45,7 +45,9 @@
  */
 uint32_t lv_snapshot_buf_size_needed(lv_obj_t * obj, lv_img_cf_t cf)
 {
+    LV_ASSERT_NULL(obj);
     switch(cf) {
+        case LV_IMG_CF_TRUE_COLOR:
         case LV_IMG_CF_TRUE_COLOR_ALPHA:
         case LV_IMG_CF_ALPHA_1BIT:
         case LV_IMG_CF_ALPHA_2BIT:
@@ -81,10 +83,12 @@ uint32_t lv_snapshot_buf_size_needed(lv_obj_t * obj, lv_img_cf_t cf)
  */
 lv_res_t lv_snapshot_take_to_buf(lv_obj_t * obj, lv_img_cf_t cf, lv_img_dsc_t * dsc, void * buf, uint32_t buff_size)
 {
-    LV_ASSERT(dsc);
-    LV_ASSERT(buf);
+    LV_ASSERT_NULL(obj);
+    LV_ASSERT_NULL(dsc);
+    LV_ASSERT_NULL(buf);
 
     switch(cf) {
+        case LV_IMG_CF_TRUE_COLOR:
         case LV_IMG_CF_TRUE_COLOR_ALPHA:
         case LV_IMG_CF_ALPHA_1BIT:
         case LV_IMG_CF_ALPHA_2BIT:
@@ -124,7 +128,6 @@ lv_res_t lv_snapshot_take_to_buf(lv_obj_t * obj, lv_img_cf_t cf, lv_img_dsc_t *
     lv_memset_00(&fake_disp, sizeof(lv_disp_t));
     fake_disp.driver = &driver;
 
-
     lv_draw_ctx_t * draw_ctx = lv_mem_alloc(obj_disp->driver->draw_ctx_size);
     LV_ASSERT_MALLOC(draw_ctx);
     if(draw_ctx == NULL) return LV_RES_INV;
@@ -138,7 +141,7 @@ lv_res_t lv_snapshot_take_to_buf(lv_obj_t * obj, lv_img_cf_t cf, lv_img_dsc_t *
     lv_disp_t * refr_ori = _lv_refr_get_disp_refreshing();
     _lv_refr_set_disp_refreshing(&fake_disp);
 
-    lv_refr_obj(draw_ctx, obj);
+    lv_obj_redraw(draw_ctx, obj);
 
     _lv_refr_set_disp_refreshing(refr_ori);
     obj_disp->driver->draw_ctx_deinit(fake_disp.driver, draw_ctx);
@@ -160,14 +163,17 @@ lv_res_t lv_snapshot_take_to_buf(lv_obj_t * obj, lv_img_cf_t cf, lv_img_dsc_t *
  */
 lv_img_dsc_t * lv_snapshot_take(lv_obj_t * obj, lv_img_cf_t cf)
 {
+    LV_ASSERT_NULL(obj);
     uint32_t buff_size = lv_snapshot_buf_size_needed(obj, cf);
 
     void * buf = lv_mem_alloc(buff_size);
+    LV_ASSERT_MALLOC(buf);
     if(buf == NULL) {
         return NULL;
     }
 
     lv_img_dsc_t * dsc = lv_mem_alloc(sizeof(lv_img_dsc_t));
+    LV_ASSERT_MALLOC(buf);
     if(dsc == NULL) {
         lv_mem_free(buf);
         return NULL;
index 8750ae4..d342455 100644 (file)
@@ -89,7 +89,6 @@ static void style_init(void)
     lv_style_set_arc_width(&styles->white, 2);
     lv_style_set_arc_color(&styles->white, COLOR_WHITE);
 
-
     style_init_reset(&styles->light);
     lv_style_set_bg_opa(&styles->light, LV_OPA_COVER);
     lv_style_set_bg_color(&styles->light, COLOR_LIGHT);
@@ -224,20 +223,17 @@ static void theme_apply(lv_theme_t * th, lv_obj_t * obj)
 #if LV_USE_MSGBOX
         if(lv_obj_check_type(lv_obj_get_parent(obj), &lv_msgbox_class)) {
             lv_obj_add_style(obj, &styles->light, LV_PART_ITEMS);
-            lv_obj_add_style(obj, &styles->dark, LV_PART_ITEMS | LV_STATE_PRESSED);
             return;
         }
 #endif
 #if LV_USE_TABVIEW
         if(lv_obj_check_type(lv_obj_get_parent(obj), &lv_tabview_class)) {
             lv_obj_add_style(obj, &styles->light, LV_PART_ITEMS);
-            lv_obj_add_style(obj, &styles->dark, LV_PART_ITEMS | LV_STATE_PRESSED);
             return;
         }
 #endif
         lv_obj_add_style(obj, &styles->white, 0);
         lv_obj_add_style(obj, &styles->light, LV_PART_ITEMS);
-        lv_obj_add_style(obj, &styles->dark, LV_PART_ITEMS | LV_STATE_PRESSED);
     }
 #endif
 
@@ -273,7 +269,6 @@ static void theme_apply(lv_theme_t * th, lv_obj_t * obj)
 #if LV_USE_SWITCH
     else if(lv_obj_check_type(obj, &lv_switch_class)) {
         lv_obj_add_style(obj, &styles->light, 0);
-        lv_obj_add_style(obj, &styles->dark, LV_PART_INDICATOR | LV_STATE_CHECKED);
         lv_obj_add_style(obj, &styles->dim, LV_PART_KNOB);
     }
 #endif
@@ -349,14 +344,13 @@ static void theme_apply(lv_theme_t * th, lv_obj_t * obj)
     else if(lv_obj_check_type(obj, &lv_textarea_class)) {
         lv_obj_add_style(obj, &styles->white, 0);
         lv_obj_add_style(obj, &styles->scrollbar, LV_PART_SCROLLBAR);
-        lv_obj_add_style(obj, &styles->ta_cursor, LV_PART_CURSOR);
+        lv_obj_add_style(obj, &styles->ta_cursor, LV_PART_CURSOR | LV_STATE_FOCUSED);
     }
 #endif
 
 #if LV_USE_CALENDAR
     else if(lv_obj_check_type(obj, &lv_calendar_class)) {
         lv_obj_add_style(obj, &styles->light, 0);
-        lv_obj_add_style(obj, &styles->light, LV_PART_ITEMS | LV_STATE_PRESSED);
     }
 #endif
 
index a481b3d..47392b0 100644 (file)
@@ -218,26 +218,32 @@ static void style_init(void)
     color_card = theme.flags & MODE_DARK ? DARK_COLOR_CARD : LIGHT_COLOR_CARD;
     color_grey = theme.flags & MODE_DARK ? DARK_COLOR_GREY : LIGHT_COLOR_GREY;
 
+    style_init_reset(&styles->transition_delayed);
+    style_init_reset(&styles->transition_normal);
+#if TRANSITION_TIME
     static lv_style_transition_dsc_t trans_delayed;
     lv_style_transition_dsc_init(&trans_delayed, trans_props, lv_anim_path_linear, TRANSITION_TIME, 70, NULL);
 
     static lv_style_transition_dsc_t trans_normal;
     lv_style_transition_dsc_init(&trans_normal, trans_props, lv_anim_path_linear, TRANSITION_TIME, 0, NULL);
 
-    style_init_reset(&styles->transition_delayed);
     lv_style_set_transition(&styles->transition_delayed, &trans_delayed); /*Go back to default state with delay*/
 
-    style_init_reset(&styles->transition_normal);
     lv_style_set_transition(&styles->transition_normal, &trans_normal); /*Go back to default state with delay*/
+#endif
 
     style_init_reset(&styles->scrollbar);
-    lv_style_set_bg_color(&styles->scrollbar, (theme.flags & MODE_DARK) ? lv_palette_darken(LV_PALETTE_GREY,
-                                                                                            2) : lv_palette_main(LV_PALETTE_GREY));
+    lv_color_t sb_color = (theme.flags & MODE_DARK) ? lv_palette_darken(LV_PALETTE_GREY,
+                                                                        2) : lv_palette_main(LV_PALETTE_GREY);
+    lv_style_set_bg_color(&styles->scrollbar, sb_color);
+
     lv_style_set_radius(&styles->scrollbar, LV_RADIUS_CIRCLE);
     lv_style_set_pad_all(&styles->scrollbar, lv_disp_dpx(theme.disp, 7));
     lv_style_set_width(&styles->scrollbar,  lv_disp_dpx(theme.disp, 5));
     lv_style_set_bg_opa(&styles->scrollbar,  LV_OPA_40);
+#if TRANSITION_TIME
     lv_style_set_transition(&styles->scrollbar, &trans_normal);
+#endif
 
     style_init_reset(&styles->scrollbar_scrolled);
     lv_style_set_bg_opa(&styles->scrollbar_scrolled,  LV_OPA_COVER);
@@ -993,6 +999,7 @@ static void theme_apply(lv_theme_t * th, lv_obj_t * obj)
     else if(lv_obj_check_type(obj, &lv_textarea_class)) {
         lv_obj_add_style(obj, &styles->card, 0);
         lv_obj_add_style(obj, &styles->pad_small, 0);
+        lv_obj_add_style(obj, &styles->disabled, LV_STATE_DISABLED);
         lv_obj_add_style(obj, &styles->outline_primary, LV_STATE_FOCUS_KEY);
         lv_obj_add_style(obj, &styles->outline_secondary, LV_STATE_EDITED);
         lv_obj_add_style(obj, &styles->scrollbar, LV_PART_SCROLLBAR);
@@ -1079,11 +1086,11 @@ static void theme_apply(lv_theme_t * th, lv_obj_t * obj)
         lv_obj_add_style(obj, &styles->menu_pressed, LV_STATE_PRESSED);
         lv_obj_add_style(obj, &styles->bg_color_primary_muted, LV_STATE_PRESSED | LV_STATE_CHECKED);
         lv_obj_add_style(obj, &styles->bg_color_primary_muted, LV_STATE_CHECKED);
+        lv_obj_add_style(obj, &styles->bg_color_primary, LV_STATE_FOCUS_KEY);
     }
     else if(lv_obj_check_type(obj, &lv_menu_sidebar_header_cont_class) ||
             lv_obj_check_type(obj, &lv_menu_main_header_cont_class)) {
         lv_obj_add_style(obj, &styles->menu_header_cont, 0);
-        lv_obj_add_style(obj, &styles->menu_pressed, LV_STATE_PRESSED);
     }
     else if(lv_obj_check_type(obj, &lv_menu_page_class)) {
         lv_obj_add_style(obj, &styles->menu_page, 0);
index 79d4383..b249e76 100644 (file)
@@ -175,7 +175,7 @@ lv_theme_t * lv_theme_mono_init(lv_disp_t * disp, bool dark_bg, const lv_font_t
     /*This trick is required only to avoid the garbage collection of
      *styles' data if LVGL is used in a binding (e.g. Micropython)
      *In a general case styles could be in simple `static lv_style_t my_style...` variables*/
-    if(!lv_theme_mono_is_inited()) {
+    if(!inited) {
         inited = false;
         LV_GC_ROOT(_lv_theme_default_styles) = lv_mem_alloc(sizeof(my_theme_styles_t));
         styles = (my_theme_styles_t *)LV_GC_ROOT(_lv_theme_default_styles);
index 135a8a4..072d02e 100644 (file)
@@ -64,7 +64,7 @@ lv_obj_t * lv_animimg_create(lv_obj_t * parent)
     return obj;
 }
 
-void lv_animimg_set_src(lv_obj_t * obj,  lv_img_dsc_t * dsc[], uint8_t num)
+void lv_animimg_set_src(lv_obj_t * obj, const void * dsc[], uint8_t num)
 {
     LV_ASSERT_OBJ(obj, MY_CLASS);
     lv_animimg_t * animimg = (lv_animimg_t *)obj;
index 6329494..0ba01f2 100644 (file)
@@ -37,7 +37,7 @@ typedef struct {
     lv_img_t img;
     lv_anim_t anim;
     /*picture sequence */
-    lv_img_dsc_t ** dsc;
+    const void ** dsc;
     int8_t  pic_count;
 } lv_animimg_t;
 
@@ -69,7 +69,7 @@ lv_obj_t * lv_animimg_create(lv_obj_t * parent);
  * @param dsc pointer to a series images
  * @param num images' number
  */
-void lv_animimg_set_src(lv_obj_t * img,  lv_img_dsc_t * dsc[], uint8_t num);
+void lv_animimg_set_src(lv_obj_t * img, const void * dsc[], uint8_t num);
 
 /**
  * Startup the image animation.
index f469eae..b806d25 100644 (file)
@@ -120,7 +120,7 @@ void lv_calendar_set_showed_date(lv_obj_t * obj, uint32_t year, uint32_t month)
     d.month = calendar->showed_date.month;
     d.day = calendar->showed_date.day;
 
-    uint8_t i;
+    uint32_t i;
 
     /*Remove the disabled state but revert it for day names*/
     lv_btnmatrix_clear_btn_ctrl_all(calendar->btnm, LV_BTNMATRIX_CTRL_DISABLED);
@@ -262,7 +262,7 @@ static void lv_calendar_constructor(const lv_obj_class_t * class_p, lv_obj_t * o
         if(i != 0 && (i + 1) % 8 == 0) {
             calendar->map[i] = "\n";
         }
-        else if(i < 8) {
+        else if(i < 7) {
             calendar->map[i] = day_names_def[i];
         }
         else {
index a6e09fb..2d53adb 100644 (file)
@@ -539,7 +539,6 @@ void lv_chart_set_next_value(lv_obj_t * obj, lv_chart_series_t * ser, lv_coord_t
     invalidate_point(obj, ser->start_point);
     ser->start_point = (ser->start_point + 1) % chart->point_cnt;
     invalidate_point(obj, ser->start_point);
-    lv_chart_refresh(obj);
 }
 
 void lv_chart_set_next_value2(lv_obj_t * obj, lv_chart_series_t * ser, lv_coord_t x_value, lv_coord_t y_value)
@@ -556,11 +555,8 @@ void lv_chart_set_next_value2(lv_obj_t * obj, lv_chart_series_t * ser, lv_coord_
 
     ser->x_points[ser->start_point] = x_value;
     ser->y_points[ser->start_point] = y_value;
-    invalidate_point(obj, ser->start_point);
     ser->start_point = (ser->start_point + 1) % chart->point_cnt;
     invalidate_point(obj, ser->start_point);
-    lv_chart_refresh(obj);
-
 }
 
 void lv_chart_set_value_by_id(lv_obj_t * obj, lv_chart_series_t * ser, uint16_t id, lv_coord_t value)
@@ -571,7 +567,7 @@ void lv_chart_set_value_by_id(lv_obj_t * obj, lv_chart_series_t * ser, uint16_t
 
     if(id >= chart->point_cnt) return;
     ser->y_points[id] = value;
-    lv_chart_refresh(obj);
+    invalidate_point(obj, id);
 }
 
 void lv_chart_set_value_by_id2(lv_obj_t * obj, lv_chart_series_t * ser, uint16_t id, lv_coord_t x_value,
@@ -589,7 +585,7 @@ void lv_chart_set_value_by_id2(lv_obj_t * obj, lv_chart_series_t * ser, uint16_t
     if(id >= chart->point_cnt) return;
     ser->x_points[id] = x_value;
     ser->y_points[id] = y_value;
-    lv_chart_refresh(obj);
+    invalidate_point(obj, id);
 }
 
 void lv_chart_set_ext_y_array(lv_obj_t * obj, lv_chart_series_t * ser, lv_coord_t array[])
@@ -720,7 +716,7 @@ static void lv_chart_event(const lv_obj_class_t * class_p, lv_event_t * e)
 
         p.x -= obj->coords.x1;
         uint32_t id = get_index_from_x(obj, p.x + lv_obj_get_scroll_left(obj));
-        if(id != chart->pressed_point_id) {
+        if(id != (uint32_t)chart->pressed_point_id) {
             invalidate_point(obj, id);
             invalidate_point(obj, chart->pressed_point_id);
             chart->pressed_point_id = id;
@@ -908,7 +904,7 @@ static void draw_series_line(lv_obj_t * obj, lv_draw_ctx_t * draw_ctx)
     if(LV_MIN(point_w, point_h) > line_dsc_default.width / 2) line_dsc_default.raw_end = 1;
     if(line_dsc_default.width == 1) line_dsc_default.raw_end = 1;
 
-    /*If there are mire points than pixels draw only vertical lines*/
+    /*If there are at least as much points as pixels then draw only vertical lines*/
     bool crowded_mode = chart->point_cnt >= w ? true : false;
 
     /*Go through all data lines*/
@@ -1186,7 +1182,6 @@ static void draw_series_bar(lv_obj_t * obj, lv_draw_ctx_t * draw_ctx)
     const lv_area_t * clip_area_ori = draw_ctx->clip_area;
     draw_ctx->clip_area = &clip_area;
 
-
     lv_chart_t * chart  = (lv_chart_t *)obj;
 
     uint16_t i;
@@ -1201,11 +1196,14 @@ static void draw_series_bar(lv_obj_t * obj, lv_draw_ctx_t * draw_ctx)
     int32_t block_gap = ((int32_t)lv_obj_get_style_pad_column(obj,
                                                               LV_PART_MAIN) * chart->zoom_x) >> 8;  /*Gap between the column on ~adjacent X*/
     lv_coord_t block_w = (w - ((chart->point_cnt - 1) * block_gap)) / chart->point_cnt;
-    lv_coord_t col_w = block_w / ser_cnt;
     int32_t ser_gap = ((int32_t)lv_obj_get_style_pad_column(obj,
-                                                            LV_PART_ITEMS) * chart->zoom_x) >> 8; /*Gap between the column on the ~same X*/
-    lv_coord_t x_ofs = pad_left - lv_obj_get_scroll_left(obj);
-    lv_coord_t y_ofs = pad_top - lv_obj_get_scroll_top(obj);
+                                                            LV_PART_ITEMS) * chart->zoom_x) >> 8; /*Gap between the columns on the ~same X*/
+    lv_coord_t col_w = (block_w - (ser_cnt - 1) * ser_gap) / ser_cnt;
+    if(col_w < 1) col_w  = 1;
+
+    lv_coord_t border_w = lv_obj_get_style_border_width(obj, LV_PART_MAIN);
+    lv_coord_t x_ofs = pad_left - lv_obj_get_scroll_left(obj) + border_w;
+    lv_coord_t y_ofs = pad_top - lv_obj_get_scroll_top(obj) + border_w;
 
     lv_draw_rect_dsc_t col_dsc;
     lv_draw_rect_dsc_init(&col_dsc);
@@ -1224,7 +1222,7 @@ static void draw_series_bar(lv_obj_t * obj, lv_draw_ctx_t * draw_ctx)
 
     /*Go through all points*/
     for(i = 0; i < chart->point_cnt; i++) {
-        lv_coord_t x_act = (int32_t)((int32_t)(w + block_gap) * i) / (chart->point_cnt) + obj->coords.x1 + x_ofs;
+        lv_coord_t x_act = (int32_t)((int32_t)(w - block_w) * i) / (chart->point_cnt - 1) + obj->coords.x1 + x_ofs;
 
         part_draw_dsc.id = i;
 
@@ -1234,8 +1232,8 @@ static void draw_series_bar(lv_obj_t * obj, lv_draw_ctx_t * draw_ctx)
             lv_coord_t start_point = chart->update_mode == LV_CHART_UPDATE_MODE_SHIFT ? ser->start_point : 0;
 
             col_a.x1 = x_act;
-            col_a.x2 = col_a.x1 + col_w - ser_gap - 1;
-            x_act += col_w;
+            col_a.x2 = col_a.x1 + col_w - 1;
+            x_act += col_w + ser_gap;
 
             if(col_a.x2 < clip_area.x1) continue;
             if(col_a.x1 > clip_area.x2) break;
@@ -1329,7 +1327,8 @@ static void draw_cursors(lv_obj_t * obj, lv_draw_ctx_t * draw_ctx)
         cy += obj->coords.y1;
 
         lv_area_t point_area;
-        if(point_w && point_h) {
+        bool draw_point = point_w && point_h;
+        if(draw_point) {
             point_area.x1 = cx - point_w;
             point_area.x2 = cx + point_w;
             point_area.y1 = cy - point_h;
@@ -1349,7 +1348,11 @@ static void draw_cursors(lv_obj_t * obj, lv_draw_ctx_t * draw_ctx)
 
             lv_event_send(obj, LV_EVENT_DRAW_PART_BEGIN, &part_draw_dsc);
             lv_draw_line(draw_ctx, &line_dsc_tmp, &p1, &p2);
-            lv_draw_rect(draw_ctx, &point_dsc_tmp, &point_area);
+
+            if(draw_point) {
+                lv_draw_rect(draw_ctx, &point_dsc_tmp, &point_area);
+            }
+
             lv_event_send(obj, LV_EVENT_DRAW_PART_END, &part_draw_dsc);
         }
 
@@ -1361,7 +1364,11 @@ static void draw_cursors(lv_obj_t * obj, lv_draw_ctx_t * draw_ctx)
 
             lv_event_send(obj, LV_EVENT_DRAW_PART_BEGIN, &part_draw_dsc);
             lv_draw_line(draw_ctx, &line_dsc_tmp, &p1, &p2);
-            lv_draw_rect(draw_ctx, &point_dsc_tmp, &point_area);
+
+            if(draw_point) {
+                lv_draw_rect(draw_ctx, &point_dsc_tmp, &point_area);
+            }
+
             lv_event_send(obj, LV_EVENT_DRAW_PART_END, &part_draw_dsc);
         }
     }
@@ -1375,8 +1382,10 @@ static void draw_y_ticks(lv_obj_t * obj, lv_draw_ctx_t * draw_ctx, lv_chart_axis
 
     lv_chart_tick_dsc_t * t = get_tick_gsc(obj, axis);
 
-    if(t->major_cnt <= 1) return;
     if(!t->label_en && !t->major_len && !t->minor_len) return;
+    if(t->major_cnt <= 1) return;
+    uint32_t total_tick_num = (t->major_cnt - 1) * (t->minor_cnt);
+    if(total_tick_num == 0) return;
 
     uint8_t sec_axis = axis == LV_CHART_AXIS_PRIMARY_Y ? 0 : 1;
 
@@ -1426,7 +1435,6 @@ static void draw_y_ticks(lv_obj_t * obj, lv_draw_ctx_t * draw_ctx, lv_chart_axis
     part_draw_dsc.line_dsc = &line_dsc;
     part_draw_dsc.label_dsc = &label_dsc;
 
-    uint32_t total_tick_num = (t->major_cnt - 1) * (t->minor_cnt);
     for(i = 0; i <= total_tick_num; i++) {
         /*draw a line at moving y position*/
         p2.y = p1.y = y_ofs + (int32_t)((int32_t)(h - line_dsc.width) * i) / total_tick_num;
@@ -1507,6 +1515,8 @@ static void draw_x_ticks(lv_obj_t * obj, lv_draw_ctx_t * draw_ctx, lv_chart_axis
     lv_chart_tick_dsc_t * t = get_tick_gsc(obj, axis);
     if(t->major_cnt <= 1) return;
     if(!t->label_en && !t->major_len && !t->minor_len) return;
+    uint32_t total_tick_num = (t->major_cnt - 1) * (t->minor_cnt);
+    if(total_tick_num == 0) return;
 
     uint32_t i;
     lv_point_t p1;
@@ -1515,7 +1525,6 @@ static void draw_x_ticks(lv_obj_t * obj, lv_draw_ctx_t * draw_ctx, lv_chart_axis
     lv_coord_t pad_left = lv_obj_get_style_pad_left(obj, LV_PART_MAIN) + lv_obj_get_style_border_width(obj, LV_PART_MAIN);
     lv_coord_t w     = ((int32_t)lv_obj_get_content_width(obj) * chart->zoom_x) >> 8;
 
-
     lv_draw_label_dsc_t label_dsc;
     lv_draw_label_dsc_init(&label_dsc);
     lv_obj_init_draw_label_dsc(obj, LV_PART_TICKS, &label_dsc);
@@ -1525,16 +1534,16 @@ static void draw_x_ticks(lv_obj_t * obj, lv_draw_ctx_t * draw_ctx, lv_chart_axis
     lv_coord_t label_gap;
     if(axis == LV_CHART_AXIS_PRIMARY_X) {
         label_gap = t->label_en ? lv_obj_get_style_pad_bottom(obj, LV_PART_TICKS) : 0;
-        y_ofs = obj->coords.y2;
+        y_ofs = obj->coords.y2 + 1;
     }
     else {
         label_gap = t->label_en ? lv_obj_get_style_pad_top(obj, LV_PART_TICKS) : 0;
-        y_ofs = obj->coords.y1;
+        y_ofs = obj->coords.y1 - 1;
     }
 
     if(axis == LV_CHART_AXIS_PRIMARY_X) {
         if(y_ofs > draw_ctx->clip_area->y2) return;
-        if(y_ofs + label_gap  + label_dsc.font->line_height + t->major_len < draw_ctx->clip_area->y1) return;
+        if(y_ofs + label_gap + label_dsc.font->line_height + t->major_len < draw_ctx->clip_area->y1) return;
     }
 
     lv_draw_line_dsc_t line_dsc;
@@ -1559,12 +1568,12 @@ static void draw_x_ticks(lv_obj_t * obj, lv_draw_ctx_t * draw_ctx, lv_chart_axis
         int32_t block_gap = ((int32_t)lv_obj_get_style_pad_column(obj,
                                                                   LV_PART_MAIN) * chart->zoom_x) >> 8;  /*Gap between the columns on ~adjacent X*/
         lv_coord_t block_w = (w + block_gap) / (chart->point_cnt);
+
         x_ofs += (block_w - block_gap) / 2;
         w -= block_w - block_gap;
     }
 
     p1.y = y_ofs;
-    uint32_t total_tick_num = (t->major_cnt - 1) * t->minor_cnt;
     for(i = 0; i <= total_tick_num; i++) { /*one extra loop - it may not exist in the list, empty label*/
         bool major = false;
         if(i % t->minor_cnt == 0) major = true;
@@ -1627,7 +1636,6 @@ static void draw_x_ticks(lv_obj_t * obj, lv_draw_ctx_t * draw_ctx, lv_chart_axis
             lv_event_send(obj, LV_EVENT_DRAW_PART_BEGIN, &part_draw_dsc);
         }
 
-
         if(p1.x + line_dsc.width / 2  >= obj->coords.x1 &&
            p2.x - line_dsc.width / 2  <= obj->coords.x2) {
             lv_draw_line(draw_ctx, &line_dsc, &p1, &p2);
@@ -1708,11 +1716,13 @@ static void invalidate_point(lv_obj_t * obj, uint16_t i)
         lv_area_t col_a;
         int32_t block_gap = ((int32_t)lv_obj_get_style_pad_column(obj,
                                                                   LV_PART_MAIN) * chart->zoom_x) >> 8;  /*Gap between the column on ~adjacent X*/
+
         lv_coord_t block_w = (w + block_gap) / chart->point_cnt;
 
+        lv_coord_t bwidth = lv_obj_get_style_border_width(obj, LV_PART_MAIN);
         lv_coord_t x_act;
         x_act = (int32_t)((int32_t)(block_w) * i) ;
-        x_act += obj->coords.x1 + lv_obj_get_style_pad_left(obj, LV_PART_MAIN);
+        x_act += obj->coords.x1 + bwidth + lv_obj_get_style_pad_left(obj, LV_PART_MAIN);
 
         lv_obj_get_coords(obj, &col_a);
         col_a.x1 = x_act - scroll_left;
@@ -1721,9 +1731,6 @@ static void invalidate_point(lv_obj_t * obj, uint16_t i)
 
         lv_obj_invalidate_area(obj, &col_a);
     }
-    else if(chart->type == LV_CHART_TYPE_SCATTER) {
-        lv_obj_invalidate(obj);
-    }
     else {
         lv_obj_invalidate(obj);
     }
index 8a9b8cf..394c0e7 100644 (file)
@@ -22,7 +22,11 @@ extern "C" {
  *********************/
 
 /**Default value of points. Can be used to not draw a point*/
+#if LV_USE_LARGE_COORD
+#define LV_CHART_POINT_NONE (INT32_MAX)
+#else
 #define LV_CHART_POINT_NONE (INT16_MAX)
+#endif
 LV_EXPORT_CONST_INT(LV_CHART_POINT_NONE);
 
 /**********************
@@ -78,7 +82,7 @@ typedef struct {
 
 typedef struct {
     lv_point_t pos;
-    uint16_t point_id;
+    lv_coord_t point_id;
     lv_color_t color;
     lv_chart_series_t * ser;
     lv_dir_t dir;
@@ -104,7 +108,7 @@ typedef struct {
     lv_coord_t ymax[2];
     lv_coord_t xmin[2];
     lv_coord_t xmax[2];
-    uint16_t pressed_point_id;
+    lv_coord_t pressed_point_id;
     uint16_t hdiv_cnt;      /**< Number of horizontal division lines*/
     uint16_t vdiv_cnt;      /**< Number of vertical division lines*/
     uint16_t point_cnt;    /**< Point number in a data line*/
@@ -339,7 +343,7 @@ void lv_chart_set_cursor_pos(lv_obj_t * chart, lv_chart_cursor_t * cursor, lv_po
  * @param obj       pointer to a chart object
  * @param cursor    pointer to the cursor
  * @param ser       pointer to a series
- * @param point_id  the point's index or  `LV_CHART_POINT_NONE` to not assign to any points.
+ * @param point_id  the point's index or `LV_CHART_POINT_NONE` to not assign to any points.
  */
 void lv_chart_set_cursor_point(lv_obj_t * chart, lv_chart_cursor_t * cursor, lv_chart_series_t * ser,
                                uint16_t point_id);
index 3fb7128..daf112e 100644 (file)
@@ -613,7 +613,6 @@ static lv_res_t double_click_reset(lv_obj_t * obj)
  * We replace division by 255 by a division by 256, a.k.a a shift right by 8 bits.
  * This is wrong, but since this is only used to compute the pixels on the screen and not the final color, it's ok.
  */
-static void fast_hsv2rgb(uint16_t h, uint8_t s, uint8_t v, uint8_t * r, uint8_t * g, uint8_t * b);
 static void fast_hsv2rgb(uint16_t h, uint8_t s, uint8_t v, uint8_t * r, uint8_t * g, uint8_t * b)
 {
     if(!s) {
@@ -652,6 +651,11 @@ static lv_color_t angle_to_mode_color_fast(lv_obj_t * obj, uint16_t angle)
     uint8_t r = 0, g = 0, b = 0;
     static uint16_t h = 0;
     static uint8_t s = 0, v = 0, m = 255;
+    static uint16_t angle_saved = 0xffff;
+
+    /*If the angle is different recalculate scaling*/
+    if(angle_saved != angle) m = 255;
+    angle_saved = angle;
 
     switch(ext->mode) {
         default:
index 6ba431e..8e052e3 100644 (file)
@@ -285,19 +285,19 @@ void lv_keyboard_def_event_cb(lv_event_t * e)
     if(strcmp(txt, "abc") == 0) {
         keyboard->mode = LV_KEYBOARD_MODE_TEXT_LOWER;
         lv_btnmatrix_set_map(obj, kb_map[LV_KEYBOARD_MODE_TEXT_LOWER]);
-        lv_btnmatrix_set_ctrl_map(obj, kb_ctrl[LV_KEYBOARD_MODE_TEXT_LOWER]);
+        lv_keyboard_update_ctrl_map(obj);
         return;
     }
     else if(strcmp(txt, "ABC") == 0) {
         keyboard->mode = LV_KEYBOARD_MODE_TEXT_UPPER;
         lv_btnmatrix_set_map(obj, kb_map[LV_KEYBOARD_MODE_TEXT_UPPER]);
-        lv_btnmatrix_set_ctrl_map(obj, kb_ctrl[LV_KEYBOARD_MODE_TEXT_UPPER]);
+        lv_keyboard_update_ctrl_map(obj);
         return;
     }
     else if(strcmp(txt, "1#") == 0) {
         keyboard->mode = LV_KEYBOARD_MODE_SPECIAL;
         lv_btnmatrix_set_map(obj, kb_map[LV_KEYBOARD_MODE_SPECIAL]);
-        lv_btnmatrix_set_ctrl_map(obj, kb_ctrl[LV_KEYBOARD_MODE_SPECIAL]);
+        lv_keyboard_update_ctrl_map(obj);
         return;
     }
     else if(strcmp(txt, LV_SYMBOL_CLOSE) == 0 || strcmp(txt, LV_SYMBOL_KEYBOARD) == 0) {
index 513ecfb..88b7b87 100644 (file)
@@ -178,6 +178,7 @@ static void lv_led_event(const lv_obj_class_t * class_p, lv_event_t * e)
         lv_obj_init_draw_rect_dsc(obj, LV_PART_MAIN, &rect_dsc);
 
         /*Use the original colors brightness to modify color->led*/
+        rect_dsc.bg_color = lv_color_mix(led->color, lv_color_black(), lv_color_brightness(rect_dsc.bg_color));
         rect_dsc.bg_grad.stops[0].color = lv_color_mix(led->color, lv_color_black(),
                                                        lv_color_brightness(rect_dsc.bg_grad.stops[0].color));
         rect_dsc.bg_grad.stops[1].color = lv_color_mix(led->color, lv_color_black(),
@@ -187,6 +188,7 @@ static void lv_led_event(const lv_obj_class_t * class_p, lv_event_t * e)
         rect_dsc.outline_color = lv_color_mix(led->color, lv_color_black(), lv_color_brightness(rect_dsc.outline_color));
 
         /*Mix. the color with black proportionally with brightness*/
+        rect_dsc.bg_color = lv_color_mix(rect_dsc.bg_color, lv_color_black(), led->bright);
         rect_dsc.bg_grad.stops[0].color   = lv_color_mix(rect_dsc.bg_grad.stops[0].color, lv_color_black(), led->bright);
         rect_dsc.bg_grad.stops[1].color   = lv_color_mix(rect_dsc.bg_grad.stops[1].color, lv_color_black(), led->bright);
         rect_dsc.border_color = lv_color_mix(rect_dsc.border_color, lv_color_black(), led->bright);
index ea9ced7..29355fd 100644 (file)
@@ -73,7 +73,7 @@ lv_obj_t * lv_list_add_text(lv_obj_t * list, const char * txt)
     return obj;
 }
 
-lv_obj_t * lv_list_add_btn(lv_obj_t * list, const char * icon, const char * txt)
+lv_obj_t * lv_list_add_btn(lv_obj_t * list, const void * icon, const char * txt)
 {
     LV_LOG_INFO("begin");
     lv_obj_t * obj = lv_obj_class_create_obj(&lv_list_btn_class, list);
index 8b91644..0da5595 100644 (file)
@@ -37,7 +37,7 @@ lv_obj_t * lv_list_create(lv_obj_t * parent);
 
 lv_obj_t * lv_list_add_text(lv_obj_t * list, const char * txt);
 
-lv_obj_t * lv_list_add_btn(lv_obj_t * list, const char * icon, const char * txt);
+lv_obj_t * lv_list_add_btn(lv_obj_t * list, const void * icon, const char * txt);
 
 const char * lv_list_get_btn_text(lv_obj_t * list, lv_obj_t * btn);
 
index 9c6b542..f8dfd41 100644 (file)
@@ -124,7 +124,15 @@ lv_obj_t * lv_menu_page_create(lv_obj_t * parent, char * title)
     lv_obj_class_init_obj(obj);
 
     lv_menu_page_t * page = (lv_menu_page_t *)obj;
-    page->title = title;
+    if(title) {
+        page->title = lv_mem_alloc(strlen(title) + 1);
+        LV_ASSERT_MALLOC(page->title);
+        if(page->title == NULL) return NULL;
+        strcpy(page->title, title);
+    }
+    else {
+        page->title = NULL;
+    }
 
     return obj;
 }
@@ -187,6 +195,11 @@ void lv_menu_set_page(lv_obj_t * obj, lv_obj_t * page)
 
     lv_menu_t * menu = (lv_menu_t *)obj;
 
+    /* Guard against setting the same page again */
+    if(menu->main_page == page) {
+        return;
+    }
+
     /* Hide previous page */
     if(menu->main_page != NULL) {
         lv_obj_set_parent(menu->main_page, menu->storage);
@@ -196,6 +209,7 @@ void lv_menu_set_page(lv_obj_t * obj, lv_obj_t * page)
         /* Add a new node */
         lv_ll_t * history_ll = &(menu->history_ll);
         lv_menu_history_t * new_node = _lv_ll_ins_head(history_ll);
+        LV_ASSERT_MALLOC(new_node);
         new_node->page = page;
         menu->cur_depth++;
 
@@ -352,8 +366,9 @@ void lv_menu_set_load_page_event(lv_obj_t * menu, lv_obj_t * obj, lv_obj_t * pag
 {
     LV_ASSERT_OBJ(menu, MY_CLASS);
 
-    /* Make the object clickable */
     lv_obj_add_flag(obj, LV_OBJ_FLAG_CLICKABLE);
+    lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE);
+    lv_obj_add_flag(obj, LV_OBJ_FLAG_SCROLL_ON_FOCUS);
 
     /* Remove old event */
     if(lv_obj_remove_event_cb(obj, lv_menu_load_page_event_cb)) {
@@ -675,6 +690,11 @@ static void lv_menu_load_page_event_cb(lv_event_t * e)
     }
 
     lv_menu_set_page((lv_obj_t *)menu, page);
+
+    if(lv_group_get_default() != NULL && menu->sidebar_page == NULL) {
+        /* Sidebar is not supported for now*/
+        lv_group_focus_next(lv_group_get_default());
+    }
 }
 
 static void lv_menu_obj_del_event_cb(lv_event_t * e)
index c12dc33..1e651b5 100644 (file)
@@ -379,8 +379,6 @@ static void draw_ticks_and_labels(lv_obj_t * obj, lv_draw_ctx_t * draw_ctx, cons
     p_center.x = scale_area->x1 + r_edge;
     p_center.y = scale_area->y1 + r_edge;
 
-    uint8_t i;
-
     lv_draw_line_dsc_t line_dsc;
     lv_draw_line_dsc_init(&line_dsc);
     lv_obj_init_draw_line_dsc(obj, LV_PART_TICKS, &line_dsc);
@@ -406,7 +404,7 @@ static void draw_ticks_and_labels(lv_obj_t * obj, lv_draw_ctx_t * draw_ctx, cons
     _LV_LL_READ_BACK(&meter->scale_ll, scale) {
         part_draw_dsc.sub_part_ptr = scale;
 
-        lv_coord_t r_out = r_edge + scale->r_mod;
+        lv_coord_t r_out = r_edge;
         lv_coord_t r_in_minor = r_out - scale->tick_length;
         lv_coord_t r_in_major = r_out - scale->tick_major_length;
 
@@ -435,6 +433,7 @@ static void draw_ticks_and_labels(lv_obj_t * obj, lv_draw_ctx_t * draw_ctx, cons
         int16_t inner_act_mask_id = LV_MASK_ID_INV; /*Will be added later*/
 
         uint32_t minor_cnt = scale->tick_major_nth ? scale->tick_major_nth - 1 : 0xFFFF;
+        uint16_t i;
         for(i = 0; i < scale->tick_cnt; i++) {
             minor_cnt++;
             bool major = false;
@@ -474,32 +473,20 @@ static void draw_ticks_and_labels(lv_obj_t * obj, lv_draw_ctx_t * draw_ctx, cons
                 }
             }
 
-            /*`* 256` for extra precision*/
-            int32_t angle_upscale = ((i * scale->angle_range) << 8) / (scale->tick_cnt - 1);
-
-            int32_t angle_low = (angle_upscale >> 8);
-            int32_t angle_high = angle_low + 1;
-            int32_t angle_rem = angle_upscale & 0xFF;
-
-            /*Interpolate sine and cos*/
-            int32_t sin_low = lv_trigo_sin(angle_low + scale->rotation);
-            int32_t sin_high = lv_trigo_sin(angle_high + scale->rotation);
-            int32_t sin_mid = (sin_low * (256 - angle_rem) + sin_high * angle_rem) >> 8;
-
-            int32_t cos_low = lv_trigo_cos(angle_low + scale->rotation);
-            int32_t cos_high = lv_trigo_cos(angle_high + scale->rotation);
-            int32_t cos_mid = (cos_low * (256 - angle_rem) + cos_high * angle_rem) >> 8;
+            int32_t angle_upscale = ((i * scale->angle_range) * 10) / (scale->tick_cnt - 1) +  + scale->rotation * 10;
 
             line_dsc.color = line_color;
             line_dsc.width = line_width;
-            /*Use the interpolated angle to get the outer x and y coordinates.
-             *Draw a little bit longer lines to be sure the mask will clip them correctly*/
+
+            /*Draw a little bit longer lines to be sure the mask will clip them correctly
+             *and to get a better precision*/
             lv_point_t p_outer;
-            p_outer.x = (int32_t)(((int32_t)cos_mid * (r_out + line_width) + 127) >> (LV_TRIGO_SHIFT)) + p_center.x;
-            p_outer.y = (int32_t)(((int32_t)sin_mid * (r_out + line_width) + 127) >> (LV_TRIGO_SHIFT)) + p_center.y;
+            p_outer.x = p_center.x + r_out + LV_MAX(LV_DPI_DEF, r_out);
+            p_outer.y = p_center.y;
+            lv_point_transform(&p_outer, angle_upscale, 256, &p_center);
 
-            part_draw_dsc.p1 = &p_outer;
             part_draw_dsc.p1 = &p_center;
+            part_draw_dsc.p2 = &p_outer;
             part_draw_dsc.id = i;
             part_draw_dsc.label_dsc = &label_dsc;
 
@@ -508,8 +495,9 @@ static void draw_ticks_and_labels(lv_obj_t * obj, lv_draw_ctx_t * draw_ctx, cons
                 lv_draw_mask_remove_id(outer_mask_id);
                 uint32_t r_text = r_in_major - scale->label_gap;
                 lv_point_t p;
-                p.x = (int32_t)((int32_t)((int32_t)cos_mid * r_text + 127) >> LV_TRIGO_SHIFT) + p_center.x;
-                p.y = (int32_t)((int32_t)((int32_t)sin_mid * r_text + 127) >> LV_TRIGO_SHIFT) + p_center.y;
+                p.x = p_center.x + r_text;
+                p.y = p_center.y;
+                lv_point_transform(&p, angle_upscale, 256, &p_center);
 
                 lv_draw_label_dsc_t label_dsc_tmp;
                 lv_memcpy(&label_dsc_tmp, &label_dsc, sizeof(label_dsc_tmp));
@@ -624,6 +612,7 @@ static void draw_needles(lv_obj_t * obj, lv_draw_ctx_t * draw_ctx, const lv_area
             if(angle > 3600) angle -= 3600;
             img_dsc.angle = angle;
 
+            part_draw_dsc.id = LV_METER_DRAW_PART_NEEDLE_IMG;
             part_draw_dsc.img_dsc = &img_dsc;
 
             lv_event_send(obj, LV_EVENT_DRAW_PART_BEGIN, &part_draw_dsc);
index a62c9ae..54d65e3 100644 (file)
@@ -74,8 +74,8 @@ lv_obj_t * lv_msgbox_create(lv_obj_t * parent, const char * title, const char *
 
     lv_obj_t * obj = lv_obj_class_create_obj(&lv_msgbox_class, parent);
     LV_ASSERT_MALLOC(obj);
-    lv_obj_class_init_obj(obj);
     if(obj == NULL) return NULL;
+    lv_obj_class_init_obj(obj);
     lv_msgbox_t * mbox = (lv_msgbox_t *)obj;
 
     if(auto_parent) lv_obj_add_flag(obj, LV_MSGBOX_FLAG_AUTO_PARENT);
@@ -106,6 +106,9 @@ lv_obj_t * lv_msgbox_create(lv_obj_t * parent, const char * title, const char *
     }
 
     mbox->content = lv_obj_class_create_obj(&lv_msgbox_content_class, obj);
+    LV_ASSERT_MALLOC(mbox->content);
+    if(mbox->content == NULL) return NULL;
+    lv_obj_class_init_obj(mbox->content);
 
     bool has_txt = txt && strlen(txt) > 0;
     if(has_txt) {
index 4bba676..96f0447 100644 (file)
@@ -209,6 +209,14 @@ void lv_spangroup_set_mode(lv_obj_t * obj, lv_span_mode_t mode)
     lv_spangroup_refr_mode(obj);
 }
 
+void lv_spangroup_set_lines(lv_obj_t * obj, int32_t lines)
+{
+    LV_ASSERT_OBJ(obj, MY_CLASS);
+    lv_spangroup_t * spans = (lv_spangroup_t *)obj;
+    spans->lines = lines;
+    lv_spangroup_refr_mode(obj);
+}
+
 /*=====================
  * Getter functions
  *====================*/
@@ -289,6 +297,13 @@ lv_span_mode_t lv_spangroup_get_mode(lv_obj_t * obj)
     return spans->mode;
 }
 
+int32_t lv_spangroup_get_lines(lv_obj_t * obj)
+{
+    LV_ASSERT_OBJ(obj, MY_CLASS);
+    lv_spangroup_t * spans = (lv_spangroup_t *)obj;
+    return spans->lines;
+}
+
 void lv_spangroup_refr_mode(lv_obj_t * obj)
 {
     LV_ASSERT_OBJ(obj, MY_CLASS);
@@ -400,6 +415,8 @@ lv_coord_t lv_spangroup_get_expand_height(lv_obj_t * obj, lv_coord_t width)
     lv_snippet_t snippet;   /* use to save cur_span info and push it to stack */
     memset(&snippet, 0, sizeof(snippet));
 
+    int32_t line_cnt = 0;
+    int32_t lines = spans->lines < 0 ? INT32_MAX : spans->lines;
     /* the loop control how many lines need to draw */
     while(cur_span) {
         int snippet_cnt = 0;
@@ -467,6 +484,10 @@ lv_coord_t lv_spangroup_get_expand_height(lv_obj_t * obj, lv_coord_t width)
         txt_pos.x = 0;
         txt_pos.y += max_line_h;
         max_w = max_width;
+        line_cnt += 1;
+        if(line_cnt >= lines) {
+            break;
+        }
     }
     txt_pos.y -= line_space;
 
@@ -483,6 +504,7 @@ static void lv_spangroup_constructor(const lv_obj_class_t * class_p, lv_obj_t *
     lv_spangroup_t * spans = (lv_spangroup_t *)obj;
     _lv_ll_init(&spans->child_ll, sizeof(lv_span_t));
     spans->indent = 0;
+    spans->lines = -1;
     spans->mode = LV_SPAN_MODE_EXPAND;
     spans->overflow = LV_SPAN_OVERFLOW_CLIP;
     spans->cache_w = 0;
@@ -780,6 +802,7 @@ static void lv_draw_span(lv_obj_t * obj, lv_draw_ctx_t * draw_ctx)
         bool is_end_line = false;
         bool ellipsis_valid = false;
         lv_coord_t max_line_h = 0;  /* the max height of span-font when a line have a lot of span */
+        lv_coord_t max_baseline = 0; /*baseline of the highest span*/
         lv_snippet_clear();
 
         /* the loop control to find a line and push the relevant span info into stack  */
@@ -803,15 +826,6 @@ static void lv_draw_span(lv_obj_t * obj, lv_draw_ctx_t * draw_ctx)
                 snippet.line_h = lv_font_get_line_height(snippet.font) + line_space;
             }
 
-            if(spans->overflow == LV_SPAN_OVERFLOW_ELLIPSIS) {
-                /* curretn line span txt overflow, don't push */
-                if(txt_pos.y + snippet.line_h - line_space > coords.y2 + 1) {
-                    ellipsis_valid = true;
-                    is_end_line = true;
-                    break;
-                }
-            }
-
             /* get current span text line info */
             uint32_t next_ofs = 0;
             lv_coord_t use_width = 0;
@@ -819,24 +833,7 @@ static void lv_draw_span(lv_obj_t * obj, lv_draw_ctx_t * draw_ctx)
                                              max_w, txt_flag, &use_width, &next_ofs);
 
             if(isfill) {
-                lv_coord_t next_line_h = snippet.line_h;
-                if(cur_txt[cur_txt_ofs + next_ofs] == '\0') {
-                    next_line_h = 0;
-                    lv_span_t * next_span = _lv_ll_get_next(&spans->child_ll, cur_span);
-                    if(next_span) { /* have the next line */
-                        next_line_h = lv_font_get_line_height(lv_span_get_style_text_font(obj, next_span)) + line_space;
-                    }
-                }
-                lv_coord_t cur_line_h = max_line_h < snippet.line_h ? snippet.line_h : max_line_h;
-                if(txt_pos.y + cur_line_h + next_line_h - line_space > coords.y2 + 1) { /* for overflow if is end line. */
-                    if(cur_txt[cur_txt_ofs + next_ofs] != '\0') {
-                        next_ofs = strlen(&cur_txt[cur_txt_ofs]);
-                        use_width = lv_txt_get_width(&cur_txt[cur_txt_ofs], next_ofs, snippet.font, snippet.letter_space, txt_flag);
-                        ellipsis_valid = spans->overflow == LV_SPAN_OVERFLOW_ELLIPSIS ? true : false;
-                        is_end_line = true;
-                    }
-                }
-                else if(next_ofs > 0 && lv_get_snippet_cnt() > 0) {
+                if(next_ofs > 0 && lv_get_snippet_cnt() > 0) {
                     /* To prevent infinite loops, the _lv_txt_get_next_line() may return incomplete words, */
                     /* This phenomenon should be avoided when lv_get_snippet_cnt() > 0 */
                     if(max_w < use_width) {
@@ -860,6 +857,7 @@ static void lv_draw_span(lv_obj_t * obj, lv_draw_ctx_t * draw_ctx)
             cur_txt_ofs += next_ofs;
             if(max_line_h < snippet.line_h) {
                 max_line_h = snippet.line_h;
+                max_baseline = snippet.font->base_line;
             }
 
             lv_snippet_push(&snippet);
@@ -869,13 +867,35 @@ static void lv_draw_span(lv_obj_t * obj, lv_draw_ctx_t * draw_ctx)
             }
         }
 
-        /* start current line deal width */
+        /* start current line deal with */
 
         uint16_t item_cnt = lv_get_snippet_cnt();
         if(item_cnt == 0) {     /* break if stack is empty */
             break;
         }
 
+        /* Whether the current line is the end line and does overflow processing */
+        {
+            lv_snippet_t * last_snippet = lv_get_snippet(item_cnt - 1);
+            lv_coord_t next_line_h = last_snippet->line_h;
+            if(last_snippet->txt[last_snippet->bytes] == '\0') {
+                next_line_h = 0;
+                lv_span_t * next_span = _lv_ll_get_next(&spans->child_ll, last_snippet->span);
+                if(next_span) { /* have the next line */
+                    next_line_h = lv_font_get_line_height(lv_span_get_style_text_font(obj, next_span)) + line_space;
+                }
+            }
+            if(txt_pos.y + max_line_h + next_line_h - line_space > coords.y2 + 1) { /* for overflow if is end line. */
+                if(last_snippet->txt[last_snippet->bytes] != '\0') {
+                    last_snippet->bytes = strlen(last_snippet->txt);
+                    last_snippet->txt_w = lv_txt_get_width(last_snippet->txt, last_snippet->bytes, last_snippet->font,
+                                                           last_snippet->letter_space, txt_flag);
+                }
+                ellipsis_valid = spans->overflow == LV_SPAN_OVERFLOW_ELLIPSIS ? true : false;
+                is_end_line = true;
+            }
+        }
+
         /*Go the first visible line*/
         if(txt_pos.y + max_line_h < clip_area.y1) {
             goto Next_line_init;
@@ -908,7 +928,7 @@ static void lv_draw_span(lv_obj_t * obj, lv_draw_ctx_t * draw_ctx)
 
             lv_point_t pos;
             pos.x = txt_pos.x;
-            pos.y = txt_pos.y + max_line_h - pinfo->line_h;
+            pos.y = txt_pos.y + max_line_h - pinfo->line_h - (max_baseline - pinfo->font->base_line);
             label_draw_dsc.color = lv_span_get_style_text_color(obj, pinfo->span);
             label_draw_dsc.opa = lv_span_get_style_text_opa(obj, pinfo->span);
             label_draw_dsc.font = lv_span_get_style_text_font(obj, pinfo->span);
@@ -963,13 +983,6 @@ static void lv_draw_span(lv_obj_t * obj, lv_draw_ctx_t * draw_ctx)
                 }
             }
 
-            if(ellipsis_valid && i == item_cnt - 1 && pos.x <= ellipsis_width) {
-                for(int ell = 0; ell < 3; ell++) {
-                    lv_draw_letter(draw_ctx, &label_draw_dsc, &pos, '.');
-                    pos.x = pos.x + dot_letter_w + pinfo->letter_space;
-                }
-            }
-
             /* draw decor */
             lv_text_decor_t decor = lv_span_get_style_text_decor(obj, pinfo->span);
             if(decor != LV_TEXT_DECOR_NONE) {
@@ -1021,8 +1034,8 @@ static void refresh_self_size(lv_obj_t * obj)
 {
     lv_spangroup_t * spans = (lv_spangroup_t *)obj;
     spans->refresh = 1;
-    lv_obj_refresh_self_size(obj);
     lv_obj_invalidate(obj);
+    lv_obj_refresh_self_size(obj);
 }
 
 #endif
index 418ad87..f00d04d 100644 (file)
@@ -50,6 +50,7 @@ typedef struct {
 /** Data of label*/
 typedef struct {
     lv_obj_t obj;
+    int32_t lines;
     lv_coord_t indent;      /* first line indent */
     lv_coord_t cache_w;     /* the cache automatically calculates the width */
     lv_coord_t cache_h;     /* similar cache_w */
@@ -133,6 +134,13 @@ void lv_spangroup_set_indent(lv_obj_t * obj, lv_coord_t indent);
  */
 void lv_spangroup_set_mode(lv_obj_t * obj, lv_span_mode_t mode);
 
+/**
+ * Set lines of the spangroup.
+ * @param obj pointer to a spangroup object.
+ * @param lines max lines that can be displayed in LV_SPAN_MODE_BREAK mode. < 0 means no limit.
+ */
+void lv_spangroup_set_lines(lv_obj_t * obj, int32_t lines);
+
 /*=====================
  * Getter functions
  *====================*/
@@ -185,6 +193,13 @@ lv_coord_t lv_spangroup_get_indent(lv_obj_t * obj);
  */
 lv_span_mode_t lv_spangroup_get_mode(lv_obj_t * obj);
 
+/**
+ * get lines of the spangroup.
+ * @param obj pointer to a spangroup object.
+ * @return the lines value.
+ */
+int32_t lv_spangroup_get_lines(lv_obj_t * obj);
+
 /**
  * get max line height of all span in the spangroup.
  * @param obj pointer to a spangroup object.
index 72aca7d..37db45c 100644 (file)
@@ -34,6 +34,7 @@ static void lv_spinbox_updatevalue(lv_obj_t * obj);
 const lv_obj_class_t lv_spinbox_class = {
     .constructor_cb = lv_spinbox_constructor,
     .event_cb = lv_spinbox_event,
+    .width_def = LV_DPI_DEF,
     .instance_size = sizeof(lv_spinbox_t),
     .editable = LV_OBJ_CLASS_EDITABLE_TRUE,
     .base_class = &lv_textarea_class
@@ -104,7 +105,6 @@ void lv_spinbox_set_digit_format(lv_obj_t * obj, uint8_t digit_count, uint8_t se
     if(digit_count > LV_SPINBOX_MAX_DIGIT_COUNT) digit_count = LV_SPINBOX_MAX_DIGIT_COUNT;
 
     if(separator_position >= digit_count) separator_position = 0;
-    if(separator_position > LV_SPINBOX_MAX_DIGIT_COUNT) separator_position = LV_SPINBOX_MAX_DIGIT_COUNT;
 
     if(digit_count < LV_SPINBOX_MAX_DIGIT_COUNT) {
         int64_t max_val = lv_pow(10, digit_count);
@@ -157,7 +157,7 @@ void lv_spinbox_set_range(lv_obj_t * obj, int32_t range_min, int32_t range_max)
  * @param spinbox pointer to spinbox
  * @param pos selected position in spinbox
  */
-void lv_spinbox_set_pos(lv_obj_t * obj, uint8_t pos)
+void lv_spinbox_set_cursor_pos(lv_obj_t * obj, uint8_t pos)
 {
     LV_ASSERT_OBJ(obj, MY_CLASS);
     lv_spinbox_t * spinbox = (lv_spinbox_t *)obj;
@@ -336,7 +336,6 @@ static void lv_spinbox_constructor(const lv_obj_class_t * class_p, lv_obj_t * ob
 
     lv_textarea_set_one_line(obj, true);
     lv_textarea_set_cursor_click_pos(obj, true);
-    lv_obj_set_width(obj, LV_DPI_DEF);
 
     lv_spinbox_updatevalue(obj);
 
@@ -435,9 +434,6 @@ static void lv_spinbox_event(const lv_obj_class_t * class_p, lv_event_t * e)
         else if(c == LV_KEY_DOWN) {
             lv_spinbox_decrement(obj);
         }
-        else {
-            lv_textarea_add_char(obj, c);
-        }
     }
 }
 
index 14c73ba..1a4bc32 100644 (file)
@@ -105,7 +105,7 @@ void lv_spinbox_set_range(lv_obj_t * obj, int32_t range_min, int32_t range_max);
  * @param obj pointer to spinbox
  * @param pos selected position in spinbox
  */
-void lv_spinbox_set_pos(lv_obj_t * obj, uint8_t pos);
+void lv_spinbox_set_cursor_pos(lv_obj_t * obj, uint8_t pos);
 
 /**
  * Set direction of digit step when clicking an encoder button while in editing mode
@@ -170,6 +170,10 @@ void lv_spinbox_decrement(lv_obj_t * obj);
  *      MACROS
  **********************/
 
+/* It was ambiguous in MicroPython. See https://github.com/lvgl/lvgl/issues/3301
+ * TODO remove in v9*/
+#define lv_spinbox_set_pos lv_spinbox_set_cursor_pos
+
 #endif /*LV_USE_SPINBOX*/
 
 #ifdef __cplusplus
index 9f6efaa..6fc6d74 100644 (file)
@@ -7,7 +7,6 @@
  *      INCLUDES
  *********************/
 #include "lv_spinner.h"
-#if LV_USE_ARC
 #if LV_USE_SPINNER
 
 /*********************
@@ -103,4 +102,3 @@ static void arc_anim_end_angle(void * obj, int32_t v)
 }
 
 #endif /*LV_USE_SPINNER*/
-#endif /*LV_USE_ARC*/
index 8ccd143..81addc6 100644 (file)
@@ -121,6 +121,20 @@ lv_obj_t * lv_tabview_add_tab(lv_obj_t * obj, const char * name)
     return page;
 }
 
+void lv_tabview_rename_tab(lv_obj_t * obj, uint32_t id, const char * new_name)
+{
+    LV_ASSERT_OBJ(obj, MY_CLASS);
+    lv_tabview_t * tabview = (lv_tabview_t *)obj;
+
+    if(id >= tabview->tab_cnt) return;
+    if(tabview->tab_pos & LV_DIR_HOR) id *= 2;
+
+    lv_mem_free(tabview->map[id]);
+    tabview->map[id] = lv_mem_alloc(strlen(new_name) + 1);
+    strcpy(tabview->map[id], new_name);
+    lv_obj_invalidate(obj);
+}
+
 void lv_tabview_set_act(lv_obj_t * obj, uint32_t id, lv_anim_enable_t anim_en)
 {
     LV_ASSERT_OBJ(obj, MY_CLASS);
@@ -135,14 +149,22 @@ void lv_tabview_set_act(lv_obj_t * obj, uint32_t id, lv_anim_enable_t anim_en)
 
     lv_obj_t * cont = lv_tabview_get_content(obj);
     if(cont == NULL) return;
-    lv_coord_t gap = lv_obj_get_style_pad_column(cont, LV_PART_MAIN);
-    lv_coord_t w = lv_obj_get_content_width(cont);
-    if(lv_obj_get_style_base_dir(obj, LV_PART_MAIN) != LV_BASE_DIR_RTL) {
-        lv_obj_scroll_to_x(cont, id * (gap + w), anim_en);
+
+    if((tabview->tab_pos & LV_DIR_VER) != 0) {
+        lv_coord_t gap = lv_obj_get_style_pad_column(cont, LV_PART_MAIN);
+        lv_coord_t w = lv_obj_get_content_width(cont);
+        if(lv_obj_get_style_base_dir(obj, LV_PART_MAIN) != LV_BASE_DIR_RTL) {
+            lv_obj_scroll_to_x(cont, id * (gap + w), anim_en);
+        }
+        else {
+            int32_t id_rtl = -(int32_t)id;
+            lv_obj_scroll_to_x(cont, (gap + w) * id_rtl, anim_en);
+        }
     }
     else {
-        int32_t id_rtl = -(int32_t)id;
-        lv_obj_scroll_to_x(cont, (gap + w) * id_rtl, anim_en);
+        lv_coord_t gap = lv_obj_get_style_pad_row(cont, LV_PART_MAIN);
+        lv_coord_t h = lv_obj_get_content_height(cont);
+        lv_obj_scroll_to_y(cont, id * (gap + h), anim_en);
     }
 
     lv_obj_t * btns = lv_tabview_get_tab_btns(obj);
@@ -229,8 +251,14 @@ static void lv_tabview_constructor(const lv_obj_class_t * class_p, lv_obj_t * ob
     lv_group_t * g = lv_group_get_default();
     if(g) lv_group_add_obj(g, btnm);
 
-    lv_obj_set_flex_flow(cont, LV_FLEX_FLOW_ROW);
-    lv_obj_set_scroll_snap_x(cont, LV_SCROLL_SNAP_CENTER);
+    if((tabview->tab_pos & LV_DIR_VER) != 0) {
+        lv_obj_set_flex_flow(cont, LV_FLEX_FLOW_ROW);
+        lv_obj_set_scroll_snap_x(cont, LV_SCROLL_SNAP_CENTER);
+    }
+    else {
+        lv_obj_set_flex_flow(cont, LV_FLEX_FLOW_COLUMN);
+        lv_obj_set_scroll_snap_y(cont, LV_SCROLL_SNAP_CENTER);
+    }
     lv_obj_add_flag(cont, LV_OBJ_FLAG_SCROLL_ONE);
     lv_obj_clear_flag(cont, LV_OBJ_FLAG_SCROLL_ON_FOCUS);
 }
@@ -289,18 +317,29 @@ static void cont_scroll_end_event_cb(lv_event_t * e)
     lv_event_code_t code = lv_event_get_code(e);
 
     lv_obj_t * tv = lv_obj_get_parent(cont);
+    lv_tabview_t * tv_obj = (lv_tabview_t *)tv;
     if(code == LV_EVENT_LAYOUT_CHANGED) {
         lv_tabview_set_act(tv, lv_tabview_get_tab_act(tv), LV_ANIM_OFF);
     }
     else if(code == LV_EVENT_SCROLL_END) {
+        lv_indev_t * indev = lv_indev_get_act();
+        if(indev && indev->proc.state == LV_INDEV_STATE_PRESSED) {
+            return;
+        }
+
         lv_point_t p;
         lv_obj_get_scroll_end(cont, &p);
 
-        lv_coord_t w = lv_obj_get_content_width(cont);
         lv_coord_t t;
-
-        if(lv_obj_get_style_base_dir(tv, LV_PART_MAIN) == LV_BASE_DIR_RTL)  t = -(p.x - w / 2) / w;
-        else t = (p.x + w / 2) / w;
+        if((tv_obj->tab_pos & LV_DIR_VER) != 0) {
+            lv_coord_t w = lv_obj_get_content_width(cont);
+            if(lv_obj_get_style_base_dir(tv, LV_PART_MAIN) == LV_BASE_DIR_RTL)  t = -(p.x - w / 2) / w;
+            else t = (p.x + w / 2) / w;
+        }
+        else {
+            lv_coord_t h = lv_obj_get_content_height(cont);
+            t = (p.y + h / 2) / h;
+        }
 
         if(t < 0) t = 0;
         bool new_tab = false;
index a01c6b9..388c654 100644 (file)
@@ -42,6 +42,8 @@ lv_obj_t * lv_tabview_create(lv_obj_t * parent, lv_dir_t tab_pos, lv_coord_t tab
 
 lv_obj_t * lv_tabview_add_tab(lv_obj_t * tv, const char * name);
 
+void lv_tabview_rename_tab(lv_obj_t * obj, uint32_t tab_id, const char * new_name);
+
 lv_obj_t * lv_tabview_get_content(lv_obj_t * tv);
 
 lv_obj_t * lv_tabview_get_tab_btns(lv_obj_t * tv);
index 4f98b55..17fdb51 100644 (file)
@@ -7,6 +7,7 @@
  *      INCLUDES
  *********************/
 #include "lv_tileview.h"
+#include "../../../core/lv_indev.h"
 #if LV_USE_TILEVIEW
 
 /*********************
@@ -157,6 +158,11 @@ static void tileview_event_cb(lv_event_t * e)
     lv_tileview_t * tv = (lv_tileview_t *) obj;
 
     if(code == LV_EVENT_SCROLL_END) {
+        lv_indev_t * indev = lv_indev_get_act();
+        if(indev && indev->proc.state == LV_INDEV_STATE_PRESSED) {
+            return;
+        }
+
         lv_coord_t w = lv_obj_get_content_width(obj);
         lv_coord_t h = lv_obj_get_content_height(obj);
 
index 9ae9b6a..d4cc27e 100644 (file)
@@ -43,7 +43,7 @@
 /**
  * Return with the bitmap of a font.
  * @param font_p pointer to a font
- * @param letter an UNICODE character code
+ * @param letter a UNICODE character code
  * @return pointer to the bitmap of the letter
  */
 const uint8_t * lv_font_get_glyph_bitmap(const lv_font_t * font_p, uint32_t letter)
@@ -56,7 +56,7 @@ const uint8_t * lv_font_get_glyph_bitmap(const lv_font_t * font_p, uint32_t lett
  * Get the descriptor of a glyph
  * @param font_p pointer to font
  * @param dsc_out store the result descriptor here
- * @param letter an UNICODE letter code
+ * @param letter a UNICODE letter code
  * @param letter_next the next letter after `letter`. Used for kerning
  * @return true: descriptor is successfully loaded into `dsc_out`.
  *         false: the letter was not found, no data is loaded to `dsc_out`
@@ -64,26 +64,72 @@ const uint8_t * lv_font_get_glyph_bitmap(const lv_font_t * font_p, uint32_t lett
 bool lv_font_get_glyph_dsc(const lv_font_t * font_p, lv_font_glyph_dsc_t * dsc_out, uint32_t letter,
                            uint32_t letter_next)
 {
+
     LV_ASSERT_NULL(font_p);
     LV_ASSERT_NULL(dsc_out);
-    dsc_out->resolved_font = font_p;
+
+#if LV_USE_FONT_PLACEHOLDER
+    const lv_font_t * placeholder_font = NULL;
+#endif
+
     const lv_font_t * f = font_p;
-    bool found = false;
+
+    dsc_out->resolved_font = NULL;
+
     while(f) {
-        found = f->get_glyph_dsc(f, dsc_out, letter, letter_next);
-        if(found && !dsc_out->is_placeholder) {
-            dsc_out->resolved_font = f;
-            break;
+        bool found = f->get_glyph_dsc(f, dsc_out, letter, letter_next);
+        if(found) {
+            if(!dsc_out->is_placeholder) {
+                dsc_out->resolved_font = f;
+                return true;
+            }
+#if LV_USE_FONT_PLACEHOLDER
+            else if(placeholder_font == NULL) {
+                placeholder_font = f;
+            }
+#endif
         }
         f = f->fallback;
     }
-    return found;
+
+#if LV_USE_FONT_PLACEHOLDER
+    if(placeholder_font != NULL) {
+        placeholder_font->get_glyph_dsc(placeholder_font, dsc_out, letter, letter_next);
+        dsc_out->resolved_font = placeholder_font;
+        return true;
+    }
+#endif
+
+    if(letter < 0x20 ||
+       letter == 0xf8ff || /*LV_SYMBOL_DUMMY*/
+       letter == 0x200c) { /*ZERO WIDTH NON-JOINER*/
+        dsc_out->box_w = 0;
+        dsc_out->adv_w = 0;
+    }
+    else {
+#if LV_USE_FONT_PLACEHOLDER
+        dsc_out->box_w = font_p->line_height / 2;
+        dsc_out->adv_w = dsc_out->box_w + 2;
+#else
+        dsc_out->box_w = 0;
+        dsc_out->adv_w = 0;
+#endif
+    }
+
+    dsc_out->resolved_font = NULL;
+    dsc_out->box_h = font_p->line_height;
+    dsc_out->ofs_x = 0;
+    dsc_out->ofs_y = 0;
+    dsc_out->bpp   = 1;
+    dsc_out->is_placeholder = true;
+
+    return false;
 }
 
 /**
  * Get the width of a glyph with kerning
  * @param font pointer to a font
- * @param letter an UNICODE letter
+ * @param letter a UNICODE letter
  * @param letter_next the next letter after `letter`. Used for kerning
  * @return the width of the glyph
  */
@@ -91,10 +137,8 @@ uint16_t lv_font_get_glyph_width(const lv_font_t * font, uint32_t letter, uint32
 {
     LV_ASSERT_NULL(font);
     lv_font_glyph_dsc_t g;
-    bool ret;
-    ret = lv_font_get_glyph_dsc(font, &g, letter, letter_next);
-    if(ret) return g.adv_w;
-    else return 0;
+    lv_font_get_glyph_dsc(font, &g, letter, letter_next);
+    return g.adv_w;
 }
 
 /**********************
index 4c09db9..08ef099 100644 (file)
@@ -25,6 +25,9 @@ extern "C" {
  *      DEFINES
  *********************/
 
+/* imgfont identifier */
+#define LV_IMGFONT_BPP 9
+
 /**********************
  *      TYPEDEFS
  **********************/
@@ -37,7 +40,7 @@ struct _lv_font_t;
 /** Describes the properties of a glyph.*/
 typedef struct {
     const struct _lv_font_t *
-        resolved_font; /**< Pointer to a font where the gylph was actually found after handling fallbacks*/
+        resolved_font; /**< Pointer to a font where the glyph was actually found after handling fallbacks*/
     uint16_t adv_w; /**< The glyph needs this space. Draw the next glyph after this width.*/
     uint16_t box_w; /**< Width of the glyph's bounding box*/
     uint16_t box_h; /**< Height of the glyph's bounding box*/
@@ -87,7 +90,7 @@ typedef struct _lv_font_t {
 /**
  * Return with the bitmap of a font.
  * @param font_p pointer to a font
- * @param letter an UNICODE character code
+ * @param letter a UNICODE character code
  * @return pointer to the bitmap of the letter
  */
 const uint8_t * lv_font_get_glyph_bitmap(const lv_font_t * font_p, uint32_t letter);
@@ -96,7 +99,7 @@ const uint8_t * lv_font_get_glyph_bitmap(const lv_font_t * font_p, uint32_t lett
  * Get the descriptor of a glyph
  * @param font_p pointer to font
  * @param dsc_out store the result descriptor here
- * @param letter an UNICODE letter code
+ * @param letter a UNICODE letter code
  * @param letter_next the next letter after `letter`. Used for kerning
  * @return true: descriptor is successfully loaded into `dsc_out`.
  *         false: the letter was not found, no data is loaded to `dsc_out`
@@ -107,7 +110,7 @@ bool lv_font_get_glyph_dsc(const lv_font_t * font_p, lv_font_glyph_dsc_t * dsc_o
 /**
  * Get the width of a glyph with kerning
  * @param font pointer to a font
- * @param letter an UNICODE letter
+ * @param letter a UNICODE letter
  * @param letter_next the next letter after `letter`. Used for kerning
  * @return the width of the glyph
  */
@@ -237,110 +240,6 @@ LV_FONT_DECLARE(lv_font_unscii_8)
 LV_FONT_DECLARE(lv_font_unscii_16)
 #endif
 
-#if LV_FONT_UI_DEMO
-LV_FONT_DECLARE(lv_font_harmony_18)
-
-#endif
-
-#if LV_FONT_BINQI_POC_DEMO
-
-LV_FONT_DECLARE(lv_14_ali)
-LV_FONT_DECLARE(lv_11_siyuan_light)
-
-#endif
-
-#if LV_FONT_QUANSHENG_DEMO
-
-LV_FONT_DECLARE(lv_font_12_qs)
-
-#endif
-
-#if LV_FONT_ZHANSI_DEMO
-
-LV_FONT_DECLARE(lv_font_14_simsum)
-LV_FONT_DECLARE(lv_font_16_simsum)
-LV_FONT_DECLARE(lv_font_18_simsum)
-
-#endif
-
-#if LV_FONT_CAR_POC
-
-LV_FONT_DECLARE(lv_font_21_light)
-LV_FONT_DECLARE(lv_font_30_light)
-
-#endif
-
-#if LV_FONT_XUESHENGKA_240240_DEMO
-LV_FONT_DECLARE(lv_bold_18)
-LV_FONT_DECLARE(lv_bold_34)
-LV_FONT_DECLARE(lv_bold_48)
-LV_FONT_DECLARE(lv_regular_12)
-LV_FONT_DECLARE(lv_regular_14)
-LV_FONT_DECLARE(lv_regular_16)
-LV_FONT_DECLARE(lv_regular_18)
-LV_FONT_DECLARE(lv_regular_20)
-LV_FONT_DECLARE(lv_regular_22)
-LV_FONT_DECLARE(lv_regular_24)
-LV_FONT_DECLARE(lv_regular_29)
-
-#endif
-#if LV_FONT_TIANBO_DEMO
-LV_FONT_DECLARE(lv_font_tianbo_10)
-LV_FONT_DECLARE(lv_font_tianbo_12)
-LV_FONT_DECLARE(lv_font_tianbo_14)
-LV_FONT_DECLARE(lv_font_tianbo_16)
-
-#endif
-
-#if LV_FONT_FULL_12
-LV_FONT_DECLARE(lv_font_12)
-#endif
-
-#if LV_FONT_HARMONYOS_DEMO
-
-LV_FONT_DECLARE(lv_font_HarmonyOS_Bold_60)
-LV_FONT_DECLARE(lv_font_HarmonyOS_Bold_100)
-LV_FONT_DECLARE(lv_font_HarmonyOS_Regular_28)
-LV_FONT_DECLARE(lv_font_HarmonyOS_Regular_20)
-LV_FONT_DECLARE(lv_font_HarmonyOS_Regular_48)
-
-#endif
-
-#if LV_FONT_AGRI_DEMO
-
-LV_FONT_DECLARE(lv_font_siyuan_bold_26)
-LV_FONT_DECLARE(lv_font_siyuan_Regular_12)
-LV_FONT_DECLARE(lv_font_siyuan_Regular_14)
-LV_FONT_DECLARE(lv_font_siyuan_Regular_16)
-LV_FONT_DECLARE(lv_font_siyuan_Regular_18)
-LV_FONT_DECLARE(lv_font_siyuan_Regular_20)
-LV_FONT_DECLARE(lv_font_siyuan_Regular_22)
-
-#endif
-
-#if LV_USE_SD_FULL_FONT
-LV_FONT_DECLARE(lv_font_SDsiyuan_8)
-LV_FONT_DECLARE(lv_font_SDsiyuan_10)
-LV_FONT_DECLARE(lv_font_SDsiyuan_12)
-LV_FONT_DECLARE(lv_font_SDsiyuan_14)
-LV_FONT_DECLARE(lv_font_SDsiyuan_16)
-LV_FONT_DECLARE(lv_font_SDsiyuan_18)
-LV_FONT_DECLARE(lv_font_SDsiyuan_20)
-LV_FONT_DECLARE(lv_font_SDsiyuan_22)
-LV_FONT_DECLARE(lv_font_SDsiyuan_24)
-LV_FONT_DECLARE(lv_font_SDsiyuan_26)
-LV_FONT_DECLARE(lv_font_SDsiyuan_28)
-LV_FONT_DECLARE(lv_font_SDsiyuan_30)
-LV_FONT_DECLARE(lv_font_SDsiyuan_32)
-LV_FONT_DECLARE(lv_font_SDsiyuan_34)
-LV_FONT_DECLARE(lv_font_SDsiyuan_36)
-LV_FONT_DECLARE(lv_font_SDsiyuan_38)
-LV_FONT_DECLARE(lv_font_SDsiyuan_40)
-LV_FONT_DECLARE(lv_font_SDsiyuan_42)
-LV_FONT_DECLARE(lv_font_SDsiyuan_44)
-LV_FONT_DECLARE(lv_font_SDsiyuan_46)
-LV_FONT_DECLARE(lv_font_SDsiyuan_48)
-#endif
 LV_FONT_DECLARE(lv_font_70_bold)
 LV_FONT_DECLARE(lv_font_28_dial)
 LV_FONT_DECLARE(lv_font_60_main_menu)
@@ -350,7 +249,7 @@ LV_FONT_CUSTOM_DECLARE
 #endif
 
 /**
- * Just a wrapper around LV_FONT_DEFAULT because it might be more convenient to use a function is some cases
+ * Just a wrapper around LV_FONT_DEFAULT because it might be more convenient to use a function in some cases
  * @return  pointer to LV_FONT_DEFAULT
  */
 static inline const lv_font_t * lv_font_default(void)
index 35bc462..dc4ea89 100644 (file)
@@ -5,11 +5,14 @@
  ******************************************************************************/
 
 #ifdef LV_LVGL_H_INCLUDE_SIMPLE
-    #include "lvgl.h"
+#include "lvgl.h"
 #else
-    #include "../../lvgl.h"
+#include "lvgl/lvgl.h"
 #endif
 
+#ifndef LV_FONT_14_SIMSUM
+#define LV_FONT_14_SIMSUM 1
+#endif
 
 #if LV_FONT_ZHANSI_DEMO
 
@@ -584,6 +587,18 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xd0, 0x0, 0x3, 0x80, 0x7, 0x55, 0x55, 0x55,
     0x55, 0x55, 0x51,
 
+    /* U+4E2D "中" */
+    0x0, 0x0, 0x41, 0x0, 0x0, 0x0, 0x0, 0xa,
+    0x50, 0x0, 0x0, 0x0, 0x0, 0xa3, 0x0, 0x0,
+    0x8, 0x55, 0x5b, 0x75, 0x55, 0xa2, 0xc0, 0x0,
+    0xa3, 0x0, 0xc, 0xc, 0x0, 0xa, 0x30, 0x0,
+    0xc0, 0xc0, 0x0, 0xa3, 0x0, 0xc, 0xd, 0x55,
+    0x5b, 0x75, 0x55, 0xd0, 0xb0, 0x0, 0xa3, 0x0,
+    0xa, 0x0, 0x0, 0xa, 0x30, 0x0, 0x0, 0x0,
+    0x0, 0xa3, 0x0, 0x0, 0x0, 0x0, 0xa, 0x30,
+    0x0, 0x0, 0x0, 0x0, 0xa3, 0x0, 0x0, 0x0,
+    0x0, 0x2, 0x0, 0x0, 0x0,
+
     /* U+4F5C "作" */
     0x0, 0x0, 0x30, 0x3, 0x10, 0x0, 0x0, 0x0,
     0x2, 0xd1, 0xa, 0x50, 0x0, 0x0, 0x0, 0x7,
@@ -672,6 +687,21 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xd, 0x0, 0x0, 0x0, 0x4c, 0xd0, 0x2, 0x0,
     0x0, 0x0, 0x1, 0x0,
 
+    /* U+5728 "在" */
+    0x0, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xe2, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x6, 0x80, 0x0, 0x6, 0x40, 0x5, 0x65, 0x5d,
+    0x55, 0x65, 0x55, 0x40, 0x0, 0x0, 0x58, 0x0,
+    0xd0, 0x0, 0x0, 0x0, 0x1, 0xb0, 0x0, 0xc0,
+    0x0, 0x0, 0x0, 0xd, 0x20, 0x0, 0xc0, 0x7,
+    0x0, 0x0, 0x8c, 0x6, 0x55, 0xd5, 0x55, 0x20,
+    0x6, 0x2c, 0x0, 0x0, 0xc0, 0x0, 0x0, 0x10,
+    0xc, 0x0, 0x0, 0xc0, 0x0, 0x0, 0x0, 0xc,
+    0x0, 0x0, 0xc0, 0x0, 0x0, 0x0, 0xc, 0x45,
+    0x55, 0xc5, 0x56, 0xc1, 0x0, 0xc, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0,
+    0x0, 0x0,
+
     /* U+5931 "失" */
     0x0, 0x0, 0x0, 0x41, 0x0, 0x0, 0x0, 0x0,
     0x2, 0x0, 0x96, 0x0, 0x0, 0x0, 0x0, 0xe,
@@ -731,17 +761,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x4c, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1,
     0x0, 0x0,
 
-    /* U+5DF2 "已" */
-    0x4, 0x55, 0x55, 0x55, 0x5b, 0x0, 0x1, 0x0,
-    0x0, 0x0, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0xc, 0x0, 0x5, 0x10, 0x0, 0x0, 0xc, 0x0,
-    0xb, 0x65, 0x55, 0x55, 0x5c, 0x0, 0xb, 0x10,
-    0x0, 0x0, 0x9, 0x0, 0xb, 0x10, 0x0, 0x0,
-    0x0, 0x0, 0xb, 0x10, 0x0, 0x0, 0x0, 0x10,
-    0xb, 0x10, 0x0, 0x0, 0x0, 0x50, 0xb, 0x10,
-    0x0, 0x0, 0x0, 0x62, 0xa, 0x42, 0x22, 0x22,
-    0x22, 0xb8, 0x2, 0x88, 0x88, 0x88, 0x88, 0x72,
-
     /* U+5E94 "应" */
     0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0xb, 0x40, 0x0, 0x0, 0x0, 0x85,
@@ -772,6 +791,20 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x3a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0,
 
+    /* U+5F0F "式" */
+    0x0, 0x0, 0x0, 0x1, 0x30, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x2, 0xc2, 0x81, 0x0, 0x0, 0x0,
+    0x0, 0x1, 0xb0, 0x59, 0x0, 0x3, 0x55, 0x55,
+    0x56, 0xd5, 0x5b, 0xa0, 0x1, 0x10, 0x0, 0x0,
+    0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0xc0,
+    0x0, 0x0, 0x3, 0x65, 0x85, 0xb3, 0xb0, 0x0,
+    0x0, 0x0, 0x0, 0xc0, 0x0, 0x84, 0x0, 0x0,
+    0x0, 0x0, 0xc0, 0x0, 0x49, 0x0, 0x0, 0x0,
+    0x0, 0xc0, 0x0, 0xd, 0x10, 0x30, 0x0, 0x1,
+    0xd7, 0x54, 0x5, 0xa0, 0x60, 0xa, 0xc8, 0x30,
+    0x0, 0x0, 0x9b, 0xb0, 0x2, 0x0, 0x0, 0x0,
+    0x0, 0x5, 0xc2,
+
     /* U+606F "息" */
     0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x20,
     0x37, 0x0, 0x5, 0x0, 0x0, 0xd5, 0x55, 0x55,
@@ -874,19 +907,19 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0xba, 0xd3, 0x0, 0x8, 0x30, 0x0, 0x0,
     0x0, 0x0,
 
-    /* U+6807 "标" */
-    0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0xe, 0x10, 0x0, 0x0, 0x5, 0x10, 0x0, 0xc,
-    0x0, 0x35, 0x55, 0x55, 0x20, 0x0, 0xc, 0x12,
-    0x0, 0x0, 0x0, 0x0, 0x5, 0x5d, 0x55, 0x0,
-    0x0, 0x0, 0x30, 0x0, 0x4d, 0x2, 0x55, 0x5b,
-    0x55, 0x83, 0x0, 0x9d, 0x91, 0x0, 0xd, 0x0,
-    0x0, 0x0, 0xac, 0x37, 0x2a, 0xd, 0x31, 0x0,
-    0x5, 0x3c, 0x0, 0x95, 0xd, 0xa, 0x10, 0x6,
-    0xc, 0x1, 0xa0, 0xd, 0x4, 0xc0, 0x10, 0xc,
-    0x7, 0x10, 0xd, 0x0, 0xd1, 0x0, 0xc, 0x22,
-    0x1, 0xd, 0x0, 0x30, 0x0, 0xd, 0x0, 0x5,
-    0xda, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x10,
+    /* U+6A21 "模" */
+    0x0, 0x4, 0x0, 0x3, 0x0, 0x40, 0x0, 0x0,
+    0xd, 0x0, 0xb, 0x20, 0xd0, 0x10, 0x0, 0xb,
+    0x4, 0x5c, 0x55, 0xc5, 0xa1, 0x4, 0x4c, 0x76,
+    0xa, 0x0, 0xa0, 0x0, 0x1, 0x3c, 0x10, 0x95,
+    0x55, 0x5b, 0x10, 0x0, 0x6d, 0x20, 0xb0, 0x0,
+    0xb, 0x0, 0x0, 0xab, 0xa5, 0xb5, 0x55, 0x5c,
+    0x0, 0x1, 0x7b, 0x16, 0xb5, 0x55, 0x5c, 0x0,
+    0x6, 0xb, 0x0, 0x60, 0x93, 0x5, 0x0, 0x12,
+    0xb, 0x16, 0x55, 0xc7, 0x55, 0xb2, 0x0, 0xb,
+    0x0, 0x1, 0xb4, 0x20, 0x0, 0x0, 0xc, 0x0,
+    0xa, 0x30, 0xa5, 0x0, 0x0, 0xc, 0x2, 0x83,
+    0x0, 0xa, 0xd3, 0x0, 0x2, 0x22, 0x0, 0x0,
     0x0, 0x0,
 
     /* U+6B65 "步" */
@@ -959,20 +992,20 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x8, 0x3b, 0x80, 0x0, 0x0, 0x10, 0x0, 0x0,
     0x1, 0x0,
 
-    /* U+7B7E "签" */
-    0x0, 0x2, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0,
-    0xe, 0x20, 0x0, 0x87, 0x0, 0x0, 0x0, 0x5b,
-    0x55, 0xb1, 0xc5, 0x57, 0xa0, 0x0, 0xa0, 0xa1,
-    0x5, 0x30, 0x90, 0x0, 0x6, 0x10, 0x85, 0xa5,
-    0x0, 0x84, 0x0, 0x12, 0x0, 0x7, 0xa5, 0x10,
-    0x0, 0x0, 0x0, 0x0, 0x78, 0x0, 0x76, 0x0,
-    0x0, 0x0, 0x28, 0x85, 0x55, 0x99, 0xca, 0x72,
-    0x15, 0x40, 0x10, 0x20, 0x3, 0x15, 0x50, 0x0,
-    0x5, 0x30, 0xa1, 0xb, 0x50, 0x0, 0x0, 0x0,
-    0xd0, 0x77, 0xa, 0x0, 0x0, 0x0, 0x0, 0x91,
-    0x23, 0x62, 0x1, 0x10, 0x4, 0x55, 0x55, 0x55,
-    0x95, 0x5b, 0xb0, 0x1, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0,
+    /* U+7EBF "线" */
+    0x0, 0x1, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0,
+    0xb, 0x50, 0x1, 0xc2, 0x71, 0x0, 0x0, 0x1b,
+    0x0, 0x1, 0xb0, 0x59, 0x0, 0x0, 0x82, 0x1c,
+    0x0, 0xb0, 0x7, 0x20, 0x2, 0x70, 0x87, 0x54,
+    0xd4, 0x45, 0x30, 0xc, 0x86, 0xa0, 0x0, 0xc0,
+    0x0, 0x30, 0x1, 0xa, 0x10, 0x23, 0xd4, 0x46,
+    0x70, 0x0, 0x83, 0x5, 0x20, 0xc0, 0x7, 0x0,
+    0x7, 0xd8, 0x53, 0x0, 0x92, 0x8a, 0x10, 0x2,
+    0x50, 0x0, 0x0, 0x5d, 0x90, 0x10, 0x0, 0x3,
+    0x65, 0x11, 0xae, 0x20, 0x60, 0xc, 0xa5, 0x0,
+    0x59, 0x23, 0xd3, 0xa0, 0x0, 0x0, 0x15, 0x20,
+    0x0, 0x3d, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x30,
 
     /* U+7F51 "网" */
     0x18, 0x55, 0x55, 0x55, 0x55, 0x6a, 0x1, 0xb0,
@@ -1244,45 +1277,47 @@ static const lv_font_fmt_txt_glyph_dsc_t glyph_dsc[] = {
     {.bitmap_index = 2587, .adv_w = 112, .box_w = 1, .box_h = 15, .ofs_x = 3, .ofs_y = -2},
     {.bitmap_index = 2595, .adv_w = 112, .box_w = 4, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
     {.bitmap_index = 2623, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 2714, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 2812, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 2910, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 3008, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 3106, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 3204, .adv_w = 224, .box_w = 12, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 3288, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 3386, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 3477, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 3575, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 3673, .adv_w = 224, .box_w = 12, .box_h = 12, .ofs_x = 1, .ofs_y = -1},
-    {.bitmap_index = 3745, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 3843, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 3941, .adv_w = 224, .box_w = 12, .box_h = 13, .ofs_x = 1, .ofs_y = -1},
-    {.bitmap_index = 4019, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 4117, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 4215, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 4313, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 4411, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 4509, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 4607, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 4705, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 4803, .adv_w = 224, .box_w = 12, .box_h = 13, .ofs_x = 1, .ofs_y = -1},
-    {.bitmap_index = 4881, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 4972, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 5063, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 5161, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 5259, .adv_w = 224, .box_w = 13, .box_h = 13, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 5344, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 5442, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 5540, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 5631, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 5729, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 5827, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 5925, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 6023, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 6114, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 6205, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 6303, .adv_w = 224, .box_w = 12, .box_h = 14, .ofs_x = 2, .ofs_y = -2}
+    {.bitmap_index = 2714, .adv_w = 224, .box_w = 11, .box_h = 14, .ofs_x = 2, .ofs_y = -2},
+    {.bitmap_index = 2791, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 2889, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 2987, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 3085, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 3183, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 3281, .adv_w = 224, .box_w = 12, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 3365, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 3463, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 3561, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 3652, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 3750, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 3848, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 3946, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 4044, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 4135, .adv_w = 224, .box_w = 12, .box_h = 13, .ofs_x = 1, .ofs_y = -1},
+    {.bitmap_index = 4213, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 4311, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 4409, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 4507, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 4605, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 4703, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 4801, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 4899, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 4997, .adv_w = 224, .box_w = 12, .box_h = 13, .ofs_x = 1, .ofs_y = -1},
+    {.bitmap_index = 5075, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 5166, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 5257, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 5355, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 5453, .adv_w = 224, .box_w = 13, .box_h = 13, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 5538, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 5636, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 5734, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 5825, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 5923, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 6021, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 6119, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 6217, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 6308, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 6399, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 6497, .adv_w = 224, .box_w = 12, .box_h = 14, .ofs_x = 2, .ofs_y = -2}
 };
 
 /*---------------------
@@ -1301,11 +1336,12 @@ static const uint8_t glyph_id_ofs_list_0[] = {
 };
 
 static const uint16_t unicode_list_2[] = {
-    0x0, 0x152, 0x1d7, 0x369, 0x383, 0x3f1, 0x602, 0xb27,
-    0xbc1, 0xd82, 0xdef, 0xfe8, 0x108a, 0x10f6, 0x1265, 0x1406,
-    0x1441, 0x1449, 0x159b, 0x16c3, 0x1930, 0x19fd, 0x1d5b, 0x22af,
-    0x271e, 0x287a, 0x2a64, 0x2d74, 0x3147, 0x3a42, 0x3d9a, 0x3dcb,
-    0x3ded, 0x3f1b, 0x41d1, 0x41d4, 0x4343, 0x43c3, 0x4724, 0x47e3
+    0x0, 0x23, 0x152, 0x1d7, 0x369, 0x383, 0x3f1, 0x602,
+    0x91e, 0xb27, 0xbc1, 0xd82, 0xdef, 0x108a, 0x10f6, 0x1105,
+    0x1265, 0x1406, 0x1441, 0x1449, 0x159b, 0x16c3, 0x1930, 0x1c17,
+    0x1d5b, 0x22af, 0x271e, 0x287a, 0x2a64, 0x30b5, 0x3147, 0x3a42,
+    0x3d9a, 0x3dcb, 0x3ded, 0x3f1b, 0x41d1, 0x41d4, 0x4343, 0x43c3,
+    0x4724, 0x47e3
 };
 
 /*Collect the unicode lists and glyph_id offsets*/
@@ -1321,7 +1357,7 @@ static const lv_font_fmt_txt_cmap_t cmaps[] =
     },
     {
         .range_start = 19978, .range_length = 18404, .glyph_id_start = 89,
-        .unicode_list = unicode_list_2, .glyph_id_ofs_list = NULL, .list_length = 40, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
+        .unicode_list = unicode_list_2, .glyph_id_ofs_list = NULL, .list_length = 42, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
     }
 };
 
index 781681f..d285c74 100644 (file)
@@ -5,11 +5,14 @@
  ******************************************************************************/
 
 #ifdef LV_LVGL_H_INCLUDE_SIMPLE
-    #include "lvgl.h"
+#include "lvgl.h"
 #else
-    #include "../../lvgl.h"
+#include "lvgl/lvgl.h"
 #endif
 
+#ifndef LV_FONT_16_SIMSUM
+#define LV_FONT_16_SIMSUM 1
+#endif
 
 #if LV_FONT_ZHANSI_DEMO
 
@@ -720,6 +723,24 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0xd, 0x0, 0x2b, 0x0, 0x0, 0x2a, 0x0,
     0x0, 0x6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+505C "停" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x2, 0xb0, 0x0, 0x19, 0x20, 0x0, 0x0,
+    0x0, 0x6, 0x90, 0x0, 0x5, 0x90, 0x2, 0x50,
+    0x0, 0xb, 0x24, 0x76, 0x66, 0x66, 0x66, 0x60,
+    0x0, 0x1b, 0x0, 0xa, 0x66, 0x66, 0xb2, 0x0,
+    0x0, 0x8d, 0x0, 0xd, 0x0, 0x0, 0xd0, 0x0,
+    0x0, 0xbc, 0x0, 0xe, 0x66, 0x66, 0xe0, 0x0,
+    0x6, 0x3c, 0x2, 0x4, 0x0, 0x0, 0x20, 0x20,
+    0x3, 0xc, 0xa, 0x66, 0x66, 0x66, 0x66, 0xe3,
+    0x0, 0xc, 0x4b, 0x0, 0x0, 0x0, 0x25, 0x10,
+    0x0, 0xc, 0x0, 0x67, 0x66, 0xb6, 0x77, 0x0,
+    0x0, 0xc, 0x0, 0x0, 0x0, 0xd0, 0x0, 0x0,
+    0x0, 0xc, 0x0, 0x0, 0x0, 0xd0, 0x0, 0x0,
+    0x0, 0xc, 0x0, 0x0, 0x0, 0xc0, 0x0, 0x0,
+    0x0, 0xc, 0x0, 0x0, 0x7c, 0xb0, 0x0, 0x0,
+    0x0, 0x4, 0x0, 0x0, 0x5, 0x10, 0x0, 0x0,
+
     /* U+5173 "关" */
     0x0, 0x0, 0x52, 0x0, 0x0, 0xa1, 0x0, 0x0,
     0x0, 0x0, 0xc, 0x40, 0x4, 0xd2, 0x0, 0x0,
@@ -737,6 +758,23 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x1, 0x76, 0x0, 0x0, 0x0, 0x0, 0x9f, 0x90,
     0x14, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0,
 
+    /* U+518D "再" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x82, 0x0,
+    0x28, 0x66, 0x66, 0xc6, 0x66, 0x68, 0x60, 0x0,
+    0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x86, 0x66, 0xe6, 0x66, 0xb4, 0x0, 0x0, 0xd,
+    0x10, 0xd, 0x0, 0xc, 0x20, 0x0, 0x0, 0xc1,
+    0x0, 0xd0, 0x0, 0xc1, 0x0, 0x0, 0xc, 0x66,
+    0x6e, 0x66, 0x6d, 0x10, 0x0, 0x0, 0xc1, 0x0,
+    0xd0, 0x0, 0xc1, 0x0, 0x0, 0xc, 0x10, 0xd,
+    0x0, 0xc, 0x11, 0x1, 0x66, 0xd6, 0x66, 0xe6,
+    0x66, 0xd7, 0xf6, 0x2, 0xc, 0x10, 0x0, 0x0,
+    0xc, 0x10, 0x0, 0x0, 0xc1, 0x0, 0x0, 0x0,
+    0xc1, 0x0, 0x0, 0xc, 0x10, 0x0, 0x0, 0xc,
+    0x10, 0x0, 0x0, 0xd1, 0x0, 0x1, 0x7d, 0xf0,
+    0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x33, 0x0,
+    0x0,
+
     /* U+529F "功" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0xd, 0x10, 0x0, 0x0,
@@ -805,6 +843,23 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0xe, 0x10, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+5361 "卡" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x1e, 0x10, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xe, 0x66, 0x66, 0xe5, 0x0, 0x0, 0x0,
+    0x0, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xd0, 0x0, 0x0, 0x69, 0x6, 0x76, 0x66, 0x6d,
+    0x66, 0x66, 0x66, 0x61, 0x0, 0x0, 0x0, 0xe1,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe, 0x77,
+    0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd0, 0x3b,
+    0xd7, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x4,
+    0xe5, 0x0, 0x0, 0x0, 0x0, 0xd0, 0x0, 0x1,
+    0x10, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0xd0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0,
+
     /* U+53EF "可" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0,
     0x6, 0x66, 0x66, 0x66, 0x66, 0x66, 0x6d, 0x90,
@@ -953,6 +1008,23 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0x7, 0x30, 0x0, 0x2, 0xc1,
     0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+58F0 "声" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x1c, 0x10, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0xd0, 0x0, 0x4, 0x0, 0x37,
+    0x66, 0x66, 0x6e, 0x66, 0x67, 0xb4, 0x0, 0x0,
+    0x0, 0x0, 0xd0, 0x0, 0x10, 0x0, 0x0, 0x76,
+    0x66, 0x6b, 0x66, 0x8b, 0x0, 0x0, 0x2, 0x0,
+    0x0, 0x0, 0x0, 0x30, 0x0, 0x0, 0xc7, 0x66,
+    0x6c, 0x66, 0x6d, 0x30, 0x0, 0xc, 0x20, 0x0,
+    0xd0, 0x0, 0xc1, 0x0, 0x0, 0xc2, 0x0, 0xd,
+    0x0, 0xc, 0x10, 0x0, 0xd, 0x66, 0x66, 0x66,
+    0x66, 0xb1, 0x0, 0x0, 0xd0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x29, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x8, 0x20, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x4, 0x50, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x30, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+5907 "备" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x6, 0xc0, 0x0, 0x0, 0x0, 0x0,
@@ -971,6 +1043,23 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0xe6, 0x66, 0x66, 0x6e, 0x10, 0x0,
     0x0, 0x0, 0x50, 0x0, 0x0, 0x2, 0x0, 0x0,
 
+    /* U+5931 "失" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0xa5, 0x0, 0x0, 0x0, 0x0,
+    0x3, 0x40, 0xb, 0x30, 0x0, 0x0, 0x0, 0x0,
+    0x8a, 0x0, 0xb3, 0x0, 0x0, 0x0, 0x0, 0xc,
+    0x76, 0x6d, 0x86, 0x6a, 0xc1, 0x0, 0x1, 0x90,
+    0x0, 0xc3, 0x0, 0x0, 0x0, 0x0, 0x71, 0x0,
+    0xd, 0x10, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0,
+    0xe0, 0x0, 0x1, 0x80, 0x6, 0x76, 0x66, 0x7e,
+    0x86, 0x66, 0x79, 0x40, 0x0, 0x0, 0x6, 0x94,
+    0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc3, 0x9,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x4a, 0x0, 0x57,
+    0x0, 0x0, 0x0, 0x0, 0x1c, 0x10, 0x0, 0xa7,
+    0x0, 0x0, 0x0, 0x3a, 0x10, 0x0, 0x0, 0xbc,
+    0x30, 0x1, 0x66, 0x0, 0x0, 0x0, 0x0, 0xaf,
+    0x80, 0x30, 0x0, 0x0, 0x0, 0x0, 0x0, 0x20,
+
     /* U+59CB "始" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0,
     0x0, 0x6a, 0x0, 0x0, 0x3e, 0x10, 0x0, 0x0,
@@ -1006,22 +1095,22 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0xf0, 0x1, 0x8d, 0xc0, 0x0, 0x0,
     0x0, 0x0, 0x50, 0x0, 0x5, 0x10, 0x0, 0x0,
 
-    /* U+5B8C "完" */
-    0x0, 0x0, 0x0, 0x8, 0x30, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x2, 0xd0, 0x0, 0x0, 0x0,
-    0x0, 0x67, 0x66, 0x66, 0xb6, 0x66, 0x69, 0x70,
-    0x0, 0xb3, 0x0, 0x0, 0x0, 0x0, 0x9, 0x40,
-    0x1, 0x90, 0x0, 0x0, 0x0, 0x24, 0x3, 0x0,
-    0x0, 0x3, 0x76, 0x66, 0x66, 0x66, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0,
-    0x0, 0x56, 0x66, 0x66, 0x66, 0x66, 0x9e, 0x20,
-    0x0, 0x10, 0x4, 0xa0, 0xd, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x6, 0x70, 0xd, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0xa, 0x40, 0xd, 0x0, 0x0, 0x30,
-    0x0, 0x0, 0x1d, 0x0, 0xd, 0x0, 0x0, 0x60,
-    0x0, 0x0, 0xa4, 0x0, 0xe, 0x0, 0x0, 0xc0,
-    0x0, 0x49, 0x30, 0x0, 0x9, 0xdc, 0xcd, 0xb1,
-    0x5, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    /* U+5B9A "定" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x8, 0x40, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x1e, 0x0, 0x0, 0x0, 0x0, 0x57,
+    0x66, 0x66, 0x96, 0x66, 0x6b, 0x50, 0xc, 0x10,
+    0x0, 0x0, 0x0, 0x0, 0xc4, 0x4, 0xb0, 0x0,
+    0x0, 0x0, 0x0, 0x41, 0x0, 0x4, 0x66, 0x66,
+    0x66, 0x66, 0x6d, 0x90, 0x0, 0x11, 0x0, 0x3,
+    0xa0, 0x0, 0x0, 0x0, 0x0, 0x7, 0x10, 0x3a,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0xf4, 0x3, 0xa0,
+    0x1, 0x50, 0x0, 0x0, 0x2e, 0x0, 0x3c, 0x66,
+    0x78, 0x10, 0x0, 0x6, 0xb3, 0x3, 0xa0, 0x0,
+    0x0, 0x0, 0x0, 0xc1, 0x64, 0x3a, 0x0, 0x0,
+    0x0, 0x0, 0x75, 0x0, 0x7c, 0xc4, 0x21, 0x12,
+    0x30, 0x45, 0x0, 0x0, 0x17, 0xbd, 0xef, 0xf4,
+    0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
 
     /* U+5BB9 "容" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -1138,6 +1227,22 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xa0, 0x7d, 0x50, 0x0, 0x0, 0x0, 0xa, 0xfe,
     0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5, 0xc5,
 
+    /* U+603B "总" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x70, 0x0, 0xe, 0x30, 0x0, 0x0, 0x0,
+    0x89, 0x0, 0x68, 0x0, 0x0, 0x0, 0x0, 0x2c,
+    0x0, 0x90, 0x0, 0x0, 0x0, 0x19, 0x66, 0x68,
+    0x76, 0x79, 0x0, 0x0, 0x1d, 0x0, 0x0, 0x0,
+    0x58, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x58,
+    0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x58, 0x0,
+    0x0, 0x1e, 0x66, 0x66, 0x66, 0x98, 0x0, 0x0,
+    0x19, 0x1, 0x50, 0x0, 0x34, 0x0, 0x0, 0x0,
+    0x40, 0x7a, 0x0, 0x10, 0x0, 0x4, 0x30, 0xe0,
+    0xc, 0x0, 0x2a, 0x70, 0x1d, 0x10, 0xc0, 0x0,
+    0x0, 0x60, 0xd6, 0xba, 0x0, 0xd0, 0x0, 0x0,
+    0xb0, 0x44, 0x0, 0x0, 0xcc, 0xcc, 0xcd, 0xc1,
+    0x0,
+
     /* U+6210 "成" */
     0x0, 0x0, 0x0, 0x0, 0xa2, 0x24, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0xf2, 0xa, 0x80, 0x0,
@@ -1222,23 +1327,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x4, 0xce, 0x0, 0x0, 0x8, 0xe6, 0x0,
     0x0, 0x2, 0x20, 0x0, 0x0, 0x5, 0x0, 0x0,
 
-    /* U+636E "据" */
-    0x0, 0x8, 0x20, 0x12, 0x0, 0x0, 0x4, 0x0,
-    0x0, 0xd, 0x10, 0x3c, 0x66, 0x66, 0x6e, 0x10,
-    0x0, 0xd, 0x10, 0x3a, 0x0, 0x0, 0xd, 0x0,
-    0x16, 0x6e, 0x6c, 0x5c, 0x66, 0x66, 0x6d, 0x0,
-    0x0, 0xd, 0x10, 0x3a, 0x0, 0x72, 0x6, 0x0,
-    0x0, 0xd, 0x10, 0x59, 0x0, 0xd0, 0x0, 0x0,
-    0x0, 0xd, 0x66, 0x5b, 0x66, 0xe6, 0x69, 0x90,
-    0x0, 0x6f, 0x40, 0x65, 0x0, 0xd0, 0x0, 0x0,
-    0x3e, 0x8d, 0x10, 0xa2, 0x0, 0xd0, 0x0, 0x0,
-    0x4, 0xd, 0x10, 0xc3, 0x86, 0xc6, 0x6c, 0x10,
-    0x0, 0xd, 0x13, 0x83, 0x90, 0x0, 0xd, 0x0,
-    0x0, 0xd, 0x19, 0x13, 0x90, 0x0, 0xd, 0x0,
-    0x4, 0x4e, 0x36, 0x3, 0xb6, 0x66, 0x6d, 0x0,
-    0x0, 0x98, 0x60, 0x3, 0x90, 0x0, 0xd, 0x0,
-    0x0, 0x0, 0x0, 0x1, 0x10, 0x0, 0x1, 0x0,
-
     /* U+63A5 "接" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0xc, 0x20, 0x0, 0x19, 0x10, 0x0, 0x0,
@@ -1293,6 +1381,22 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x4, 0x65, 0x0, 0x4, 0x71, 0x0, 0x7, 0xb2,
     0x0, 0x0, 0x0, 0x21, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+65F6 "时" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0xc2, 0x0, 0x0, 0x0,
+    0x20, 0x0, 0x0, 0xe0, 0x0, 0xc6, 0x67, 0xe0,
+    0x0, 0x0, 0xe0, 0x0, 0xc1, 0x2, 0xc0, 0x0,
+    0x0, 0xe0, 0x81, 0xc1, 0x2, 0xc7, 0x66, 0x66,
+    0xe6, 0x63, 0xc1, 0x2, 0xc0, 0x0, 0x0, 0xe0,
+    0x0, 0xc6, 0x67, 0xc0, 0x92, 0x0, 0xe0, 0x0,
+    0xc1, 0x2, 0xc0, 0x3e, 0x10, 0xe0, 0x0, 0xc1,
+    0x2, 0xc0, 0xc, 0x40, 0xe0, 0x0, 0xc1, 0x2,
+    0xc0, 0x1, 0x0, 0xe0, 0x0, 0xc6, 0x67, 0xc0,
+    0x0, 0x0, 0xe0, 0x0, 0xd1, 0x2, 0xb0, 0x0,
+    0x0, 0xe0, 0x0, 0x70, 0x0, 0x0, 0x2, 0x34,
+    0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4e, 0x90,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0,
+
     /* U+672A "未" */
     0x0, 0x0, 0x0, 0xa, 0x50, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0xb3, 0x0, 0x0, 0x0, 0x0,
@@ -1417,6 +1521,22 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x3, 0x21, 0x83, 0x0, 0x0, 0x0, 0xcb,
     0x10, 0x1, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+6B62 "止" */
+    0x0, 0x0, 0x0, 0x0, 0xb4, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0xd1, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0xd1, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0xd1, 0x0, 0x0, 0x0,
+    0x0, 0x1, 0xe2, 0x0, 0xd1, 0x0, 0x4, 0x0,
+    0x0, 0x0, 0xd0, 0x0, 0xd6, 0x66, 0x8a, 0x20,
+    0x0, 0x0, 0xd0, 0x0, 0xc1, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xd0, 0x0, 0xc1, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xd0, 0x0, 0xc1, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xd0, 0x0, 0xc1, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xd0, 0x0, 0xc1, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xd0, 0x0, 0xc1, 0x0, 0x1, 0x0,
+    0x5, 0x66, 0xe6, 0x66, 0xd6, 0x66, 0x6d, 0xc0,
+    0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+6B65 "步" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0xe2, 0x0, 0x0, 0x0, 0x0,
@@ -1829,6 +1949,23 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x8, 0x50, 0xe0, 0xd, 0xb, 0x22, 0x30,
     0x7, 0x68, 0x76, 0xa6, 0x6a, 0x69, 0x69, 0x90,
 
+    /* U+884C "行" */
+    0x0, 0x6, 0x60, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x1, 0xd3, 0x2, 0x66, 0x66, 0x6e, 0x40, 0x0,
+    0x93, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x63,
+    0x8, 0x10, 0x0, 0x0, 0x0, 0x0, 0x21, 0x3,
+    0xd2, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0xc3,
+    0x37, 0x66, 0x68, 0x67, 0xb3, 0x0, 0x9d, 0x0,
+    0x0, 0x2, 0xb0, 0x0, 0x0, 0x66, 0xe0, 0x0,
+    0x0, 0x2b, 0x0, 0x0, 0x45, 0xd, 0x0, 0x0,
+    0x2, 0xb0, 0x0, 0x1, 0x0, 0xd0, 0x0, 0x0,
+    0x2b, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x2,
+    0xb0, 0x0, 0x0, 0x0, 0xd0, 0x0, 0x0, 0x2b,
+    0x0, 0x0, 0x0, 0xd, 0x0, 0x3, 0x26, 0xa0,
+    0x0, 0x0, 0x0, 0xd0, 0x0, 0x3a, 0xf7, 0x0,
+    0x0, 0x0, 0x3, 0x0, 0x0, 0x4, 0x0, 0x0,
+    0x0,
+
     /* U+8BA1 "计" */
     0x0, 0x32, 0x0, 0x0, 0x7, 0x30, 0x0, 0x0,
     0x0, 0xb5, 0x0, 0x0, 0xb4, 0x0, 0x0, 0x0,
@@ -1880,6 +2017,24 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x5, 0x95, 0x0, 0x2, 0x9f, 0x70,
     0x0, 0x1, 0x41, 0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+8D25 "败" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x10, 0xa, 0x80, 0x0, 0x0,
+    0xa, 0x76, 0x66, 0xe1, 0xd, 0x20, 0x0, 0x0,
+    0xa, 0x31, 0x2, 0xb0, 0x2b, 0x0, 0x0, 0x0,
+    0xa, 0x39, 0x72, 0xb0, 0x6a, 0x66, 0x68, 0xb0,
+    0xa, 0x39, 0x32, 0xb0, 0xb5, 0x0, 0xc1, 0x0,
+    0xa, 0x3a, 0x32, 0xb3, 0x66, 0x0, 0xe0, 0x0,
+    0xa, 0x3a, 0x22, 0xb7, 0x7, 0x2, 0xb0, 0x0,
+    0xa, 0x3c, 0x12, 0xb1, 0x8, 0x6, 0x70, 0x0,
+    0xa, 0x3c, 0x2, 0xb0, 0x4, 0x5b, 0x20, 0x0,
+    0xa, 0x4c, 0x23, 0x20, 0x0, 0xcb, 0x0, 0x0,
+    0x1, 0x57, 0xa, 0x60, 0x0, 0xb7, 0x0, 0x0,
+    0x0, 0xb1, 0x1, 0xe2, 0x6, 0x8c, 0x30, 0x0,
+    0x5, 0x50, 0x0, 0x50, 0x68, 0x2, 0xe6, 0x0,
+    0x25, 0x0, 0x0, 0x18, 0x40, 0x0, 0x3e, 0xb0,
+    0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x1, 0x0,
+
     /* U+8F6F "软" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x6, 0x80, 0x0, 0x5, 0x50, 0x0, 0x0,
@@ -1982,6 +2137,39 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x30, 0x20, 0xe0, 0xd1, 0x0, 0x0, 0x0, 0x5,
     0xec, 0x1, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0,
 
+    /* U+95F4 "间" */
+    0x0, 0x82, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x2e, 0x7, 0x66, 0x66, 0x66, 0xd3, 0xc, 0x19,
+    0x0, 0x0, 0x0, 0x0, 0xe0, 0xd, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0xe0, 0xd, 0x0, 0xb6, 0x66,
+    0xc8, 0x0, 0xe0, 0xd, 0x0, 0xc1, 0x0, 0xa2,
+    0x0, 0xe0, 0xd, 0x0, 0xc1, 0x0, 0xa2, 0x0,
+    0xe0, 0xd, 0x0, 0xb6, 0x66, 0xc2, 0x0, 0xe0,
+    0xd, 0x0, 0xc1, 0x0, 0xa2, 0x0, 0xe0, 0xd,
+    0x0, 0xc1, 0x0, 0xa2, 0x0, 0xe0, 0xd, 0x0,
+    0xc6, 0x66, 0xc3, 0x0, 0xe0, 0xd, 0x0, 0x60,
+    0x0, 0x30, 0x0, 0xe0, 0xe, 0x0, 0x0, 0x0,
+    0x1, 0x21, 0xe0, 0xe, 0x0, 0x0, 0x0, 0x0,
+    0x5f, 0xb0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x2,
+    0x0,
+
+    /* U+97F3 "音" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x1, 0xb3, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x7, 0x70, 0x0, 0x70, 0x0, 0x3,
+    0x76, 0x76, 0x66, 0x68, 0x68, 0x30, 0x0, 0x0,
+    0xa, 0x20, 0x1, 0xf2, 0x0, 0x0, 0x0, 0x0,
+    0x5c, 0x0, 0x75, 0x0, 0x0, 0x0, 0x0, 0x1,
+    0x60, 0x8, 0x0, 0x1b, 0x30, 0x76, 0x66, 0x66,
+    0x66, 0x66, 0x66, 0x64, 0x0, 0x0, 0x40, 0x0,
+    0x0, 0x7, 0x0, 0x0, 0x0, 0xe, 0x66, 0x66,
+    0x66, 0xe2, 0x0, 0x0, 0x0, 0xe0, 0x0, 0x0,
+    0xe, 0x0, 0x0, 0x0, 0xe, 0x66, 0x66, 0x66,
+    0xe0, 0x0, 0x0, 0x0, 0xe0, 0x0, 0x0, 0xe,
+    0x0, 0x0, 0x0, 0xe, 0x66, 0x66, 0x66, 0xe0,
+    0x0, 0x0, 0x0, 0xe0, 0x0, 0x0, 0xd, 0x0,
+    0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x10, 0x0,
+
     /* U+9884 "预" */
     0x0, 0x0, 0x1, 0x40, 0x0, 0x0, 0x4, 0x70,
     0x3, 0x76, 0x6b, 0xa5, 0x76, 0xab, 0x66, 0x61,
@@ -2118,82 +2306,93 @@ static const lv_font_fmt_txt_glyph_dsc_t glyph_dsc[] = {
     {.bitmap_index = 3622, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
     {.bitmap_index = 3750, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
     {.bitmap_index = 3870, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 3998, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 4118, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 4238, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 4351, .adv_w = 256, .box_w = 14, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 4456, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 4584, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 4704, .adv_w = 256, .box_w = 13, .box_h = 16, .ofs_x = 2, .ofs_y = -2},
-    {.bitmap_index = 4808, .adv_w = 256, .box_w = 13, .box_h = 15, .ofs_x = 2, .ofs_y = -2},
-    {.bitmap_index = 4906, .adv_w = 256, .box_w = 14, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 5018, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 5131, .adv_w = 256, .box_w = 13, .box_h = 15, .ofs_x = 2, .ofs_y = -2},
-    {.bitmap_index = 5229, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 5357, .adv_w = 256, .box_w = 16, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 5469, .adv_w = 256, .box_w = 16, .box_h = 17, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 5605, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 5733, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 5853, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 5981, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 6101, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 6221, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 6341, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 6454, .adv_w = 256, .box_w = 15, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 6552, .adv_w = 256, .box_w = 14, .box_h = 14, .ofs_x = 2, .ofs_y = -1},
-    {.bitmap_index = 6650, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 6770, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 6890, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 7010, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 7130, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 7250, .adv_w = 256, .box_w = 14, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 7362, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 7482, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 7602, .adv_w = 256, .box_w = 16, .box_h = 17, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 7738, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 7858, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 7986, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 8099, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 8227, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 8355, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 8483, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 8611, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 8739, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 8859, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 8979, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 9099, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 9219, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 9347, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 9460, .adv_w = 256, .box_w = 13, .box_h = 15, .ofs_x = 2, .ofs_y = -1},
-    {.bitmap_index = 9558, .adv_w = 256, .box_w = 13, .box_h = 16, .ofs_x = 2, .ofs_y = -2},
-    {.bitmap_index = 9662, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 9790, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 9910, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 10030, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 10150, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 10270, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 10398, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 10518, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 10646, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 10774, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 10887, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 11007, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 11135, .adv_w = 256, .box_w = 15, .box_h = 17, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 11263, .adv_w = 256, .box_w = 14, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 11368, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 11496, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 11624, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 11744, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 11857, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 11977, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 12097, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 12225, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 12353, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 12473, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 12593, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 12713, .adv_w = 256, .box_w = 13, .box_h = 16, .ofs_x = 2, .ofs_y = -2},
-    {.bitmap_index = 12817, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 12945, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 1, .ofs_y = -2}
+    {.bitmap_index = 3998, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 4126, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 4246, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 4359, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 4479, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 4592, .adv_w = 256, .box_w = 14, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 4697, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 4825, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 4945, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 5065, .adv_w = 256, .box_w = 13, .box_h = 16, .ofs_x = 2, .ofs_y = -2},
+    {.bitmap_index = 5169, .adv_w = 256, .box_w = 13, .box_h = 15, .ofs_x = 2, .ofs_y = -2},
+    {.bitmap_index = 5267, .adv_w = 256, .box_w = 14, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 5379, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 5492, .adv_w = 256, .box_w = 13, .box_h = 15, .ofs_x = 2, .ofs_y = -2},
+    {.bitmap_index = 5590, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 5718, .adv_w = 256, .box_w = 16, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 5830, .adv_w = 256, .box_w = 16, .box_h = 17, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 5966, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 6086, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 6214, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 6334, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 6454, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 6582, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 6702, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 6822, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 6942, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 7055, .adv_w = 256, .box_w = 15, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 7153, .adv_w = 256, .box_w = 14, .box_h = 14, .ofs_x = 2, .ofs_y = -1},
+    {.bitmap_index = 7251, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 7371, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 7491, .adv_w = 256, .box_w = 14, .box_h = 15, .ofs_x = 1, .ofs_y = -1},
+    {.bitmap_index = 7596, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 7716, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 7836, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 7956, .adv_w = 256, .box_w = 14, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 8068, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 8188, .adv_w = 256, .box_w = 16, .box_h = 17, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 8324, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 8444, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 8572, .adv_w = 256, .box_w = 14, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 8684, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 8797, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 8925, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 9053, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 9181, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 9309, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 9437, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 9557, .adv_w = 256, .box_w = 16, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 9669, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 9789, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 9909, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 10029, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 10157, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 10270, .adv_w = 256, .box_w = 13, .box_h = 15, .ofs_x = 2, .ofs_y = -1},
+    {.bitmap_index = 10368, .adv_w = 256, .box_w = 13, .box_h = 16, .ofs_x = 2, .ofs_y = -2},
+    {.bitmap_index = 10472, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 10600, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 10720, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 10840, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 10960, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 11080, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 11208, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 11328, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 11456, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 11584, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 11697, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 11817, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 11945, .adv_w = 256, .box_w = 15, .box_h = 17, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 12073, .adv_w = 256, .box_w = 14, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 12178, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 12306, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 12434, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 12554, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 12667, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 12780, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 12900, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 13020, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 13148, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 13276, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 13404, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 13524, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 13644, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 13764, .adv_w = 256, .box_w = 13, .box_h = 16, .ofs_x = 2, .ofs_y = -2},
+    {.bitmap_index = 13868, .adv_w = 256, .box_w = 14, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 13973, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 14093, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 14221, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 1, .ofs_y = -2}
 };
 
 /*---------------------
@@ -2212,17 +2411,18 @@ static const uint8_t glyph_id_ofs_list_0[] = {
 };
 
 static const uint16_t unicode_list_2[] = {
-    0x0, 0xc9, 0x12f, 0x152, 0x1b4, 0x346, 0x472, 0x47b,
-    0x50d, 0x528, 0x5c2, 0x5c3, 0x5df, 0x5e0, 0x5e1, 0x8d0,
-    0x8fb, 0x903, 0x9b2, 0xada, 0xb9e, 0xd2b, 0xd5f, 0xd8c,
-    0xdcc, 0xdcf, 0xfb8, 0xfc5, 0x10d3, 0x10e2, 0x13e3, 0x141e,
-    0x1426, 0x143e, 0x14d4, 0x1541, 0x1578, 0x15a2, 0x1743, 0x18fd,
-    0x18ff, 0x190d, 0x1934, 0x19da, 0x1bf4, 0x1cf4, 0x1d38, 0x241b,
-    0x242c, 0x255a, 0x26fb, 0x2708, 0x2857, 0x28ab, 0x29d4, 0x2a3f,
-    0x2a41, 0x2b8e, 0x2bc3, 0x2bce, 0x2d1c, 0x2d51, 0x307a, 0x3092,
-    0x30af, 0x30c0, 0x3124, 0x3227, 0x33fd, 0x36b0, 0x3d74, 0x3d77,
-    0x3d91, 0x4142, 0x41b1, 0x41ed, 0x4320, 0x43a2, 0x47c0, 0x4a57,
-    0x4ab1
+    0x0, 0xc9, 0x12f, 0x152, 0x1b4, 0x22f, 0x346, 0x360,
+    0x472, 0x47b, 0x50d, 0x528, 0x534, 0x5c2, 0x5c3, 0x5df,
+    0x5e0, 0x5e1, 0x8d0, 0x8fb, 0x903, 0x9b2, 0xac3, 0xada,
+    0xb04, 0xb9e, 0xd2b, 0xd6d, 0xd8c, 0xdcc, 0xdcf, 0xfb8,
+    0xfc5, 0x10d3, 0x10e2, 0x120e, 0x13e3, 0x141e, 0x1426, 0x143e,
+    0x14d4, 0x1578, 0x15a2, 0x1743, 0x17c9, 0x18fd, 0x18ff, 0x190d,
+    0x1934, 0x19da, 0x1bf4, 0x1cf4, 0x1d35, 0x1d38, 0x241b, 0x242c,
+    0x255a, 0x26fb, 0x2708, 0x2857, 0x28ab, 0x29d4, 0x2a3f, 0x2a41,
+    0x2b8e, 0x2bc3, 0x2bce, 0x2d1c, 0x2d51, 0x307a, 0x3092, 0x30af,
+    0x30c0, 0x3124, 0x3227, 0x33fd, 0x36b0, 0x3a1f, 0x3d74, 0x3d77,
+    0x3d91, 0x3ef8, 0x4142, 0x41b1, 0x41ed, 0x4320, 0x43a2, 0x47c0,
+    0x47c7, 0x49c6, 0x4a57, 0x4ab1
 };
 
 /*Collect the unicode lists and glyph_id offsets*/
@@ -2238,7 +2438,7 @@ static const lv_font_fmt_txt_cmap_t cmaps[] =
     },
     {
         .range_start = 20013, .range_length = 19122, .glyph_id_start = 89,
-        .unicode_list = unicode_list_2, .glyph_id_ofs_list = NULL, .list_length = 81, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
+        .unicode_list = unicode_list_2, .glyph_id_ofs_list = NULL, .list_length = 92, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
     }
 };
 
index ab5483d..ab0ebfb 100644 (file)
@@ -5,11 +5,14 @@
  ******************************************************************************/
 
 #ifdef LV_LVGL_H_INCLUDE_SIMPLE
-    #include "lvgl.h"
+#include "lvgl.h"
 #else
-    #include "../../lvgl.h"
+#include "lvgl/lvgl.h"
 #endif
 
+#ifndef LV_FONT_18_SIMSUM
+#define LV_FONT_18_SIMSUM 1
+#endif
 
 #if LV_FONT_ZHANSI_DEMO
 
 static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     /* U+0020 " " */
 
-    /* U+0028 "(" */
-    0x0, 0x0, 0x80, 0x0, 0x8, 0x30, 0x0, 0x58,
-    0x0, 0x1, 0xd0, 0x0, 0x6, 0x80, 0x0, 0xc,
-    0x30, 0x0, 0xf, 0x0, 0x0, 0x1f, 0x0, 0x0,
-    0xf, 0x0, 0x0, 0xe, 0x10, 0x0, 0xa, 0x50,
-    0x0, 0x4, 0xa0, 0x0, 0x0, 0xb3, 0x0, 0x0,
-    0x1b, 0x0, 0x0, 0x3, 0x80, 0x0, 0x0, 0x30,
-
-    /* U+0029 ")" */
-    0x8, 0x0, 0x0, 0x4, 0x80, 0x0, 0x0, 0x94,
-    0x0, 0x0, 0x1c, 0x0, 0x0, 0x9, 0x50, 0x0,
-    0x4, 0xb0, 0x0, 0x1, 0xe0, 0x0, 0x0, 0xf0,
-    0x0, 0x0, 0xf0, 0x0, 0x2, 0xd0, 0x0, 0x6,
-    0x90, 0x0, 0xb, 0x30, 0x0, 0x4a, 0x0, 0x0,
-    0xb1, 0x0, 0x9, 0x20, 0x0, 0x2, 0x0, 0x0,
-
-    /* U+52A0 "加" */
-    0x0, 0x0, 0x72, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0xd, 0x50, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0xc3, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0xc, 0x30, 0x2, 0x5, 0x10,
-    0x0, 0x60, 0x6, 0x66, 0xe8, 0x67, 0xf1, 0xb8,
-    0x66, 0x6f, 0x20, 0x0, 0xc, 0x20, 0x2b, 0xb,
-    0x40, 0x0, 0xe0, 0x0, 0x0, 0xd1, 0x3, 0xb0,
-    0xa4, 0x0, 0xe, 0x0, 0x0, 0xe, 0x0, 0x3a,
-    0xa, 0x40, 0x0, 0xe0, 0x0, 0x0, 0xf0, 0x4,
-    0xa0, 0xa4, 0x0, 0xe, 0x0, 0x0, 0x2d, 0x0,
-    0x49, 0xa, 0x40, 0x0, 0xe0, 0x0, 0x5, 0x90,
-    0x5, 0x80, 0xa4, 0x0, 0xe, 0x0, 0x0, 0x94,
-    0x0, 0x67, 0xa, 0x40, 0x0, 0xe0, 0x0, 0xc,
-    0x0, 0x8, 0x50, 0xa4, 0x0, 0xe, 0x0, 0x7,
-    0x60, 0x0, 0xc3, 0xb, 0x96, 0x66, 0xf0, 0x1,
-    0x90, 0x6b, 0xbd, 0x0, 0xb4, 0x0, 0xe, 0x0,
-    0x80, 0x0, 0x2c, 0x20, 0xb, 0x30, 0x0, 0xa0,
-    0x11, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0,
-    0x0,
-
     /* U+540C "同" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3,
     0xb6, 0x66, 0x66, 0x66, 0x66, 0x66, 0xe4, 0x3d,
@@ -76,27 +42,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x4, 0xd0, 0x0, 0x0, 0x0, 0x3, 0xaf, 0xb0,
     0x24, 0x0, 0x0, 0x0, 0x0, 0x0, 0x61, 0x0,
 
-    /* U+5916 "外" */
-    0x0, 0x0, 0x13, 0x0, 0x0, 0x5, 0x0, 0x0,
-    0x0, 0x0, 0x5, 0xf3, 0x0, 0x0, 0xd7, 0x0,
-    0x0, 0x0, 0x0, 0x8b, 0x0, 0x0, 0xd, 0x20,
-    0x0, 0x0, 0x0, 0xd, 0x50, 0x0, 0x0, 0xd2,
-    0x0, 0x0, 0x0, 0x3, 0xf7, 0x66, 0xe6, 0xd,
-    0x20, 0x0, 0x0, 0x0, 0x88, 0x0, 0x2f, 0x40,
-    0xd2, 0x0, 0x0, 0x0, 0xe, 0x10, 0x7, 0xc0,
-    0xd, 0x40, 0x0, 0x0, 0x6, 0xb6, 0x0, 0xc6,
-    0x0, 0xd6, 0xb6, 0x0, 0x0, 0xb0, 0x9d, 0x1f,
-    0x0, 0xd, 0x21, 0xbe, 0x20, 0x72, 0x0, 0xb9,
-    0x90, 0x0, 0xd2, 0x0, 0xc7, 0x2, 0x0, 0x0,
-    0xe2, 0x0, 0xd, 0x20, 0x1, 0x10, 0x0, 0x0,
-    0x88, 0x0, 0x0, 0xd2, 0x0, 0x0, 0x0, 0x0,
-    0x3c, 0x0, 0x0, 0xd, 0x20, 0x0, 0x0, 0x0,
-    0x2b, 0x10, 0x0, 0x0, 0xd2, 0x0, 0x0, 0x0,
-    0x2a, 0x0, 0x0, 0x0, 0xd, 0x20, 0x0, 0x0,
-    0x45, 0x0, 0x0, 0x0, 0x0, 0xd3, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0x10, 0x0,
-    0x0,
-
     /* U+627E "找" */
     0x0, 0x0, 0x50, 0x0, 0x2, 0x30, 0x0, 0x0,
     0x0, 0x0, 0xe, 0x50, 0x0, 0x4e, 0x13, 0x30,
@@ -140,28 +85,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0,
 
-    /* U+683C "格" */
-    0x0, 0x1, 0x50, 0x0, 0x4, 0x50, 0x0, 0x0,
-    0x0, 0x0, 0x2, 0xe1, 0x0, 0xa, 0xb0, 0x0,
-    0x0, 0x0, 0x0, 0x2, 0xc0, 0x0, 0xe, 0x10,
-    0x0, 0x70, 0x0, 0x0, 0x2, 0xc0, 0x0, 0x6d,
-    0x66, 0x6a, 0xd2, 0x0, 0x4, 0x67, 0xe7, 0xd3,
-    0xa4, 0x30, 0xd, 0x30, 0x0, 0x0, 0x4, 0xc0,
-    0x6, 0x10, 0xb0, 0x99, 0x0, 0x0, 0x0, 0x8,
-    0xd0, 0x12, 0x0, 0x4d, 0xc0, 0x0, 0x0, 0x0,
-    0xd, 0xda, 0x40, 0x0, 0x5f, 0xa0, 0x0, 0x0,
-    0x0, 0x2c, 0xc2, 0xe0, 0x7, 0x90, 0x9d, 0x50,
-    0x0, 0x0, 0x85, 0xc0, 0x41, 0x94, 0x0, 0x4,
-    0xde, 0xa2, 0x0, 0x92, 0xc1, 0x55, 0xa6, 0x66,
-    0x67, 0xd6, 0x20, 0x6, 0x12, 0xc1, 0x0, 0xd2,
-    0x0, 0x2, 0xd0, 0x0, 0x4, 0x2, 0xc0, 0x0,
-    0xd2, 0x0, 0x2, 0xc0, 0x0, 0x0, 0x2, 0xc0,
-    0x0, 0xd2, 0x0, 0x2, 0xc0, 0x0, 0x0, 0x2,
-    0xd0, 0x0, 0xd2, 0x0, 0x2, 0xd0, 0x0, 0x0,
-    0x2, 0xd0, 0x0, 0xd8, 0x77, 0x78, 0xe0, 0x0,
-    0x0, 0x2, 0x90, 0x0, 0xa1, 0x0, 0x1, 0x70,
-    0x0,
-
     /* U+6B65 "步" */
     0x0, 0x0, 0x0, 0x0, 0x18, 0x10, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0, 0x1f, 0x10, 0x0,
@@ -224,25 +147,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x1, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0,
 
-    /* U+7A7A "空" */
-    0x0, 0x0, 0x0, 0x51, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x3e, 0x50, 0x0, 0x0, 0x0,
-    0x1, 0x0, 0x0, 0x7, 0x80, 0x0, 0x0, 0x20,
-    0x7, 0x76, 0x66, 0x67, 0x76, 0x66, 0x68, 0xf5,
-    0x1e, 0x20, 0x8, 0x10, 0x2, 0x0, 0x7, 0x80,
-    0x8b, 0x0, 0x8e, 0x40, 0x3, 0xa7, 0x15, 0x0,
-    0x0, 0x7, 0xc1, 0x0, 0x0, 0x8, 0xf8, 0x0,
-    0x0, 0x97, 0x0, 0x0, 0x0, 0x0, 0x4f, 0x50,
-    0x37, 0x20, 0x0, 0x0, 0x0, 0x4, 0x53, 0x20,
-    0x0, 0x39, 0x76, 0x6c, 0x86, 0x67, 0x80, 0x0,
-    0x0, 0x0, 0x0, 0xc, 0x40, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0xc, 0x40, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0xc, 0x40, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0xc, 0x40, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0xc, 0x40, 0x0, 0x0, 0x30,
-    0x56, 0x66, 0x66, 0x6d, 0x96, 0x66, 0x6c, 0xe3,
-    0x11, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
     /* U+7F6E "置" */
     0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x21,
     0x0, 0x0, 0x1f, 0x88, 0x8d, 0x88, 0xc8, 0x88,
@@ -295,20 +199,14 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
 static const lv_font_fmt_txt_glyph_dsc_t glyph_dsc[] = {
     {.bitmap_index = 0, .adv_w = 0, .box_w = 0, .box_h = 0, .ofs_x = 0, .ofs_y = 0} /* id = 0 reserved */,
     {.bitmap_index = 0, .adv_w = 144, .box_w = 0, .box_h = 0, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 0, .adv_w = 144, .box_w = 6, .box_h = 16, .ofs_x = 3, .ofs_y = -2},
-    {.bitmap_index = 48, .adv_w = 144, .box_w = 6, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 96, .adv_w = 288, .box_w = 17, .box_h = 17, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 241, .adv_w = 288, .box_w = 15, .box_h = 17, .ofs_x = 2, .ofs_y = -2},
-    {.bitmap_index = 369, .adv_w = 288, .box_w = 17, .box_h = 17, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 514, .adv_w = 288, .box_w = 17, .box_h = 18, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 667, .adv_w = 288, .box_w = 17, .box_h = 17, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 812, .adv_w = 288, .box_w = 18, .box_h = 17, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 965, .adv_w = 288, .box_w = 18, .box_h = 17, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 1118, .adv_w = 288, .box_w = 16, .box_h = 16, .ofs_x = 1, .ofs_y = -1},
-    {.bitmap_index = 1246, .adv_w = 288, .box_w = 18, .box_h = 17, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 1399, .adv_w = 288, .box_w = 16, .box_h = 17, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 1535, .adv_w = 288, .box_w = 18, .box_h = 17, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 1688, .adv_w = 288, .box_w = 17, .box_h = 17, .ofs_x = 1, .ofs_y = -2}
+    {.bitmap_index = 0, .adv_w = 288, .box_w = 15, .box_h = 17, .ofs_x = 2, .ofs_y = -2},
+    {.bitmap_index = 128, .adv_w = 288, .box_w = 17, .box_h = 18, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 281, .adv_w = 288, .box_w = 17, .box_h = 17, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 426, .adv_w = 288, .box_w = 18, .box_h = 17, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 579, .adv_w = 288, .box_w = 16, .box_h = 16, .ofs_x = 1, .ofs_y = -1},
+    {.bitmap_index = 707, .adv_w = 288, .box_w = 18, .box_h = 17, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 860, .adv_w = 288, .box_w = 18, .box_h = 17, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 1013, .adv_w = 288, .box_w = 17, .box_h = 17, .ofs_x = 1, .ofs_y = -2}
 };
 
 /*---------------------
@@ -316,8 +214,8 @@ static const lv_font_fmt_txt_glyph_dsc_t glyph_dsc[] = {
  *--------------------*/
 
 static const uint16_t unicode_list_0[] = {
-    0x0, 0x8, 0x9, 0x5280, 0x53ec, 0x58f6, 0x625e, 0x67c5,
-    0x681c, 0x6b45, 0x7099, 0x76b8, 0x7a5a, 0x7f4e, 0x8b9e
+    0x0, 0x53ec, 0x625e, 0x67c5, 0x6b45, 0x7099, 0x76b8, 0x7f4e,
+    0x8b9e
 };
 
 /*Collect the unicode lists and glyph_id offsets*/
@@ -325,7 +223,7 @@ static const lv_font_fmt_txt_cmap_t cmaps[] =
 {
     {
         .range_start = 32, .range_length = 35743, .glyph_id_start = 1,
-        .unicode_list = unicode_list_0, .glyph_id_ofs_list = NULL, .list_length = 15, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
+        .unicode_list = unicode_list_0, .glyph_id_ofs_list = NULL, .list_length = 9, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
     }
 };
 
index aa5fb44..ad87509 100644 (file)
@@ -19,7 +19,7 @@
 
 /*Store the image of the glyphs*/
 static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
-    /* U+000A "\n" */
+    /* U+0020 " " */
 
     /* U+0021 "!" */
     0x3f, 0xf, 0xc3, 0xf0, 0xf8, 0x3e, 0xf, 0x83,
@@ -1040,14 +1040,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xc3, 0xd0, 0x1f, 0xb, 0xe6, 0xf8, 0xf, 0xff,
     0xc0, 0xb, 0xf4, 0x0,
 
-    /* U+02C9 "ˉ" */
-    0x0, 0x0, 0x3, 0xff, 0xfe, 0x3f, 0xff, 0xe0,
-
-    /* U+2014 "—" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd3,
-    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x40,
-
     /* U+2103 "℃" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb,
     0xf8, 0x0, 0x0, 0xbf, 0xff, 0x80, 0xff, 0xfc,
@@ -1104,38 +1096,87 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x2, 0xf0, 0x2f, 0x0, 0x3e, 0x3, 0xe0, 0x7,
     0xd0, 0x7d, 0x0, 0xbc, 0xb, 0xc0, 0x0,
 
-    /* U+39A4 "㦤" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0xf, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0xf,
-    0x0, 0x0, 0x3c, 0x0, 0x0, 0x1a, 0xaf, 0xaa,
-    0x80, 0xbf, 0xff, 0xf0, 0x3f, 0xff, 0xff, 0xc0,
-    0xff, 0xff, 0xf0, 0x0, 0xf, 0x0, 0x2, 0xe0,
-    0x0, 0xf0, 0x0, 0xf, 0x0, 0x3, 0xc3, 0xc1,
-    0xd0, 0xf, 0xff, 0xff, 0x4f, 0x43, 0xc3, 0xc0,
-    0xa, 0xaa, 0xaa, 0xb, 0x3, 0xc1, 0x40, 0x0,
-    0x0, 0x0, 0x0, 0x7, 0xc0, 0x0, 0x3f, 0xff,
-    0xff, 0xc0, 0xb, 0xd0, 0x0, 0x3e, 0xaa, 0xab,
-    0xc0, 0xf, 0xf0, 0x0, 0x38, 0x0, 0x2, 0xc0,
-    0x1f, 0xf8, 0x0, 0x3a, 0xaa, 0xaa, 0xc0, 0x3d,
-    0x3e, 0x0, 0x13, 0xff, 0xfc, 0x41, 0xf8, 0xf,
-    0x80, 0x0, 0x0, 0x0, 0xb, 0xf0, 0x3, 0xf4,
-    0x2, 0xaa, 0xa9, 0xf, 0x80, 0x0, 0xf4, 0x7,
-    0xff, 0xfe, 0x4, 0xb, 0x0, 0x10, 0x7, 0x40,
-    0xe, 0x0, 0x93, 0xc0, 0x0, 0x7, 0x40, 0xe,
-    0x1c, 0xe2, 0xd0, 0x90, 0x7, 0xff, 0xfe, 0x2c,
-    0xe0, 0xe0, 0xf0, 0x1, 0xd5, 0x79, 0x3c, 0xe0,
-    0x0, 0xb0, 0x1, 0xd0, 0x38, 0x38, 0xe0, 0xd,
-    0x38, 0x0, 0xf0, 0xb0, 0x74, 0xe0, 0x1d, 0x2c,
-    0x0, 0x71, 0xf9, 0xb0, 0xf0, 0x2d, 0x1d, 0x3f,
-    0xff, 0xfe, 0xf0, 0xff, 0xfc, 0xc, 0x3f, 0xa5,
-    0x0, 0x0, 0x7f, 0xf4, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0,
-
     /* U+4E00 "一" */
     0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xbf,
     0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x6a, 0xaa,
     0xaa, 0xaa, 0xaa, 0xaa, 0xa8,
 
+    /* U+4E01 "丁" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xe3, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0x85, 0x55, 0x55, 0x5f,
+    0x95, 0x55, 0x54, 0x0, 0x0, 0x0, 0x3e, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0xf8, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x3, 0xe0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xf, 0x80, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x3e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xf8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xe0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0x80, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x3e, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0xf8, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x3, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xf, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3e,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf8, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x3, 0xe0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0xf, 0x80, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x3e, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1b,
+    0xd0, 0x0, 0x0, 0x0, 0x0, 0x3f, 0xff, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0xff, 0xf4, 0x0, 0x0,
+    0x0, 0x0, 0x1, 0x50, 0x0, 0x0, 0x0, 0x0,
+
+    /* U+4E03 "七" */
+    0x0, 0x0, 0x1a, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x1f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x1f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x1f, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x1f, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x1f, 0x0, 0x0, 0x0, 0x68,
+    0x0, 0x0, 0x1f, 0x0, 0x16, 0xff, 0xfc, 0x0,
+    0x0, 0x1f, 0x6f, 0xff, 0xff, 0xf8, 0x0, 0x16,
+    0xff, 0xff, 0xff, 0x94, 0x0, 0x6f, 0xff, 0xff,
+    0xf9, 0x40, 0x0, 0x0, 0x7f, 0xff, 0xaf, 0x0,
+    0x0, 0x0, 0x0, 0x39, 0x40, 0x1f, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x1f, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x1f, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x1f, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x1f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x1f, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1f,
+    0x0, 0x0, 0x3, 0xd0, 0x0, 0x0, 0x1f, 0x0,
+    0x0, 0x3, 0xd0, 0x0, 0x0, 0x1f, 0x0, 0x0,
+    0x3, 0xd0, 0x0, 0x0, 0x1f, 0x0, 0x0, 0x7,
+    0xc0, 0x0, 0x0, 0xf, 0xd5, 0x55, 0x6f, 0xc0,
+    0x0, 0x0, 0xb, 0xff, 0xff, 0xff, 0x80, 0x0,
+    0x0, 0x1, 0xbf, 0xff, 0xf9, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0,
+
+    /* U+4E07 "万" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xf, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xfd, 0x0, 0x0, 0x1f,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x1f, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x2f, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x2f, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x2f, 0x55, 0x55, 0x55, 0x0, 0x0,
+    0x0, 0x3f, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0,
+    0x3f, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x3d,
+    0x0, 0x0, 0x2e, 0x0, 0x0, 0x0, 0x3c, 0x0,
+    0x0, 0x2e, 0x0, 0x0, 0x0, 0x7c, 0x0, 0x0,
+    0x3e, 0x0, 0x0, 0x0, 0xbc, 0x0, 0x0, 0x3e,
+    0x0, 0x0, 0x0, 0xf8, 0x0, 0x0, 0x3d, 0x0,
+    0x0, 0x1, 0xf0, 0x0, 0x0, 0x3d, 0x0, 0x0,
+    0x3, 0xf0, 0x0, 0x0, 0x3d, 0x0, 0x0, 0x7,
+    0xd0, 0x0, 0x0, 0x3d, 0x0, 0x0, 0xf, 0x80,
+    0x0, 0x0, 0x3c, 0x0, 0x0, 0x3f, 0x0, 0x0,
+    0x0, 0x7c, 0x0, 0x0, 0xfd, 0x0, 0x0, 0x0,
+    0xfc, 0x0, 0x3, 0xf8, 0x0, 0x1, 0x5b, 0xf8,
+    0x0, 0xf, 0xe0, 0x0, 0x3, 0xff, 0xf0, 0x0,
+    0x2f, 0x80, 0x0, 0x3, 0xfe, 0x80, 0x0, 0xe,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+4E08 "丈" */
     0x0, 0x0, 0x0, 0x1, 0x50, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x2, 0xe0, 0x0, 0x0, 0x0, 0x0,
@@ -1235,6 +1276,30 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0x0, 0x0, 0xf4, 0x0, 0x0,
     0x0,
 
+    /* U+4E0C "丌" */
+    0x15, 0x55, 0x55, 0x55, 0x55, 0x55, 0x56, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xc0, 0x0, 0xf8, 0x0,
+    0x3, 0xc0, 0x0, 0x0, 0x3, 0xe0, 0x0, 0xf,
+    0x0, 0x0, 0x0, 0xf, 0x80, 0x0, 0x3c, 0x0,
+    0x0, 0x0, 0x3e, 0x0, 0x0, 0xf0, 0x0, 0x0,
+    0x0, 0xf8, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x3,
+    0xe0, 0x0, 0xf, 0x0, 0x0, 0x0, 0xf, 0x40,
+    0x0, 0x3c, 0x0, 0x0, 0x0, 0x3d, 0x0, 0x0,
+    0xf0, 0x0, 0x0, 0x0, 0xf4, 0x0, 0x3, 0xc0,
+    0x0, 0x0, 0x3, 0xd0, 0x0, 0xf, 0x0, 0x0,
+    0x0, 0xf, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x0,
+    0x7c, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x2, 0xf0,
+    0x0, 0x3, 0xc0, 0x0, 0x0, 0xf, 0x80, 0x0,
+    0xf, 0x0, 0x0, 0x0, 0xbc, 0x0, 0x0, 0x3c,
+    0x0, 0x0, 0x3, 0xe0, 0x0, 0x0, 0xf0, 0x0,
+    0x0, 0x3f, 0x0, 0x0, 0x3, 0xc0, 0x0, 0x3,
+    0xf4, 0x0, 0x0, 0xf, 0x0, 0x0, 0x2f, 0x80,
+    0x0, 0x0, 0x3c, 0x0, 0x3, 0xf8, 0x0, 0x0,
+    0x0, 0xf0, 0x0, 0xb, 0x80, 0x0, 0x0, 0x3,
+    0xc0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0,
+
     /* U+4E0D "不" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f,
     0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff,
@@ -1382,6 +1447,30 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x54, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc,
     0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc,
 
+    /* U+4E15 "丕" */
+    0x5, 0x55, 0x55, 0x55, 0x55, 0x55, 0x40, 0x3f,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x3,
+    0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x2, 0xf4, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x1f, 0xc0, 0x0, 0x0, 0x0,
+    0x0, 0x1, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xf, 0xfc, 0xf4, 0x0, 0x0, 0x0, 0x0, 0xfd,
+    0xf3, 0xf8, 0x0, 0x0, 0x0, 0x1f, 0xc7, 0xc3,
+    0xf8, 0x0, 0x0, 0x1, 0xfc, 0x1f, 0x2, 0xfc,
+    0x0, 0x0, 0x2f, 0xc0, 0x7c, 0x1, 0xfc, 0x0,
+    0x3, 0xfc, 0x1, 0xf0, 0x1, 0xfd, 0x0, 0xbf,
+    0x80, 0x7, 0xc0, 0x1, 0xfd, 0xf, 0xf4, 0x0,
+    0x1f, 0x0, 0x1, 0xfc, 0x3f, 0x0, 0x0, 0x7c,
+    0x0, 0x1, 0xf0, 0x20, 0x0, 0x1, 0xf0, 0x0,
+    0x1, 0x40, 0x0, 0x0, 0x7, 0xc0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x1f, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x28, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x3, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0x8f, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xfe, 0x15, 0x55, 0x55, 0x55, 0x55, 0x55,
+    0x50,
+
     /* U+4E16 "世" */
     0x0, 0x50, 0x1, 0xe0, 0x0, 0xf4, 0x0, 0x0,
     0xb8, 0x1, 0xf0, 0x0, 0xf4, 0x0, 0x0, 0xb8,
@@ -1688,6 +1777,12 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x80, 0x0, 0x0, 0x0, 0x6c, 0x0, 0x20, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+4E28 "丨" */
+    0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c,
+    0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c,
+    0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c,
+    0x7c, 0x7c, 0x7c,
+
     /* U+4E2A "个" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0xb, 0xc0, 0x0, 0x0, 0x0, 0x0,
@@ -1739,6 +1834,20 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x7, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x7, 0xc0,
     0x0, 0x0, 0x0, 0x0, 0x7, 0xc0, 0x0, 0x0,
 
+    /* U+4E2C "丬" */
+    0x0, 0x0, 0x5, 0x0, 0x0, 0x3, 0xd0, 0x0,
+    0x0, 0xf4, 0x0, 0x0, 0x3d, 0x2, 0x0, 0xf,
+    0x43, 0xf0, 0x3, 0xd0, 0x3d, 0x0, 0xf4, 0xb,
+    0xc0, 0x3d, 0x0, 0xf8, 0xf, 0x40, 0x2f, 0x3,
+    0xd0, 0x3, 0xe0, 0xf4, 0x0, 0xbc, 0x3d, 0x0,
+    0xe, 0xf, 0x40, 0x0, 0x3, 0xd0, 0x0, 0x2,
+    0xf4, 0x0, 0x7, 0xfd, 0x0, 0xb, 0xff, 0x40,
+    0x2f, 0xf7, 0xd0, 0x7f, 0xd0, 0xf4, 0xff, 0x80,
+    0x3d, 0x3f, 0x40, 0xf, 0x45, 0x0, 0x3, 0xd0,
+    0x0, 0x0, 0xf4, 0x0, 0x0, 0x3d, 0x0, 0x0,
+    0xf, 0x40, 0x0, 0x3, 0xd0, 0x0, 0x0, 0xf4,
+    0x0, 0x0, 0x3d,
+
     /* U+4E2D "中" */
     0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x7, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x7, 0xc0,
@@ -1836,6 +1945,13 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xc0, 0x0, 0x3c, 0xf, 0x0, 0x0, 0x3c, 0x0,
     0x3, 0xc0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+4E36 "丶" */
+    0x4, 0x0, 0x0, 0x3d, 0x0, 0x0, 0x7f, 0x40,
+    0x0, 0x1f, 0xd0, 0x0, 0xb, 0xf0, 0x0, 0x2,
+    0xfc, 0x0, 0x0, 0xbf, 0x0, 0x0, 0x3f, 0xc0,
+    0x0, 0xf, 0xe0, 0x0, 0x3, 0xf8, 0x0, 0x1,
+    0xfc, 0x0, 0x0, 0xb0, 0x0, 0x0, 0x0,
+
     /* U+4E38 "丸" */
     0x0, 0x0, 0x78, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x1, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7,
@@ -1991,6 +2107,44 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7c,
     0x0, 0x0, 0x0,
 
+    /* U+4E3F "丿" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xf0, 0x0,
+    0x0, 0x7c, 0x0, 0x0, 0x1f, 0x0, 0x0, 0x7,
+    0xc0, 0x0, 0x1, 0xf0, 0x0, 0x0, 0x7c, 0x0,
+    0x0, 0x1f, 0x0, 0x0, 0x7, 0xc0, 0x0, 0x1,
+    0xf0, 0x0, 0x0, 0xbc, 0x0, 0x0, 0x2f, 0x0,
+    0x0, 0xb, 0x80, 0x0, 0x3, 0xe0, 0x0, 0x0,
+    0xf4, 0x0, 0x0, 0x3d, 0x0, 0x0, 0x1f, 0x0,
+    0x0, 0xf, 0x80, 0x0, 0x7, 0xd0, 0x0, 0x3,
+    0xf0, 0x0, 0x2, 0xf4, 0x0, 0x2, 0xf8, 0x0,
+    0x2, 0xfc, 0x0, 0x2, 0xfc, 0x0, 0x3, 0xfc,
+    0x0, 0x7, 0xfc, 0x0, 0x2, 0xf8, 0x0, 0x0,
+    0x24, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+
+    /* U+4E43 "乃" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0x0, 0xf, 0xff, 0xff,
+    0xff, 0xff, 0xf0, 0x0, 0x0, 0x1f, 0x40, 0x0,
+    0x3f, 0x0, 0x0, 0x0, 0xf0, 0x0, 0x3, 0xd0,
+    0x0, 0x0, 0xf, 0x0, 0x0, 0x7c, 0x0, 0x0,
+    0x1, 0xf0, 0x0, 0xb, 0xc0, 0x0, 0x0, 0x1f,
+    0x0, 0x0, 0xf4, 0x0, 0x0, 0x1, 0xf0, 0x0,
+    0x2f, 0x0, 0x0, 0x0, 0x2f, 0x0, 0x3, 0xe5,
+    0x54, 0x0, 0x2, 0xe0, 0x0, 0x3f, 0xff, 0xc0,
+    0x0, 0x3e, 0x0, 0x3, 0xff, 0xfc, 0x0, 0x3,
+    0xd0, 0x0, 0x0, 0x7, 0xc0, 0x0, 0x3c, 0x0,
+    0x0, 0x0, 0x7c, 0x0, 0x7, 0xc0, 0x0, 0x0,
+    0xb, 0xc0, 0x0, 0xf8, 0x0, 0x0, 0x0, 0xb8,
+    0x0, 0xf, 0x40, 0x0, 0x0, 0xb, 0x80, 0x2,
+    0xf0, 0x0, 0x0, 0x0, 0xf8, 0x0, 0x3e, 0x0,
+    0x0, 0x0, 0xf, 0x40, 0xb, 0xc0, 0x0, 0x0,
+    0x0, 0xf4, 0x1, 0xf8, 0x0, 0x0, 0x0, 0xf,
+    0x40, 0x3f, 0x0, 0x0, 0x0, 0x1, 0xf0, 0xf,
+    0xc0, 0x0, 0x0, 0x55, 0xbf, 0x3, 0xf4, 0x0,
+    0x0, 0x2f, 0xff, 0xd0, 0x7e, 0x0, 0x0, 0x1,
+    0xff, 0xe0, 0x1, 0x80, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+4E45 "久" */
     0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x3e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -2018,6 +2172,30 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0x0, 0xf4, 0x14, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x10,
 
+    /* U+4E47 "乇" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x6, 0xfc, 0x0, 0x0, 0x0,
+    0x1, 0xaf, 0xff, 0xf0, 0x0, 0x1, 0x6f, 0xff,
+    0xff, 0xe5, 0x0, 0x7, 0xff, 0xff, 0xfa, 0x40,
+    0x0, 0x0, 0xf, 0xfe, 0x5f, 0x40, 0x0, 0x0,
+    0x0, 0x10, 0x0, 0x3d, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xf4, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x3, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf,
+    0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3d, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0xf4, 0x5, 0x6a,
+    0xfe, 0x0, 0x56, 0xaf, 0xff, 0xff, 0xff, 0xf8,
+    0xff, 0xff, 0xff, 0xff, 0xfe, 0xa5, 0x43, 0xff,
+    0xfa, 0xbd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xf4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xd0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0x40, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x3d, 0x0, 0x0, 0x9,
+    0x0, 0x0, 0x0, 0xf4, 0x0, 0x0, 0x3d, 0x0,
+    0x0, 0x3, 0xd0, 0x0, 0x0, 0xf0, 0x0, 0x0,
+    0xf, 0x40, 0x0, 0x7, 0xc0, 0x0, 0x0, 0x3d,
+    0x0, 0x0, 0x2f, 0x0, 0x0, 0x0, 0xfe, 0x55,
+    0x56, 0xf8, 0x0, 0x0, 0x1, 0xff, 0xff, 0xff,
+    0xc0, 0x0, 0x0, 0x1, 0xbf, 0xff, 0xf8, 0x0,
+
     /* U+4E48 "么" */
     0x0, 0x0, 0x0, 0x80, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x7, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -2359,6 +2537,53 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x24, 0x0, 0x0, 0x7c, 0x0, 0x0, 0x14, 0x0,
     0x0, 0x0, 0x7c, 0x0, 0x0, 0x0,
 
+    /* U+4E59 "乙" */
+    0xf, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x0, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0x0, 0x1, 0x55, 0x55,
+    0x55, 0x6f, 0xd0, 0x0, 0x0, 0x0, 0x0, 0xb,
+    0xf4, 0x0, 0x0, 0x0, 0x0, 0x2, 0xfc, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0xfe, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x7f, 0x40, 0x0, 0x0, 0x0, 0x0,
+    0x1f, 0xd0, 0x0, 0x0, 0x0, 0x0, 0xb, 0xf0,
+    0x0, 0x0, 0x0, 0x0, 0x2, 0xf8, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0xfe, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x3f, 0x40, 0x0, 0x0, 0x0, 0x0, 0xf,
+    0xd0, 0x0, 0x0, 0x0, 0x0, 0x7, 0xf0, 0x0,
+    0x0, 0x0, 0x0, 0x1, 0xfc, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x3f, 0x0, 0x0, 0x0, 0x0, 0x24,
+    0xf, 0xc0, 0x0, 0x0, 0x0, 0x7, 0xc2, 0xf0,
+    0x0, 0x0, 0x0, 0x0, 0x7c, 0x3e, 0x0, 0x0,
+    0x0, 0x0, 0xb, 0xc3, 0xd0, 0x0, 0x0, 0x0,
+    0x0, 0xf8, 0x3f, 0x40, 0x0, 0x0, 0x0, 0x2f,
+    0x43, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xb,
+    0xff, 0xff, 0xff, 0xff, 0xf8, 0x0, 0x0, 0x0,
+    0x4, 0x0, 0x0, 0x0,
+
+    /* U+4E5C "乜" */
+    0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x3d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf4,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xd0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0xf, 0x40, 0x0, 0x0,
+    0x64, 0x0, 0x0, 0x3d, 0x0, 0x0, 0x6f, 0xe0,
+    0x0, 0x0, 0xf4, 0x1, 0xbf, 0xff, 0x40, 0x0,
+    0x3, 0xe6, 0xff, 0xfe, 0x6d, 0x0, 0x0, 0x1f,
+    0xff, 0xf9, 0x0, 0xb4, 0x0, 0x6f, 0xff, 0xe4,
+    0x0, 0x3, 0xd0, 0x7, 0xff, 0xf8, 0x0, 0x0,
+    0xf, 0x40, 0xe, 0x43, 0xd0, 0x0, 0x0, 0x3c,
+    0x0, 0x0, 0xf, 0x40, 0x0, 0x0, 0xf0, 0x0,
+    0x0, 0x3d, 0x0, 0x0, 0x3, 0xc0, 0x0, 0x0,
+    0xf4, 0x0, 0x0, 0x1f, 0x0, 0x0, 0x3, 0xd0,
+    0x0, 0x5a, 0xfc, 0x0, 0x0, 0xf, 0x40, 0x2,
+    0xff, 0xd0, 0x0, 0x0, 0x3d, 0x0, 0x7, 0xe8,
+    0x0, 0x0, 0x0, 0xf4, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x3, 0xd0, 0x0, 0x0, 0x0, 0x2d, 0x0,
+    0xf, 0x40, 0x0, 0x0, 0x0, 0xf8, 0x0, 0x3d,
+    0x0, 0x0, 0x0, 0x3, 0xd0, 0x0, 0xf8, 0x0,
+    0x0, 0x0, 0x1f, 0x0, 0x2, 0xfe, 0x95, 0x55,
+    0x6b, 0xfc, 0x0, 0x3, 0xff, 0xff, 0xff, 0xff,
+    0xd0, 0x0, 0x1, 0xaf, 0xff, 0xff, 0xa4, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+4E5D "九" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0xf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -2609,31 +2834,31 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xff, 0xc0, 0x0, 0xb, 0xff, 0xe0, 0x0, 0x54,
     0x0, 0x0, 0x0, 0x0, 0x0,
 
-    /* U+4E81 "亁" */
-    0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x2d, 0x0, 0x0, 0x38, 0x0, 0x0, 0x0, 0xb4,
-    0x0, 0x2, 0xe0, 0x0, 0xb, 0xff, 0xff, 0xf8,
-    0xf, 0x40, 0x0, 0x2f, 0xff, 0xff, 0xf0, 0x7c,
-    0x0, 0x0, 0x0, 0x2d, 0x0, 0x3, 0xff, 0xff,
-    0xc0, 0x0, 0xb4, 0x0, 0x1f, 0xff, 0xff, 0x2,
-    0xab, 0xfa, 0x90, 0xf4, 0x0, 0x0, 0xf, 0xff,
-    0xff, 0x8b, 0xc0, 0x0, 0x0, 0x3c, 0x0, 0x1e,
-    0x3c, 0x0, 0x0, 0x0, 0xf0, 0x0, 0x7a, 0xe0,
-    0x0, 0x0, 0x3, 0xff, 0xff, 0xe1, 0x6a, 0xaa,
-    0xa0, 0xf, 0xaa, 0xaf, 0x81, 0xff, 0xff, 0xc0,
-    0x3c, 0x0, 0x1e, 0x1, 0x55, 0x7e, 0x0, 0xfa,
-    0xaa, 0xf8, 0x0, 0x3, 0xf0, 0x3, 0xff, 0xff,
-    0xe0, 0x0, 0x2f, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x2, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2f,
-    0x0, 0x1, 0xff, 0xff, 0xfc, 0x1, 0xf4, 0x0,
-    0x3, 0xff, 0xff, 0xf0, 0xf, 0x40, 0x0, 0x0,
-    0xb, 0x40, 0x0, 0xf8, 0x0, 0x0, 0x0, 0x2d,
-    0x0, 0xb, 0xc0, 0x1, 0x83, 0xff, 0xff, 0xfd,
-    0x3d, 0x0, 0x7, 0x4f, 0xff, 0xff, 0xf5, 0xf0,
-    0x0, 0x2c, 0x0, 0xb, 0x40, 0xb, 0xc0, 0x1,
-    0xf0, 0x0, 0x2d, 0x0, 0x1f, 0xff, 0xff, 0x80,
-    0x0, 0xb4, 0x0, 0x2f, 0xff, 0xf8, 0x0, 0x2,
-    0xd0, 0x0, 0x0, 0x0, 0x0,
+    /* U+4E7E "乾" */
+    0x0, 0x5, 0x0, 0x0, 0x24, 0x0, 0x0, 0x0,
+    0x3c, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0xf0,
+    0x0, 0x7, 0xc0, 0x0, 0x0, 0x3, 0xc0, 0x0,
+    0x3e, 0x0, 0x0, 0x3f, 0xff, 0xff, 0xc1, 0xf4,
+    0x0, 0x0, 0xff, 0xff, 0xff, 0xb, 0xff, 0xff,
+    0xf0, 0x0, 0xf0, 0x0, 0x7f, 0xff, 0xff, 0xc0,
+    0x3, 0xc0, 0x3, 0xf0, 0x0, 0x0, 0xf, 0xff,
+    0xff, 0x1f, 0x40, 0x0, 0x0, 0x3f, 0xff, 0xfc,
+    0xf8, 0x0, 0x0, 0x0, 0xf0, 0x0, 0xf1, 0xd5,
+    0x55, 0x40, 0x3, 0xc0, 0x3, 0xc0, 0xff, 0xff,
+    0xc0, 0xf, 0xff, 0xff, 0x3, 0xff, 0xff, 0x0,
+    0x3f, 0xff, 0xfc, 0x0, 0x1, 0xf4, 0x0, 0xf0,
+    0x0, 0xf0, 0x0, 0x1f, 0x80, 0x3, 0xc0, 0x3,
+    0xc0, 0x0, 0xf8, 0x0, 0xf, 0xaa, 0xaf, 0x0,
+    0xf, 0xc0, 0x0, 0x3f, 0xff, 0xfc, 0x0, 0xfc,
+    0x0, 0x0, 0x0, 0xf0, 0x0, 0xb, 0xd0, 0x0,
+    0x0, 0x3, 0xc0, 0x0, 0x7e, 0x0, 0x0, 0x0,
+    0xf, 0x0, 0x3, 0xf0, 0x0, 0x3, 0xff, 0xff,
+    0xff, 0x6f, 0x40, 0x1, 0xef, 0xff, 0xff, 0xfd,
+    0xf8, 0x0, 0x7, 0x80, 0x3, 0xc0, 0x7, 0xd0,
+    0x0, 0x2e, 0x0, 0xf, 0x0, 0x1f, 0x40, 0x1,
+    0xf4, 0x0, 0x3c, 0x0, 0x3f, 0xff, 0xff, 0xc0,
+    0x0, 0xf0, 0x0, 0x6f, 0xff, 0xf8, 0x0, 0x3,
+    0xc0, 0x0, 0x0, 0x0, 0x0,
 
     /* U+4E86 "了" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f, 0xff,
@@ -2755,6 +2980,78 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xff, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
     0xd1, 0x55, 0x55, 0x55, 0x55, 0x55, 0x54,
 
+    /* U+4E8D "亍" */
+    0x1, 0x55, 0x55, 0x55, 0x55, 0x54, 0x0, 0xbf,
+    0xff, 0xff, 0xff, 0xff, 0xc0, 0xb, 0xff, 0xff,
+    0xff, 0xff, 0xfc, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xf, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd0,
+    0x0, 0x0, 0xf, 0x80, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf,
+    0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf8, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0xf, 0x80, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0xf8, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xf, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xf8, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0x80,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0xf8, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0xf, 0x80, 0x0, 0x0, 0x0,
+    0x0, 0x2, 0xf4, 0x0, 0x0, 0x0, 0x0, 0x2f,
+    0xff, 0x0, 0x0, 0x0, 0x0, 0x1, 0xff, 0xd0,
+    0x0, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0,
+    0x0,
+
+    /* U+4E8E "于" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb,
+    0xff, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x2f, 0xff,
+    0xff, 0xff, 0xff, 0xf0, 0x0, 0x0, 0x0, 0x1f,
+    0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3d, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0xf4, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x3, 0xd0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xf, 0x40, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x3d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xf4, 0x0, 0x0, 0x3, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xfe, 0x15, 0x55, 0x55, 0x7d, 0x55, 0x55, 0x50,
+    0x0, 0x0, 0x0, 0xf4, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x3, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xf, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3d,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf4, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x3, 0xd0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0xf, 0x40, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x3d, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x1, 0xf4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5f,
+    0xc0, 0x0, 0x0, 0x0, 0x0, 0x7f, 0xff, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0xff, 0xe0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+
+    /* U+4E8F "亏" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb,
+    0xff, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x2f, 0xff,
+    0xff, 0xff, 0xff, 0xf0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5,
+    0x55, 0x55, 0x55, 0x55, 0x55, 0x54, 0x7f, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xfd, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xf0, 0x0, 0x7c, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x2, 0xf0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xf, 0x80, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x3e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1,
+    0xff, 0xff, 0xff, 0xff, 0x40, 0x0, 0xb, 0xff,
+    0xff, 0xff, 0xfd, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x1, 0xf4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7,
+    0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2f, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0xbc, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x3, 0xf0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xf, 0x80, 0x0, 0x0, 0x0, 0x1,
+    0x56, 0xfd, 0x0, 0x0, 0x0, 0x0, 0x3f, 0xff,
+    0xe0, 0x0, 0x0, 0x0, 0x0, 0xbf, 0xf9, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+4E91 "云" */
     0x0, 0x55, 0x55, 0x55, 0x55, 0x55, 0x0, 0xb,
     0xff, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x2f, 0xff,
@@ -2974,6 +3271,17 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xff, 0xff, 0xff, 0xfc, 0xbf, 0xff, 0xff, 0xff,
     0xff, 0xff, 0xc0,
 
+    /* U+4EA0 "亠" */
+    0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x7, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xf, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2f,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7c, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0xf8, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x3, 0xf0, 0x0, 0x0, 0xf,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+4EA1 "亡" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x2, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -3243,6 +3551,31 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xe0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x9, 0x40,
     0x0, 0x0, 0x0,
 
+    /* U+4EAD "亭" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x2d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2,
+    0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f, 0x0,
+    0x0, 0x0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa, 0xaa,
+    0xaa, 0xaa, 0xa9, 0x0, 0x0, 0xff, 0xff, 0xff,
+    0xff, 0xe0, 0x0, 0xf, 0x0, 0x0, 0x0, 0x1e,
+    0x0, 0x0, 0xf0, 0x0, 0x0, 0x1, 0xe0, 0x0,
+    0xf, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0xaa,
+    0xaa, 0xaa, 0xaa, 0x90, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x3f, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0x43, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8,
+    0x3c, 0x0, 0x0, 0x0, 0x0, 0xb, 0x83, 0xc0,
+    0x0, 0x0, 0x0, 0x0, 0x78, 0x3c, 0x0, 0x0,
+    0x0, 0x0, 0x7, 0x81, 0x4f, 0xff, 0xff, 0xff,
+    0xfe, 0x10, 0x0, 0xff, 0xff, 0xff, 0xff, 0xe0,
+    0x0, 0x0, 0x0, 0xf, 0x40, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xf4, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xf, 0x40, 0x0, 0x0, 0x0, 0x0, 0x6, 0xf4,
+    0x0, 0x0, 0x0, 0x0, 0xf, 0xff, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0xff, 0x80, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+4EAE "亮" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x3, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -3295,30 +3628,60 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xd0, 0x2, 0xff, 0xc0, 0x0, 0x6, 0x0, 0x0,
     0x7, 0xa4, 0x0, 0x0, 0x0,
 
-    /* U+4EB6 "亶" */
+    /* U+4EB3 "亳" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x2, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x3, 0xc0, 0x0, 0x0, 0xa, 0xaa, 0xaa, 0xaf,
-    0xea, 0xaa, 0xa9, 0x2f, 0xff, 0xff, 0xff, 0xff,
-    0xff, 0xf4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x1a, 0xaa, 0xaa, 0xaa, 0xaa, 0xa0, 0x0,
-    0xbf, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x2, 0xe0,
-    0x0, 0x0, 0x0, 0xf, 0x0, 0xb, 0x82, 0xff,
-    0xff, 0xf4, 0x3c, 0x0, 0x2e, 0xb, 0x95, 0x56,
-    0xd0, 0xf0, 0x0, 0xb8, 0x2d, 0x55, 0x5b, 0x43,
-    0xc0, 0x2, 0xe0, 0xbf, 0xff, 0xfd, 0xf, 0x0,
-    0xb, 0x80, 0x0, 0x0, 0x0, 0x3c, 0x0, 0x2f,
-    0xaa, 0xaa, 0xaa, 0xaa, 0xf0, 0x0, 0x7f, 0xff,
-    0xff, 0xff, 0xff, 0xc0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x1, 0xff, 0xff, 0xff, 0xff,
-    0xf0, 0x0, 0x7, 0xea, 0xaa, 0xaa, 0xab, 0xc0,
-    0x0, 0x1e, 0x0, 0x0, 0x0, 0xf, 0x0, 0x0,
-    0x7f, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x1, 0xe0,
-    0x0, 0x0, 0x0, 0xf0, 0x0, 0x7, 0xd5, 0x55,
-    0x55, 0x57, 0xc0, 0x0, 0x1f, 0xff, 0xff, 0xff,
-    0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xa7,
-    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+    0x0, 0x3, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xb, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f,
+    0x0, 0x0, 0x0, 0x3f, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xf0, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
+    0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xf, 0xff, 0xff, 0xff, 0xfd, 0x0, 0x0, 0x3e,
+    0xaa, 0xaa, 0xaa, 0xf4, 0x0, 0x0, 0xf0, 0x0,
+    0x0, 0x3, 0xd0, 0x0, 0x3, 0xea, 0xaa, 0xaa,
+    0xaf, 0x40, 0x0, 0xf, 0xff, 0xff, 0xff, 0xfd,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x2a, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x40, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xfd, 0x3, 0xc0, 0x0,
+    0x0, 0x0, 0x0, 0xf4, 0xf, 0x0, 0x0, 0x0,
+    0x5a, 0xf3, 0xd0, 0x3c, 0xaa, 0xff, 0xff, 0xff,
+    0xcf, 0x40, 0x3, 0xff, 0xfe, 0xa5, 0x40, 0x0,
+    0x0, 0x0, 0x0, 0xf4, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x3, 0xd5, 0x5a, 0xab, 0xf4, 0xab, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xd7, 0xff, 0xff, 0xfe,
+    0x95, 0x50, 0x0, 0x4, 0x0, 0x0, 0xf4, 0x0,
+    0x0, 0xf0, 0x0, 0x0, 0x3, 0xd0, 0x0, 0x7,
+    0xc0, 0x0, 0x0, 0xf, 0xff, 0xff, 0xfe, 0x0,
+    0x0, 0x0, 0xb, 0xff, 0xff, 0xe0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0,
+
+    /* U+4EB5 "亵" */
+    0x0, 0x0, 0x0, 0x14, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xf, 0x40, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x2, 0xf0, 0x0, 0x0, 0x0, 0x2a, 0xaa,
+    0xaa, 0xfe, 0xaa, 0xaa, 0xa0, 0xf, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xfc, 0x0, 0x0, 0x50, 0x0,
+    0x4, 0x0, 0x0, 0x0, 0x0, 0x2d, 0x0, 0x7,
+    0x40, 0x0, 0x0, 0x0, 0xb, 0x40, 0x1, 0xd0,
+    0x0, 0x0, 0x3, 0xff, 0xff, 0xaf, 0xff, 0xff,
+    0x0, 0x0, 0xff, 0xff, 0xeb, 0xff, 0xff, 0xc0,
+    0x0, 0x0, 0x2d, 0x0, 0xb, 0x40, 0xf0, 0x0,
+    0x0, 0xb, 0x58, 0x93, 0xc0, 0x3c, 0x0, 0x5,
+    0xaf, 0xff, 0x7f, 0xf0, 0xf, 0x0, 0x3, 0xff,
+    0xf9, 0x1, 0xff, 0x83, 0xc2, 0x80, 0x54, 0x2d,
+    0x1, 0xf5, 0xfd, 0xf0, 0xf0, 0x0, 0xb, 0x43,
+    0xf4, 0x7, 0x2d, 0x38, 0x0, 0x17, 0xc2, 0xf4,
+    0x0, 0x7, 0xed, 0x0, 0x3f, 0xf0, 0x13, 0xc0,
+    0x0, 0xff, 0x0, 0x6, 0x90, 0x7, 0xf0, 0x1,
+    0xdb, 0x40, 0x0, 0x0, 0xf, 0xfe, 0x2, 0xf8,
+    0x0, 0x0, 0x0, 0x6f, 0xc3, 0xe7, 0xf4, 0x0,
+    0x0, 0x1, 0xff, 0x40, 0x3f, 0xe0, 0x0, 0x0,
+    0x1b, 0xff, 0xc0, 0x3, 0xf4, 0x0, 0x0, 0xbf,
+    0xe4, 0xf0, 0x0, 0x2f, 0xe0, 0x0, 0x3f, 0x80,
+    0x3c, 0xb, 0x81, 0xff, 0xd0, 0x0, 0x0, 0xf,
+    0xbf, 0xe0, 0x6, 0xff, 0xc0, 0x0, 0xf, 0xff,
+    0x80, 0x0, 0x7, 0xf0, 0x0, 0x3, 0xf4, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0,
+    0x0, 0x0, 0x0,
 
     /* U+4EBA "人" */
     0x0, 0x0, 0x0, 0x28, 0x0, 0x0, 0x0, 0x0,
@@ -3345,6 +3708,21 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xf4, 0x7c, 0x0, 0x0, 0x0, 0x0, 0x7, 0xd0,
     0x40, 0x0, 0x0, 0x0, 0x0, 0x6, 0x0,
 
+    /* U+4EBB "亻" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c, 0x0,
+    0x0, 0xb, 0xc0, 0x0, 0x1, 0xf4, 0x0, 0x0,
+    0x3f, 0x0, 0x0, 0x7, 0xc0, 0x0, 0x0, 0xf8,
+    0x0, 0x0, 0x3f, 0x0, 0x0, 0xb, 0xd0, 0x0,
+    0x1, 0xfd, 0x0, 0x0, 0x7f, 0xd0, 0x0, 0xf,
+    0xfd, 0x0, 0x3, 0xf3, 0xd0, 0x1, 0xfc, 0x3d,
+    0x0, 0x7f, 0x3, 0xd0, 0x3, 0xc0, 0x3d, 0x0,
+    0x0, 0x3, 0xd0, 0x0, 0x0, 0x3d, 0x0, 0x0,
+    0x3, 0xd0, 0x0, 0x0, 0x3d, 0x0, 0x0, 0x3,
+    0xd0, 0x0, 0x0, 0x3d, 0x0, 0x0, 0x3, 0xd0,
+    0x0, 0x0, 0x3d, 0x0, 0x0, 0x3, 0xd0, 0x0,
+    0x0, 0x3d, 0x0, 0x0, 0x3, 0xd0, 0x0, 0x0,
+    0x3d, 0x0,
+
     /* U+4EBF "亿" */
     0x0, 0x3, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x7, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf,
@@ -3428,6 +3806,58 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0x0, 0x0, 0x7c, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+4EC2 "仂" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x1f, 0x0, 0x2e, 0x0, 0x0, 0x0, 0x3, 0xe0,
+    0x2, 0xe0, 0x0, 0x0, 0x0, 0x3c, 0x0, 0x2e,
+    0x0, 0x0, 0x0, 0xb, 0xc0, 0x2, 0xe0, 0x0,
+    0x0, 0x0, 0xf4, 0x0, 0x2e, 0x0, 0x0, 0x0,
+    0x1f, 0x0, 0x3, 0xe0, 0x0, 0x0, 0x3, 0xe0,
+    0xff, 0xff, 0xff, 0xff, 0x0, 0x7d, 0xf, 0xff,
+    0xff, 0xff, 0xf0, 0xf, 0xd0, 0x55, 0x7e, 0x55,
+    0x6f, 0x2, 0xfd, 0x0, 0x3, 0xd0, 0x2, 0xf0,
+    0x3f, 0xd0, 0x0, 0x3d, 0x0, 0x2e, 0xf, 0xfd,
+    0x0, 0x3, 0xd0, 0x2, 0xe1, 0xf3, 0xd0, 0x0,
+    0x3c, 0x0, 0x2e, 0x3e, 0x3d, 0x0, 0x3, 0xc0,
+    0x2, 0xe2, 0xc3, 0xd0, 0x0, 0x7c, 0x0, 0x3e,
+    0x0, 0x3d, 0x0, 0xb, 0xc0, 0x3, 0xe0, 0x3,
+    0xd0, 0x0, 0xb8, 0x0, 0x3d, 0x0, 0x3d, 0x0,
+    0xf, 0x40, 0x3, 0xd0, 0x3, 0xd0, 0x1, 0xf0,
+    0x0, 0x3d, 0x0, 0x3d, 0x0, 0x3e, 0x0, 0x3,
+    0xd0, 0x3, 0xd0, 0x7, 0xd0, 0x0, 0x3d, 0x0,
+    0x3d, 0x0, 0xfc, 0x0, 0x3, 0xd0, 0x3, 0xd0,
+    0x3f, 0x0, 0x0, 0x7c, 0x0, 0x3d, 0xb, 0xd0,
+    0x0, 0x1f, 0xc0, 0x3, 0xd2, 0xf8, 0x0, 0xbf,
+    0xf8, 0x0, 0x3d, 0xbe, 0x0, 0x7, 0xfd, 0x0,
+    0x3, 0xd2, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0,
+
+    /* U+4EC3 "仃" */
+    0x0, 0x3, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xb, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf,
+    0x83, 0xff, 0xff, 0xff, 0xfd, 0x0, 0xf, 0x43,
+    0xff, 0xff, 0xff, 0xfd, 0x0, 0x2f, 0x1, 0x55,
+    0x57, 0xf5, 0x54, 0x0, 0x3d, 0x0, 0x0, 0x2,
+    0xe0, 0x0, 0x0, 0xbc, 0x0, 0x0, 0x2, 0xe0,
+    0x0, 0x0, 0xfc, 0x0, 0x0, 0x2, 0xe0, 0x0,
+    0x2, 0xfc, 0x0, 0x0, 0x2, 0xe0, 0x0, 0x3,
+    0xfc, 0x0, 0x0, 0x2, 0xe0, 0x0, 0xf, 0xfc,
+    0x0, 0x0, 0x2, 0xe0, 0x0, 0x1f, 0xbc, 0x0,
+    0x0, 0x2, 0xe0, 0x0, 0x3e, 0x7c, 0x0, 0x0,
+    0x2, 0xe0, 0x0, 0xbc, 0x7c, 0x0, 0x0, 0x2,
+    0xe0, 0x0, 0x20, 0x7c, 0x0, 0x0, 0x2, 0xe0,
+    0x0, 0x0, 0x7c, 0x0, 0x0, 0x2, 0xe0, 0x0,
+    0x0, 0x7c, 0x0, 0x0, 0x2, 0xe0, 0x0, 0x0,
+    0x7c, 0x0, 0x0, 0x2, 0xe0, 0x0, 0x0, 0x7c,
+    0x0, 0x0, 0x2, 0xe0, 0x0, 0x0, 0x7c, 0x0,
+    0x0, 0x2, 0xe0, 0x0, 0x0, 0x7c, 0x0, 0x0,
+    0x2, 0xe0, 0x0, 0x0, 0x7c, 0x0, 0x0, 0x2,
+    0xe0, 0x0, 0x0, 0x7c, 0x0, 0x0, 0x3, 0xe0,
+    0x0, 0x0, 0x7c, 0x0, 0x0, 0x3, 0xe0, 0x0,
+    0x0, 0x7c, 0x0, 0x3, 0xff, 0xd0, 0x0, 0x0,
+    0x7c, 0x0, 0x3, 0xff, 0x80, 0x0, 0x0, 0x7c,
+    0x0, 0x1, 0x94, 0x0, 0x0,
+
     /* U+4EC4 "仄" */
     0x0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x0,
     0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x0, 0xf5,
@@ -3893,6 +4323,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x7, 0xc0, 0x0, 0x0, 0x0, 0xf, 0x40, 0x1f,
     0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+4EDD "仝" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xf, 0xc0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x7, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x3, 0xff, 0x80, 0x0, 0x0, 0x0, 0x0, 0x3,
+    0xf2, 0xf4, 0x0, 0x0, 0x0, 0x0, 0x3, 0xf0,
+    0x3f, 0x40, 0x0, 0x0, 0x0, 0x3, 0xf4, 0x3,
+    0xf4, 0x0, 0x0, 0x0, 0x7, 0xf4, 0x0, 0x3f,
+    0x40, 0x0, 0x0, 0xb, 0xf4, 0x0, 0x3, 0xf8,
+    0x0, 0x0, 0xf, 0xf0, 0x0, 0x0, 0x3f, 0xc0,
+    0x0, 0x1f, 0xf0, 0x0, 0x0, 0x2, 0xfe, 0x0,
+    0x3f, 0xe0, 0x0, 0x0, 0x0, 0x1f, 0xf4, 0x3f,
+    0xc0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xb, 0x81,
+    0x55, 0x55, 0x55, 0x55, 0x7, 0x80, 0x1, 0xff,
+    0xff, 0xff, 0xff, 0xe0, 0x0, 0x0, 0x7f, 0xff,
+    0xff, 0xff, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x2f,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb, 0xc0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0xf0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0xbc, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x2f, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0xb, 0xc0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x2, 0xf0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xbc, 0x0, 0x0, 0x0, 0xf, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xfc, 0x3, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0x0, 0x55, 0x55, 0x55,
+    0x55, 0x55, 0x55, 0x40,
+
     /* U+4EDE "仞" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0xf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7c,
@@ -3920,6 +4377,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xf, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+4EDF "仟" */
+    0x0, 0x0, 0x90, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x7c, 0x0, 0x0, 0x0, 0x18, 0x0, 0x0,
+    0x2e, 0x0, 0x0, 0x5b, 0xff, 0x40, 0x0, 0xf,
+    0x45, 0xaf, 0xff, 0xff, 0xd0, 0x0, 0xb, 0xc2,
+    0xff, 0xff, 0xe4, 0x0, 0x0, 0x3, 0xd0, 0x3e,
+    0x93, 0xd0, 0x0, 0x0, 0x1, 0xf0, 0x0, 0x0,
+    0xf4, 0x0, 0x0, 0x0, 0xfc, 0x0, 0x0, 0x3d,
+    0x0, 0x0, 0x0, 0xbf, 0x0, 0x0, 0xf, 0x40,
+    0x0, 0x0, 0x3f, 0xc0, 0x0, 0x3, 0xd0, 0x0,
+    0x0, 0x3f, 0xf0, 0x0, 0x0, 0xf4, 0x0, 0x0,
+    0x1f, 0xbc, 0x0, 0x0, 0x3d, 0x0, 0x0, 0xf,
+    0x9f, 0x5, 0x55, 0x5f, 0x95, 0x55, 0xf, 0xc7,
+    0xc3, 0xff, 0xff, 0xff, 0xff, 0xd1, 0xc1, 0xf0,
+    0xff, 0xff, 0xff, 0xff, 0xf4, 0x0, 0x7c, 0x0,
+    0x0, 0x3d, 0x0, 0x0, 0x0, 0x1f, 0x0, 0x0,
+    0xf, 0x40, 0x0, 0x0, 0x7, 0xc0, 0x0, 0x3,
+    0xd0, 0x0, 0x0, 0x1, 0xf0, 0x0, 0x0, 0xf4,
+    0x0, 0x0, 0x0, 0x7c, 0x0, 0x0, 0x3d, 0x0,
+    0x0, 0x0, 0x1f, 0x0, 0x0, 0xf, 0x40, 0x0,
+    0x0, 0x7, 0xc0, 0x0, 0x3, 0xd0, 0x0, 0x0,
+    0x1, 0xf0, 0x0, 0x0, 0xf4, 0x0, 0x0, 0x0,
+    0x7c, 0x0, 0x0, 0x3d, 0x0, 0x0, 0x0, 0x1f,
+    0x0, 0x0, 0xf, 0x40, 0x0, 0x0, 0x7, 0xc0,
+    0x0, 0x3, 0xd0, 0x0, 0x0, 0x1, 0xf0, 0x0,
+    0x0, 0xf4, 0x0, 0x0,
+
     /* U+4EE1 "仡" */
     0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0,
     0x2, 0xd0, 0x7, 0xc0, 0x0, 0x0, 0x0, 0x3,
@@ -5066,6 +5550,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x2, 0xe0, 0x0, 0x2, 0xe0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+4F32 "伲" */
+    0x0, 0x3, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x7, 0xc2, 0xff, 0xff, 0xff, 0xf0, 0x0, 0xb,
+    0x83, 0xff, 0xff, 0xff, 0xf0, 0x0, 0xf, 0x43,
+    0xe5, 0x55, 0x55, 0xf0, 0x0, 0x1f, 0x3, 0xd0,
+    0x0, 0x0, 0xf0, 0x0, 0x3e, 0x3, 0xd0, 0x0,
+    0x0, 0xf0, 0x0, 0x7d, 0x3, 0xd0, 0x0, 0x0,
+    0xf0, 0x0, 0xbc, 0x3, 0xe0, 0x0, 0x0, 0xf0,
+    0x1, 0xfc, 0x3, 0xff, 0xff, 0xff, 0xf0, 0x3,
+    0xfc, 0x3, 0xff, 0xff, 0xff, 0xf0, 0x7, 0xfc,
+    0x3, 0xd0, 0x0, 0x0, 0x0, 0xf, 0xfc, 0x3,
+    0xd0, 0xf0, 0x0, 0x0, 0x2f, 0x3c, 0x3, 0xd0,
+    0xf0, 0x0, 0x20, 0x3e, 0x3c, 0x3, 0xd0, 0xf0,
+    0x1, 0xf8, 0x1c, 0x3c, 0x3, 0xd0, 0xf0, 0xf,
+    0xf0, 0x0, 0x3c, 0x3, 0xc0, 0xf0, 0xbf, 0x40,
+    0x0, 0x3c, 0x3, 0xc0, 0xfb, 0xf8, 0x0, 0x0,
+    0x3c, 0x7, 0xc0, 0xff, 0x80, 0x0, 0x0, 0x3c,
+    0x7, 0xc0, 0xf8, 0x0, 0x0, 0x0, 0x3c, 0xf,
+    0x80, 0xf0, 0x0, 0x4, 0x0, 0x3c, 0xf, 0x40,
+    0xf0, 0x0, 0x1e, 0x0, 0x3c, 0x1f, 0x0, 0xf0,
+    0x0, 0x1e, 0x0, 0x3c, 0x3e, 0x0, 0xf0, 0x0,
+    0x2d, 0x0, 0x3c, 0x7d, 0x0, 0xf8, 0x0, 0x7c,
+    0x0, 0x3c, 0xfc, 0x0, 0xff, 0xff, 0xfc, 0x0,
+    0x3d, 0xf4, 0x0, 0x2f, 0xff, 0xe0, 0x0, 0x3c,
+    0x20, 0x0, 0x0, 0x0, 0x0,
+
     /* U+4F34 "伴" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0xb4, 0x0, 0xb, 0x80, 0x0, 0x0, 0x0,
@@ -5832,6 +6342,63 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xff, 0xff, 0xff, 0xff, 0x0, 0xff, 0xff, 0xff,
     0xff, 0xff, 0xff, 0xc0,
 
+    /* U+4F67 "佧" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x28, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x0,
+    0xf, 0x0, 0xf, 0x0, 0x0, 0x0, 0x0, 0xb,
+    0xc0, 0x3, 0xc0, 0x0, 0x0, 0x0, 0x3, 0xe0,
+    0x0, 0xf0, 0x0, 0x0, 0x0, 0x1, 0xf0, 0x0,
+    0x3d, 0x55, 0x54, 0x0, 0x0, 0xf8, 0x0, 0xf,
+    0xff, 0xff, 0x80, 0x0, 0x7c, 0x0, 0x3, 0xff,
+    0xff, 0xd0, 0x0, 0x3f, 0x0, 0x0, 0xf0, 0x0,
+    0x0, 0x0, 0x2f, 0xc0, 0x0, 0x3c, 0x0, 0x0,
+    0x0, 0xf, 0xf0, 0x0, 0xf, 0x0, 0x0, 0x0,
+    0xf, 0xfc, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x7,
+    0xdf, 0x3f, 0xff, 0xff, 0xff, 0xff, 0x3, 0xe3,
+    0xcf, 0xff, 0xff, 0xff, 0xff, 0xc3, 0xf0, 0xf0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0xb0, 0x3c, 0x0,
+    0x3, 0xc0, 0x0, 0x0, 0x4, 0xf, 0x0, 0x0,
+    0xf5, 0x0, 0x0, 0x0, 0x3, 0xc0, 0x0, 0x3d,
+    0xf4, 0x0, 0x0, 0x0, 0xf0, 0x0, 0xf, 0xbf,
+    0xc0, 0x0, 0x0, 0x3c, 0x0, 0x3, 0xd2, 0xfe,
+    0x0, 0x0, 0xf, 0x0, 0x0, 0xf4, 0xf, 0xf0,
+    0x0, 0x3, 0xc0, 0x0, 0x3d, 0x0, 0xbf, 0x0,
+    0x0, 0xf0, 0x0, 0xf, 0x40, 0x7, 0xc0, 0x0,
+    0x3c, 0x0, 0x3, 0xd0, 0x0, 0x10, 0x0, 0xf,
+    0x0, 0x0, 0xf4, 0x0, 0x0, 0x0, 0x3, 0xc0,
+    0x0, 0x3d, 0x0, 0x0, 0x0, 0x0, 0xf0, 0x0,
+    0xf, 0x40, 0x0, 0x0, 0x0, 0x3c, 0x0, 0x3,
+    0xd0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
+    /* U+4F69 "佩" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x3, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xf3, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x0, 0x78,
+    0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x2d, 0x3d,
+    0x55, 0x55, 0x57, 0xc0, 0x0, 0xf, 0xf, 0x0,
+    0x0, 0x0, 0xf0, 0x0, 0x7, 0xc3, 0xc0, 0x0,
+    0x0, 0x3c, 0x0, 0x3, 0xd0, 0xf2, 0xff, 0xff,
+    0xcf, 0x0, 0x0, 0xf0, 0x3c, 0xff, 0xff, 0xf3,
+    0xc0, 0x0, 0xbc, 0xf, 0x0, 0x3c, 0x0, 0xf0,
+    0x0, 0x3f, 0x3, 0xc0, 0xf, 0x0, 0x3c, 0x0,
+    0x2f, 0xc0, 0xf0, 0x3, 0xc0, 0xf, 0x0, 0xf,
+    0xf0, 0x3c, 0xff, 0xff, 0xf3, 0xc0, 0xb, 0xbc,
+    0xf, 0x3f, 0xff, 0xfc, 0xf0, 0x3, 0xcf, 0x3,
+    0xcf, 0xf, 0xf, 0x3c, 0x0, 0x23, 0xc0, 0xf3,
+    0xc3, 0xc3, 0xcf, 0x0, 0x0, 0xf0, 0x3c, 0xf0,
+    0xf0, 0xf3, 0xc0, 0x0, 0x3c, 0xf, 0x3c, 0x3c,
+    0x3c, 0xf0, 0x0, 0xf, 0x3, 0xcf, 0xf, 0xf,
+    0x3c, 0x0, 0x3, 0xc1, 0xe3, 0xc3, 0xc3, 0xcf,
+    0x0, 0x0, 0xf0, 0x78, 0xf0, 0xf0, 0xf3, 0xc1,
+    0x0, 0x3c, 0x2d, 0x3c, 0x3c, 0x3c, 0xf0, 0xd0,
+    0xf, 0xf, 0xf, 0xf, 0xf, 0x2d, 0x74, 0x3,
+    0xc7, 0xc3, 0xc3, 0xef, 0x8b, 0x9c, 0x0, 0xf2,
+    0xe0, 0xa0, 0xf3, 0x81, 0xff, 0x0, 0x3c, 0xf0,
+    0x0, 0x3c, 0x0, 0x3f, 0x80, 0xf, 0x38, 0x0,
+    0xf, 0x0, 0x2, 0x80, 0x3, 0xc0, 0x0, 0x3,
+    0xc0, 0x0, 0x0,
+
     /* U+4F6C "佬" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0xf4, 0x0, 0xf0, 0x0, 0x0, 0x0, 0x0,
@@ -6325,6 +6892,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0xf, 0xfc, 0x0, 0x0, 0xf0, 0x3, 0xc0,
     0x2, 0xe8, 0x0,
 
+    /* U+4F94 "侔" */
+    0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0,
+    0x3, 0xd0, 0x0, 0xf4, 0x0, 0x0, 0x0, 0x3,
+    0xc0, 0x3, 0xf0, 0x0, 0x0, 0x0, 0xb, 0xc0,
+    0xb, 0xc0, 0x38, 0x0, 0x0, 0xf, 0x40, 0x1f,
+    0x40, 0x7e, 0x0, 0x0, 0x1f, 0x0, 0x7d, 0x0,
+    0x1f, 0x40, 0x0, 0x2e, 0x1, 0xf4, 0x0, 0xb,
+    0xd0, 0x0, 0x3d, 0xb, 0xff, 0xff, 0xff, 0xf4,
+    0x0, 0xbc, 0xf, 0xff, 0xff, 0xff, 0xfc, 0x0,
+    0xfc, 0x5, 0x50, 0x0, 0x0, 0x3c, 0x2, 0xfc,
+    0x0, 0x0, 0x19, 0x0, 0x4, 0x7, 0xfc, 0x0,
+    0xf0, 0x1e, 0x0, 0x0, 0xf, 0xfc, 0x0, 0xf0,
+    0x1e, 0x0, 0x0, 0x2f, 0x7c, 0x2, 0xf0, 0x2e,
+    0x0, 0x0, 0x3e, 0x3c, 0x3, 0xff, 0xff, 0xff,
+    0xf4, 0x1c, 0x3c, 0x7, 0xff, 0xff, 0xff, 0xf4,
+    0x0, 0x3c, 0xf, 0x40, 0x1e, 0x0, 0x0, 0x0,
+    0x3c, 0x2f, 0x0, 0x1e, 0x0, 0x0, 0x0, 0x3c,
+    0x2d, 0x0, 0x1e, 0x0, 0x0, 0x0, 0x3c, 0x0,
+    0x0, 0x2e, 0x0, 0x0, 0x0, 0x3c, 0x7f, 0xff,
+    0xff, 0xff, 0xff, 0x0, 0x3c, 0x7f, 0xff, 0xff,
+    0xff, 0xff, 0x0, 0x3c, 0x0, 0x0, 0x2e, 0x0,
+    0x0, 0x0, 0x3c, 0x0, 0x0, 0x1e, 0x0, 0x0,
+    0x0, 0x3c, 0x0, 0x0, 0x1e, 0x0, 0x0, 0x0,
+    0x3c, 0x0, 0x0, 0x1e, 0x0, 0x0, 0x0, 0x3c,
+    0x0, 0x0, 0x1e, 0x0, 0x0, 0x0, 0x3c, 0x0,
+    0x0, 0x1e, 0x0, 0x0,
+
     /* U+4F97 "侗" */
     0x0, 0x2, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x2e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf4,
@@ -7490,61 +8084,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x3c, 0x0, 0xf, 0x3, 0xd0, 0x0, 0x0, 0x3c,
     0x0, 0xf, 0x3, 0xd0, 0x0,
 
-    /* U+4FF5 "俵" */
-    0x0, 0x1, 0x40, 0x0, 0x3c, 0x0, 0x0, 0x0,
-    0x0, 0xf4, 0x0, 0xf, 0x0, 0x0, 0x0, 0x0,
-    0x7c, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x0, 0x2e,
-    0x3f, 0xff, 0xff, 0xff, 0xe0, 0x0, 0xf, 0x4f,
-    0xff, 0xff, 0xff, 0xf8, 0x0, 0x7, 0xc0, 0x0,
-    0xf, 0x0, 0x0, 0x0, 0x3, 0xd0, 0x0, 0x3,
-    0xc0, 0x0, 0x0, 0x1, 0xf0, 0x0, 0x0, 0xf0,
-    0x0, 0x0, 0x0, 0xbc, 0x7, 0xff, 0xff, 0xff,
-    0xf0, 0x0, 0x7f, 0x1, 0xff, 0xff, 0xff, 0xfc,
-    0x0, 0x3f, 0xc0, 0x0, 0x3, 0xc0, 0x0, 0x0,
-    0x1f, 0xf0, 0x0, 0x0, 0xf0, 0x0, 0x0, 0xf,
-    0x7c, 0x0, 0x0, 0x3c, 0x0, 0x0, 0xf, 0xcf,
-    0xf, 0xff, 0xff, 0xff, 0xff, 0x3, 0xc3, 0xc2,
-    0xaa, 0xaf, 0xea, 0xaa, 0x80, 0x10, 0xf0, 0x0,
-    0xb, 0xf0, 0x0, 0x0, 0x0, 0x3c, 0x0, 0xb,
-    0xfd, 0x0, 0x34, 0x0, 0xf, 0x0, 0xb, 0xc7,
-    0xc0, 0x7e, 0x0, 0x3, 0xc0, 0xb, 0xd0, 0xbc,
-    0xbd, 0x0, 0x0, 0xf0, 0x1f, 0xf4, 0xf, 0xfc,
-    0x0, 0x0, 0x3c, 0x3f, 0xad, 0x0, 0xfc, 0x0,
-    0x0, 0xf, 0x3f, 0x4b, 0x40, 0x1f, 0xc0, 0x0,
-    0x3, 0xca, 0x2, 0xd0, 0x74, 0xfd, 0x0, 0x0,
-    0xf0, 0x0, 0xb5, 0xfd, 0xf, 0xf4, 0x0, 0x3c,
-    0x0, 0x3f, 0xf9, 0x0, 0x7f, 0x0, 0xf, 0x0,
-    0x1f, 0xe0, 0x0, 0x2, 0x40, 0x3, 0xc0, 0x3,
-    0x40, 0x0, 0x0, 0x0,
-
-    /* U+4FF6 "俶" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x3, 0xc0, 0xb8, 0x0, 0x0, 0x0, 0x0, 0x1,
-    0xf0, 0x2e, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb8,
-    0xb, 0x80, 0x3f, 0xff, 0xd0, 0x0, 0x3d, 0x2,
-    0xe0, 0x1f, 0xff, 0xf4, 0x0, 0x1f, 0x0, 0xbf,
-    0xf5, 0x95, 0x7d, 0x0, 0xf, 0x80, 0x2f, 0xfc,
-    0xf0, 0xb, 0x0, 0x3, 0xd0, 0xb, 0x80, 0x2c,
-    0x3, 0xc0, 0x2, 0xf4, 0x2, 0xe0, 0xb, 0x0,
-    0xf0, 0x0, 0xfd, 0x0, 0xb8, 0x1, 0xd0, 0x38,
-    0x0, 0xbf, 0x40, 0x2e, 0x0, 0x78, 0x1e, 0x0,
-    0x3f, 0xd7, 0xff, 0xff, 0xcf, 0xb, 0x40, 0x2f,
-    0xf6, 0xff, 0xff, 0xf3, 0xc3, 0xc0, 0x1f, 0x3d,
-    0x15, 0x7e, 0x54, 0xb4, 0xf0, 0x3, 0x8f, 0x40,
-    0xb, 0x40, 0x1e, 0x78, 0x0, 0x3, 0xd0, 0xf2,
-    0xdb, 0x3, 0xfd, 0x0, 0x0, 0xf4, 0x3c, 0xb6,
-    0xd0, 0xff, 0x0, 0x0, 0x3d, 0x1e, 0x2d, 0x3c,
-    0x1f, 0x80, 0x0, 0xf, 0x4b, 0x4b, 0x4f, 0x3,
-    0xd0, 0x0, 0x3, 0xd3, 0xc2, 0xd1, 0xe2, 0xf8,
-    0x0, 0x0, 0xf5, 0xe0, 0xb4, 0x3c, 0xff, 0x0,
-    0x0, 0x3d, 0xf4, 0x2d, 0xd, 0xba, 0xf0, 0x0,
-    0xf, 0x7c, 0xb, 0x40, 0x7c, 0x3d, 0x0, 0x3,
-    0xd1, 0x2, 0xd0, 0x3d, 0x7, 0xc0, 0x0, 0xf4,
-    0x1, 0xf4, 0x3f, 0x0, 0xfc, 0x0, 0x3d, 0xf,
-    0xfc, 0x2f, 0x0, 0xf, 0x80, 0xf, 0x42, 0xfd,
-    0xf, 0x40, 0x1, 0xf0, 0x3, 0xd0, 0x0, 0x1,
-    0x80, 0x0, 0x10,
-
     /* U+4FF8 "俸" */
     0x0, 0x5, 0x0, 0x0, 0xb8, 0x0, 0x0, 0x0,
     0x3, 0xd0, 0x0, 0x2d, 0x0, 0x0, 0x0, 0x0,
@@ -7874,34 +8413,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xfd, 0x0, 0xf1, 0xc0, 0x0, 0x0, 0x65, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
 
-    /* U+501E "倞" */
-    0x0, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0,
-    0x0, 0xf0, 0x0, 0xf, 0x0, 0x0, 0x0, 0x0,
-    0x7c, 0x0, 0x3, 0xd0, 0x0, 0x0, 0x0, 0x2e,
-    0x0, 0x0, 0xb8, 0x0, 0x0, 0x0, 0xf, 0x4f,
-    0xff, 0xff, 0xff, 0xfe, 0x0, 0x7, 0xc3, 0xff,
-    0xff, 0xff, 0xff, 0x80, 0x2, 0xe0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0xf4, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0xbc, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x3f, 0x0, 0xbf, 0xff, 0xff, 0xf8,
-    0x0, 0x2f, 0xc0, 0x2f, 0xff, 0xff, 0xfe, 0x0,
-    0xf, 0xf0, 0xb, 0x80, 0x0, 0x7, 0x80, 0xf,
-    0xfc, 0x2, 0xe0, 0x0, 0x1, 0xe0, 0x7, 0xdf,
-    0x0, 0xb8, 0x0, 0x0, 0x78, 0x3, 0xe3, 0xc0,
-    0x2e, 0x0, 0x0, 0x1e, 0x0, 0x70, 0xf0, 0xb,
-    0x95, 0x55, 0x5b, 0x80, 0x0, 0x3c, 0x2, 0xff,
-    0xff, 0xff, 0xe0, 0x0, 0xf, 0x0, 0x7f, 0xff,
-    0xff, 0xf4, 0x0, 0x3, 0xc0, 0x0, 0x0, 0xf0,
-    0x0, 0x0, 0x0, 0xf0, 0x0, 0x40, 0x3c, 0x5,
-    0x0, 0x0, 0x3c, 0x0, 0xb8, 0xf, 0x7, 0xc0,
-    0x0, 0xf, 0x0, 0x7d, 0x3, 0xc0, 0xfc, 0x0,
-    0x3, 0xc0, 0x3e, 0x0, 0xf0, 0xf, 0x40, 0x0,
-    0xf0, 0x3f, 0x0, 0x3c, 0x1, 0xf0, 0x0, 0x3c,
-    0x2f, 0x0, 0x1f, 0x0, 0x3e, 0x0, 0xf, 0x6f,
-    0x41, 0xaf, 0xc0, 0x3, 0xd0, 0x3, 0xc7, 0x40,
-    0xbf, 0xd0, 0x0, 0xa0, 0x0, 0xf0, 0x0, 0x9,
-    0x40, 0x0, 0x0,
-
     /* U+501F "借" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0xf0, 0xb, 0x80, 0x1f, 0x0, 0x0, 0x0,
@@ -7955,34 +8466,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xfc, 0x0, 0x7c, 0x1f, 0xaa, 0xaa, 0xab, 0xc0,
     0x7, 0xc1, 0xf0, 0x0, 0x0, 0x3c,
 
-    /* U+5024 "値" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0xe0, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x0,
-    0x3c, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0x2e,
-    0x2f, 0xff, 0xff, 0xff, 0xf4, 0x0, 0xf, 0x4b,
-    0xff, 0xff, 0xff, 0xfd, 0x0, 0x7, 0xc0, 0x0,
-    0x3, 0xc0, 0x0, 0x0, 0x2, 0xe0, 0x0, 0x0,
-    0xf0, 0x0, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x3c,
-    0x0, 0x0, 0x0, 0xbc, 0x10, 0xf, 0xff, 0xff,
-    0xf0, 0x0, 0x3f, 0xf, 0x3, 0xff, 0xff, 0xfc,
-    0x0, 0x2f, 0xc3, 0xc0, 0xf0, 0x0, 0xf, 0x0,
-    0x1f, 0xf0, 0xf0, 0x3c, 0x0, 0x3, 0xc0, 0xf,
-    0xfc, 0x3c, 0xf, 0xff, 0xff, 0xf0, 0xb, 0xdf,
-    0xf, 0x3, 0xff, 0xff, 0xfc, 0x3, 0xe3, 0xc3,
-    0xc0, 0xf0, 0x0, 0xf, 0x0, 0x70, 0xf0, 0xf0,
-    0x3c, 0x0, 0x3, 0xc0, 0x0, 0x3c, 0x3c, 0xf,
-    0x0, 0x0, 0xf0, 0x0, 0xf, 0xf, 0x3, 0xff,
-    0xff, 0xfc, 0x0, 0x3, 0xc3, 0xc0, 0xff, 0xff,
-    0xff, 0x0, 0x0, 0xf0, 0xf0, 0x3c, 0x0, 0x3,
-    0xc0, 0x0, 0x3c, 0x3c, 0xf, 0x0, 0x0, 0xf0,
-    0x0, 0xf, 0xf, 0x3, 0xff, 0xff, 0xfc, 0x0,
-    0x3, 0xc3, 0xc0, 0xff, 0xff, 0xff, 0x0, 0x0,
-    0xf0, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c,
-    0x3c, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xf,
-    0xff, 0xff, 0xff, 0xff, 0xd0, 0x3, 0xc3, 0xff,
-    0xff, 0xff, 0xff, 0xf4, 0x0, 0xf0, 0x0, 0x0,
-    0x0, 0x0, 0x0,
-
     /* U+5025 "倥" */
     0x0, 0x0, 0x0, 0x0, 0x60, 0x0, 0x0, 0x0,
     0x3, 0xc0, 0x0, 0xb8, 0x0, 0x0, 0x0, 0x7,
@@ -8039,6 +8522,35 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xff, 0x80, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x0,
     0x0, 0x0,
 
+    /* U+5028 "倨" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xbc, 0x3f, 0xff, 0xff, 0xff, 0x80, 0x0, 0x3e,
+    0xf, 0xff, 0xff, 0xff, 0xe0, 0x0, 0xf, 0x3,
+    0xc0, 0x0, 0x0, 0xb8, 0x0, 0xb, 0xc0, 0xf0,
+    0x0, 0x0, 0x2e, 0x0, 0x3, 0xe0, 0x3c, 0x0,
+    0x0, 0xb, 0x80, 0x1, 0xf0, 0xf, 0x0, 0x0,
+    0x2, 0xe0, 0x0, 0xfc, 0x3, 0xff, 0xff, 0xff,
+    0xf8, 0x0, 0x7f, 0x0, 0xff, 0xff, 0xff, 0xfe,
+    0x0, 0x3f, 0xc0, 0x3c, 0x0, 0x28, 0x0, 0x0,
+    0x1f, 0xf0, 0xf, 0x0, 0xf, 0x0, 0x0, 0xf,
+    0xfc, 0x3, 0xc0, 0x3, 0xc0, 0x0, 0xb, 0xcf,
+    0x0, 0xff, 0xff, 0xff, 0xff, 0xe3, 0xd3, 0xc0,
+    0x7f, 0xff, 0xff, 0xff, 0xf4, 0xf0, 0xf0, 0x1f,
+    0x0, 0xf, 0x0, 0x0, 0x0, 0x3c, 0x7, 0xc0,
+    0x3, 0xc0, 0x0, 0x0, 0xf, 0x2, 0xe0, 0x0,
+    0xf0, 0x0, 0x0, 0x3, 0xc0, 0xb8, 0xff, 0xff,
+    0xff, 0x0, 0x0, 0xf0, 0x3d, 0x3f, 0xff, 0xff,
+    0xc0, 0x0, 0x3c, 0xf, 0xf, 0x0, 0x0, 0xf0,
+    0x0, 0xf, 0x7, 0xc3, 0xc0, 0x0, 0x3c, 0x0,
+    0x3, 0xc2, 0xe0, 0xf0, 0x0, 0xf, 0x0, 0x0,
+    0xf0, 0xf4, 0x3c, 0x0, 0x3, 0xc0, 0x0, 0x3c,
+    0x7c, 0xf, 0x40, 0x1, 0xf0, 0x0, 0xf, 0x3e,
+    0x3, 0xff, 0xff, 0xfc, 0x0, 0x3, 0xdf, 0x0,
+    0xfa, 0xaa, 0xbf, 0x0, 0x0, 0xf1, 0x40, 0x3c,
+    0x0, 0x3, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+5029 "倩" */
     0x0, 0x2, 0x40, 0x0, 0x2d, 0x0, 0x0, 0x0,
     0x1, 0xf0, 0x0, 0xb, 0x40, 0x0, 0x0, 0x0,
@@ -8150,6 +8662,35 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xff, 0x40, 0x0, 0x6f, 0x40, 0x3, 0xc2, 0x94,
     0x0, 0x0, 0x0, 0x80,
 
+    /* U+502E "倮" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x7c, 0x3f, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x2e,
+    0xf, 0xff, 0xff, 0xff, 0xc0, 0x0, 0xf, 0x3,
+    0xc0, 0x2d, 0x1, 0xf0, 0x0, 0x7, 0xc0, 0xf0,
+    0xb, 0x40, 0x3c, 0x0, 0x3, 0xd0, 0x3c, 0x2,
+    0xd0, 0xf, 0x0, 0x1, 0xf0, 0xf, 0xff, 0xff,
+    0xff, 0xc0, 0x0, 0xbc, 0x3, 0xff, 0xff, 0xff,
+    0xf0, 0x0, 0x7f, 0x0, 0xf0, 0xb, 0x40, 0x3c,
+    0x0, 0x3f, 0xc0, 0x3c, 0x2, 0xd0, 0xf, 0x0,
+    0x1f, 0xf0, 0xf, 0x0, 0xb4, 0x3, 0xc0, 0xf,
+    0xbc, 0x3, 0xff, 0xff, 0xff, 0xf0, 0xb, 0xcf,
+    0x0, 0xff, 0xff, 0xff, 0xf8, 0x3, 0xd3, 0xc0,
+    0x0, 0x2, 0xd0, 0x0, 0x0, 0x10, 0xf0, 0x0,
+    0x0, 0xb4, 0x0, 0x0, 0x0, 0x3c, 0x3f, 0xff,
+    0xff, 0xff, 0xfe, 0x0, 0xf, 0xf, 0xff, 0xff,
+    0xff, 0xff, 0xc0, 0x3, 0xc0, 0x0, 0xf, 0xf8,
+    0x0, 0x0, 0x0, 0xf0, 0x0, 0xb, 0xff, 0x40,
+    0x0, 0x0, 0x3c, 0x0, 0xb, 0xfe, 0xf8, 0x0,
+    0x0, 0xf, 0x0, 0xf, 0xcb, 0x5f, 0x80, 0x0,
+    0x3, 0xc0, 0x1f, 0xc2, 0xd1, 0xfd, 0x0, 0x0,
+    0xf0, 0x2f, 0xc0, 0xb4, 0x1f, 0xe0, 0x0, 0x3c,
+    0xbf, 0x80, 0x2d, 0x0, 0xbf, 0x40, 0xf, 0x2f,
+    0x40, 0xb, 0x40, 0x7, 0xc0, 0x3, 0xc2, 0x0,
+    0x2, 0xd0, 0x0, 0x10, 0x0, 0xf0, 0x0, 0x0,
+    0xb4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+503A "债" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x90, 0x0, 0xf, 0x0, 0x0, 0x0, 0x0,
@@ -8179,6 +8720,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x74, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+503C "值" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x2, 0xe0, 0x0, 0xf, 0x0, 0x0, 0x0, 0x0,
+    0xf8, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x0, 0x3c,
+    0x7f, 0xff, 0xff, 0xff, 0xf0, 0x0, 0x1f, 0x2f,
+    0xff, 0xff, 0xff, 0xfc, 0x0, 0xf, 0x80, 0x0,
+    0x1f, 0x0, 0x0, 0x0, 0x3, 0xc0, 0x0, 0x3,
+    0xc0, 0x0, 0x0, 0x2, 0xf0, 0x0, 0x0, 0xf0,
+    0x0, 0x0, 0x0, 0xfc, 0x3, 0xff, 0xff, 0xff,
+    0xc0, 0x0, 0x7f, 0x1, 0xff, 0xff, 0xff, 0xf4,
+    0x0, 0x3f, 0xc0, 0x7c, 0x0, 0x0, 0x3d, 0x0,
+    0x1f, 0xf0, 0x1f, 0x0, 0x0, 0xf, 0x40, 0xf,
+    0xbc, 0x7, 0xea, 0xaa, 0xab, 0xd0, 0xb, 0xdf,
+    0x1, 0xff, 0xff, 0xff, 0xf4, 0x3, 0xd3, 0xc0,
+    0x7c, 0x0, 0x0, 0x3d, 0x0, 0x20, 0xf0, 0x1f,
+    0x0, 0x0, 0xf, 0x40, 0x0, 0x3c, 0x7, 0xea,
+    0xaa, 0xab, 0xd0, 0x0, 0xf, 0x1, 0xff, 0xff,
+    0xff, 0xf4, 0x0, 0x3, 0xc0, 0x7c, 0x0, 0x0,
+    0x3d, 0x0, 0x0, 0xf0, 0x1f, 0x0, 0x0, 0xf,
+    0x40, 0x0, 0x3c, 0x7, 0xea, 0xaa, 0xab, 0xd0,
+    0x0, 0xf, 0x1, 0xff, 0xff, 0xff, 0xf4, 0x0,
+    0x3, 0xc0, 0x7c, 0x0, 0x0, 0x3d, 0x0, 0x0,
+    0xf0, 0x1f, 0x0, 0x0, 0xf, 0x40, 0x0, 0x3c,
+    0x7, 0xc0, 0x0, 0x3, 0xd0, 0x0, 0xf, 0x3f,
+    0xff, 0xff, 0xff, 0xff, 0xc0, 0x3, 0xcf, 0xff,
+    0xff, 0xff, 0xff, 0xf0, 0x0, 0xf0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+503E "倾" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x2, 0xd2, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -8508,34 +9077,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x2f, 0xff, 0x80, 0x0, 0x0, 0xf0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
-    /* U+5072 "偲" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x1, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0xb8, 0x3f, 0xff, 0xff, 0xff, 0x0, 0x0, 0x3d,
-    0xf, 0xff, 0xff, 0xff, 0xc0, 0x0, 0x1f, 0x3,
-    0xc0, 0x3d, 0x0, 0xf0, 0x0, 0xb, 0x80, 0xf0,
-    0xf, 0x0, 0x3c, 0x0, 0x3, 0xd0, 0x3c, 0x3,
-    0xc0, 0xf, 0x0, 0x2, 0xf0, 0xf, 0x0, 0xf0,
-    0x3, 0xc0, 0x0, 0xfc, 0x3, 0xff, 0xff, 0xff,
-    0xf0, 0x0, 0xbf, 0x0, 0xff, 0xff, 0xff, 0xfc,
-    0x0, 0x3f, 0xc0, 0x3c, 0x3, 0xd0, 0xf, 0x0,
-    0x2f, 0xf0, 0xf, 0x0, 0xf0, 0x3, 0xc0, 0xf,
-    0xbc, 0x3, 0xc0, 0x3c, 0x0, 0xf0, 0xf, 0xcf,
-    0x0, 0xf0, 0xf, 0x40, 0x3c, 0x3, 0xd3, 0xc0,
-    0x3f, 0xff, 0xff, 0xff, 0x0, 0x10, 0xf0, 0xf,
-    0xff, 0xff, 0xff, 0xc0, 0x0, 0x3c, 0x0, 0x0,
-    0x14, 0x0, 0x0, 0x0, 0xf, 0x0, 0x0, 0xf,
-    0x0, 0x4, 0x0, 0x3, 0xc0, 0xe2, 0xd2, 0xe0,
-    0xf, 0x40, 0x0, 0xf0, 0x3c, 0xb4, 0x3c, 0x1,
-    0xf0, 0x0, 0x3c, 0x1e, 0x2d, 0xb, 0x40, 0x3c,
-    0x0, 0xf, 0xb, 0x4b, 0x41, 0xc1, 0x47, 0x80,
-    0x3, 0xc3, 0xc2, 0xd0, 0x0, 0xb0, 0xf0, 0x0,
-    0xf0, 0xf0, 0xb4, 0x0, 0x3c, 0x2d, 0x0, 0x3c,
-    0xb4, 0x1e, 0x0, 0xf, 0x7, 0x80, 0xf, 0x1c,
-    0x7, 0xff, 0xff, 0x80, 0x40, 0x3, 0xc0, 0x0,
-    0xbf, 0xff, 0x80, 0x0, 0x0, 0xf0, 0x0, 0x0,
-    0x0, 0x0, 0x0,
-
     /* U+5076 "偶" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0xf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7c,
@@ -8984,6 +9525,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x80, 0x0, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+50BA "傺" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xe, 0x2, 0xc0, 0x1d, 0x0, 0x0, 0x0, 0x1e,
+    0x3, 0xc0, 0x1e, 0x0, 0x0, 0x0, 0x3d, 0xb,
+    0xff, 0xef, 0xff, 0xf0, 0x0, 0x3c, 0xf, 0xff,
+    0xef, 0xff, 0xf0, 0x0, 0x78, 0x2e, 0x1, 0xdb,
+    0x1, 0xf0, 0x0, 0xf4, 0x7f, 0x43, 0xc7, 0x43,
+    0xd0, 0x1, 0xf0, 0xf7, 0xd7, 0x83, 0xcb, 0x80,
+    0x3, 0xf3, 0xe0, 0xdf, 0x3, 0xef, 0x0, 0x7,
+    0xfb, 0xf0, 0x1e, 0x1, 0xfd, 0x0, 0xf, 0xfb,
+    0x7c, 0x3c, 0x0, 0xfc, 0x0, 0x1f, 0xf0, 0xd,
+    0xf4, 0x0, 0x3d, 0x0, 0x3e, 0xf0, 0x2, 0xff,
+    0xff, 0xef, 0x0, 0xbc, 0xf0, 0xb, 0xdf, 0xff,
+    0xdb, 0xc0, 0xb4, 0xf0, 0x2f, 0x0, 0x0, 0x3,
+    0xf4, 0x10, 0xf0, 0xbc, 0x0, 0x0, 0x0, 0xbe,
+    0x0, 0xf3, 0xf0, 0x0, 0x0, 0x0, 0x1d, 0x0,
+    0xf3, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf1,
+    0x3f, 0xff, 0xff, 0xff, 0xe0, 0x0, 0xf0, 0x3f,
+    0xff, 0xff, 0xff, 0xd0, 0x0, 0xf0, 0x0, 0x0,
+    0xf4, 0x10, 0x0, 0x0, 0xf0, 0x3, 0xc0, 0xf4,
+    0xb8, 0x0, 0x0, 0xf0, 0xb, 0xc0, 0xf4, 0x3f,
+    0x0, 0x0, 0xf0, 0x2f, 0x0, 0xf4, 0xf, 0xc0,
+    0x0, 0xf0, 0xbc, 0x0, 0xf4, 0x3, 0xf0, 0x0,
+    0xf3, 0xf4, 0x2b, 0xf0, 0x0, 0xf8, 0x0, 0xf1,
+    0xc0, 0x2f, 0xf0, 0x0, 0x30, 0x0, 0xf0, 0x0,
+    0x9, 0x0, 0x0, 0x0,
+
     /* U+50BB "傻" */
     0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0,
     0x0, 0xe0, 0x0, 0x3e, 0x0, 0x0, 0x0, 0x0,
@@ -9488,6 +10056,30 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+5140 "兀" */
+    0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x0, 0x1f,
+    0x40, 0x1f, 0x80, 0x0, 0x0, 0x0, 0x7c, 0x0,
+    0x3d, 0x0, 0x0, 0x0, 0x1, 0xf0, 0x0, 0xf4,
+    0x0, 0x0, 0x0, 0x7, 0xc0, 0x3, 0xd0, 0x0,
+    0x0, 0x0, 0x1f, 0x0, 0xf, 0x40, 0x0, 0x0,
+    0x0, 0x7c, 0x0, 0x3d, 0x0, 0x0, 0x0, 0x1,
+    0xf0, 0x0, 0xf4, 0x0, 0x0, 0x0, 0x7, 0xc0,
+    0x3, 0xd0, 0x0, 0x0, 0x0, 0x1f, 0x0, 0xf,
+    0x40, 0x0, 0x0, 0x0, 0x7c, 0x0, 0x3d, 0x0,
+    0x0, 0x0, 0x2, 0xf0, 0x0, 0xf4, 0x0, 0x0,
+    0x0, 0xb, 0xc0, 0x3, 0xd0, 0x0, 0x0, 0x0,
+    0x3e, 0x0, 0xf, 0x40, 0x0, 0x0, 0x0, 0xf4,
+    0x0, 0x3d, 0x0, 0x0, 0x0, 0xb, 0xc0, 0x0,
+    0xf4, 0x0, 0x0, 0x0, 0x3f, 0x0, 0x3, 0xd0,
+    0x0, 0xf0, 0x2, 0xf4, 0x0, 0xf, 0x40, 0x7,
+    0xc0, 0x1f, 0x80, 0x0, 0x3d, 0x0, 0x1f, 0x1,
+    0xfc, 0x0, 0x0, 0xf8, 0x0, 0xb8, 0x2f, 0xc0,
+    0x0, 0x3, 0xf9, 0x5b, 0xe3, 0xfc, 0x0, 0x0,
+    0xb, 0xff, 0xff, 0x1f, 0x80, 0x0, 0x0, 0x7,
+    0xff, 0xe0, 0x14, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0,
+
     /* U+5141 "允" */
     0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x0,
     0x0, 0xf, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -10413,6 +11005,55 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0x1, 0xbc, 0x4, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x10,
 
+    /* U+5181 "冁" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf,
+    0x0, 0xf0, 0x0, 0x0, 0x0, 0x0, 0xb, 0x41,
+    0xf0, 0x6a, 0xaa, 0xaa, 0x80, 0x3, 0xc3, 0xd0,
+    0xbf, 0xff, 0xff, 0xd0, 0x1, 0xc7, 0xc0, 0xb0,
+    0x0, 0x2, 0xd0, 0x5, 0x5f, 0x50, 0xb0, 0x0,
+    0x1, 0xd0, 0x2f, 0xff, 0xf8, 0xb0, 0x0, 0x1,
+    0xd0, 0x2f, 0xbe, 0xb8, 0xbe, 0xaa, 0xab, 0xd0,
+    0x2c, 0x2c, 0x38, 0xbf, 0xff, 0xff, 0xd0, 0x2c,
+    0x2c, 0x38, 0xb0, 0x14, 0x4, 0x0, 0x2c, 0x2c,
+    0x38, 0xb0, 0x2c, 0x2c, 0x0, 0x2f, 0xff, 0xf8,
+    0xb0, 0x2c, 0x2c, 0x0, 0x2f, 0xff, 0xf8, 0xb7,
+    0xff, 0xff, 0xe0, 0x2c, 0x2c, 0x38, 0xb7, 0xff,
+    0xff, 0xf0, 0x2c, 0x2c, 0x38, 0xb0, 0x2c, 0x2c,
+    0x0, 0x2c, 0x2c, 0x38, 0xb0, 0x2c, 0x2c, 0x0,
+    0x2f, 0xff, 0xf8, 0xf0, 0x2c, 0x2c, 0x0, 0x2f,
+    0xff, 0xf8, 0xff, 0xff, 0xff, 0xf4, 0x0, 0x3c,
+    0x0, 0xff, 0xff, 0xff, 0xf4, 0x0, 0x2c, 0x0,
+    0xf0, 0xe3, 0x80, 0x40, 0x0, 0x2c, 0x0, 0xf0,
+    0xe2, 0xc2, 0xd0, 0xff, 0xff, 0xfe, 0xe0, 0xe0,
+    0xef, 0x80, 0xff, 0xff, 0xff, 0xd0, 0xe0, 0xbd,
+    0x0, 0x0, 0x2c, 0x3, 0xc0, 0xe0, 0x3d, 0x0,
+    0x0, 0x2c, 0x3, 0xc0, 0xe2, 0x4f, 0x80, 0x0,
+    0x2c, 0xb, 0x80, 0xff, 0x83, 0xf8, 0x0, 0x2c,
+    0xf, 0x2, 0xfd, 0x0, 0x7c, 0x0, 0x2c, 0xa,
+    0x2, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
+    /* U+5182 "冂" */
+    0x15, 0x55, 0x55, 0x55, 0x55, 0x55, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xf7, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xdf, 0x0, 0x0, 0x0, 0x0, 0x1f, 0x7c,
+    0x0, 0x0, 0x0, 0x0, 0x7d, 0xf0, 0x0, 0x0,
+    0x0, 0x1, 0xf7, 0xc0, 0x0, 0x0, 0x0, 0x7,
+    0xdf, 0x0, 0x0, 0x0, 0x0, 0x1f, 0x7c, 0x0,
+    0x0, 0x0, 0x0, 0x7d, 0xf0, 0x0, 0x0, 0x0,
+    0x1, 0xf7, 0xc0, 0x0, 0x0, 0x0, 0x7, 0xdf,
+    0x0, 0x0, 0x0, 0x0, 0x1f, 0x7c, 0x0, 0x0,
+    0x0, 0x0, 0x7d, 0xf0, 0x0, 0x0, 0x0, 0x1,
+    0xf7, 0xc0, 0x0, 0x0, 0x0, 0x7, 0xdf, 0x0,
+    0x0, 0x0, 0x0, 0x1f, 0x7c, 0x0, 0x0, 0x0,
+    0x0, 0x7d, 0xf0, 0x0, 0x0, 0x0, 0x1, 0xf7,
+    0xc0, 0x0, 0x0, 0x0, 0x7, 0xdf, 0x0, 0x0,
+    0x0, 0x0, 0x1f, 0x7c, 0x0, 0x0, 0x0, 0x0,
+    0x7d, 0xf0, 0x0, 0x0, 0x0, 0x2, 0xf7, 0xc0,
+    0x0, 0x0, 0x1, 0x6f, 0xdf, 0x0, 0x0, 0x0,
+    0x3f, 0xfd, 0x7c, 0x0, 0x0, 0x0, 0x7f, 0x90,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+5185 "内" */
     0x0, 0x0, 0x7, 0x80, 0x0, 0x0, 0x0, 0x0,
     0x1f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7c, 0x0,
@@ -10458,6 +11099,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xf0, 0x0, 0x0, 0x3, 0xfe, 0x40, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+5189 "冉" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x7c, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x7c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x7c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xbc,
+    0x0, 0x0, 0x0, 0x2, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0x0, 0x2, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0x0, 0x2, 0xe0, 0x0, 0x7c, 0x0, 0x1f, 0x0,
+    0x2, 0xe0, 0x0, 0x7c, 0x0, 0x1f, 0x0, 0x2,
+    0xe0, 0x0, 0x7c, 0x0, 0x1f, 0x0, 0x2, 0xe0,
+    0x0, 0x7c, 0x0, 0x1f, 0x0, 0x2, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0x0, 0x2, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0x0, 0x2, 0xe0, 0x0, 0xbc, 0x0,
+    0x1f, 0x0, 0x2, 0xe0, 0x0, 0x7c, 0x0, 0x1f,
+    0x0, 0x2, 0xe0, 0x0, 0x7c, 0x0, 0x1f, 0x0,
+    0x2, 0xe0, 0x0, 0x7c, 0x0, 0x1f, 0x0, 0x2,
+    0xe0, 0x0, 0xbc, 0x0, 0x1f, 0x0, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xfc, 0xbf, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xfc, 0x2, 0xe0, 0x0, 0x0,
+    0x0, 0x1f, 0x0, 0x2, 0xe0, 0x0, 0x0, 0x0,
+    0x1f, 0x0, 0x2, 0xe0, 0x0, 0x0, 0x0, 0x1f,
+    0x0, 0x2, 0xe0, 0x0, 0x0, 0x0, 0x2f, 0x0,
+    0x2, 0xe0, 0x0, 0x0, 0x1, 0x7f, 0x0, 0x2,
+    0xe0, 0x0, 0x0, 0x2f, 0xfe, 0x0, 0x2, 0xe0,
+    0x0, 0x0, 0x1f, 0xf4, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+518C "册" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0xff, 0xff, 0x3, 0xff, 0xfd, 0x0, 0x0, 0xff,
@@ -10508,6 +11176,62 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0xf0, 0x0, 0x0, 0x3f, 0xf8, 0x0, 0x0,
     0xf0, 0x0, 0x0, 0x1e, 0x90, 0x0,
 
+    /* U+5192 "冒" */
+    0x7f, 0xff, 0xff, 0xff, 0xff, 0xf9, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xf7, 0xc0, 0x0, 0x0, 0x0,
+    0x7, 0xdf, 0x0, 0x0, 0x0, 0x0, 0x1f, 0x7c,
+    0x3f, 0xff, 0xff, 0xfc, 0x7d, 0xf0, 0xaa, 0xaa,
+    0xaa, 0xa1, 0xf7, 0xc0, 0x0, 0x0, 0x0, 0x7,
+    0xdf, 0xa, 0xaa, 0xaa, 0xaa, 0x1f, 0x7c, 0x3f,
+    0xff, 0xff, 0xfc, 0x7d, 0xa0, 0x0, 0x0, 0x0,
+    0x1, 0xa0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1,
+    0xff, 0xff, 0xff, 0xff, 0xf0, 0xb, 0xff, 0xff,
+    0xff, 0xff, 0xc0, 0x2f, 0x0, 0x0, 0x0, 0xf,
+    0x0, 0xbc, 0x0, 0x0, 0x0, 0x3c, 0x2, 0xff,
+    0xff, 0xff, 0xff, 0xf0, 0xb, 0xea, 0xaa, 0xaa,
+    0xaf, 0xc0, 0x2f, 0x0, 0x0, 0x0, 0xf, 0x0,
+    0xbc, 0x0, 0x0, 0x0, 0x3c, 0x2, 0xff, 0xff,
+    0xff, 0xff, 0xf0, 0xb, 0xea, 0xaa, 0xaa, 0xab,
+    0xc0, 0x2f, 0x0, 0x0, 0x0, 0xf, 0x0, 0xbc,
+    0x0, 0x0, 0x0, 0x3c, 0x2, 0xff, 0xff, 0xff,
+    0xff, 0xf0, 0xb, 0xea, 0xaa, 0xaa, 0xab, 0xc0,
+    0x2f, 0x0, 0x0, 0x0, 0xf, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
+    /* U+5195 "冕" */
+    0x3, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0xf,
+    0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x3c, 0x0,
+    0x0, 0x0, 0x0, 0xb8, 0x0, 0xf0, 0xaa, 0xaa,
+    0xaa, 0x82, 0xe0, 0x3, 0xc3, 0xff, 0xff, 0xff,
+    0xb, 0x80, 0xf, 0x0, 0x0, 0x0, 0x0, 0x2e,
+    0x0, 0x3c, 0x2a, 0xaa, 0xaa, 0xa0, 0xb8, 0x0,
+    0xf0, 0xff, 0xff, 0xff, 0xc2, 0xe0, 0x1, 0x40,
+    0xb8, 0x0, 0x0, 0x5, 0x40, 0x0, 0xb, 0xfa,
+    0xaa, 0xaa, 0x0, 0x0, 0x0, 0xbf, 0xff, 0xff,
+    0xfc, 0x0, 0x0, 0xf, 0xc0, 0x0, 0xb, 0xc0,
+    0x0, 0x1, 0xfc, 0x0, 0x0, 0xbc, 0x0, 0x0,
+    0x7f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x1, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xf0, 0x1, 0x3c, 0x0,
+    0xf, 0x0, 0x3, 0xc0, 0x0, 0xf0, 0x0, 0x7c,
+    0x0, 0xf, 0x0, 0x3, 0xea, 0xab, 0xfa, 0xaa,
+    0xbc, 0x0, 0xf, 0xff, 0xff, 0xff, 0xff, 0xf0,
+    0x0, 0x0, 0x0, 0xbd, 0xe0, 0x0, 0x0, 0x0,
+    0x0, 0xb, 0xd7, 0x80, 0x0, 0x24, 0x0, 0x1,
+    0xfd, 0x1e, 0x0, 0x1, 0xe0, 0x1, 0xbf, 0xc0,
+    0x7c, 0x0, 0xf, 0x86, 0xff, 0xe4, 0x0, 0xff,
+    0xff, 0xfc, 0x3f, 0xf4, 0x0, 0x1, 0xff, 0xff,
+    0xd0, 0xa4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+
+    /* U+5196 "冖" */
+    0x15, 0x55, 0x55, 0x55, 0x55, 0x55, 0x4f, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xf3, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xfc, 0xf4, 0x0, 0x0, 0x0, 0x0,
+    0x2f, 0x3d, 0x0, 0x0, 0x0, 0x0, 0xb, 0xcf,
+    0x40, 0x0, 0x0, 0x0, 0x2, 0xf3, 0xd0, 0x0,
+    0x0, 0x0, 0x0, 0xbc, 0xf4, 0x0, 0x0, 0x0,
+    0x0, 0x2f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0,
+
     /* U+5197 "冗" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f,
     0xff, 0xff, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff,
@@ -10707,6 +11431,16 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xf0, 0x78, 0x0, 0x0, 0x0, 0x0, 0x1, 0x80,
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+51AB "冫" */
+    0x0, 0x0, 0x6, 0x0, 0x3, 0xe0, 0x0, 0xbe,
+    0x0, 0xb, 0xe0, 0x0, 0xbd, 0x0, 0xf, 0xd0,
+    0x0, 0xfc, 0x0, 0x1d, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40,
+    0x0, 0xf8, 0x0, 0x7d, 0x0, 0x3f, 0x0, 0x1f,
+    0x40, 0xf, 0xc0, 0xb, 0xd0, 0x3, 0xe0, 0x2,
+    0xf0, 0x1, 0xf8, 0x0, 0xfc, 0x0, 0xbd, 0x0,
+    0x6, 0x0, 0x0, 0x0, 0x0,
+
     /* U+51AC "冬" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x3c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -11265,6 +11999,84 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0xf, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+51DB "凛" */
+    0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x3, 0xd0, 0x0, 0x0, 0x1d, 0x0,
+    0x0, 0x2, 0xf0, 0x0, 0x0, 0x1f, 0x3, 0xff,
+    0xff, 0xff, 0xff, 0xf4, 0xf, 0x3, 0xff, 0xff,
+    0xff, 0xff, 0xf4, 0x7, 0x80, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x3, 0xc0, 0x55, 0x55, 0x55, 0x55,
+    0x40, 0x2, 0xe0, 0xbf, 0xff, 0xff, 0xff, 0xc0,
+    0x1, 0xf0, 0xb4, 0x0, 0x0, 0x7, 0xc0, 0x0,
+    0xf0, 0xb4, 0x7f, 0xff, 0x87, 0xc0, 0x0, 0x40,
+    0xb4, 0x70, 0x3, 0x87, 0xc0, 0x0, 0x0, 0xb4,
+    0x74, 0x3, 0x87, 0xc0, 0x0, 0x0, 0xb4, 0x7f,
+    0xff, 0x87, 0xc0, 0x0, 0x0, 0xb8, 0x0, 0x0,
+    0x7, 0xc0, 0x0, 0xf0, 0xbf, 0xff, 0xff, 0xff,
+    0xc0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x1, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2,
+    0xd0, 0xbf, 0xff, 0xff, 0xff, 0xc0, 0x3, 0xc0,
+    0x6a, 0xaa, 0xaa, 0xaa, 0x40, 0x3, 0xc0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0xb, 0x8b, 0xff, 0xff,
+    0xff, 0xff, 0xfc, 0xf, 0x46, 0xaa, 0xab, 0xfa,
+    0xaa, 0xa8, 0xf, 0x0, 0x2, 0x1, 0xf0, 0x90,
+    0x0, 0x2e, 0x0, 0x1f, 0x81, 0xf1, 0xfd, 0x0,
+    0x3d, 0x0, 0xbe, 0x1, 0xf0, 0x2f, 0x80, 0x18,
+    0xb, 0xf4, 0x7, 0xf0, 0x3, 0xf8, 0x0, 0x3f,
+    0x40, 0x7f, 0xd0, 0x0, 0x7c, 0x0, 0x8, 0x0,
+    0x3a, 0x40, 0x0, 0x4,
+
+    /* U+51DD "凝" */
+    0x0, 0x1, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x2c,
+    0x2, 0xd0, 0x28, 0xff, 0xff, 0xf0, 0x1e, 0x2,
+    0xd2, 0xfc, 0xff, 0xff, 0xf0, 0xf, 0x2, 0xff,
+    0xe0, 0x0, 0x1, 0xf0, 0xb, 0x42, 0xfd, 0x0,
+    0x4, 0x3, 0xd0, 0x7, 0x82, 0xe0, 0x9, 0x2d,
+    0xb, 0x80, 0x3, 0xc2, 0xd0, 0xe, 0x1f, 0x1f,
+    0x0, 0x3, 0xc1, 0xe0, 0x2d, 0x7, 0xfc, 0x0,
+    0x2, 0xe0, 0xff, 0xfc, 0x1, 0xf4, 0x0, 0x1,
+    0xc0, 0x6a, 0x90, 0x0, 0xb4, 0x0, 0x0, 0x0,
+    0xe0, 0x1, 0xff, 0xff, 0xf4, 0x0, 0x1, 0xd0,
+    0x1, 0xff, 0xff, 0xf4, 0x0, 0x3, 0xff, 0xfd,
+    0x0, 0xf0, 0x74, 0x1, 0xd7, 0xff, 0xfc, 0x0,
+    0xf0, 0xf0, 0x2, 0xdf, 0xf, 0x0, 0x70, 0xf0,
+    0xa0, 0x3, 0xce, 0xf, 0x0, 0xb0, 0xf0, 0x0,
+    0x3, 0xc0, 0xf, 0x0, 0xb0, 0xf5, 0x50, 0x7,
+    0x8f, 0xff, 0xfe, 0xb0, 0xff, 0xf4, 0xb, 0x8f,
+    0xff, 0xfe, 0xb0, 0xfa, 0xa0, 0xf, 0x40, 0x1e,
+    0x0, 0xf0, 0xf0, 0x0, 0xf, 0x0, 0x3f, 0x40,
+    0xf4, 0xf0, 0x0, 0x1e, 0x0, 0x3f, 0xe1, 0xf8,
+    0xf0, 0x0, 0x2d, 0x0, 0xf4, 0xfa, 0xfd, 0xf0,
+    0x0, 0x3c, 0x3, 0xe0, 0x3b, 0xdf, 0xf0, 0x0,
+    0x3c, 0xf, 0xc0, 0xb, 0x47, 0xff, 0xfe, 0x0,
+    0x3f, 0x0, 0x1f, 0x0, 0x7f, 0xfd, 0x0, 0x1c,
+    0x0, 0x1c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
+    /* U+51E0 "几" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x3f, 0xff, 0xff, 0xfc, 0x0, 0x0, 0x0, 0xff,
+    0xff, 0xff, 0xf0, 0x0, 0x0, 0x3, 0xe0, 0x0,
+    0xb, 0xc0, 0x0, 0x0, 0xf, 0x40, 0x0, 0x1f,
+    0x0, 0x0, 0x0, 0x3d, 0x0, 0x0, 0x7c, 0x0,
+    0x0, 0x0, 0xf4, 0x0, 0x1, 0xf0, 0x0, 0x0,
+    0x3, 0xd0, 0x0, 0x7, 0xc0, 0x0, 0x0, 0xf,
+    0x40, 0x0, 0x1f, 0x0, 0x0, 0x0, 0x3d, 0x0,
+    0x0, 0x7c, 0x0, 0x0, 0x0, 0xf4, 0x0, 0x1,
+    0xf0, 0x0, 0x0, 0x3, 0xd0, 0x0, 0x7, 0xc0,
+    0x0, 0x0, 0xf, 0x40, 0x0, 0x1f, 0x0, 0x0,
+    0x0, 0x3d, 0x0, 0x0, 0x7c, 0x0, 0x0, 0x0,
+    0xf4, 0x0, 0x1, 0xf0, 0x0, 0x0, 0x3, 0xc0,
+    0x0, 0x7, 0xc0, 0x0, 0x0, 0x1f, 0x0, 0x0,
+    0x1f, 0x0, 0x0, 0x0, 0xbc, 0x0, 0x0, 0x7c,
+    0x1, 0x40, 0x3, 0xd0, 0x0, 0x1, 0xf0, 0xf,
+    0x40, 0x1f, 0x0, 0x0, 0x7, 0xc0, 0x3d, 0x0,
+    0xf8, 0x0, 0x0, 0x1f, 0x0, 0xf4, 0xf, 0xc0,
+    0x0, 0x0, 0x7c, 0x3, 0xc0, 0xfd, 0x0, 0x0,
+    0x1, 0xf9, 0x6f, 0xf, 0xe0, 0x0, 0x0, 0x3,
+    0xff, 0xfc, 0x7e, 0x0, 0x0, 0x0, 0x7, 0xff,
+    0x80, 0x60, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+51E1 "凡" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x1f, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x1f,
@@ -11424,6 +12236,55 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0x0, 0xb4, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+51F3 "凳" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x2, 0xd0, 0x7, 0x0, 0x0, 0x6a,
+    0xaa, 0xaa, 0x7c, 0xb, 0xd0, 0x0, 0x2f, 0xff,
+    0xff, 0xcb, 0xaf, 0x80, 0x0, 0x0, 0x40, 0x3,
+    0xe0, 0xff, 0x40, 0x70, 0x0, 0x3d, 0x2, 0xf0,
+    0x1f, 0x40, 0xbc, 0x0, 0x7, 0xe3, 0xf0, 0x2,
+    0xf6, 0xf8, 0x0, 0x0, 0x3f, 0xfa, 0xaa, 0xbf,
+    0xe0, 0x0, 0x0, 0xb, 0xeb, 0xff, 0xfd, 0xfd,
+    0x0, 0x0, 0x2f, 0xc0, 0x0, 0x0, 0xb, 0xf4,
+    0x1, 0xff, 0xea, 0xaa, 0xaa, 0xaa, 0xff, 0xe0,
+    0xfd, 0x3f, 0xff, 0xff, 0xff, 0xf0, 0xb8, 0x4,
+    0xf, 0x0, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x3,
+    0xc0, 0x0, 0x0, 0xf, 0x0, 0x0, 0x0, 0xff,
+    0xff, 0xff, 0xff, 0xc0, 0x0, 0x0, 0x2a, 0xfa,
+    0xaa, 0xae, 0xa0, 0x0, 0x0, 0x0, 0x7d, 0x0,
+    0xf, 0x80, 0x0, 0x0, 0x0, 0xb, 0x80, 0xf,
+    0xc0, 0x0, 0x0, 0x3f, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0x40, 0xf, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x1f, 0xff, 0xff, 0x80, 0x0, 0x0,
+    0x0, 0x7, 0xff, 0xff, 0xf0, 0x2, 0x40, 0x0,
+    0x2, 0xd0, 0x0, 0x3c, 0x0, 0xf0, 0x0, 0x2,
+    0xf0, 0x0, 0xf, 0x0, 0x7c, 0x0, 0x6f, 0xf8,
+    0x0, 0x3, 0xff, 0xfe, 0x0, 0x3f, 0xe0, 0x0,
+    0x0, 0x7f, 0xfe, 0x0, 0x5, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
+    /* U+51F5 "凵" */
+    0x28, 0x0, 0x0, 0x0, 0x0, 0x69, 0xf0, 0x0,
+    0x0, 0x0, 0x1, 0xf7, 0xc0, 0x0, 0x0, 0x0,
+    0x7, 0xdf, 0x0, 0x0, 0x0, 0x0, 0x1f, 0x7c,
+    0x0, 0x0, 0x0, 0x0, 0x7d, 0xf0, 0x0, 0x0,
+    0x0, 0x1, 0xf7, 0xc0, 0x0, 0x0, 0x0, 0x7,
+    0xdf, 0x0, 0x0, 0x0, 0x0, 0x1f, 0x7c, 0x0,
+    0x0, 0x0, 0x0, 0x7d, 0xf0, 0x0, 0x0, 0x0,
+    0x1, 0xf7, 0xc0, 0x0, 0x0, 0x0, 0x7, 0xdf,
+    0x0, 0x0, 0x0, 0x0, 0x1f, 0x7c, 0x0, 0x0,
+    0x0, 0x0, 0x7d, 0xf0, 0x0, 0x0, 0x0, 0x1,
+    0xf7, 0xc0, 0x0, 0x0, 0x0, 0x7, 0xdf, 0x0,
+    0x0, 0x0, 0x0, 0x1f, 0x7c, 0x0, 0x0, 0x0,
+    0x0, 0x7d, 0xf0, 0x0, 0x0, 0x0, 0x1, 0xf7,
+    0xc0, 0x0, 0x0, 0x0, 0x7, 0xdf, 0x0, 0x0,
+    0x0, 0x0, 0x1f, 0x7c, 0x0, 0x0, 0x0, 0x0,
+    0x7d, 0xf5, 0x55, 0x55, 0x55, 0x56, 0xf7, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7c,
+    0x0, 0x0, 0x0, 0x0, 0x1, 0xf0,
+
     /* U+51F6 "凶" */
     0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0xb4,
     0x0, 0x0, 0x7c, 0x0, 0x0, 0xbd, 0x0, 0x0,
@@ -11563,6 +12424,27 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xff, 0xff, 0xff, 0xfc, 0x55, 0x55, 0x55, 0x55,
     0x55, 0x7c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c,
 
+    /* U+51FD "函" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f, 0xff,
+    0xff, 0xff, 0xff, 0x0, 0xff, 0xff, 0xff, 0xff,
+    0xfc, 0x0, 0x0, 0x0, 0x0, 0x3f, 0x80, 0x0,
+    0x0, 0x0, 0xb, 0xf4, 0x3, 0xd0, 0x0, 0x2,
+    0xfd, 0x1, 0xff, 0x44, 0x0, 0x7f, 0x40, 0x7,
+    0xfd, 0x7c, 0x1, 0xf0, 0x3, 0x5f, 0xf4, 0xbc,
+    0x7, 0xc0, 0x3e, 0x7f, 0xd0, 0xbc, 0x1f, 0x3,
+    0xf1, 0xff, 0x40, 0xfc, 0x7c, 0x3f, 0x7, 0xfd,
+    0x0, 0xf1, 0xf3, 0xf0, 0x1f, 0xf4, 0x0, 0x47,
+    0xc2, 0x0, 0x7f, 0xd0, 0x3, 0xdf, 0xe0, 0x1,
+    0xff, 0x40, 0x7e, 0x7f, 0xf4, 0x7, 0xfd, 0xb,
+    0xe1, 0xf2, 0xf8, 0x1f, 0xf4, 0xfd, 0x7, 0xc2,
+    0xf8, 0x7f, 0xff, 0xd0, 0x1f, 0x1, 0xfd, 0xff,
+    0xb8, 0x0, 0x7c, 0x1, 0xfb, 0xfd, 0x0, 0xaf,
+    0xf0, 0x1, 0x9f, 0xf4, 0x2, 0xff, 0x40, 0x0,
+    0x7f, 0xd0, 0x2, 0x50, 0x0, 0x1, 0xff, 0x40,
+    0x0, 0x0, 0x0, 0x7, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc,
+    0x0, 0x0, 0x0, 0x0, 0x1, 0xf0,
+
     /* U+51FF "凿" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x1f, 0x2, 0xe0, 0x0, 0x0, 0x3, 0xc0,
@@ -11613,6 +12495,41 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0xf, 0xfe, 0x40, 0x6, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+5201 "刁" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xd0, 0x3f, 0xff, 0xff,
+    0xff, 0xff, 0xf4, 0x5, 0x55, 0x55, 0x55, 0x55,
+    0x7d, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x7, 0xc0, 0x0, 0x0,
+    0x0, 0x0, 0x1, 0xf0, 0x0, 0x0, 0x0, 0x0,
+    0x10, 0x7c, 0x0, 0x0, 0x0, 0x0, 0x7c, 0x1f,
+    0x0, 0x0, 0x0, 0x0, 0xbf, 0x47, 0xc0, 0x0,
+    0x0, 0x2, 0xff, 0x1, 0xf0, 0x0, 0x0, 0xb,
+    0xfd, 0x0, 0xbc, 0x0, 0x0, 0x2f, 0xf8, 0x0,
+    0x2f, 0x0, 0x0, 0xbf, 0xe0, 0x0, 0xb, 0xc0,
+    0x2, 0xff, 0x80, 0x0, 0x2, 0xf0, 0xb, 0xfe,
+    0x0, 0x0, 0x0, 0xb8, 0x3f, 0xf8, 0x0, 0x0,
+    0x0, 0x2e, 0xf, 0xe0, 0x0, 0x0, 0x0, 0xf,
+    0x80, 0x80, 0x0, 0x0, 0x0, 0x3, 0xe0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0xf8, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x3d, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x2f, 0x40, 0x0, 0x0, 0x0, 0x55, 0xbf, 0xc0,
+    0x0, 0x0, 0x0, 0x3f, 0xff, 0xd0, 0x0, 0x0,
+    0x0, 0xb, 0xfe, 0x40, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
+    /* U+5202 "刂" */
+    0x0, 0x0, 0x0, 0x0, 0x3, 0xe0, 0x0, 0xf,
+    0x8f, 0x0, 0x3e, 0x3d, 0x0, 0xf8, 0xf4, 0x3,
+    0xe3, 0xd0, 0xf, 0x8f, 0x40, 0x3e, 0x3d, 0x0,
+    0xf8, 0xf4, 0x3, 0xe3, 0xd0, 0xf, 0x8f, 0x40,
+    0x3e, 0x3d, 0x0, 0xf8, 0xf4, 0x3, 0xe3, 0xd0,
+    0xf, 0x8f, 0x40, 0x3e, 0x3d, 0x0, 0xf8, 0xf4,
+    0x3, 0xe3, 0xd0, 0xf, 0x8f, 0x40, 0x3e, 0x28,
+    0x0, 0xf8, 0x0, 0x3, 0xe0, 0x0, 0xf, 0x80,
+    0x0, 0x3d, 0x0, 0x17, 0xf4, 0xb, 0xff, 0xc0,
+    0xf, 0xfd, 0x0, 0x14, 0x0,
+
     /* U+5203 "刃" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xff,
     0xff, 0xff, 0xff, 0xff, 0xd0, 0xff, 0xff, 0xff,
@@ -12548,30 +13465,30 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xfd, 0x10, 0x0, 0xf0, 0x0, 0x0, 0xff, 0x40,
     0x0, 0xf, 0x0, 0x0, 0x0, 0x0,
 
-    /* U+5245 "剅" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf0, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x3, 0xc0, 0xff, 0xff,
-    0xff, 0xf0, 0x0, 0xf, 0x3, 0xff, 0xff, 0xff,
-    0xc1, 0xe0, 0x3c, 0x0, 0x0, 0x0, 0x0, 0x7,
-    0xc0, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x1f, 0x3,
-    0xc0, 0x0, 0x0, 0x0, 0x0, 0x7c, 0xf, 0x0,
-    0xff, 0xff, 0xff, 0x1, 0xf0, 0x3c, 0x3, 0xff,
-    0xff, 0xfc, 0x7, 0xc0, 0xf0, 0xf, 0x0, 0x0,
-    0xf0, 0x1f, 0x3, 0xc0, 0x3c, 0x0, 0x3, 0xc0,
-    0x7c, 0xf, 0x0, 0xf0, 0x0, 0xf, 0x1, 0xf0,
-    0x3c, 0x3, 0xc0, 0x0, 0x3c, 0x7, 0xc0, 0xf0,
-    0xf, 0xaa, 0xaa, 0xf0, 0x1f, 0x3, 0xc0, 0x3f,
-    0xff, 0xff, 0xc0, 0x7c, 0xf, 0x0, 0x15, 0x55,
-    0x55, 0x1, 0xf0, 0x3c, 0x0, 0x60, 0x0, 0x74,
-    0x7, 0xc0, 0xf0, 0x3, 0xd0, 0x3, 0xd0, 0x1f,
-    0x3, 0xc0, 0x7, 0xc0, 0xf, 0x0, 0x7c, 0xf,
-    0x0, 0xf, 0x80, 0xb8, 0x1, 0xf0, 0x3c, 0x0,
-    0x1f, 0x3, 0xc0, 0x1, 0x40, 0xf0, 0x0, 0x38,
-    0x3e, 0x0, 0x0, 0x3, 0xc0, 0x0, 0x6, 0xff,
-    0xf8, 0x0, 0xf, 0xa, 0xff, 0xff, 0xff, 0xd0,
-    0x0, 0x7c, 0x3f, 0xff, 0xe9, 0x40, 0x0, 0xaf,
-    0xf0, 0x55, 0x0, 0x0, 0x0, 0x3, 0xff, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x6, 0x50, 0x0,
+    /* U+524A "削" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x3d, 0x0, 0x0, 0x0, 0x28, 0x28, 0x3, 0xd0,
+    0xd, 0x0, 0x3, 0xc3, 0xd0, 0x3d, 0x2, 0xe0,
+    0x0, 0x3c, 0xf, 0x3, 0xd0, 0x7c, 0xf, 0x3,
+    0xc0, 0x7c, 0x3d, 0xf, 0x0, 0xf0, 0x3c, 0x2,
+    0xe3, 0xd3, 0xd0, 0xf, 0x3, 0xc0, 0xc, 0x3d,
+    0x38, 0x0, 0xf0, 0x3c, 0x0, 0x3, 0xd0, 0x0,
+    0xf, 0x3, 0xc0, 0xff, 0xff, 0xff, 0xc0, 0xf0,
+    0x3c, 0xf, 0xff, 0xff, 0xfc, 0xf, 0x3, 0xc0,
+    0xf0, 0x0, 0x3, 0xc0, 0xf0, 0x3c, 0xf, 0x0,
+    0x0, 0x3c, 0xf, 0x3, 0xc0, 0xf0, 0x0, 0x3,
+    0xc0, 0xf0, 0x3c, 0xf, 0xff, 0xff, 0xfc, 0xf,
+    0x3, 0xc0, 0xff, 0xff, 0xff, 0xc0, 0xf0, 0x3c,
+    0xf, 0x0, 0x0, 0x3c, 0xf, 0x3, 0xc0, 0xf0,
+    0x0, 0x3, 0xc0, 0xf0, 0x3c, 0xf, 0x0, 0x0,
+    0x3c, 0xf, 0x3, 0xc0, 0xf4, 0x0, 0x7, 0xc0,
+    0xf0, 0x3c, 0xf, 0xff, 0xff, 0xfc, 0xf, 0x3,
+    0xc0, 0xff, 0xff, 0xff, 0xc0, 0xa0, 0x3c, 0xf,
+    0x0, 0x0, 0x3c, 0x0, 0x3, 0xc0, 0xf0, 0x0,
+    0x3, 0xc0, 0x0, 0x3c, 0xf, 0x0, 0x0, 0x7c,
+    0x0, 0x7, 0xc0, 0xf0, 0x2, 0xff, 0x80, 0x2f,
+    0xfc, 0xf, 0x0, 0x1f, 0xa0, 0x1, 0xfe, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
 
     /* U+524C "剌" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -13031,29 +13948,57 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xd0, 0xe, 0x5, 0x2, 0x3, 0xff, 0x1, 0x0,
     0x0, 0x0, 0x0, 0x6, 0x40,
 
-    /* U+5289 "劉" */
-    0x0, 0x1, 0x80, 0x0, 0x0, 0x0, 0x90, 0x1b,
-    0xfd, 0x55, 0x54, 0x0, 0xf, 0xf, 0xfe, 0x2f,
-    0xff, 0xc0, 0x0, 0xf0, 0xf4, 0x0, 0x79, 0x7c,
-    0x3c, 0xf, 0xf, 0xb, 0x7, 0x43, 0xc3, 0xc0,
-    0xf0, 0xf0, 0xb8, 0x74, 0x3c, 0x3c, 0xf, 0xf,
-    0x3, 0xcf, 0x3, 0xc3, 0xc0, 0xf0, 0xf2, 0xff,
-    0xe0, 0x3c, 0x3c, 0xf, 0xf, 0xfd, 0xfc, 0x6f,
-    0x83, 0xc0, 0xf0, 0xfd, 0x1, 0x47, 0xe0, 0x3c,
-    0xf, 0x9, 0x0, 0xfc, 0x0, 0x3, 0xc0, 0xf0,
-    0x0, 0x7f, 0xf8, 0x0, 0x3c, 0xf, 0x0, 0x2f,
-    0x87, 0xf8, 0x3, 0xc0, 0xf0, 0x2f, 0xd0, 0x7,
-    0xf8, 0x3c, 0xf, 0x2f, 0xfa, 0xaa, 0xaf, 0xe3,
-    0xc0, 0xf3, 0xe3, 0xff, 0xff, 0x88, 0x3c, 0xf,
-    0x10, 0x0, 0xb8, 0x0, 0x3, 0xc0, 0xf0, 0x55,
-    0x5b, 0x95, 0x50, 0x3c, 0xf, 0xf, 0xff, 0xff,
-    0xff, 0x83, 0xc0, 0xf0, 0x59, 0x5b, 0x95, 0xd4,
-    0x3c, 0xf, 0x2, 0xd0, 0x78, 0x2d, 0x0, 0x0,
-    0xf0, 0xf, 0x7, 0x83, 0xc0, 0x0, 0xf, 0x0,
-    0x78, 0x78, 0xb4, 0x0, 0x0, 0xf0, 0x2, 0xb,
-    0x97, 0xae, 0x0, 0xf, 0x7f, 0xff, 0xff, 0xff,
-    0xe0, 0x17, 0xe7, 0xff, 0xaa, 0x55, 0x0, 0xf,
-    0xfc, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa9, 0x0,
+    /* U+5282 "劂" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x14, 0x5,
+    0x55, 0x55, 0x55, 0x50, 0x0, 0xe0, 0x3f, 0xff,
+    0xff, 0xff, 0xe0, 0x3, 0x80, 0xfa, 0xaa, 0xaa,
+    0xaa, 0x54, 0xe, 0x3, 0xc5, 0x1, 0x41, 0x0,
+    0xb0, 0x38, 0xf, 0x2c, 0xf, 0xd, 0x2, 0xc0,
+    0xe0, 0x3c, 0x38, 0x74, 0x34, 0xb, 0x3, 0x80,
+    0xf0, 0xa3, 0xc1, 0xc0, 0x2c, 0xe, 0x3, 0xc6,
+    0x6f, 0x4b, 0xfe, 0xb0, 0x38, 0xf, 0x7f, 0xff,
+    0x7e, 0xba, 0xc0, 0xe0, 0x3c, 0x5b, 0x55, 0xc0,
+    0xdb, 0x3, 0x80, 0xf1, 0x1c, 0x1b, 0x7, 0x2c,
+    0xe, 0x3, 0xcd, 0x71, 0xfb, 0x68, 0xb0, 0x38,
+    0xf, 0x35, 0xc7, 0x8e, 0xd2, 0xc0, 0xe0, 0x3c,
+    0xd7, 0x1c, 0x3a, 0xb, 0x3, 0x80, 0xf3, 0x5c,
+    0x70, 0xd0, 0x2c, 0xe, 0x3, 0xcd, 0x71, 0xc3,
+    0x40, 0xb0, 0x38, 0xe, 0x3a, 0xdb, 0x1d, 0x2,
+    0xc0, 0xe0, 0x38, 0xff, 0xfc, 0x7c, 0xb, 0x3,
+    0x81, 0xe1, 0x6d, 0x52, 0xf4, 0x2c, 0xe, 0xb,
+    0x40, 0xf0, 0xf, 0xf0, 0x0, 0x38, 0x3c, 0x3,
+    0x80, 0x75, 0xe0, 0x0, 0xe0, 0xf0, 0x2d, 0x3,
+    0xc3, 0xc0, 0x3, 0x87, 0x80, 0xf0, 0x2d, 0x7,
+    0x40, 0x1e, 0x3d, 0xf, 0x42, 0xf0, 0xd, 0x1a,
+    0xf8, 0xf0, 0xb8, 0x2f, 0x0, 0x0, 0xff, 0xc1,
+    0x40, 0x80, 0x20, 0x0, 0x1, 0x50, 0x0,
+
+    /* U+5288 "劈" */
+    0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x3d, 0x0, 0x0, 0x2a, 0xaa,
+    0xa0, 0x0, 0xb8, 0x0, 0x0, 0xff, 0xff, 0xc6,
+    0xab, 0xfa, 0xa8, 0x3, 0xc0, 0xb, 0x1f, 0xff,
+    0xff, 0xf0, 0xf, 0x0, 0x2c, 0x3, 0xc0, 0x78,
+    0x0, 0x3e, 0xaa, 0xf0, 0xf, 0x2, 0xc0, 0x0,
+    0xff, 0xff, 0xc0, 0x2c, 0xf, 0x0, 0x3, 0xc0,
+    0x0, 0x15, 0xb9, 0xbd, 0x54, 0x1e, 0x0, 0x0,
+    0xff, 0xff, 0xff, 0xf0, 0xbe, 0xaa, 0xa1, 0x55,
+    0xbd, 0x55, 0x43, 0xff, 0xff, 0xd0, 0x1, 0xe0,
+    0x0, 0x2e, 0xb0, 0x7, 0x40, 0xb, 0xc0, 0x1,
+    0xf2, 0xc0, 0x1d, 0x7f, 0xff, 0xff, 0xcb, 0xb,
+    0x55, 0xb4, 0x55, 0xbd, 0x55, 0x0, 0x2f, 0xff,
+    0xd0, 0x1, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x7, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4,
+    0x0, 0x1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0,
+    0x7, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x0,
+    0x0, 0x1f, 0x0, 0x0, 0x3d, 0x0, 0x0, 0x0,
+    0xf8, 0x0, 0x0, 0xf4, 0x0, 0x0, 0xb, 0xc0,
+    0x0, 0x3, 0xd0, 0x0, 0x0, 0xbe, 0x0, 0x0,
+    0xf, 0x0, 0x0, 0x2f, 0xe0, 0x0, 0x0, 0xbc,
+    0x0, 0x1b, 0xfd, 0x0, 0x6, 0xff, 0xe0, 0x7,
+    0xfe, 0x40, 0x0, 0x1f, 0xfd, 0x0, 0xe, 0x40,
+    0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
 
     /* U+5290 "劐" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -13348,6 +14293,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xe0, 0x0, 0x0, 0x1, 0xf0, 0x1, 0x40, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+52A9 "助" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x3d, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xf4, 0x0, 0x0, 0x3f, 0xff, 0xf0,
+    0x3, 0xd0, 0x0, 0x0, 0xff, 0xff, 0xc0, 0xf,
+    0x40, 0x0, 0x3, 0xc0, 0xf, 0x0, 0x3d, 0x0,
+    0x0, 0xf, 0x0, 0x3c, 0x2a, 0xfa, 0xaa, 0x40,
+    0x3c, 0x0, 0xf1, 0xff, 0xff, 0xfe, 0x0, 0xf0,
+    0x3, 0xc1, 0x5f, 0x55, 0xf8, 0x3, 0xff, 0xff,
+    0x0, 0x3c, 0x2, 0xd0, 0xf, 0xff, 0xfc, 0x0,
+    0xf0, 0xb, 0x40, 0x3c, 0x0, 0xf0, 0x3, 0xc0,
+    0x3d, 0x0, 0xf0, 0x3, 0xc0, 0xf, 0x0, 0xf4,
+    0x3, 0xc0, 0xf, 0x0, 0x7c, 0x3, 0xd0, 0xf,
+    0x0, 0x3c, 0x1, 0xf0, 0xf, 0x40, 0x3f, 0xff,
+    0xf0, 0xb, 0x80, 0x3d, 0x0, 0xff, 0xff, 0xc0,
+    0x2e, 0x0, 0xf0, 0x3, 0xc0, 0xf, 0x0, 0xf4,
+    0x3, 0xc0, 0xf, 0x0, 0x3c, 0x3, 0xc0, 0xf,
+    0x0, 0x3c, 0x0, 0xf0, 0x1f, 0x0, 0x3c, 0x0,
+    0xf0, 0x3, 0xd0, 0xf8, 0x0, 0xf0, 0x3, 0xc0,
+    0x6f, 0xf7, 0xc0, 0x3, 0xc0, 0x1f, 0xff, 0xff,
+    0xfe, 0x0, 0xf, 0xf, 0xff, 0xfe, 0x92, 0xf0,
+    0x0, 0x7c, 0x3f, 0xa4, 0x0, 0x2f, 0x40, 0xaf,
+    0xf0, 0x0, 0x0, 0x2, 0xf8, 0x3, 0xff, 0x40,
+    0x0, 0x0, 0x2f, 0x80, 0xa, 0x90, 0x0, 0x0,
+    0x0, 0x28, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+52AA "努" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x1f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2d,
@@ -13693,33 +14665,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xc0, 0x0, 0x7, 0xd0, 0x1f, 0xa0, 0x4, 0x0,
     0x0, 0x6, 0x0, 0x0, 0x0,
 
-    /* U+52CD "勍" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0xf, 0x40, 0x0, 0xf, 0x0, 0x0, 0x0, 0x2e,
-    0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x7c, 0x0,
-    0x0, 0xf0, 0x0, 0xf, 0xff, 0xff, 0xfe, 0x3,
-    0xc0, 0x0, 0x3f, 0xff, 0xff, 0xf8, 0xf, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x5, 0x7d, 0x55, 0x0,
-    0x0, 0x0, 0x0, 0x3f, 0xff, 0xfd, 0x0, 0x0,
-    0x0, 0x0, 0xff, 0xff, 0xf4, 0x7, 0xff, 0xff,
-    0xc0, 0xf, 0x2, 0xd0, 0x1f, 0xff, 0xff, 0x0,
-    0x3c, 0xb, 0x40, 0x78, 0x0, 0x3c, 0x0, 0xf0,
-    0x2d, 0x1, 0xe0, 0x0, 0xf0, 0x7, 0xc0, 0xf4,
-    0x7, 0x80, 0x3, 0xc0, 0x1e, 0x3, 0xd0, 0x1f,
-    0xaa, 0xaf, 0x0, 0x78, 0xf, 0x0, 0x7f, 0xff,
-    0xfc, 0x2, 0xe0, 0x3c, 0x0, 0x0, 0xf0, 0x0,
-    0xb, 0x40, 0xf0, 0x0, 0x3, 0xc1, 0x0, 0x3d,
-    0x3, 0xc0, 0xf, 0xf, 0x2d, 0x0, 0xf0, 0xf,
-    0x0, 0x7c, 0x3c, 0x3c, 0x3, 0xc0, 0x3c, 0x3,
-    0xd0, 0xf0, 0xb8, 0x2e, 0x0, 0xf0, 0xf, 0x3,
-    0xc0, 0xf0, 0xf0, 0x3, 0xc0, 0xf4, 0xf, 0x1,
-    0xe7, 0xc0, 0xf, 0x7, 0xc0, 0x3c, 0x1, 0x3d,
-    0x0, 0x7c, 0x3d, 0x1, 0xf0, 0x2, 0xf0, 0x1b,
-    0xf0, 0x60, 0xff, 0xc0, 0x1f, 0x1, 0xff, 0x40,
-    0x3, 0xfc, 0x0, 0xf4, 0x3, 0xe4, 0x0, 0x0,
-    0x0, 0x2, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0,
-
     /* U+52D0 "勐" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0x0,
@@ -13821,31 +14766,31 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xf4, 0x1, 0x55, 0x55, 0x5f, 0x0, 0xfd, 0x0,
     0x0, 0x0, 0x0, 0x50, 0x0, 0x0,
 
-    /* U+52DB "勛" */
+    /* U+52DF "募" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0xf, 0x0, 0x0, 0xf, 0xff,
-    0xff, 0x0, 0x3c, 0x0, 0x0, 0x3f, 0xff, 0xfc,
-    0x0, 0xf0, 0x0, 0x0, 0xf0, 0x0, 0xb0, 0x3,
-    0xc0, 0x0, 0x3, 0xc0, 0x2, 0xc0, 0xf, 0x0,
-    0x0, 0xf, 0xaa, 0xaf, 0x5, 0x7d, 0x55, 0x0,
-    0x3f, 0xff, 0xfc, 0x7f, 0xff, 0xfd, 0x0, 0x0,
-    0x0, 0x0, 0xff, 0xff, 0xf4, 0x0, 0x0, 0x0,
-    0x0, 0xf, 0x2, 0xd0, 0x3f, 0xff, 0xff, 0xc0,
-    0x3c, 0xb, 0x40, 0xfa, 0xaa, 0xaf, 0x0, 0xf0,
-    0x2d, 0x3, 0xc0, 0x0, 0x3c, 0x3, 0xc0, 0xb4,
-    0xf, 0xaa, 0xaa, 0xf0, 0xf, 0x2, 0xc0, 0x3f,
-    0xff, 0xff, 0xc0, 0x38, 0xb, 0x0, 0xf0, 0x0,
-    0xf, 0x1, 0xe0, 0x2c, 0x3, 0xc0, 0x0, 0x3c,
-    0x7, 0x80, 0xf0, 0xf, 0xff, 0xff, 0xf0, 0x2d,
-    0x3, 0xc0, 0x3e, 0xaa, 0xab, 0xc0, 0xb4, 0xf,
-    0x0, 0xf0, 0x0, 0xf, 0x3, 0xc0, 0x3c, 0x3,
-    0xff, 0xff, 0xfc, 0xf, 0x0, 0xf0, 0xa, 0xaa,
-    0xaa, 0xa0, 0xb8, 0x3, 0xc0, 0x0, 0x20, 0x50,
-    0x3, 0xd0, 0xf, 0x0, 0x7, 0xd3, 0xf0, 0x1f,
-    0x0, 0x3c, 0x1, 0xfe, 0x7, 0xf8, 0xf4, 0x2,
-    0xf0, 0x2f, 0xc0, 0x1, 0xf7, 0xc2, 0xff, 0x43,
-    0xf4, 0x0, 0x0, 0x7d, 0x7, 0xf4, 0x6, 0x0,
-    0x0, 0x1, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xb8, 0x0, 0x3d, 0x0, 0x0, 0x0, 0x0,
+    0xb8, 0x0, 0x3e, 0x0, 0x0, 0x3f, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xf8, 0x3f, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xfc, 0x0, 0x0, 0xb4, 0x0, 0x3d,
+    0x0, 0x0, 0x0, 0x6a, 0xaa, 0xaa, 0xaa, 0xa9,
+    0x0, 0x0, 0xbf, 0xff, 0xff, 0xff, 0xfd, 0x0,
+    0x0, 0xb8, 0x0, 0x0, 0x0, 0x3d, 0x0, 0x0,
+    0xbd, 0x55, 0x55, 0x55, 0x7d, 0x0, 0x0, 0xbf,
+    0xff, 0xff, 0xff, 0xfd, 0x0, 0x0, 0xb8, 0x0,
+    0x0, 0x0, 0x3d, 0x0, 0x0, 0xb8, 0x0, 0x0,
+    0x0, 0x3d, 0x0, 0x0, 0xbf, 0xff, 0xff, 0xff,
+    0xfd, 0x0, 0x0, 0x6a, 0xaf, 0xea, 0xaa, 0xa9,
+    0x0, 0x0, 0x0, 0x1f, 0x0, 0x0, 0x0, 0x0,
+    0x2a, 0xaa, 0xbf, 0xaa, 0xaa, 0xaa, 0xa4, 0x3f,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x0, 0x7,
+    0xf0, 0x0, 0x1f, 0x80, 0x0, 0x0, 0x1f, 0xc2,
+    0xe0, 0x7, 0xe0, 0x0, 0x0, 0xff, 0x2, 0xd0,
+    0x1, 0xfe, 0x0, 0xb, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xe4, 0xbf, 0x8a, 0xaf, 0xea, 0xab, 0xd2,
+    0xfd, 0x34, 0x0, 0xf, 0x40, 0x3, 0xc0, 0x2c,
+    0x0, 0x0, 0xbe, 0x0, 0x7, 0xc0, 0x0, 0x0,
+    0x6f, 0xf4, 0xb, 0xff, 0xc0, 0x0, 0x3, 0xfe,
+    0x40, 0x7, 0xfe, 0x0, 0x0, 0x2, 0x90, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
     /* U+52E4 "勤" */
@@ -13902,6 +14847,30 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x3f, 0xf4, 0x0, 0x0, 0x1, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+52F9 "勹" */
+    0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x7d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0xf, 0x40, 0x0, 0x0,
+    0x0, 0x0, 0xf, 0xc0, 0x0, 0x0, 0x0, 0x0,
+    0x7, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x3, 0xff,
+    0xff, 0xff, 0xff, 0xf8, 0x2, 0xf9, 0x55, 0x55,
+    0x55, 0x7e, 0x1, 0xf8, 0x0, 0x0, 0x0, 0xf,
+    0x80, 0xfc, 0x0, 0x0, 0x0, 0x3, 0xe0, 0xbd,
+    0x0, 0x0, 0x0, 0x0, 0xf8, 0xbe, 0x0, 0x0,
+    0x0, 0x0, 0x3d, 0x7f, 0x0, 0x0, 0x0, 0x0,
+    0xf, 0x47, 0x0, 0x0, 0x0, 0x0, 0x3, 0xd0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0xf4, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x3d, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xf, 0x40, 0x0, 0x0, 0x0, 0x0, 0x7,
+    0xc0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xf0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x7c, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x1f, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x7, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x2, 0xf0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0xfc, 0x0, 0x0,
+    0x0, 0x1, 0x56, 0xfe, 0x0, 0x0, 0x0, 0x1,
+    0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0x3f, 0xf9,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+52FA "勺" */
     0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x7d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f, 0x0,
@@ -14157,6 +15126,26 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xf8, 0x0, 0x0, 0x0, 0x0, 0x7, 0xff, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x2a, 0x40,
 
+    /* U+5315 "匕" */
+    0x3c, 0x0, 0x0, 0x0, 0x0, 0x3, 0xd0, 0x0,
+    0x0, 0x0, 0x0, 0x3d, 0x0, 0x0, 0x0, 0x0,
+    0x3, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x3d, 0x0,
+    0x0, 0x0, 0xf, 0x3, 0xd0, 0x0, 0x0, 0xb,
+    0xf4, 0x3d, 0x0, 0x0, 0xb, 0xfe, 0x3, 0xd0,
+    0x0, 0xb, 0xfe, 0x0, 0x3d, 0x0, 0xb, 0xfe,
+    0x0, 0x3, 0xd0, 0x1b, 0xfe, 0x0, 0x0, 0x3d,
+    0x2f, 0xfe, 0x0, 0x0, 0x3, 0xff, 0xfd, 0x0,
+    0x0, 0x0, 0x3f, 0xf9, 0x0, 0x0, 0x0, 0x3,
+    0xf8, 0x0, 0x0, 0x0, 0x0, 0x3d, 0x0, 0x0,
+    0x0, 0x0, 0x3, 0xd0, 0x0, 0x0, 0x0, 0x0,
+    0x3d, 0x0, 0x0, 0x0, 0x0, 0x3, 0xd0, 0x0,
+    0x0, 0x0, 0x10, 0x3d, 0x0, 0x0, 0x0, 0x3,
+    0xe3, 0xd0, 0x0, 0x0, 0x0, 0x3e, 0x3d, 0x0,
+    0x0, 0x0, 0x3, 0xd3, 0xd0, 0x0, 0x0, 0x0,
+    0x7c, 0x3f, 0x0, 0x0, 0x0, 0x1f, 0xc2, 0xff,
+    0xff, 0xff, 0xff, 0xf8, 0xb, 0xff, 0xff, 0xff,
+    0xff, 0x0, 0x5, 0x55, 0x55, 0x55, 0x0,
+
     /* U+5316 "化" */
     0x0, 0x0, 0x24, 0x7, 0xc0, 0x0, 0x0, 0x0,
     0x0, 0xbc, 0x7, 0xc0, 0x0, 0x0, 0x0, 0x0,
@@ -14234,6 +15223,49 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x6f, 0xff, 0xff, 0xff, 0xfd, 0x14, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+531A "匚" */
+    0x15, 0x55, 0x55, 0x55, 0x55, 0x54, 0x3f, 0xff,
+    0xff, 0xff, 0xff, 0xfd, 0x3f, 0xff, 0xff, 0xff,
+    0xff, 0xfd, 0x3c, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x3c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x3c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x3c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x3c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x3c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x3e, 0x55, 0x55, 0x55,
+    0x55, 0x55, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfe,
+    0x3f, 0xff, 0xff, 0xff, 0xff, 0xfe,
+
+    /* U+531D "匝" */
+    0x15, 0x55, 0x55, 0x55, 0x55, 0x55, 0x1f, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xc7, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xf1, 0xf0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x7c, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x1f,
+    0x0, 0x0, 0xf, 0x0, 0x0, 0x7, 0xc0, 0x0,
+    0x7, 0xc0, 0x0, 0x1, 0xf0, 0x3f, 0xff, 0xff,
+    0xff, 0xc0, 0x7c, 0xf, 0xff, 0xff, 0xff, 0xf0,
+    0x1f, 0x3, 0xc0, 0xf, 0x0, 0x7c, 0x7, 0xc0,
+    0xf0, 0x3, 0xc0, 0x1f, 0x1, 0xf0, 0x3c, 0x0,
+    0xf0, 0x7, 0xc0, 0x7c, 0xf, 0x0, 0x3c, 0x1,
+    0xf0, 0x1f, 0x3, 0xc0, 0xf, 0x0, 0x7c, 0x7,
+    0xc0, 0xf0, 0x3, 0xc0, 0x1f, 0x1, 0xf0, 0x3c,
+    0x0, 0xf0, 0x7, 0xc0, 0x7c, 0xf, 0x0, 0x3c,
+    0x2, 0xf0, 0x1f, 0x3, 0xc0, 0xf, 0xf, 0xf8,
+    0x7, 0xc0, 0xf0, 0x3, 0xc2, 0xf8, 0x1, 0xf0,
+    0x0, 0x0, 0xf0, 0x0, 0x0, 0x7c, 0x0, 0x0,
+    0x3c, 0x0, 0x0, 0x1f, 0x0, 0x0, 0x5, 0x0,
+    0x0, 0x7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x15, 0x55,
+    0x55, 0x55, 0x55, 0x55, 0x0,
+
     /* U+5320 "匠" */
     0x55, 0x55, 0x55, 0x55, 0x55, 0x54, 0xff, 0xff,
     0xff, 0xff, 0xff, 0xfd, 0xff, 0xff, 0xff, 0xff,
@@ -14277,6 +15309,73 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x7f, 0xff,
     0xff, 0xff, 0xff, 0xff, 0x0,
 
+    /* U+5323 "匣" */
+    0x15, 0x55, 0x55, 0x55, 0x55, 0x55, 0xf, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xd3, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xf4, 0xf0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x3c, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf,
+    0x2, 0xff, 0xff, 0xff, 0xfc, 0x3, 0xc0, 0xff,
+    0xff, 0xff, 0xff, 0x0, 0xf0, 0x3d, 0x0, 0xf0,
+    0x3, 0xc0, 0x3c, 0xf, 0x40, 0x3c, 0x0, 0xf0,
+    0xf, 0x3, 0xd0, 0xf, 0x0, 0x3c, 0x3, 0xc0,
+    0xfe, 0xab, 0xfa, 0xaf, 0x0, 0xf0, 0x3f, 0xff,
+    0xff, 0xff, 0xc0, 0x3c, 0xf, 0x40, 0x3c, 0x0,
+    0xf0, 0xf, 0x3, 0xd0, 0xf, 0x0, 0x3c, 0x3,
+    0xc0, 0xf4, 0x3, 0xc0, 0xf, 0x0, 0xf0, 0x3f,
+    0xff, 0xff, 0xff, 0xc0, 0x3c, 0xf, 0xff, 0xff,
+    0xff, 0xf0, 0xf, 0x0, 0x0, 0xf, 0x0, 0x0,
+    0x3, 0xc0, 0x0, 0x3, 0xc0, 0x0, 0x0, 0xf0,
+    0x0, 0x0, 0xf0, 0x0, 0x0, 0x3c, 0x0, 0x0,
+    0x3c, 0x0, 0x0, 0xf, 0x0, 0x0, 0xf, 0x0,
+    0x0, 0x3, 0xd5, 0x55, 0x55, 0x55, 0x55, 0x50,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xc0,
+
+    /* U+5326 "匦" */
+    0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x83, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xf8, 0x3c, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x3, 0xc0, 0xe, 0x0, 0x1c,
+    0x0, 0x0, 0x3c, 0x2, 0xd0, 0x1, 0xd0, 0x0,
+    0x3, 0xcb, 0xff, 0xfc, 0x2d, 0x0, 0x0, 0x3c,
+    0xff, 0xff, 0xc2, 0xd0, 0x0, 0x3, 0xc0, 0xb0,
+    0x3, 0xff, 0xfc, 0x0, 0x3c, 0xf, 0x24, 0x3f,
+    0xff, 0xc0, 0x3, 0xc1, 0xd3, 0x80, 0x2d, 0x3c,
+    0x0, 0x3c, 0x3c, 0x38, 0x2, 0xc3, 0xc0, 0x3,
+    0xc7, 0xd7, 0xd4, 0x2c, 0x3c, 0x0, 0x3c, 0x7f,
+    0xff, 0xd2, 0xc3, 0xc0, 0x3, 0xc1, 0x5b, 0xd4,
+    0x3c, 0x3c, 0x0, 0x3c, 0x0, 0x38, 0x3, 0xc3,
+    0xc0, 0x3, 0xc0, 0x3, 0x99, 0x3c, 0x3c, 0x0,
+    0x3c, 0xaf, 0xff, 0xe7, 0x83, 0xc2, 0xc3, 0xcf,
+    0xff, 0xd0, 0xf0, 0x3c, 0x2c, 0x3c, 0x40, 0x38,
+    0x1f, 0x3, 0xc3, 0xc3, 0xc0, 0x3, 0x83, 0xd0,
+    0x2f, 0xf8, 0x3c, 0x0, 0x38, 0x78, 0x1, 0xff,
+    0x43, 0xc0, 0x3, 0x81, 0x0, 0x0, 0x0, 0x3c,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xfc, 0x3f, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xc0,
+
+    /* U+532A "匪" */
+    0x15, 0x55, 0x55, 0x55, 0x55, 0x54, 0xf, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xc3, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xf0, 0xf0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x3c, 0x0, 0xf, 0x3, 0xc0, 0x0, 0xf,
+    0x0, 0x3, 0xc0, 0xf0, 0x0, 0x3, 0xc1, 0x55,
+    0xf0, 0x3d, 0x55, 0x40, 0xf2, 0xff, 0xfc, 0xf,
+    0xff, 0xf0, 0x3c, 0x6a, 0xaf, 0x3, 0xea, 0xa8,
+    0xf, 0x0, 0x3, 0xc0, 0xf0, 0x0, 0x3, 0xc0,
+    0x0, 0xf0, 0x3c, 0x0, 0x0, 0xf0, 0x55, 0xbc,
+    0xf, 0x95, 0x50, 0x3c, 0x3f, 0xff, 0x3, 0xff,
+    0xfc, 0xf, 0x5, 0x5b, 0xc0, 0xf9, 0x55, 0x3,
+    0xc0, 0x0, 0xf0, 0x3c, 0x0, 0x0, 0xf0, 0x0,
+    0x3c, 0xf, 0x0, 0x0, 0x3c, 0x55, 0x6f, 0x3,
+    0xe5, 0x55, 0xf, 0x3f, 0xff, 0xc0, 0xff, 0xff,
+    0x83, 0xc5, 0x56, 0xf0, 0x3e, 0x55, 0x50, 0xf0,
+    0x0, 0x3c, 0xf, 0x0, 0x0, 0x3c, 0x0, 0xf,
+    0x3, 0xc0, 0x0, 0xf, 0x0, 0x3, 0xc0, 0xf0,
+    0x0, 0x3, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x3f, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0x40,
+
     /* U+532E "匮" */
     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xff,
     0xff, 0xff, 0xff, 0xff, 0xcf, 0x0, 0x0, 0x5,
@@ -14299,28 +15398,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff,
     0xff, 0xff, 0xff, 0xff, 0x0,
 
-    /* U+532F "匯" */
-    0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x4f, 0xff,
-    0xff, 0xff, 0xff, 0xff, 0xe3, 0xc0, 0x0, 0x4,
-    0x0, 0x0, 0x0, 0xf0, 0x90, 0x3, 0xc1, 0xd0,
-    0x0, 0x3c, 0x7e, 0x1, 0xe0, 0x78, 0x0, 0xf,
-    0x7, 0xe0, 0xf0, 0xf, 0x0, 0x3, 0xc0, 0x3e,
-    0x3f, 0xff, 0xff, 0xd0, 0xf0, 0x2, 0x2f, 0xff,
-    0xff, 0xf4, 0x3c, 0x80, 0xf, 0x80, 0x3c, 0x0,
-    0xf, 0xbd, 0xb, 0xe0, 0xf, 0x0, 0x3, 0xcb,
-    0xe3, 0xfe, 0xab, 0xea, 0x80, 0xf0, 0x7f, 0xef,
-    0xff, 0xff, 0xf0, 0x3c, 0x1, 0xb3, 0x80, 0x3c,
-    0x0, 0xf, 0x0, 0x0, 0xe0, 0xf, 0x0, 0x3,
-    0xc0, 0x34, 0x38, 0x3, 0xc0, 0x0, 0xf0, 0x2d,
-    0xf, 0xff, 0xff, 0xf0, 0x3c, 0xf, 0x3, 0xea,
-    0xbe, 0xa8, 0xf, 0x7, 0x80, 0xe0, 0xf, 0x0,
-    0x3, 0xc3, 0xd0, 0x38, 0x3, 0xc0, 0x0, 0xf0,
-    0xf0, 0xf, 0xaa, 0xfa, 0xa8, 0x3c, 0xb4, 0x3,
-    0xff, 0xff, 0xff, 0x4f, 0x4, 0x0, 0x0, 0x0,
-    0x0, 0x3, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff,
-    0xff, 0xff, 0xff, 0xff, 0x80,
-
     /* U+5339 "匹" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xff,
     0xff, 0xff, 0xff, 0xff, 0xd3, 0xff, 0xff, 0xff,
@@ -14853,6 +15930,22 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x3f, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+535C "卜" */
+    0x0, 0x0, 0x0, 0x0, 0xf4, 0x0, 0x0, 0x0,
+    0xf4, 0x0, 0x0, 0x0, 0xf4, 0x0, 0x0, 0x0,
+    0xf4, 0x0, 0x0, 0x0, 0xf4, 0x0, 0x0, 0x0,
+    0xf4, 0x0, 0x0, 0x0, 0xf4, 0x0, 0x0, 0x0,
+    0xf5, 0x0, 0x0, 0x0, 0xfb, 0xd0, 0x0, 0x0,
+    0xff, 0xf8, 0x0, 0x0, 0xf4, 0xff, 0x40, 0x0,
+    0xf4, 0x1f, 0xe0, 0x0, 0xf4, 0x3, 0xfd, 0x0,
+    0xf4, 0x0, 0xbf, 0x80, 0xf4, 0x0, 0x1f, 0xf0,
+    0xf4, 0x0, 0x3, 0xfd, 0xf4, 0x0, 0x0, 0xbd,
+    0xf4, 0x0, 0x0, 0x2c, 0xf4, 0x0, 0x0, 0x0,
+    0xf4, 0x0, 0x0, 0x0, 0xf4, 0x0, 0x0, 0x0,
+    0xf4, 0x0, 0x0, 0x0, 0xf4, 0x0, 0x0, 0x0,
+    0xf4, 0x0, 0x0, 0x0, 0xf4, 0x0, 0x0, 0x0,
+    0xf4, 0x0, 0x0, 0x0, 0xf4, 0x0, 0x0, 0x0,
+
     /* U+535E "卞" */
     0x0, 0x0, 0x0, 0x60, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x3, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -14979,6 +16072,30 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0x0, 0x0, 0x14, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+5363 "卣" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x7, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xf0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x7f, 0xff, 0xff,
+    0xfe, 0x0, 0x0, 0x1f, 0xff, 0xff, 0xff, 0x80,
+    0x0, 0x7, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x1,
+    0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7c, 0x0,
+    0x0, 0x0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xf4,
+    0xf, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x3, 0xd0,
+    0x0, 0x0, 0x0, 0xf, 0x40, 0xf4, 0x0, 0x0,
+    0x0, 0x3, 0xd0, 0x3d, 0x0, 0x0, 0x0, 0x0,
+    0xf4, 0xf, 0xff, 0xff, 0xff, 0xc0, 0x3d, 0x3,
+    0xff, 0xff, 0xff, 0xf4, 0xf, 0x40, 0xf5, 0x55,
+    0x55, 0x7d, 0x3, 0xd0, 0x3d, 0x0, 0x0, 0xf,
+    0x40, 0xf4, 0xf, 0x40, 0x0, 0x3, 0xd0, 0x3d,
+    0x3, 0xd0, 0x0, 0x0, 0xf4, 0xf, 0x40, 0xff,
+    0xff, 0xff, 0xfd, 0x3, 0xd0, 0x3f, 0xff, 0xff,
+    0xff, 0x40, 0xf4, 0xf, 0x40, 0x0, 0x0, 0x0,
+    0x3d, 0x3, 0xd0, 0x0, 0x0, 0x0, 0xf, 0x40,
+    0xf4, 0x0, 0x0, 0x0, 0x3, 0xd0, 0x3f, 0xff,
+    0xff, 0xff, 0xff, 0xf4, 0xf, 0xff, 0xff, 0xff,
+    0xff, 0xfd, 0x3, 0xd0, 0x0, 0x0, 0x0, 0xf,
+    0x40, 0xf4, 0x0, 0x0, 0x0, 0x3, 0xd0,
+
     /* U+5364 "卤" */
     0x0, 0x0, 0xf, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x7, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xff,
@@ -15055,6 +16172,20 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0xff, 0xff, 0xff, 0xe1, 0xf0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x7, 0xc0, 0x0, 0x0,
 
+    /* U+5369 "卩" */
+    0x0, 0x0, 0x0, 0xb, 0xff, 0xff, 0xff, 0xbf,
+    0xff, 0xff, 0xfb, 0xd5, 0x55, 0x6f, 0xbc, 0x0,
+    0x2, 0xfb, 0xc0, 0x0, 0x2f, 0xbc, 0x0, 0x2,
+    0xfb, 0xc0, 0x0, 0x2f, 0xbc, 0x0, 0x2, 0xfb,
+    0xc0, 0x0, 0x2f, 0xbc, 0x0, 0x2, 0xfb, 0xc0,
+    0x0, 0x2f, 0xbc, 0x0, 0x2, 0xfb, 0xc0, 0x0,
+    0x2f, 0xbc, 0x0, 0x2, 0xfb, 0xc0, 0x0, 0x2f,
+    0xbc, 0x0, 0x3, 0xfb, 0xc0, 0x5, 0xff, 0xbc,
+    0x7, 0xff, 0xdb, 0xc0, 0x3f, 0xf4, 0xbc, 0x1,
+    0x40, 0xb, 0xc0, 0x0, 0x0, 0xbc, 0x0, 0x0,
+    0xb, 0xc0, 0x0, 0x0, 0xbc, 0x0, 0x0, 0xb,
+    0xc0, 0x0, 0x0,
+
     /* U+536B "卫" */
     0xb, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x2f,
     0xff, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x55, 0x56,
@@ -15329,31 +16460,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xff, 0xff, 0xff, 0x90, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
-    /* U+537B "卻" */
-    0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x3d, 0x3e, 0x0, 0x0, 0x0, 0x0, 0x2, 0xf0,
-    0x7e, 0x0, 0xff, 0xff, 0x40, 0x1f, 0x0, 0x7e,
-    0x3, 0xff, 0xfd, 0x1, 0xf4, 0x0, 0x7e, 0xf,
-    0x55, 0xf4, 0x1f, 0x80, 0x0, 0xbd, 0x3c, 0x3,
-    0xd0, 0xf8, 0xb, 0x40, 0xa0, 0xf0, 0xf, 0x42,
-    0x80, 0x3d, 0x0, 0x3, 0xc0, 0x3d, 0x0, 0x3,
-    0xfc, 0x0, 0xf, 0x0, 0xf4, 0x0, 0x2f, 0xfd,
-    0x0, 0x3c, 0x3, 0xd0, 0x1, 0xf4, 0xbd, 0x0,
-    0xf0, 0xf, 0x40, 0x1f, 0x80, 0xbd, 0x3, 0xc0,
-    0x3d, 0x1, 0xf8, 0x0, 0xbe, 0xf, 0x0, 0xf4,
-    0x1f, 0x80, 0x0, 0x7c, 0x3c, 0x3, 0xd2, 0xf8,
-    0x0, 0x0, 0xa0, 0xf0, 0xf, 0x4f, 0x7f, 0xff,
-    0xfc, 0x3, 0xc0, 0x3d, 0x14, 0xff, 0xff, 0xf0,
-    0xf, 0x0, 0xf4, 0x3, 0xd0, 0x3, 0xc0, 0x3c,
-    0x3, 0xd0, 0xf, 0x0, 0xf, 0x0, 0xf0, 0xf,
-    0x40, 0x3c, 0x0, 0x3c, 0x3, 0xc0, 0x3d, 0x0,
-    0xf0, 0x0, 0xf0, 0xf, 0x3f, 0xf0, 0x3, 0xc0,
-    0x3, 0xc0, 0x3c, 0xbf, 0x80, 0xf, 0x0, 0xf,
-    0x0, 0xf1, 0x50, 0x0, 0x3f, 0xff, 0xfc, 0x3,
-    0xc0, 0x0, 0x0, 0xff, 0xff, 0xf0, 0xf, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x3c, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0xf0, 0x0, 0x0,
-
     /* U+537F "卿" */
     0x0, 0x1, 0x40, 0x0, 0x0, 0x0, 0x0, 0x2,
     0xfc, 0xaa, 0xa8, 0x0, 0x0, 0x7, 0xfe, 0xf,
@@ -15379,6 +16485,30 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x2d, 0x0, 0x0, 0x0, 0x3, 0xc0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+5382 "厂" */
+    0x0, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xf4, 0x1,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xd0, 0x7, 0xd5,
+    0x55, 0x55, 0x55, 0x55, 0x0, 0x1f, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x7c, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x1, 0xf0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x7, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x1f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7c,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xf0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0xb, 0xc0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x2f, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xbc, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x2, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf,
+    0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3d, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0xf0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x7, 0xc0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x3e, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xf4, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb,
+    0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3e, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x3, 0xf0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x1f, 0x80, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+5384 "厄" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x7f,
@@ -15405,6 +16535,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+5385 "厅" */
+    0x0, 0x55, 0x55, 0x55, 0x55, 0x55, 0x50, 0x1,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x1, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xf8, 0x1, 0xf0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x1, 0xf0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x1, 0xf0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x1, 0xf0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x1, 0xf0, 0x55, 0x55, 0x55, 0x55, 0x54,
+    0x1, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x1,
+    0xf3, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x1, 0xf0,
+    0x0, 0x0, 0x7c, 0x0, 0x0, 0x1, 0xf0, 0x0,
+    0x0, 0x7c, 0x0, 0x0, 0x1, 0xf0, 0x0, 0x0,
+    0x7c, 0x0, 0x0, 0x1, 0xf0, 0x0, 0x0, 0x7c,
+    0x0, 0x0, 0x1, 0xf0, 0x0, 0x0, 0x7c, 0x0,
+    0x0, 0x2, 0xf0, 0x0, 0x0, 0x7c, 0x0, 0x0,
+    0x2, 0xe0, 0x0, 0x0, 0x7c, 0x0, 0x0, 0x3,
+    0xe0, 0x0, 0x0, 0x7c, 0x0, 0x0, 0x3, 0xd0,
+    0x0, 0x0, 0x7c, 0x0, 0x0, 0x7, 0xc0, 0x0,
+    0x0, 0x7c, 0x0, 0x0, 0xb, 0xc0, 0x0, 0x0,
+    0x7c, 0x0, 0x0, 0xf, 0x80, 0x0, 0x0, 0x7c,
+    0x0, 0x0, 0x1f, 0x40, 0x0, 0x0, 0xbc, 0x0,
+    0x0, 0x3f, 0x0, 0x0, 0xbf, 0xfc, 0x0, 0x0,
+    0x7d, 0x0, 0x0, 0xff, 0xf4, 0x0, 0x0, 0x7c,
+    0x0, 0x0, 0x69, 0x40, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+5386 "历" */
     0x0, 0x55, 0x55, 0x55, 0x55, 0x55, 0x50, 0x3,
     0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0xf, 0xff,
@@ -15665,31 +16821,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x25, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0,
 
-    /* U+53A1 "厡" */
-    0x0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0,
-    0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0, 0xf4,
-    0x0, 0x2, 0x80, 0x0, 0x0, 0x0, 0xf4, 0x0,
-    0x3, 0xc0, 0x0, 0x0, 0x0, 0xf4, 0x0, 0x3,
-    0x80, 0x0, 0x0, 0x0, 0xf4, 0x2f, 0xff, 0xff,
-    0xff, 0xc0, 0x0, 0xf4, 0x2f, 0xaa, 0xaa, 0xaf,
-    0xc0, 0x0, 0xf4, 0x2d, 0x0, 0x0, 0x3, 0xc0,
-    0x0, 0xf4, 0x2d, 0x0, 0x0, 0x3, 0xc0, 0x0,
-    0xf4, 0x2f, 0xff, 0xff, 0xff, 0xc0, 0x0, 0xf4,
-    0x2f, 0xaa, 0xaa, 0xab, 0xc0, 0x0, 0xf0, 0x2d,
-    0x0, 0x0, 0x3, 0xc0, 0x0, 0xf0, 0x2d, 0x0,
-    0x0, 0x3, 0xc0, 0x0, 0xf0, 0x2f, 0xff, 0xff,
-    0xff, 0xc0, 0x0, 0xf0, 0x1a, 0xaa, 0xfa, 0xaa,
-    0x80, 0x0, 0xf0, 0x0, 0x0, 0xf0, 0x0, 0x0,
-    0x1, 0xf0, 0x0, 0x0, 0xf0, 0x0, 0xe0, 0x2,
-    0xe1, 0xff, 0xfc, 0xf8, 0xb, 0xf0, 0x3, 0xe1,
-    0xaa, 0xfc, 0xfe, 0x7f, 0x40, 0x3, 0xd0, 0x0,
-    0xf4, 0xff, 0xf4, 0x0, 0x7, 0xc0, 0x7, 0xd0,
-    0xf2, 0xf8, 0x0, 0xf, 0x80, 0x7f, 0x40, 0xf0,
-    0x7f, 0x80, 0x1f, 0x7, 0xf8, 0x0, 0xf0, 0xb,
-    0xfd, 0x3e, 0xb, 0xd0, 0x2f, 0xf0, 0x0, 0xbd,
-    0x7c, 0x1, 0x0, 0x2f, 0xd0, 0x0, 0x4, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
     /* U+53A2 "厢" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0xff,
@@ -15716,6 +16847,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0xf, 0x0, 0xf4, 0x0, 0xf0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+53A3 "厣" */
+    0x0, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0,
+    0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0xf,
+    0x40, 0x0, 0x0, 0xa, 0x0, 0x0, 0x3, 0xd0,
+    0x0, 0xb, 0x43, 0xe0, 0x0, 0x0, 0xf4, 0x0,
+    0x3, 0xd0, 0x3d, 0x0, 0x0, 0x3d, 0x6a, 0xaa,
+    0xfa, 0xab, 0xaa, 0x0, 0xf, 0x6f, 0xff, 0xff,
+    0xff, 0xff, 0xc0, 0x3, 0xd0, 0x0, 0x7d, 0xf8,
+    0x0, 0x0, 0x0, 0xf4, 0x0, 0x3e, 0xf, 0x80,
+    0x0, 0x0, 0x3d, 0x0, 0x7f, 0x1, 0xfd, 0x0,
+    0x0, 0xf, 0x41, 0xfe, 0x0, 0xf, 0xf4, 0x0,
+    0x3, 0xd7, 0xfd, 0x0, 0x0, 0x7f, 0xf8, 0x0,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x3d,
+    0x9f, 0xaa, 0xbe, 0xaa, 0xf1, 0x40, 0xf, 0x3,
+    0xc0, 0xf, 0x0, 0x3c, 0x0, 0x3, 0xc0, 0xf0,
+    0x3, 0xc0, 0xf, 0x0, 0x0, 0xf0, 0x3f, 0xff,
+    0xff, 0xff, 0xc0, 0x0, 0x7c, 0xf, 0xaa, 0xbe,
+    0xaa, 0xf0, 0x0, 0x2e, 0x3, 0xc0, 0xf, 0x0,
+    0x3c, 0x0, 0xf, 0x40, 0xf0, 0x3, 0xc0, 0xf,
+    0x0, 0x3, 0xc0, 0x3f, 0xff, 0xff, 0xff, 0xc0,
+    0x2, 0xf0, 0xa, 0xaa, 0xbe, 0xaa, 0xa0, 0x0,
+    0xf4, 0x0, 0x0, 0xf, 0x0, 0x0, 0x0, 0x7c,
+    0x0, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x3e, 0x0,
+    0x0, 0x0, 0xf0, 0x0, 0x0, 0x7, 0x0, 0x0,
+    0x0, 0x3c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+53A5 "厥" */
     0x0, 0x55, 0x55, 0x55, 0x55, 0x55, 0x54, 0x0,
     0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0xf,
@@ -15795,6 +16953,31 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0x1, 0xe9, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+53A9 "厩" */
+    0x0, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x0,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0xf5,
+    0x55, 0x55, 0x55, 0x55, 0x54, 0x0, 0xf0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0xf0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0xf0, 0xbf, 0xfe, 0x3f,
+    0xff, 0xfc, 0x0, 0xf0, 0xba, 0xae, 0x3f, 0xff,
+    0xfc, 0x0, 0xf0, 0xb0, 0xe, 0x0, 0x1d, 0x0,
+    0x0, 0xf0, 0xb0, 0xe, 0x1d, 0x1d, 0x0, 0x0,
+    0xf0, 0xba, 0xae, 0x1d, 0x2c, 0x0, 0x0, 0xf0,
+    0xbf, 0xfe, 0x2c, 0x2c, 0x0, 0x0, 0xf0, 0xb0,
+    0xe, 0x2c, 0x2c, 0x0, 0x0, 0xf0, 0xb0, 0xe,
+    0x3c, 0x3c, 0x0, 0x0, 0xf0, 0xb0, 0xe, 0x3f,
+    0xff, 0xfd, 0x0, 0xf0, 0xba, 0xae, 0x2f, 0xff,
+    0xfc, 0x0, 0xf0, 0xbf, 0xfe, 0x0, 0x74, 0x0,
+    0x1, 0xf0, 0xb0, 0x0, 0x0, 0xf8, 0x0, 0x1,
+    0xe0, 0xb0, 0x38, 0x0, 0xfc, 0x0, 0x2, 0xd0,
+    0xb0, 0x2c, 0x2, 0xfc, 0x0, 0x3, 0xd0, 0xb0,
+    0xe, 0x3, 0xec, 0x0, 0x7, 0xc0, 0xb0, 0x7f,
+    0xf, 0x6c, 0xe, 0xb, 0x80, 0xbb, 0xfb, 0xae,
+    0x2c, 0xf, 0xf, 0x40, 0xff, 0x82, 0xbc, 0x2d,
+    0xe, 0x2f, 0x0, 0xf8, 0x2, 0xf0, 0x1f, 0xfe,
+    0x3d, 0x0, 0x40, 0x3, 0xc0, 0xf, 0xfc, 0x8,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+53AE "厮" */
     0x0, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x0,
     0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0xf,
@@ -15822,6 +17005,30 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x1d, 0x0, 0xb0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+53B6 "厶" */
+    0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xbc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x1f, 0x40, 0x0,
+    0x0, 0x0, 0x0, 0xb, 0xc0, 0x0, 0x0, 0x0,
+    0x0, 0x3, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x1,
+    0xf4, 0x0, 0x0, 0x0, 0x0, 0x0, 0xfc, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x3e, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x2f, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xf, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x7, 0xd0,
+    0x7, 0xc0, 0x0, 0x0, 0x3, 0xf0, 0x1, 0xf8,
+    0x0, 0x0, 0x1, 0xf4, 0x0, 0x2f, 0x0, 0x0,
+    0x0, 0xfc, 0x0, 0x3, 0xe0, 0x0, 0x0, 0x7d,
+    0x0, 0x0, 0xbc, 0x0, 0x0, 0x2f, 0x0, 0x0,
+    0xf, 0x80, 0x0, 0xf, 0x80, 0x0, 0x2, 0xf0,
+    0x0, 0xf, 0xc0, 0x0, 0x0, 0x3e, 0x0, 0x7,
+    0xd0, 0x0, 0x0, 0xb, 0xc0, 0x3, 0xf0, 0x0,
+    0x0, 0x1, 0xf8, 0x2, 0xf4, 0x15, 0x5a, 0xab,
+    0xff, 0x3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0,
+    0xff, 0xff, 0xff, 0xfe, 0xaa, 0xfc, 0x29, 0x50,
+    0x0, 0x0, 0x0, 0x1f, 0x40, 0x0, 0x0, 0x0,
+    0x0, 0x3, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x40,
+
     /* U+53BB "去" */
     0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x1, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -15849,30 +17056,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0x0, 0xa0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
-    /* U+53BE "厾" */
-    0xbf, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x2, 0xff,
-    0xff, 0xff, 0xff, 0xff, 0xc0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x1f, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x7c, 0x0, 0x0, 0x0, 0xb4, 0x0, 0x1,
-    0xf0, 0x0, 0x0, 0x2, 0xd0, 0x0, 0x7, 0xc0,
-    0x0, 0x0, 0xb, 0x40, 0x0, 0x1f, 0x0, 0x7,
-    0xff, 0xff, 0xff, 0xf0, 0x7c, 0x0, 0x1f, 0xff,
-    0xff, 0xff, 0xc1, 0xf0, 0x0, 0x0, 0x2, 0xd0,
-    0x0, 0x7, 0xc0, 0x0, 0x0, 0xb, 0x40, 0x0,
-    0x1f, 0x0, 0x0, 0x0, 0x2d, 0x0, 0x0, 0x7c,
-    0x0, 0x0, 0x0, 0xb4, 0x0, 0x1, 0xf0, 0x1,
-    0x55, 0x56, 0xe5, 0x55, 0x47, 0xc0, 0xf, 0xff,
-    0xff, 0xff, 0xff, 0x5f, 0x0, 0x2f, 0xff, 0xff,
-    0xff, 0xfd, 0x7c, 0x0, 0x0, 0x3, 0xd0, 0x0,
-    0x0, 0xf0, 0x0, 0x0, 0x2e, 0x2, 0x40, 0x3,
-    0xc0, 0x0, 0x1, 0xf0, 0x1f, 0x40, 0xf, 0x0,
-    0x0, 0xf, 0x40, 0x2f, 0x0, 0x3c, 0x1d, 0x0,
-    0xf4, 0x0, 0x3f, 0x0, 0xf0, 0xb4, 0xf, 0x80,
-    0x0, 0x3f, 0x3, 0xc3, 0xc1, 0xff, 0xff, 0xff,
-    0xfe, 0xb, 0x4f, 0xb, 0xff, 0xff, 0xff, 0xfd,
-    0x1f, 0xf8, 0x1e, 0x95, 0x0, 0x0, 0xf4, 0x3f,
-    0xc0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x7d, 0x0,
-
     /* U+53BF "县" */
     0x0, 0x7f, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x1,
     0xff, 0xff, 0xff, 0xff, 0xf0, 0x0, 0x7, 0xc0,
@@ -16330,6 +17513,30 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xf9, 0x0, 0x0, 0x0, 0x1, 0xbf, 0x80, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+53E0 "叠" */
+    0x0, 0x55, 0x55, 0x55, 0x55, 0x54, 0x0, 0xb,
+    0xff, 0xff, 0xff, 0xff, 0xf8, 0x0, 0x6, 0x50,
+    0x0, 0x1, 0xbf, 0x80, 0x0, 0x1f, 0xfe, 0x95,
+    0xbf, 0x90, 0x0, 0x0, 0x0, 0xbf, 0xff, 0xf9,
+    0x0, 0x0, 0x1b, 0xff, 0xf9, 0x6, 0xbf, 0xf8,
+    0x0, 0x29, 0x40, 0x0, 0x0, 0x1, 0xa0, 0x3,
+    0xff, 0xff, 0xf6, 0xff, 0xff, 0xf4, 0x5, 0x95,
+    0x5b, 0xd5, 0x55, 0x5f, 0xc0, 0x7, 0xe5, 0xb8,
+    0xb, 0x91, 0xf8, 0x0, 0x7, 0xff, 0x80, 0xb,
+    0xff, 0x40, 0x6, 0xbf, 0x5f, 0xe2, 0xfe, 0x5f,
+    0xe4, 0x3e, 0x40, 0x1, 0x8a, 0x40, 0x1, 0xb4,
+    0x2a, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x40, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xfe, 0x3, 0xc0, 0x0,
+    0x0, 0x0, 0x0, 0x78, 0xf, 0x15, 0x55, 0x55,
+    0x55, 0x55, 0xe0, 0x3c, 0xff, 0xff, 0xff, 0xff,
+    0xe7, 0x80, 0x3, 0xc0, 0x0, 0x0, 0x7, 0x80,
+    0x0, 0xf, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0,
+    0x3d, 0x55, 0x55, 0x55, 0xb8, 0x0, 0x0, 0xf0,
+    0x0, 0x0, 0x1, 0xe0, 0x0, 0x3, 0xff, 0xff,
+    0xff, 0xff, 0x80, 0x0, 0xf, 0x55, 0x55, 0x55,
+    0x6e, 0x0, 0x6a, 0xbe, 0xaa, 0xaa, 0xaa, 0xfe,
+    0xa9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
+
     /* U+53E3 "口" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0xff, 0xff,
     0xff, 0xff, 0xfc, 0x7f, 0xff, 0xff, 0xff, 0xff,
@@ -16714,6 +17921,28 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xe0, 0x0, 0x0, 0xb, 0xc0, 0x0, 0x2, 0xe0,
     0x0, 0x0, 0xb, 0xc0,
 
+    /* U+53F5 "叵" */
+    0x15, 0x55, 0x55, 0x55, 0x55, 0x55, 0xf, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xd3, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xf4, 0xf0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x3c, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xc0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0xf0, 0x7, 0xff, 0xff,
+    0xff, 0x0, 0x3c, 0x1, 0xff, 0xff, 0xff, 0xc0,
+    0xf, 0x0, 0x7c, 0x0, 0x1, 0xf0, 0x3, 0xc0,
+    0x1f, 0x0, 0x0, 0x7c, 0x0, 0xf0, 0x7, 0xc0,
+    0x0, 0x1f, 0x0, 0x3c, 0x1, 0xf0, 0x0, 0x7,
+    0xc0, 0xf, 0x0, 0x7c, 0x0, 0x1, 0xf0, 0x3,
+    0xc0, 0x1f, 0x0, 0x0, 0x7c, 0x0, 0xf0, 0x7,
+    0xc0, 0x0, 0x1f, 0x0, 0x3c, 0x1, 0xff, 0xff,
+    0xff, 0xc0, 0xf, 0x0, 0x7f, 0xff, 0xff, 0xf0,
+    0x3, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x3c, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0xf, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x3, 0xd5, 0x55, 0x55, 0x55, 0x55, 0x50,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0x80,
+
     /* U+53F6 "叶" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0x0,
@@ -17202,6 +18431,30 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x7, 0xf9, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0,
 
+    /* U+5412 "吒" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x7, 0xc0, 0x0, 0x0, 0x0,
+    0x1, 0xbf, 0xfd, 0xf, 0xff, 0xf0, 0x6b, 0xff,
+    0xfe, 0x40, 0xff, 0xff, 0x1f, 0xff, 0xe4, 0x0,
+    0xf, 0x0, 0xf0, 0xfa, 0xf0, 0x0, 0x0, 0xf0,
+    0xf, 0x0, 0x1f, 0x0, 0x0, 0xf, 0x0, 0xf0,
+    0x1, 0xf0, 0x0, 0x0, 0xf0, 0xf, 0x0, 0x1f,
+    0x0, 0x0, 0xf, 0x0, 0xf0, 0x1, 0xf0, 0x0,
+    0x0, 0xf0, 0xf, 0x0, 0x1f, 0x0, 0x0, 0xf,
+    0x0, 0xf0, 0x1, 0xf0, 0x6, 0xbc, 0xf0, 0xf,
+    0x0, 0x6f, 0xff, 0xff, 0xcf, 0x0, 0xf7, 0xff,
+    0xff, 0xff, 0xa4, 0xf0, 0xf, 0x3f, 0xff, 0x50,
+    0x0, 0xf, 0x0, 0xf1, 0x1, 0xf0, 0x0, 0x0,
+    0xf0, 0xf, 0x0, 0x1f, 0x0, 0x0, 0xf, 0x0,
+    0xf0, 0x1, 0xf0, 0x0, 0x0, 0xf0, 0xf, 0x0,
+    0x1f, 0x0, 0x0, 0xf, 0x0, 0xf0, 0x1, 0xf0,
+    0x0, 0x74, 0xf5, 0x5f, 0x0, 0x1f, 0x0, 0xb,
+    0x8f, 0xff, 0xf0, 0x1, 0xf0, 0x0, 0xb4, 0xff,
+    0xff, 0x0, 0x1f, 0x0, 0xf, 0x40, 0x0, 0x0,
+    0x1, 0xf4, 0x1, 0xf0, 0x0, 0x0, 0x0, 0xf,
+    0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0x7f, 0xff,
+    0xc0, 0x0, 0x0, 0x0, 0x0, 0x15, 0x40, 0x0,
+
     /* U+5413 "吓" */
     0x55, 0x55, 0x1f, 0xff, 0xff, 0xff, 0xcf, 0xff,
     0xf2, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0x5,
@@ -17245,6 +18498,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xff, 0xff, 0xff, 0xff, 0xf, 0xff, 0xff, 0xff,
     0xff, 0xfc, 0x3c, 0x0, 0x0, 0x0, 0x0, 0xf0,
 
+    /* U+5416 "吖" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x28, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1,
+    0xf4, 0x0, 0x0, 0xf, 0x5, 0x55, 0x52, 0xf4,
+    0x0, 0x0, 0xfc, 0x3f, 0xff, 0xc2, 0xf0, 0x0,
+    0xb, 0xc0, 0xff, 0xff, 0x3, 0xf0, 0x0, 0x7d,
+    0x3, 0xc0, 0x3c, 0x3, 0xe0, 0x3, 0xe0, 0xf,
+    0x0, 0xf0, 0x7, 0xd0, 0x3f, 0x0, 0x3c, 0x3,
+    0xc0, 0xb, 0xc3, 0xf0, 0x0, 0xf0, 0xf, 0x0,
+    0xf, 0x1f, 0x0, 0x3, 0xc0, 0x3c, 0x0, 0x10,
+    0x4, 0x0, 0xf, 0x0, 0xf0, 0x0, 0x1f, 0x0,
+    0x0, 0x3c, 0x3, 0xc0, 0x0, 0x7c, 0x0, 0x0,
+    0xf0, 0xf, 0x0, 0x1, 0xf0, 0x0, 0x3, 0xc0,
+    0x3c, 0x0, 0x7, 0xc0, 0x0, 0xf, 0x0, 0xf0,
+    0x0, 0x1f, 0x0, 0x0, 0x3c, 0x3, 0xc0, 0x0,
+    0x7c, 0x0, 0x0, 0xf0, 0xf, 0x0, 0x1, 0xf0,
+    0x0, 0x3, 0xc0, 0x3c, 0x0, 0x7, 0xc0, 0x0,
+    0xf, 0x0, 0xf0, 0x0, 0x1f, 0x0, 0x0, 0x3c,
+    0x3, 0xc0, 0x0, 0x7c, 0x0, 0x0, 0xf0, 0xf,
+    0x0, 0x1, 0xf0, 0x0, 0x3, 0xff, 0xfc, 0x0,
+    0x7, 0xc0, 0x0, 0xf, 0xff, 0xf0, 0x0, 0x1f,
+    0x0, 0x0, 0x15, 0x55, 0x40, 0x0, 0x7c, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x1, 0xf0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x7, 0xc0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x1f, 0x0, 0x0,
+
     /* U+5417 "吗" */
     0x0, 0x0, 0x1, 0x55, 0x55, 0x50, 0x5, 0x55,
     0x40, 0xff, 0xff, 0xfe, 0x3, 0xff, 0xfc, 0x3f,
@@ -17850,6 +19129,31 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x1f, 0xff, 0x0, 0x0, 0x0, 0x74, 0x3, 0xfe,
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+543C "吼" */
+    0x0, 0x0, 0x0, 0x0, 0x3, 0x80, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0xf, 0x0, 0x0, 0x0, 0x3,
+    0xff, 0xfc, 0x3c, 0x0, 0xf, 0xff, 0xcf, 0xff,
+    0xf0, 0xf0, 0x0, 0x3f, 0xff, 0x0, 0x7, 0xc3,
+    0xc0, 0x0, 0xf0, 0x3c, 0x0, 0x3d, 0xf, 0x0,
+    0x3, 0xc0, 0xf0, 0x1, 0xf0, 0x3c, 0x0, 0xf,
+    0x3, 0xc0, 0xf, 0x40, 0xf0, 0x0, 0x3c, 0xf,
+    0x0, 0xb8, 0x3, 0xc0, 0x0, 0xf0, 0x3c, 0x3,
+    0xc0, 0xf, 0x0, 0x3, 0xc0, 0xf0, 0xf, 0x0,
+    0x3c, 0x0, 0xf, 0x3, 0xc0, 0x3c, 0x0, 0xf0,
+    0x0, 0x3c, 0xf, 0x0, 0xf6, 0xe3, 0xc0, 0x0,
+    0xf0, 0x3c, 0x1b, 0xff, 0x4f, 0x0, 0x3, 0xc0,
+    0xfb, 0xff, 0x90, 0x3c, 0x0, 0xf, 0x3, 0xee,
+    0xbc, 0x0, 0xf0, 0x0, 0x3c, 0xf, 0x0, 0xf0,
+    0x3, 0xc0, 0x0, 0xf0, 0x3c, 0x3, 0xc0, 0xf,
+    0x0, 0x3, 0xc0, 0xf0, 0xf, 0x0, 0x3c, 0x4,
+    0xf, 0x3, 0xc0, 0x3c, 0x0, 0xf0, 0x2d, 0x3f,
+    0xff, 0x0, 0xf0, 0x3, 0xc0, 0xf4, 0xff, 0xfc,
+    0x3, 0xc0, 0xf, 0x3, 0xc0, 0x0, 0x0, 0xf,
+    0x0, 0x3c, 0xf, 0x0, 0x0, 0x0, 0xbc, 0x0,
+    0xf0, 0x7c, 0x0, 0x0, 0xbf, 0xe0, 0x3, 0xff,
+    0xe0, 0x0, 0x1, 0xfe, 0x0, 0x7, 0xfe, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+543E "吾" */
     0x5, 0x55, 0x55, 0x55, 0x55, 0x55, 0x40, 0x3f,
     0xff, 0xff, 0xff, 0xff, 0xff, 0x40, 0xaa, 0xaf,
@@ -18045,6 +19349,30 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0xff, 0xe0, 0x0, 0x0, 0xf0, 0x0, 0x2f,
     0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+5452 "呒" */
+    0x0, 0x0, 0xa, 0xaa, 0xaa, 0xa9, 0xf, 0xff,
+    0xc1, 0xff, 0xff, 0xff, 0xe0, 0xff, 0xfc, 0x1a,
+    0xaf, 0xea, 0xaa, 0xf, 0x57, 0xc0, 0x0, 0x3c,
+    0x0, 0x0, 0xf0, 0x3c, 0x0, 0x3, 0xc0, 0x0,
+    0xf, 0x3, 0xc0, 0x0, 0x7c, 0x0, 0x0, 0xf0,
+    0x3c, 0x0, 0x7, 0xc0, 0x0, 0xf, 0x3, 0xc0,
+    0x0, 0x7c, 0x0, 0x0, 0xf0, 0x3c, 0x0, 0x7,
+    0xc0, 0x0, 0xf, 0x3, 0xc7, 0xff, 0xff, 0xff,
+    0xf8, 0xf0, 0x3c, 0x7f, 0xff, 0xff, 0xff, 0xcf,
+    0x3, 0xc1, 0x55, 0xf9, 0x55, 0x54, 0xf0, 0x3c,
+    0x0, 0xf, 0xa0, 0x0, 0xf, 0x3, 0xc0, 0x1,
+    0xff, 0x40, 0x0, 0xf0, 0x3c, 0x0, 0x3e, 0xf4,
+    0x0, 0xf, 0x3, 0xc0, 0x3, 0xcf, 0x40, 0x0,
+    0xf0, 0x3c, 0x0, 0xbc, 0xf4, 0x0, 0xf, 0x3,
+    0xc0, 0xf, 0x4f, 0x40, 0x14, 0xff, 0xfc, 0x3,
+    0xf0, 0xf4, 0x2, 0xdf, 0xff, 0xc0, 0xbc, 0xf,
+    0x40, 0x2d, 0x55, 0x54, 0x1f, 0x40, 0xf4, 0x3,
+    0xc0, 0x0, 0x7, 0xe0, 0xf, 0x40, 0x3c, 0x0,
+    0x1, 0xfc, 0x0, 0xfd, 0x5f, 0xc0, 0x0, 0xbf,
+    0x0, 0xb, 0xff, 0xf8, 0x0, 0x1f, 0x80, 0x0,
+    0x2f, 0xfe, 0x0, 0x0, 0xa0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+5453 "呓" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0xb0, 0x3, 0xc0, 0x0, 0x0, 0x0,
@@ -18363,31 +19691,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x3, 0xff, 0x41, 0x80, 0x0, 0x0, 0x0, 0x15,
     0x40,
 
-    /* U+546F "呯" */
-    0x0, 0x0, 0x1, 0x55, 0x55, 0x55, 0x40, 0xff,
-    0xfd, 0xf, 0xff, 0xff, 0xff, 0x43, 0xff, 0xf4,
-    0x2f, 0xff, 0xff, 0xfd, 0xf, 0x3, 0xd0, 0x0,
-    0xf, 0x0, 0x0, 0x3c, 0xf, 0x40, 0x0, 0x3c,
-    0x0, 0x0, 0xf0, 0x3d, 0x1f, 0x0, 0xf0, 0xf,
-    0x3, 0xc0, 0xf4, 0x3d, 0x3, 0xc0, 0x3c, 0xf,
-    0x3, 0xd0, 0x7c, 0xf, 0x2, 0xe0, 0x3c, 0xf,
-    0x40, 0xf4, 0x3c, 0xf, 0x0, 0xf0, 0x3d, 0x1,
-    0xf0, 0xf0, 0xbc, 0x3, 0xc0, 0xf4, 0x3, 0xd3,
-    0xc3, 0xd0, 0xf, 0x3, 0xd0, 0xa, 0xf, 0x1e,
-    0x0, 0x3c, 0xf, 0x40, 0x0, 0x3c, 0x0, 0x0,
-    0xf0, 0x3d, 0x0, 0x0, 0xf0, 0x0, 0x3, 0xc0,
-    0xf4, 0xff, 0xff, 0xff, 0xff, 0x8f, 0x3, 0xd3,
-    0xff, 0xff, 0xff, 0xfe, 0x3c, 0xf, 0x45, 0x55,
-    0x7d, 0x55, 0x50, 0xf0, 0x3d, 0x0, 0x0, 0xf0,
-    0x0, 0x3, 0xc0, 0xf4, 0x0, 0x3, 0xc0, 0x0,
-    0xf, 0xff, 0xd0, 0x0, 0xf, 0x0, 0x0, 0x3f,
-    0xff, 0x40, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x3, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0xf0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
     /* U+5471 "呱" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x6b, 0x0, 0x0, 0x0,
@@ -18414,6 +19717,30 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x7, 0xc0, 0x10, 0x2, 0x80, 0x7c, 0x0, 0x1,
     0x40, 0x0, 0x0, 0x0, 0x10,
 
+    /* U+5472 "呲" */
+    0x0, 0x0, 0x0, 0x9, 0xb, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x38, 0x2d, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xe0, 0xb4, 0x0, 0xf, 0xff, 0x0, 0x3,
+    0x82, 0xd0, 0x0, 0x3f, 0xfc, 0x28, 0xe, 0xb,
+    0x40, 0x0, 0xf0, 0xf0, 0xf0, 0x38, 0x2d, 0x0,
+    0x3, 0xc3, 0xc3, 0xc0, 0xe0, 0xb4, 0xc, 0xf,
+    0xf, 0xf, 0x3, 0x82, 0xd1, 0xf8, 0x3c, 0x3c,
+    0x3c, 0xf, 0xb, 0x5f, 0xc0, 0xf0, 0xf0, 0xf0,
+    0x3f, 0xef, 0xf8, 0x3, 0xc3, 0xc3, 0xc0, 0xff,
+    0xbf, 0x80, 0xf, 0xf, 0xf, 0x3, 0x82, 0xf4,
+    0x0, 0x3c, 0x3c, 0x3c, 0xe, 0xb, 0x40, 0x0,
+    0xf0, 0xf0, 0xf0, 0x38, 0x2d, 0x0, 0x3, 0xc3,
+    0xc3, 0xc0, 0xe0, 0xb4, 0x0, 0xf, 0xf, 0xf,
+    0x3, 0x82, 0xd0, 0x0, 0x3c, 0x3c, 0x3c, 0xe,
+    0xb, 0x40, 0x0, 0xf0, 0xf0, 0xf0, 0x38, 0x2d,
+    0x0, 0x3, 0xc3, 0xc3, 0xc0, 0xe0, 0xb4, 0xe,
+    0xf, 0xf, 0xf, 0x3, 0x82, 0xd0, 0x3c, 0x3f,
+    0xfc, 0x3c, 0xe, 0x1b, 0x40, 0xf0, 0xff, 0xf0,
+    0xf0, 0x7f, 0xed, 0x3, 0xc1, 0x55, 0x43, 0xff,
+    0xfe, 0xb4, 0xf, 0x0, 0x0, 0xbf, 0xfe, 0x42,
+    0xe0, 0xb8, 0x0, 0x3, 0xfd, 0x0, 0x7, 0xff,
+    0xd0, 0x0, 0x9, 0x0, 0x0, 0xb, 0xfe, 0x0,
+
     /* U+5473 "味" */
     0x0, 0x0, 0x0, 0x1, 0xe0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x1, 0xe0, 0x0, 0x0, 0x0, 0x0,
@@ -18561,6 +19888,31 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xc0,
     0x0, 0x0, 0x0, 0x0, 0x0, 0xf0, 0x0,
 
+    /* U+547C "呼" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0,
+    0x0, 0x0, 0x1, 0x5a, 0xff, 0x2, 0xaa, 0xa0,
+    0xff, 0xff, 0xff, 0xfc, 0xf, 0xff, 0xc3, 0xff,
+    0xff, 0x90, 0x0, 0x3d, 0x5f, 0x4, 0x0, 0x3c,
+    0x0, 0x0, 0xf0, 0x3c, 0x4, 0x0, 0xf0, 0x4,
+    0x3, 0xc0, 0xf0, 0x78, 0x3, 0xc0, 0x3c, 0xf,
+    0x3, 0xc0, 0xf0, 0xf, 0x2, 0xd0, 0x3c, 0xf,
+    0x2, 0xe0, 0x3c, 0xf, 0x0, 0xf0, 0x3c, 0x3,
+    0xc0, 0xf0, 0xb8, 0x3, 0xc0, 0xf0, 0xb, 0x83,
+    0xc3, 0xc0, 0xf, 0x3, 0xc0, 0xf, 0xf, 0x2e,
+    0x0, 0x3c, 0xf, 0x0, 0x24, 0x3c, 0x10, 0x0,
+    0xf0, 0x3c, 0x0, 0x0, 0xf0, 0x0, 0x3, 0xc0,
+    0xf3, 0xff, 0xff, 0xff, 0xff, 0x4f, 0x3, 0xcf,
+    0xff, 0xff, 0xff, 0xfe, 0x3c, 0xf, 0x5, 0x55,
+    0x7d, 0x55, 0x50, 0xf0, 0x3c, 0x0, 0x0, 0xf0,
+    0x0, 0x3, 0xc0, 0xf0, 0x0, 0x3, 0xc0, 0x0,
+    0xf, 0x3, 0xc0, 0x0, 0xf, 0x0, 0x0, 0x3d,
+    0x5f, 0x0, 0x0, 0x3c, 0x0, 0x0, 0xff, 0xfc,
+    0x0, 0x0, 0xf0, 0x0, 0x3, 0xff, 0xf0, 0x0,
+    0x7, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xf4, 0x0,
+    0x0, 0x0, 0x0, 0x2, 0xff, 0x40, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+547D "命" */
     0x0, 0x0, 0x0, 0x3f, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x3f, 0xf0, 0x0, 0x0, 0x0, 0x0,
@@ -19014,29 +20366,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0x0, 0xff, 0xff, 0xff, 0xff,
     0xf8, 0x0, 0x3, 0xff, 0xff, 0xff, 0xff, 0xe0,
 
-    /* U+54A2 "咢" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xff,
-    0xff, 0x43, 0xff, 0xff, 0x40, 0xfa, 0xab, 0xd0,
-    0xfa, 0xab, 0xd0, 0x3c, 0x0, 0xb4, 0x3c, 0x0,
-    0xb4, 0xf, 0x0, 0x2d, 0xf, 0x0, 0x2d, 0x3,
-    0xff, 0xff, 0x43, 0xff, 0xff, 0x40, 0xbf, 0xff,
-    0xd0, 0xff, 0xff, 0xd0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x3f, 0xff, 0xff, 0xff, 0xfc, 0x0, 0xf,
-    0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7,
-    0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x2e,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0x40, 0x0,
-    0x0, 0x0, 0x0, 0x3, 0xd0, 0x0, 0x0, 0x0,
-    0x0, 0x1, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0,
-    0x6a, 0xaa, 0xaa, 0xaf, 0x80, 0x0, 0x0, 0x0,
-    0x0, 0x2, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0xf4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7c, 0x0,
-    0x0, 0x0, 0x2, 0xff, 0xfd, 0x0, 0x0, 0x0,
-    0x0, 0xff, 0xf9, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0,
-
     /* U+54A3 "咣" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x7, 0xc0, 0x0, 0x0, 0x0, 0x0,
@@ -19087,6 +20416,57 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0x2f, 0xff,
     0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+54A6 "咦" */
+    0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x7c, 0x0, 0x0, 0x3f, 0xff, 0x3f, 0xff, 0xff,
+    0xff, 0xd0, 0xff, 0xfc, 0xff, 0xff, 0xff, 0xff,
+    0x43, 0xc0, 0xf0, 0x0, 0xf, 0x0, 0x0, 0xf,
+    0x3, 0xc0, 0x0, 0x7c, 0x0, 0x0, 0x3c, 0xf,
+    0x2f, 0xff, 0xff, 0xff, 0x0, 0xf0, 0x3c, 0xbf,
+    0xff, 0xff, 0xfc, 0x3, 0xc0, 0xf0, 0x0, 0xf,
+    0x0, 0xf0, 0xf, 0x3, 0xc0, 0x0, 0x3c, 0x3,
+    0xc0, 0x3c, 0xf, 0xf, 0xff, 0xff, 0xff, 0x0,
+    0xf0, 0x3c, 0x7f, 0xff, 0xff, 0xfc, 0x3, 0xc0,
+    0xf1, 0xe0, 0x1f, 0x0, 0x0, 0xf, 0x3, 0xc7,
+    0x40, 0x3c, 0x0, 0x0, 0x3c, 0xf, 0x2f, 0xab,
+    0xfa, 0xaa, 0x80, 0xf0, 0x3c, 0xbf, 0xff, 0xff,
+    0xff, 0x3, 0xc0, 0xf0, 0x0, 0x2f, 0x0, 0x3c,
+    0xf, 0x3, 0xc0, 0x0, 0xbc, 0x0, 0xf0, 0x3c,
+    0xf, 0x0, 0x3, 0xf8, 0x6f, 0x80, 0xf0, 0x7c,
+    0x0, 0x2f, 0xf2, 0xfc, 0x3, 0xff, 0xf0, 0x1,
+    0xf6, 0xf0, 0x0, 0xf, 0xff, 0xc0, 0x2f, 0x83,
+    0xf0, 0x0, 0x0, 0x0, 0x3, 0xf8, 0x3, 0xf4,
+    0x0, 0x0, 0x1, 0xbf, 0x40, 0x3, 0xfd, 0x0,
+    0x0, 0x2f, 0xe0, 0x0, 0x1, 0xff, 0x40, 0x0,
+    0x38, 0x0, 0x0, 0x0, 0x7c, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
+    /* U+54A7 "咧" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x80, 0x0,
+    0x5, 0x55, 0x54, 0x0, 0xf0, 0x0, 0xb, 0xff,
+    0xff, 0x0, 0x3c, 0xff, 0xf1, 0xaf, 0xea, 0x84,
+    0xf, 0x3f, 0xfc, 0x2, 0xd0, 0x7, 0x83, 0xcf,
+    0xb, 0x0, 0xf0, 0x1, 0xe0, 0xf3, 0xc2, 0xc0,
+    0x3c, 0x0, 0x78, 0x3c, 0xf0, 0xb0, 0x1e, 0x0,
+    0x1e, 0xf, 0x3c, 0x2c, 0xb, 0xff, 0xc7, 0x83,
+    0xcf, 0xb, 0x3, 0xff, 0xf1, 0xe0, 0xf3, 0xc2,
+    0xc1, 0xf0, 0x3c, 0x78, 0x3c, 0xf0, 0xb0, 0xb4,
+    0xe, 0x1e, 0xf, 0x3c, 0x2c, 0x3c, 0x7, 0x87,
+    0x83, 0xcf, 0xb, 0x2f, 0x2, 0xd1, 0xe0, 0xf3,
+    0xc2, 0xcf, 0xe0, 0xf0, 0x78, 0x3c, 0xf0, 0xbb,
+    0xff, 0x3c, 0x1e, 0xf, 0x3c, 0x2e, 0xd3, 0xee,
+    0x7, 0x83, 0xcf, 0xb, 0x10, 0x1f, 0x1, 0xe0,
+    0xf3, 0xc2, 0xc0, 0x3, 0xc0, 0x78, 0x3c, 0xf0,
+    0xb0, 0x2, 0xd0, 0x1e, 0xf, 0x3d, 0x7c, 0x1,
+    0xf0, 0x2, 0x43, 0xcf, 0xff, 0x0, 0xf4, 0x0,
+    0x0, 0xf3, 0xff, 0xc0, 0xbc, 0x0, 0x0, 0x3c,
+    0x0, 0x0, 0x7c, 0x0, 0x0, 0xf, 0x0, 0x0,
+    0x7d, 0x0, 0x0, 0x5f, 0x80, 0x0, 0x3e, 0x0,
+    0x0, 0xbf, 0xd0, 0x0, 0xe, 0x0, 0x0, 0xe,
+    0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+54A8 "咨" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10,
     0x0, 0x3, 0xc0, 0x0, 0x0, 0x1, 0xf0, 0x0,
@@ -19216,6 +20596,30 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x78, 0x0, 0x0, 0x0, 0x78, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+54AD "咭" */
+    0x0, 0x0, 0x0, 0x2, 0xe0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xb8, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x2e, 0x0, 0x3, 0xff, 0xf0, 0x0, 0xb, 0x80,
+    0x0, 0xff, 0xfc, 0xbf, 0xff, 0xff, 0xff, 0xfc,
+    0xf, 0x2f, 0xff, 0xff, 0xff, 0xff, 0x3, 0xc0,
+    0x0, 0x2e, 0x0, 0x3, 0xc0, 0xf0, 0x0, 0xb,
+    0x80, 0x0, 0xf0, 0x3c, 0x0, 0x2, 0xe0, 0x0,
+    0x3c, 0xf, 0x0, 0x0, 0xb8, 0x0, 0xf, 0x3,
+    0xc1, 0x55, 0x7f, 0x55, 0x53, 0xc0, 0xf0, 0xff,
+    0xff, 0xff, 0xfc, 0xf0, 0x3c, 0x3f, 0xff, 0xff,
+    0xfe, 0x3c, 0xf, 0x0, 0x0, 0x0, 0x0, 0xf,
+    0x3, 0xc0, 0x0, 0x0, 0x0, 0x3, 0xc0, 0xf0,
+    0x0, 0x0, 0x0, 0x0, 0xf0, 0x3c, 0xf, 0xff,
+    0xff, 0xfc, 0x3c, 0xf, 0x3, 0xff, 0xff, 0xff,
+    0xf, 0x3, 0xc0, 0xf0, 0x0, 0x3, 0xc3, 0xc0,
+    0xf0, 0x3c, 0x0, 0x0, 0xf0, 0xf0, 0x3c, 0xf,
+    0x0, 0x0, 0x3c, 0x3f, 0xaf, 0x3, 0xc0, 0x0,
+    0xf, 0xf, 0xff, 0xc0, 0xf0, 0x0, 0x3, 0xc1,
+    0x55, 0x50, 0x3f, 0xff, 0xff, 0xf0, 0x0, 0x0,
+    0xf, 0xff, 0xff, 0xfc, 0x0, 0x0, 0x3, 0xd0,
+    0x0, 0x1f, 0x0, 0x0, 0x0, 0xf0, 0x0, 0x3,
+    0xc0,
+
     /* U+54AF "咯" */
     0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x3d, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -19292,6 +20696,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x2e, 0x0, 0x0, 0x0, 0x74, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+54B4 "咴" */
+    0x0, 0x0, 0x0, 0x90, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x3, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xf, 0x0, 0x0, 0x0, 0xa, 0xaa, 0x80, 0x3c,
+    0x0, 0x0, 0x0, 0x3f, 0xff, 0x3f, 0xff, 0xff,
+    0xff, 0xe0, 0xf5, 0x7c, 0xff, 0xff, 0xff, 0xff,
+    0xc3, 0xc0, 0xf0, 0x1f, 0x0, 0x0, 0x0, 0xf,
+    0x3, 0xc0, 0x7c, 0x1, 0x0, 0x0, 0x3c, 0xf,
+    0x1, 0xe0, 0x2d, 0x0, 0x0, 0xf0, 0x3c, 0xb,
+    0x80, 0xb4, 0x0, 0x3, 0xc0, 0xf0, 0x2e, 0x2,
+    0xd0, 0x1d, 0xf, 0x3, 0xc0, 0xfe, 0xb, 0x40,
+    0xf0, 0x3c, 0xf, 0x3, 0xfc, 0x2d, 0x7, 0xc0,
+    0xf0, 0x3c, 0xf, 0xb4, 0xb4, 0x3d, 0x3, 0xc0,
+    0xf0, 0x7c, 0xf2, 0xd0, 0xf0, 0xf, 0x3, 0xc2,
+    0xe2, 0xdf, 0x8b, 0x40, 0x3c, 0xf, 0xf, 0x47,
+    0xbf, 0x7c, 0x0, 0xf0, 0x3c, 0x3c, 0x9, 0xfc,
+    0x40, 0x3, 0xc0, 0xf1, 0xe0, 0xb, 0xf4, 0x0,
+    0xf, 0x3, 0xcf, 0x40, 0x3c, 0xf0, 0x0, 0x3f,
+    0xff, 0x7c, 0x2, 0xe2, 0xe0, 0x0, 0xff, 0xff,
+    0xe0, 0xf, 0x3, 0xc0, 0x0, 0x0, 0x1f, 0x0,
+    0xf8, 0xb, 0xc0, 0x0, 0x0, 0xf8, 0xf, 0xc0,
+    0xf, 0xc0, 0x0, 0xb, 0xc0, 0xfc, 0x0, 0xf,
+    0xc0, 0x0, 0x3d, 0x1f, 0xc0, 0x0, 0xf, 0xc0,
+    0x0, 0xa0, 0xf8, 0x0, 0x0, 0xf, 0x0, 0x0,
+    0x0, 0x40, 0x0, 0x0, 0x0,
+
     /* U+54B8 "咸" */
     0x0, 0x0, 0x0, 0x0, 0x14, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0xf, 0xb, 0x0, 0x0, 0x0,
@@ -19446,6 +20876,55 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xff, 0xfd, 0xff, 0xff, 0xf0, 0x3f, 0xff, 0xfd,
     0xf0, 0x0, 0xf0, 0x3c, 0x0, 0x3d,
 
+    /* U+54C2 "哂" */
+    0x0, 0x0, 0x2a, 0xaa, 0xaa, 0xaa, 0xa0, 0x0,
+    0x3, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xfc, 0x2a,
+    0xaf, 0xaf, 0xea, 0xa3, 0xff, 0xc0, 0x0, 0xf0,
+    0xb4, 0x0, 0x3c, 0x3c, 0x0, 0xf, 0xb, 0x40,
+    0x3, 0xc3, 0xc0, 0x0, 0xf0, 0xb4, 0x0, 0x3c,
+    0x3c, 0x0, 0xf, 0xb, 0x40, 0x3, 0xc3, 0xc1,
+    0xff, 0xff, 0xff, 0xfc, 0x3c, 0x3c, 0x1f, 0xff,
+    0xff, 0xff, 0xc3, 0xc3, 0xc1, 0xe0, 0xf0, 0xb4,
+    0x3c, 0x3c, 0x3c, 0x1e, 0xf, 0xb, 0x43, 0xc3,
+    0xc3, 0xc1, 0xe0, 0xf0, 0xb4, 0x3c, 0x3c, 0x3c,
+    0x1e, 0xe, 0xb, 0x43, 0xc3, 0xc3, 0xc1, 0xe1,
+    0xe0, 0xb4, 0x3c, 0x3c, 0x3c, 0x1e, 0x2d, 0xb,
+    0x43, 0xc3, 0xc3, 0xc1, 0xe3, 0xc0, 0x7f, 0xfc,
+    0x3c, 0x3c, 0x1e, 0xb8, 0x3, 0xff, 0xc3, 0xc3,
+    0xc1, 0xff, 0x0, 0x0, 0x3c, 0x3c, 0x3c, 0x1e,
+    0x90, 0x0, 0x3, 0xc3, 0xd7, 0xc1, 0xe0, 0x0,
+    0x0, 0x3c, 0x3f, 0xfc, 0x1e, 0x0, 0x0, 0x3,
+    0xc3, 0xff, 0xc1, 0xe0, 0x0, 0x0, 0x3c, 0x0,
+    0x0, 0x1f, 0xff, 0xff, 0xff, 0xc0, 0x0, 0x1,
+    0xff, 0xff, 0xff, 0xfc, 0x0, 0x0, 0x1e, 0x0,
+    0x0, 0x3, 0xc0, 0x0, 0x1, 0xe0, 0x0, 0x0,
+    0x3c,
+
+    /* U+54C4 "哄" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xf, 0x40, 0x2d, 0x0, 0x0, 0x0, 0x0,
+    0xf4, 0x2, 0xd0, 0x1, 0x55, 0x50, 0xf, 0x40,
+    0x2d, 0x0, 0x7f, 0xff, 0x0, 0xf4, 0x2, 0xd0,
+    0x7, 0xff, 0xf0, 0xf, 0x40, 0x2d, 0x0, 0x7c,
+    0xf, 0x0, 0xf4, 0x3, 0xe0, 0x7, 0xc0, 0xf3,
+    0xff, 0xff, 0xff, 0xfc, 0x7c, 0xf, 0x3f, 0xff,
+    0xff, 0xff, 0xc7, 0xc0, 0xf0, 0xf, 0x40, 0x2d,
+    0x0, 0x7c, 0xf, 0x0, 0xf4, 0x2, 0xd0, 0x7,
+    0xc0, 0xf0, 0xf, 0x40, 0x2d, 0x0, 0x7c, 0xf,
+    0x0, 0xf4, 0x2, 0xd0, 0x7, 0xc0, 0xf0, 0xf,
+    0x40, 0x2d, 0x0, 0x7c, 0xf, 0x0, 0xf4, 0x2,
+    0xd0, 0x7, 0xc0, 0xf0, 0xf, 0x40, 0x2d, 0x0,
+    0x7c, 0xf, 0x3f, 0xff, 0xff, 0xff, 0xf7, 0xc0,
+    0xf7, 0xff, 0xff, 0xff, 0xff, 0x7c, 0xf, 0x0,
+    0x0, 0x0, 0x0, 0x7, 0xc0, 0xf0, 0x0, 0x0,
+    0x10, 0x0, 0x7c, 0x1f, 0x0, 0x3d, 0xb, 0x80,
+    0x7, 0xff, 0xf0, 0xb, 0xc0, 0x7e, 0x0, 0x7f,
+    0xff, 0x2, 0xf4, 0x1, 0xf8, 0x0, 0x0, 0x0,
+    0xbd, 0x0, 0x7, 0xd0, 0x0, 0x0, 0x2f, 0x80,
+    0x0, 0x2f, 0x40, 0x0, 0xb, 0xe0, 0x0, 0x0,
+    0xbc, 0x0, 0x1, 0xf8, 0x0, 0x0, 0x3, 0xe0,
+    0x0, 0x6, 0x0, 0x0, 0x0, 0x8,
+
     /* U+54C6 "哆" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x1e, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -19472,6 +20951,29 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0xf, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+54C7 "哇" */
+    0x0, 0x0, 0x0, 0x2, 0x80, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xf4, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x3d, 0x0, 0x2, 0xaa, 0xa0, 0x0, 0xf, 0x40,
+    0x0, 0xff, 0xfc, 0x3f, 0xff, 0xff, 0xfd, 0x3d,
+    0x5f, 0xf, 0xff, 0xff, 0xff, 0x4f, 0x3, 0xc0,
+    0x0, 0x3d, 0x0, 0x3, 0xc0, 0xf0, 0x0, 0xf,
+    0x40, 0x0, 0xf0, 0x3c, 0x0, 0x3, 0xd0, 0x0,
+    0x3c, 0xf, 0x0, 0x0, 0xf4, 0x0, 0xf, 0x3,
+    0xc5, 0x55, 0x7e, 0x55, 0x57, 0xc0, 0xf3, 0xff,
+    0xff, 0xff, 0xff, 0xf0, 0x3c, 0xff, 0xff, 0xff,
+    0xff, 0xbc, 0xf, 0x0, 0x0, 0x0, 0x0, 0xf,
+    0x3, 0xc0, 0x0, 0x3d, 0x0, 0x3, 0xc0, 0xf0,
+    0x0, 0xf, 0x40, 0x0, 0xf0, 0x3c, 0x0, 0x3,
+    0xd0, 0x0, 0x3c, 0xf, 0xf, 0xff, 0xff, 0xff,
+    0x4f, 0x3, 0xc3, 0xff, 0xff, 0xff, 0xd3, 0xc0,
+    0xf0, 0x0, 0xf, 0x40, 0x0, 0xf0, 0x3c, 0x0,
+    0x3, 0xd0, 0x0, 0x3f, 0xff, 0x0, 0x0, 0xf4,
+    0x0, 0xf, 0xff, 0xc0, 0x0, 0x3d, 0x0, 0x1,
+    0x55, 0x51, 0x55, 0x5f, 0x95, 0x55, 0x0, 0x2,
+    0xff, 0xff, 0xff, 0xff, 0xc0, 0x0, 0xbf, 0xff,
+    0xff, 0xff, 0xe0,
+
     /* U+54C8 "哈" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x7, 0xd0, 0x0, 0x0, 0x0, 0x0,
@@ -19626,6 +21128,129 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xf0, 0x0, 0x0, 0x2e, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+54D0 "哐" */
+    0x0, 0x0, 0x5, 0x55, 0x55, 0x55, 0x40, 0x0,
+    0x0, 0xff, 0xff, 0xff, 0xfd, 0xff, 0xfc, 0xf,
+    0xff, 0xff, 0xff, 0xdf, 0xff, 0xc0, 0xf0, 0x0,
+    0x0, 0x0, 0xf4, 0x3c, 0xf, 0x0, 0x0, 0x0,
+    0xf, 0x43, 0xc0, 0xf0, 0x0, 0x0, 0x0, 0xf4,
+    0x3c, 0xf, 0x3f, 0xff, 0xff, 0x8f, 0x43, 0xc0,
+    0xf2, 0xff, 0xff, 0xf8, 0xf4, 0x3c, 0xf, 0x0,
+    0xf, 0x0, 0xf, 0x43, 0xc0, 0xf0, 0x0, 0xf0,
+    0x0, 0xf4, 0x3c, 0xf, 0x0, 0xf, 0x0, 0xf,
+    0x43, 0xc0, 0xf1, 0xab, 0xfa, 0xa0, 0xf4, 0x3c,
+    0xf, 0x1f, 0xff, 0xff, 0xf, 0x43, 0xc0, 0xf0,
+    0x1, 0xf0, 0x0, 0xf4, 0x3c, 0xf, 0x0, 0xf,
+    0x0, 0xf, 0x43, 0xc0, 0xf0, 0x0, 0xf0, 0x0,
+    0xf4, 0x3c, 0xf, 0x0, 0xf, 0x0, 0xf, 0x43,
+    0xc0, 0xf1, 0x55, 0xf5, 0x54, 0xf4, 0x3c, 0xf,
+    0x3f, 0xff, 0xff, 0xcf, 0x43, 0xc0, 0xf2, 0xaa,
+    0xaa, 0xa8, 0xff, 0xfc, 0xf, 0x0, 0x0, 0x0,
+    0xf, 0xff, 0xc0, 0xf0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0xf, 0xff,
+    0xff, 0xff, 0xe0,
+
+    /* U+54D1 "哑" */
+    0x0, 0x0, 0x15, 0x55, 0x55, 0x55, 0x40, 0x0,
+    0x0, 0xff, 0xff, 0xff, 0xff, 0x83, 0xff, 0xf2,
+    0xff, 0xff, 0xff, 0xfd, 0xf, 0xff, 0xc0, 0xb,
+    0x82, 0xd0, 0x0, 0x3c, 0xf, 0x0, 0x2e, 0xb,
+    0x40, 0x0, 0xf0, 0x3c, 0x0, 0xb8, 0x2d, 0x0,
+    0x3, 0xc0, 0xf0, 0x2, 0xe0, 0xb4, 0x0, 0xf,
+    0x3, 0xdc, 0xb, 0x82, 0xd0, 0x38, 0x3c, 0xf,
+    0xb8, 0x2e, 0xb, 0x41, 0xf0, 0xf0, 0x3d, 0xf0,
+    0xb8, 0x2d, 0xb, 0x83, 0xc0, 0xf3, 0xc2, 0xe0,
+    0xb4, 0x3c, 0xf, 0x3, 0xcb, 0x8b, 0x82, 0xd0,
+    0xf0, 0x3c, 0xf, 0x1f, 0x2e, 0xb, 0x4b, 0x80,
+    0xf0, 0x3c, 0x3c, 0xb8, 0x2d, 0x3c, 0x3, 0xc0,
+    0xf0, 0xb6, 0xe0, 0xb5, 0xf0, 0xf, 0x3, 0xc1,
+    0xeb, 0x82, 0xdf, 0x40, 0x3c, 0xf, 0x3, 0xee,
+    0xb, 0xbc, 0x0, 0xf0, 0x3c, 0x9, 0xb8, 0x2d,
+    0x50, 0x3, 0xc0, 0xf0, 0x2, 0xe0, 0xb4, 0x0,
+    0xf, 0xff, 0xc0, 0xb, 0x82, 0xd0, 0x0, 0x3f,
+    0xff, 0x0, 0x2e, 0xb, 0x40, 0x0, 0x0, 0x0,
+    0x0, 0xb8, 0x2d, 0x0, 0x0, 0x0, 0x5, 0x56,
+    0xe5, 0xf9, 0x55, 0x0, 0x0, 0x3f, 0xff, 0xff,
+    0xff, 0xfd, 0x0, 0x0, 0xff, 0xff, 0xff, 0xff,
+    0xf4,
+
+    /* U+54D2 "哒" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x20, 0x0, 0x2d, 0x0, 0x0, 0x0, 0x2,
+    0xe0, 0x0, 0xb4, 0x0, 0x0, 0x0, 0x3, 0xc0,
+    0x2, 0xd0, 0x0, 0x3f, 0xff, 0xb, 0x80, 0xb,
+    0x40, 0x0, 0xff, 0xfc, 0xf, 0x0, 0x2d, 0x0,
+    0x3, 0xc0, 0xf0, 0x3d, 0x0, 0xb4, 0x0, 0xf,
+    0x3, 0xc0, 0x52, 0xff, 0xff, 0xf0, 0x3c, 0xf,
+    0x0, 0xb, 0xff, 0xff, 0xc0, 0xf0, 0x3c, 0x0,
+    0x5, 0x7e, 0x55, 0x3, 0xc0, 0xf0, 0x0, 0x0,
+    0xb4, 0x0, 0xf, 0x3, 0xef, 0xf0, 0x3, 0xc0,
+    0x0, 0x3c, 0xf, 0xbf, 0xc0, 0xf, 0x0, 0x0,
+    0xf0, 0x3c, 0xf, 0x0, 0x3e, 0x0, 0x3, 0xc0,
+    0xf0, 0x3c, 0x1, 0xfc, 0x0, 0xf, 0x3, 0xc0,
+    0xf0, 0xb, 0xfc, 0x0, 0x3c, 0xf, 0x3, 0xc0,
+    0x3c, 0xf8, 0x0, 0xf0, 0x3c, 0xf, 0x2, 0xe1,
+    0xf0, 0x3, 0xc0, 0xf0, 0x3c, 0x1f, 0x2, 0xe0,
+    0xf, 0x3, 0xc0, 0xf0, 0xf8, 0x3, 0xd0, 0x3c,
+    0xf, 0x3, 0xcf, 0xc0, 0xb, 0xc0, 0xff, 0xfc,
+    0x1f, 0x3c, 0x0, 0xf, 0x3, 0xff, 0xf0, 0xfe,
+    0x0, 0x0, 0x10, 0x0, 0x0, 0xf, 0xfe, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0xbc, 0x7f, 0xe5, 0x55,
+    0x50, 0x0, 0x3, 0xc0, 0x3f, 0xff, 0xff, 0xc0,
+    0x0, 0x5, 0x0, 0x6, 0xbf, 0xfe, 0x0,
+
+    /* U+54D3 "哓" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x3, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xb, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1e,
+    0x0, 0x5, 0xa0, 0x3f, 0xff, 0x0, 0x3d, 0xaf,
+    0xff, 0xc0, 0xff, 0xfc, 0x6b, 0xff, 0xff, 0xe5,
+    0x3, 0xc0, 0xf3, 0xff, 0xf9, 0x0, 0x40, 0xf,
+    0x3, 0xc5, 0x47, 0xc0, 0xb, 0xc0, 0x3c, 0xf,
+    0x0, 0xf, 0x41, 0xfc, 0x0, 0xf0, 0x3c, 0x0,
+    0x1f, 0x7f, 0x80, 0x3, 0xc0, 0xf0, 0x0, 0x3f,
+    0xf4, 0xe, 0xf, 0x3, 0xc0, 0x1b, 0xff, 0x0,
+    0x3c, 0x3c, 0xf, 0x1b, 0xfe, 0xbe, 0x2, 0xd0,
+    0xf0, 0x3c, 0xbf, 0x40, 0x7f, 0xff, 0x3, 0xc0,
+    0xf0, 0x40, 0x0, 0x2f, 0xf4, 0xf, 0x3, 0xc0,
+    0x0, 0x0, 0x0, 0x0, 0x3c, 0xf, 0x2a, 0xaa,
+    0xaa, 0xaa, 0x90, 0xf0, 0x3c, 0xff, 0xff, 0xff,
+    0xff, 0x43, 0xc0, 0xf1, 0x5b, 0x95, 0xf5, 0x54,
+    0xf, 0x3, 0xc0, 0x1d, 0x3, 0xc0, 0x0, 0x3c,
+    0xf, 0x0, 0xb4, 0xf, 0x0, 0x0, 0xff, 0xfc,
+    0x3, 0xc0, 0x3c, 0x2, 0xc3, 0xff, 0xf0, 0xf,
+    0x0, 0xf0, 0xb, 0x0, 0x0, 0x0, 0xf4, 0x3,
+    0xc0, 0x3c, 0x0, 0x0, 0xb, 0xc0, 0xf, 0x41,
+    0xf0, 0x0, 0x1, 0xfc, 0x0, 0x3f, 0xff, 0x80,
+    0x0, 0x3f, 0x80, 0x0, 0x2f, 0xf8, 0x0, 0x0,
+    0x74, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
+    /* U+54D4 "哔" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x3, 0xc0, 0x2d, 0x0, 0x0, 0x0, 0x0, 0xf0,
+    0xb, 0x40, 0x1, 0x55, 0x50, 0x3c, 0x2, 0xd0,
+    0x4, 0xff, 0xfc, 0xf, 0x0, 0xb4, 0x1f, 0x3f,
+    0xff, 0x3, 0xc0, 0x2d, 0x2f, 0x8f, 0x3, 0xc0,
+    0xff, 0xfb, 0xbf, 0x43, 0xc0, 0xf0, 0x3f, 0xfa,
+    0xff, 0x0, 0xf0, 0x3c, 0xf, 0x0, 0xbe, 0x0,
+    0x3c, 0xf, 0x3, 0xc0, 0x2d, 0x0, 0xf, 0x3,
+    0xc0, 0xf0, 0xb, 0x40, 0x23, 0xc0, 0xf0, 0x3c,
+    0x6, 0xd0, 0x1e, 0xf0, 0x3c, 0xf, 0x1e, 0xb4,
+    0x7, 0xbc, 0xf, 0x3, 0xff, 0xaf, 0x57, 0xdf,
+    0x3, 0xc2, 0xff, 0x47, 0xff, 0xf3, 0xc0, 0xf0,
+    0xbd, 0x0, 0x6f, 0xe0, 0xf0, 0x3c, 0x0, 0x3,
+    0xc0, 0x0, 0x3c, 0xf, 0x0, 0x0, 0xf0, 0x0,
+    0xf, 0x3, 0xc0, 0x0, 0x3c, 0x0, 0x3, 0xc0,
+    0xf3, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x3c, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x1, 0xf0,
+    0x0, 0xf, 0xff, 0xc0, 0x0, 0x3c, 0x0, 0x1,
+    0x55, 0x50, 0x0, 0xf, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x3, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0xf, 0x0, 0x0,
+
     /* U+54D5 "哕" */
     0x0, 0x0, 0x0, 0x0, 0x14, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x0, 0x2,
@@ -19726,6 +21351,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x18, 0x0, 0x0, 0x0, 0x1, 0xf0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x7, 0xc0, 0x0, 0x0,
 
+    /* U+54DC "哜" */
+    0x0, 0x0, 0x0, 0x1, 0x40, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x3, 0xd0, 0x0, 0x1, 0x55, 0x40, 0x0, 0x1f,
+    0x0, 0x0, 0xff, 0xfd, 0x7f, 0xff, 0xff, 0xff,
+    0xcf, 0xff, 0xd7, 0xff, 0xff, 0xff, 0xfc, 0xf4,
+    0x3d, 0x3, 0xd0, 0x1, 0xf0, 0xf, 0x43, 0xd0,
+    0x2f, 0x0, 0x3d, 0x0, 0xf4, 0x3d, 0x0, 0xf4,
+    0x7, 0xc0, 0xf, 0x43, 0xd0, 0x7, 0xc0, 0xf4,
+    0x0, 0xf4, 0x3d, 0x0, 0x2f, 0x7e, 0x0, 0xf,
+    0x43, 0xd0, 0x0, 0xbf, 0xc0, 0x0, 0xf4, 0x3d,
+    0x0, 0x7, 0xf8, 0x0, 0xf, 0x43, 0xd0, 0x7,
+    0xff, 0xf4, 0x0, 0xf4, 0x3d, 0xb, 0xfd, 0x1f,
+    0xf8, 0xf, 0x43, 0xdf, 0xfe, 0x0, 0x1f, 0xfe,
+    0xf4, 0x3d, 0xfd, 0x40, 0x1, 0x5b, 0xdf, 0x43,
+    0xd0, 0xf, 0x0, 0x3c, 0x4, 0xf4, 0x3d, 0x0,
+    0xf0, 0x3, 0xc0, 0xf, 0x43, 0xd0, 0x1f, 0x0,
+    0x3c, 0x0, 0xf4, 0x3d, 0x1, 0xe0, 0x3, 0xc0,
+    0xf, 0xff, 0xd0, 0x2e, 0x0, 0x3c, 0x0, 0xff,
+    0xfd, 0x3, 0xd0, 0x3, 0xc0, 0x0, 0x0, 0x0,
+    0xbc, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x1f, 0x40,
+    0x3, 0xc0, 0x0, 0x0, 0xb, 0xe0, 0x0, 0x3c,
+    0x0, 0x0, 0x3, 0xf8, 0x0, 0x3, 0xc0, 0x0,
+    0x0, 0x2e, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+54DD "哝" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x3, 0xd0, 0x0, 0x0, 0x0, 0x0,
@@ -20390,30 +22041,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x1e, 0x40, 0x0, 0x0, 0x1b, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0,
 
-    /* U+551D "唝" */
-    0x0, 0x0, 0x1a, 0xaa, 0xaa, 0xa4, 0x0, 0x0,
-    0x2, 0xff, 0xff, 0xff, 0xc0, 0xff, 0xfc, 0x1a,
-    0xab, 0xea, 0xa4, 0xf, 0xff, 0xc0, 0x0, 0x3c,
-    0x0, 0x0, 0xf0, 0x3c, 0x0, 0x3, 0xc0, 0x0,
-    0xf, 0x3, 0xc0, 0x0, 0x3c, 0x0, 0x0, 0xf0,
-    0x3c, 0xff, 0xff, 0xff, 0xff, 0xf, 0x3, 0xcf,
-    0xff, 0xff, 0xff, 0xf0, 0xf0, 0x3c, 0x0, 0x0,
-    0x0, 0x0, 0xf, 0x3, 0xc0, 0x0, 0x0, 0x0,
-    0x0, 0xf0, 0x3c, 0x2f, 0xff, 0xff, 0xf4, 0xf,
-    0x3, 0xc2, 0xff, 0xff, 0xff, 0x80, 0xf0, 0x3c,
-    0x2d, 0x0, 0x0, 0x78, 0xf, 0x3, 0xc2, 0xd0,
-    0x0, 0x7, 0x80, 0xf0, 0x3c, 0x2d, 0x3, 0xc0,
-    0x78, 0xf, 0x3, 0xc2, 0xd0, 0x3c, 0x7, 0x80,
-    0xf0, 0x3c, 0x2d, 0x3, 0xc0, 0x78, 0xf, 0x3,
-    0xc2, 0xd0, 0x3c, 0x7, 0x80, 0xf0, 0x3c, 0x2d,
-    0x7, 0x80, 0x78, 0xf, 0xff, 0xc2, 0xc0, 0xf4,
-    0x7, 0x40, 0xff, 0xfc, 0x0, 0x2f, 0x3e, 0x0,
-    0x1, 0x55, 0x40, 0xb, 0xc2, 0xfd, 0x0, 0x0,
-    0x0, 0xb, 0xf4, 0x2, 0xf8, 0x0, 0x0, 0x1b,
-    0xf8, 0x0, 0x7, 0xf4, 0x0, 0x7, 0xf8, 0x0,
-    0x0, 0xf, 0xc0, 0x0, 0x34, 0x0, 0x0, 0x0,
-    0x24, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
     /* U+5520 "唠" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0xf0, 0xf, 0x0, 0x0, 0x0, 0x0,
@@ -20441,6 +22068,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x3d, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+5522 "唢" */
+    0x0, 0x0, 0x0, 0x0, 0xf4, 0x0, 0x0, 0x0,
+    0x0, 0x8, 0x3, 0xd0, 0x5, 0x0, 0x0, 0x0,
+    0xf4, 0xf, 0x40, 0x3c, 0xf, 0xff, 0xc1, 0xf0,
+    0x3d, 0x3, 0xe0, 0x3f, 0xff, 0x2, 0xf0, 0xf4,
+    0x2f, 0x0, 0xf0, 0x3c, 0x3, 0xd3, 0xd2, 0xf4,
+    0x3, 0xc0, 0xf0, 0x7, 0x8f, 0x4b, 0x80, 0xf,
+    0x3, 0xc0, 0x4, 0x3d, 0x4, 0x0, 0x3c, 0xf,
+    0x1, 0x55, 0xf9, 0x55, 0x0, 0xf0, 0x3c, 0xf,
+    0xff, 0xff, 0xfc, 0x3, 0xc0, 0xf0, 0x3f, 0xff,
+    0xff, 0xf0, 0xf, 0x3, 0xc0, 0xf0, 0x0, 0x3,
+    0xc0, 0x3c, 0xf, 0x3, 0xc0, 0xa0, 0xf, 0x0,
+    0xf0, 0x3c, 0xf, 0x2, 0xd0, 0x3c, 0x3, 0xc0,
+    0xf0, 0x3c, 0xf, 0x40, 0xf0, 0xf, 0x3, 0xc0,
+    0xf0, 0x3d, 0x3, 0xc0, 0x3c, 0xf, 0x3, 0xc0,
+    0xf0, 0xf, 0x0, 0xf0, 0x3c, 0xf, 0x3, 0xc0,
+    0x3c, 0x3, 0xc0, 0xf0, 0x3c, 0xf, 0x0, 0xf0,
+    0xf, 0x3, 0xc0, 0xf0, 0x7c, 0x3, 0xc0, 0x3f,
+    0xff, 0x2, 0x43, 0xdb, 0x6, 0x0, 0xff, 0xfc,
+    0x0, 0x2f, 0x3f, 0x80, 0x0, 0x0, 0x0, 0x3,
+    0xf4, 0x2f, 0xc0, 0x0, 0x0, 0x0, 0xbf, 0x40,
+    0x1f, 0xd0, 0x0, 0x0, 0x6f, 0xf0, 0x0, 0xf,
+    0xe0, 0x0, 0x3, 0xfd, 0x0, 0x0, 0xb, 0xc0,
+    0x0, 0xa, 0x40, 0x0, 0x0, 0xa, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+5523 "唣" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x7, 0xc0, 0x0, 0x0, 0x0, 0x0,
@@ -20621,6 +22274,30 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0xf0, 0x0, 0x0, 0x0,
 
+    /* U+5530 "唰" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0xf0, 0x0, 0x2f, 0xff,
+    0xfc, 0x0, 0x3e, 0xff, 0x8b, 0xff, 0xff, 0x1,
+    0xf, 0xbf, 0xe2, 0xc0, 0x2, 0xc2, 0xc3, 0xec,
+    0x38, 0xb0, 0x0, 0xb0, 0xb0, 0xfb, 0xe, 0x2c,
+    0x0, 0x2c, 0x2c, 0x3e, 0xc3, 0x8b, 0x0, 0xb,
+    0xb, 0xf, 0xb0, 0xe2, 0xff, 0xff, 0xc2, 0xc3,
+    0xec, 0x38, 0xbf, 0xff, 0xf0, 0xb0, 0xfb, 0xe,
+    0x2c, 0x0, 0x0, 0x2c, 0x3e, 0xc3, 0x8b, 0x0,
+    0xe0, 0xb, 0xf, 0xb0, 0xe2, 0xc0, 0x38, 0x2,
+    0xc3, 0xec, 0x38, 0xf0, 0xe, 0x0, 0xb0, 0xfb,
+    0xe, 0x3d, 0xff, 0xfe, 0x2c, 0x3e, 0xc3, 0x8f,
+    0x7e, 0xfb, 0x8b, 0xf, 0xb0, 0xe3, 0xdd, 0x38,
+    0xe2, 0xc3, 0xec, 0x38, 0xf7, 0x4e, 0x38, 0xb0,
+    0xfb, 0xe, 0x39, 0xd3, 0x8e, 0x2c, 0x3e, 0xc3,
+    0x9e, 0x74, 0xe3, 0x8b, 0xf, 0xbf, 0xeb, 0x5d,
+    0x38, 0xe2, 0xc3, 0xef, 0xfb, 0xc7, 0x4e, 0x38,
+    0x0, 0xf0, 0x0, 0xf1, 0xd3, 0x8e, 0x0, 0x3c,
+    0x0, 0x78, 0x74, 0xeb, 0x80, 0xf, 0x0, 0x2c,
+    0x1d, 0x3b, 0xd0, 0x3, 0xc0, 0xf, 0x2, 0xe,
+    0x50, 0x6, 0xe0, 0x7, 0x40, 0x3, 0x80, 0xf,
+    0xf4, 0x0, 0x0, 0x0, 0xe0, 0x2, 0x90,
+
     /* U+5531 "唱" */
     0x0, 0x0, 0xa, 0xaa, 0xaa, 0xa0, 0x0, 0x0,
     0x1f, 0xff, 0xff, 0xf4, 0xff, 0xfc, 0x1f, 0x0,
@@ -21254,30 +22931,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0, 0xf0, 0x0,
 
-    /* U+5570 "啰" */
-    0x0, 0x0, 0x2a, 0xaa, 0xaa, 0xaa, 0x0, 0x0,
-    0xf, 0xff, 0xff, 0xff, 0xcf, 0xff, 0xc3, 0xd6,
-    0xd5, 0xf5, 0xf3, 0xff, 0xf0, 0xe0, 0xb0, 0x38,
-    0x3c, 0xf0, 0x3c, 0x38, 0x2c, 0xe, 0xf, 0x3c,
-    0xf, 0xe, 0xb, 0x3, 0x83, 0xcf, 0x3, 0xc3,
-    0x82, 0xc0, 0xe0, 0xf3, 0xc0, 0xf0, 0xff, 0xff,
-    0xff, 0xfc, 0xf0, 0x3c, 0x3f, 0xff, 0xff, 0xff,
-    0x3c, 0xf, 0x0, 0x7, 0x40, 0x0, 0xf, 0x3,
-    0xc0, 0x3, 0xd0, 0x0, 0x3, 0xc0, 0xf0, 0x2,
-    0xf0, 0x0, 0x0, 0xf0, 0x3c, 0x0, 0xff, 0xff,
-    0xfe, 0x3c, 0xf, 0x0, 0xff, 0xff, 0xff, 0x8f,
-    0x3, 0xc0, 0xfc, 0x0, 0x7, 0xd3, 0xc0, 0xf0,
-    0xbf, 0x40, 0x3, 0xe0, 0xf0, 0x3c, 0xbe, 0xf8,
-    0x2, 0xf0, 0x3c, 0xf, 0xbc, 0x1f, 0xc1, 0xf4,
-    0xf, 0x3, 0xdc, 0x0, 0xf1, 0xf8, 0x3, 0xd5,
-    0xf0, 0x0, 0xa, 0xf8, 0x0, 0xff, 0xfc, 0x0,
-    0x2, 0xf8, 0x0, 0x3f, 0xff, 0x0, 0x7, 0xf4,
-    0x0, 0x0, 0x0, 0x0, 0x1f, 0xf0, 0x0, 0x0,
-    0x0, 0x0, 0xbf, 0xd0, 0x0, 0x0, 0x0, 0x2,
-    0xff, 0x40, 0x0, 0x0, 0x0, 0x0, 0x7d, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0,
-
     /* U+5575 "啵" */
     0x0, 0x0, 0x0, 0x0, 0x1, 0x40, 0x0, 0x0,
     0x0, 0x0, 0x0, 0xf, 0x0, 0x0, 0x0, 0x4,
@@ -21582,32 +23235,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xf, 0xff, 0xff, 0xff, 0xff, 0xd0, 0x0, 0x3c,
     0x0, 0x0, 0x0, 0xb, 0x40,
 
-    /* U+5586 "喆" */
-    0x0, 0xb, 0x0, 0x0, 0x3, 0xc0, 0x0, 0x0,
-    0xf, 0x40, 0x0, 0x3, 0xc0, 0x0, 0x0, 0xf,
-    0x40, 0x0, 0x3, 0xc0, 0x0, 0x0, 0xf, 0x40,
-    0x0, 0x3, 0xc0, 0x0, 0x7f, 0xff, 0xff, 0xdf,
-    0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xdf, 0xff,
-    0xff, 0xfe, 0x0, 0xf, 0x40, 0x0, 0x3, 0xc0,
-    0x0, 0x0, 0xf, 0x40, 0x0, 0x3, 0xc0, 0x0,
-    0x0, 0xf, 0x40, 0x0, 0x3, 0xc0, 0x0, 0x0,
-    0xf, 0x40, 0x0, 0x3, 0xc0, 0x0, 0x0, 0xf,
-    0x40, 0x0, 0x3, 0xd0, 0x0, 0x1f, 0xff, 0xff,
-    0x4f, 0xff, 0xff, 0xf8, 0x1f, 0xff, 0xff, 0x4b,
-    0xff, 0xff, 0xf4, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0xb, 0xff, 0xff, 0x3, 0xff, 0xff, 0xf0, 0xb,
-    0xff, 0xff, 0x3, 0xff, 0xff, 0xf0, 0xb, 0x40,
-    0xf, 0x3, 0xc0, 0x0, 0xf0, 0xb, 0x40, 0xf,
-    0x3, 0xc0, 0x0, 0xf0, 0xb, 0x40, 0xf, 0x3,
-    0xc0, 0x0, 0xf0, 0xb, 0x40, 0xf, 0x3, 0xc0,
-    0x0, 0xf0, 0xb, 0x40, 0xf, 0x3, 0xc0, 0x0,
-    0xf0, 0xb, 0xff, 0xff, 0x3, 0xff, 0xff, 0xf0,
-    0xb, 0xff, 0xff, 0x3, 0xff, 0xff, 0xf0, 0xb,
-    0x40, 0xf, 0x3, 0xc0, 0x0, 0xf0, 0xb, 0x40,
-    0xf, 0x3, 0xc0, 0x0, 0xf0,
-
     /* U+5587 "喇" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0xb0, 0x0, 0x0, 0xe0, 0x0, 0x0, 0x2c,
@@ -21938,6 +23565,30 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x7, 0x80, 0xb, 0xe4, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+55A7 "喧" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x2e, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x1, 0xf0, 0x0, 0x0, 0x0, 0x1, 0x55, 0x5f,
+    0x55, 0x54, 0x3f, 0xfc, 0x3f, 0xff, 0xff, 0xff,
+    0xc3, 0xff, 0xc3, 0xea, 0xaa, 0xaa, 0xbc, 0x3c,
+    0x3c, 0x3c, 0x0, 0x0, 0x3, 0xc3, 0xc3, 0xc3,
+    0xc0, 0x0, 0x0, 0x3c, 0x3c, 0x3c, 0x3c, 0x0,
+    0x0, 0x3, 0xc3, 0xc3, 0xc1, 0x7f, 0xff, 0xff,
+    0x94, 0x3c, 0x3c, 0x2, 0xaa, 0xaa, 0xa4, 0x3,
+    0xc3, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x3c, 0x3c,
+    0x0, 0x0, 0x0, 0x0, 0x3, 0xc3, 0xc0, 0xbf,
+    0xff, 0xff, 0xc0, 0x3c, 0x3c, 0xb, 0xff, 0xff,
+    0xfc, 0x3, 0xc3, 0xc0, 0xb4, 0x0, 0x3, 0xc0,
+    0x3c, 0x3c, 0xb, 0x40, 0x0, 0x3c, 0x3, 0xc3,
+    0xc0, 0xbf, 0xff, 0xff, 0xc0, 0x3c, 0x3c, 0xb,
+    0xea, 0xaa, 0xbc, 0x3, 0xc3, 0xc0, 0xb4, 0x0,
+    0x3, 0xc0, 0x3c, 0x3c, 0xb, 0x40, 0x0, 0x3c,
+    0x3, 0xc3, 0xc0, 0xbf, 0xff, 0xff, 0xc0, 0x3f,
+    0xfc, 0x6, 0xaa, 0xaa, 0xa8, 0x3, 0xff, 0xc0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x2f, 0xff, 0xff, 0xff,
+    0xff, 0x0, 0x2, 0xff, 0xff, 0xff, 0xff, 0xe0,
+
     /* U+55B1 "喱" */
     0x0, 0x0, 0x3f, 0xff, 0xff, 0xff, 0xf2, 0xff,
     0xe0, 0xff, 0xff, 0xff, 0xff, 0xcb, 0xff, 0x83,
@@ -22269,32 +23920,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xf0, 0x3f, 0xc0, 0x0, 0x2c, 0x0, 0x70, 0x1,
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
 
-    /* U+55CF "嗏" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x3, 0xc0, 0x3, 0xc0, 0x0, 0x0, 0x0,
-    0xf, 0x0, 0xf, 0x0, 0x0, 0x0, 0x0, 0x3c,
-    0x0, 0x3c, 0x0, 0x3f, 0xfc, 0xbf, 0xff, 0xff,
-    0xff, 0xf0, 0xff, 0xf2, 0xff, 0xff, 0xff, 0xff,
-    0xc3, 0xc2, 0xc0, 0xf, 0x0, 0xf, 0x0, 0xf,
-    0xb, 0x0, 0x3c, 0x14, 0x3c, 0x0, 0x3c, 0x2c,
-    0x0, 0xf2, 0xfc, 0xe0, 0x0, 0xf0, 0xb0, 0x0,
-    0x1f, 0xfc, 0x0, 0x3, 0xc2, 0xc0, 0x2, 0xf4,
-    0xfc, 0x0, 0xf, 0xb, 0x0, 0x2f, 0x40, 0xfc,
-    0x0, 0x3c, 0x2c, 0x7, 0xf4, 0x0, 0xfd, 0x0,
-    0xf0, 0xb0, 0xff, 0x0, 0x0, 0xbf, 0x43, 0xc2,
-    0xdf, 0xe0, 0xf, 0x0, 0x7f, 0x8f, 0xb, 0x3d,
-    0x0, 0x3c, 0x0, 0x2d, 0x3c, 0x2c, 0x0, 0x0,
-    0xf0, 0x0, 0x0, 0xf0, 0xb0, 0xff, 0xff, 0xff,
-    0xff, 0x3, 0xc2, 0xc2, 0xff, 0xff, 0xff, 0xfc,
-    0xf, 0xb, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x3c,
-    0x2c, 0x0, 0xc0, 0xf0, 0xb0, 0x0, 0xff, 0xf0,
-    0xf, 0x83, 0xc3, 0xe0, 0x3, 0xff, 0xc0, 0xfc,
-    0xf, 0x3, 0xe0, 0x0, 0x0, 0xf, 0xc0, 0x3c,
-    0x3, 0xd0, 0x0, 0x0, 0xfc, 0x0, 0xf0, 0x7,
-    0xc0, 0x0, 0xf, 0xd0, 0x6f, 0xc0, 0xb, 0x80,
-    0x0, 0xc, 0x7, 0xfe, 0x0, 0xc, 0x0, 0x0,
-    0x0, 0xa, 0x90, 0x0, 0x0,
-
     /* U+55D1 "嗑" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x0, 0x0,
@@ -22474,33 +24099,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x3e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0,
 
-    /* U+55DE "嗞" */
-    0x0, 0x0, 0x0, 0x10, 0x0, 0x10, 0x0, 0x0,
-    0x0, 0x3, 0xd0, 0x0, 0xf0, 0x0, 0x0, 0x0,
-    0x7, 0xc0, 0xb, 0x80, 0x5, 0x55, 0x0, 0xb,
-    0x80, 0x7c, 0x0, 0x3f, 0xfc, 0x0, 0xf, 0x3,
-    0xd0, 0x0, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff,
-    0xd3, 0x82, 0xc3, 0xff, 0xff, 0xff, 0xff, 0x4e,
-    0xb, 0x0, 0x2d, 0x0, 0x3c, 0x0, 0x38, 0x2c,
-    0x0, 0xf0, 0x1, 0xe0, 0x0, 0xe0, 0xb0, 0x7,
-    0x80, 0xf, 0x0, 0x3, 0x82, 0xc0, 0x3c, 0x10,
-    0x78, 0x14, 0xe, 0xb, 0x1, 0xe0, 0xe2, 0xd0,
-    0xf0, 0x38, 0x2c, 0xb, 0x4b, 0x4f, 0x7, 0x80,
-    0xe0, 0xb0, 0x7c, 0x3c, 0xb4, 0x3c, 0x3, 0x82,
-    0xc3, 0xff, 0xe7, 0xef, 0xf0, 0xe, 0xb, 0xf,
-    0xff, 0x1f, 0xff, 0x40, 0x38, 0x2c, 0x14, 0x78,
-    0x14, 0x7c, 0x0, 0xe0, 0xb0, 0x3, 0xd0, 0x2,
-    0xd0, 0x3, 0x82, 0xc0, 0xf, 0x0, 0xf, 0x0,
-    0xe, 0xb, 0x0, 0xb7, 0x80, 0xb7, 0xc0, 0x38,
-    0x2c, 0x3, 0xcf, 0x3, 0xcf, 0x0, 0xe0, 0xb0,
-    0x2d, 0x2c, 0x2d, 0x1d, 0x3, 0xff, 0xc0, 0xf0,
-    0x74, 0xf0, 0x3c, 0xf, 0xff, 0xb, 0x40, 0xeb,
-    0x41, 0xf0, 0x0, 0x0, 0x7f, 0xff, 0xff, 0xff,
-    0xd0, 0x0, 0x0, 0xff, 0xff, 0xff, 0xff, 0x80,
-    0x0, 0x1, 0x40, 0x1e, 0x0, 0xe, 0x0, 0x0,
-    0x0, 0x0, 0x60, 0x0, 0x34, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0,
-
     /* U+55DF "嗟" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x2d, 0x0, 0xb, 0x40, 0x0, 0x0, 0x2,
@@ -23068,6 +24666,30 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xf0, 0x0, 0x8, 0x1, 0xe9, 0x0, 0x1, 0x40,
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+560E "嘎" */
+    0x0, 0x0, 0x7f, 0xff, 0xff, 0xff, 0xe0, 0x55,
+    0x55, 0xff, 0xff, 0xff, 0xff, 0xc3, 0xff, 0xf0,
+    0x0, 0x1f, 0x0, 0x0, 0xf, 0xff, 0xc0, 0x0,
+    0xb8, 0x0, 0x0, 0x3c, 0xf, 0xf, 0xff, 0xff,
+    0xff, 0x0, 0xf0, 0x3c, 0x3e, 0xaa, 0xaa, 0xbc,
+    0x3, 0xc0, 0xf0, 0xf0, 0x0, 0x0, 0xf0, 0xf,
+    0x3, 0xc3, 0xff, 0xff, 0xff, 0xc0, 0x3c, 0xf,
+    0xf, 0xaa, 0xaa, 0xaf, 0x0, 0xf0, 0x3c, 0x3c,
+    0x0, 0x0, 0x3c, 0x3, 0xc0, 0xf0, 0xff, 0xff,
+    0xff, 0xf0, 0xf, 0x3, 0xc3, 0xd5, 0x55, 0x57,
+    0xc0, 0x3c, 0xf, 0xf, 0x0, 0x0, 0xf, 0x0,
+    0xf0, 0x3c, 0x3f, 0xff, 0xff, 0xfc, 0x3, 0xc0,
+    0xf0, 0xaa, 0xea, 0xbe, 0xa0, 0xf, 0x3, 0xc0,
+    0xb, 0x40, 0xf4, 0x0, 0x3c, 0xf, 0x0, 0xf,
+    0x0, 0xf5, 0xa0, 0xf0, 0x3c, 0x5a, 0xbf, 0xff,
+    0xff, 0xd3, 0xc0, 0xf7, 0xff, 0xff, 0xa9, 0x90,
+    0xf, 0xff, 0xc5, 0x40, 0xf4, 0xb, 0xc0, 0x3f,
+    0xff, 0x0, 0x1, 0xf6, 0xfc, 0x0, 0x0, 0x0,
+    0x0, 0x3, 0xff, 0x43, 0x40, 0x0, 0x0, 0x6,
+    0xff, 0xf0, 0x1d, 0x0, 0x0, 0x1b, 0xff, 0xd3,
+    0xe0, 0xb0, 0x0, 0x0, 0xff, 0x90, 0x3, 0xff,
+    0xc0, 0x0, 0x1, 0x40, 0x0, 0x1, 0xfc, 0x0,
+
     /* U+560F "嘏" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0xb4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb4,
@@ -23096,30 +24718,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x80, 0xd0, 0x0, 0x14, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+5617 "嘗" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80,
-    0x3, 0xc0, 0x3, 0x0, 0x3, 0xf4, 0x3, 0xc0,
-    0x1f, 0x40, 0x0, 0xbd, 0x3, 0xc0, 0x7d, 0x0,
-    0x6a, 0xbe, 0xab, 0xea, 0xbe, 0xa8, 0xff, 0xff,
-    0xff, 0xff, 0xff, 0xfc, 0xf4, 0x0, 0x0, 0x0,
-    0x0, 0x3c, 0xf4, 0x55, 0x55, 0x55, 0x55, 0x3c,
-    0xf4, 0xff, 0xff, 0xff, 0xff, 0x3c, 0x50, 0xf0,
-    0x0, 0x0, 0xf, 0x14, 0x0, 0xff, 0xff, 0xff,
-    0xff, 0x0, 0x0, 0x55, 0x55, 0x55, 0x55, 0x0,
-    0xf, 0x40, 0x0, 0x5, 0xaf, 0x80, 0xf, 0x96,
-    0xbf, 0xff, 0xfa, 0x40, 0xf, 0xff, 0xfa, 0x50,
-    0x0, 0xf0, 0xf, 0xd0, 0x0, 0x0, 0x1, 0xf0,
-    0xb, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x1, 0x55,
-    0x55, 0x55, 0x55, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x7, 0xff, 0xff, 0xff, 0xff, 0xc0,
-    0x7, 0xd5, 0x55, 0x55, 0x5b, 0xc0, 0x7, 0xc0,
-    0x0, 0x0, 0x7, 0xc0, 0x7, 0xff, 0xff, 0xff,
-    0xff, 0xc0, 0x7, 0xd5, 0x55, 0x55, 0x5b, 0xc0,
-    0x7, 0xc0, 0x0, 0x0, 0x7, 0xc0, 0x7, 0xff,
-    0xff, 0xff, 0xff, 0xc0, 0x7, 0xea, 0xaa, 0xaa,
-    0xab, 0xc0, 0x7, 0xc0, 0x0, 0x0, 0x7, 0xc0,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
     /* U+5618 "嘘" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x7, 0x80, 0x0, 0x0, 0x0, 0x0,
@@ -23146,31 +24744,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0xf4, 0x3f, 0xff, 0xff, 0xff, 0x0, 0x1,
     0x80, 0x0, 0x0, 0x0, 0x0,
 
-    /* U+561A "嘚" */
-    0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x3, 0xcf, 0xff, 0xfe, 0x1, 0x55, 0x40,
-    0x2e, 0x3f, 0xff, 0xfc, 0xf, 0xff, 0x1, 0xf0,
-    0xf0, 0x0, 0xf0, 0x3e, 0xbc, 0xf, 0x43, 0xc0,
-    0x3, 0xc0, 0xf0, 0xb0, 0xf8, 0xf, 0xff, 0xff,
-    0x3, 0xc2, 0xcb, 0xc0, 0x3f, 0xff, 0xfc, 0xf,
-    0xb, 0x7c, 0x3c, 0xf0, 0x0, 0xf0, 0x3c, 0x2c,
-    0x10, 0xf3, 0xc0, 0x3, 0xc0, 0xf0, 0xb0, 0xb,
-    0x8f, 0xff, 0xff, 0x3, 0xc2, 0xc0, 0x7c, 0x3f,
-    0xff, 0xfc, 0xf, 0xb, 0x3, 0xe0, 0x0, 0x0,
-    0x0, 0x3c, 0x2c, 0x2f, 0x80, 0x0, 0x0, 0x0,
-    0xf0, 0xb0, 0xfe, 0x3f, 0xff, 0xff, 0x43, 0xc2,
-    0xcf, 0xf8, 0xff, 0xff, 0xfe, 0xf, 0xb, 0x7c,
-    0xe0, 0x0, 0x3, 0xc0, 0x3c, 0x2c, 0x43, 0x80,
-    0x0, 0xf, 0x0, 0xf0, 0xb0, 0xe, 0x7f, 0xff,
-    0xff, 0xd3, 0xc2, 0xc0, 0x39, 0xff, 0xff, 0xff,
-    0x4f, 0xb, 0x0, 0xe0, 0xd0, 0x3, 0xc0, 0x3c,
-    0x2c, 0x3, 0x83, 0xc0, 0xf, 0x0, 0xf0, 0xb0,
-    0xe, 0x7, 0xc0, 0x3c, 0x3, 0xff, 0xc0, 0x38,
-    0xb, 0x40, 0xf0, 0xf, 0xff, 0x0, 0xe0, 0x4,
-    0x3, 0xc0, 0x0, 0x0, 0x3, 0x80, 0x1, 0x7f,
-    0x0, 0x0, 0x0, 0xe, 0x0, 0xf, 0xf4, 0x0,
-    0x0, 0x0, 0x38, 0x0, 0x2a, 0x40, 0x0,
-
     /* U+561B "嘛" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x0, 0x0,
@@ -23248,30 +24821,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0x2a, 0xaa, 0xf, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0xf0, 0x0,
 
-    /* U+5621 "嘡" */
-    0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0,
-    0x0, 0x80, 0x1f, 0x0, 0x80, 0x0, 0x0, 0x1f,
-    0x1, 0xf0, 0x1f, 0x1, 0x55, 0x40, 0xb8, 0x1f,
-    0x3, 0xd0, 0x3f, 0xfd, 0x3, 0xd1, 0xf0, 0xf8,
-    0x3, 0xeb, 0xd0, 0xd, 0x1f, 0xf, 0x0, 0x3c,
-    0x2d, 0xbf, 0xff, 0xff, 0xff, 0xd3, 0xc2, 0xdf,
-    0xff, 0xff, 0xff, 0xfd, 0x3c, 0x2d, 0xf4, 0x0,
-    0x0, 0x2, 0xd3, 0xc2, 0xdf, 0x40, 0x0, 0x0,
-    0x2d, 0x3c, 0x2d, 0xf4, 0x0, 0x0, 0x2, 0xd3,
-    0xc2, 0xdf, 0xbf, 0xff, 0xff, 0xed, 0x3c, 0x2d,
-    0x7, 0xff, 0xff, 0xfc, 0x3, 0xc2, 0xd0, 0x78,
-    0x0, 0x3, 0xc0, 0x3c, 0x2d, 0x7, 0x80, 0x0,
-    0x3c, 0x3, 0xc2, 0xd0, 0x7f, 0xff, 0xff, 0xc0,
-    0x3c, 0x2d, 0x7, 0xff, 0xff, 0xfc, 0x3, 0xc2,
-    0xd0, 0x0, 0x1e, 0x0, 0x0, 0x3c, 0x2d, 0x0,
-    0x1, 0xe0, 0x0, 0x3, 0xc2, 0xd0, 0x0, 0x1e,
-    0x0, 0x0, 0x3c, 0x2d, 0x2f, 0xff, 0xff, 0xff,
-    0x3, 0xc2, 0xd3, 0xff, 0xff, 0xff, 0xf0, 0x3f,
-    0xfd, 0x0, 0x1, 0xe0, 0x0, 0x3, 0xff, 0xd0,
-    0x0, 0x1e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1,
-    0xe0, 0x0, 0x0, 0x0, 0x1f, 0xff, 0xff, 0xff,
-    0xff, 0x0, 0x1, 0xff, 0xff, 0xff, 0xff, 0xf0,
-
     /* U+5623 "嘣" */
     0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0,
     0x0, 0x0, 0xe, 0x0, 0x0, 0x0, 0x0, 0x2d,
@@ -23580,30 +25129,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xe0, 0x0, 0x7, 0xc0, 0x28, 0xd, 0x3, 0x80,
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
 
-    /* U+5647 "噇" */
-    0x0, 0x0, 0x0, 0x0, 0x90, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x0, 0x1,
-    0x55, 0x5f, 0x55, 0x54, 0xf, 0xff, 0x8f, 0xff,
-    0xff, 0xff, 0xf4, 0x3f, 0xfe, 0x15, 0xb9, 0x56,
-    0xe5, 0x40, 0xf0, 0x38, 0x0, 0xe0, 0xb, 0x0,
-    0x3, 0xc0, 0xe0, 0x3, 0xc0, 0x3c, 0x0, 0xf,
-    0x3, 0xaf, 0xff, 0xff, 0xff, 0xfc, 0x3c, 0xe,
-    0x7f, 0xff, 0xff, 0xff, 0xf0, 0xf0, 0x38, 0x0,
-    0x0, 0x0, 0x0, 0x3, 0xc0, 0xe1, 0xaa, 0xaa,
-    0xaa, 0xa0, 0xf, 0x3, 0x87, 0xff, 0xff, 0xff,
-    0xc0, 0x3c, 0xe, 0x1e, 0x0, 0xf0, 0xf, 0x0,
-    0xf0, 0x38, 0x78, 0x3, 0xc0, 0x3c, 0x3, 0xc0,
-    0xe1, 0xff, 0xff, 0xff, 0xf0, 0xf, 0x3, 0x87,
-    0xea, 0xbe, 0xab, 0xc0, 0x3c, 0xe, 0x1e, 0x0,
-    0xf0, 0xf, 0x0, 0xf0, 0x38, 0x7f, 0xff, 0xff,
-    0xfc, 0x3, 0xc0, 0xe1, 0xaa, 0xaf, 0xaa, 0xa0,
-    0xf, 0x3, 0x80, 0x0, 0x3c, 0x0, 0x0, 0x3f,
-    0xfe, 0x15, 0x56, 0xf5, 0x55, 0x40, 0xff, 0xf8,
-    0xff, 0xff, 0xff, 0xff, 0x1, 0x55, 0x40, 0x0,
-    0xf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c,
-    0x0, 0x0, 0x0, 0x1, 0xaa, 0xaa, 0xfa, 0xaa,
-    0xa4, 0x0, 0x7, 0xff, 0xff, 0xff, 0xff, 0xd0,
-
     /* U+564C "噌" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0,
     0x0, 0xf, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x0,
@@ -23730,6 +25255,30 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x1f, 0xe0, 0x0, 0x0, 0xbf, 0x0, 0x0,
     0x24, 0x0, 0x0, 0x0, 0x14,
 
+    /* U+5658 "噘" */
+    0x0, 0x0, 0x55, 0x55, 0x55, 0x55, 0x40, 0x0,
+    0x3, 0xff, 0xff, 0xff, 0xff, 0x4b, 0xff, 0xf,
+    0xaa, 0xaa, 0xaa, 0xa8, 0x2f, 0xfc, 0x38, 0x90,
+    0x30, 0x24, 0x0, 0xb0, 0xf0, 0xe2, 0xc1, 0xc1,
+    0xd0, 0x2, 0xc3, 0xc3, 0x83, 0x4e, 0xb, 0x0,
+    0xb, 0xf, 0xe, 0x9, 0x70, 0x3d, 0x54, 0x2c,
+    0x3c, 0x39, 0xff, 0xf8, 0xff, 0xf0, 0xb0, 0xf0,
+    0xeb, 0xff, 0xf7, 0x42, 0xc2, 0xc3, 0xc3, 0x80,
+    0xb0, 0x3c, 0xe, 0xb, 0xf, 0xe, 0x22, 0xca,
+    0xed, 0x74, 0x2c, 0x3c, 0x39, 0xcb, 0x3f, 0x3a,
+    0xc0, 0xb0, 0xf0, 0xe7, 0x2c, 0xe0, 0xee, 0x2,
+    0xc3, 0xc3, 0x9c, 0xb3, 0x83, 0x80, 0xb, 0xf,
+    0xe, 0x72, 0xce, 0xe, 0x0, 0x2c, 0x3c, 0x39,
+    0xcb, 0x38, 0x3c, 0x0, 0xb0, 0xf0, 0xe7, 0xbd,
+    0xe1, 0xf0, 0x2, 0xc3, 0xc7, 0x5f, 0xff, 0x8b,
+    0xd0, 0xb, 0xf, 0x2d, 0x17, 0xd4, 0x3f, 0x80,
+    0x2f, 0xfc, 0xb0, 0xe, 0x0, 0xef, 0x0, 0xbf,
+    0xf3, 0xc0, 0x74, 0xb, 0x1e, 0x0, 0x55, 0x1e,
+    0x2, 0xc0, 0x78, 0x3c, 0x0, 0x0, 0xf0, 0x1e,
+    0x3, 0xc0, 0x7c, 0x0, 0x7, 0x80, 0xf0, 0x3d,
+    0x0, 0xb8, 0x0, 0x3c, 0xf, 0x42, 0xd0, 0x0,
+    0xf0, 0x0, 0x50, 0x4, 0x1, 0x0, 0x0, 0x0,
+
     /* U+5659 "噙" */
     0x0, 0x0, 0x0, 0x2, 0xf4, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x2f, 0xf4, 0x0, 0x0, 0x0, 0x0,
@@ -24138,6 +25687,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x7d, 0x3, 0xfe, 0x0, 0x4, 0x0, 0x0,
     0x40, 0xa, 0x90, 0x0, 0x0,
 
+    /* U+568F "嚏" */
+    0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xb, 0x80, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x2e, 0x0, 0x0, 0x0, 0x0, 0xf, 0xff,
+    0xff, 0xff, 0xd0, 0x3f, 0xfc, 0x2a, 0xab, 0xfa,
+    0xaa, 0x0, 0xff, 0xf0, 0x0, 0xb, 0x80, 0x0,
+    0x3, 0x83, 0xca, 0xaa, 0xbf, 0xaa, 0xa9, 0xe,
+    0xf, 0x3f, 0xff, 0xff, 0xff, 0xf8, 0x38, 0x3c,
+    0xf0, 0x0, 0x0, 0x1, 0xe0, 0xe0, 0xf3, 0xd5,
+    0x55, 0x55, 0x57, 0x83, 0x83, 0xca, 0xff, 0xff,
+    0xff, 0xe9, 0xe, 0xf, 0x3, 0xc0, 0x78, 0x7,
+    0x40, 0x38, 0x3c, 0xf, 0x56, 0xe5, 0x6d, 0x0,
+    0xe0, 0xf0, 0x3f, 0xff, 0xff, 0xf4, 0x3, 0x83,
+    0xc0, 0xf0, 0x1e, 0x1, 0xd0, 0xe, 0xf, 0x3,
+    0xff, 0xff, 0xff, 0x40, 0x38, 0x3c, 0x5, 0x55,
+    0x55, 0x54, 0x0, 0xe0, 0xf0, 0x0, 0x0, 0x0,
+    0x0, 0x3, 0x83, 0xcf, 0xff, 0xff, 0xff, 0xfc,
+    0xe, 0xf, 0x2a, 0xaa, 0xfe, 0xaa, 0xf0, 0x38,
+    0x3c, 0xb, 0x0, 0xf0, 0x7, 0x40, 0xfa, 0xf0,
+    0x3c, 0x3, 0xea, 0xa4, 0x3, 0xff, 0xc1, 0xf0,
+    0xf, 0xff, 0xe0, 0x5, 0x54, 0xf, 0xf0, 0x3c,
+    0x0, 0x0, 0x0, 0x0, 0xba, 0xf5, 0xf0, 0x0,
+    0x0, 0x0, 0xb, 0xc2, 0xff, 0xfa, 0xaa, 0xa0,
+    0x0, 0xfc, 0x0, 0x6f, 0xff, 0xff, 0x80, 0x2,
+    0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+5693 "嚓" */
     0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0,
     0x0, 0x0, 0xb, 0x80, 0x0, 0x0, 0x0, 0x0,
@@ -24164,59 +25740,30 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x3d, 0x3, 0xfd, 0x0, 0x1f, 0x0, 0x0,
     0x0, 0x6, 0x90, 0x0, 0x14,
 
-    /* U+569E "嚞" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x1, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x7, 0x80, 0x0, 0x0, 0xf, 0xff, 0xff, 0xff,
-    0xff, 0xff, 0xfc, 0x2a, 0xaa, 0xaa, 0xbe, 0xaa,
-    0xaa, 0xa0, 0x0, 0x0, 0x1, 0xe0, 0x0, 0x0,
-    0x0, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x1,
-    0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x90, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0xff, 0xff,
-    0xff, 0xff, 0xf0, 0x0, 0xb, 0xaa, 0xaa, 0xaa,
-    0xab, 0xc0, 0x0, 0x2d, 0x0, 0x0, 0x0, 0xf,
-    0x0, 0x0, 0xbf, 0xff, 0xff, 0xff, 0xfc, 0x0,
-    0x1, 0xaa, 0xaa, 0xaa, 0xaa, 0xa0, 0x0, 0x0,
-    0x60, 0x0, 0x0, 0x24, 0x0, 0x0, 0x2, 0xc0,
-    0x0, 0x0, 0xe0, 0x0, 0x7f, 0xff, 0xff, 0xdf,
-    0xff, 0xff, 0xf8, 0xaa, 0xbe, 0xaa, 0x2a, 0xaf,
-    0xaa, 0x90, 0x0, 0xb0, 0x0, 0x0, 0x38, 0x0,
-    0x7, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xf4, 0xa,
-    0xaa, 0xaa, 0x46, 0xaa, 0xaa, 0x80, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, 0xf4,
-    0x7f, 0xff, 0xfd, 0x3, 0xea, 0xaa, 0xe1, 0xfa,
-    0xaa, 0xf4, 0xe, 0x0, 0x3, 0x87, 0x0, 0x1,
-    0xd0, 0x3e, 0xaa, 0xae, 0x1e, 0xaa, 0xab, 0x40,
-    0xff, 0xff, 0xf8, 0x7f, 0xff, 0xfd, 0x3, 0x80,
-    0x0, 0xe1, 0xc0, 0x0, 0x74,
-
-    /* U+56A2 "嚢" */
-    0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x78, 0x0, 0x0, 0x0, 0x2f, 0xff,
-    0xff, 0xff, 0xff, 0xff, 0xf0, 0x1a, 0xaa, 0xaa,
-    0xbe, 0xaa, 0xaa, 0x90, 0x0, 0x15, 0x55, 0x7d,
-    0x55, 0x54, 0x0, 0x0, 0xbf, 0xff, 0xff, 0xff,
-    0xfc, 0x0, 0x0, 0xb4, 0x0, 0x78, 0x0, 0x3c,
-    0x0, 0x0, 0xbf, 0xff, 0xff, 0xff, 0xfc, 0x0,
-    0x0, 0x15, 0x55, 0x7d, 0x55, 0x54, 0x0, 0x5,
-    0x55, 0x55, 0xbd, 0x55, 0x55, 0x50, 0x1f, 0xff,
-    0xff, 0xff, 0xff, 0xff, 0xe0, 0x1e, 0x0, 0x19,
-    0x0, 0xe4, 0x0, 0xe0, 0x1d, 0x16, 0xfe, 0x0,
-    0xff, 0xe4, 0xe0, 0x3, 0xff, 0xe0, 0x0, 0x1a,
-    0xff, 0x0, 0x2, 0x90, 0xb0, 0x0, 0x3c, 0x6,
-    0x0, 0xf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
-    0x5, 0x55, 0xf9, 0x55, 0x7e, 0x55, 0x40, 0x1,
-    0x55, 0xf9, 0x55, 0x7e, 0x55, 0x0, 0x3, 0xff,
-    0xff, 0xff, 0xff, 0xff, 0x40, 0x0, 0x0, 0xb0,
-    0x0, 0x3c, 0x0, 0x0, 0x2f, 0xff, 0xff, 0xff,
-    0xff, 0xff, 0xf0, 0x15, 0x55, 0x6f, 0xfe, 0x55,
-    0x6e, 0x50, 0x0, 0x1, 0xbf, 0x6f, 0x0, 0x7d,
-    0x0, 0x0, 0xbf, 0xf4, 0x7, 0xeb, 0xf4, 0x0,
-    0x7f, 0xfa, 0xe0, 0x5, 0xff, 0x80, 0x0, 0xbe,
-    0x41, 0xe6, 0xfd, 0xb, 0xff, 0x94, 0x0, 0x3,
-    0xff, 0xd0, 0x0, 0x6f, 0xfc, 0x0, 0x3, 0xe0,
-    0x0, 0x0, 0x0, 0x54, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0,
+    /* U+56A3 "嚣" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f,
+    0xff, 0xfd, 0xf, 0xff, 0xfe, 0x0, 0x7e, 0xaa,
+    0xf4, 0x3e, 0xaa, 0xb8, 0x1, 0xe0, 0x2, 0xd0,
+    0xf0, 0x1, 0xe0, 0x7, 0x80, 0xb, 0x43, 0xc0,
+    0x7, 0x80, 0x1f, 0xff, 0xfd, 0xf, 0xff, 0xfe,
+    0x0, 0x2a, 0xaa, 0xa4, 0x2a, 0xaa, 0xa4, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xf4, 0xaa, 0xaa, 0xab,
+    0xfa, 0xaa, 0xaa, 0x80, 0x0, 0x0, 0xb, 0x80,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x3d, 0x0, 0x0,
+    0x0, 0x0, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x0,
+    0x3, 0xea, 0xaa, 0xaa, 0xaa, 0xf4, 0x0, 0xf,
+    0x0, 0x7, 0x80, 0x3, 0xd0, 0x0, 0x3c, 0x0,
+    0x7e, 0x0, 0xf, 0x40, 0x0, 0xa0, 0x1b, 0xf7,
+    0xf9, 0x28, 0x0, 0x5, 0xaf, 0xfd, 0x6, 0xff,
+    0xe4, 0x7, 0xff, 0xf9, 0x0, 0x0, 0x1b, 0xff,
+    0x4a, 0x94, 0x0, 0x0, 0x0, 0x0, 0x6d, 0x3,
+    0xff, 0xff, 0x47, 0xff, 0xff, 0x80, 0xf, 0xaa,
+    0xbd, 0x1f, 0xaa, 0xbe, 0x0, 0x3c, 0x0, 0x74,
+    0x78, 0x0, 0xb8, 0x0, 0xf0, 0x1, 0xd1, 0xe0,
+    0x2, 0xe0, 0x3, 0xff, 0xff, 0x47, 0xff, 0xff,
+    0x80, 0xf, 0xaa, 0xbd, 0x1f, 0xaa, 0xbe, 0x0,
+    0x3c, 0x0, 0x74, 0x78, 0x0, 0xb8, 0x0,
 
     /* U+56AF "嚯" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -24295,60 +25842,106 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x3, 0xf9, 0xe, 0x2f, 0xf0, 0x0,
     0x0, 0x4, 0x0, 0x0, 0x29, 0x0, 0x0,
 
-    /* U+56C5 "囅" */
-    0x1f, 0xf6, 0xff, 0x1a, 0xaa, 0xaa, 0x90, 0x1e,
-    0xb6, 0xeb, 0x2f, 0xff, 0xff, 0xe0, 0x1c, 0x36,
-    0xc3, 0x2c, 0x0, 0x0, 0xe0, 0x1c, 0x36, 0xc3,
-    0x2c, 0x0, 0x0, 0xe0, 0x1c, 0x76, 0xc7, 0x2c,
-    0x0, 0x0, 0xe0, 0x1f, 0xf6, 0xff, 0x2f, 0xff,
-    0xff, 0xe0, 0x5, 0x51, 0x55, 0x2f, 0xff, 0xff,
-    0xd0, 0x0, 0x0, 0x0, 0x2c, 0x4, 0x5, 0x0,
-    0xf, 0xff, 0xfe, 0x2c, 0xd, 0xe, 0x0, 0xf,
-    0xaf, 0xae, 0x2c, 0xd, 0xe, 0x0, 0xe, 0xe,
-    0xe, 0x2d, 0xff, 0xff, 0xf0, 0xe, 0xe, 0xe,
-    0x2d, 0xbf, 0xaf, 0xa0, 0xf, 0xff, 0xfe, 0x2c,
-    0xd, 0xe, 0x0, 0xf, 0xaf, 0xae, 0x2c, 0xd,
-    0xe, 0x0, 0xe, 0xe, 0xe, 0x2c, 0x1e, 0xe,
-    0x0, 0xe, 0xe, 0xe, 0x2f, 0xff, 0xff, 0xf8,
-    0xf, 0xff, 0xfe, 0x3e, 0xfb, 0xea, 0xa4, 0xa,
-    0xaf, 0xa9, 0x3c, 0xb1, 0xd0, 0x90, 0x0, 0xe,
-    0x0, 0x38, 0xb0, 0xf2, 0xe0, 0x0, 0xe, 0x0,
-    0x38, 0xb0, 0xbf, 0x80, 0xff, 0xff, 0xff, 0xb4,
-    0xb0, 0x3e, 0x0, 0xbf, 0xff, 0xff, 0xf0, 0xb0,
-    0x1e, 0x0, 0x0, 0xe, 0x0, 0xf0, 0xb1, 0xcb,
-    0xc0, 0x0, 0xe, 0x1, 0xe0, 0xbf, 0xc2, 0xf8,
-    0x0, 0xe, 0x3, 0xc0, 0xfd, 0x0, 0x7c, 0x0,
-    0xe, 0x2, 0x80, 0xe0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x0,
-
-    /* U+56CD "囍" */
+    /* U+56CA "囊" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0xf, 0x0, 0x0, 0x2, 0xc0, 0x0, 0x0, 0xf,
-    0x0, 0x0, 0x2, 0xc0, 0x0, 0x2a, 0xaf, 0xaa,
-    0x8f, 0xff, 0xff, 0xf8, 0x7f, 0xff, 0xff, 0xdf,
-    0xff, 0xff, 0xfc, 0x0, 0xf, 0x0, 0x0, 0x2,
-    0xc0, 0x0, 0x0, 0xf, 0x0, 0x0, 0x2, 0xd0,
-    0x0, 0x2f, 0xff, 0xff, 0x8b, 0xff, 0xff, 0xf4,
-    0x2f, 0xff, 0xff, 0x8b, 0xff, 0xff, 0xf0, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa, 0xaa,
-    0xaa, 0x2, 0xaa, 0xaa, 0xa0, 0xf, 0xff, 0xff,
-    0x3, 0xff, 0xff, 0xe0, 0xf, 0x0, 0xf, 0x3,
-    0x80, 0x0, 0xe0, 0xf, 0x0, 0xf, 0x3, 0x80,
-    0x0, 0xe0, 0xf, 0xff, 0xff, 0x3, 0xff, 0xff,
-    0xe0, 0xb, 0xea, 0xbe, 0x2, 0xbe, 0xaf, 0x90,
-    0x1, 0xd0, 0x74, 0x0, 0x38, 0xe, 0x0, 0x1,
-    0xe0, 0xf4, 0x0, 0x3c, 0x1d, 0x0, 0xbf, 0xff,
-    0xff, 0xcf, 0xff, 0xff, 0xfd, 0x6a, 0xaa, 0xaa,
-    0x8b, 0xff, 0xff, 0xfc, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0xf, 0xff, 0xff, 0x7, 0xff,
-    0xff, 0xe0, 0xf, 0xaa, 0xaf, 0x7, 0xff, 0xff,
-    0xf0, 0xe, 0x0, 0xb, 0x7, 0x80, 0x0, 0xf0,
-    0xe, 0x55, 0x5f, 0x7, 0x80, 0x0, 0xf0, 0xf,
-    0xff, 0xff, 0x7, 0xff, 0xff, 0xf0, 0xf, 0x55,
-    0x5f, 0x7, 0xea, 0xaa, 0xf0, 0x0, 0x0, 0x0,
-    0x7, 0x80, 0x0, 0xf0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x7, 0xc0, 0x0, 0x0, 0x0, 0x2a,
+    0xaa, 0xaa, 0xfa, 0xaa, 0xaa, 0x80, 0x1f, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xf0, 0x0, 0x0, 0x0,
+    0x1f, 0x0, 0x0, 0x0, 0x0, 0xb, 0xff, 0xff,
+    0xff, 0xff, 0xc0, 0x0, 0x2, 0xd0, 0x1, 0xf0,
+    0x0, 0xf0, 0x0, 0x0, 0xbf, 0xff, 0xff, 0xff,
+    0xfc, 0x0, 0x0, 0x0, 0x0, 0x1f, 0x0, 0x0,
+    0x0, 0x0, 0x55, 0x55, 0x5b, 0xd5, 0x55, 0x55,
+    0x0, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+    0x1f, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf0, 0x7,
+    0xcf, 0xff, 0xf1, 0xff, 0xfe, 0x3c, 0x0, 0x53,
+    0xc0, 0x3c, 0x78, 0x7, 0x80, 0x0, 0x0, 0xbf,
+    0xff, 0x1f, 0xff, 0xd0, 0x0, 0x5, 0x55, 0xf5,
+    0x55, 0x6e, 0x55, 0x40, 0x3, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xfc, 0x0, 0x0, 0xf, 0x0, 0x2,
+    0xd0, 0x0, 0x0, 0x2f, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0x0, 0x0, 0x0, 0xf0, 0x0, 0x2d, 0x0,
+    0x0, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0x1, 0x55, 0x55, 0xff, 0xd5, 0x55, 0xd5, 0x40,
+    0x0, 0x6, 0xf8, 0xbc, 0x1, 0xf4, 0x0, 0x0,
+    0x6f, 0xf0, 0x7, 0xeb, 0xf4, 0x0, 0x1b, 0xfe,
+    0xbc, 0x1, 0x6f, 0xe0, 0x0, 0xb, 0xe4, 0x1f,
+    0x6f, 0xe0, 0xbf, 0xf9, 0x40, 0x0, 0xf, 0xfe,
+    0x40, 0x0, 0x6f, 0xf0, 0x0, 0x3, 0x90, 0x0,
+    0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+56D4 "囔" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xf, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x7c, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff,
+    0xff, 0xff, 0xf0, 0xbf, 0xf0, 0x55, 0x57, 0xd5,
+    0x55, 0x2, 0xff, 0xc0, 0xaa, 0xaf, 0xaa, 0xa0,
+    0xb, 0xf, 0x3, 0xd5, 0x7d, 0x57, 0xc0, 0x2c,
+    0x3c, 0xf, 0xff, 0xff, 0xff, 0x0, 0xb0, 0xf0,
+    0x15, 0x57, 0xd5, 0x54, 0x2, 0xc3, 0xc5, 0x55,
+    0x5f, 0x55, 0x55, 0xb, 0xf, 0x3f, 0xff, 0xff,
+    0xff, 0xfc, 0x2c, 0x3c, 0xf0, 0x0, 0x0, 0x0,
+    0xf0, 0xb0, 0xf3, 0xef, 0xfd, 0xbf, 0xfb, 0xc2,
+    0xc3, 0xc5, 0xb0, 0x36, 0xc0, 0xe0, 0xb, 0xf,
+    0x1, 0xff, 0xd7, 0xff, 0x40, 0x2c, 0x3c, 0x55,
+    0xb9, 0x56, 0xd5, 0x40, 0xb0, 0xf3, 0xff, 0xff,
+    0xff, 0xff, 0x82, 0xc3, 0xc0, 0x7, 0x40, 0x1d,
+    0x0, 0xb, 0xf, 0x1f, 0xff, 0xff, 0xff, 0xf0,
+    0x2c, 0x3c, 0x15, 0xb9, 0x56, 0xd5, 0x40, 0xb0,
+    0xf6, 0xab, 0xfa, 0xaf, 0xea, 0x92, 0xff, 0xc5,
+    0x56, 0xff, 0x55, 0xb5, 0xb, 0xff, 0x0, 0x2f,
+    0xae, 0x7, 0xc0, 0x5, 0x54, 0x1f, 0xf0, 0x2f,
+    0xf8, 0x0, 0x0, 0x2f, 0xfb, 0xc0, 0x5f, 0xd0,
+    0x0, 0x0, 0xf9, 0xf, 0x7f, 0xb, 0xfe, 0x40,
+    0x0, 0x0, 0x7f, 0xd0, 0x1, 0xbf, 0x0, 0x0,
+    0x1, 0xd0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
+    /* U+56D7 "囗" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xf7, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xdf, 0x55, 0x55, 0x55, 0x55, 0x6f, 0x7c,
+    0x0, 0x0, 0x0, 0x0, 0xbd, 0xf0, 0x0, 0x0,
+    0x0, 0x2, 0xf7, 0xc0, 0x0, 0x0, 0x0, 0xb,
+    0xdf, 0x0, 0x0, 0x0, 0x0, 0x2f, 0x7c, 0x0,
+    0x0, 0x0, 0x0, 0xbd, 0xf0, 0x0, 0x0, 0x0,
+    0x2, 0xf7, 0xc0, 0x0, 0x0, 0x0, 0xb, 0xdf,
+    0x0, 0x0, 0x0, 0x0, 0x2f, 0x7c, 0x0, 0x0,
+    0x0, 0x0, 0xbd, 0xf0, 0x0, 0x0, 0x0, 0x2,
+    0xf7, 0xc0, 0x0, 0x0, 0x0, 0xb, 0xdf, 0x0,
+    0x0, 0x0, 0x0, 0x2f, 0x7c, 0x0, 0x0, 0x0,
+    0x0, 0xbd, 0xf0, 0x0, 0x0, 0x0, 0x2, 0xf7,
+    0xc0, 0x0, 0x0, 0x0, 0xb, 0xdf, 0x0, 0x0,
+    0x0, 0x0, 0x2f, 0x7c, 0x0, 0x0, 0x0, 0x0,
+    0xbd, 0xf4, 0x0, 0x0, 0x0, 0x2, 0xf7, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0x7c, 0x0, 0x0, 0x0, 0x0, 0xbd,
+    0xf0, 0x0, 0x0, 0x0, 0x2, 0xf0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
+    /* U+56DA "囚" */
+    0x15, 0x55, 0x55, 0x55, 0x55, 0x54, 0x7f, 0xff,
+    0xff, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xff, 0xff,
+    0xff, 0xfc, 0x7c, 0x0, 0x0, 0x0, 0x0, 0x3c,
+    0x7c, 0x0, 0x3, 0x80, 0x0, 0x3c, 0x7c, 0x0,
+    0x3, 0xc0, 0x0, 0x3c, 0x7c, 0x0, 0x7, 0xc0,
+    0x0, 0x3c, 0x7c, 0x0, 0x7, 0xc0, 0x0, 0x3c,
+    0x7c, 0x0, 0xb, 0x80, 0x0, 0x3c, 0x7c, 0x0,
+    0xf, 0x80, 0x0, 0x3c, 0x7c, 0x0, 0xf, 0xe0,
+    0x0, 0x3c, 0x7c, 0x0, 0x2f, 0xf8, 0x0, 0x3c,
+    0x7c, 0x0, 0x3d, 0xbd, 0x0, 0x3c, 0x7c, 0x0,
+    0xbc, 0x2f, 0x40, 0x3c, 0x7c, 0x2, 0xf4, 0xb,
+    0xd0, 0x3c, 0x7c, 0x7, 0xe0, 0x3, 0xf0, 0x3c,
+    0x7c, 0x1f, 0x80, 0x0, 0xfc, 0x3c, 0x7c, 0xbe,
+    0x0, 0x0, 0x3e, 0x3c, 0x7c, 0xf8, 0x0, 0x0,
+    0x1d, 0x3c, 0x7c, 0x10, 0x0, 0x0, 0x4, 0x3c,
+    0x7c, 0x0, 0x0, 0x0, 0x0, 0x3c, 0x7c, 0x0,
+    0x0, 0x0, 0x0, 0x3c, 0x7f, 0xff, 0xff, 0xff,
+    0xff, 0xfc, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfc,
+    0x7c, 0x0, 0x0, 0x0, 0x0, 0x7c, 0x7c, 0x0,
+    0x0, 0x0, 0x0, 0x3c,
+
     /* U+56DB "四" */
     0x15, 0x55, 0x55, 0x55, 0x55, 0x54, 0x7f, 0xff,
     0xff, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xff, 0xff,
@@ -24502,6 +26095,28 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xf4, 0x0, 0x0, 0x0, 0x0, 0x7c, 0xf4, 0x0,
     0x0, 0x0, 0x0, 0x3c,
 
+    /* U+56E4 "囤" */
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xfc, 0xf4, 0x0, 0x0, 0x0,
+    0x0, 0x7c, 0xf4, 0x0, 0x2, 0x40, 0x0, 0x3c,
+    0xf4, 0x0, 0x7, 0x80, 0x0, 0x3c, 0xf4, 0x0,
+    0x7, 0x80, 0x0, 0x3c, 0xf4, 0xff, 0xff, 0xff,
+    0xff, 0x3c, 0xf4, 0xff, 0xff, 0xff, 0xfe, 0x3c,
+    0xf4, 0x0, 0x7, 0x80, 0x0, 0x3c, 0xf4, 0x2c,
+    0x7, 0x80, 0xf0, 0x3c, 0xf4, 0x2c, 0x7, 0x80,
+    0xf0, 0x3c, 0xf4, 0x2c, 0x7, 0x80, 0xf0, 0x3c,
+    0xf4, 0x2c, 0x7, 0x80, 0xf0, 0x3c, 0xf4, 0x2f,
+    0xff, 0xff, 0xf0, 0x3c, 0xf4, 0x2f, 0xff, 0xff,
+    0xf0, 0x3c, 0xf4, 0x0, 0x7, 0x80, 0x0, 0x3c,
+    0xf4, 0x0, 0x7, 0x80, 0x8, 0x3c, 0xf4, 0x0,
+    0x7, 0x80, 0x1e, 0x3c, 0xf4, 0x0, 0x7, 0xc0,
+    0x2d, 0x3c, 0xf4, 0x0, 0x3, 0xff, 0xfc, 0x3c,
+    0xf4, 0x0, 0x0, 0xbf, 0xe4, 0x3c, 0xf4, 0x0,
+    0x0, 0x0, 0x0, 0x3c, 0xf4, 0x0, 0x0, 0x0,
+    0x0, 0x7c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xf4, 0x0,
+    0x0, 0x0, 0x0, 0x3c,
+
     /* U+56EB "囫" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff,
     0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 0xff,
@@ -24546,6 +26161,27 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x7c, 0x0, 0x0, 0x0, 0x0, 0x3d, 0x7c, 0x0,
     0x0, 0x0, 0x0, 0x3d,
 
+    /* U+56F0 "困" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xfd, 0x0, 0x0, 0x0, 0x0, 0x1f, 0xf4,
+    0x0, 0x7, 0x80, 0x0, 0x7f, 0xd0, 0x0, 0x1e,
+    0x0, 0x1, 0xff, 0x40, 0x0, 0x78, 0x0, 0x7,
+    0xfd, 0x3f, 0xff, 0xff, 0xff, 0x1f, 0xf4, 0xff,
+    0xff, 0xff, 0xfc, 0x7f, 0xd0, 0x0, 0x7e, 0x0,
+    0x1, 0xff, 0x40, 0x2, 0xf8, 0x0, 0x7, 0xfd,
+    0x0, 0x1f, 0xe4, 0x0, 0x1f, 0xf4, 0x0, 0xff,
+    0xfd, 0x0, 0x7f, 0xd0, 0xf, 0x9e, 0xfd, 0x1,
+    0xff, 0x40, 0xfc, 0x78, 0xbd, 0x7, 0xfd, 0xf,
+    0xc1, 0xe0, 0xbd, 0x1f, 0xf4, 0xfc, 0x7, 0x80,
+    0xbd, 0x7f, 0xdf, 0xc0, 0x1e, 0x0, 0xb1, 0xff,
+    0x48, 0x0, 0x78, 0x0, 0x47, 0xfd, 0x0, 0x1,
+    0xe0, 0x0, 0x1f, 0xf4, 0x0, 0x7, 0x80, 0x0,
+    0x7f, 0xd0, 0x0, 0x0, 0x0, 0x1, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xf4, 0x0, 0x0, 0x0, 0x0, 0x7f,
+    0xd0, 0x0, 0x0, 0x0, 0x1, 0xf0,
+
     /* U+56F1 "囱" */
     0x0, 0x0, 0x19, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x2f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3d, 0x0,
@@ -24569,6 +26205,28 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xff, 0xff, 0xff, 0xfc, 0x7c, 0x0, 0x0, 0x0,
     0x0, 0x7c, 0x7c, 0x0, 0x0, 0x0, 0x0, 0x3c,
 
+    /* U+56F4 "围" */
+    0x7f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x7f, 0xff,
+    0xff, 0xff, 0xff, 0xfd, 0x7c, 0x0, 0x5, 0x0,
+    0x0, 0x3d, 0x7c, 0x0, 0xf, 0x0, 0x0, 0x3d,
+    0x7c, 0x0, 0xf, 0x0, 0x0, 0x3d, 0x7c, 0xbf,
+    0xff, 0xff, 0xfd, 0x3d, 0x7c, 0xbf, 0xff, 0xff,
+    0xfd, 0x3d, 0x7c, 0x0, 0xf, 0x0, 0x0, 0x3d,
+    0x7c, 0x0, 0xf, 0x0, 0x0, 0x3d, 0x7c, 0x0,
+    0x1f, 0x0, 0x0, 0x3d, 0x7c, 0x3f, 0xff, 0xff,
+    0xf8, 0x3d, 0x7c, 0x2a, 0xaf, 0xaa, 0xa4, 0x3d,
+    0x7c, 0x0, 0xf, 0x0, 0x0, 0x3d, 0x7c, 0x0,
+    0xf, 0x0, 0x0, 0x3d, 0x7c, 0xff, 0xff, 0xff,
+    0xfc, 0x3d, 0x7c, 0xaa, 0xbf, 0xaa, 0xf8, 0x3d,
+    0x7c, 0x0, 0xf, 0x0, 0x38, 0x3d, 0x7c, 0x0,
+    0xf, 0x0, 0x74, 0x3d, 0x7c, 0x0, 0xf, 0x1a,
+    0xf4, 0x3d, 0x7c, 0x0, 0xf, 0x2f, 0xf0, 0x3d,
+    0x7c, 0x0, 0xf, 0xa, 0x40, 0x3d, 0x7c, 0x0,
+    0xa, 0x0, 0x0, 0x3d, 0x7f, 0xff, 0xff, 0xff,
+    0xff, 0xfd, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfd,
+    0x7d, 0x55, 0x55, 0x55, 0x55, 0x7d, 0x7c, 0x0,
+    0x0, 0x0, 0x0, 0x3d,
+
     /* U+56F5 "囵" */
     0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff,
     0xff, 0xff, 0xff, 0xfc, 0xf4, 0x0, 0x1, 0x40,
@@ -24591,6 +26249,28 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xf4, 0x0, 0x0, 0x0, 0x0, 0x7c, 0xf4, 0x0,
     0x0, 0x0, 0x0, 0x3c,
 
+    /* U+56F9 "囹" */
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xfc, 0xf4, 0x0, 0x5, 0x40,
+    0x0, 0x3c, 0xf0, 0x0, 0xf, 0xc0, 0x0, 0x3c,
+    0xf0, 0x0, 0x3f, 0xf0, 0x0, 0x3c, 0xf0, 0x0,
+    0xbc, 0xf8, 0x0, 0x3c, 0xf0, 0x2, 0xf0, 0x3e,
+    0x0, 0x3c, 0xf0, 0xb, 0xd6, 0xf, 0xc0, 0x3c,
+    0xf0, 0x2f, 0x4f, 0x47, 0xf0, 0x3c, 0xf1, 0xfd,
+    0x7, 0xc0, 0xfe, 0x3c, 0xfb, 0xf0, 0x3, 0xd0,
+    0x2f, 0xbc, 0xf2, 0x80, 0x1, 0x40, 0x7, 0x3c,
+    0xf0, 0x3f, 0xff, 0xff, 0xe0, 0x3c, 0xf0, 0x3f,
+    0xff, 0xff, 0xf0, 0x3c, 0xf0, 0x0, 0x0, 0x3,
+    0xd0, 0x3c, 0xf0, 0x0, 0x0, 0xf, 0x80, 0x3c,
+    0xf0, 0x2, 0x40, 0x3e, 0x0, 0x3c, 0xf0, 0xb,
+    0xf9, 0xf8, 0x0, 0x3c, 0xf0, 0x1, 0xbf, 0xf0,
+    0x0, 0x3c, 0xf0, 0x0, 0x7, 0xfe, 0x0, 0x3c,
+    0xf0, 0x0, 0x0, 0x7f, 0x40, 0x3c, 0xf0, 0x0,
+    0x0, 0x6, 0x0, 0x3c, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc,
+    0xf4, 0x0, 0x0, 0x0, 0x0, 0x7c, 0xf0, 0x0,
+    0x0, 0x0, 0x0, 0x3c,
+
     /* U+56FA "固" */
     0xbf, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff,
     0xff, 0xff, 0xff, 0xfd, 0xf5, 0x55, 0x55, 0x55,
@@ -24635,6 +26315,49 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xf4, 0x0, 0x0, 0x0, 0x0, 0x3c, 0xf4, 0x0,
     0x0, 0x0, 0x0, 0x3c,
 
+    /* U+56FE "图" */
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0x40, 0x8, 0x0, 0x0,
+    0x3, 0xfc, 0x0, 0x78, 0x0, 0x0, 0xf, 0xf0,
+    0x3, 0xc0, 0x0, 0x0, 0x3f, 0xc0, 0x3f, 0xaa,
+    0xaa, 0x80, 0xff, 0x2, 0xff, 0xff, 0xff, 0x3,
+    0xfc, 0x1f, 0xd0, 0x0, 0xf4, 0xf, 0xf2, 0xf7,
+    0xd0, 0x1f, 0x40, 0x3f, 0xcf, 0x3, 0xe7, 0xf0,
+    0x0, 0xff, 0x0, 0x2, 0xfe, 0x0, 0x3, 0xfc,
+    0x0, 0x7f, 0xff, 0x40, 0xf, 0xf0, 0x6f, 0xe0,
+    0x2f, 0xf9, 0x3f, 0xef, 0xf9, 0x0, 0x7, 0xfe,
+    0xff, 0x74, 0x3f, 0xe4, 0x0, 0x63, 0xfc, 0x0,
+    0x5b, 0xff, 0x40, 0xf, 0xf0, 0x0, 0x0, 0x6e,
+    0x0, 0x3f, 0xc0, 0xa5, 0x0, 0x0, 0x0, 0xff,
+    0x3, 0xff, 0xe5, 0x0, 0x3, 0xfc, 0x0, 0x5b,
+    0xff, 0xd0, 0xf, 0xf0, 0x0, 0x0, 0x6f, 0xc0,
+    0x3f, 0xc0, 0x0, 0x0, 0x1, 0x0, 0xff, 0xea,
+    0xaa, 0xaa, 0xaa, 0xaf, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xf4, 0x0, 0x0, 0x0, 0x0, 0x7f,
+    0xc0, 0x0, 0x0, 0x0, 0x0, 0xf0,
+
+    /* U+56FF "囿" */
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xfc, 0xf4, 0x0, 0x4, 0x0,
+    0x0, 0x3c, 0xf0, 0x0, 0x1e, 0x0, 0x0, 0x3c,
+    0xf0, 0x0, 0x3c, 0x0, 0x0, 0x3c, 0xf0, 0xff,
+    0xff, 0xff, 0xff, 0x3c, 0xf0, 0xff, 0xff, 0xff,
+    0xfe, 0x3c, 0xf0, 0x1, 0xf0, 0x0, 0x0, 0x3c,
+    0xf0, 0x3, 0xd0, 0x0, 0x0, 0x3c, 0xf0, 0xb,
+    0xff, 0xff, 0xf4, 0x3c, 0xf0, 0x1f, 0xaa, 0xaa,
+    0xf4, 0x3c, 0xf0, 0x7f, 0x40, 0x0, 0x74, 0x3c,
+    0xf1, 0xff, 0xaa, 0xaa, 0xf4, 0x3c, 0xf7, 0xe7,
+    0xff, 0xff, 0xf4, 0x3c, 0xf3, 0x87, 0x40, 0x0,
+    0x74, 0x3c, 0xf0, 0x7, 0x40, 0x0, 0x74, 0x3c,
+    0xf0, 0x7, 0xff, 0xff, 0xf4, 0x3c, 0xf0, 0x7,
+    0xaa, 0xaa, 0xb4, 0x3c, 0xf0, 0x7, 0x40, 0x0,
+    0xb4, 0x3c, 0xf0, 0x7, 0x40, 0x1a, 0xf0, 0x3c,
+    0xf0, 0x7, 0x40, 0x1f, 0xd0, 0x3c, 0xf0, 0x0,
+    0x0, 0x0, 0x0, 0x3c, 0xf4, 0x0, 0x0, 0x0,
+    0x0, 0x3c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xf0, 0x0,
+    0x0, 0x0, 0x0, 0x3c,
+
     /* U+5703 "圃" */
     0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff,
     0xff, 0xff, 0xff, 0xfc, 0xf4, 0x0, 0x1, 0x41,
@@ -24657,6 +26380,49 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xfe, 0xaa, 0xaa, 0xaa, 0xaa, 0xbc, 0xf4, 0x0,
     0x0, 0x0, 0x0, 0x3c,
 
+    /* U+5704 "圄" */
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0x40, 0x0, 0x0, 0x0,
+    0x3, 0xfc, 0x0, 0x0, 0x0, 0x0, 0xf, 0xf0,
+    0xaa, 0xaa, 0xaa, 0xa8, 0x3f, 0xc3, 0xff, 0xff,
+    0xff, 0xf0, 0xff, 0x0, 0xb, 0x0, 0x0, 0x3,
+    0xfc, 0x0, 0x3c, 0x0, 0x0, 0xf, 0xf0, 0x7f,
+    0xff, 0xff, 0xc0, 0x3f, 0xc0, 0x5b, 0x95, 0x5f,
+    0x0, 0xff, 0x0, 0x2c, 0x0, 0x3c, 0x3, 0xfc,
+    0x0, 0xf0, 0x0, 0xf0, 0xf, 0xf3, 0xff, 0xff,
+    0xff, 0xff, 0x3f, 0xca, 0xaa, 0xaa, 0xaa, 0xa8,
+    0xff, 0x0, 0x0, 0x0, 0x0, 0x3, 0xfc, 0x7,
+    0xff, 0xff, 0xfc, 0xf, 0xf0, 0x1e, 0x55, 0x55,
+    0xf0, 0x3f, 0xc0, 0x74, 0x0, 0x3, 0xc0, 0xff,
+    0x1, 0xd0, 0x0, 0xf, 0x3, 0xfc, 0x7, 0xff,
+    0xff, 0xfc, 0xf, 0xf0, 0x1a, 0xaa, 0xaa, 0x90,
+    0x3f, 0xc0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x40,
+    0x0, 0x0, 0x0, 0x7, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xc0, 0x0, 0x0, 0x0, 0x0, 0xf0,
+
+    /* U+5706 "圆" */
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xfc, 0xf4, 0x0, 0x0, 0x0,
+    0x0, 0x3c, 0xf4, 0x0, 0x0, 0x0, 0x0, 0x3c,
+    0xf4, 0x1f, 0xff, 0xff, 0xd0, 0x3c, 0xf4, 0x1f,
+    0xaa, 0xab, 0xd0, 0x3c, 0xf4, 0x1e, 0x0, 0x3,
+    0xd0, 0x3c, 0xf4, 0x1f, 0x55, 0x57, 0xd0, 0x3c,
+    0xf4, 0x1f, 0xff, 0xff, 0xd0, 0x3c, 0xf4, 0x0,
+    0x0, 0x0, 0x0, 0x3c, 0xf4, 0x2a, 0xaa, 0xaa,
+    0xa0, 0x3c, 0xf4, 0x3f, 0xff, 0xff, 0xf0, 0x3c,
+    0xf4, 0x3c, 0x0, 0x0, 0xf0, 0x3c, 0xf4, 0x3c,
+    0x7, 0x80, 0xf0, 0x3c, 0xf4, 0x3c, 0x7, 0x80,
+    0xf0, 0x3c, 0xf4, 0x3c, 0xb, 0x80, 0xf0, 0x3c,
+    0xf4, 0x3c, 0xf, 0x50, 0xf0, 0x3c, 0xf4, 0x0,
+    0x2f, 0xbd, 0x0, 0x3c, 0xf4, 0x2, 0xfc, 0x2f,
+    0xd0, 0x3c, 0xf4, 0xbf, 0xe0, 0x2, 0xfd, 0x3c,
+    0xf5, 0xfe, 0x0, 0x0, 0x2e, 0x3c, 0xf4, 0x40,
+    0x0, 0x0, 0x4, 0x3c, 0xfe, 0xaa, 0xaa, 0xaa,
+    0xaa, 0xbc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc,
+    0xf4, 0x0, 0x0, 0x0, 0x0, 0x3c, 0xf4, 0x0,
+    0x0, 0x0, 0x0, 0x3c,
+
     /* U+5708 "圈" */
     0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff,
     0xff, 0xff, 0xff, 0xfc, 0xf4, 0x0, 0x2, 0x40,
@@ -24702,27 +26468,76 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0,
 
-    /* U+5713 "圓" */
-    0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff,
-    0xff, 0xff, 0xff, 0xfc, 0xf0, 0x0, 0x0, 0x0,
-    0x0, 0x3c, 0xf0, 0x5, 0x55, 0x55, 0x40, 0x3c,
-    0xf0, 0xf, 0xff, 0xff, 0xc0, 0x3c, 0xf0, 0xf,
-    0x0, 0x3, 0xc0, 0x3c, 0xf0, 0xf, 0x55, 0x57,
-    0xc0, 0x3c, 0xf0, 0xf, 0xff, 0xff, 0xc0, 0x3c,
+    /* U+570A "圊" */
+    0xbf, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xfc, 0xf0, 0x0, 0x1, 0x0,
+    0x0, 0x3c, 0xf0, 0x0, 0x7, 0x80, 0x0, 0x3c,
+    0xf0, 0xff, 0xff, 0xff, 0xfd, 0x3c, 0xf0, 0xaa,
+    0xab, 0xea, 0xa8, 0x3c, 0xf0, 0x0, 0x7, 0x80,
+    0x0, 0x3c, 0xf0, 0x7f, 0xff, 0xff, 0xf8, 0x3c,
+    0xf0, 0x15, 0x5b, 0x95, 0x50, 0x3c, 0xf1, 0x55,
+    0x5b, 0x95, 0x55, 0x3c, 0xf3, 0xff, 0xff, 0xff,
+    0xff, 0x3c, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x3c,
+    0xf0, 0x1a, 0xaa, 0xaa, 0xa0, 0x3c, 0xf0, 0x2f,
+    0xff, 0xff, 0xf0, 0x3c, 0xf0, 0x2c, 0x0, 0x0,
+    0xf0, 0x3c, 0xf0, 0x2f, 0xff, 0xff, 0xf0, 0x3c,
+    0xf0, 0x2e, 0x55, 0x55, 0xf0, 0x3c, 0xf0, 0x2e,
+    0x55, 0x55, 0xf0, 0x3c, 0xf0, 0x2f, 0xff, 0xff,
+    0xf0, 0x3c, 0xf0, 0x2c, 0x0, 0x0, 0xf0, 0x3c,
+    0xf0, 0x2c, 0x0, 0x2b, 0xe0, 0x3c, 0xf0, 0x2c,
+    0x0, 0x2e, 0x40, 0x3c, 0xf0, 0x0, 0x0, 0x0,
+    0x0, 0x3c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xf0, 0x0,
+    0x0, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0,
+
+    /* U+571C "圜" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xfc, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x3c,
+    0xf0, 0x55, 0x55, 0x55, 0x54, 0x3c, 0xf0, 0xbf,
+    0xff, 0xff, 0xfc, 0x3c, 0xf0, 0xb0, 0x34, 0x34,
+    0x3c, 0x3c, 0xf0, 0xb4, 0x74, 0x78, 0x3c, 0x3c,
+    0xf0, 0xbf, 0xff, 0xff, 0xfc, 0x3c, 0xf0, 0x0,
+    0x0, 0x0, 0x0, 0x3c, 0xf1, 0xaa, 0xaa, 0xaa,
+    0xaa, 0x3c, 0xf3, 0xff, 0xff, 0xff, 0xff, 0x3c,
     0xf0, 0x0, 0x0, 0x0, 0x0, 0x3c, 0xf0, 0x3f,
     0xff, 0xff, 0xf0, 0x3c, 0xf0, 0x3d, 0x55, 0x55,
-    0xf0, 0x3c, 0xf0, 0x3c, 0x0, 0x0, 0xf0, 0x3c,
-    0xf0, 0x3f, 0xff, 0xff, 0xf0, 0x3c, 0xf0, 0x3c,
-    0x0, 0x0, 0xf0, 0x3c, 0xf0, 0x3d, 0x55, 0x55,
-    0xf0, 0x3c, 0xf0, 0x3f, 0xff, 0xff, 0xf0, 0x3c,
-    0xf0, 0x3c, 0x0, 0x0, 0xf0, 0x3c, 0xf0, 0x3f,
-    0xff, 0xff, 0xf0, 0x3c, 0xf0, 0x15, 0x65, 0x69,
-    0x50, 0x3c, 0xf0, 0x6, 0xf0, 0x3f, 0x80, 0x3c,
-    0xf0, 0xbf, 0x80, 0xb, 0xfd, 0x3c, 0xf1, 0xf4,
-    0x0, 0x0, 0x2d, 0x3c, 0xfa, 0xea, 0xaa, 0xaa,
-    0xab, 0xbc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc,
-    0xf4, 0x0, 0x0, 0x0, 0x0, 0x3c, 0xf0, 0x0,
-    0x0, 0x0, 0x0, 0x3c,
+    0xf0, 0x3c, 0xf0, 0x3d, 0x55, 0x55, 0xf0, 0x3c,
+    0xf0, 0x3f, 0xff, 0xff, 0xf0, 0x3c, 0xf0, 0x0,
+    0x2f, 0x0, 0x18, 0x3c, 0xf0, 0x2, 0xf4, 0xe0,
+    0xb8, 0x3c, 0xf0, 0x6f, 0xc0, 0x7f, 0xd0, 0x3c,
+    0xf7, 0xf6, 0xc0, 0x47, 0xe0, 0x3c, 0xf2, 0x42,
+    0xdf, 0xc0, 0xbe, 0x3c, 0xf0, 0x3, 0xf9, 0x0,
+    0xa, 0x3c, 0xf0, 0x2, 0x0, 0x0, 0x0, 0x3c,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xfc, 0xf0, 0x0, 0x0, 0x0,
+    0x0, 0x3c,
+
+    /* U+571F "土" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x1, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x7, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7c, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x1, 0xf0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x7, 0xc0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x1f, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x7c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1,
+    0xf4, 0x0, 0x0, 0x0, 0x7f, 0xff, 0xff, 0xff,
+    0xff, 0xfc, 0x1, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xf0, 0x0, 0x0, 0x0, 0x7c, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x1, 0xf0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x7, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x1f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7c,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xf0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x7, 0xc0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x1f, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x7c, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x1, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7,
+    0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f, 0x0,
+    0x0, 0x0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf1,
+    0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x0,
 
     /* U+5723 "圣" */
     0x7, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0xb,
@@ -24955,6 +26770,30 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x7f, 0xff, 0xff, 0x90, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+5733 "圳" */
+    0x0, 0xa0, 0x1, 0x40, 0x0, 0x2, 0x40, 0x3d,
+    0x0, 0xf0, 0x5, 0x1, 0xf0, 0xf, 0x40, 0x3c,
+    0x7, 0xc0, 0x7c, 0x3, 0xd0, 0xf, 0x1, 0xf0,
+    0x1f, 0x0, 0xf4, 0x3, 0xc0, 0x7c, 0x7, 0xc0,
+    0x3d, 0x0, 0xf0, 0x1f, 0x1, 0xf0, 0xf, 0x40,
+    0x3c, 0x7, 0xc0, 0x7c, 0xab, 0xea, 0xf, 0x1,
+    0xf0, 0x1f, 0x3f, 0xff, 0xd3, 0xc0, 0x7c, 0x7,
+    0xca, 0xbe, 0xa0, 0xf0, 0x1f, 0x1, 0xf0, 0xf,
+    0x40, 0x3c, 0x7, 0xc0, 0x7c, 0x3, 0xd0, 0xf,
+    0x1, 0xf0, 0x1f, 0x0, 0xf4, 0x3, 0xc0, 0x7c,
+    0x7, 0xc0, 0x3d, 0x0, 0xf0, 0x1f, 0x1, 0xf0,
+    0xf, 0x40, 0x3c, 0x7, 0xc0, 0x7c, 0x3, 0xd0,
+    0xf, 0x1, 0xf0, 0x1f, 0x0, 0xf4, 0x3, 0xc0,
+    0x7c, 0x7, 0xc0, 0x3d, 0x1, 0xf0, 0x1f, 0x1,
+    0xf0, 0xf, 0x58, 0x78, 0x7, 0xc0, 0x7c, 0x3,
+    0xff, 0x6d, 0x1, 0xf0, 0x1f, 0x6f, 0xff, 0x8f,
+    0x40, 0x7c, 0x7, 0xff, 0xf9, 0x3, 0xc0, 0x1f,
+    0x1, 0xf6, 0x40, 0x2, 0xe0, 0x7, 0xc0, 0x7c,
+    0x0, 0x0, 0xf4, 0x1, 0xf0, 0x1f, 0x0, 0x0,
+    0xfc, 0x0, 0x7c, 0x7, 0xc0, 0x0, 0x7d, 0x0,
+    0x0, 0x1, 0xf0, 0x0, 0x2e, 0x0, 0x0, 0x0,
+    0x7c, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0,
+
     /* U+5739 "圹" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x3c, 0x0, 0x0, 0x1f, 0x0, 0x0, 0x0, 0x3c,
@@ -25115,34 +26954,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x40, 0x0, 0x0, 0xa0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+5745 "坅" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0xb, 0x40, 0x0, 0x3, 0xd0, 0x0, 0x0, 0x2,
-    0xe0, 0x0, 0x2, 0xfc, 0x0, 0x0, 0x0, 0xb8,
-    0x0, 0x0, 0xff, 0x40, 0x0, 0x0, 0x2e, 0x0,
-    0x0, 0xb9, 0xf0, 0x0, 0x0, 0xb, 0x80, 0x0,
-    0x3c, 0x3e, 0x0, 0x0, 0x2, 0xe0, 0x0, 0x3e,
-    0x7, 0xd0, 0x0, 0x0, 0xb8, 0x0, 0x2f, 0x0,
-    0xbd, 0x0, 0x5, 0x6e, 0x54, 0x1f, 0x40, 0xf,
-    0xc0, 0x3, 0xff, 0xff, 0x1f, 0x85, 0x0, 0xfc,
-    0x0, 0xff, 0xff, 0xdf, 0x83, 0xd0, 0xf, 0xd0,
-    0x0, 0xb8, 0x1f, 0xc0, 0xbc, 0x0, 0xfd, 0x0,
-    0x2e, 0x3, 0xc0, 0xf, 0xc0, 0xf, 0x0, 0xb,
-    0x80, 0x0, 0x0, 0xf8, 0x0, 0x0, 0x2, 0xe0,
-    0x0, 0x0, 0x1c, 0x0, 0x0, 0x0, 0xb8, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x2e, 0x0, 0xff,
-    0xff, 0xff, 0xd0, 0x0, 0xb, 0x80, 0x3f, 0xff,
-    0xff, 0xf4, 0x0, 0x2, 0xe0, 0x0, 0x0, 0x0,
-    0x7c, 0x0, 0x0, 0xb8, 0x0, 0x0, 0x0, 0x3e,
-    0x0, 0x0, 0x2e, 0x6c, 0x0, 0x0, 0x1f, 0x0,
-    0x0, 0xb, 0xff, 0x0, 0x0, 0xf, 0x40, 0x0,
-    0x6f, 0xfe, 0x0, 0x0, 0xb, 0xc0, 0x0, 0xff,
-    0xe0, 0x0, 0x0, 0x7, 0xc0, 0x0, 0x29, 0x0,
-    0x0, 0x0, 0x3, 0xe0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x2, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x1, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x14, 0x0, 0x0,
-
     /* U+5747 "均" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2,
     0x80, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x3c, 0x0,
@@ -25597,30 +27408,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x8f, 0xd0, 0x0, 0x1, 0xfc, 0x0, 0x2, 0x5,
     0x0, 0x0, 0x0, 0x14,
 
-    /* U+5763 "坣" */
-    0x0, 0x0, 0x0, 0x38, 0x0, 0x0, 0x0, 0x0,
-    0xb0, 0x0, 0xf0, 0x0, 0xe0, 0x0, 0x3, 0xf0,
-    0x3, 0xc0, 0xb, 0xc0, 0x0, 0x3, 0xd0, 0xf,
-    0x0, 0xbc, 0x0, 0x0, 0x7, 0xc0, 0x3c, 0x7,
-    0xd0, 0x0, 0x0, 0x9, 0x0, 0xf0, 0xe, 0x0,
-    0x0, 0x0, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x3,
-    0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xf, 0xff,
-    0xff, 0xff, 0xff, 0xff, 0xe0, 0x3c, 0x0, 0x0,
-    0x0, 0x0, 0x7, 0x80, 0xf0, 0x0, 0x1, 0x40,
-    0x0, 0x1e, 0x3, 0xc0, 0x0, 0xf, 0x0, 0x0,
-    0x78, 0x5, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x40,
-    0x0, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x3, 0xc0, 0x0, 0x0, 0x0, 0x7f, 0xff,
-    0xff, 0xff, 0xff, 0xd0, 0x2, 0xff, 0xff, 0xff,
-    0xff, 0xff, 0x40, 0x1, 0x55, 0x55, 0xf5, 0x55,
-    0x54, 0x0, 0x0, 0x0, 0x3, 0xc0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0xf, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3,
-    0xc0, 0x0, 0x0, 0xf, 0xff, 0xff, 0xff, 0xff,
-    0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff,
-    0xfc, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x40,
-
     /* U+5764 "坤" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0xf0, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x3, 0xc0,
@@ -25801,6 +27588,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xa0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+576F "坯" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x7, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1,
+    0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7c,
+    0xb, 0xff, 0xff, 0xff, 0xf0, 0x0, 0x1f, 0x2,
+    0xff, 0xff, 0xff, 0xfc, 0x0, 0x7, 0xc0, 0x0,
+    0x1, 0xf4, 0x0, 0x0, 0x1, 0xf0, 0x0, 0x0,
+    0xbc, 0x0, 0x0, 0x0, 0x7c, 0x0, 0x0, 0x3d,
+    0x0, 0x0, 0x5, 0x6f, 0x54, 0x0, 0x2f, 0x0,
+    0x0, 0x3, 0xff, 0xff, 0x80, 0x1f, 0x80, 0x0,
+    0x0, 0xff, 0xff, 0xe0, 0xf, 0xf1, 0x0, 0x0,
+    0x0, 0x7c, 0x0, 0xb, 0xfd, 0xf0, 0x0, 0x0,
+    0x1f, 0x0, 0x7, 0xef, 0x3f, 0x0, 0x0, 0x7,
+    0xc0, 0x7, 0xe7, 0xc3, 0xf0, 0x0, 0x1, 0xf0,
+    0x3, 0xf1, 0xf0, 0x3e, 0x0, 0x0, 0x7c, 0x3,
+    0xf0, 0x7c, 0x3, 0xe0, 0x0, 0x1f, 0x3, 0xf4,
+    0x1f, 0x0, 0x7d, 0x0, 0x7, 0xc3, 0xf4, 0x7,
+    0xc0, 0xb, 0xc0, 0x1, 0xf0, 0xf4, 0x1, 0xf0,
+    0x0, 0xe0, 0x0, 0x7c, 0x4, 0x0, 0x7c, 0x0,
+    0x0, 0x0, 0x1f, 0x6e, 0x0, 0x1f, 0x0, 0x0,
+    0x0, 0x1b, 0xff, 0x80, 0x7, 0xc0, 0x0, 0x2,
+    0xff, 0xfe, 0x40, 0x1, 0xf0, 0x0, 0x0, 0xff,
+    0x90, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xf, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x7,
+    0xff, 0xff, 0xff, 0xff, 0xc0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+5773 "坳" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf,
     0x0, 0xe, 0x0, 0x3c, 0x0, 0x0, 0xf0, 0x1,
@@ -25827,6 +27641,31 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0xd0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+5776 "坶" */
+    0x0, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3,
+    0xc0, 0x5, 0x55, 0x55, 0x54, 0x0, 0xf, 0x0,
+    0x3f, 0xff, 0xff, 0xf8, 0x0, 0x3c, 0x0, 0xff,
+    0xff, 0xff, 0xe0, 0x0, 0xf0, 0x3, 0xc0, 0x0,
+    0xb, 0x80, 0x3, 0xc0, 0xf, 0x3, 0x0, 0x2e,
+    0x0, 0xf, 0x0, 0x3c, 0x2f, 0x0, 0xb4, 0x0,
+    0x3c, 0x0, 0xf0, 0x2f, 0x2, 0xd0, 0x3f, 0xff,
+    0xc7, 0xc0, 0x2f, 0xb, 0x40, 0xff, 0xff, 0x1f,
+    0x0, 0x38, 0x2d, 0x0, 0xf, 0x0, 0x7c, 0x0,
+    0x0, 0xf4, 0x0, 0x3c, 0x3f, 0xff, 0xff, 0xff,
+    0xff, 0x0, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xfc,
+    0x3, 0xc0, 0x2e, 0x0, 0x0, 0x3d, 0x0, 0xf,
+    0x0, 0xb8, 0x1c, 0x0, 0xf4, 0x0, 0x3c, 0x2,
+    0xe0, 0xbc, 0x3, 0xd0, 0x0, 0xf0, 0xb, 0x40,
+    0xfc, 0xf, 0x40, 0x3, 0xc0, 0x3d, 0x0, 0xf8,
+    0x3d, 0x0, 0xf, 0x0, 0xf4, 0x0, 0xc0, 0xf0,
+    0x0, 0x3e, 0xf3, 0xd0, 0x0, 0x3, 0xc0, 0x6,
+    0xff, 0xcf, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xe4,
+    0x3f, 0xff, 0xff, 0xff, 0xfb, 0xe4, 0x0, 0x55,
+    0x55, 0x55, 0xf5, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xb, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x2b, 0xfe,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0xbf, 0xf0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x54, 0x0, 0x0,
+
     /* U+5777 "坷" */
     0x0, 0x3c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0xf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3,
@@ -25983,6 +27822,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+5785 "垅" */
+    0x0, 0x2d, 0x0, 0xb, 0x40, 0x10, 0x0, 0x0,
+    0x2d, 0x0, 0xf, 0x40, 0xf4, 0x0, 0x0, 0x2d,
+    0x0, 0xf, 0x40, 0x7c, 0x0, 0x0, 0x2d, 0x0,
+    0xf, 0x0, 0x2f, 0x0, 0x0, 0x2d, 0x0, 0xf,
+    0x0, 0xf, 0x80, 0x0, 0x2d, 0x0, 0xf, 0x40,
+    0x7, 0x40, 0x0, 0x2d, 0x3, 0xff, 0xff, 0xff,
+    0xff, 0x5, 0x7e, 0x57, 0xff, 0xff, 0xff, 0xff,
+    0xf, 0xff, 0xf8, 0xf, 0xf, 0x0, 0x0, 0xf,
+    0xff, 0xf8, 0x1f, 0xf, 0x0, 0x0, 0x0, 0x2d,
+    0x0, 0x1e, 0xf, 0x0, 0x60, 0x0, 0x2d, 0x0,
+    0x2e, 0xf, 0x0, 0xf4, 0x0, 0x2d, 0x0, 0x3d,
+    0xf, 0x2, 0xf0, 0x0, 0x2d, 0x0, 0x3c, 0xf,
+    0x7, 0xc0, 0x0, 0x2d, 0x0, 0x3c, 0xf, 0xf,
+    0x80, 0x0, 0x2d, 0x0, 0x78, 0xf, 0x7f, 0x0,
+    0x0, 0x2d, 0x0, 0xf4, 0xf, 0xfc, 0x0, 0x0,
+    0x2d, 0x0, 0xf0, 0xf, 0xf0, 0x0, 0x0, 0x2d,
+    0x66, 0xe0, 0xf, 0xc0, 0x0, 0x0, 0x3f, 0xfb,
+    0xc0, 0x7f, 0x40, 0xd, 0x1b, 0xff, 0xdf, 0xc1,
+    0xff, 0x0, 0xe, 0x3f, 0xe4, 0x1f, 0xf, 0xef,
+    0x0, 0x1e, 0x14, 0x0, 0x3e, 0xbf, 0x4f, 0x0,
+    0x1e, 0x0, 0x0, 0xbc, 0xb8, 0xf, 0x80, 0x3d,
+    0x0, 0x2, 0xf4, 0x10, 0xb, 0xff, 0xfc, 0x0,
+    0x7, 0xd0, 0x0, 0x2, 0xff, 0xe4, 0x0, 0x2,
+    0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+5786 "垆" */
     0x0, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0,
     0xb, 0x80, 0x0, 0x7, 0xc0, 0x0, 0x0, 0x2,
@@ -26141,62 +28007,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x7c, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x7c, 0x0, 0x0,
 
-    /* U+579E "垞" */
-    0x0, 0x14, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0xf, 0x0, 0x0, 0xb, 0x40, 0x0, 0x0, 0x3,
-    0xc0, 0x0, 0x1, 0xf0, 0x0, 0x0, 0x0, 0xf0,
-    0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x3c, 0x3,
-    0xff, 0xff, 0xff, 0xfc, 0x0, 0xf, 0x0, 0xff,
-    0xff, 0xff, 0xff, 0x0, 0x3, 0xc0, 0x3d, 0x0,
-    0x0, 0x7, 0xc0, 0x0, 0xf0, 0xf, 0x0, 0x0,
-    0x0, 0xf0, 0xf, 0xff, 0xf7, 0xc0, 0x0, 0x1,
-    0x3c, 0x3, 0xff, 0xfd, 0xf0, 0x1, 0x6f, 0xdf,
-    0x0, 0x57, 0xd5, 0x5, 0xaf, 0xff, 0xf4, 0x0,
-    0x0, 0xf0, 0x3, 0xff, 0xf9, 0x40, 0x0, 0x0,
-    0x3c, 0x0, 0xa5, 0x7c, 0x0, 0x0, 0x0, 0xf,
-    0x0, 0x0, 0xf, 0x0, 0x0, 0x0, 0x3, 0xc0,
-    0x0, 0x3, 0xc0, 0x0, 0x0, 0x0, 0xf0, 0x0,
-    0x0, 0xf0, 0x0, 0x14, 0x0, 0x3c, 0x0, 0x1,
-    0x7e, 0xbf, 0xff, 0x0, 0xf, 0x1, 0xff, 0xff,
-    0xff, 0xff, 0xc0, 0x3, 0xc0, 0x7f, 0xff, 0xe5,
-    0x0, 0x0, 0x0, 0xf0, 0x80, 0x0, 0xf0, 0x0,
-    0x0, 0x0, 0x3f, 0xf0, 0x0, 0x3c, 0x0, 0x10,
-    0x1, 0xbf, 0xf8, 0x0, 0xf, 0x0, 0xf, 0x3,
-    0xff, 0x90, 0x0, 0x3, 0xc0, 0x7, 0x80, 0xf8,
-    0x0, 0x0, 0x0, 0xf0, 0x1, 0xe0, 0x0, 0x0,
-    0x0, 0x0, 0x3d, 0x1, 0xf4, 0x0, 0x0, 0x0,
-    0x0, 0xf, 0xff, 0xfc, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0xbf, 0xfd, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0,
-
-    /* U+579F "垟" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0xf, 0x0, 0x3, 0xc0, 0x1, 0xd0, 0x0, 0x3,
-    0xc0, 0x0, 0xf4, 0x0, 0xf4, 0x0, 0x0, 0xf0,
-    0x0, 0x1f, 0x0, 0x7c, 0x0, 0x0, 0x3c, 0x0,
-    0x3, 0xd0, 0x3d, 0x0, 0x0, 0xf, 0x0, 0x0,
-    0x70, 0x2f, 0x0, 0x0, 0x3, 0xc0, 0x2f, 0xff,
-    0xff, 0xff, 0xc0, 0x0, 0xf0, 0xb, 0xff, 0xff,
-    0xff, 0xf0, 0x0, 0x3d, 0x0, 0x0, 0xf, 0x40,
-    0x0, 0x3, 0xff, 0xfd, 0x0, 0x3, 0xc0, 0x0,
-    0x0, 0xff, 0xff, 0x40, 0x0, 0xf0, 0x0, 0x0,
-    0x0, 0xf0, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x0,
-    0x3c, 0x0, 0x7f, 0xff, 0xff, 0xf4, 0x0, 0xf,
-    0x0, 0x2f, 0xff, 0xff, 0xfd, 0x0, 0x3, 0xc0,
-    0x1, 0x55, 0xf5, 0x55, 0x0, 0x0, 0xf0, 0x0,
-    0x0, 0x3c, 0x0, 0x0, 0x0, 0x3c, 0x0, 0x0,
-    0xf, 0x0, 0x0, 0x0, 0xf, 0x0, 0x0, 0x3,
-    0xc0, 0x0, 0x0, 0x3, 0xc0, 0x0, 0x0, 0xf0,
-    0x0, 0x0, 0x0, 0xf0, 0xf, 0xff, 0xff, 0xff,
-    0xfc, 0x0, 0x3e, 0xb7, 0xff, 0xff, 0xff, 0xff,
-    0x0, 0x6f, 0xfd, 0x0, 0x3, 0xd0, 0x0, 0x3,
-    0xff, 0xf8, 0x0, 0x0, 0xf0, 0x0, 0x0, 0xfe,
-    0x40, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0xf, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x3, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x3c, 0x0, 0x0,
-
     /* U+57A0 "垠" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0xb4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb4,
@@ -26325,6 +28135,30 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x7f, 0xff, 0xff, 0xff, 0xfc, 0x0,
     0x0, 0x7f, 0xff, 0xff, 0xff, 0xfc,
 
+    /* U+57A6 "垦" */
+    0x0, 0xbf, 0xff, 0xff, 0xff, 0xfd, 0x0, 0x0,
+    0xbf, 0xff, 0xff, 0xff, 0xfd, 0x0, 0x0, 0xb4,
+    0x0, 0x0, 0x0, 0x2d, 0x0, 0x0, 0xb4, 0x0,
+    0x0, 0x0, 0x2d, 0x0, 0x0, 0xbf, 0xff, 0xff,
+    0xff, 0xfd, 0x0, 0x0, 0xbf, 0xff, 0xff, 0xff,
+    0xfd, 0x0, 0x0, 0xb4, 0x0, 0x0, 0x0, 0x2d,
+    0x0, 0x0, 0xb4, 0x0, 0x0, 0x0, 0x2d, 0x0,
+    0x0, 0xbf, 0xff, 0xff, 0xff, 0xfd, 0x0, 0x0,
+    0xbf, 0xff, 0xff, 0xff, 0xfe, 0x40, 0x0, 0xb4,
+    0x7, 0xd0, 0x0, 0xb, 0xc0, 0x0, 0xb4, 0x1,
+    0xf8, 0x1, 0xbf, 0x40, 0x0, 0xb4, 0x0, 0x7f,
+    0xaf, 0xf4, 0x0, 0x0, 0xb4, 0x6f, 0xcb, 0xff,
+    0x40, 0x0, 0x0, 0xff, 0xff, 0x80, 0x7f, 0xfa,
+    0x40, 0x2, 0xff, 0x90, 0x14, 0x2, 0xff, 0xfc,
+    0x0, 0x90, 0x0, 0x7c, 0x0, 0x1, 0xb8, 0x0,
+    0x0, 0x0, 0x7c, 0x0, 0x0, 0x0, 0x1, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0x0, 0x1, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0x7c,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7c, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x7c, 0x0, 0x0,
+    0x0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc,
+    0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8,
+
     /* U+57A7 "垧" */
     0x0, 0x14, 0x0, 0x0, 0x2d, 0x0, 0x0, 0x1,
     0xf0, 0x0, 0x0, 0xf4, 0x0, 0x0, 0x7, 0xc0,
@@ -26451,59 +28285,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0xff, 0x90, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
-    /* U+57AF "垯" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0xe, 0x0, 0x60, 0x0, 0x2d, 0x0, 0x0, 0x3,
-    0xc0, 0x2d, 0x0, 0xb, 0x40, 0x0, 0x0, 0xf0,
-    0x7, 0xc0, 0x2, 0xd0, 0x0, 0x0, 0x3c, 0x0,
-    0xf4, 0x0, 0xb4, 0x0, 0x0, 0xf, 0x0, 0x1f,
-    0x0, 0x2d, 0x0, 0x0, 0x3, 0xc0, 0x3, 0xc0,
-    0xb, 0x40, 0x0, 0x0, 0xf0, 0x0, 0x92, 0xff,
-    0xff, 0xf0, 0xa, 0xbe, 0x90, 0x0, 0xbf, 0xff,
-    0xfc, 0x3, 0xff, 0xf8, 0x0, 0x0, 0x2d, 0x0,
-    0x0, 0xff, 0xfe, 0x0, 0x0, 0xb, 0x40, 0x0,
-    0x0, 0xf0, 0x2f, 0xf0, 0x3, 0xc0, 0x0, 0x0,
-    0x3c, 0xb, 0xfc, 0x0, 0xf0, 0x0, 0x0, 0xf,
-    0x0, 0xf, 0x0, 0x3e, 0x0, 0x0, 0x3, 0xc0,
-    0x3, 0xc0, 0x1f, 0xc0, 0x0, 0x0, 0xf0, 0x0,
-    0xf0, 0xb, 0xfc, 0x0, 0x0, 0x3c, 0x0, 0x3c,
-    0x3, 0xcf, 0x40, 0x0, 0xf, 0x0, 0xf, 0x2,
-    0xe1, 0xf0, 0x0, 0x3, 0xc0, 0x3, 0xc1, 0xf0,
-    0x2e, 0x0, 0x0, 0xf0, 0x0, 0xf0, 0xf8, 0x3,
-    0xc0, 0x0, 0x3c, 0xa0, 0x3c, 0xfc, 0x0, 0xb8,
-    0x0, 0x1f, 0xf8, 0x1f, 0x3c, 0x0, 0xf, 0x1,
-    0xbf, 0xf9, 0xf, 0xe5, 0x0, 0x2, 0x40, 0xff,
-    0x90, 0xf, 0xfe, 0x0, 0x0, 0x0, 0x24, 0x0,
-    0xf, 0xc7, 0xfa, 0x55, 0x56, 0x0, 0x0, 0xb,
-    0xc0, 0x3f, 0xff, 0xff, 0xc0, 0x0, 0x0, 0x80,
-    0x1, 0xab, 0xfe, 0x90, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0,
-
-    /* U+57B1 "垱" */
-    0x0, 0x3c, 0x0, 0x0, 0xf, 0x0, 0x0, 0x0,
-    0xf0, 0x1, 0x0, 0x3c, 0x0, 0x40, 0x3, 0xc0,
-    0x2e, 0x0, 0xf0, 0x7, 0x80, 0xf, 0x0, 0x7d,
-    0x3, 0xc0, 0x3d, 0x0, 0x3c, 0x0, 0xbc, 0xf,
-    0x2, 0xf0, 0x0, 0xf0, 0x0, 0xf8, 0x3c, 0xf,
-    0x40, 0x3, 0xc0, 0x1, 0xf4, 0xf0, 0xf8, 0x0,
-    0xf, 0x0, 0x2, 0xd3, 0xc7, 0xc0, 0xf, 0xff,
-    0xf4, 0x0, 0xf, 0x5, 0x0, 0x3f, 0xff, 0xd0,
-    0x0, 0x3d, 0x0, 0x0, 0x57, 0xd5, 0x2f, 0xff,
-    0xff, 0xff, 0x0, 0xf, 0x0, 0xbf, 0xff, 0xff,
-    0xfc, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x0, 0xf0,
-    0x0, 0xf0, 0x0, 0x0, 0x0, 0x3, 0xc0, 0x3,
-    0xc0, 0x0, 0x0, 0x0, 0xf, 0x0, 0xf, 0x0,
-    0x0, 0x0, 0x0, 0x3c, 0x0, 0x3c, 0x0, 0xff,
-    0xff, 0xff, 0xf0, 0x0, 0xf0, 0x3, 0xff, 0xff,
-    0xff, 0xc0, 0x3, 0xc0, 0x0, 0x0, 0x0, 0xf,
-    0x0, 0xf, 0x6e, 0x0, 0x0, 0x0, 0x3c, 0x0,
-    0x7f, 0xf8, 0x0, 0x0, 0x0, 0xf0, 0xbf, 0xfe,
-    0x40, 0x0, 0x0, 0x3, 0xc3, 0xfe, 0x40, 0x0,
-    0x0, 0x0, 0xf, 0x5, 0x0, 0x0, 0xff, 0xff,
-    0xff, 0xfc, 0x0, 0x0, 0x3, 0xff, 0xff, 0xff,
-    0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xc0,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0x0,
-
     /* U+57B2 "垲" */
     0x0, 0xf0, 0x0, 0x0, 0xb4, 0x0, 0x0, 0x3,
     0xc0, 0x10, 0x3, 0xd0, 0x4, 0x0, 0xf, 0x0,
@@ -26528,6 +28309,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x5, 0xbc, 0x0, 0x0, 0x7, 0xff, 0xff, 0xff,
     0xe0, 0x0, 0x0, 0x6, 0xff, 0xff, 0xf9, 0x0,
 
+    /* U+57B4 "垴" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x38, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x3c,
+    0x0, 0x0, 0x3d, 0x0, 0x0, 0x0, 0x3c, 0x0,
+    0x0, 0x2f, 0x0, 0x0, 0x0, 0x3c, 0x5, 0x55,
+    0x5f, 0x55, 0x55, 0x0, 0x3c, 0xf, 0xff, 0xff,
+    0xff, 0xff, 0x0, 0x3c, 0xf, 0xff, 0xff, 0xff,
+    0xff, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x7c, 0x0, 0x1d, 0x0, 0x2c, 0x0, 0x1f,
+    0xff, 0xf0, 0x1f, 0x0, 0x3c, 0x0, 0x1f, 0xff,
+    0xf7, 0x8b, 0xc0, 0xb8, 0xb4, 0x0, 0x3c, 0x7,
+    0x82, 0xe0, 0xf0, 0xb4, 0x0, 0x3c, 0x7, 0x80,
+    0xf6, 0xe0, 0xb4, 0x0, 0x3c, 0x7, 0x80, 0x7f,
+    0xc0, 0xb4, 0x0, 0x3c, 0x7, 0x80, 0x2f, 0x40,
+    0xb4, 0x0, 0x3c, 0x7, 0x80, 0x2f, 0x40, 0xb4,
+    0x0, 0x3c, 0x7, 0x80, 0x3f, 0xc0, 0xb4, 0x0,
+    0x3c, 0x7, 0x80, 0xf6, 0xe0, 0xb4, 0x0, 0x3c,
+    0x7, 0x82, 0xf0, 0xf0, 0xb4, 0x0, 0x3c, 0x7,
+    0x87, 0xc0, 0xbc, 0xb4, 0x0, 0x3e, 0xf7, 0x8f,
+    0x40, 0x3d, 0xb4, 0x1, 0xff, 0xf7, 0xbe, 0x0,
+    0x1f, 0xb4, 0x3f, 0xfe, 0x47, 0x88, 0x0, 0x8,
+    0xb4, 0x2f, 0x90, 0x7, 0x80, 0x0, 0x0, 0xb4,
+    0x0, 0x0, 0x7, 0xff, 0xff, 0xff, 0xf4, 0x0,
+    0x0, 0x7, 0xff, 0xff, 0xff, 0xf4, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0xf4, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0xb4,
+
     /* U+57B8 "垸" */
     0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0,
     0xf0, 0x0, 0x1, 0xf0, 0x0, 0x0, 0x0, 0xf0,
@@ -26637,34 +28445,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x0,
     0x0, 0xff, 0xff, 0xff, 0xff, 0xfd,
 
-    /* U+57CC "埌" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x7, 0x80, 0x0, 0xf, 0x0, 0x0, 0x0, 0x1,
-    0xe0, 0x0, 0x2, 0xd0, 0x0, 0x0, 0x0, 0x78,
-    0x0, 0x0, 0x78, 0x0, 0x0, 0x0, 0x1e, 0x0,
-    0xff, 0xff, 0xff, 0xd0, 0x0, 0x7, 0x80, 0x3f,
-    0xff, 0xff, 0xf4, 0x0, 0x1, 0xe0, 0xf, 0x0,
-    0x0, 0x3d, 0x0, 0x0, 0x78, 0x3, 0xc0, 0x0,
-    0xf, 0x40, 0x5, 0x6f, 0x54, 0xf0, 0x0, 0x3,
-    0xd0, 0x3, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xf4,
-    0x0, 0xab, 0xfa, 0x4f, 0xff, 0xff, 0xfd, 0x0,
-    0x0, 0x78, 0x3, 0xc0, 0x0, 0xf, 0x40, 0x0,
-    0x1e, 0x0, 0xf0, 0x0, 0x3, 0xd0, 0x0, 0x7,
-    0x80, 0x3c, 0x0, 0x0, 0xf4, 0x0, 0x1, 0xe0,
-    0xf, 0xff, 0xff, 0xfd, 0x0, 0x0, 0x78, 0x3,
-    0xff, 0xff, 0xff, 0x40, 0x0, 0x1e, 0x0, 0xf0,
-    0x78, 0x0, 0x0, 0x0, 0x7, 0x80, 0x3c, 0xf,
-    0x0, 0x2d, 0x0, 0x1, 0xe0, 0xf, 0x2, 0xe0,
-    0x2f, 0x40, 0x0, 0x78, 0x3, 0xc0, 0x3c, 0x7f,
-    0x0, 0x0, 0x1e, 0xb8, 0xf0, 0x7, 0xfe, 0x0,
-    0x0, 0x1f, 0xff, 0x3c, 0x0, 0xbd, 0x0, 0x2,
-    0xff, 0xf9, 0xf, 0x0, 0xf, 0xc0, 0x0, 0xff,
-    0x80, 0x3, 0xc0, 0x70, 0xfd, 0x0, 0x14, 0x0,
-    0x0, 0xf6, 0xfc, 0xb, 0xf4, 0x0, 0x0, 0x0,
-    0x7f, 0xf9, 0x0, 0x7f, 0xc0, 0x0, 0x0, 0x2f,
-    0xd0, 0x0, 0x2, 0xe0, 0x0, 0x0, 0x2, 0x0,
-    0x0, 0x0, 0x0,
-
     /* U+57CE "城" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0xa, 0x0, 0x0, 0x3, 0xd1, 0xc0, 0x0, 0x7,
@@ -26880,31 +28660,31 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xbe, 0x0, 0x0, 0xf, 0x0, 0x0, 0xff, 0xc0,
     0x0, 0x0, 0xf0, 0x0, 0xb, 0xa0,
 
-    /* U+57DC "埜" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x3, 0xc0, 0x0, 0x7, 0x80, 0x0, 0x0, 0x3,
-    0xc0, 0x0, 0x7, 0x80, 0x0, 0x0, 0x3, 0xc0,
-    0x0, 0x7, 0x80, 0x0, 0x5, 0x5b, 0xd5, 0x45,
-    0x5b, 0x95, 0x50, 0x1f, 0xff, 0xff, 0xdb, 0xff,
-    0xff, 0xf4, 0xa, 0xaf, 0xea, 0x96, 0xaf, 0xea,
-    0xa0, 0x0, 0xf, 0xc0, 0x0, 0xf, 0xe0, 0x0,
-    0x0, 0x2f, 0xf8, 0x0, 0x3f, 0xf4, 0x0, 0x0,
-    0x7f, 0xff, 0x0, 0xbf, 0xfc, 0x0, 0x1, 0xf7,
-    0xcb, 0xc2, 0xf7, 0xaf, 0x0, 0x7, 0xd3, 0xc2,
-    0x4b, 0xc7, 0x8b, 0xc0, 0x2f, 0x83, 0xc0, 0x3f,
-    0x7, 0x82, 0xf4, 0x7e, 0x3, 0xc0, 0xfc, 0x7,
-    0x80, 0xbc, 0x38, 0x3, 0xc0, 0x20, 0x7, 0x80,
-    0x14, 0x0, 0x3, 0x80, 0x0, 0x7, 0x40, 0x0,
-    0x0, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x7c, 0x0, 0x0, 0x0, 0x3, 0xff, 0xff,
-    0xff, 0xff, 0xff, 0x80, 0x2, 0xff, 0xff, 0xff,
-    0xff, 0xff, 0x40, 0x0, 0x0, 0x0, 0x3c, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x3c, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x7c, 0x0, 0x0, 0x0, 0x3f,
-    0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x3f, 0xff,
-    0xff, 0xff, 0xff, 0xff, 0xfc,
+    /* U+57DD "埝" */
+    0x0, 0xf0, 0x0, 0x0, 0xb8, 0x0, 0x0, 0x0,
+    0xf0, 0x0, 0x1, 0xfd, 0x0, 0x0, 0x0, 0xf0,
+    0x0, 0x3, 0xef, 0x0, 0x0, 0x0, 0xf0, 0x0,
+    0xb, 0x8b, 0xc0, 0x0, 0x0, 0xf0, 0x0, 0x2f,
+    0x3, 0xf0, 0x0, 0x0, 0xf0, 0x0, 0xbc, 0x40,
+    0xfd, 0x0, 0x0, 0xf0, 0x2, 0xf6, 0xd0, 0x3f,
+    0x80, 0x3f, 0xff, 0x4f, 0xd0, 0xf0, 0xf, 0xf4,
+    0x3f, 0xff, 0xff, 0x40, 0xb8, 0x3, 0xfd, 0x0,
+    0xf4, 0x3c, 0x0, 0x3c, 0x0, 0xbc, 0x0, 0xf0,
+    0x0, 0x0, 0x14, 0x0, 0x4, 0x0, 0xf0, 0x3,
+    0xff, 0xff, 0xff, 0x0, 0x0, 0xf0, 0x3, 0xff,
+    0xff, 0xff, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x0,
+    0x3d, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0x7c,
+    0x0, 0x0, 0xf0, 0x0, 0x0, 0xb0, 0xf0, 0x0,
+    0x0, 0xf0, 0x0, 0x24, 0xb4, 0xe0, 0x0, 0x0,
+    0xf0, 0x5, 0x3c, 0x3c, 0x1, 0x40, 0x0, 0xf0,
+    0xf, 0x3c, 0x1e, 0x3, 0xc0, 0x0, 0xfb, 0x5e,
+    0x3c, 0xf, 0x1, 0xe0, 0x2, 0xff, 0x7d, 0x3c,
+    0x4, 0x24, 0xf0, 0xbf, 0xf9, 0x3c, 0x3c, 0x0,
+    0x78, 0x78, 0xbe, 0x40, 0xb4, 0x3c, 0x0, 0x78,
+    0x3c, 0x0, 0x0, 0xf0, 0x3d, 0x0, 0xf4, 0x2e,
+    0x0, 0x0, 0xd0, 0x3f, 0xff, 0xf0, 0x8, 0x0,
+    0x0, 0x0, 0xb, 0xff, 0xd0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0,
 
     /* U+57DF "域" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1,
@@ -26958,6 +28738,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x3c, 0x0, 0x0,
 
+    /* U+57E4 "埤" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x3c, 0x0, 0x0, 0x3e, 0x0, 0x0, 0x0, 0x3c,
+    0x0, 0x0, 0x7d, 0x0, 0x0, 0x0, 0x3c, 0x0,
+    0x0, 0xbc, 0x0, 0x0, 0x0, 0x3c, 0x2, 0xff,
+    0xff, 0xff, 0xf0, 0x0, 0x3c, 0x2, 0xff, 0xff,
+    0xff, 0xf0, 0x0, 0x3c, 0x2, 0xd0, 0x1e, 0x1,
+    0xf0, 0x0, 0x3c, 0x2, 0xd0, 0x1e, 0x1, 0xf0,
+    0xa, 0xbe, 0xa2, 0xd0, 0x1e, 0x1, 0xf0, 0xf,
+    0xff, 0xf2, 0xff, 0xff, 0xff, 0xf0, 0xa, 0xbe,
+    0xa2, 0xff, 0xff, 0xff, 0xf0, 0x0, 0x3c, 0x2,
+    0xd0, 0x2d, 0x1, 0xf0, 0x0, 0x3c, 0x2, 0xd0,
+    0x2d, 0x1, 0xf0, 0x0, 0x3c, 0x2, 0xd0, 0x2c,
+    0x1, 0xf0, 0x0, 0x3c, 0x2, 0xd0, 0x3c, 0x1,
+    0xf0, 0x0, 0x3c, 0x2, 0xff, 0xff, 0xff, 0xf0,
+    0x0, 0x3c, 0x2, 0xff, 0xff, 0xff, 0xe0, 0x0,
+    0x3c, 0x0, 0x3, 0xe1, 0x0, 0x0, 0x0, 0x3c,
+    0x0, 0x1f, 0xc7, 0x80, 0x0, 0x0, 0x3c, 0x0,
+    0xbe, 0x7, 0x80, 0x0, 0x0, 0x3e, 0xf0, 0xf4,
+    0x7, 0x80, 0x0, 0x1, 0xbf, 0xfb, 0xff, 0xff,
+    0xff, 0xff, 0x3f, 0xfe, 0x4b, 0xff, 0xff, 0xff,
+    0xff, 0x3f, 0x90, 0x0, 0x0, 0x7, 0x80, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x7, 0x80, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x7, 0x80, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x7, 0x80, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x7, 0x80, 0x0,
+
     /* U+57ED "埭" */
     0x0, 0xa0, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x0,
     0xf0, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0xf0,
@@ -27115,32 +28922,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xff, 0xff, 0xff, 0xff, 0xf8, 0x0, 0xff, 0xff,
     0xff, 0xff, 0xff, 0xff, 0x0,
 
-    /* U+57FC "埼" */
-    0x0, 0xf0, 0x0, 0x0, 0x7c, 0x0, 0x0, 0x0,
-    0xf0, 0x0, 0x0, 0x7c, 0x0, 0x0, 0x0, 0xf0,
-    0x0, 0x0, 0x7c, 0x0, 0x0, 0x0, 0xf0, 0xb,
-    0xff, 0xff, 0xff, 0xf0, 0x0, 0xf0, 0xb, 0xff,
-    0xff, 0xff, 0xf0, 0x0, 0xf0, 0x0, 0x0, 0xf8,
-    0x0, 0x0, 0x0, 0xf0, 0x0, 0x2, 0xff, 0x40,
-    0x0, 0x3f, 0xff, 0xc0, 0xb, 0xdb, 0xe0, 0x0,
-    0x3f, 0xff, 0xc1, 0xbf, 0x1, 0xfe, 0x0, 0x0,
-    0xf0, 0xb, 0xf4, 0x0, 0x1f, 0xc0, 0x0, 0xf0,
-    0x2, 0x40, 0x0, 0x2, 0x40, 0x0, 0xf0, 0x3f,
-    0xff, 0xff, 0xff, 0xfd, 0x0, 0xf0, 0x3f, 0xff,
-    0xff, 0xff, 0xfd, 0x0, 0xf0, 0x0, 0x0, 0x0,
-    0xb, 0x40, 0x0, 0xf0, 0x0, 0x0, 0x0, 0xb,
-    0x40, 0x0, 0xf0, 0x0, 0x0, 0x0, 0xb, 0x40,
-    0x0, 0xf0, 0x7, 0xff, 0xfc, 0xb, 0x40, 0x0,
-    0xf0, 0x7, 0xff, 0xfc, 0xb, 0x40, 0x0, 0xf0,
-    0x47, 0x40, 0x2c, 0xb, 0x40, 0x0, 0xfb, 0xc7,
-    0x40, 0x2c, 0xb, 0x40, 0x6, 0xff, 0x87, 0x40,
-    0x2c, 0xb, 0x40, 0xff, 0xe4, 0x7, 0xff, 0xfc,
-    0xb, 0x40, 0xb9, 0x0, 0x7, 0xff, 0xfc, 0xb,
-    0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0x40,
-    0x0, 0x0, 0x0, 0x0, 0x1, 0xbf, 0x40, 0x0,
-    0x0, 0x0, 0x0, 0x7, 0xfe, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x1, 0x50, 0x0,
-
     /* U+57FD "埽" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3,
     0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0x0,
@@ -27167,6 +28948,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0x7, 0xc0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x1f, 0x0, 0x0,
 
+    /* U+5800 "堀" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf0, 0xf,
+    0xff, 0xff, 0xff, 0xd0, 0xf, 0x0, 0xff, 0xff,
+    0xff, 0xfe, 0x0, 0xf0, 0xf, 0x0, 0x0, 0x2,
+    0xe0, 0xf, 0x0, 0xf0, 0x0, 0x0, 0x1e, 0x0,
+    0xf0, 0xf, 0x0, 0x0, 0x1, 0xe0, 0xf, 0x0,
+    0xf0, 0x0, 0x0, 0x2e, 0x15, 0xf5, 0xf, 0xff,
+    0xff, 0xff, 0xe3, 0xff, 0xf8, 0xff, 0xff, 0xff,
+    0xfe, 0x3f, 0xff, 0x8f, 0x0, 0x5, 0x0, 0x0,
+    0xf, 0x0, 0xf0, 0x0, 0xf0, 0x0, 0x0, 0xf0,
+    0x1f, 0x2c, 0xf, 0x2, 0xc0, 0xf, 0x1, 0xf2,
+    0xc0, 0xf0, 0x2c, 0x0, 0xf0, 0x1f, 0x2c, 0xf,
+    0x2, 0xc0, 0xf, 0x1, 0xf2, 0xc0, 0xf0, 0x2c,
+    0x0, 0xf0, 0x1e, 0x2f, 0xff, 0xff, 0xc0, 0xf,
+    0x1, 0xe2, 0xff, 0xff, 0xfc, 0x0, 0xf0, 0x2e,
+    0x0, 0xf, 0x0, 0x0, 0xf, 0xb2, 0xd1, 0x0,
+    0xf0, 0x4, 0x1, 0xff, 0x3c, 0x34, 0xf, 0x0,
+    0xe2, 0xff, 0x93, 0xc3, 0x40, 0xf0, 0xe, 0x7f,
+    0x80, 0x78, 0x34, 0xf, 0x0, 0xe6, 0x40, 0xf,
+    0x43, 0x40, 0xf0, 0xe, 0x0, 0x0, 0xf0, 0x39,
+    0x5f, 0x55, 0xe0, 0x0, 0x2e, 0x3, 0xff, 0xff,
+    0xfe, 0x0, 0x7, 0xc0, 0x3f, 0xff, 0xff, 0xe0,
+    0x0, 0x28, 0x0, 0x0, 0x0, 0xe, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+5802 "堂" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x90, 0x1, 0xf0, 0x0, 0x90, 0x0, 0x7, 0xd0,
@@ -27270,32 +29077,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xb0, 0x5, 0x1d, 0x2, 0x90, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
-    /* U+580C "堌" */
-    0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3,
-    0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0x0,
-    0xff, 0xff, 0xff, 0xff, 0x0, 0x3c, 0x3, 0xff,
-    0xff, 0xff, 0xfc, 0x0, 0xf0, 0xf, 0x0, 0x0,
-    0x0, 0xf0, 0x3, 0xc0, 0x3c, 0x0, 0xa0, 0x3,
-    0xc0, 0xf, 0x0, 0xf0, 0x3, 0xc0, 0xf, 0x0,
-    0x3c, 0x3, 0xc0, 0xf, 0x0, 0x3c, 0x2a, 0xfa,
-    0x8f, 0x0, 0x3c, 0x0, 0xf0, 0xff, 0xff, 0x3c,
-    0xff, 0xff, 0xf3, 0xc1, 0x5f, 0x54, 0xf2, 0xab,
-    0xea, 0x8f, 0x0, 0x3c, 0x3, 0xc0, 0xf, 0x0,
-    0x3c, 0x0, 0xf0, 0xf, 0x0, 0x3c, 0x0, 0xf0,
-    0x3, 0xc0, 0x3c, 0x0, 0xf0, 0x3, 0xc0, 0xf,
-    0x0, 0xf0, 0xbf, 0xfe, 0xf, 0x0, 0x3c, 0x3,
-    0xc2, 0xea, 0xf8, 0x3c, 0x0, 0xf0, 0xf, 0xb,
-    0x0, 0xe0, 0xf0, 0x3, 0xc0, 0x3c, 0x2c, 0x3,
-    0x83, 0xc0, 0xf, 0x0, 0xf0, 0xb0, 0xe, 0xf,
-    0x0, 0x3c, 0x13, 0xc2, 0xc0, 0x38, 0x3c, 0x0,
-    0xfb, 0xcf, 0xb, 0xff, 0xe0, 0xf0, 0x1b, 0xfe,
-    0x3c, 0x1a, 0xaa, 0x43, 0xcb, 0xff, 0x80, 0xf0,
-    0x0, 0x0, 0xf, 0x2f, 0x80, 0x3, 0xc0, 0x0,
-    0x0, 0x3c, 0x0, 0x0, 0xf, 0x0, 0x0, 0x0,
-    0xf0, 0x0, 0x0, 0x3f, 0xff, 0xff, 0xff, 0xc0,
-    0x0, 0x0, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0,
-    0x3, 0xc0, 0x0, 0x0, 0x3c,
-
     /* U+580D "堍" */
     0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0,
     0xf0, 0x0, 0xf, 0x0, 0x0, 0x0, 0x0, 0xf0,
@@ -27349,6 +29130,31 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x7f, 0xff,
     0xff, 0xff, 0xff, 0xff, 0xfc,
 
+    /* U+5815 "堕" */
+    0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x7f, 0xff,
+    0x40, 0x1f, 0x0, 0x0, 0x1, 0xff, 0xfe, 0xaa,
+    0xfe, 0xaa, 0xa9, 0x7, 0x80, 0xf7, 0xff, 0xff,
+    0xff, 0xf8, 0x1e, 0x3, 0xc0, 0x7d, 0x0, 0x0,
+    0x0, 0x78, 0x2d, 0x2, 0xf0, 0x0, 0x0, 0x1,
+    0xe0, 0xf0, 0x1f, 0xea, 0xaa, 0x90, 0x7, 0x8b,
+    0x41, 0xff, 0xff, 0xff, 0x80, 0x1e, 0x2e, 0x1f,
+    0xf0, 0x0, 0x1e, 0x0, 0x78, 0x2d, 0xbb, 0xea,
+    0xaa, 0xb8, 0x1, 0xe0, 0x3c, 0x4f, 0xff, 0xff,
+    0xe0, 0x7, 0x80, 0x74, 0x3c, 0x0, 0x7, 0x80,
+    0x1e, 0x2, 0xe0, 0xfa, 0xaa, 0xae, 0x0, 0x78,
+    0x6f, 0x43, 0xff, 0xff, 0xf8, 0x1, 0xe7, 0xf8,
+    0xf, 0x0, 0x1, 0xe0, 0x7, 0x85, 0x0, 0x3c,
+    0x0, 0x5f, 0x80, 0x1e, 0x0, 0x0, 0xe0, 0x3,
+    0xfd, 0x0, 0x78, 0x0, 0x0, 0x0, 0x6, 0x40,
+    0x0, 0x0, 0x0, 0x1f, 0x0, 0x0, 0x0, 0x1,
+    0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x7, 0xff,
+    0xff, 0xff, 0xff, 0xfc, 0x0, 0x0, 0x0, 0x7,
+    0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x7c, 0x0, 0x0,
+    0x0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe3,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+
     /* U+5819 "堙" */
     0x0, 0x90, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3,
     0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0x7,
@@ -27588,33 +29394,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x1a, 0x50, 0x0, 0x0, 0x0, 0x40, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+5846 "塆" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0xe0, 0x0, 0x0, 0xb0, 0x0, 0x0, 0x0, 0xf0,
-    0x0, 0x0, 0xb8, 0x0, 0x0, 0x0, 0xf0, 0x0,
-    0x0, 0x7c, 0x0, 0x0, 0x0, 0xf0, 0x1f, 0xff,
-    0xff, 0xff, 0xfc, 0x0, 0xf0, 0x1f, 0xff, 0xff,
-    0xff, 0xfc, 0x0, 0xf0, 0x0, 0xf, 0x43, 0xc0,
-    0x0, 0x0, 0xf0, 0x1, 0x4f, 0x3, 0xc3, 0x40,
-    0x3f, 0xff, 0x83, 0xcf, 0x3, 0xc7, 0xd0, 0x3f,
-    0xff, 0x8f, 0x4f, 0x3, 0xc1, 0xf8, 0x1, 0xf0,
-    0x7d, 0xf, 0x3, 0xc0, 0x3e, 0x0, 0xf0, 0x34,
-    0x5, 0x1, 0x40, 0xd, 0x0, 0xf0, 0xb, 0xff,
-    0xff, 0xff, 0x80, 0x0, 0xf0, 0xb, 0xff, 0xff,
-    0xff, 0x80, 0x0, 0xf0, 0x0, 0x0, 0x0, 0xb,
-    0x80, 0x0, 0xf0, 0x0, 0x0, 0x0, 0xb, 0x80,
-    0x0, 0xf0, 0x3, 0xff, 0xff, 0xff, 0x80, 0x0,
-    0xf0, 0x7, 0xff, 0xff, 0xff, 0x80, 0x0, 0xf0,
-    0x7, 0xc0, 0x0, 0x0, 0x0, 0x0, 0xf6, 0x8b,
-    0x80, 0x0, 0x0, 0x0, 0x1, 0xff, 0xcb, 0xff,
-    0xff, 0xff, 0xe0, 0x6f, 0xfd, 0xf, 0xff, 0xff,
-    0xff, 0xe0, 0xff, 0x80, 0x0, 0x0, 0x0, 0x3,
-    0xd0, 0x50, 0x0, 0x0, 0x0, 0x0, 0x3, 0xd0,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xd0, 0x0,
-    0x0, 0x0, 0x0, 0x5, 0x5f, 0xc0, 0x0, 0x0,
-    0x0, 0x0, 0x3f, 0xff, 0x40, 0x0, 0x0, 0x0,
-    0x0, 0x2f, 0xa4, 0x0,
-
     /* U+584C "塌" */
     0x0, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf,
     0x0, 0x3f, 0xff, 0xff, 0xfc, 0x0, 0xf0, 0x3,
@@ -27749,6 +29528,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x3c, 0x0, 0x7, 0x80, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+585E "塞" */
+    0x0, 0x0, 0x0, 0x18, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xf, 0x80, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x1, 0xf0, 0x0, 0x0, 0x0, 0xa, 0xaa,
+    0xaa, 0xfe, 0xaa, 0xaa, 0x90, 0x3, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xf8, 0x0, 0xf0, 0x0, 0x0,
+    0x0, 0x0, 0x2e, 0x0, 0x3c, 0x0, 0xe0, 0x1,
+    0xe0, 0x7, 0x80, 0x5, 0x0, 0x3c, 0x0, 0x78,
+    0x0, 0x40, 0x0, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xd0, 0x0, 0x2f, 0xff, 0xff, 0xff, 0xff, 0xf4,
+    0x0, 0x0, 0x0, 0xf0, 0x1, 0xe0, 0x0, 0x0,
+    0x0, 0x0, 0x3c, 0x0, 0x78, 0x0, 0x0, 0x0,
+    0xbf, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x0, 0x1a,
+    0xab, 0xea, 0xab, 0xea, 0xa0, 0x0, 0x0, 0x0,
+    0xf0, 0x1, 0xe0, 0x0, 0x0, 0x2f, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xf4, 0xf, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xfd, 0x0, 0x0, 0x1f, 0x40, 0x3,
+    0xe0, 0x0, 0x0, 0x0, 0x1f, 0x40, 0xa0, 0x3e,
+    0x0, 0x0, 0x0, 0x2f, 0x40, 0x7c, 0x2, 0xf4,
+    0x0, 0x0, 0x7f, 0x0, 0x1f, 0x0, 0x1f, 0xd0,
+    0x1, 0xfd, 0x2f, 0xff, 0xff, 0xf0, 0xbf, 0x43,
+    0xf8, 0x7, 0xff, 0xff, 0xfc, 0x7, 0xf4, 0x60,
+    0x0, 0x0, 0x7c, 0x0, 0x0, 0x4, 0x0, 0x0,
+    0x0, 0x1f, 0x0, 0x0, 0x0, 0x0, 0x7f, 0xff,
+    0xff, 0xff, 0xff, 0xfc, 0x0, 0x1f, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0x0,
+
     /* U+5865 "塥" */
     0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3,
     0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0x2,
@@ -27776,6 +29582,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x7, 0x80, 0x0, 0xb, 0xe0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+586B "填" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xa0, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0xf4,
+    0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0xf4, 0x2a,
+    0xaa, 0xfa, 0xaa, 0xa0, 0x0, 0xf4, 0x3f, 0xff,
+    0xff, 0xff, 0xf0, 0x0, 0xf4, 0x0, 0x0, 0xf0,
+    0x0, 0x0, 0x0, 0xf4, 0x0, 0x0, 0xf0, 0x0,
+    0x0, 0x0, 0xf4, 0x2, 0xaa, 0xfa, 0xaa, 0x0,
+    0x15, 0xf5, 0x43, 0xff, 0xff, 0xff, 0x0, 0x3f,
+    0xff, 0xd3, 0xc0, 0x0, 0xf, 0x0, 0x2a, 0xfa,
+    0x83, 0xea, 0xaa, 0xaf, 0x0, 0x0, 0xf4, 0x3,
+    0xff, 0xff, 0xff, 0x0, 0x0, 0xf4, 0x3, 0xc0,
+    0x0, 0xf, 0x0, 0x0, 0xf4, 0x3, 0xc0, 0x0,
+    0xf, 0x0, 0x0, 0xf4, 0x3, 0xff, 0xff, 0xff,
+    0x0, 0x0, 0xf4, 0x3, 0xea, 0xaa, 0xaf, 0x0,
+    0x0, 0xf4, 0x3, 0xc0, 0x0, 0xf, 0x0, 0x0,
+    0xf4, 0x3, 0xea, 0xaa, 0xaf, 0x0, 0x0, 0xf4,
+    0x3, 0xff, 0xff, 0xff, 0x0, 0x0, 0xf4, 0x43,
+    0xc0, 0x0, 0xf, 0x0, 0x0, 0xff, 0xc3, 0xc0,
+    0x0, 0xf, 0x0, 0x1, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xfd, 0x6f, 0xf8, 0x2a, 0xaa, 0xaa, 0xaa,
+    0xa8, 0xbf, 0x40, 0x0, 0x1c, 0x2, 0x80, 0x0,
+    0x60, 0x0, 0x0, 0xbd, 0x3, 0xf8, 0x0, 0x0,
+    0x0, 0xb, 0xf4, 0x0, 0xbf, 0x90, 0x0, 0x1,
+    0xff, 0x40, 0x0, 0x7, 0xf8, 0x0, 0x0, 0xf4,
+    0x0, 0x0, 0x0, 0x74, 0x0, 0x0, 0x40, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+586C "塬" */
     0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0xf0, 0x5, 0x55, 0x55, 0x55, 0x54, 0x0, 0xf0,
@@ -27803,32 +29637,30 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x80, 0x0, 0xa4, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
-    /* U+5875 "塵" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0xf, 0x80, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0xb, 0xc0, 0x0, 0x0, 0x0, 0xbf, 0xff,
-    0xff, 0xff, 0xff, 0xfd, 0x0, 0xff, 0xff, 0xff,
-    0xff, 0xff, 0xfe, 0x0, 0xf0, 0x3, 0xc0, 0x1e,
-    0x0, 0x0, 0x0, 0xf0, 0x3, 0xc0, 0x1e, 0x0,
-    0x0, 0x0, 0xfa, 0xab, 0xea, 0xbf, 0xaa, 0xa0,
-    0x0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x0,
-    0xf0, 0x3, 0xc0, 0x1e, 0x0, 0xf0, 0x0, 0xfa,
-    0xab, 0xea, 0xaf, 0xaa, 0xf0, 0x0, 0xff, 0xff,
-    0xff, 0xff, 0xff, 0xf0, 0x0, 0xf0, 0x3c, 0x0,
-    0x2c, 0x0, 0x0, 0x0, 0xf0, 0x3c, 0x0, 0x2c,
-    0x6, 0xe0, 0x0, 0xf0, 0x3f, 0xff, 0x6e, 0xff,
-    0xd0, 0x0, 0xf0, 0x3e, 0xaa, 0x2f, 0xe4, 0x18,
-    0x0, 0xf0, 0x3c, 0x1, 0x2c, 0x0, 0x2d, 0x0,
-    0xf0, 0x7f, 0xff, 0x6f, 0xaa, 0xfc, 0x1, 0xf0,
-    0xbf, 0xa5, 0xb, 0xff, 0xf4, 0x1, 0xf0, 0x10,
-    0x1, 0xf0, 0x0, 0x0, 0x2, 0xe0, 0x0, 0x1,
-    0xf0, 0x0, 0x0, 0x3, 0xd0, 0xff, 0xff, 0xff,
-    0xff, 0xd0, 0x3, 0xc0, 0xaa, 0xaa, 0xfa, 0xaa,
-    0x90, 0xb, 0x80, 0x0, 0x1, 0xf0, 0x0, 0x0,
-    0xf, 0x40, 0x0, 0x1, 0xf0, 0x0, 0x0, 0x1f,
-    0xf, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3d, 0xa,
-    0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x28, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0,
+    /* U+587E "塾" */
+    0x0, 0xb, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x0,
+    0x7, 0x80, 0x0, 0x3c, 0x0, 0x0, 0x2f, 0xff,
+    0xff, 0xf4, 0x3c, 0x0, 0x0, 0x1a, 0xaa, 0xaa,
+    0xa0, 0x3c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3,
+    0xff, 0xff, 0x40, 0x7, 0xff, 0xff, 0xc3, 0xff,
+    0xff, 0x40, 0x7, 0xd5, 0x57, 0xc0, 0x3c, 0xb,
+    0x40, 0x7, 0x80, 0x7, 0xc0, 0x3c, 0xb, 0x40,
+    0x7, 0xff, 0xff, 0xce, 0x3c, 0xb, 0x40, 0x0,
+    0x0, 0x0, 0xf, 0xfc, 0xb, 0x40, 0x6, 0xaa,
+    0xaa, 0x82, 0xfc, 0xb, 0x40, 0xf, 0xff, 0xff,
+    0xc0, 0x7f, 0x4b, 0x40, 0x0, 0x1, 0xbd, 0x0,
+    0xbf, 0xeb, 0x40, 0x0, 0x7, 0xe5, 0xa0, 0xf1,
+    0xf7, 0x4b, 0x3f, 0xff, 0xff, 0xf2, 0xd0, 0x3,
+    0x8e, 0x2a, 0x57, 0xc0, 0xb, 0x80, 0x3, 0xce,
+    0x0, 0x7, 0x80, 0x2e, 0x0, 0x2, 0xfc, 0x0,
+    0xff, 0x80, 0x18, 0x0, 0x0, 0xf8, 0x0, 0xb9,
+    0x0, 0x7c, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0,
+    0x7c, 0x0, 0x0, 0x0, 0x1, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0x0, 0x1, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0x0, 0x0, 0x0, 0x0, 0x7c, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x7c, 0x0, 0x0, 0x0,
+    0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x3f,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xfc,
 
     /* U+5880 "墀" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -27935,34 +29767,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xff, 0xfd, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff,
     0xf8,
 
-    /* U+5888 "墈" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x50, 0xf, 0x0, 0xb0, 0x2c, 0x0, 0x0, 0xf0,
-    0xf, 0x0, 0xb0, 0x2c, 0x0, 0x0, 0xf0, 0xf,
-    0x0, 0xb0, 0x2c, 0x0, 0x0, 0xf0, 0x7f, 0xff,
-    0xfd, 0x2c, 0x0, 0x0, 0xf0, 0x7f, 0xff, 0xfd,
-    0x2c, 0x0, 0x0, 0xf0, 0xf, 0x0, 0xb0, 0x7d,
-    0x54, 0x0, 0xf0, 0xf, 0x0, 0xb1, 0xff, 0xfc,
-    0x1f, 0xff, 0x4f, 0xff, 0xf0, 0x7e, 0x7c, 0x2f,
-    0xff, 0x8f, 0x55, 0xf0, 0x3c, 0x2c, 0x5, 0xf5,
-    0xf, 0x0, 0xb0, 0x3c, 0x2c, 0x0, 0xf0, 0xf,
-    0x0, 0xb0, 0x3c, 0x2c, 0x0, 0xf0, 0xf, 0xff,
-    0xf0, 0x3c, 0x3c, 0x0, 0xf0, 0xf, 0xff, 0xf0,
-    0x3c, 0x3c, 0x0, 0xf0, 0xf, 0x0, 0xb0, 0x3c,
-    0x3c, 0x0, 0xf0, 0xf, 0x0, 0xb0, 0x3c, 0x3c,
-    0x0, 0xf0, 0x7f, 0xff, 0xff, 0x3c, 0x3c, 0x0,
-    0xf0, 0x7f, 0xff, 0xff, 0x38, 0x3c, 0x0, 0xf0,
-    0x1e, 0x0, 0x0, 0x38, 0x3c, 0x0, 0xf0, 0x1e,
-    0x2c, 0xf0, 0x34, 0x3c, 0x0, 0xf6, 0x9e, 0x3c,
-    0xb4, 0x74, 0x3c, 0x0, 0xff, 0x9e, 0x74, 0x38,
-    0xb0, 0x3c, 0x2f, 0xfe, 0x1e, 0xf0, 0x3c, 0xf0,
-    0x3c, 0x7f, 0x90, 0x1e, 0x90, 0x15, 0xe0, 0x3c,
-    0x24, 0x0, 0x1e, 0x0, 0x2, 0xc0, 0x7c, 0x0,
-    0x0, 0x1f, 0xff, 0xf7, 0xca, 0xf8, 0x0, 0x0,
-    0x1a, 0xaa, 0xaf, 0x4f, 0xf0, 0x0, 0x0, 0x0,
-    0x0, 0x6, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0,
-
     /* U+5889 "墉" */
     0x0, 0x0, 0x0, 0x0, 0x14, 0x0, 0x0, 0x0,
     0xf0, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0xf0,
@@ -28044,32 +29848,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xaf, 0xea, 0xaa, 0xa8, 0x0, 0x2f, 0xff, 0xff,
     0xff, 0xff, 0xff, 0x0,
 
-    /* U+5897 "増" */
-    0x0, 0x0, 0x0, 0x8, 0x0, 0x4, 0x0, 0x0,
-    0xf0, 0x0, 0xb8, 0x0, 0x3c, 0x0, 0x3, 0xc0,
-    0x0, 0xf4, 0x2, 0xd0, 0x0, 0xf, 0x0, 0x1,
-    0xf0, 0x1f, 0x0, 0x0, 0x3c, 0x3, 0xff, 0xff,
-    0xff, 0xf0, 0x0, 0xf0, 0x1f, 0xff, 0xff, 0xff,
-    0xc0, 0x3, 0xc0, 0x78, 0x0, 0xe0, 0xb, 0x0,
-    0xf, 0x1, 0xe0, 0x3, 0x80, 0x2c, 0x5, 0x7d,
-    0x57, 0xd5, 0x6f, 0x55, 0xb0, 0x3f, 0xff, 0xdf,
-    0xff, 0xff, 0xff, 0xc0, 0xff, 0xff, 0x79, 0x55,
-    0xf5, 0x5b, 0x0, 0xf, 0x1, 0xe0, 0x3, 0x80,
-    0x2c, 0x0, 0x3c, 0x7, 0xff, 0xff, 0xff, 0xf0,
-    0x0, 0xf0, 0x1f, 0xff, 0xff, 0xff, 0xc0, 0x3,
-    0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x3c, 0x0, 0xff,
-    0xff, 0xff, 0xc0, 0x0, 0xf0, 0x3, 0xff, 0xff,
-    0xff, 0x0, 0x3, 0xc0, 0xf, 0x0, 0x0, 0x3c,
-    0x0, 0xf, 0x4, 0x3c, 0x0, 0x0, 0xf0, 0x0,
-    0x3e, 0xf0, 0xfa, 0xaa, 0xab, 0xc0, 0x1b, 0xff,
-    0xc3, 0xff, 0xff, 0xff, 0x3, 0xff, 0xe0, 0xf,
-    0x0, 0x0, 0x3c, 0xf, 0xe4, 0x0, 0x3c, 0x0,
-    0x0, 0xf0, 0x14, 0x0, 0x0, 0xf0, 0x0, 0x3,
-    0xc0, 0x0, 0x0, 0x3, 0xff, 0xff, 0xff, 0x0,
-    0x0, 0x0, 0xf, 0xff, 0xff, 0xfc, 0x0, 0x0,
-    0x0, 0x3c, 0x0, 0x0, 0xf0,
-
     /* U+5899 "墙" */
     0x0, 0xa0, 0x0, 0x0, 0xb8, 0x0, 0x0, 0x0,
     0xf0, 0x0, 0x0, 0xb8, 0x0, 0x0, 0x0, 0xf0,
@@ -28096,6 +29874,58 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0xf, 0xaa, 0xaa, 0xab, 0xd0, 0x0, 0x0,
     0xf, 0x40, 0x0, 0x3, 0xd0,
 
+    /* U+589A "墚" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xf0, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf0,
+    0x2f, 0x47, 0xff, 0xff, 0x40, 0x0, 0xf0, 0x7,
+    0xe7, 0xff, 0xff, 0x40, 0x0, 0xf0, 0x0, 0xf0,
+    0xf, 0x7, 0x40, 0x0, 0xf0, 0xa0, 0x0, 0xf,
+    0xb, 0x40, 0x0, 0xf0, 0xfc, 0x3, 0xce, 0xb,
+    0xd0, 0x0, 0xf0, 0x2f, 0x47, 0x8e, 0xb, 0xf4,
+    0x0, 0xf0, 0xb, 0x4f, 0x1d, 0xf, 0x7c, 0x3f,
+    0xff, 0xc0, 0x2d, 0x2c, 0xf, 0x2e, 0x3f, 0xff,
+    0x81, 0x48, 0x78, 0xf, 0xd, 0x0, 0xf0, 0x3,
+    0xc0, 0xf0, 0xf, 0x0, 0x0, 0xf0, 0xb, 0x47,
+    0xd0, 0x2e, 0x0, 0x0, 0xf0, 0x1f, 0x2f, 0x42,
+    0xfd, 0x0, 0x0, 0xf0, 0x3c, 0x2c, 0x1, 0xe4,
+    0x0, 0x0, 0xf0, 0x78, 0x0, 0x64, 0x0, 0x0,
+    0x0, 0xf0, 0x10, 0x0, 0x78, 0x0, 0x0, 0x0,
+    0xf0, 0x0, 0x0, 0x78, 0x0, 0x0, 0x0, 0xf0,
+    0x3f, 0xff, 0xff, 0xff, 0xf4, 0x0, 0xf0, 0x2f,
+    0xff, 0xff, 0xff, 0xf4, 0x0, 0xf6, 0xc0, 0x2,
+    0xfe, 0x0, 0x0, 0x2, 0xff, 0xc0, 0xf, 0xff,
+    0xc0, 0x0, 0x7f, 0xf9, 0x0, 0x7e, 0x79, 0xf4,
+    0x0, 0x3e, 0x40, 0x7, 0xf4, 0x78, 0x7f, 0x0,
+    0x0, 0x0, 0x7f, 0xc0, 0x78, 0xb, 0xe0, 0x0,
+    0x1, 0xfd, 0x0, 0x78, 0x1, 0xfd, 0x0, 0x0,
+    0xd0, 0x0, 0x78, 0x0, 0x18, 0x0, 0x0, 0x0,
+    0x0, 0x78, 0x0, 0x0,
+
+    /* U+589E "增" */
+    0x0, 0x0, 0x0, 0x10, 0x0, 0x10, 0x0, 0xf,
+    0x0, 0xb, 0x80, 0x3, 0xc0, 0x0, 0xf0, 0x0,
+    0x7c, 0x0, 0xb8, 0x0, 0xf, 0x0, 0x2, 0xe0,
+    0xf, 0x0, 0x0, 0xf0, 0xf, 0xff, 0xff, 0xff,
+    0xd0, 0xf, 0x1, 0xff, 0xff, 0xff, 0xfe, 0x0,
+    0xf0, 0x1e, 0x0, 0x3c, 0x1, 0xe0, 0xf, 0x1,
+    0xe3, 0x3, 0xc2, 0x5e, 0x0, 0xf0, 0x1e, 0x7c,
+    0x3c, 0x79, 0xe3, 0xff, 0xfd, 0xe2, 0xd3, 0xcf,
+    0x1e, 0x3f, 0xff, 0xde, 0xf, 0x3e, 0xd1, 0xe0,
+    0xf, 0x1, 0xe0, 0x43, 0xc4, 0x1e, 0x0, 0xf0,
+    0x1f, 0xff, 0xff, 0xff, 0xe0, 0xf, 0x1, 0xff,
+    0xff, 0xff, 0xfe, 0x0, 0xf0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xf, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xf0, 0x3, 0xff, 0xff, 0xff, 0x0, 0xf,
+    0x0, 0x3f, 0xff, 0xff, 0xf4, 0x0, 0xf0, 0x3,
+    0xc0, 0x0, 0xf, 0x40, 0xf, 0x4, 0x3c, 0x0,
+    0x0, 0xf4, 0x0, 0xff, 0xd3, 0xea, 0xaa, 0xaf,
+    0x40, 0x7f, 0xfd, 0x3f, 0xff, 0xff, 0xf4, 0xbf,
+    0xf8, 0x3, 0xc0, 0x0, 0xf, 0x4b, 0xe4, 0x0,
+    0x3c, 0x0, 0x0, 0xf4, 0x50, 0x0, 0x3, 0xc0,
+    0x0, 0xf, 0x40, 0x0, 0x0, 0x3f, 0xff, 0xff,
+    0xf4, 0x0, 0x0, 0x3, 0xff, 0xff, 0xff, 0x40,
+    0x0, 0x0, 0x3c, 0x0, 0x0, 0xf4,
+
     /* U+589F "墟" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0xf0, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0xf0,
@@ -28177,6 +30007,31 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xd0, 0x0, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+58BC "墼" */
+    0x0, 0x1, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x2, 0xd0, 0x0, 0x2a, 0xaa, 0x40, 0x2f, 0xff,
+    0xff, 0xfd, 0x3f, 0xff, 0x80, 0x15, 0x56, 0xe5,
+    0x54, 0x3c, 0x3, 0x80, 0x1, 0x56, 0xd5, 0x50,
+    0x3c, 0x3, 0x80, 0xf, 0xff, 0xff, 0xf4, 0xb8,
+    0x3, 0xe8, 0xf, 0x2, 0xd0, 0x76, 0xf0, 0x1,
+    0xf8, 0xf, 0xff, 0xff, 0xf4, 0x80, 0x0, 0x0,
+    0xf, 0x56, 0xe5, 0xb5, 0xff, 0xff, 0xe0, 0xf,
+    0x2, 0xd0, 0x75, 0xff, 0xff, 0xe0, 0xf, 0xff,
+    0xff, 0xf4, 0x24, 0x2, 0xd0, 0x0, 0x2, 0xd0,
+    0x0, 0x3c, 0x3, 0xc0, 0x55, 0x56, 0xe5, 0x55,
+    0x1f, 0xf, 0x0, 0xbf, 0xff, 0xff, 0xff, 0xb,
+    0xfd, 0x0, 0x0, 0x2, 0xd0, 0x0, 0x3, 0xfc,
+    0x0, 0xb, 0x2, 0xd0, 0x74, 0x1f, 0xff, 0x40,
+    0xb, 0xab, 0xea, 0xb6, 0xfe, 0xb, 0xf8, 0xb,
+    0xff, 0xff, 0xf6, 0xd0, 0x0, 0x7c, 0x0, 0x0,
+    0x0, 0x78, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x78, 0x0, 0x0, 0x0, 0x3, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0x80, 0x2, 0xaa, 0xaa, 0xfe, 0xaa,
+    0xaa, 0x40, 0x0, 0x0, 0x0, 0x78, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x78, 0x0, 0x0, 0x0,
+    0x6a, 0xaa, 0xaa, 0xfe, 0xaa, 0xaa, 0xa8, 0xbf,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xfc,
+
     /* U+58C1 "壁" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x15,
@@ -28203,32 +30058,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xf, 0xff,
     0xff, 0xff, 0xff, 0xff, 0xfd,
 
-    /* U+58C2 "壂" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0xbf, 0xff, 0xff, 0x43, 0xff, 0xf0, 0x0, 0x2e,
-    0xaa, 0xaa, 0xd0, 0xff, 0xfc, 0x0, 0xb, 0x0,
-    0x0, 0x74, 0x74, 0xb, 0x0, 0x2, 0xe5, 0x55,
-    0x6d, 0x1d, 0x2, 0xc0, 0x0, 0xbf, 0xff, 0xff,
-    0x4f, 0x0, 0xbf, 0x40, 0x2d, 0x14, 0x5, 0xf,
-    0x40, 0xb, 0xd0, 0xb, 0x7, 0x3, 0x40, 0x40,
-    0x0, 0x0, 0x2, 0xda, 0xea, 0xf9, 0xff, 0xff,
-    0xf0, 0x0, 0xb7, 0xff, 0xff, 0x6f, 0xaa, 0xbc,
-    0x0, 0x3c, 0x1d, 0xd, 0x3, 0xc0, 0xf, 0x0,
-    0xf, 0x7, 0x3, 0x40, 0x7c, 0xf, 0x0, 0x7,
-    0xaf, 0xff, 0xff, 0x7, 0xcf, 0x40, 0x2, 0xd6,
-    0xaa, 0xaa, 0x80, 0xbf, 0x40, 0x0, 0xf0, 0xc,
-    0xc, 0x0, 0x7f, 0xe0, 0x0, 0x7c, 0x1f, 0x47,
-    0xd1, 0xfe, 0x7f, 0x90, 0x3d, 0x2f, 0x40, 0x7c,
-    0xfd, 0x1, 0xff, 0xf, 0x7, 0x0, 0x1, 0x10,
-    0x0, 0x6, 0x80, 0x0, 0x0, 0x0, 0xe0, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x78, 0x0, 0x0,
-    0x0, 0x0, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xd0,
-    0x0, 0x2f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x0,
-    0x0, 0x0, 0x0, 0xe0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x38, 0x0, 0x0, 0x0, 0xf, 0xff,
-    0xff, 0xff, 0xff, 0xff, 0xfe, 0x3, 0xff, 0xff,
-    0xff, 0xff, 0xff, 0xff, 0x40,
-
     /* U+58C5 "壅" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x3, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -28281,32 +30110,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xff, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff,
     0xff, 0xff, 0xff, 0xf0,
 
-    /* U+58D3 "壓" */
-    0x0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0,
-    0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0xf,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xc1,
-    0xaa, 0xa9, 0x0, 0xe2, 0x0, 0x0, 0xf0, 0xf5,
-    0x57, 0xc0, 0x39, 0xf0, 0x0, 0x3c, 0x3f, 0xff,
-    0xf0, 0xe, 0x1d, 0x0, 0xf, 0xf, 0x0, 0x3c,
-    0x3, 0x81, 0x0, 0x3, 0xc3, 0xff, 0xff, 0x3f,
-    0xff, 0xf4, 0x0, 0xf0, 0x0, 0x0, 0xf, 0xff,
-    0xfe, 0x0, 0x3c, 0x3f, 0xff, 0xf0, 0x1f, 0x0,
-    0x0, 0xf, 0xe, 0x0, 0x2c, 0x7, 0xd0, 0x0,
-    0x3, 0xc3, 0xff, 0xff, 0x3, 0xf8, 0x0, 0x0,
-    0xf0, 0xe0, 0x2, 0xc0, 0xfb, 0x40, 0x0, 0x3c,
-    0x3f, 0xff, 0xf0, 0xf4, 0xf4, 0x0, 0xf, 0xf,
-    0x55, 0x7c, 0xf8, 0x1f, 0x40, 0x3, 0xc3, 0x80,
-    0x5f, 0xfc, 0x1, 0xf8, 0x1, 0xf0, 0xe0, 0x3f,
-    0x9c, 0x0, 0x1f, 0x0, 0x78, 0x0, 0x0, 0x38,
-    0x0, 0x1, 0x40, 0x2e, 0x0, 0x0, 0xf, 0x0,
-    0x0, 0x0, 0xf, 0x43, 0xff, 0xff, 0xff, 0xff,
-    0xc0, 0x7, 0xc0, 0xbf, 0xff, 0xff, 0xff, 0xf0,
-    0x2, 0xf0, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x0,
-    0xf4, 0x0, 0x0, 0xf, 0x0, 0x0, 0x0, 0x7c,
-    0x3f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x3e, 0xf,
-    0xff, 0xff, 0xff, 0xff, 0xfe, 0x6, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x0,
-
     /* U+58D5 "壕" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0xa0, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0xf0,
@@ -28335,31 +30138,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xf, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+58DF "壟" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x3c, 0x0, 0xf, 0x0, 0x0, 0x0, 0x0, 0xb4,
-    0x0, 0x3c, 0x0, 0x0, 0x3, 0xff, 0xff, 0xf4,
-    0xff, 0xff, 0xfc, 0x5, 0xf5, 0x7d, 0x43, 0xc0,
-    0x0, 0x0, 0x3, 0xc0, 0xf0, 0xf, 0x55, 0x54,
-    0x5, 0x5f, 0x5b, 0xd5, 0x3f, 0xff, 0xf0, 0x2f,
-    0xff, 0xff, 0xfc, 0x0, 0x2, 0xc0, 0x0, 0x0,
-    0x0, 0x3, 0xff, 0xff, 0x0, 0x5, 0x55, 0x55,
-    0xf, 0xaa, 0xa8, 0x0, 0x3f, 0xff, 0xf8, 0x3c,
-    0x0, 0x0, 0x0, 0xf0, 0x1, 0xe0, 0xff, 0xff,
-    0xc0, 0x3, 0xff, 0xff, 0x83, 0xc0, 0x0, 0x0,
-    0xf, 0x55, 0x6e, 0xf, 0xff, 0xfc, 0x0, 0x3d,
-    0x55, 0xb8, 0x3c, 0x0, 0x0, 0x0, 0xff, 0xff,
-    0xe0, 0xff, 0xff, 0xc0, 0x3, 0xc0, 0xb, 0x83,
-    0xd5, 0x55, 0x74, 0xf, 0x0, 0x2d, 0xf, 0x40,
-    0x2, 0xd0, 0x3c, 0xf, 0xf4, 0x2f, 0xff, 0xff,
-    0x0, 0xe0, 0x19, 0x19, 0x1, 0x55, 0x40, 0x0,
-    0x0, 0x0, 0x78, 0x0, 0x0, 0x0, 0xa, 0xaa,
-    0xab, 0xfa, 0xaa, 0xa8, 0x0, 0x3f, 0xff, 0xff,
-    0xff, 0xff, 0xf0, 0x0, 0x0, 0x0, 0x1e, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x78, 0x0, 0x0,
-    0x0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc2,
-    0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x0,
-
     /* U+58E4 "壤" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0xf0, 0x0, 0x1, 0xe0, 0x0, 0x0, 0x0, 0xf0,
@@ -28388,6 +30166,54 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xf4, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+58EB "士" */
+    0x0, 0x0, 0x0, 0x7c, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x2, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xb, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2f,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xbc, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x2, 0xf0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0xb, 0xc0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x2f, 0x0, 0x0, 0x0, 0x15, 0x55,
+    0x55, 0xbd, 0x55, 0x55, 0x55, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xf7, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xc0, 0x0, 0x0, 0x2f, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0xbc, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x2, 0xf0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xb, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x2f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xbc,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0xf0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0xb, 0xc0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x2f, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xbc, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x2, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb,
+    0xc0, 0x0, 0x0, 0x1, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xf0, 0x7, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xc0, 0x5, 0x55, 0x55, 0x55, 0x55, 0x54, 0x0,
+
+    /* U+58EC "壬" */
+    0x0, 0x0, 0x0, 0x0, 0x1, 0x6f, 0x0, 0x0,
+    0x0, 0x56, 0xbf, 0xff, 0xfd, 0x0, 0x3f, 0xff,
+    0xff, 0xff, 0xff, 0xa0, 0x0, 0xff, 0xff, 0xff,
+    0x94, 0x0, 0x0, 0x1, 0x54, 0x0, 0x7c, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x1, 0xf0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x7, 0xc0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x1f, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x7c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1,
+    0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0xc0,
+    0x0, 0x0, 0xf, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8,
+    0x55, 0x55, 0x56, 0xf5, 0x55, 0x55, 0x40, 0x0,
+    0x0, 0x7, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x1f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7c,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xf0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x7, 0xc0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x1f, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x7c, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x1, 0xf0, 0x0, 0x0, 0x0, 0x3f, 0xff, 0xff,
+    0xff, 0xff, 0xfc, 0x0, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xf0, 0x1, 0x55, 0x55, 0x55, 0x55, 0x55,
+    0x40,
+
     /* U+58EE "壮" */
     0x0, 0x3, 0xd0, 0x0, 0x1e, 0x0, 0x0, 0x0,
     0x3, 0xd0, 0x0, 0x2f, 0x0, 0x0, 0x0, 0x3,
@@ -28516,6 +30342,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe3,
     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
 
+    /* U+5902 "夂" */
+    0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x3e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x7c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xfc,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xf4, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x3, 0xff, 0xff, 0xff,
+    0xfc, 0x0, 0x0, 0xb, 0xff, 0xff, 0xff, 0xfc,
+    0x0, 0x0, 0xf, 0x95, 0x55, 0x55, 0xfc, 0x0,
+    0x0, 0x3f, 0x0, 0x0, 0x0, 0xf4, 0x0, 0x0,
+    0xbf, 0x40, 0x0, 0x2, 0xf0, 0x0, 0x1, 0xff,
+    0xc0, 0x0, 0x3, 0xe0, 0x0, 0x3, 0xf3, 0xd0,
+    0x0, 0xb, 0xc0, 0x0, 0xf, 0xc2, 0xf0, 0x0,
+    0xf, 0x80, 0x0, 0x2f, 0x40, 0xf8, 0x0, 0x3f,
+    0x0, 0x0, 0x9, 0x0, 0x7d, 0x0, 0xbd, 0x0,
+    0x0, 0x0, 0x0, 0x3f, 0x1, 0xf8, 0x0, 0x0,
+    0x0, 0x0, 0xf, 0xc7, 0xf0, 0x0, 0x0, 0x0,
+    0x0, 0x3, 0xff, 0xc0, 0x0, 0x0, 0x0, 0x0,
+    0x1, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3,
+    0xff, 0x80, 0x0, 0x0, 0x0, 0x0, 0x1f, 0xff,
+    0xf0, 0x0, 0x0, 0x0, 0x1, 0xff, 0x43, 0xfe,
+    0x0, 0x0, 0x0, 0x1f, 0xfc, 0x0, 0x7f, 0xe0,
+    0x0, 0x1, 0xff, 0xd0, 0x0, 0xb, 0xfe, 0x0,
+    0x2f, 0xfd, 0x0, 0x0, 0x1, 0xff, 0xf4, 0xbf,
+    0xd0, 0x0, 0x0, 0x0, 0x1f, 0xfc, 0x3d, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0xb4, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+5904 "处" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x1f, 0x0, 0x0, 0x3d, 0x0, 0x0, 0x0, 0x2e,
@@ -28600,6 +30453,59 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0x68, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+590F "夏" */
+    0x2a, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xa4, 0x3f,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x0, 0x0,
+    0x0, 0xbc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xf8, 0x0, 0x0, 0x0, 0x0, 0x6a, 0xaa, 0xfa,
+    0xaa, 0xa8, 0x0, 0x0, 0xbf, 0xff, 0xff, 0xff,
+    0xfd, 0x0, 0x0, 0xb8, 0x0, 0x0, 0x0, 0x3d,
+    0x0, 0x0, 0xb9, 0x55, 0x55, 0x55, 0x7d, 0x0,
+    0x0, 0xbf, 0xff, 0xff, 0xff, 0xfd, 0x0, 0x0,
+    0xb8, 0x0, 0x0, 0x0, 0x3d, 0x0, 0x0, 0xb9,
+    0x55, 0x55, 0x55, 0x7d, 0x0, 0x0, 0xbf, 0xff,
+    0xff, 0xff, 0xfd, 0x0, 0x0, 0xb8, 0x0, 0x0,
+    0x0, 0x3d, 0x0, 0x0, 0xb8, 0x0, 0x0, 0x0,
+    0x3d, 0x0, 0x0, 0xbf, 0xff, 0xff, 0xff, 0xfd,
+    0x0, 0x0, 0x6a, 0xfa, 0xaa, 0xaa, 0xa8, 0x0,
+    0x0, 0x3, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x1f, 0xff, 0xff, 0xff, 0xfd, 0x0, 0x0, 0xbf,
+    0xea, 0xaa, 0xab, 0xfc, 0x0, 0x7, 0xfb, 0xe0,
+    0x0, 0xb, 0xf0, 0x0, 0x3f, 0x80, 0xfe, 0x40,
+    0xbf, 0x80, 0x0, 0x3d, 0x0, 0x1f, 0xff, 0xf8,
+    0x0, 0x0, 0x0, 0x0, 0x1b, 0xff, 0xf5, 0x0,
+    0x0, 0x0, 0x5b, 0xff, 0xd6, 0xff, 0xf9, 0x40,
+    0x3f, 0xff, 0xe4, 0x0, 0x16, 0xff, 0xfc, 0x3e,
+    0x90, 0x0, 0x0, 0x0, 0x5, 0xa8, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0,
+
+    /* U+5914 "夔" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x3, 0x80, 0x0, 0x3c, 0x0, 0x0, 0x0, 0xf,
+    0x40, 0x3, 0xe0, 0x0, 0x0, 0x0, 0x1e, 0x0,
+    0x2f, 0x0, 0x0, 0x3f, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xf4, 0xaa, 0xaa, 0xaa, 0xfa, 0xaa, 0xaa,
+    0x80, 0x0, 0x90, 0x7, 0x80, 0x0, 0x0, 0x0,
+    0x3, 0x43, 0xff, 0xf8, 0xff, 0xf0, 0xb, 0xd,
+    0xf, 0x55, 0xe3, 0xeb, 0xc0, 0x2c, 0x3e, 0x78,
+    0x3, 0x8f, 0x7, 0x0, 0xb0, 0xfd, 0xff, 0xfe,
+    0x3c, 0x2c, 0x2, 0xc3, 0x43, 0xd5, 0x78, 0xff,
+    0xf0, 0xb, 0xd, 0xf, 0x55, 0xe3, 0xd5, 0x40,
+    0x2c, 0x34, 0x3f, 0xff, 0x8f, 0x0, 0xe0, 0xb6,
+    0xfe, 0xe0, 0xe, 0x3d, 0x7, 0x9f, 0xff, 0xe7,
+    0xd5, 0x78, 0x7f, 0xfc, 0x79, 0x40, 0xf, 0xff,
+    0xd0, 0x15, 0x0, 0x0, 0x2d, 0x9, 0x0, 0xf,
+    0x80, 0x0, 0xb, 0xe0, 0xf8, 0x0, 0xb, 0xe0,
+    0x6, 0xfd, 0x1f, 0xff, 0xff, 0xe3, 0xf8, 0x3e,
+    0x42, 0xfa, 0xaa, 0xaf, 0x81, 0xf4, 0x0, 0x7f,
+    0xf0, 0x1, 0xf8, 0x0, 0x40, 0x1f, 0xd2, 0xf8,
+    0x7f, 0x40, 0x0, 0x1, 0xf8, 0x1, 0xff, 0xe0,
+    0x0, 0x0, 0x2, 0x0, 0x1b, 0xff, 0xe4, 0x0,
+    0x0, 0x0, 0x6f, 0xfe, 0x1b, 0xff, 0xa4, 0x1,
+    0xff, 0xfe, 0x40, 0x1, 0xbf, 0xff, 0x87, 0xf9,
+    0x0, 0x0, 0x0, 0x5, 0xbd, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+5915 "夕" */
     0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x3, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xf4,
@@ -28761,6 +30667,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x40, 0x1e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+5924 "夤" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x1f, 0x40, 0x0, 0x0, 0x0, 0x0, 0xb,
+    0xfe, 0xaa, 0xaa, 0x90, 0x0, 0x6, 0xff, 0xff,
+    0xff, 0xff, 0xc0, 0x6, 0xff, 0xc0, 0x0, 0x6,
+    0xfe, 0x0, 0x2f, 0x9b, 0xe0, 0x6, 0xff, 0x80,
+    0x0, 0x0, 0x3, 0xeb, 0xff, 0x90, 0x0, 0x0,
+    0x56, 0xff, 0xfe, 0x80, 0x0, 0x0, 0x2f, 0xff,
+    0xe9, 0x1e, 0x0, 0x0, 0x0, 0x69, 0x40, 0x0,
+    0x7c, 0x0, 0x0, 0x0, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xfc, 0x3, 0xea, 0xaa, 0xaa, 0xaa, 0xaa,
+    0xf0, 0xf, 0x0, 0x0, 0x0, 0x0, 0x3, 0xc0,
+    0x3c, 0xff, 0xff, 0xff, 0xff, 0xdf, 0x0, 0x51,
+    0x55, 0x5b, 0xd5, 0x55, 0x18, 0x0, 0x0, 0x0,
+    0x1f, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, 0xff,
+    0xff, 0xfd, 0x0, 0x3, 0xea, 0xaa, 0xfa, 0xaa,
+    0xf4, 0x0, 0xf, 0x0, 0x7, 0xc0, 0x2, 0xd0,
+    0x0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0x40, 0x0,
+    0xf5, 0x55, 0xbd, 0x55, 0x7d, 0x0, 0x3, 0xc0,
+    0x1, 0xf0, 0x0, 0xb4, 0x0, 0xf, 0xff, 0xff,
+    0xff, 0xff, 0xd0, 0x0, 0x2a, 0xaa, 0xaa, 0xaa,
+    0xaa, 0x0, 0x0, 0x0, 0x6c, 0x0, 0x7e, 0x40,
+    0x0, 0x1, 0x6f, 0xf0, 0x1, 0xbf, 0xe4, 0x2,
+    0xff, 0xf4, 0x0, 0x0, 0x7, 0xff, 0xb, 0xe4,
+    0x0, 0x0, 0x0, 0x0, 0x7c, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+5925 "夥" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0xf0, 0x0, 0x2, 0xaa,
@@ -28894,33 +30827,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0x0, 0x70, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
-    /* U+592C "夬" */
-    0x0, 0x0, 0x0, 0x64, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0xb8, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0xb8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0xb8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb8,
-    0x0, 0x0, 0x0, 0x0, 0xff, 0xff, 0xff, 0xff,
-    0xfc, 0x0, 0x0, 0xff, 0xff, 0xff, 0xff, 0xfc,
-    0x0, 0x0, 0x0, 0x0, 0xb8, 0x0, 0x3c, 0x0,
-    0x0, 0x0, 0x0, 0xb8, 0x0, 0x3c, 0x0, 0x0,
-    0x0, 0x0, 0xb8, 0x0, 0x3c, 0x0, 0x0, 0x0,
-    0x0, 0xb8, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x0,
-    0xb8, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x0, 0xb8,
-    0x0, 0x3c, 0x0, 0x0, 0x0, 0x0, 0xb8, 0x0,
-    0x3c, 0x0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff,
-    0xf8, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8,
-    0x0, 0x0, 0x1, 0xfd, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x2, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x7, 0xdf, 0x40, 0x0, 0x0, 0x0, 0x0, 0xf,
-    0x87, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x3f, 0x2,
-    0xf4, 0x0, 0x0, 0x0, 0x1, 0xfc, 0x0, 0xbe,
-    0x0, 0x0, 0x0, 0x1f, 0xf0, 0x0, 0x2f, 0xd0,
-    0x0, 0x1, 0xff, 0x80, 0x0, 0x7, 0xfd, 0x0,
-    0x2f, 0xfc, 0x0, 0x0, 0x0, 0xbf, 0xe4, 0xbf,
-    0xd0, 0x0, 0x0, 0x0, 0xb, 0xfc, 0x38, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x74, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0,
-
     /* U+592D "夭" */
     0x0, 0x0, 0x0, 0x0, 0x1, 0x6a, 0x0, 0x0,
     0x0, 0x56, 0xbf, 0xff, 0xfc, 0x0, 0x7f, 0xff,
@@ -29190,6 +31096,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x1, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+5941 "奁" */
+    0x0, 0x0, 0x0, 0x19, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xf, 0x80, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x7, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x3, 0xe0, 0x0, 0x0, 0x0, 0xb, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xfc, 0x2, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0x0, 0x0, 0x2, 0xf4, 0x3,
+    0xf0, 0x0, 0x0, 0x0, 0x2, 0xf4, 0x0, 0x3f,
+    0x0, 0x0, 0x0, 0x3, 0xf4, 0x0, 0x3, 0xf4,
+    0x0, 0x0, 0x7, 0xf4, 0x0, 0x0, 0x2f, 0x80,
+    0x0, 0xf, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x40,
+    0x6f, 0xff, 0xff, 0xff, 0xff, 0xdb, 0xfd, 0x3f,
+    0xbd, 0x0, 0x0, 0x0, 0x10, 0x2f, 0x6, 0xf,
+    0x43, 0x40, 0x0, 0xe, 0x0, 0x0, 0x3, 0xd1,
+    0xfc, 0x0, 0x1f, 0xc0, 0x0, 0x0, 0xf4, 0x1f,
+    0xe0, 0x1f, 0x80, 0x0, 0x0, 0x3d, 0x0, 0xbf,
+    0x6f, 0x80, 0x0, 0x0, 0xf, 0x40, 0x7, 0xff,
+    0x40, 0x0, 0x0, 0x3, 0xd0, 0x0, 0xbf, 0xc0,
+    0x0, 0x0, 0x0, 0xf4, 0x0, 0xff, 0xfd, 0x0,
+    0x0, 0x0, 0x3d, 0x2, 0xfd, 0xb, 0xf0, 0x0,
+    0x0, 0xf, 0x4b, 0xf8, 0x0, 0x7f, 0x40, 0x0,
+    0x3, 0xdf, 0xf4, 0x0, 0x3, 0xf4, 0x0, 0x0,
+    0xf5, 0xd0, 0x0, 0x0, 0x2c, 0x0, 0x0, 0x3d,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0x0, 0x3, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xc0,
+
     /* U+5942 "奂" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x34, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -29358,6 +31291,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0xf0, 0x0, 0x0, 0xb8, 0x0, 0x0,
     0x0, 0x3c, 0x0,
 
+    /* U+594E "奎" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xf, 0x80, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x7, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x3, 0xf0, 0x0, 0x0, 0x0, 0xb, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xfc, 0x2, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0xfc, 0x7,
+    0xe0, 0x0, 0x0, 0x0, 0x0, 0xfc, 0x14, 0x7e,
+    0x0, 0x0, 0x0, 0x2, 0xfc, 0x2f, 0x7, 0xf4,
+    0x0, 0x0, 0x7, 0xf8, 0xb, 0xc0, 0x7f, 0x80,
+    0x0, 0x1f, 0xf4, 0x2, 0xf0, 0x2, 0xff, 0x40,
+    0xbf, 0xff, 0xff, 0xff, 0xff, 0xeb, 0xfd, 0x2f,
+    0x47, 0xff, 0xff, 0xff, 0xf4, 0x2f, 0x1, 0x0,
+    0x0, 0xb, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x2, 0xf0, 0x0, 0x0, 0x0, 0x6, 0xaa, 0xaa,
+    0xfe, 0xaa, 0xaa, 0x80, 0x2, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xa0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0xbc, 0x0, 0x0,
+    0x0, 0x0, 0x7f, 0xff, 0xff, 0xff, 0xff, 0x80,
+    0x0, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x0,
+    0x0, 0x0, 0x2, 0xf0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xbc, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x2f, 0x0, 0x0, 0x0, 0x3, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0x0, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xc0,
+
     /* U+594F "奏" */
     0x0, 0x0, 0x0, 0x14, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0xb, 0x40, 0x0, 0x0, 0x0, 0x0,
@@ -29581,6 +31541,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0x6, 0xb8, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+5960 "奠" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xc0, 0x0, 0x9, 0x0, 0x0, 0x0, 0x2,
+    0xf0, 0x0, 0x2f, 0x0, 0x0, 0x0, 0x0, 0xf8,
+    0x0, 0x7d, 0x0, 0x0, 0x1a, 0xaa, 0xfa, 0xaa,
+    0xfe, 0xaa, 0xa0, 0x2f, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xf0, 0x0, 0x0, 0xf, 0x3, 0xd0, 0x0,
+    0x0, 0x0, 0x0, 0xf, 0x2, 0xd0, 0x0, 0x0,
+    0x2, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x2,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x2, 0xe0,
+    0x1e, 0x2, 0xd0, 0xf, 0x0, 0x2, 0xe0, 0x7d,
+    0x2, 0xfa, 0xaf, 0x0, 0x2, 0xeb, 0xf4, 0x0,
+    0xff, 0xff, 0x0, 0x2, 0xe3, 0x80, 0x0, 0x0,
+    0xf, 0x0, 0x2, 0xf5, 0x55, 0x55, 0x55, 0x6f,
+    0x0, 0x2, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0,
+    0x2, 0xe0, 0x0, 0x0, 0x0, 0xf, 0x0, 0x2,
+    0xfa, 0xaa, 0xaa, 0xaa, 0xaf, 0x0, 0x2, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0,
+    0xbc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7c,
+    0x0, 0x0, 0x0, 0x2f, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xf4, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xf4, 0x0, 0x0, 0x1, 0xff, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xb, 0xef, 0xd0, 0x0, 0x0, 0x0,
+    0x1, 0xbf, 0x42, 0xfe, 0x40, 0x0, 0x1, 0xbf,
+    0xf4, 0x0, 0x2f, 0xfe, 0x50, 0xbf, 0xfe, 0x40,
+    0x0, 0x1, 0xbf, 0xfc, 0x3a, 0x40, 0x0, 0x0,
+    0x0, 0x1, 0xa4,
+
     /* U+5962 "奢" */
     0x0, 0x0, 0x0, 0x18, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0xf, 0x40, 0x0, 0x0, 0x0, 0x0,
@@ -29609,89 +31597,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xaa, 0xab, 0xe0, 0x0, 0x0, 0x1f, 0x0, 0x0,
     0x0, 0xb8, 0x0,
 
-    /* U+5967 "奧" */
-    0x0, 0x0, 0x1, 0x90, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x2, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x3, 0xd0, 0x0, 0x0, 0x0, 0x2, 0xff, 0xff,
-    0xff, 0xff, 0xff, 0x0, 0x2, 0xff, 0xff, 0xff,
-    0xff, 0xff, 0x0, 0x2, 0xc0, 0x0, 0x0, 0x5,
-    0xf, 0x0, 0x2, 0xc2, 0xab, 0xff, 0xff, 0xf,
-    0x0, 0x2, 0xc3, 0xff, 0xfe, 0xa9, 0xf, 0x0,
-    0x2, 0xc0, 0x90, 0x78, 0x1e, 0xf, 0x0, 0x2,
-    0xc0, 0xf8, 0x78, 0x7d, 0xf, 0x0, 0x2, 0xc0,
-    0x3c, 0x78, 0xf0, 0xf, 0x0, 0x2, 0xc6, 0xbe,
-    0xfe, 0xfa, 0x8f, 0x0, 0x2, 0xcb, 0xff, 0xff,
-    0xff, 0xcf, 0x0, 0x2, 0xc0, 0x3, 0xf9, 0x80,
-    0xf, 0x0, 0x2, 0xc0, 0x2f, 0xbb, 0xf4, 0xf,
-    0x0, 0x2, 0xc2, 0xfc, 0x78, 0x7f, 0x4f, 0x0,
-    0x2, 0xcf, 0xd0, 0x24, 0xb, 0xcf, 0x0, 0x2,
-    0xc1, 0x0, 0x10, 0x1, 0x4f, 0x0, 0x0, 0x0,
-    0x0, 0x7c, 0x0, 0x0, 0x0, 0x2a, 0xaa, 0xaa,
-    0xfe, 0xaa, 0xaa, 0xa0, 0x3f, 0xff, 0xff, 0xff,
-    0xff, 0xff, 0xf0, 0x0, 0x0, 0x2, 0xfe, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x7, 0xef, 0x80, 0x0,
-    0x0, 0x0, 0x0, 0x7f, 0x83, 0xf4, 0x0, 0x0,
-    0x0, 0x1b, 0xfc, 0x0, 0xbf, 0x90, 0x0, 0x6b,
-    0xff, 0x90, 0x0, 0xb, 0xff, 0xa4, 0x7f, 0xf4,
-    0x0, 0x0, 0x0, 0x6f, 0xfc, 0x29, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x64,
-
-    /* U+596D "奭" */
-    0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x78, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x78, 0x0, 0x0, 0x0, 0x2a, 0xaa, 0xaa,
-    0xfe, 0xaa, 0xaa, 0xa0, 0x2f, 0xff, 0xff, 0xff,
-    0xff, 0xff, 0xf0, 0x0, 0x0, 0x0, 0x78, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x78, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x78, 0x0, 0x0, 0x0,
-    0x2f, 0xff, 0xfc, 0x78, 0xbf, 0xff, 0xf0, 0x1a,
-    0xbe, 0xa8, 0x78, 0x6a, 0xfa, 0xa0, 0x0, 0x38,
-    0x0, 0x78, 0x0, 0xe0, 0x0, 0x6, 0xbe, 0xa0,
-    0x78, 0x1a, 0xfa, 0x80, 0xf, 0xff, 0xf0, 0x78,
-    0x3f, 0xff, 0xc0, 0xf, 0x0, 0xb0, 0x78, 0x3c,
-    0x2, 0xc0, 0xf, 0x0, 0xb0, 0x78, 0x3c, 0x1,
-    0xc0, 0xf, 0xaa, 0xf0, 0x78, 0x3e, 0xab, 0xc0,
-    0xf, 0xff, 0xf0, 0x78, 0x3f, 0xff, 0xc0, 0xf,
-    0x0, 0xb0, 0xbc, 0x3c, 0x1, 0xc0, 0xf, 0x0,
-    0xb0, 0xfd, 0x3c, 0x1, 0xc0, 0xf, 0xaa, 0xf1,
-    0xfe, 0x3e, 0xab, 0xc0, 0xf, 0xff, 0xf7, 0xef,
-    0x7f, 0xff, 0xc0, 0x0, 0x0, 0xf, 0xc7, 0xd0,
-    0x0, 0x0, 0x0, 0x0, 0x7f, 0x2, 0xf8, 0x0,
-    0x0, 0x0, 0x3, 0xfc, 0x0, 0xbf, 0x40, 0x0,
-    0x0, 0x6f, 0xe0, 0x0, 0x1f, 0xf4, 0x0, 0x1b,
-    0xfe, 0x0, 0x0, 0x1, 0xff, 0x90, 0xbf, 0xe0,
-    0x0, 0x0, 0x0, 0x1f, 0xfc, 0x39, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0xb4, 0x0, 0x0, 0x0, 0x0,
+    /* U+5965 "奥" */
+    0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x2, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x3, 0xe0, 0x0, 0x0, 0x0, 0x1, 0xaa, 0xab,
+    0xfa, 0xaa, 0xaa, 0x0, 0x2, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0x0, 0x2, 0xe0, 0x0, 0x0, 0x0,
+    0xf, 0x0, 0x2, 0xd0, 0x80, 0x38, 0xa, 0xf,
+    0x0, 0x2, 0xd1, 0xf0, 0x3c, 0x2f, 0xf, 0x0,
+    0x2, 0xd0, 0x7c, 0x3c, 0xbc, 0xf, 0x0, 0x2,
+    0xd0, 0x1d, 0x3c, 0xf0, 0xf, 0x0, 0x2, 0xd1,
+    0x55, 0xbd, 0x55, 0x4f, 0x0, 0x2, 0xd7, 0xff,
+    0xff, 0xff, 0xcf, 0x0, 0x2, 0xd1, 0x56, 0xfd,
+    0x55, 0xf, 0x0, 0x2, 0xd0, 0x7, 0xfd, 0xc0,
+    0xf, 0x0, 0x2, 0xd0, 0x2f, 0x7d, 0xf8, 0xf,
+    0x0, 0x2, 0xd2, 0xfc, 0x3c, 0x2f, 0xf, 0x0,
+    0x2, 0xdf, 0xd0, 0x38, 0x7, 0xcf, 0x0, 0x2,
+    0xd6, 0x0, 0x14, 0x1, 0x4f, 0x0, 0x0, 0x0,
+    0x0, 0x7c, 0x0, 0x0, 0x0, 0x3f, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xf8, 0x3f, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xf8, 0x0, 0x0, 0x0, 0xfe, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x3, 0xff, 0x80, 0x0,
+    0x0, 0x0, 0x0, 0x2f, 0xc3, 0xf4, 0x0, 0x0,
+    0x0, 0x7, 0xfe, 0x0, 0xbf, 0x90, 0x0, 0x6,
+    0xff, 0xe0, 0x0, 0x1f, 0xfe, 0x50, 0xbf, 0xf9,
+    0x0, 0x0, 0x1, 0xbf, 0xfc, 0x3a, 0x40, 0x0,
+    0x0, 0x0, 0x1, 0xb8, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+596E "奮" */
-    0x0, 0x0, 0x0, 0x14, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0xf, 0x40, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0xb, 0xc0, 0x0, 0x0, 0x0, 0x1a, 0xaa,
-    0xab, 0xfa, 0xaa, 0xaa, 0xa0, 0xb, 0xff, 0xff,
-    0xff, 0xff, 0xff, 0xfc, 0x0, 0x0, 0xf, 0xd0,
-    0xb, 0xd0, 0x0, 0x0, 0x0, 0x1f, 0xc0, 0xf0,
-    0x7e, 0x0, 0x0, 0x0, 0x7f, 0xd0, 0x3c, 0x3,
-    0xf8, 0x0, 0x6, 0xff, 0xf5, 0x5b, 0x95, 0x6f,
-    0xf4, 0xf, 0xf9, 0xff, 0xff, 0xff, 0xff, 0xff,
-    0xd2, 0xe0, 0xbc, 0x0, 0x3c, 0x0, 0x0, 0xb0,
-    0x0, 0xbf, 0x55, 0x5f, 0x55, 0x54, 0x0, 0x0,
-    0xbf, 0xff, 0xff, 0xff, 0xff, 0x40, 0x0, 0xbe,
-    0xe0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0xfc, 0x7f,
-    0xff, 0xff, 0xff, 0xf4, 0x0, 0x1c, 0x1f, 0x55,
-    0x5f, 0x55, 0x54, 0x0, 0x0, 0x7, 0xd5, 0x5b,
-    0xd5, 0x55, 0x50, 0x0, 0x1, 0xff, 0xff, 0xff,
-    0xff, 0xfc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0xff, 0xff, 0xff, 0xff, 0xfd,
-    0x0, 0x0, 0x3e, 0xaa, 0xaf, 0xaa, 0xaf, 0x80,
-    0x0, 0xf, 0x0, 0x3, 0xc0, 0x1, 0xe0, 0x0,
-    0x3, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x0, 0x0,
-    0xfa, 0xaa, 0xbe, 0xaa, 0xae, 0x0, 0x0, 0x3c,
-    0x0, 0xf, 0x0, 0x7, 0x80, 0x0, 0xf, 0xff,
-    0xff, 0xff, 0xff, 0xe0, 0x0, 0x3, 0xea, 0xaa,
-    0xaa, 0xaa, 0xf8, 0x0, 0x0, 0xf0, 0x0, 0x0,
-    0x0, 0x1e, 0x0,
-
     /* U+5973 "女" */
     0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0xb, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -30955,32 +32888,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x3d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+59DE "姞" */
-    0x0, 0x40, 0x0, 0x0, 0x4, 0x0, 0x0, 0x3,
-    0xc0, 0x0, 0x0, 0x78, 0x0, 0x0, 0xf, 0x0,
-    0x0, 0x1, 0xe0, 0x0, 0x0, 0x3c, 0x0, 0x0,
-    0x7, 0x80, 0x0, 0x1, 0xe0, 0x0, 0x0, 0x1e,
-    0x0, 0x0, 0x7, 0x80, 0xf, 0xff, 0xff, 0xff,
-    0xf1, 0x6e, 0x55, 0x3f, 0xff, 0xff, 0xff, 0xdf,
-    0xff, 0xfc, 0x55, 0x5b, 0xd5, 0x55, 0x7f, 0xff,
-    0xf0, 0x0, 0x1e, 0x0, 0x0, 0xf, 0x3, 0xc0,
-    0x0, 0x78, 0x0, 0x0, 0x3c, 0xf, 0x0, 0x1,
-    0xe0, 0x0, 0x0, 0xf0, 0x3c, 0x7f, 0xff, 0xff,
-    0xf8, 0x7, 0x80, 0xe1, 0xff, 0xff, 0xff, 0xf0,
-    0x2d, 0x7, 0x81, 0x55, 0x55, 0x55, 0x0, 0xb4,
-    0x2d, 0x0, 0x0, 0x0, 0x0, 0x3, 0xc0, 0xf0,
-    0x0, 0x0, 0x0, 0x0, 0xf, 0x3, 0xc0, 0x0,
-    0x0, 0x0, 0x0, 0x7f, 0x1e, 0x3, 0xff, 0xff,
-    0xff, 0x0, 0x7f, 0xf4, 0xf, 0xff, 0xff, 0xfc,
-    0x0, 0x3f, 0xc0, 0x3c, 0x0, 0x0, 0xf0, 0x0,
-    0x3f, 0x40, 0xf0, 0x0, 0x3, 0xc0, 0x1, 0xff,
-    0x3, 0xc0, 0x0, 0xf, 0x0, 0x1f, 0x7f, 0xf,
-    0x0, 0x0, 0x3c, 0x0, 0xf8, 0x3e, 0x3c, 0x0,
-    0x0, 0xf0, 0xf, 0xc0, 0x30, 0xff, 0xff, 0xff,
-    0xc0, 0xfc, 0x0, 0x3, 0xff, 0xff, 0xff, 0xb,
-    0xc0, 0x0, 0xf, 0x0, 0x0, 0x3c, 0x8, 0x0,
-    0x0, 0x3c, 0x0, 0x0, 0xf0,
-
     /* U+59E3 "姣" */
     0x0, 0x38, 0x0, 0x0, 0x19, 0x0, 0x0, 0x0,
     0x1f, 0x0, 0x0, 0xb, 0x80, 0x0, 0x0, 0x7,
@@ -31906,33 +33813,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x2e, 0x40, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+5A53 "婓" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x3c, 0xb, 0x40, 0x0, 0x0, 0x0, 0x0,
-    0xf0, 0x2d, 0x0, 0x0, 0x2, 0xaa, 0xab, 0xc0,
-    0xbe, 0xaa, 0xa4, 0xf, 0xff, 0xff, 0x2, 0xff,
-    0xff, 0xe0, 0x0, 0x0, 0x3c, 0xb, 0x40, 0x0,
-    0x0, 0x0, 0x0, 0xf0, 0x2d, 0x0, 0x0, 0x2,
-    0xaa, 0xab, 0xc0, 0xbe, 0xaa, 0xa0, 0xf, 0xff,
-    0xff, 0x2, 0xff, 0xff, 0xd0, 0x0, 0x0, 0x3c,
-    0xb, 0x80, 0x0, 0x0, 0x0, 0x0, 0xf0, 0x2d,
-    0x0, 0x0, 0x6, 0xaa, 0xab, 0xc0, 0xbe, 0xaa,
-    0xa8, 0x2f, 0xff, 0xff, 0x2, 0xff, 0xff, 0xf0,
-    0x0, 0x0, 0x3c, 0xb, 0x80, 0x0, 0x0, 0x0,
-    0x0, 0xa0, 0x19, 0x0, 0x0, 0x0, 0x0, 0x3,
-    0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2f, 0x0,
-    0x0, 0x0, 0x0, 0xff, 0xff, 0xff, 0xff, 0xff,
-    0xff, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
-    0xc0, 0x0, 0xbc, 0x0, 0x1, 0xf0, 0x0, 0x0,
-    0xb, 0xc0, 0x0, 0xf, 0x40, 0x0, 0x0, 0x7f,
-    0x90, 0x0, 0xf8, 0x0, 0x0, 0x0, 0x6f, 0xfe,
-    0x6f, 0x80, 0x0, 0x0, 0x0, 0x1, 0xff, 0xfc,
-    0x0, 0x0, 0x0, 0x0, 0x1b, 0xff, 0xff, 0x40,
-    0x0, 0x5, 0xaf, 0xff, 0x41, 0xbf, 0xf4, 0x2,
-    0xff, 0xfe, 0x40, 0x0, 0x1b, 0xfd, 0x7, 0xe5,
-    0x0, 0x0, 0x0, 0x1, 0xb0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0,
-
     /* U+5A55 "婕" */
     0x0, 0x0, 0x0, 0x0, 0x14, 0x0, 0x0, 0x0,
     0xb0, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0xf0,
@@ -32073,34 +33953,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x2, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+5A73 "婳" */
-    0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x2c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf,
-    0x0, 0xbf, 0xff, 0xff, 0xff, 0xf0, 0x3, 0xc0,
-    0x2f, 0xff, 0xff, 0xff, 0xfc, 0x0, 0xf0, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x6, 0xbe, 0xa8, 0x0,
-    0x0, 0x0, 0x0, 0x1, 0xff, 0xff, 0x0, 0x3f,
-    0xff, 0xc0, 0x0, 0x17, 0x97, 0xc0, 0xf, 0xff,
-    0xf0, 0x0, 0x1, 0xe0, 0xf0, 0x3, 0x8b, 0x2c,
-    0x0, 0x0, 0xb4, 0x3c, 0xf0, 0xe2, 0xcb, 0xf,
-    0x0, 0x2c, 0xf, 0x3c, 0x38, 0xb2, 0xc3, 0xc0,
-    0xf, 0x3, 0xcf, 0xe, 0x2c, 0xb0, 0xf0, 0x3,
-    0xc1, 0xe3, 0xc3, 0xff, 0xfc, 0x3c, 0x0, 0xf0,
-    0xb8, 0xf0, 0xff, 0xff, 0xf, 0x0, 0x78, 0x3d,
-    0x3c, 0x38, 0xb2, 0xc3, 0xc0, 0x2d, 0xf, 0xf,
-    0xe, 0x2c, 0xb0, 0xf0, 0xb, 0x87, 0xc3, 0xc3,
-    0x8b, 0x2c, 0x3c, 0x0, 0xfa, 0xe0, 0xf0, 0xe2,
-    0xcb, 0xf, 0x0, 0xf, 0xf0, 0x3c, 0x3f, 0xff,
-    0xc3, 0xc0, 0x0, 0xfc, 0xf, 0xf, 0xff, 0xf0,
-    0xf0, 0x0, 0x3f, 0x83, 0xc0, 0x0, 0x0, 0x3c,
-    0x0, 0x2f, 0xf4, 0xf0, 0x0, 0x0, 0xf, 0x0,
-    0x1f, 0x2f, 0x3c, 0x0, 0x0, 0x3, 0xc0, 0xf,
-    0x82, 0xef, 0xff, 0xff, 0xff, 0xf0, 0xf, 0xc0,
-    0x23, 0xff, 0xff, 0xff, 0xfc, 0xf, 0xc0, 0x0,
-    0x0, 0x0, 0x0, 0xf, 0x2, 0xd0, 0x0, 0x0,
-    0x0, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0,
-
     /* U+5A74 "婴" */
     0x3, 0xff, 0xff, 0x87, 0xff, 0xff, 0x80, 0xf,
     0xff, 0xff, 0x1f, 0xff, 0xfe, 0x0, 0x3c, 0x0,
@@ -32541,6 +34393,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x3f, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+5AC2 "嫂" */
+    0x0, 0xb0, 0x0, 0x0, 0x1d, 0x0, 0x0, 0x0,
+    0xb0, 0x0, 0x1, 0x5e, 0x0, 0x0, 0x0, 0xf0,
+    0x0, 0x6f, 0xde, 0x6a, 0xa0, 0x0, 0xf0, 0x1,
+    0xfe, 0x1e, 0xbf, 0xf0, 0x0, 0xf0, 0x1, 0xe0,
+    0x1e, 0x0, 0xf0, 0x1a, 0xfa, 0xa1, 0xd0, 0x1e,
+    0x0, 0xf0, 0x2f, 0xff, 0xf1, 0xd0, 0x1e, 0x0,
+    0xf0, 0x1a, 0xfa, 0xf1, 0xff, 0xde, 0xbf, 0xf0,
+    0x1, 0xe0, 0xf1, 0xff, 0x9e, 0x7f, 0xf0, 0x1,
+    0xd0, 0xf1, 0xd0, 0x1e, 0x0, 0xf0, 0x2, 0xd0,
+    0xf1, 0xd0, 0x1e, 0x0, 0xf0, 0x2, 0xc0, 0xf1,
+    0xd0, 0x1e, 0x0, 0xf0, 0x3, 0xc0, 0xe1, 0xff,
+    0xff, 0xff, 0xf0, 0x3, 0xc1, 0xe1, 0xaa, 0xbf,
+    0xaa, 0xa0, 0x3, 0xc2, 0xd0, 0x0, 0x1e, 0x0,
+    0x0, 0x7, 0x83, 0xc0, 0x0, 0x1e, 0x0, 0x0,
+    0xb, 0x83, 0xc2, 0xff, 0xff, 0xff, 0xc0, 0x3,
+    0xfb, 0x81, 0xff, 0xff, 0xff, 0xc0, 0x0, 0xff,
+    0x0, 0x3c, 0x0, 0xf, 0x40, 0x0, 0x3f, 0x0,
+    0x2f, 0x0, 0x3e, 0x0, 0x0, 0x3f, 0xc0, 0xf,
+    0xc0, 0xfc, 0x0, 0x0, 0xbf, 0xf0, 0x2, 0xf7,
+    0xf0, 0x0, 0x1, 0xf0, 0xfc, 0x0, 0xbf, 0xc0,
+    0x0, 0x3, 0xe0, 0x34, 0x6, 0xff, 0xe4, 0x0,
+    0xf, 0x80, 0x1, 0xbf, 0xe2, 0xff, 0xa4, 0x3f,
+    0x0, 0x1f, 0xfd, 0x0, 0x1f, 0xff, 0x1c, 0x0,
+    0xf, 0x40, 0x0, 0x0, 0x6d, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+5AC9 "嫉" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x24, 0x0, 0x0, 0x1, 0xe0, 0x0, 0x0, 0x1e,
@@ -32708,34 +34587,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x3f, 0xe0, 0x0, 0xe0, 0x10, 0x0, 0x0, 0x6,
     0x50, 0x0, 0x0,
 
-    /* U+5ADA "嫚" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0xb4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb4,
-    0x0, 0xff, 0xff, 0xff, 0xc0, 0x0, 0xb0, 0x0,
-    0xfa, 0xaa, 0xab, 0xc0, 0x0, 0xb0, 0x0, 0xf0,
-    0x0, 0x3, 0xc0, 0x0, 0xf0, 0x0, 0xfa, 0xaa,
-    0xab, 0xc0, 0x15, 0xf5, 0x50, 0xff, 0xff, 0xff,
-    0xc0, 0x2f, 0xff, 0xf0, 0xf0, 0x0, 0x3, 0xc0,
-    0x1a, 0xfa, 0xf0, 0xfa, 0xaa, 0xab, 0xc0, 0x1,
-    0xe0, 0xf0, 0xff, 0xff, 0xff, 0xc0, 0x1, 0xd0,
-    0xf0, 0x0, 0x0, 0x0, 0x0, 0x2, 0xd0, 0xf1,
-    0x55, 0x55, 0x55, 0x50, 0x2, 0xc0, 0xf3, 0xff,
-    0xff, 0xff, 0xf4, 0x3, 0xc1, 0xe3, 0x82, 0xc0,
-    0xf0, 0x74, 0x3, 0xc1, 0xd3, 0x42, 0xc0, 0xf0,
-    0x74, 0x3, 0x82, 0xd3, 0xeb, 0xea, 0xfa, 0xb4,
-    0x7, 0x43, 0xc3, 0xff, 0xff, 0xff, 0xf4, 0x7,
-    0xc7, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xfb,
-    0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x2,
-    0xff, 0xff, 0xff, 0xc0, 0x0, 0x3f, 0x2, 0xbe,
-    0xaa, 0xaf, 0xc0, 0x0, 0x3f, 0x80, 0x3c, 0x0,
-    0x1f, 0x40, 0x0, 0xbf, 0xe0, 0x2f, 0x0, 0xbd,
-    0x0, 0x1, 0xf0, 0xf4, 0xb, 0xe7, 0xf4, 0x0,
-    0x3, 0xd0, 0x70, 0x1, 0xff, 0xc0, 0x0, 0xf,
-    0x80, 0x0, 0x1b, 0xff, 0xf9, 0x0, 0x3e, 0x0,
-    0xb, 0xff, 0x81, 0xff, 0xfd, 0x18, 0x0, 0xf,
-    0xe4, 0x0, 0x6, 0xfc, 0x0, 0x0, 0x4, 0x0,
-    0x0, 0x0, 0x0,
-
     /* U+5ADC "嫜" */
     0x0, 0x50, 0x0, 0x0, 0x28, 0x0, 0x0, 0x0,
     0xe0, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x1, 0xe0,
@@ -32902,33 +34753,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xd0, 0x0, 0x14, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+5AEA "嫪" */
-    0x0, 0xb0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x2c, 0x1, 0xff, 0xf8, 0xff, 0xf8, 0x0, 0xb,
-    0x0, 0x7f, 0xff, 0x3f, 0xff, 0x0, 0x3, 0xc0,
-    0x1, 0x3, 0xc1, 0x3, 0xc0, 0x0, 0xf0, 0x2,
-    0xd0, 0xf2, 0xd0, 0xf0, 0x0, 0x3c, 0x0, 0x7c,
-    0x3c, 0x3c, 0x3c, 0x2, 0xff, 0xff, 0x7, 0x8f,
-    0x7, 0x8f, 0x0, 0xbf, 0xff, 0xc0, 0x4b, 0xc0,
-    0x5f, 0xc0, 0x0, 0xe0, 0xf0, 0x2f, 0xf1, 0xbf,
-    0xf0, 0x0, 0x74, 0x3d, 0xfe, 0x3c, 0xfd, 0x3c,
-    0x0, 0x2d, 0xf, 0x78, 0x7, 0xf4, 0xf, 0x0,
-    0xb, 0x3, 0x80, 0x3, 0xef, 0x40, 0x0, 0x3,
-    0xc1, 0xe0, 0x7, 0xe0, 0xf8, 0x0, 0x0, 0xf0,
-    0x74, 0xf, 0xd0, 0xb, 0xd0, 0x0, 0x38, 0x2c,
-    0x2f, 0x80, 0x78, 0x7f, 0x40, 0x1d, 0xf, 0x3f,
-    0x41, 0xfc, 0x2, 0xfc, 0xb, 0xc3, 0xc9, 0x7,
-    0xf4, 0x8, 0x9, 0x0, 0xfe, 0xd0, 0x2f, 0xd0,
-    0x1f, 0x40, 0x0, 0xf, 0xf0, 0xe, 0x40, 0x7f,
-    0x40, 0x0, 0x0, 0xfc, 0x0, 0x2, 0xfd, 0x1,
-    0x80, 0x0, 0x3f, 0x80, 0x1f, 0xf8, 0x3, 0xf0,
-    0x0, 0x3e, 0xf8, 0xbf, 0xd0, 0x1b, 0xe0, 0x0,
-    0x2f, 0xf, 0x1e, 0x0, 0x7f, 0xd0, 0x0, 0x1f,
-    0x1, 0x80, 0x6, 0xff, 0x40, 0x0, 0x1f, 0x40,
-    0x0, 0x6f, 0xf8, 0x0, 0x0, 0xf, 0x40, 0x2,
-    0xff, 0x90, 0x0, 0x0, 0x1, 0x80, 0x0, 0x79,
-    0x0, 0x0, 0x0, 0x0,
-
     /* U+5AEB "嫫" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x2c, 0x0, 0x0, 0xf0, 0xf, 0x0, 0x0, 0xb,
@@ -32986,6 +34810,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x3, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+5B09 "嬉" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xe0, 0x0, 0x0, 0x2d, 0x0, 0x0, 0x0, 0xe0,
+    0x0, 0x0, 0x2d, 0x0, 0x0, 0x1, 0xe0, 0xb,
+    0xff, 0xff, 0xff, 0xfc, 0x1, 0xe0, 0xb, 0xff,
+    0xff, 0xff, 0xfc, 0x1, 0xd0, 0x0, 0x0, 0x2d,
+    0x0, 0x0, 0x16, 0xe5, 0x50, 0x0, 0x2d, 0x0,
+    0x0, 0x2f, 0xff, 0xf3, 0xff, 0xff, 0xff, 0xf0,
+    0x1b, 0xea, 0xf3, 0xff, 0xff, 0xff, 0xf0, 0x3,
+    0xc0, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xc1,
+    0xe0, 0xaa, 0xaa, 0xaa, 0x80, 0x3, 0xc1, 0xe1,
+    0xff, 0xff, 0xff, 0xc0, 0x7, 0x82, 0xd1, 0xf0,
+    0x0, 0x3, 0xc0, 0x7, 0x82, 0xd1, 0xf0, 0x0,
+    0x3, 0xc0, 0xb, 0x43, 0xc1, 0xff, 0xff, 0xff,
+    0xc0, 0xf, 0x3, 0xc0, 0xaf, 0xaa, 0xbe, 0x80,
+    0xf, 0x7, 0xc0, 0xf, 0x0, 0x78, 0x0, 0xf,
+    0x4b, 0x80, 0xf, 0x0, 0xb4, 0x0, 0xb, 0xdf,
+    0xf, 0xff, 0xff, 0xff, 0xfe, 0x1, 0xff, 0xf,
+    0xff, 0xff, 0xff, 0xfd, 0x0, 0x7e, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0xbf, 0x41, 0xaa, 0xaa,
+    0xaa, 0x80, 0x1, 0xfb, 0xd2, 0xff, 0xff, 0xff,
+    0xc0, 0x3, 0xe2, 0xf6, 0xe0, 0x0, 0x3, 0xc0,
+    0xf, 0xc0, 0xba, 0xe0, 0x0, 0x3, 0xc0, 0x2f,
+    0x0, 0x22, 0xfa, 0xaa, 0xab, 0xc0, 0xbc, 0x0,
+    0x2, 0xff, 0xff, 0xff, 0xc0, 0x20, 0x0, 0x2,
+    0xe0, 0x0, 0x3, 0xc0,
+
     /* U+5B16 "嬖" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x2d, 0x0, 0x0, 0x2a, 0xaa,
@@ -33041,31 +34892,59 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xff, 0xff, 0xff, 0xf4, 0x20, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+5B30 "嬰" */
-    0x3, 0xff, 0xff, 0x43, 0xff, 0xff, 0x40, 0x3,
-    0xea, 0xaf, 0x47, 0xea, 0xaf, 0x40, 0x3, 0xc0,
-    0xb, 0x47, 0x80, 0xb, 0x40, 0x3, 0xff, 0xff,
-    0x47, 0xff, 0xff, 0x40, 0x3, 0xd5, 0x5b, 0x47,
-    0xd5, 0x5b, 0x40, 0x3, 0xc0, 0xb, 0x47, 0x80,
-    0xb, 0x40, 0x3, 0xd5, 0x5b, 0x47, 0xd5, 0x5b,
-    0x40, 0x3, 0xff, 0xff, 0x47, 0xff, 0xff, 0x40,
-    0x3, 0xc0, 0xb, 0x47, 0x80, 0xb, 0x40, 0x3,
-    0xea, 0xaf, 0x47, 0xea, 0xaf, 0x40, 0x3, 0xff,
-    0xff, 0x43, 0xff, 0xff, 0x40, 0x0, 0x14, 0x20,
-    0x0, 0x14, 0x20, 0x0, 0x0, 0xb8, 0x7d, 0x0,
-    0xbc, 0x7e, 0x0, 0x7, 0xe0, 0xf, 0xc7, 0xe0,
-    0xf, 0xd0, 0x2f, 0x40, 0x5, 0xcf, 0x40, 0x1,
-    0xe0, 0x18, 0x0, 0x2e, 0x0, 0x0, 0x0, 0x0,
-    0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff,
-    0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x3,
-    0xe0, 0x0, 0xb, 0x80, 0x0, 0x0, 0xf, 0xc0,
-    0x0, 0x2f, 0x0, 0x0, 0x0, 0x1f, 0xfe, 0x40,
-    0xfd, 0x0, 0x0, 0x0, 0x0, 0x6f, 0xff, 0xf0,
-    0x0, 0x0, 0x0, 0x0, 0x7, 0xff, 0xf9, 0x0,
-    0x0, 0x0, 0x5b, 0xff, 0xf5, 0xbf, 0xf9, 0x0,
-    0x3f, 0xff, 0xf9, 0x0, 0x2, 0xff, 0xd0, 0x2f,
-    0xa5, 0x0, 0x0, 0x0, 0x6, 0xc0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x0,
+    /* U+5B32 "嬲" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x2, 0xc0, 0x0, 0x0, 0x0, 0xff, 0xff,
+    0xb, 0x0, 0xaa, 0xaa, 0x3, 0xff, 0xfc, 0x2c,
+    0x3, 0xff, 0xfc, 0xe, 0x38, 0xb0, 0xb0, 0xe,
+    0x38, 0xb0, 0x38, 0xe2, 0xc3, 0xc0, 0x38, 0xe2,
+    0xc0, 0xe3, 0x8b, 0x6f, 0xa4, 0xe3, 0x8b, 0x3,
+    0xff, 0xfe, 0xff, 0xe3, 0xff, 0xfc, 0xf, 0xff,
+    0xf6, 0xfb, 0x8f, 0xff, 0xf0, 0x38, 0xe2, 0xc3,
+    0x4e, 0x38, 0xe2, 0xc0, 0xe3, 0x8b, 0x1d, 0x34,
+    0xe3, 0x8b, 0x3, 0x8e, 0x2c, 0x74, 0xd3, 0x8e,
+    0x2c, 0xf, 0xff, 0xf2, 0xc7, 0x4f, 0xff, 0xf0,
+    0x3f, 0xff, 0xcb, 0x1c, 0x3f, 0xff, 0xc0, 0x0,
+    0x0, 0x3c, 0xb0, 0x0, 0x0, 0x0, 0x34, 0x0,
+    0xe2, 0xc0, 0x74, 0x0, 0x1, 0xe0, 0x3, 0x8f,
+    0x1, 0xd0, 0x0, 0xff, 0xff, 0xdf, 0x38, 0xff,
+    0xff, 0xc2, 0xbf, 0xaf, 0x2f, 0xd2, 0xbe, 0xaf,
+    0x0, 0x70, 0x3c, 0x2f, 0x0, 0xb0, 0x3c, 0x2,
+    0xc0, 0xf0, 0x3d, 0x2, 0xc0, 0xf0, 0xf, 0x3,
+    0x81, 0xfc, 0xf, 0x3, 0x80, 0x38, 0xe, 0xf,
+    0x3c, 0x78, 0xe, 0x2, 0xd0, 0x38, 0x74, 0xb3,
+    0xc0, 0x78, 0xf, 0x1, 0xe3, 0xc0, 0x1e, 0x1,
+    0xe0, 0xf4, 0xbf, 0x6c, 0x1, 0xf0, 0xaf, 0x4b,
+    0x83, 0xf8, 0x90, 0x1f, 0x3, 0xfc, 0x8, 0x0,
+    0x0, 0x0, 0xb0, 0x5, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
+    /* U+5B34 "嬴" */
+    0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xb8, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x3c, 0x0, 0x0, 0x0, 0x3f, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xfc, 0x2b, 0xfa, 0xaa, 0xaa,
+    0xaa, 0xaa, 0xa8, 0x1, 0xe0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x1, 0xfa, 0xaa, 0xaa, 0xaa, 0xaa,
+    0x40, 0x1, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0xf9,
+    0x55, 0x55, 0x55, 0x6e, 0x0, 0x0, 0xf0, 0x0,
+    0x0, 0x0, 0x2e, 0x0, 0x0, 0xff, 0xff, 0xff,
+    0xff, 0xfe, 0x0, 0x0, 0x55, 0x55, 0xa5, 0x55,
+    0x54, 0x0, 0x2, 0xaa, 0x40, 0xe0, 0x6, 0xaa,
+    0x0, 0x7, 0xff, 0xc5, 0xe5, 0xf, 0xff, 0x0,
+    0x7, 0x43, 0xdf, 0xff, 0xcf, 0x5b, 0x0, 0x7,
+    0x43, 0xc7, 0xd7, 0xcf, 0xb, 0x0, 0x7, 0xff,
+    0xc3, 0xc3, 0x8f, 0x4b, 0x0, 0x7, 0xeb, 0xc3,
+    0x83, 0x4f, 0xdb, 0x0, 0x7, 0x43, 0xcb, 0xb,
+    0xf, 0xbb, 0x0, 0x7, 0xab, 0xcb, 0xcf, 0xf,
+    0x3f, 0x0, 0xb, 0xff, 0xc1, 0xfd, 0xf, 0x1b,
+    0xd, 0xf, 0x3, 0xc0, 0x7e, 0xe, 0xb, 0xd,
+    0xf, 0x3, 0xc2, 0xfb, 0xed, 0xb, 0xd, 0x2d,
+    0x2b, 0xcf, 0x81, 0x7c, 0xb, 0xac, 0x7c, 0x3f,
+    0xd, 0x0, 0xf4, 0x3, 0xf8, 0x10, 0x0, 0x0,
+    0x0, 0x10, 0x0, 0x0,
 
     /* U+5B37 "嬷" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -33349,6 +35228,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x1, 0xff, 0xc0, 0x0, 0x0, 0x0,
     0x0, 0x1, 0x40, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+5B5B "孛" */
+    0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x1, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x7, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f,
+    0x0, 0x0, 0x0, 0xb, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xc0, 0x1a, 0xaa, 0xab, 0xfa, 0xaa, 0xaa,
+    0x0, 0x0, 0x0, 0x7, 0xc0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x1f, 0x0, 0x0, 0x0, 0xb, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xd0, 0x3f, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0x40, 0xf8, 0x0, 0x0, 0x0,
+    0x0, 0x3d, 0x3, 0xe0, 0x0, 0x0, 0x0, 0x0,
+    0xf4, 0xf, 0x80, 0x0, 0x0, 0x0, 0x3, 0xd0,
+    0x19, 0x7f, 0xff, 0xff, 0xff, 0xca, 0x0, 0x1,
+    0xff, 0xff, 0xff, 0xff, 0x40, 0x0, 0x0, 0x0,
+    0x0, 0xb, 0xf4, 0x0, 0x0, 0x0, 0x0, 0x2,
+    0xfd, 0x0, 0x0, 0x0, 0x0, 0x0, 0xbf, 0x40,
+    0x0, 0x0, 0x0, 0x0, 0x3, 0xe0, 0x0, 0x0,
+    0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x0,
+    0x0, 0xf4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3,
+    0xd0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0x40,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x7c, 0x0, 0x0,
+    0x0, 0x0, 0x2, 0xab, 0xf0, 0x0, 0x0, 0x0,
+    0x0, 0xf, 0xff, 0x80, 0x0, 0x0, 0x0, 0x0,
+    0x1a, 0x50, 0x0, 0x0, 0x0,
+
     /* U+5B5C "孜" */
     0x0, 0x0, 0x0, 0x0, 0x64, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x2e, 0x0, 0x0, 0x0, 0xff,
@@ -33672,6 +35577,30 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+5B71 "孱" */
+    0x1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x7,
+    0xea, 0xaa, 0xaa, 0xaa, 0xaf, 0x0, 0x1f, 0x0,
+    0x0, 0x0, 0x0, 0x3c, 0x0, 0x7c, 0x0, 0x0,
+    0x0, 0x0, 0xf0, 0x1, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xc0, 0x7, 0xea, 0xaa, 0xaa, 0xaa, 0xaa,
+    0x0, 0x1f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x7c, 0x1a, 0xaa, 0xaa, 0xaa, 0x80, 0x1, 0xf0,
+    0x7f, 0xff, 0xff, 0xff, 0x0, 0x7, 0xc0, 0x0,
+    0x0, 0x2f, 0x90, 0x0, 0x1f, 0x0, 0x0, 0x1f,
+    0x90, 0x0, 0x0, 0x7d, 0xff, 0xff, 0xff, 0xff,
+    0xfe, 0x1, 0xf6, 0xaa, 0xab, 0xfa, 0xaa, 0xa4,
+    0x7, 0x80, 0x0, 0x1f, 0x80, 0x0, 0x0, 0x2e,
+    0x0, 0x7, 0xfc, 0x0, 0x0, 0x0, 0xb8, 0x0,
+    0x5, 0x0, 0x0, 0x0, 0x3, 0xd7, 0xff, 0xfe,
+    0xbf, 0xff, 0xf0, 0xf, 0x4a, 0xab, 0xf4, 0x55,
+    0x7f, 0x40, 0x3c, 0x0, 0x2e, 0x0, 0x7, 0xd0,
+    0x2, 0xf0, 0x3, 0xc1, 0x0, 0x3c, 0x0, 0xf,
+    0x46, 0xaf, 0xfe, 0xff, 0xff, 0xfc, 0x3c, 0xbf,
+    0xfe, 0x52, 0xab, 0xea, 0x92, 0xf0, 0x0, 0xf0,
+    0x0, 0xf, 0x0, 0xf, 0x40, 0x3, 0xc0, 0x0,
+    0x7c, 0x0, 0xbc, 0x2, 0xfe, 0x0, 0x3f, 0xe0,
+    0x0, 0x90, 0x6, 0x40, 0x0, 0x54, 0x0, 0x0,
+
     /* U+5B73 "孳" */
     0x0, 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0,
     0xf, 0x0, 0x0, 0x1e, 0x0, 0x0, 0x0, 0x1f,
@@ -33750,6 +35679,46 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xe0, 0x3, 0xc0, 0x0, 0x3, 0xe0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+5B7D "孽" */
+    0x0, 0x0, 0x24, 0x0, 0x24, 0x0, 0x0, 0x0,
+    0x0, 0x3c, 0x0, 0x78, 0x0, 0x0, 0x2a, 0xaa,
+    0xbe, 0xaa, 0xbe, 0xaa, 0xa4, 0x3f, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xf8, 0x0, 0x0, 0x7c, 0x0,
+    0x78, 0x0, 0x0, 0x0, 0xf, 0x28, 0x0, 0x2e,
+    0x0, 0x0, 0x0, 0x1e, 0x0, 0x0, 0xb, 0x80,
+    0x0, 0x7, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xf0,
+    0x7, 0x95, 0x5e, 0x2b, 0xea, 0xaf, 0x90, 0x7,
+    0x40, 0xe, 0x2, 0xc0, 0x1e, 0x0, 0x7, 0xff,
+    0xfe, 0x1, 0xd0, 0x2d, 0x0, 0x7, 0x95, 0x55,
+    0x6b, 0xfa, 0xbe, 0xa4, 0x7, 0x80, 0x0, 0xbf,
+    0xff, 0xff, 0xf4, 0x7, 0xff, 0xff, 0x0, 0xb,
+    0x40, 0x0, 0x7, 0x80, 0xf, 0x15, 0x5b, 0x95,
+    0x50, 0x7, 0x40, 0xf, 0x3f, 0xff, 0xff, 0xf0,
+    0x7, 0xff, 0xff, 0x0, 0xb, 0x80, 0x0, 0x1,
+    0x55, 0x55, 0x0, 0xb, 0x40, 0x0, 0x0, 0x2a,
+    0xaa, 0xaa, 0xaa, 0xa4, 0x0, 0x0, 0x7f, 0xff,
+    0xff, 0xff, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xbf, 0x90, 0x0, 0x0, 0x0, 0x0, 0x1f, 0xe4,
+    0x0, 0x0, 0x6a, 0xaa, 0xaa, 0xbf, 0xaa, 0xaa,
+    0xa8, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc,
+    0x0, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x2b, 0xfc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f,
+    0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
+    /* U+5B80 "宀" */
+    0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xf, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0x80,
+    0x0, 0x0, 0x0, 0x0, 0xb, 0xc0, 0x0, 0x0,
+    0x0, 0x0, 0x3, 0xc0, 0x0, 0x0, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xfd, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xfd, 0xf4, 0x0, 0x0, 0x0, 0x0, 0x3d,
+    0xf4, 0x0, 0x0, 0x0, 0x0, 0x3d, 0xf4, 0x0,
+    0x0, 0x0, 0x0, 0x3d, 0xf4, 0x0, 0x0, 0x0,
+    0x0, 0x3d, 0xf4, 0x0, 0x0, 0x0, 0x0, 0x3d,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+5B81 "宁" */
     0x0, 0x0, 0x0, 0x78, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x1, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -34324,6 +36293,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0x0, 0x0, 0x1f, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x7, 0xc0, 0x0, 0x0,
 
+    /* U+5BA2 "客" */
+    0x0, 0x0, 0x0, 0x14, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xf, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x3, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x7c, 0x0, 0x0, 0x0, 0x3, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xf0, 0x0, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xfc, 0x0, 0x3d, 0x0, 0x40, 0x0,
+    0x0, 0xf, 0x0, 0xf, 0x40, 0xb8, 0x0, 0x0,
+    0x3, 0xc0, 0x3, 0xd0, 0xbf, 0xff, 0xff, 0xfd,
+    0xf0, 0x0, 0x50, 0xbf, 0xff, 0xff, 0xff, 0x54,
+    0x0, 0x0, 0xbe, 0x0, 0x0, 0x2f, 0x80, 0x0,
+    0x1, 0xff, 0xf0, 0x0, 0x3f, 0x80, 0x0, 0x2,
+    0xfc, 0x3f, 0x80, 0xbf, 0x40, 0x0, 0x0, 0xb4,
+    0x2, 0xfe, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x2f, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x1, 0xff,
+    0xef, 0xf9, 0x0, 0x0, 0x1, 0x6f, 0xfe, 0x40,
+    0x7f, 0xff, 0x95, 0xf, 0xff, 0xe4, 0x0, 0x0,
+    0x6f, 0xff, 0xc3, 0xf9, 0x0, 0x0, 0x0, 0x0,
+    0x1a, 0xe0, 0x0, 0x3f, 0xff, 0xff, 0xff, 0xf4,
+    0x0, 0x0, 0xf, 0xff, 0xff, 0xff, 0xfd, 0x0,
+    0x0, 0x3, 0xc0, 0x0, 0x0, 0xf, 0x40, 0x0,
+    0x0, 0xf0, 0x0, 0x0, 0x3, 0xd0, 0x0, 0x0,
+    0x3c, 0x0, 0x0, 0x0, 0xf4, 0x0, 0x0, 0xf,
+    0x0, 0x0, 0x0, 0x3d, 0x0, 0x0, 0x3, 0xff,
+    0xff, 0xff, 0xff, 0x40, 0x0, 0x0, 0xfa, 0xaa,
+    0xaa, 0xab, 0xd0, 0x0, 0x0, 0x3c, 0x0, 0x0,
+    0x0, 0xf4, 0x0,
+
     /* U+5BA3 "宣" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x3, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -34475,33 +36472,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xff, 0xfe, 0x0, 0x3f, 0xff, 0xff, 0xff, 0xff,
     0x80, 0xf, 0x40, 0x0, 0x0, 0x3, 0xe0,
 
-    /* U+5BAC "宬" */
-    0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x7c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x3c, 0x0, 0x0, 0x0, 0xf, 0xff, 0xff, 0xff,
-    0xff, 0xff, 0xd0, 0xf, 0xff, 0xff, 0xff, 0xff,
-    0xff, 0xd0, 0xf, 0x0, 0x0, 0x0, 0x0, 0x3,
-    0xd0, 0xf, 0x0, 0x0, 0x6, 0x41, 0x3, 0xd0,
-    0xf, 0x0, 0x0, 0xb, 0x47, 0xc3, 0xd0, 0xa,
-    0x0, 0x0, 0x7, 0x82, 0xf1, 0x40, 0x0, 0x0,
-    0x0, 0x7, 0x80, 0xf0, 0x0, 0x2, 0xff, 0xff,
-    0xff, 0xff, 0xff, 0xc0, 0x2, 0xff, 0xff, 0xff,
-    0xff, 0xff, 0xc0, 0x2, 0xd0, 0x0, 0x3, 0xc0,
-    0x0, 0x0, 0x2, 0xd0, 0x0, 0x2, 0xd0, 0x4,
-    0x0, 0x2, 0xd0, 0x0, 0x2, 0xd0, 0x1f, 0x0,
-    0x2, 0xff, 0xff, 0xc1, 0xe0, 0x3d, 0x0, 0x2,
-    0xff, 0xff, 0xc0, 0xf0, 0xbc, 0x0, 0x2, 0xd0,
-    0x7, 0xc0, 0xf1, 0xf0, 0x0, 0x3, 0xd0, 0x7,
-    0x80, 0xbf, 0xc0, 0x0, 0x3, 0xc0, 0x7, 0x80,
-    0x7f, 0x40, 0x0, 0x3, 0xc0, 0xb, 0x80, 0x7e,
-    0x0, 0x24, 0xb, 0x86, 0xbf, 0x2, 0xff, 0x0,
-    0x3c, 0xf, 0x4b, 0xfd, 0x1f, 0xcf, 0x80, 0x78,
-    0x2f, 0x1, 0x0, 0xbe, 0x3, 0xe5, 0xf4, 0x7d,
-    0x0, 0x3, 0xf4, 0x1, 0xff, 0xf0, 0x78, 0x0,
-    0x1, 0x80, 0x0, 0x2f, 0x80, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0,
-
     /* U+5BB0 "宰" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0xf4, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -34714,6 +36684,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xff, 0x90, 0x0, 0x2f, 0xff, 0xf8, 0x3, 0x90,
     0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+5BBE "宾" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xb8, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xbc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x7d, 0x0, 0x0, 0x0, 0xf, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xe0, 0xf, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xe0, 0xf, 0x40, 0x0, 0x0, 0x0, 0x2,
+    0xe0, 0xf, 0x40, 0x0, 0x0, 0x0, 0x42, 0xe0,
+    0xf, 0x40, 0x5, 0x6a, 0xff, 0xd2, 0xe0, 0x5,
+    0x2f, 0xff, 0xff, 0xff, 0x90, 0x40, 0x0, 0x2f,
+    0xfa, 0x95, 0x0, 0x0, 0x0, 0x0, 0x2e, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x2e, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x2f, 0xff, 0xff, 0xff,
+    0xff, 0x0, 0x0, 0x2f, 0xff, 0xff, 0xff, 0xff,
+    0x0, 0x0, 0x2e, 0x0, 0x0, 0x78, 0x0, 0x0,
+    0x0, 0x2e, 0x0, 0x0, 0x78, 0x0, 0x0, 0x0,
+    0x2e, 0x0, 0x0, 0x78, 0x0, 0x0, 0x0, 0x2e,
+    0x0, 0x0, 0x78, 0x0, 0x0, 0x6a, 0xbf, 0xaa,
+    0xaa, 0xfe, 0xaa, 0xa8, 0xbf, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xfc, 0x0, 0x0, 0x4, 0x0, 0x50,
+    0x0, 0x0, 0x0, 0x0, 0x7c, 0x0, 0xf8, 0x0,
+    0x0, 0x0, 0x7, 0xfd, 0x0, 0xff, 0xd0, 0x0,
+    0x0, 0x7f, 0xe0, 0x0, 0x1b, 0xfe, 0x0, 0x1b,
+    0xfe, 0x0, 0x0, 0x0, 0x7f, 0xe0, 0x1f, 0xd0,
+    0x0, 0x0, 0x0, 0x7, 0xf0, 0x9, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x60,
+
     /* U+5BBF "宿" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x3e, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -35007,6 +37004,91 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x3f, 0xf9, 0x0, 0x6f, 0xfd, 0x0, 0xf, 0x29,
     0x0, 0x0, 0x0, 0x68,
 
+    /* U+5BDE "寞" */
+    0x0, 0x0, 0x0, 0x60, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x3, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xb, 0x80, 0x0, 0x0, 0x2, 0xaa, 0xaa, 0xbf,
+    0xaa, 0xaa, 0xa4, 0x1f, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xe0, 0x7c, 0x0, 0x50, 0x1, 0x40, 0xf,
+    0x81, 0xf0, 0x3, 0xc0, 0xb, 0x40, 0x2e, 0x7,
+    0xda, 0xaf, 0xaa, 0xbe, 0xa9, 0xb8, 0x0, 0xbf,
+    0xff, 0xff, 0xff, 0xfc, 0x0, 0x0, 0x1, 0xf0,
+    0x2, 0xe0, 0x0, 0x0, 0x0, 0x3, 0x80, 0x7,
+    0x40, 0x0, 0x0, 0x1a, 0xaa, 0xaa, 0xaa, 0xaa,
+    0x0, 0x0, 0xbf, 0xff, 0xff, 0xff, 0xfc, 0x0,
+    0x2, 0xe0, 0x0, 0x0, 0x1, 0xf0, 0x0, 0xb,
+    0x95, 0x55, 0x55, 0x5b, 0xc0, 0x0, 0x2f, 0xff,
+    0xff, 0xff, 0xff, 0x0, 0x0, 0xb8, 0x0, 0x0,
+    0x0, 0x7c, 0x0, 0x2, 0xfa, 0xaa, 0xaa, 0xaa,
+    0xf0, 0x0, 0xb, 0xff, 0xff, 0xff, 0xff, 0xc0,
+    0x0, 0x0, 0x0, 0x1f, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x7c, 0x0, 0x0, 0x0, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xc2, 0xaa, 0xaa, 0xaf,
+    0xfa, 0xaa, 0xaa, 0x0, 0x0, 0x0, 0xff, 0xf0,
+    0x0, 0x0, 0x0, 0x0, 0x6f, 0xc2, 0xf8, 0x0,
+    0x0, 0x1, 0xaf, 0xf4, 0x1, 0xff, 0x90, 0x7,
+    0xff, 0xf9, 0x0, 0x0, 0x7f, 0xff, 0x9f, 0xe5,
+    0x0, 0x0, 0x0, 0x6, 0xbd, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
+    /* U+5BDF "察" */
+    0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xf, 0x40, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x1, 0xe0, 0x0, 0x0, 0x0, 0xb, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xc0, 0x3, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xf0, 0x0, 0xf4, 0x0, 0x0,
+    0x0, 0x0, 0x3c, 0x0, 0x3c, 0x3, 0x80, 0x28,
+    0x0, 0xf, 0x0, 0xf, 0x3, 0xd0, 0xf, 0x0,
+    0x2, 0x80, 0x0, 0x2, 0xff, 0xfd, 0xff, 0xff,
+    0xc0, 0x0, 0x2, 0xfa, 0xbf, 0x3f, 0xff, 0xf0,
+    0x0, 0x2, 0xf8, 0xb, 0x4b, 0x80, 0xf4, 0x0,
+    0x2, 0xff, 0x87, 0x80, 0xf0, 0x78, 0x0, 0x3,
+    0xf0, 0xb7, 0xc0, 0x1f, 0x7c, 0x0, 0x3, 0xfd,
+    0x7, 0xd0, 0x2, 0xfc, 0x0, 0x0, 0x63, 0xd3,
+    0xe0, 0x0, 0x3f, 0x0, 0x0, 0x0, 0x3b, 0xff,
+    0xff, 0xfe, 0xf4, 0x0, 0x0, 0xb, 0xd7, 0xff,
+    0xfe, 0x2f, 0x80, 0x0, 0x1f, 0xc0, 0x0, 0x0,
+    0x1, 0xfe, 0x0, 0x7f, 0x80, 0x0, 0x0, 0x0,
+    0x7, 0xf0, 0xbf, 0x2f, 0xff, 0xff, 0xff, 0xf8,
+    0x18, 0x1d, 0xf, 0xff, 0xff, 0xff, 0xff, 0x0,
+    0x0, 0x0, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x0,
+    0x0, 0xb, 0x40, 0xf0, 0x3d, 0x0, 0x0, 0x0,
+    0x1f, 0xd0, 0x3c, 0xf, 0xf4, 0x0, 0x0, 0x7f,
+    0x80, 0xf, 0x0, 0x7f, 0xd0, 0x1, 0xff, 0x40,
+    0x7, 0xc0, 0x0, 0xfe, 0x0, 0x3d, 0x0, 0xbf,
+    0xf0, 0x0, 0x7, 0x40, 0x0, 0x0, 0x1f, 0xe0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
+    /* U+5BE1 "寡" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xb, 0x80, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x1, 0xf0, 0x0, 0x0, 0x0, 0xa, 0xaa,
+    0xaa, 0xff, 0xaa, 0xaa, 0x90, 0x3, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xf8, 0x0, 0xf0, 0x0, 0x0,
+    0x0, 0x0, 0x2e, 0x0, 0x3c, 0x2a, 0xaa, 0xaa,
+    0xaa, 0x8b, 0x80, 0xf, 0xf, 0xff, 0xff, 0xff,
+    0xf2, 0xd0, 0x0, 0x40, 0x0, 0x2e, 0x0, 0x0,
+    0x0, 0x0, 0x2, 0xaa, 0xaf, 0xaa, 0xaa, 0x40,
+    0x0, 0x0, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x0,
+    0x0, 0x3c, 0x0, 0x0, 0x0, 0x7c, 0x0, 0x0,
+    0xf, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x3,
+    0xc0, 0x0, 0x0, 0x7, 0xc0, 0x0, 0x0, 0xf5,
+    0x55, 0x55, 0x56, 0xf0, 0x0, 0x0, 0x3f, 0xff,
+    0xff, 0xff, 0xfc, 0x0, 0x0, 0xf, 0x0, 0x0,
+    0x0, 0xf, 0x0, 0x3, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xc0, 0x55, 0x57, 0xf5, 0x55, 0xf9,
+    0x55, 0x50, 0x0, 0x3, 0xf0, 0x0, 0x1f, 0x80,
+    0x0, 0x0, 0xb, 0xf0, 0x0, 0x1, 0xfd, 0x0,
+    0x0, 0x2f, 0xff, 0xff, 0xff, 0xff, 0xe4, 0x1,
+    0xff, 0x8a, 0xfe, 0xaa, 0xaf, 0x7f, 0xd0, 0xbd,
+    0x0, 0x2d, 0x0, 0x3, 0xc1, 0xfd, 0x4, 0x0,
+    0x1f, 0x0, 0x1, 0xf0, 0x6, 0x0, 0x0, 0x7f,
+    0x0, 0x0, 0xb8, 0x0, 0x0, 0x6, 0xfe, 0x0,
+    0x3f, 0xfd, 0x0, 0x0, 0x3, 0xf8, 0x0, 0xf,
+    0xf9, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+5BE4 "寤" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0xb4, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -35063,6 +37145,60 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+5BE8 "寨" */
+    0x0, 0x0, 0x0, 0xa0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x7c, 0x0, 0x0, 0x0, 0xa, 0xaa, 0xaa,
+    0xff, 0xaa, 0xaa, 0x90, 0xf, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xd0, 0xf, 0x0, 0x0, 0x0, 0x0,
+    0x2, 0xd0, 0xf, 0x0, 0x7c, 0x0, 0x78, 0x2,
+    0xd0, 0x5, 0x0, 0x7c, 0x0, 0x78, 0x0, 0x40,
+    0x2, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x1,
+    0xaa, 0xfe, 0xaa, 0xfe, 0xaa, 0x0, 0x0, 0x0,
+    0x7c, 0x0, 0x78, 0x0, 0x0, 0x0, 0xaa, 0xbe,
+    0xaa, 0xfe, 0xaa, 0x0, 0x1, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0x0, 0x0, 0x0, 0x7c, 0x0, 0x78,
+    0x0, 0x0, 0x2a, 0xaa, 0xfe, 0xaa, 0xfe, 0xaa,
+    0xa4, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf4,
+    0x0, 0x2, 0xf0, 0x0, 0x1f, 0x0, 0x0, 0x0,
+    0xb, 0xc0, 0x38, 0x7, 0xd0, 0x0, 0x0, 0x7f,
+    0x0, 0x7c, 0x1, 0xfd, 0x0, 0x7, 0xfe, 0xaa,
+    0xfe, 0xaa, 0xff, 0xd0, 0x7f, 0x8f, 0xff, 0xff,
+    0xff, 0xe2, 0xfc, 0x78, 0x0, 0x0, 0x7c, 0x0,
+    0x0, 0x2c, 0x0, 0x1, 0xf0, 0x7c, 0x2e, 0x0,
+    0x0, 0x0, 0x1f, 0xe0, 0x7c, 0x2f, 0xf4, 0x0,
+    0x1, 0xff, 0x0, 0x7c, 0x1, 0xff, 0x40, 0xf,
+    0xf4, 0x0, 0xbc, 0x0, 0x1f, 0xe0, 0xf, 0x40,
+    0x2f, 0xf8, 0x0, 0x1, 0xd0, 0x0, 0x0, 0xe,
+    0x90, 0x0, 0x0, 0x0,
+
+    /* U+5BEE "寮" */
+    0x0, 0x0, 0x0, 0x60, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xb8, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x7c, 0x0, 0x0, 0x0, 0xa, 0xaa, 0xaa,
+    0xbe, 0xaa, 0xaa, 0x80, 0xf, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xd0, 0xf, 0x0, 0x0, 0x10, 0x0,
+    0x3, 0xd0, 0xf, 0x0, 0x0, 0x7c, 0x0, 0x3,
+    0xd0, 0xf, 0x0, 0x0, 0xf4, 0x0, 0x3, 0xd0,
+    0x0, 0x3f, 0xff, 0xff, 0xff, 0xf8, 0x0, 0x0,
+    0x2a, 0xaf, 0xeb, 0xfa, 0xa4, 0x0, 0x3, 0x80,
+    0x2f, 0x42, 0xf0, 0x3, 0x40, 0x2, 0xf4, 0xbd,
+    0x0, 0xbd, 0x1f, 0x80, 0x0, 0x7f, 0xf0, 0x0,
+    0x2f, 0xfd, 0x0, 0x0, 0x7f, 0xff, 0xff, 0xff,
+    0xf8, 0x0, 0x7, 0xff, 0xaa, 0xaa, 0xaa, 0xff,
+    0xd0, 0xbf, 0xdf, 0x0, 0x0, 0x0, 0xfb, 0xfc,
+    0x79, 0xf, 0xaa, 0xaa, 0xaa, 0xf0, 0x64, 0x0,
+    0xf, 0xff, 0xff, 0xff, 0xf0, 0x0, 0x0, 0xf,
+    0x0, 0x0, 0x0, 0xf0, 0x0, 0x0, 0xf, 0x0,
+    0x0, 0x0, 0xf0, 0x0, 0x0, 0xf, 0xff, 0xff,
+    0xff, 0xf0, 0x0, 0x0, 0xa, 0xaa, 0xbe, 0xaa,
+    0xa0, 0x0, 0x0, 0x1, 0x80, 0x3c, 0x2, 0x0,
+    0x0, 0x0, 0x1f, 0xd0, 0x3c, 0xb, 0xe4, 0x0,
+    0x1, 0xff, 0x40, 0x3c, 0x2, 0xff, 0x40, 0x2f,
+    0xf8, 0x5, 0xfc, 0x0, 0x1f, 0xf4, 0x3f, 0x40,
+    0x1f, 0xf8, 0x0, 0x1, 0xf4, 0x14, 0x0, 0xa,
+    0x90, 0x0, 0x0, 0x10,
+
     /* U+5BF0 "寰" */
     0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -35332,32 +37468,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0xff, 0xe0, 0x0, 0x0, 0xf, 0x0, 0x0,
     0x1a, 0x90, 0x0,
 
-    /* U+5C08 "專" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x3, 0xc0, 0x0, 0x0, 0x7, 0xff, 0xff, 0xff,
-    0xff, 0xff, 0xfc, 0x2f, 0xff, 0xff, 0xff, 0xff,
-    0xff, 0xf0, 0x0, 0x0, 0x0, 0xf0, 0x0, 0x0,
-    0x0, 0xa, 0xaa, 0xab, 0xea, 0xaa, 0x90, 0x0,
-    0x7f, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x1, 0xf0,
-    0x0, 0x3c, 0x0, 0xf, 0x0, 0x7, 0xc0, 0x0,
-    0xf0, 0x0, 0x3c, 0x0, 0x1f, 0xff, 0xff, 0xff,
-    0xff, 0xf0, 0x0, 0x7e, 0xaa, 0xaf, 0xaa, 0xab,
-    0xc0, 0x1, 0xf0, 0x0, 0x3c, 0x0, 0xf, 0x0,
-    0x7, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0, 0xa,
-    0xaa, 0xab, 0xea, 0xab, 0xd0, 0x0, 0x0, 0x0,
-    0xf, 0x0, 0xf, 0x40, 0x1a, 0xaa, 0xaa, 0xbe,
-    0xaa, 0xff, 0x80, 0xbf, 0xff, 0xff, 0xff, 0xff,
-    0xff, 0x80, 0x54, 0x0, 0x0, 0x0, 0x24, 0xf,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0xf0, 0x0, 0x3f,
-    0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xff,
-    0xff, 0xff, 0xff, 0xff, 0xe0, 0x0, 0xe0, 0x0,
-    0x0, 0x3c, 0x0, 0x0, 0x7, 0xf4, 0x0, 0x0,
-    0xf0, 0x0, 0x0, 0x2, 0xfc, 0x0, 0x3, 0xc0,
-    0x0, 0x0, 0x0, 0xfc, 0x5, 0xbf, 0x0, 0x0,
-    0x0, 0x0, 0x90, 0xbf, 0xf4, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0xa5, 0x0, 0x0,
-
     /* U+5C09 "尉" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0, 0xf4, 0x0, 0xa,
@@ -35387,6 +37497,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x3, 0xe4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+5C0A "尊" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x2, 0xd0, 0x0, 0xe, 0x0, 0x0, 0x0, 0x2,
+    0xf0, 0x0, 0x2f, 0x0, 0x0, 0x0, 0x0, 0xf4,
+    0x0, 0x7d, 0x0, 0x0, 0x3f, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xf0, 0x2f, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xf0, 0x0, 0x0, 0x1e, 0x2, 0xd0, 0x0,
+    0x0, 0x0, 0x0, 0x1e, 0x2, 0xd0, 0x0, 0x0,
+    0x3, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x3,
+    0xea, 0xbf, 0xab, 0xfa, 0xaf, 0x0, 0x3, 0xc0,
+    0x2d, 0x2, 0xd0, 0xf, 0x0, 0x3, 0xc0, 0x7c,
+    0x1, 0xf9, 0x5f, 0x0, 0x3, 0xc7, 0xf4, 0x0,
+    0xbf, 0xff, 0x0, 0x3, 0xc3, 0x80, 0x0, 0x0,
+    0xf, 0x0, 0x3, 0xea, 0xaa, 0xaa, 0xaa, 0xaf,
+    0x0, 0x3, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0,
+    0x3, 0xc0, 0x0, 0x0, 0x0, 0xf, 0x0, 0x3,
+    0xea, 0xaa, 0xaa, 0xaa, 0xaf, 0x0, 0x3, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x3, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x3, 0xd0, 0x0, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xfc, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xfc, 0x0, 0xf, 0x80, 0x0, 0x3, 0xd0, 0x0,
+    0x0, 0x7, 0xf8, 0x0, 0x3, 0xd0, 0x0, 0x0,
+    0x0, 0x7e, 0x0, 0x3, 0xd0, 0x0, 0x0, 0x0,
+    0x8, 0x3, 0xff, 0xc0, 0x0, 0x0, 0x0, 0x0,
+    0x2, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+5C0F "小" */
     0x0, 0x0, 0x0, 0x1a, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x7, 0xc0, 0x0, 0x0, 0x0, 0x0,
@@ -35568,6 +37706,86 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0xf, 0xff, 0x5f, 0x0, 0x0, 0x0, 0x1f,
     0xe4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+5C1C "尜" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x7, 0xc0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x1, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x90, 0x7c, 0xd, 0x0, 0x0, 0x0, 0x0, 0xfc,
+    0x1f, 0xb, 0xe0, 0x0, 0x0, 0x1, 0xfd, 0x7,
+    0xc0, 0xbf, 0x40, 0x0, 0x3, 0xfc, 0x1, 0xf0,
+    0x3, 0xf8, 0x0, 0xb, 0xf8, 0x0, 0x7c, 0x0,
+    0x2f, 0xd0, 0x3, 0xf0, 0x0, 0x19, 0x0, 0x1,
+    0xf4, 0x0, 0x50, 0x0, 0xf, 0x0, 0x0, 0x8,
+    0x0, 0x0, 0x0, 0xb, 0xc0, 0x0, 0x0, 0x0,
+    0x2f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xb,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x0,
+    0x3, 0xf0, 0x2f, 0x40, 0x0, 0x0, 0x0, 0x3,
+    0xf0, 0x3, 0xf0, 0x0, 0x0, 0x0, 0x7, 0xf4,
+    0x0, 0x3f, 0x80, 0x0, 0x0, 0xf, 0xf0, 0xf,
+    0x2, 0xfd, 0x0, 0x0, 0x7f, 0xe0, 0x3, 0xc0,
+    0x1f, 0xf4, 0x2, 0xff, 0xd0, 0x0, 0xf0, 0x0,
+    0xbf, 0xf0, 0xff, 0x41, 0xc0, 0x3c, 0xb, 0x2,
+    0xfc, 0x18, 0x1, 0xf4, 0xf, 0x3, 0xf0, 0x5,
+    0x0, 0x1, 0xf8, 0x3, 0xc0, 0x3f, 0x40, 0x0,
+    0x1, 0xf8, 0x0, 0xf0, 0x2, 0xf4, 0x0, 0x1,
+    0xf8, 0x0, 0x7c, 0x0, 0x2f, 0x40, 0x2, 0xf8,
+    0x0, 0x2f, 0x0, 0x2, 0xf4, 0x1, 0xf8, 0x2,
+    0xff, 0xc0, 0x0, 0x3d, 0x0, 0x24, 0x0, 0x7f,
+    0xd0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x5, 0x0,
+    0x0, 0x0, 0x0,
+
+    /* U+5C1D "尝" */
+    0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x6,
+    0x0, 0x1f, 0x0, 0x28, 0x0, 0x0, 0xf8, 0x1,
+    0xf0, 0x3, 0xd0, 0x0, 0x3, 0xd0, 0x1f, 0x0,
+    0xf8, 0x0, 0x0, 0x1f, 0x1, 0xf0, 0x2f, 0x0,
+    0x0, 0x0, 0xf0, 0x1f, 0x2, 0xc0, 0x0, 0x3f,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0x43, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xf4, 0x3d, 0x0, 0x0, 0x0,
+    0x0, 0xf, 0x43, 0xd0, 0x0, 0x0, 0x0, 0x0,
+    0xf4, 0x3d, 0x0, 0x0, 0x0, 0x0, 0xf, 0x43,
+    0xd0, 0x0, 0x0, 0x0, 0x0, 0xf4, 0x14, 0x3f,
+    0xff, 0xff, 0xff, 0x5, 0x0, 0x3, 0xff, 0xff,
+    0xff, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xfc, 0xbf, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xc0, 0x0, 0x7, 0xf0, 0x5,
+    0x0, 0x0, 0x0, 0x0, 0xfc, 0x1, 0xf0, 0x0,
+    0x0, 0x0, 0x3f, 0x0, 0xf, 0xc0, 0x0, 0x0,
+    0xf, 0xc0, 0x0, 0x3f, 0x0, 0x0, 0x7, 0xf0,
+    0x0, 0x1, 0xfc, 0x0, 0x6, 0xff, 0xbf, 0xff,
+    0xff, 0xf0, 0x0, 0x7f, 0xff, 0xff, 0xff, 0xef,
+    0xc0, 0x2, 0xa5, 0x40, 0x0, 0x0, 0x7d, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x1, 0x80, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0,
+
+    /* U+5C22 "尢" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x3c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xc0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0xf, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x7c, 0x0, 0x0, 0x0, 0xf,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x3f, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xf4, 0x0, 0x0, 0x1f,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xbc, 0x50,
+    0x0, 0x0, 0x0, 0x0, 0x2, 0xe3, 0xc0, 0x0,
+    0x0, 0x0, 0x0, 0xf, 0x4f, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x3d, 0x3c, 0x0, 0x0, 0x0, 0x0,
+    0x1, 0xf0, 0xf0, 0x0, 0x0, 0x0, 0x0, 0xf,
+    0x83, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x3d, 0xf,
+    0x0, 0x0, 0x0, 0x0, 0x2, 0xf0, 0x3c, 0x0,
+    0x0, 0x0, 0x0, 0x1f, 0x40, 0xf0, 0x0, 0x0,
+    0x0, 0x0, 0xfc, 0x3, 0xc0, 0x0, 0x29, 0x0,
+    0xf, 0xc0, 0xf, 0x0, 0x0, 0xb8, 0x0, 0xbd,
+    0x0, 0x3c, 0x0, 0x2, 0xe0, 0xb, 0xe0, 0x0,
+    0xf0, 0x0, 0xf, 0x40, 0xfe, 0x0, 0x3, 0xd0,
+    0x0, 0x3d, 0xf, 0xe0, 0x0, 0xf, 0xd0, 0x6,
+    0xf1, 0xfe, 0x0, 0x0, 0x1f, 0xff, 0xff, 0x87,
+    0xd0, 0x0, 0x0, 0x1b, 0xff, 0xe4, 0x8, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+5C24 "尤" */
     0x0, 0x0, 0x1, 0x40, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x1f, 0x0, 0x70, 0x0, 0x0, 0x0, 0x0,
@@ -36001,32 +38219,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0x0, 0x1, 0xf0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x80,
 
-    /* U+5C43 "屃" */
-    0x0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd0, 0x0,
-    0xff, 0xff, 0xff, 0xff, 0xff, 0xd0, 0x0, 0xf0,
-    0x0, 0x0, 0x0, 0x3, 0xd0, 0x0, 0xf0, 0x0,
-    0x0, 0x0, 0x3, 0xd0, 0x0, 0xf0, 0x0, 0x0,
-    0x0, 0x3, 0xd0, 0x0, 0xf0, 0x0, 0x0, 0x0,
-    0x3, 0xd0, 0x0, 0xff, 0xff, 0xff, 0xff, 0xff,
-    0xd0, 0x0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
-    0x0, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf0,
-    0x2a, 0xaa, 0xaa, 0xaa, 0x80, 0x1, 0xf0, 0x3f,
-    0xff, 0xff, 0xff, 0xc0, 0x1, 0xf0, 0x3c, 0x0,
-    0x0, 0x7, 0xc0, 0x1, 0xf0, 0x3c, 0x0, 0x40,
-    0x3, 0xc0, 0x1, 0xe0, 0x3c, 0x0, 0xf0, 0x3,
-    0xc0, 0x2, 0xe0, 0x3c, 0x1, 0xf0, 0x3, 0xc0,
-    0x2, 0xe0, 0x3c, 0x1, 0xe0, 0x3, 0xc0, 0x3,
-    0xd0, 0x3c, 0x2, 0xe0, 0x3, 0xc0, 0x3, 0xc0,
-    0x3c, 0x2, 0xd0, 0x3, 0xc0, 0x7, 0xc0, 0x3c,
-    0x3, 0xd0, 0x3, 0xc0, 0xb, 0x80, 0x0, 0xb,
-    0xee, 0x40, 0x0, 0xf, 0x40, 0x0, 0x2f, 0x1f,
-    0xf4, 0x0, 0x2f, 0x0, 0x2, 0xfd, 0x1, 0xbf,
-    0x40, 0x3d, 0x1, 0xbf, 0xf0, 0x0, 0xf, 0xf4,
-    0xbc, 0xf, 0xfe, 0x40, 0x0, 0x1, 0xfc, 0x10,
-    0xb, 0x90, 0x0, 0x0, 0x0, 0x18, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x0,
-
     /* U+5C45 "居" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x0, 0xff,
@@ -36077,6 +38269,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x3, 0xc2, 0xc0, 0x0, 0x0, 0x0, 0x0,
     0x3c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+5C49 "屉" */
+    0x0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x0,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x0, 0xf0,
+    0x0, 0x0, 0x0, 0x3, 0xc0, 0x0, 0xf0, 0x0,
+    0x0, 0x0, 0x3, 0xc0, 0x0, 0xf0, 0x0, 0x0,
+    0x0, 0x3, 0xc0, 0x0, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xc0, 0x0, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xc0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xf0, 0x0, 0x2, 0x40, 0x28, 0x0, 0x0,
+    0xf0, 0x3c, 0x7, 0xc0, 0x3c, 0x0, 0x0, 0xf0,
+    0x3c, 0x7, 0xc0, 0x3c, 0x0, 0x0, 0xf0, 0x3c,
+    0x7, 0xc0, 0x3c, 0x0, 0x1, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xfc, 0x1, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xfc, 0x1, 0xe0, 0x3c, 0x7, 0xc0, 0x3c,
+    0x0, 0x2, 0xe0, 0x3c, 0x7, 0xc0, 0x3c, 0x0,
+    0x2, 0xd0, 0x3c, 0x7, 0xc0, 0x3c, 0x0, 0x3,
+    0xd0, 0x3c, 0x7, 0xc0, 0x3c, 0x0, 0x3, 0xc0,
+    0x3c, 0x7, 0xff, 0xfc, 0x0, 0x7, 0xc0, 0x3c,
+    0x2, 0xaa, 0xa8, 0x0, 0xf, 0x80, 0x3c, 0x0,
+    0x0, 0x0, 0x0, 0xf, 0x0, 0x3c, 0x0, 0x0,
+    0x0, 0x0, 0x2f, 0x0, 0x3c, 0x0, 0x0, 0x0,
+    0x0, 0x3d, 0x0, 0x3f, 0xff, 0xff, 0xff, 0xf0,
+    0xbc, 0x0, 0x3f, 0xff, 0xff, 0xff, 0xe0, 0x74,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+5C4A "届" */
     0x0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xf,
     0xff, 0xff, 0xff, 0xff, 0xfd, 0x0, 0xf0, 0x0,
@@ -36204,6 +38422,30 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x3c, 0xa4, 0x0, 0x0, 0x6d, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+5C51 "屑" */
+    0x1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x1f,
+    0xff, 0xff, 0xff, 0xff, 0xfd, 0x1, 0xf0, 0x0,
+    0x0, 0x0, 0x3, 0xd0, 0x1f, 0x0, 0x0, 0x0,
+    0x0, 0x3d, 0x1, 0xf0, 0x0, 0x0, 0x0, 0x3,
+    0xd0, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x1,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x1f, 0x3,
+    0x0, 0x3d, 0x0, 0xb0, 0x1, 0xf0, 0xbd, 0x3,
+    0xd0, 0x2f, 0x0, 0x1f, 0x1, 0xf4, 0x3d, 0xb,
+    0xc0, 0x1, 0xf0, 0x7, 0xc3, 0xd1, 0xf0, 0x0,
+    0x1f, 0xa, 0xbe, 0xbf, 0xaf, 0xa4, 0x1, 0xf0,
+    0xff, 0xff, 0xff, 0xff, 0x40, 0x2f, 0xf, 0x40,
+    0x0, 0x0, 0xf4, 0x2, 0xe0, 0xf4, 0x0, 0x0,
+    0xf, 0x40, 0x3e, 0xf, 0xff, 0xff, 0xff, 0xf4,
+    0x3, 0xd0, 0xff, 0xff, 0xff, 0xff, 0x40, 0x3d,
+    0xf, 0x40, 0x0, 0x0, 0xf4, 0x7, 0xc0, 0xf4,
+    0x0, 0x0, 0xf, 0x40, 0xbc, 0xf, 0xff, 0xff,
+    0xff, 0xf4, 0xf, 0x40, 0xff, 0xff, 0xff, 0xff,
+    0x41, 0xf0, 0xf, 0x40, 0x0, 0x0, 0xf4, 0x3f,
+    0x0, 0xf4, 0x0, 0x0, 0x1f, 0x47, 0xd0, 0xf,
+    0x40, 0x0, 0xff, 0xf0, 0x7c, 0x0, 0xf4, 0x0,
+    0xb, 0xf9, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0,
+
     /* U+5C55 "展" */
     0x0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x0,
     0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x0, 0xf0,
@@ -36358,29 +38600,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x24, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
-    /* U+5C64 "層" */
-    0x0, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x90, 0xf,
-    0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0xf0, 0x0,
-    0x0, 0x0, 0x1, 0xe0, 0xf, 0x0, 0x0, 0x0,
-    0x0, 0x1e, 0x0, 0xff, 0xff, 0xff, 0xff, 0xff,
-    0xe0, 0xf, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0,
-    0xf0, 0x2, 0xd0, 0x0, 0xe0, 0x0, 0xf, 0x0,
-    0xf, 0x40, 0x3d, 0x0, 0x0, 0xf0, 0xaa, 0xfa,
-    0xaf, 0xea, 0x90, 0xf, 0xf, 0xff, 0xff, 0xff,
-    0xfe, 0x0, 0xf0, 0xe2, 0xc0, 0xe0, 0x71, 0xe0,
-    0xf, 0xe, 0x1e, 0xe, 0xf, 0x1e, 0x0, 0xf0,
-    0xe0, 0xb0, 0xe2, 0xc1, 0xe0, 0x1f, 0xf, 0xaa,
-    0xaf, 0xaa, 0xae, 0x1, 0xf0, 0xff, 0xff, 0xff,
-    0xff, 0xe0, 0x1e, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x2, 0xe0, 0x2a, 0xaa, 0xaa, 0xaa, 0x0, 0x2d,
-    0x3, 0xff, 0xff, 0xff, 0xf0, 0x3, 0xd0, 0x3d,
-    0x0, 0x0, 0xf, 0x0, 0x3c, 0x3, 0xd0, 0x0,
-    0x0, 0xf0, 0x7, 0xc0, 0x3f, 0xff, 0xff, 0xff,
-    0x0, 0xb8, 0x3, 0xea, 0xaa, 0xaa, 0xf0, 0xf,
-    0x40, 0x3d, 0x0, 0x0, 0xf, 0x2, 0xf0, 0x3,
-    0xff, 0xff, 0xff, 0xf0, 0x3e, 0x0, 0x3f, 0xaa,
-    0xaa, 0xaf, 0x7, 0xc0, 0x3, 0xd0, 0x0, 0x0,
-    0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    /* U+5C65 "履" */
+    0x0, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x0,
+    0x3f, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x0, 0xf,
+    0x0, 0x0, 0x0, 0x0, 0xb, 0x40, 0x3, 0xc0,
+    0x0, 0x0, 0x0, 0x2, 0xd0, 0x0, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xf4, 0x0, 0x3f, 0xaa, 0xea,
+    0xfa, 0xaa, 0xa8, 0x0, 0xf, 0x0, 0x74, 0x3c,
+    0x0, 0x0, 0x0, 0x3, 0xc0, 0x3c, 0x1f, 0xaa,
+    0xaa, 0xa0, 0x0, 0xf0, 0x3d, 0xf, 0xff, 0xff,
+    0xfc, 0x0, 0x3c, 0x2e, 0xf, 0x40, 0x0, 0x0,
+    0x0, 0xf, 0x2f, 0xb, 0xd5, 0x55, 0x55, 0x0,
+    0x3, 0xff, 0x3, 0xff, 0xff, 0xff, 0xc0, 0x0,
+    0xf7, 0xb, 0x5e, 0x0, 0x0, 0xf0, 0x0, 0x3c,
+    0x3, 0xc3, 0xff, 0xff, 0xfc, 0x0, 0xf, 0x3,
+    0xd0, 0xf5, 0x55, 0x5f, 0x0, 0x3, 0xc2, 0xf0,
+    0x3d, 0x55, 0x57, 0xc0, 0x0, 0xf1, 0xf8, 0xf,
+    0xff, 0xff, 0xf0, 0x0, 0x79, 0xfe, 0x0, 0xb0,
+    0x0, 0x0, 0x0, 0x2e, 0xfb, 0x80, 0x7d, 0x55,
+    0x55, 0x0, 0xf, 0x54, 0xe0, 0x7f, 0xff, 0xff,
+    0xc0, 0x3, 0xc0, 0x38, 0x7f, 0xc0, 0x7, 0xd0,
+    0x1, 0xe0, 0xe, 0xb8, 0x3e, 0xf, 0xc0, 0x0,
+    0xf4, 0x3, 0x88, 0x2, 0xff, 0x80, 0x0, 0x7c,
+    0x0, 0xe0, 0x1b, 0xff, 0xf9, 0x0, 0x2e, 0x0,
+    0x39, 0xff, 0xe4, 0x1b, 0xff, 0x7, 0x0, 0xe,
+    0x39, 0x0, 0x0, 0x6, 0xc0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
 
     /* U+5C66 "屦" */
     0x0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x0,
@@ -36408,6 +38653,26 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0xb2, 0x94, 0x0, 0x0, 0x1c, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+5C6E "屮" */
+    0x0, 0x0, 0x1a, 0x0, 0x0, 0x0, 0x0, 0x7,
+    0xc0, 0x0, 0x0, 0x0, 0x1, 0xf0, 0x0, 0x0,
+    0x50, 0x0, 0x7c, 0x0, 0x5, 0x7c, 0x0, 0x1f,
+    0x0, 0x7, 0xdf, 0x0, 0x7, 0xc0, 0x1, 0xf7,
+    0xc0, 0x1, 0xf0, 0x0, 0x7d, 0xf0, 0x0, 0x7c,
+    0x0, 0x1f, 0x7c, 0x0, 0x1f, 0x0, 0x7, 0xdf,
+    0x0, 0x7, 0xc0, 0x1, 0xf7, 0xc0, 0x1, 0xf0,
+    0x0, 0x7d, 0xf0, 0x0, 0x7c, 0x0, 0x1f, 0x7c,
+    0x0, 0x1f, 0x0, 0x7, 0xdf, 0x0, 0x7, 0xc0,
+    0x1, 0xf7, 0xd5, 0x56, 0xf5, 0x55, 0xbd, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff,
+    0xff, 0xc0, 0x0, 0x7, 0xc0, 0x0, 0x0, 0x0,
+    0x1, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x7c, 0x0,
+    0x0, 0x0, 0x0, 0x1f, 0x0, 0x0, 0x0, 0x0,
+    0x7, 0xc0, 0x0, 0x0, 0x0, 0x1, 0xf0, 0x0,
+    0x0, 0x0, 0x0, 0x7c, 0x0, 0x0, 0x0, 0x0,
+    0x1f, 0x0, 0x0, 0x0, 0x0, 0x7, 0xc0, 0x0,
+    0x0, 0x0, 0x1, 0xf0, 0x0, 0x0,
+
     /* U+5C6F "屯" */
     0x0, 0x0, 0x1, 0x90, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x2e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2,
@@ -36632,6 +38897,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0xbc, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+5C8D "岍" */
+    0x0, 0x24, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xc0,
+    0x1f, 0xff, 0xff, 0xff, 0x0, 0xf, 0x0, 0x7f,
+    0xff, 0xff, 0xfc, 0x0, 0x3c, 0x0, 0xb, 0x80,
+    0x7c, 0x0, 0xe0, 0xf3, 0xc0, 0x2e, 0x1, 0xf0,
+    0x3, 0xc3, 0xcf, 0x0, 0xb8, 0x7, 0xc0, 0xf,
+    0xf, 0x3c, 0x2, 0xe0, 0x1f, 0x0, 0x3c, 0x3c,
+    0xf0, 0xb, 0x80, 0x7c, 0x0, 0xf0, 0xf3, 0xc0,
+    0x2e, 0x1, 0xf0, 0x3, 0xc3, 0xcf, 0x0, 0xb8,
+    0x7, 0xc0, 0xf, 0xf, 0x3c, 0x2, 0xe0, 0x1f,
+    0x0, 0x3c, 0x3c, 0xf0, 0xb, 0x80, 0x7c, 0x0,
+    0xf0, 0xf3, 0xcf, 0xff, 0xff, 0xff, 0xf3, 0xc3,
+    0xcf, 0x3f, 0xff, 0xff, 0xff, 0x8f, 0xf, 0x3c,
+    0x2, 0xd0, 0x1f, 0x0, 0x3c, 0x3c, 0xf0, 0xb,
+    0x40, 0x7c, 0x0, 0xf0, 0xf3, 0xc0, 0x2d, 0x1,
+    0xf0, 0x3, 0xc3, 0xcf, 0x0, 0xf0, 0x7, 0xc0,
+    0xf, 0xf, 0x3c, 0x3, 0xc0, 0x1f, 0x0, 0x3c,
+    0x3c, 0xf0, 0x1f, 0x0, 0x7c, 0x0, 0xf1, 0xf7,
+    0xc0, 0xb8, 0x1, 0xf0, 0x3, 0xff, 0xff, 0x7,
+    0xc0, 0x7, 0xc0, 0xf, 0xfa, 0xa8, 0x3f, 0x0,
+    0x1f, 0x0, 0x0, 0x0, 0x2, 0xf0, 0x0, 0x7c,
+    0x0, 0x0, 0x0, 0x2f, 0x80, 0x1, 0xf0, 0x0,
+    0x0, 0x0, 0x78, 0x0, 0x7, 0xc0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+5C90 "岐" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3,
     0xc0, 0x0, 0x1, 0xe0, 0x0, 0x0, 0xf, 0x0,
@@ -36659,6 +38950,35 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xb, 0x40, 0x0, 0x0, 0x74, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+5C91 "岑" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x0, 0x2,
+    0x80, 0x0, 0xf0, 0x0, 0x2c, 0x0, 0x1, 0xf0,
+    0x0, 0x3c, 0x0, 0xf, 0x40, 0x0, 0x7c, 0x0,
+    0xf, 0x0, 0x3, 0xd0, 0x0, 0x1f, 0x0, 0x3,
+    0xd0, 0x0, 0xf4, 0x0, 0x7, 0xff, 0xff, 0xff,
+    0xff, 0xfd, 0x0, 0x1, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0x40, 0x0, 0x0, 0x0, 0x2f, 0xc0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x3f, 0xfc, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x7f, 0xf, 0xd0, 0x0, 0x0,
+    0x0, 0x0, 0xbf, 0x0, 0xfe, 0x0, 0x0, 0x0,
+    0x2, 0xfe, 0x0, 0xb, 0xf4, 0x0, 0x0, 0xb,
+    0xfc, 0x1e, 0x0, 0x3f, 0xd0, 0x0, 0x6f, 0xf4,
+    0x3, 0xe0, 0x1, 0xff, 0x80, 0xff, 0xd0, 0x0,
+    0x3e, 0x0, 0xb, 0xfd, 0x1f, 0x40, 0x0, 0x7,
+    0xc0, 0x0, 0x2f, 0x1, 0x0, 0x0, 0x0, 0x80,
+    0x0, 0x0, 0x0, 0x1, 0xff, 0xff, 0xff, 0xff,
+    0xe0, 0x0, 0x0, 0xbf, 0xff, 0xff, 0xff, 0xf8,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xfd, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0xfe, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0xfe, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0xfe, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xfd, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x1, 0xfd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1,
+    0xfd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1c,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+5C94 "岔" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x80, 0x1d, 0x0, 0x0, 0x0, 0x0,
@@ -36838,6 +39158,29 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xff, 0xf4, 0x0, 0x0, 0x0, 0x0, 0xff, 0x80,
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+5C9C "岜" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x1f, 0x0, 0x0, 0x0, 0xa0, 0x0, 0x1f, 0x0,
+    0x2, 0x90, 0xf4, 0x0, 0x1f, 0x0, 0x2, 0xe0,
+    0xf4, 0x0, 0x1f, 0x0, 0x2, 0xe0, 0xf4, 0x0,
+    0x1f, 0x0, 0x3, 0xe0, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x7f, 0xff, 0xff, 0xff,
+    0xff, 0xc0, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xc0,
+    0x7c, 0x0, 0x1f, 0x0, 0x7, 0xc0, 0x7c, 0x0,
+    0x1f, 0x0, 0x7, 0xc0, 0x7c, 0x0, 0x1f, 0x0,
+    0x7, 0xc0, 0x7c, 0x0, 0x1f, 0x0, 0x7, 0xc0,
+    0x7c, 0x0, 0x1f, 0x0, 0x7, 0xc0, 0x7f, 0xff,
+    0xff, 0xff, 0xff, 0xc0, 0x7f, 0xff, 0xff, 0xff,
+    0xff, 0xc0, 0x7c, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x7c, 0x0, 0x0, 0x0, 0x0, 0x10, 0x7c, 0x0,
+    0x0, 0x0, 0x0, 0x2d, 0x7c, 0x0, 0x0, 0x0,
+    0x0, 0x3d, 0x7c, 0x0, 0x0, 0x0, 0x0, 0x3c,
+    0x7e, 0x40, 0x0, 0x0, 0x1, 0xbc, 0x3f, 0xff,
+    0xff, 0xff, 0xff, 0xf4, 0xb, 0xff, 0xff, 0xff,
+    0xff, 0x90, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+5CA2 "岢" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x1, 0xf0, 0x0, 0x0, 0x0, 0x3d, 0x0,
@@ -36990,6 +39333,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0x24, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+5CB1 "岱" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x74, 0xf, 0x2, 0xd0, 0x0, 0x0, 0x0,
+    0xf8, 0xf, 0x2, 0xf4, 0x0, 0x0, 0x2, 0xf0,
+    0xb, 0x40, 0x7d, 0x0, 0x0, 0x7, 0xd0, 0x7,
+    0x80, 0x1f, 0x0, 0x0, 0xf, 0x80, 0x3, 0xc0,
+    0x4, 0x0, 0x0, 0x3f, 0x0, 0x3, 0xc1, 0x6b,
+    0xfe, 0x0, 0xff, 0x1, 0x6b, 0xff, 0xff, 0xfe,
+    0x2, 0xff, 0x1f, 0xff, 0xff, 0xe9, 0x40, 0xb,
+    0xdf, 0xf, 0xe9, 0xf4, 0x0, 0x0, 0x2f, 0x4f,
+    0x0, 0x0, 0xbc, 0x0, 0x0, 0x3d, 0xf, 0x0,
+    0x0, 0x3d, 0x0, 0x1c, 0x4, 0xf, 0x0, 0x0,
+    0x2f, 0x0, 0x2d, 0x0, 0xf, 0x0, 0x0, 0xf,
+    0xc0, 0x3c, 0x0, 0xf, 0x0, 0x0, 0x3, 0xf4,
+    0xbc, 0x0, 0xf, 0x0, 0xf, 0x0, 0xff, 0xf4,
+    0x0, 0xb, 0x0, 0xf, 0x0, 0x2f, 0xd0, 0x0,
+    0x0, 0x0, 0xf, 0x0, 0x0, 0x0, 0x0, 0x38,
+    0x0, 0xf, 0x0, 0x3, 0xc0, 0x0, 0x7c, 0x0,
+    0xf, 0x0, 0x3, 0xc0, 0x0, 0x7c, 0x0, 0xf,
+    0x0, 0x3, 0xc0, 0x0, 0x7c, 0x0, 0xf, 0x0,
+    0x3, 0xc0, 0x0, 0x7c, 0x0, 0xf, 0x0, 0x3,
+    0xc0, 0x0, 0x7c, 0x0, 0xf, 0x0, 0x3, 0xc0,
+    0x0, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x0,
+    0x7f, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x0, 0x15,
+    0x55, 0x55, 0x55, 0x57, 0xc0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x3, 0xc0,
+
     /* U+5CB3 "岳" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x1a, 0x0, 0x0,
     0x0, 0x1, 0x5a, 0xff, 0xff, 0x0, 0x0, 0x2f,
@@ -37042,6 +39412,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x3, 0xc0, 0x0, 0xf0, 0x0, 0x0,
     0x0, 0xf, 0x0, 0x3, 0xc0,
 
+    /* U+5CB7 "岷" */
+    0x0, 0xa0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3,
+    0xc0, 0x3, 0xff, 0xff, 0xfc, 0x0, 0xf, 0x0,
+    0xf, 0xff, 0xff, 0xf0, 0x0, 0x3c, 0x0, 0x3c,
+    0x0, 0x3, 0xc0, 0x0, 0xf0, 0x0, 0xf0, 0x0,
+    0xf, 0x3, 0xc3, 0xc3, 0xc3, 0xc0, 0x0, 0x3c,
+    0xf, 0xf, 0xf, 0xf, 0x0, 0x0, 0xf0, 0x3c,
+    0x3c, 0x3c, 0x3c, 0x0, 0x3, 0xc0, 0xf0, 0xf0,
+    0xf0, 0xff, 0xff, 0xff, 0x3, 0xc3, 0xc3, 0xc3,
+    0xff, 0xff, 0xfc, 0xf, 0xf, 0xf, 0xf, 0x0,
+    0xf0, 0x0, 0x3c, 0x3c, 0x3c, 0x3c, 0x3, 0xc0,
+    0x0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf, 0x0, 0x3,
+    0xc3, 0xc3, 0xc3, 0xc0, 0x2c, 0x0, 0xf, 0xf,
+    0xf, 0xf, 0x55, 0xb5, 0x54, 0x3c, 0x3c, 0x3c,
+    0x3f, 0xff, 0xff, 0xfc, 0xf0, 0xf0, 0xf0, 0xff,
+    0xff, 0xff, 0xe3, 0xc3, 0xc3, 0xc3, 0xc0, 0x1e,
+    0x0, 0xf, 0xf, 0xf, 0xf, 0x0, 0x3c, 0x0,
+    0x3c, 0x3c, 0x3c, 0x3c, 0x0, 0xf0, 0x0, 0xf0,
+    0xf0, 0xf0, 0xf0, 0x3, 0xc0, 0x3, 0xc3, 0xc7,
+    0xc3, 0xc0, 0xb, 0x42, 0xcf, 0xff, 0xff, 0xf,
+    0x7, 0x5e, 0xf, 0x3f, 0xff, 0xf8, 0x3d, 0xfd,
+    0x3c, 0x3c, 0x0, 0x0, 0x0, 0xff, 0xd0, 0xba,
+    0xe0, 0x0, 0x0, 0xb, 0xf4, 0x0, 0xff, 0x0,
+    0x0, 0x0, 0x1d, 0x0, 0x1, 0xf4, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+5CB8 "岸" */
     0x0, 0x0, 0x0, 0xa, 0x40, 0x0, 0x0, 0x0,
     0x5, 0x0, 0x3, 0xe0, 0x0, 0x54, 0x0, 0x3,
@@ -37069,6 +39465,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x3d, 0x0, 0x0, 0x0, 0x80, 0x0, 0x0,
     0xf, 0x40, 0x0, 0x0,
 
+    /* U+5CBD "岽" */
+    0x0, 0x0, 0x0, 0x1e, 0x0, 0x0, 0x0, 0x0,
+    0x64, 0x0, 0x2f, 0x0, 0x6, 0x80, 0x0, 0xb8,
+    0x0, 0x2f, 0x0, 0x7, 0xc0, 0x0, 0xb8, 0x0,
+    0x2f, 0x0, 0x7, 0xc0, 0x0, 0xb8, 0x0, 0x2f,
+    0x0, 0x7, 0xc0, 0x0, 0xbf, 0xff, 0xff, 0xff,
+    0xff, 0xc0, 0x0, 0xbf, 0xff, 0xff, 0xff, 0xff,
+    0xc0, 0x0, 0x0, 0xe, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x1f, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x3e, 0x0, 0x0, 0x0, 0x0, 0xf, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xf4, 0xf, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xf4, 0x0, 0x3, 0xf0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0xb, 0xc0, 0xf, 0x40,
+    0x0, 0x0, 0x0, 0x1f, 0x40, 0xf, 0x40, 0x0,
+    0x0, 0x0, 0x3e, 0x0, 0xf, 0x40, 0x0, 0x0,
+    0x0, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xd0, 0x0,
+    0xbf, 0xff, 0xff, 0xff, 0xff, 0xd0, 0x0, 0x0,
+    0x0, 0xf, 0x40, 0x0, 0x0, 0x0, 0x0, 0x90,
+    0xf, 0x41, 0x40, 0x0, 0x0, 0x3, 0xf0, 0xf,
+    0x43, 0xf0, 0x0, 0x0, 0x1f, 0xd0, 0xf, 0x42,
+    0xfe, 0x0, 0x0, 0xbf, 0x40, 0xf, 0x40, 0x3f,
+    0xc0, 0x7, 0xfc, 0x0, 0xf, 0x40, 0x7, 0xf4,
+    0x2f, 0xe0, 0x0, 0x6f, 0x40, 0x0, 0xfd, 0x2f,
+    0x0, 0xf, 0xff, 0x0, 0x0, 0x2c, 0x4, 0x0,
+    0xf, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+5CBF "岿" */
     0x0, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x78, 0x0,
     0xf, 0x0, 0x2, 0xc1, 0xf0, 0x0, 0x3c, 0x0,
@@ -37240,31 +39663,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x3, 0xf0, 0x0, 0x0, 0x3f, 0x0, 0x0,
     0x2, 0x0, 0x0, 0x0, 0x24,
 
-    /* U+5CE3 "峣" */
-    0x0, 0x90, 0x0, 0x19, 0x0, 0x0, 0x0, 0x3,
-    0xc0, 0x0, 0xb8, 0x0, 0x0, 0x0, 0xf, 0x0,
-    0x1, 0xf0, 0x0, 0x4, 0x0, 0x3c, 0x0, 0x3,
-    0xc1, 0x6f, 0xf0, 0x0, 0xf0, 0x0, 0x6f, 0xff,
-    0xff, 0xc0, 0xd3, 0xcb, 0x1f, 0xff, 0xe9, 0x0,
-    0x3, 0x8f, 0x3c, 0x3a, 0x7c, 0x0, 0x70, 0xe,
-    0x3c, 0xf0, 0x0, 0xf4, 0xb, 0xd0, 0x38, 0xf3,
-    0xc0, 0x1, 0xf1, 0xfc, 0x0, 0xe3, 0xcf, 0x0,
-    0x3, 0xff, 0x80, 0x3, 0x8f, 0x3c, 0x0, 0x6f,
-    0xf0, 0xb, 0xe, 0x3c, 0xf0, 0x6f, 0xff, 0xc0,
-    0x3c, 0x38, 0xf3, 0xc7, 0xfd, 0xf, 0xd2, 0xd0,
-    0xe3, 0xcf, 0x9, 0x0, 0xf, 0xff, 0x3, 0x8f,
-    0x3c, 0x0, 0x0, 0x6, 0xe0, 0xe, 0x3c, 0xf0,
-    0x0, 0x0, 0x0, 0x0, 0x38, 0xf3, 0xc7, 0xff,
-    0xff, 0xff, 0xf0, 0xe3, 0xcf, 0xf, 0xff, 0xff,
-    0xff, 0xc3, 0x8f, 0x3c, 0x0, 0xf0, 0x3c, 0x0,
-    0xe, 0x3c, 0xf0, 0x3, 0xc0, 0xf0, 0x0, 0x38,
-    0xf3, 0xc0, 0xe, 0x3, 0xc0, 0x0, 0xe3, 0xdf,
-    0x0, 0xb4, 0xf, 0x0, 0xc3, 0xff, 0xfc, 0x3,
-    0xc0, 0x3c, 0x3, 0x4f, 0xfe, 0xa0, 0x3e, 0x0,
-    0xf0, 0x1c, 0x0, 0x0, 0xb, 0xf0, 0x2, 0xff,
-    0xf0, 0x0, 0x0, 0xbe, 0x0, 0x3, 0xff, 0x40,
-    0x0, 0x0, 0x80, 0x0, 0x0, 0x0, 0x0,
-
     /* U+5CE4 "峤" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3,
     0xc0, 0x0, 0x0, 0x0, 0x14, 0x0, 0xf, 0x0,
@@ -37344,32 +39742,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x1f, 0x0,
 
-    /* U+5CE7 "峧" */
-    0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x3,
-    0xc0, 0x0, 0x3, 0xd0, 0x0, 0x0, 0xf, 0x0,
-    0x0, 0x7, 0x80, 0x0, 0x0, 0x3c, 0x0, 0x0,
-    0xf, 0x0, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x3c,
-    0x0, 0x0, 0x3, 0xc1, 0xf, 0xff, 0xff, 0xff,
-    0x4b, 0xf, 0xe, 0x3f, 0xff, 0xff, 0xfd, 0x2c,
-    0x3c, 0x38, 0x0, 0x0, 0x0, 0x0, 0xb0, 0xf0,
-    0xe0, 0x3, 0x0, 0xd0, 0x2, 0xc3, 0xc3, 0x80,
-    0x3e, 0x7, 0xd0, 0xb, 0xf, 0xe, 0x2, 0xf0,
-    0x7, 0xe0, 0x2c, 0x3c, 0x38, 0x2f, 0x0, 0x7,
-    0xe0, 0xb0, 0xf0, 0xe3, 0xf0, 0x0, 0x7, 0xe2,
-    0xc3, 0xc3, 0xbe, 0x0, 0x0, 0x7, 0x8b, 0xf,
-    0xe, 0x62, 0xc0, 0x3, 0xc4, 0x2c, 0x3c, 0x38,
-    0xb, 0x40, 0x1e, 0x0, 0xb0, 0xf0, 0xe0, 0xf,
-    0x0, 0xf4, 0x2, 0xc3, 0xc3, 0x80, 0x2d, 0x7,
-    0xc0, 0xb, 0xf, 0xe, 0x0, 0x3c, 0x3d, 0x0,
-    0x2c, 0x3c, 0x38, 0x0, 0xba, 0xe0, 0x0, 0xb0,
-    0xf0, 0xe0, 0x0, 0xff, 0x0, 0x2, 0xc3, 0xc3,
-    0x80, 0x1, 0xf8, 0x0, 0xb, 0xbf, 0xfe, 0x0,
-    0x1f, 0xf8, 0x0, 0x2f, 0xff, 0xf8, 0x2, 0xf5,
-    0xfc, 0x0, 0x10, 0x0, 0x0, 0x7f, 0x1, 0xfe,
-    0x0, 0x0, 0x0, 0x1f, 0xe0, 0x0, 0xbf, 0x40,
-    0x0, 0x0, 0xbd, 0x0, 0x0, 0x7d, 0x0, 0x0,
-    0x0, 0x40, 0x0, 0x0, 0x10,
-
     /* U+5CE8 "峨" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3,
     0x80, 0x0, 0x0, 0x3c, 0x0, 0x0, 0xf, 0x0,
@@ -37628,30 +40000,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0x0, 0xfe, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0,
 
-    /* U+5D11 "崑" */
-    0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x5, 0x0,
-    0x3, 0xd0, 0x0, 0x14, 0x3, 0xc0, 0x0, 0xf4,
-    0x0, 0xf, 0x0, 0xf0, 0x0, 0x3d, 0x0, 0x3,
-    0xc0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xf,
-    0xff, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xc0,
-    0x7, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x1, 0xe0,
-    0x0, 0x0, 0x0, 0x3c, 0x0, 0x7f, 0xff, 0xff,
-    0xff, 0xff, 0x0, 0x1f, 0xff, 0xff, 0xff, 0xff,
-    0xc0, 0x7, 0x80, 0x0, 0x0, 0x0, 0xf0, 0x1,
-    0xe0, 0x0, 0x0, 0x0, 0x3c, 0x0, 0x7f, 0xff,
-    0xff, 0xff, 0xff, 0x0, 0xf, 0xff, 0xff, 0xff,
-    0xff, 0xc0, 0x6, 0x0, 0x0, 0x24, 0x0, 0x0,
-    0x2, 0xd0, 0x0, 0xf, 0x0, 0xb, 0xc0, 0xbf,
-    0xff, 0xe3, 0xc1, 0xbf, 0xf0, 0x2f, 0xff, 0xfc,
-    0xff, 0xfe, 0x40, 0xb, 0x80, 0x0, 0x3f, 0xe4,
-    0x0, 0x82, 0xd0, 0x0, 0xf, 0x0, 0x0, 0x7c,
-    0xb4, 0x0, 0x63, 0xc0, 0x0, 0x1e, 0x2e, 0x6f,
-    0xfc, 0xf8, 0x0, 0xf, 0x9f, 0xff, 0xe5, 0x2f,
-    0xff, 0xff, 0xd3, 0xe4, 0x0, 0x2, 0xff, 0xff,
-    0xd0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
     /* U+5D14 "崔" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0xf, 0x40, 0x0, 0x0, 0x0, 0x3c,
@@ -37756,31 +40104,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0xbf, 0x80, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x40, 0x0, 0x0,
 
-    /* U+5D1F "崟" */
-    0x0, 0x0, 0x0, 0x38, 0x0, 0x0, 0x0, 0x2,
-    0xd0, 0x0, 0x3c, 0x0, 0xb, 0x40, 0x2, 0xd0,
-    0x0, 0x3c, 0x0, 0xf, 0x40, 0x2, 0xd0, 0x0,
-    0x3c, 0x0, 0xf, 0x40, 0x2, 0xe0, 0x0, 0x7c,
-    0x0, 0xf, 0x40, 0x2, 0xff, 0xff, 0xff, 0xff,
-    0xff, 0x40, 0x2, 0xff, 0xff, 0xff, 0xff, 0xff,
-    0x40, 0x0, 0x0, 0x0, 0x68, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x3, 0xff, 0x40, 0x0, 0x0, 0x0,
-    0x0, 0x1f, 0xdb, 0xe0, 0x0, 0x0, 0x0, 0x0,
-    0xbf, 0x1, 0xfd, 0x0, 0x0, 0x0, 0xb, 0xf4,
-    0x0, 0x2f, 0xe0, 0x0, 0x1, 0xff, 0x80, 0x0,
-    0x7, 0xfe, 0x40, 0x7f, 0xfb, 0xff, 0xff, 0xff,
-    0xef, 0xfc, 0x7f, 0x47, 0xff, 0xff, 0xff, 0xc2,
-    0xfc, 0x10, 0x0, 0x0, 0x7c, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x7c, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x7c, 0x0, 0x0, 0x0, 0x2, 0xff,
-    0xff, 0xff, 0xff, 0xff, 0x0, 0x3, 0xff, 0xff,
-    0xff, 0xff, 0xff, 0x40, 0x0, 0x1c, 0x0, 0x7c,
-    0x0, 0xa0, 0x0, 0x0, 0x2f, 0x0, 0x7c, 0x1,
-    0xf0, 0x0, 0x0, 0xf, 0x80, 0x7c, 0x7, 0xd0,
-    0x0, 0x0, 0x3, 0x80, 0x7c, 0xb, 0x40, 0x0,
-    0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x1f,
-    0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
-
     /* U+5D24 "崤" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2,
     0xc0, 0x1, 0x80, 0x0, 0x1d, 0x0, 0xb, 0x0,
@@ -37807,6 +40130,61 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x3, 0xc0, 0x3f, 0xf0, 0x0, 0x0,
     0x0, 0xf, 0x0, 0x7e, 0x0,
 
+    /* U+5D26 "崦" */
+    0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x3,
+    0x80, 0x0, 0x3, 0xc0, 0x0, 0x0, 0xe, 0x0,
+    0x0, 0x1e, 0x0, 0x0, 0x0, 0x38, 0x0, 0x0,
+    0xf0, 0x0, 0x0, 0x0, 0xe0, 0xf, 0xff, 0xff,
+    0xff, 0xc0, 0x3, 0x80, 0x3f, 0xff, 0xff, 0xff,
+    0xb, 0xe, 0x3c, 0x0, 0xf0, 0x78, 0x0, 0x2c,
+    0x38, 0xf0, 0xb, 0x80, 0xf0, 0x0, 0xb0, 0xe3,
+    0xc0, 0x7c, 0x61, 0xf0, 0x2, 0xc3, 0x8f, 0x3,
+    0xd2, 0xc2, 0xe0, 0xb, 0xe, 0x3c, 0x3e, 0xb,
+    0x3, 0xe0, 0x2c, 0x38, 0xf2, 0xf0, 0x2c, 0x7,
+    0xe0, 0xb0, 0xe3, 0xef, 0xff, 0xff, 0xff, 0xf2,
+    0xc3, 0x8f, 0xff, 0xab, 0xfa, 0xfb, 0xcb, 0xe,
+    0x3c, 0x3c, 0xb, 0x1, 0xd0, 0x2c, 0x38, 0xf0,
+    0xf0, 0x2c, 0x7, 0x40, 0xb0, 0xe3, 0xc3, 0xea,
+    0xfe, 0xbd, 0x2, 0xc3, 0x8f, 0xf, 0xff, 0xff,
+    0xf4, 0xb, 0xe, 0x3c, 0x3c, 0xb, 0x1, 0xd0,
+    0x2c, 0x38, 0xf0, 0xf0, 0x2c, 0x7, 0x40, 0xb0,
+    0xe3, 0xc3, 0xd5, 0xf5, 0x6d, 0x2, 0xc3, 0x8f,
+    0xf, 0xff, 0xff, 0xf5, 0xcb, 0xbf, 0xfc, 0x15,
+    0x5f, 0x95, 0x4b, 0x2f, 0xff, 0xf0, 0x0, 0x2c,
+    0x0, 0x2c, 0x15, 0x0, 0x0, 0x0, 0xb4, 0x0,
+    0xf0, 0x0, 0x0, 0x0, 0x1, 0xfa, 0xaf, 0x80,
+    0x0, 0x0, 0x0, 0x2, 0xff, 0xfc, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0,
+
+    /* U+5D27 "崧" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x7, 0xc0, 0x0, 0x0, 0x0, 0x6,
+    0x40, 0x1, 0xf0, 0x0, 0x28, 0x0, 0x2, 0xd0,
+    0x0, 0x7c, 0x0, 0xf, 0x0, 0x0, 0xb4, 0x0,
+    0x1f, 0x0, 0x3, 0xc0, 0x0, 0x2e, 0x55, 0x57,
+    0xd5, 0x55, 0xf0, 0x0, 0xb, 0xff, 0xff, 0xff,
+    0xff, 0xfc, 0x0, 0x2, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x60,
+    0x0, 0x0, 0x3, 0xc0, 0x0, 0x78, 0x3d, 0x0,
+    0x0, 0x0, 0xf0, 0x0, 0x3d, 0x7, 0xc0, 0x0,
+    0x15, 0x7d, 0x54, 0x1f, 0x0, 0xf4, 0x0, 0xf,
+    0xff, 0xff, 0xf, 0x80, 0x2f, 0x0, 0x2, 0xff,
+    0xff, 0xc7, 0xc0, 0x3, 0xe0, 0x0, 0x2, 0xf0,
+    0x3, 0xd0, 0x0, 0x7d, 0x0, 0x0, 0xfc, 0x3,
+    0xe0, 0x60, 0xb, 0xd0, 0x0, 0xbf, 0xe2, 0xf0,
+    0x3d, 0x0, 0xfd, 0x0, 0x7f, 0xfe, 0x70, 0x1f,
+    0x0, 0xf, 0xc0, 0x3d, 0xf7, 0xe0, 0xf, 0x40,
+    0x0, 0xc0, 0x3e, 0x3c, 0x3c, 0x7, 0xc0, 0x50,
+    0x0, 0x2f, 0xf, 0x5, 0x3, 0xd0, 0x7c, 0x0,
+    0xf, 0x3, 0xc0, 0x2, 0xe0, 0xb, 0x80, 0x0,
+    0x40, 0xf0, 0x1, 0xf0, 0x0, 0xf4, 0x0, 0x0,
+    0x3c, 0x0, 0xf4, 0x0, 0x2f, 0x0, 0x0, 0xf,
+    0x0, 0xff, 0xff, 0xff, 0xd0, 0x0, 0x3, 0xc0,
+    0x7f, 0xff, 0xff, 0xfc, 0x0, 0x0, 0xf0, 0xa,
+    0x54, 0x0, 0xf, 0x40, 0x0, 0x3c, 0x0, 0x0,
+    0x0, 0x2, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+5D29 "崩" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x1, 0xf0, 0x0, 0x0, 0x0, 0xf0, 0x0,
@@ -37937,6 +40315,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x40, 0xf, 0xff, 0xff, 0xc0, 0x1, 0x0, 0x0,
     0x1, 0x55, 0x40, 0x0, 0x0,
 
+    /* U+5D3E "崾" */
+    0x0, 0x60, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2,
+    0xc0, 0xa, 0xaa, 0xaa, 0xaa, 0x80, 0xb, 0x0,
+    0x3f, 0xff, 0xff, 0xff, 0x40, 0x2c, 0x0, 0x0,
+    0x78, 0x78, 0x0, 0x0, 0xb0, 0x0, 0x0, 0xe1,
+    0xd0, 0x0, 0xe2, 0xc3, 0x80, 0x3, 0x87, 0x40,
+    0x3, 0xcb, 0xe, 0xa, 0xbf, 0xbf, 0xa9, 0xf,
+    0x2c, 0x38, 0x7f, 0xff, 0xff, 0xf4, 0x3c, 0xb0,
+    0xe1, 0xe1, 0xe1, 0xd1, 0xd0, 0xf2, 0xc3, 0x87,
+    0x83, 0x87, 0x47, 0x43, 0xcb, 0xe, 0x1e, 0xe,
+    0x1d, 0x1d, 0xf, 0x2c, 0x38, 0x7e, 0xfe, 0xfe,
+    0xf4, 0x3c, 0xb0, 0xe1, 0xff, 0xff, 0xff, 0xd0,
+    0xf2, 0xc3, 0x80, 0x1, 0x0, 0x0, 0x3, 0xcb,
+    0xe, 0x0, 0x1f, 0x0, 0x0, 0xf, 0x2c, 0x38,
+    0x0, 0xb4, 0x0, 0x0, 0x3c, 0xb0, 0xe7, 0xff,
+    0xff, 0xff, 0xfc, 0xf2, 0xc3, 0x9f, 0xff, 0xff,
+    0xff, 0xf3, 0xcb, 0xe, 0x0, 0xf0, 0x3, 0xc0,
+    0xf, 0x2c, 0x38, 0xb, 0x80, 0x1e, 0x0, 0x3c,
+    0xb0, 0xe0, 0x3f, 0x40, 0xf4, 0x0, 0xf3, 0xd7,
+    0x80, 0x7f, 0xdb, 0xc0, 0x3, 0xff, 0xfe, 0x0,
+    0x1b, 0xfc, 0x0, 0xf, 0xff, 0xa4, 0x0, 0x2f,
+    0xfd, 0x0, 0x0, 0x0, 0x0, 0x2f, 0xf8, 0xbf,
+    0x40, 0x0, 0x0, 0x2f, 0xfd, 0x0, 0x2f, 0xc0,
+    0x0, 0x0, 0x79, 0x0, 0x0, 0xa, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+5D47 "嵇" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x6, 0x0, 0x3c, 0xb, 0x0, 0x0, 0x1,
@@ -38042,58 +40446,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xd0, 0x0, 0x0, 0x28, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+5D4E "嵎" */
-    0x0, 0x24, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0xf0, 0x1, 0xff, 0xff, 0xff, 0x80, 0x3, 0xc0,
-    0x7, 0xff, 0xff, 0xff, 0x0, 0xf, 0x0, 0x1e,
-    0x3, 0xc0, 0x3c, 0x0, 0x3c, 0x0, 0x78, 0xf,
-    0x0, 0xf0, 0xf0, 0xf3, 0xc1, 0xe0, 0x3c, 0x3,
-    0xc3, 0xc3, 0xcf, 0x7, 0xff, 0xff, 0xff, 0xf,
-    0xf, 0x3c, 0x1f, 0xaf, 0xea, 0xfc, 0x3c, 0x3c,
-    0xf0, 0x78, 0xf, 0x0, 0xf0, 0xf0, 0xf3, 0xc1,
-    0xe0, 0x3c, 0x3, 0xc3, 0xc3, 0xcf, 0x7, 0xff,
-    0xff, 0xff, 0xf, 0xf, 0x3c, 0x1f, 0xff, 0xff,
-    0xfc, 0x3c, 0x3c, 0xf0, 0x0, 0xf, 0x0, 0x0,
-    0xf0, 0xf3, 0xc0, 0x0, 0x3c, 0x0, 0x3, 0xc3,
-    0xcf, 0x0, 0x1, 0xf0, 0x0, 0xf, 0xf, 0x3c,
-    0x3f, 0xff, 0xff, 0xfe, 0x3c, 0x3c, 0xf0, 0xfa,
-    0xbf, 0xaa, 0xf8, 0xf0, 0xf3, 0xc3, 0x80, 0x3c,
-    0x10, 0xe3, 0xc3, 0xcf, 0xe, 0x0, 0xf3, 0xc3,
-    0x8f, 0xf, 0x3c, 0x38, 0x3, 0xcb, 0x4e, 0x3c,
-    0x3d, 0xf0, 0xe1, 0x5f, 0xfe, 0x38, 0xff, 0xff,
-    0xc3, 0xaf, 0xff, 0xfc, 0xe3, 0xfa, 0xaa, 0xe,
-    0x15, 0x0, 0xb7, 0x80, 0x0, 0x0, 0x38, 0x0,
-    0x0, 0x1e, 0x0, 0x0, 0x0, 0xe0, 0x0, 0x2f,
-    0xf4, 0x0, 0x0, 0x3, 0x80, 0x0, 0x7f, 0x40,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
-    /* U+5D56 "嵖" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x2c, 0x0, 0x0, 0x3, 0xc0, 0x0, 0x0, 0xb,
-    0x0, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x2, 0xc0,
-    0x0, 0x0, 0x3d, 0x0, 0x0, 0x0, 0xb0, 0x1,
-    0xff, 0xff, 0xff, 0xfc, 0x5, 0x2c, 0x18, 0x2a,
-    0xaf, 0xfa, 0xaa, 0x3, 0xcb, 0xf, 0x0, 0x7,
-    0xfe, 0x0, 0x0, 0xf2, 0xc3, 0xc0, 0x7, 0xff,
-    0xe0, 0x0, 0x3c, 0xb0, 0xf0, 0x7, 0xdf, 0x7e,
-    0x0, 0xf, 0x2c, 0x3c, 0x7, 0xd3, 0xc3, 0xe0,
-    0x3, 0xcb, 0xf, 0xb, 0xd0, 0xf0, 0x3f, 0x40,
-    0xf2, 0xc3, 0xdf, 0xc0, 0x3c, 0x2, 0xf8, 0x3c,
-    0xb0, 0xf3, 0x40, 0x0, 0x0, 0xf, 0xf, 0x2c,
-    0x3c, 0xf, 0xff, 0xff, 0xf0, 0x3, 0xcb, 0xf,
-    0x3, 0xff, 0xff, 0xfc, 0x0, 0xf2, 0xc3, 0xc0,
-    0xf0, 0x0, 0xb, 0x0, 0x3c, 0xb0, 0xf0, 0x3c,
-    0x0, 0x2, 0xc0, 0xf, 0x2c, 0x3c, 0xf, 0xff,
-    0xff, 0xf0, 0x3, 0xcb, 0xf, 0x3, 0xff, 0xff,
-    0xfc, 0x0, 0xf2, 0xc3, 0xc0, 0xf0, 0x0, 0xb,
-    0x0, 0x3c, 0xb0, 0xf0, 0x3c, 0x0, 0x2, 0xc0,
-    0xf, 0x2d, 0x7c, 0xf, 0xff, 0xff, 0xf0, 0x3,
-    0xff, 0xff, 0x3, 0xff, 0xff, 0xfc, 0x0, 0xff,
-    0xff, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1,
-    0xff, 0xff, 0xff, 0xff, 0x40, 0x0, 0x0, 0x7f,
-    0xff, 0xff, 0xff, 0xd0,
-
     /* U+5D58 "嵘" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1,
     0x80, 0x0, 0x2d, 0x3, 0xc0, 0x0, 0xf, 0x0,
@@ -38120,34 +40472,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x80, 0x3, 0xc0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0xf, 0x0, 0x0,
 
-    /* U+5D5A "嵚" */
-    0x0, 0x0, 0x0, 0x14, 0x0, 0x0, 0x0, 0x1,
-    0x0, 0x0, 0x7c, 0x0, 0x1, 0x0, 0x3, 0xc0,
-    0x0, 0x7c, 0x0, 0x3, 0xc0, 0x3, 0xc0, 0x0,
-    0x7c, 0x0, 0x3, 0xc0, 0x3, 0xc0, 0x0, 0x7c,
-    0x0, 0x3, 0xc0, 0x3, 0xff, 0xff, 0xff, 0xff,
-    0xff, 0xc0, 0x3, 0xff, 0xff, 0xff, 0xff, 0xff,
-    0xc0, 0x0, 0x24, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x78, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x0,
-    0xf4, 0x0, 0x1, 0xe0, 0x0, 0x0, 0x1, 0xfa,
-    0xaa, 0x43, 0xd0, 0x0, 0x0, 0x3, 0xff, 0xff,
-    0x83, 0xff, 0xff, 0xf0, 0xb, 0x95, 0x55, 0xb,
-    0xff, 0xff, 0xf0, 0x1f, 0x0, 0x0, 0xf, 0x0,
-    0x1, 0xf0, 0x7f, 0xaa, 0xa9, 0x2e, 0xf, 0x2,
-    0xd0, 0x37, 0xff, 0xfd, 0x3c, 0xf, 0x3, 0xc0,
-    0x0, 0x2e, 0x0, 0xf8, 0xf, 0x7, 0x80, 0x0,
-    0x2d, 0x0, 0x30, 0xf, 0x0, 0x0, 0x0, 0x2d,
-    0x0, 0x0, 0x1f, 0x0, 0x0, 0x3f, 0xff, 0xff,
-    0x0, 0x2f, 0x80, 0x0, 0x3f, 0xff, 0xff, 0x0,
-    0x3f, 0xc0, 0x0, 0x0, 0x2d, 0x0, 0x0, 0x7f,
-    0xe0, 0x0, 0x0, 0x2d, 0x0, 0x0, 0xf4, 0xf4,
-    0x0, 0x0, 0x2d, 0x1, 0x2, 0xf0, 0xbc, 0x0,
-    0x0, 0x2e, 0x7f, 0xb, 0xc0, 0x3f, 0x40, 0x0,
-    0x3f, 0xfd, 0x3f, 0x40, 0xf, 0xe0, 0x0, 0x7f,
-    0x81, 0xfd, 0x0, 0x2, 0xfd, 0x0, 0x24, 0x1,
-    0xf0, 0x0, 0x0, 0x7c, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x4,
-
     /* U+5D5B "嵛" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x1, 0xf0,
@@ -38353,33 +40677,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x78, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0x80,
     0x0, 0x0, 0x0, 0x0, 0x0, 0x78, 0x0, 0x0,
 
-    /* U+5D85 "嶅" */
-    0x0, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0,
-    0x3, 0xc0, 0x0, 0xf, 0x0, 0x0, 0x0, 0x3,
-    0xc0, 0x0, 0x1e, 0x0, 0x0, 0x1f, 0xff, 0xff,
-    0xf8, 0x3c, 0x0, 0x0, 0x1f, 0xff, 0xff, 0xf4,
-    0x7d, 0x55, 0x54, 0x0, 0x3, 0xc0, 0x0, 0xff,
-    0xff, 0xfc, 0xa, 0xab, 0xfa, 0xa2, 0xfa, 0xab,
-    0xe4, 0xb, 0xff, 0xff, 0xf3, 0xf0, 0xb, 0x40,
-    0x0, 0x3, 0xc0, 0xb, 0xf4, 0xf, 0x0, 0x3f,
-    0xff, 0xff, 0xf8, 0x3c, 0x1e, 0x0, 0x3f, 0xff,
-    0xff, 0xfc, 0x2e, 0x3c, 0x0, 0x0, 0x78, 0x0,
-    0x0, 0xf, 0xf8, 0x0, 0x0, 0xbe, 0xaa, 0x80,
-    0x7, 0xf0, 0x0, 0x0, 0xff, 0xff, 0xc0, 0xb,
-    0xf4, 0x0, 0x2, 0xe0, 0x3, 0xc0, 0x3f, 0xbe,
-    0x0, 0x7, 0xc0, 0x3, 0xc2, 0xfc, 0x1f, 0xd0,
-    0x1f, 0x1, 0xaf, 0x8f, 0xd0, 0x3, 0xfc, 0xbc,
-    0x1, 0xfe, 0xa, 0x0, 0x0, 0x74, 0x20, 0x0,
-    0x0, 0x24, 0x0, 0x0, 0x0, 0x1, 0xe0, 0x0,
-    0x7c, 0x0, 0xf, 0x0, 0x1, 0xe0, 0x0, 0x7c,
-    0x0, 0xf, 0x0, 0x1, 0xe0, 0x0, 0x7c, 0x0,
-    0xf, 0x0, 0x1, 0xe0, 0x0, 0x7c, 0x0, 0xf,
-    0x0, 0x1, 0xe0, 0x0, 0x7c, 0x0, 0xf, 0x0,
-    0x1, 0xe0, 0x0, 0x7c, 0x0, 0xf, 0x0, 0x1,
-    0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x1, 0xff,
-    0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0xf, 0x0,
-
     /* U+5D99 "嶙" */
     0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x6,
     0x0, 0x0, 0x1, 0xe0, 0x0, 0x0, 0x2c, 0x0,
@@ -38407,6 +40704,31 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xd, 0x0, 0x0, 0xe, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+5D9D "嶝" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb,
+    0x0, 0x0, 0x0, 0xa0, 0x0, 0x0, 0x2c, 0x0,
+    0xaa, 0xa7, 0xc1, 0xf0, 0x0, 0xb0, 0x7, 0xff,
+    0xeb, 0x6f, 0x40, 0x2, 0xc0, 0x0, 0x7, 0x8f,
+    0xf0, 0x1, 0x4b, 0x5, 0x20, 0x2c, 0x3e, 0x2,
+    0xf, 0x2c, 0x3d, 0xf0, 0xf0, 0xb8, 0x2d, 0x3c,
+    0xb0, 0xf2, 0xe7, 0x80, 0xf3, 0xe0, 0xf2, 0xc3,
+    0xc3, 0xfc, 0x2, 0xfe, 0x3, 0xcb, 0xf, 0x3,
+    0xe0, 0x3, 0xe0, 0xf, 0x2c, 0x3c, 0x1f, 0xff,
+    0xf7, 0xd0, 0x3c, 0xb0, 0xf1, 0xf2, 0xaa, 0x87,
+    0xd0, 0xf2, 0xc3, 0xdf, 0x40, 0x0, 0x7, 0xd3,
+    0xcb, 0xf, 0xf4, 0x0, 0x0, 0x7, 0xdf, 0x2c,
+    0x3e, 0x6f, 0xff, 0xff, 0xc6, 0x3c, 0xb0, 0xf0,
+    0xbf, 0xff, 0xff, 0x0, 0xf2, 0xc3, 0xc2, 0xd0,
+    0x0, 0x3c, 0x3, 0xcb, 0xf, 0xb, 0x40, 0x0,
+    0xf0, 0xf, 0x2c, 0x3c, 0x2d, 0x0, 0x3, 0xc0,
+    0x3c, 0xb0, 0xf0, 0xbf, 0xff, 0xff, 0x0, 0xf2,
+    0xc3, 0xc2, 0xff, 0xff, 0xfc, 0x3, 0xcb, 0xf,
+    0x0, 0xa0, 0x3, 0x40, 0xf, 0xff, 0xfc, 0x3,
+    0xc0, 0x1e, 0x0, 0x3f, 0xff, 0xe0, 0x7, 0xc0,
+    0xf0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x7, 0x80,
+    0x0, 0x0, 0x0, 0xbf, 0xff, 0xff, 0xff, 0x40,
+    0x0, 0x2, 0xff, 0xff, 0xff, 0xfd, 0x0,
+
     /* U+5DB7 "嶷" */
     0x0, 0x0, 0x0, 0x14, 0x0, 0x0, 0x0, 0x1,
     0x80, 0x0, 0x7c, 0x0, 0xa, 0x0, 0x2, 0xd0,
@@ -38435,31 +40757,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+5DC9 "巉" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1,
-    0x40, 0x0, 0x3c, 0x0, 0x0, 0x0, 0xe, 0x0,
-    0x2, 0xf5, 0x55, 0x40, 0x0, 0x38, 0x0, 0x2f,
-    0xff, 0xfe, 0x0, 0x0, 0xe0, 0x2, 0xe0, 0x2,
-    0xf0, 0x0, 0x3, 0x80, 0x3f, 0xff, 0xff, 0xfe,
-    0x3, 0x4e, 0x2a, 0xfd, 0x55, 0x55, 0x7c, 0xe,
-    0x38, 0xb1, 0xf0, 0x0, 0x1, 0xf0, 0x38, 0xe2,
-    0xc3, 0xff, 0xff, 0xff, 0xc0, 0xe3, 0x8b, 0x4,
-    0x0, 0x10, 0x0, 0x3, 0x8e, 0x2c, 0x3d, 0x54,
-    0xe1, 0xb8, 0xe, 0x38, 0xb0, 0xff, 0xf7, 0xff,
-    0x84, 0x38, 0xe2, 0xc3, 0xc0, 0xf, 0x40, 0x38,
-    0xe3, 0x8b, 0x1f, 0xff, 0x7e, 0xab, 0xd3, 0x8e,
-    0x2c, 0x7a, 0xd0, 0x2b, 0xf9, 0xe, 0x38, 0xb0,
-    0x7, 0xd5, 0x55, 0x0, 0x38, 0xe2, 0xc0, 0x7f,
-    0xff, 0xf8, 0x0, 0xe3, 0x8b, 0xb, 0x80, 0xb,
-    0x80, 0x3, 0x8e, 0x2c, 0xff, 0xff, 0xff, 0xfc,
-    0xe, 0x38, 0xbb, 0xf5, 0x5f, 0x55, 0xf0, 0x38,
-    0xe2, 0xc7, 0x80, 0x38, 0x3, 0xc0, 0xe3, 0x8b,
-    0xf, 0xff, 0xff, 0xff, 0x3, 0x8f, 0x7c, 0x2a,
-    0xaf, 0xab, 0xa8, 0xf, 0xff, 0xf0, 0x0, 0xbf,
-    0x6d, 0x4, 0x2a, 0xa9, 0x40, 0x1f, 0xdd, 0x1e,
-    0x3c, 0x0, 0x0, 0x1b, 0xf4, 0x7e, 0xaa, 0xf0,
-    0x0, 0x3, 0xfd, 0x0, 0xbf, 0xff, 0x0, 0x0,
-    0x5, 0x0, 0x0, 0x0, 0x0,
+    /* U+5DC5 "巅" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x1, 0xf0,
+    0x0, 0x3c, 0x0, 0xf, 0x0, 0x1, 0xf0, 0x0,
+    0x3c, 0x0, 0xf, 0x0, 0x1, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0x0, 0x1, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x0, 0x0,
+    0x1f, 0xff, 0xff, 0xf7, 0xff, 0xff, 0xf4, 0xa,
+    0xab, 0xea, 0xa6, 0xab, 0xea, 0xa0, 0x0, 0x3,
+    0xc0, 0x0, 0x3, 0xc0, 0x0, 0x1, 0x57, 0xd5,
+    0x40, 0x7, 0x80, 0x0, 0x3, 0xff, 0xff, 0xc1,
+    0xaf, 0xea, 0x80, 0x3, 0xc0, 0x3, 0xc3, 0xff,
+    0xff, 0xc0, 0x3, 0xff, 0xff, 0xc3, 0xc0, 0x2,
+    0xc0, 0x3, 0xd5, 0x57, 0xc3, 0xc2, 0xc2, 0xc0,
+    0x3, 0xd5, 0x57, 0xc3, 0xc3, 0xc2, 0xc0, 0x3,
+    0xff, 0xff, 0xc3, 0xc3, 0xc2, 0xc0, 0x3, 0xc0,
+    0x3, 0xc3, 0xc3, 0xc2, 0xc0, 0x3, 0xff, 0xff,
+    0xc3, 0xc3, 0xc2, 0xc0, 0x3, 0xd5, 0x57, 0xc3,
+    0xc3, 0xc2, 0xc0, 0x17, 0xd5, 0x57, 0xd7, 0xc3,
+    0xc2, 0xc0, 0x3f, 0xff, 0xff, 0xf9, 0x4b, 0xb4,
+    0x40, 0x0, 0x20, 0x14, 0x0, 0x1f, 0x7e, 0x0,
+    0x0, 0xf4, 0x3e, 0x0, 0xbd, 0xf, 0xd0, 0xb,
+    0xe0, 0xb, 0xc7, 0xf4, 0x1, 0xf8, 0x3f, 0x40,
+    0x2, 0xef, 0x80, 0x0, 0x3c, 0x28, 0x0, 0x0,
+    0x8, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
 
     /* U+5DCD "巍" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1,
@@ -38487,6 +40811,54 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xe4, 0x0, 0x3d, 0x0, 0x7f, 0xfe, 0x0, 0x0,
     0x0, 0x40, 0x0, 0x0, 0x0,
 
+    /* U+5DDB "巛" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3,
+    0xc0, 0x7, 0x40, 0xb, 0x40, 0x1, 0xf0, 0x3,
+    0xf0, 0x3, 0xe0, 0x0, 0xbc, 0x0, 0xf4, 0x1,
+    0xf0, 0x0, 0x3d, 0x0, 0xbc, 0x0, 0xb8, 0x0,
+    0x2f, 0x0, 0x3e, 0x0, 0x3d, 0x0, 0xf, 0x80,
+    0x1f, 0x0, 0x2f, 0x0, 0x7, 0xc0, 0xf, 0x80,
+    0xf, 0x40, 0x3, 0xe0, 0x7, 0xc0, 0xb, 0xc0,
+    0x1, 0xf0, 0x3, 0xe0, 0x3, 0xd0, 0x0, 0xf8,
+    0x1, 0xf0, 0x2, 0xf0, 0x0, 0xbc, 0x0, 0xf8,
+    0x0, 0xf4, 0x0, 0x3d, 0x0, 0xbc, 0x0, 0xfc,
+    0x0, 0x1f, 0x0, 0x3f, 0x0, 0x3e, 0x0, 0x3,
+    0xe0, 0x3, 0xd0, 0x7, 0xc0, 0x0, 0x7d, 0x0,
+    0xbc, 0x0, 0xf8, 0x0, 0xb, 0xc0, 0xf, 0x80,
+    0x1f, 0x40, 0x0, 0xf4, 0x2, 0xf0, 0x3, 0xf0,
+    0x0, 0x2f, 0x0, 0x3e, 0x0, 0x3d, 0x0, 0x3,
+    0xd0, 0x7, 0xc0, 0xb, 0xc0, 0x0, 0xbc, 0x0,
+    0xf8, 0x0, 0xf8, 0x0, 0xf, 0x40, 0x1f, 0x0,
+    0x2f, 0x0, 0x2, 0xf0, 0x3, 0xe0, 0x3, 0xe0,
+    0x0, 0x3d, 0x0, 0x7c, 0x0, 0xbc, 0x0, 0xb,
+    0xc0, 0xf, 0x80, 0xf, 0x40, 0x0, 0xd0, 0x1,
+    0x80, 0x2, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0,
+
+    /* U+5DDD "川" */
+    0x0, 0x14, 0x0, 0x0, 0x0, 0x5, 0x40, 0xf,
+    0x40, 0x7, 0x80, 0x2, 0xf0, 0x3, 0xd0, 0x1,
+    0xf0, 0x0, 0xbc, 0x0, 0xf4, 0x0, 0x7c, 0x0,
+    0x2f, 0x0, 0x3d, 0x0, 0x1f, 0x0, 0xb, 0xc0,
+    0xf, 0x40, 0x7, 0xc0, 0x2, 0xf0, 0x3, 0xd0,
+    0x1, 0xf0, 0x0, 0xbc, 0x0, 0xf4, 0x0, 0x7c,
+    0x0, 0x2f, 0x0, 0x3d, 0x0, 0x1f, 0x0, 0xb,
+    0xc0, 0xf, 0x40, 0x7, 0xc0, 0x2, 0xf0, 0x3,
+    0xd0, 0x1, 0xf0, 0x0, 0xbc, 0x0, 0xf4, 0x0,
+    0x7c, 0x0, 0x2f, 0x0, 0x3d, 0x0, 0x1f, 0x0,
+    0xb, 0xc0, 0xf, 0x0, 0x7, 0xc0, 0x2, 0xf0,
+    0x3, 0xc0, 0x1, 0xf0, 0x0, 0xbc, 0x1, 0xf0,
+    0x0, 0x7c, 0x0, 0x2f, 0x0, 0x7c, 0x0, 0x1f,
+    0x0, 0xb, 0xc0, 0x2f, 0x0, 0x7, 0xc0, 0x2,
+    0xf0, 0xb, 0x80, 0x1, 0xf0, 0x0, 0xbc, 0x3,
+    0xd0, 0x0, 0x7c, 0x0, 0x2f, 0x1, 0xf0, 0x0,
+    0x1f, 0x0, 0xb, 0xc0, 0xfc, 0x0, 0x7, 0xc0,
+    0x2, 0xf0, 0x7d, 0x0, 0x1, 0xf0, 0x0, 0xbc,
+    0x3f, 0x0, 0x0, 0x7c, 0x0, 0x2f, 0x2f, 0x40,
+    0x0, 0x1f, 0x0, 0xb, 0xdf, 0x80, 0x0, 0x1,
+    0x0, 0x2, 0xf2, 0xc0, 0x0, 0x0, 0x0, 0x0,
+    0xbc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+5DDE "州" */
     0x0, 0x2, 0x80, 0x1, 0x40, 0x2, 0x80, 0x0,
     0xf0, 0x1, 0xf0, 0x1, 0xf0, 0x0, 0x3c, 0x0,
@@ -38566,6 +40938,28 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xe0, 0x0, 0x1b, 0xf0, 0x10, 0x0, 0x0, 0x78,
     0x0, 0x0, 0x0,
 
+    /* U+5DE5 "工" */
+    0x1, 0x55, 0x55, 0x55, 0x55, 0x55, 0x40, 0xf,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x3f, 0xff,
+    0xff, 0xff, 0xff, 0xfc, 0x0, 0x0, 0x0, 0x1f,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7c, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x1, 0xf0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x7, 0xc0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x1f, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x7c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1,
+    0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0xc0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x1f, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x7c, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x1, 0xf0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x7, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x1f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7c,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xf0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x7, 0xc0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x1f, 0x0, 0x0, 0x0, 0x15,
+    0x55, 0x55, 0xbd, 0x55, 0x55, 0x54, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xf3, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xc0,
+
     /* U+5DE6 "左" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -38859,6 +41253,52 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+5DFD "巽" */
+    0x3, 0xff, 0xff, 0x42, 0xff, 0xff, 0x80, 0xf,
+    0xff, 0xfd, 0xf, 0xff, 0xff, 0x0, 0x3c, 0x0,
+    0xb4, 0x3c, 0x0, 0x7c, 0x0, 0xf0, 0x2, 0xd0,
+    0xf0, 0x1, 0xf0, 0x3, 0xea, 0xaf, 0x43, 0xfa,
+    0xaf, 0xc0, 0xf, 0xff, 0xfd, 0xf, 0xff, 0xff,
+    0x0, 0x3c, 0x0, 0x4, 0x3c, 0x0, 0x4, 0x0,
+    0xf0, 0x0, 0x38, 0xf0, 0x0, 0x3c, 0x3, 0xc0,
+    0x2, 0xe3, 0xd0, 0x0, 0xf0, 0xf, 0xff, 0xff,
+    0x4b, 0xff, 0xff, 0xc0, 0xb, 0xff, 0xf4, 0xb,
+    0xff, 0xf8, 0x0, 0x0, 0x28, 0x0, 0x6, 0x40,
+    0x0, 0x0, 0x1, 0xf0, 0x0, 0x2e, 0x0, 0x0,
+    0x2f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x40, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x7c,
+    0x0, 0xb, 0x80, 0x0, 0x0, 0x1, 0xf0, 0x0,
+    0x2e, 0x0, 0x0, 0x0, 0x7, 0xc0, 0x0, 0xb8,
+    0x0, 0x7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0,
+    0x0, 0x4, 0x0, 0x50, 0x0, 0x0, 0x0, 0x1,
+    0xf4, 0x2, 0xf9, 0x0, 0x0, 0x1, 0xbf, 0xd0,
+    0xb, 0xff, 0x80, 0x1, 0xbf, 0xe4, 0x0, 0x0,
+    0xbf, 0xe4, 0xf, 0xf8, 0x0, 0x0, 0x0, 0x1b,
+    0xf0, 0x28, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+
+    /* U+5DFE "巾" */
+    0x0, 0x0, 0x1f, 0x0, 0x0, 0x0, 0x0, 0x1,
+    0xf0, 0x0, 0x0, 0x0, 0x0, 0x1f, 0x0, 0x0,
+    0x0, 0x0, 0x1, 0xf0, 0x0, 0x0, 0x0, 0x0,
+    0x1f, 0x0, 0x0, 0xf, 0xff, 0xff, 0xff, 0xff,
+    0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcf, 0x40,
+    0x2, 0xf0, 0x0, 0x7c, 0xf4, 0x0, 0x1f, 0x0,
+    0x3, 0xcf, 0x40, 0x1, 0xf0, 0x0, 0x3c, 0xf4,
+    0x0, 0x1f, 0x0, 0x3, 0xcf, 0x40, 0x1, 0xf0,
+    0x0, 0x3c, 0xf4, 0x0, 0x1f, 0x0, 0x3, 0xcf,
+    0x40, 0x1, 0xf0, 0x0, 0x3c, 0xf4, 0x0, 0x1f,
+    0x0, 0x3, 0xcf, 0x40, 0x1, 0xf0, 0x0, 0x3c,
+    0xf4, 0x0, 0x1f, 0x0, 0x3, 0xcf, 0x40, 0x1,
+    0xf0, 0x0, 0x3c, 0xf4, 0x0, 0x1f, 0x0, 0x3,
+    0xcf, 0x40, 0x1, 0xf0, 0x0, 0x7c, 0xf4, 0x0,
+    0x1f, 0x0, 0x1f, 0xcf, 0x40, 0x1, 0xf0, 0x7f,
+    0xfc, 0xf4, 0x0, 0x1f, 0x3, 0xfe, 0x0, 0x0,
+    0x1, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x1f, 0x0,
+    0x0, 0x0, 0x0, 0x1, 0xf0, 0x0, 0x0, 0x0,
+    0x0, 0x1f, 0x0, 0x0, 0x0,
+
     /* U+5E01 "币" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x1, 0x6b, 0xc0, 0x0, 0x15, 0xab,
@@ -38936,6 +41376,30 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x7, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x7, 0xc0, 0x0, 0x0,
 
+    /* U+5E05 "帅" */
+    0x0, 0xa, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x3,
+    0xc0, 0x0, 0x3c, 0x0, 0x1, 0x40, 0xf0, 0x0,
+    0xf, 0x0, 0x0, 0xf0, 0x3c, 0x0, 0x3, 0xc0,
+    0x0, 0x3c, 0xf, 0x0, 0x0, 0xf4, 0x0, 0xf,
+    0x3, 0xc0, 0xff, 0xff, 0xff, 0xc3, 0xc0, 0xf0,
+    0x3f, 0xff, 0xff, 0xf0, 0xf0, 0x3c, 0xf, 0x3,
+    0xc0, 0x3c, 0x3c, 0xf, 0x3, 0xc0, 0xf0, 0xf,
+    0xf, 0x3, 0xc0, 0xf0, 0x3c, 0x3, 0xc3, 0xc0,
+    0xf0, 0x3c, 0xf, 0x0, 0xf0, 0xf0, 0x3c, 0xf,
+    0x3, 0xc0, 0x3c, 0x3c, 0xf, 0x3, 0xc0, 0xf0,
+    0xf, 0xf, 0x3, 0xc0, 0xf0, 0x3c, 0x3, 0xc3,
+    0xc0, 0xf0, 0x3c, 0xf, 0x0, 0xf0, 0xf0, 0x3c,
+    0xf, 0x3, 0xc0, 0x3c, 0x3c, 0xf, 0x3, 0xc0,
+    0xf0, 0xf, 0xf, 0x3, 0xc0, 0xf0, 0x3c, 0x3,
+    0xc3, 0xc1, 0xe0, 0x3c, 0xf, 0x0, 0xf0, 0xf0,
+    0xb4, 0xf, 0x3, 0xc0, 0x3c, 0x0, 0x3c, 0x3,
+    0xc0, 0xf0, 0x6f, 0x0, 0x2f, 0x0, 0xf0, 0x3c,
+    0x7f, 0xc0, 0xf, 0x40, 0x38, 0xf, 0xe, 0x80,
+    0xf, 0xc0, 0x0, 0x3, 0xc0, 0x0, 0xf, 0xc0,
+    0x0, 0x0, 0xf0, 0x0, 0xf, 0xd0, 0x0, 0x0,
+    0x3c, 0x0, 0x2, 0xd0, 0x0, 0x0, 0xf, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+5E06 "帆" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xc0,
@@ -39039,6 +41503,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0xf0, 0x0, 0x2, 0xe0, 0x0, 0x0,
     0xf, 0x0, 0x0, 0x2e, 0x0, 0x0,
 
+    /* U+5E10 "帐" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3,
+    0xc0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0xf, 0x0,
+    0x3, 0xc0, 0x0, 0x0, 0x0, 0x3c, 0x0, 0xf,
+    0x0, 0x3, 0xc0, 0x0, 0xf0, 0x0, 0x3c, 0x0,
+    0x7f, 0x0, 0x3, 0xc0, 0x0, 0xf0, 0xb, 0xe0,
+    0xf, 0xff, 0xff, 0x3, 0xc0, 0xfe, 0x0, 0x3f,
+    0xff, 0xfc, 0xf, 0x1f, 0xd0, 0x0, 0xf0, 0xf0,
+    0xf0, 0x3e, 0xfc, 0x0, 0x3, 0xc3, 0xc3, 0xc0,
+    0xf3, 0x40, 0x0, 0xf, 0xf, 0xf, 0x3, 0xc0,
+    0x0, 0x0, 0x3c, 0x3c, 0x3c, 0xf, 0x0, 0x0,
+    0x0, 0xf0, 0xf0, 0xf7, 0xff, 0xff, 0xff, 0xd3,
+    0xc3, 0xc3, 0xdf, 0xff, 0xff, 0xff, 0x4f, 0xf,
+    0xf, 0x7, 0xc2, 0xe0, 0x0, 0x3c, 0x3c, 0x3c,
+    0xf, 0x7, 0x80, 0x0, 0xf0, 0xf0, 0xf0, 0x3c,
+    0xf, 0x0, 0x3, 0xc3, 0xc3, 0xc0, 0xf0, 0x3d,
+    0x0, 0xf, 0xf, 0xf, 0x3, 0xc0, 0x78, 0x0,
+    0x3c, 0x3c, 0x3c, 0xf, 0x0, 0xf0, 0x0, 0xf0,
+    0xfb, 0xe0, 0x3c, 0x2, 0xf0, 0x3, 0xc3, 0xef,
+    0x40, 0xf0, 0x3, 0xe0, 0x0, 0xf, 0x10, 0x3,
+    0xc0, 0x7, 0xd0, 0x0, 0x3c, 0x0, 0xf, 0xb,
+    0xb, 0xd0, 0x0, 0xf0, 0x0, 0x3e, 0xfc, 0xf,
+    0xd0, 0x3, 0xc0, 0x2, 0xff, 0x80, 0xf, 0xc0,
+    0xf, 0x0, 0xb, 0xe0, 0x0, 0xd, 0x0, 0x3c,
+    0x0, 0x18, 0x0, 0x0, 0x0,
+
     /* U+5E11 "帑" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x1e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2d,
@@ -39652,6 +42142,60 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xf8, 0x0, 0xf0, 0x2c, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+5E54 "幔" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2,
+    0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb, 0x0,
+    0x1f, 0xff, 0xff, 0xe0, 0x0, 0x2c, 0x0, 0x7a,
+    0xaa, 0xab, 0x80, 0x0, 0xb0, 0x1, 0xd0, 0x0,
+    0xe, 0x0, 0x57, 0xd5, 0x47, 0xff, 0xff, 0xf8,
+    0x3, 0xff, 0xfe, 0x1e, 0x55, 0x56, 0xe0, 0xf,
+    0xff, 0xf8, 0x74, 0x0, 0x3, 0x80, 0x38, 0xb0,
+    0xe1, 0xea, 0xaa, 0xae, 0x0, 0xe2, 0xc3, 0x87,
+    0xff, 0xff, 0xf8, 0x3, 0x8b, 0xe, 0x0, 0x0,
+    0x0, 0x0, 0xe, 0x2c, 0x38, 0x55, 0x55, 0x55,
+    0x50, 0x38, 0xb0, 0xe7, 0xff, 0xff, 0xff, 0xc0,
+    0xe2, 0xc3, 0x9d, 0xe, 0xe, 0xf, 0x3, 0x8b,
+    0xe, 0x74, 0x38, 0x38, 0x3c, 0xe, 0x2c, 0x39,
+    0xe5, 0xe5, 0xf5, 0xf0, 0x38, 0xb0, 0xe7, 0xff,
+    0xff, 0xff, 0xc0, 0xe2, 0xc3, 0x80, 0x0, 0x0,
+    0x0, 0x3, 0x8b, 0xe, 0x0, 0x0, 0x0, 0x0,
+    0xe, 0x2c, 0x38, 0xff, 0xff, 0xff, 0x80, 0x38,
+    0xb6, 0xe2, 0xba, 0xaa, 0xbe, 0x0, 0xe2, 0xef,
+    0x40, 0xe0, 0x2, 0xf0, 0x0, 0xb, 0x10, 0x2,
+    0xe0, 0x2f, 0x0, 0x0, 0x2c, 0x0, 0x2, 0xfb,
+    0xf0, 0x0, 0x0, 0xb0, 0x0, 0x3, 0xff, 0x0,
+    0x0, 0x2, 0xc0, 0x6, 0xff, 0xbf, 0xe4, 0x0,
+    0xb, 0x3, 0xff, 0xd0, 0x1f, 0xff, 0x40, 0x2c,
+    0xf, 0x90, 0x0, 0x1, 0xbc, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
+    /* U+5E55 "幕" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xf4, 0x0, 0x3d, 0x0, 0x0, 0x0, 0x0,
+    0xf4, 0x0, 0x3d, 0x0, 0x0, 0x3f, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xf8, 0x2a, 0xaa, 0xfa, 0xaa,
+    0xbe, 0xaa, 0xa4, 0x0, 0x0, 0xa4, 0x0, 0x29,
+    0x0, 0x0, 0x0, 0x6a, 0xaa, 0xaa, 0xaa, 0xa8,
+    0x0, 0x0, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x0,
+    0x0, 0xf4, 0x0, 0x0, 0x0, 0x3d, 0x0, 0x0,
+    0xfa, 0xaa, 0xaa, 0xaa, 0xbd, 0x0, 0x0, 0xff,
+    0xff, 0xff, 0xff, 0xfd, 0x0, 0x0, 0xf4, 0x0,
+    0x0, 0x0, 0x3d, 0x0, 0x0, 0xfa, 0xaa, 0xaa,
+    0xaa, 0xbd, 0x0, 0x0, 0xff, 0xff, 0xff, 0xff,
+    0xfd, 0x0, 0x0, 0x0, 0xf, 0x80, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x1f, 0x0, 0x0, 0x0, 0x0,
+    0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf4, 0x2f,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xf4, 0x0, 0x7,
+    0xe0, 0x24, 0x1f, 0x80, 0x0, 0x0, 0x2f, 0x40,
+    0x7c, 0x3, 0xf4, 0x0, 0x1, 0xff, 0xaa, 0xbe,
+    0xaa, 0xff, 0x40, 0x2f, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xf8, 0xbe, 0x3d, 0x0, 0x7c, 0x0, 0xb5,
+    0xfc, 0x20, 0x3d, 0x0, 0x7c, 0x0, 0xb4, 0x4,
+    0x0, 0x3d, 0x0, 0x7c, 0x0, 0xf4, 0x0, 0x0,
+    0x3d, 0x0, 0x7c, 0x2f, 0xf0, 0x0, 0x0, 0x2c,
+    0x0, 0x7c, 0x2f, 0x90, 0x0, 0x0, 0x0, 0x0,
+    0x7c, 0x0, 0x0, 0x0,
+
     /* U+5E5B "幛" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3,
     0xc0, 0x0, 0x3, 0xe0, 0x0, 0x0, 0xf, 0x0,
@@ -40337,6 +42881,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xc0, 0x0, 0x0, 0x2f, 0x1, 0xf8, 0x1, 0x0,
     0x0, 0x0, 0x14, 0x0, 0x0,
 
+    /* U+5E96 "庖" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xb, 0x40, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xb, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x7, 0xc0, 0x0, 0x0, 0x0, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xfd, 0x0, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xfd, 0x0, 0xf0, 0x2, 0x40, 0x0, 0x0,
+    0x0, 0x0, 0xf0, 0x3, 0xc0, 0x0, 0x0, 0x0,
+    0x0, 0xf0, 0xb, 0x80, 0x0, 0x0, 0x0, 0x0,
+    0xf0, 0x1f, 0xff, 0xff, 0xff, 0xc0, 0x0, 0xf0,
+    0x3f, 0xff, 0xff, 0xff, 0xc0, 0x0, 0xf0, 0xbc,
+    0x0, 0x0, 0x3, 0xc0, 0x0, 0xf0, 0xf4, 0x0,
+    0x0, 0x3, 0xc0, 0x0, 0xf7, 0xff, 0xff, 0xfc,
+    0x3, 0xc0, 0x0, 0xff, 0xbf, 0xff, 0xfc, 0x3,
+    0xc0, 0x0, 0xfb, 0x3c, 0x0, 0x3c, 0x3, 0xc0,
+    0x0, 0xf0, 0x3c, 0x0, 0x3c, 0x7, 0xc0, 0x0,
+    0xf0, 0x3c, 0x0, 0x3c, 0x7, 0xc0, 0x1, 0xf0,
+    0x3e, 0xaa, 0xbc, 0x7, 0xc0, 0x1, 0xe0, 0x3f,
+    0xff, 0xfc, 0xb, 0xc0, 0x2, 0xe0, 0x3c, 0x0,
+    0x2, 0xff, 0x80, 0x3, 0xd0, 0x3c, 0x0, 0x3,
+    0xfe, 0x1d, 0x7, 0xc0, 0x3c, 0x0, 0x0, 0x0,
+    0x2d, 0xb, 0x80, 0x3c, 0x0, 0x0, 0x0, 0x3d,
+    0xf, 0x40, 0x3e, 0x40, 0x0, 0x0, 0xbc, 0x2f,
+    0x0, 0x2f, 0xff, 0xff, 0xff, 0xf8, 0x3d, 0x0,
+    0x6, 0xff, 0xff, 0xff, 0x90, 0x8, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+5E97 "店" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x3d, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -40752,6 +43323,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xf8, 0x0, 0x1, 0xd0, 0x10, 0x0, 0x2, 0x94,
     0x0, 0x0, 0x0,
 
+    /* U+5EB8 "庸" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x2e, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x1f, 0x0, 0x0, 0x0, 0x2, 0xaa, 0xaa,
+    0xaf, 0xaa, 0xaa, 0xa4, 0x3, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xf8, 0x3, 0xc0, 0x0, 0x3, 0x80,
+    0x0, 0x0, 0x3, 0xc0, 0x0, 0x7, 0xc0, 0x0,
+    0x0, 0x3, 0xcb, 0xff, 0xff, 0xff, 0xff, 0x0,
+    0x3, 0xc6, 0xaa, 0xab, 0xea, 0xaf, 0x0, 0x3,
+    0xc0, 0x0, 0x3, 0xc0, 0xb, 0x0, 0x3, 0xef,
+    0xff, 0xff, 0xff, 0xff, 0xfd, 0x3, 0xda, 0xaa,
+    0xab, 0xea, 0xaf, 0xa8, 0x3, 0xc0, 0x0, 0x3,
+    0xc0, 0xb, 0x0, 0x3, 0xcb, 0xff, 0xff, 0xff,
+    0xff, 0x0, 0x3, 0xc6, 0xaa, 0xab, 0xea, 0xaa,
+    0x0, 0x3, 0xc0, 0x0, 0x3, 0xc0, 0x0, 0x0,
+    0x3, 0xc3, 0xff, 0xff, 0xff, 0xff, 0x0, 0x7,
+    0x83, 0xea, 0xab, 0xea, 0xaf, 0x0, 0x7, 0x83,
+    0xc0, 0x3, 0xc0, 0xf, 0x0, 0xb, 0x43, 0xea,
+    0xab, 0xea, 0xaf, 0x0, 0xb, 0x43, 0xff, 0xff,
+    0xff, 0xff, 0x0, 0xf, 0x3, 0xc0, 0x3, 0xc0,
+    0xf, 0x0, 0x1f, 0x3, 0xea, 0xab, 0xea, 0xaf,
+    0x0, 0x2e, 0x3, 0xff, 0xff, 0xff, 0xff, 0x0,
+    0x3c, 0x3, 0xc0, 0x3, 0xc0, 0xf, 0x0, 0x7c,
+    0x3, 0xc0, 0x3, 0xc0, 0x6f, 0x0, 0xb4, 0x3,
+    0xc0, 0x3, 0xc0, 0xfd, 0x0, 0x10, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+5EB9 "庹" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x2, 0xf0, 0x0, 0x0, 0x0, 0x0,
@@ -40864,33 +43462,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x80, 0x10, 0x0, 0x0, 0xf0, 0x0, 0x8, 0x0,
     0x0, 0x0, 0x3, 0xc0, 0x0,
 
-    /* U+5ECB "廋" */
-    0x0, 0x0, 0x0, 0x1, 0x40, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x3, 0xd0, 0x0, 0x0, 0x0, 0xbf, 0xff,
+    /* U+5ED1 "廑" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x7, 0xc0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x3, 0xc0, 0x0, 0x0, 0x0, 0xff, 0xff,
     0xff, 0xff, 0xff, 0xfd, 0x0, 0xff, 0xff, 0xff,
-    0xff, 0xff, 0xfd, 0x0, 0xf4, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0xf4, 0x0, 0x0, 0xb0, 0x0,
-    0x0, 0x0, 0xf4, 0x16, 0xfc, 0xf2, 0xaa, 0x80,
-    0x0, 0xf4, 0x7f, 0xa4, 0xf3, 0xff, 0xc0, 0x0,
-    0xf4, 0x78, 0x0, 0xf0, 0x3, 0xc0, 0x0, 0xf4,
-    0x78, 0x0, 0xf0, 0x3, 0xc0, 0x0, 0xf4, 0x7e,
-    0xa8, 0xf2, 0xab, 0xc0, 0x0, 0xf4, 0x7f, 0xfc,
-    0xf3, 0xff, 0xc0, 0x0, 0xf4, 0x78, 0x0, 0xf0,
-    0x3, 0xc0, 0x0, 0xf0, 0x78, 0x0, 0xf0, 0x3,
-    0xc0, 0x0, 0xf0, 0x7f, 0xff, 0xff, 0xff, 0xc0,
-    0x0, 0xf0, 0x6a, 0xaa, 0xfa, 0xaa, 0x80, 0x0,
-    0xf0, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0xf0,
-    0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0xf0, 0xff,
-    0xff, 0xff, 0xff, 0x0, 0x1, 0xe0, 0xab, 0xea,
-    0xaa, 0xbf, 0x0, 0x2, 0xd0, 0x7, 0xe0, 0x0,
-    0xbd, 0x0, 0x3, 0xc0, 0x1, 0xfd, 0x2, 0xf4,
-    0x0, 0x7, 0xc0, 0x0, 0x2f, 0xef, 0xc0, 0x0,
-    0xf, 0x80, 0x0, 0xb, 0xff, 0x0, 0x0, 0x1f,
-    0x0, 0x16, 0xff, 0xff, 0xf9, 0x40, 0x3e, 0xf,
-    0xff, 0xf8, 0x2, 0xff, 0xfd, 0x1c, 0xb, 0xe5,
-    0x0, 0x0, 0x6, 0xfd, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0,
+    0xff, 0xff, 0xfe, 0x0, 0xf0, 0x1, 0x40, 0x0,
+    0x10, 0x0, 0x0, 0xf0, 0x3, 0xc0, 0x0, 0x78,
+    0x0, 0x0, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xfd,
+    0x0, 0xf6, 0xab, 0xea, 0xaa, 0xfe, 0xa8, 0x0,
+    0xf0, 0x3, 0xc0, 0x0, 0x74, 0x0, 0x0, 0xf0,
+    0x3, 0xff, 0xff, 0xf4, 0x0, 0x0, 0xf0, 0x2,
+    0xaa, 0xfa, 0xa4, 0x0, 0x0, 0xf0, 0x0, 0x1,
+    0xe0, 0x0, 0x0, 0x0, 0xf0, 0xff, 0xff, 0xff,
+    0xff, 0xc0, 0x0, 0xf0, 0xfa, 0xaa, 0xfa, 0xab,
+    0xc0, 0x0, 0xf0, 0xf0, 0x1, 0xe0, 0x2, 0xc0,
+    0x0, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x0,
+    0xf0, 0x6a, 0xaa, 0xfa, 0xaa, 0x80, 0x1, 0xf0,
+    0x0, 0x1, 0xe0, 0x0, 0x0, 0x1, 0xe2, 0xff,
+    0xff, 0xff, 0xff, 0xf0, 0x2, 0xe1, 0xaa, 0xaa,
+    0xfa, 0xaa, 0xa0, 0x3, 0xd0, 0x0, 0x1, 0xe0,
+    0x0, 0x0, 0x7, 0xc0, 0xff, 0xff, 0xff, 0xff,
+    0xd0, 0xb, 0x80, 0xaa, 0xaa, 0xfa, 0xaa, 0x90,
+    0xf, 0x40, 0x0, 0x1, 0xe0, 0x0, 0x0, 0x2f,
+    0xf, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3d, 0xa,
+    0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x8, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
 
     /* U+5ED2 "廒" */
     0x0, 0x0, 0x0, 0x6, 0x0, 0x0, 0x0, 0x0,
@@ -41005,34 +43602,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xff, 0xff, 0xff, 0xe0, 0x70, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+5EE3 "廣" */
-    0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0xf, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0xb, 0x40, 0x0, 0x0, 0x0, 0xff, 0xff,
-    0xff, 0xff, 0xff, 0xf8, 0x1, 0xff, 0xff, 0xff,
-    0xff, 0xff, 0xfc, 0x1, 0xf0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x1, 0xf0, 0x1, 0xd0, 0x2, 0xc0,
-    0x0, 0x1, 0xf0, 0x2, 0xe0, 0x3, 0xd0, 0x0,
-    0x1, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x1,
-    0xf1, 0xab, 0xfa, 0xab, 0xea, 0xa0, 0x1, 0xf0,
-    0x2, 0xe0, 0x3, 0xd0, 0x0, 0x1, 0xf6, 0xab,
-    0xfa, 0xab, 0xea, 0xa8, 0x1, 0xfb, 0xff, 0xff,
-    0xff, 0xff, 0xfc, 0x1, 0xf0, 0x0, 0x2, 0xd0,
-    0x0, 0x0, 0x1, 0xf0, 0x0, 0x2, 0xd0, 0x0,
-    0x0, 0x1, 0xf0, 0xbf, 0xff, 0xff, 0xff, 0x40,
-    0x1, 0xf0, 0xba, 0xab, 0xea, 0xaf, 0x40, 0x1,
-    0xe0, 0xb4, 0x2, 0xd0, 0xb, 0x40, 0x2, 0xe0,
-    0xbf, 0xff, 0xff, 0xff, 0x40, 0x2, 0xe0, 0xbe,
-    0xab, 0xfa, 0xaf, 0x40, 0x3, 0xd0, 0xb4, 0x2,
-    0xd0, 0xb, 0x40, 0x3, 0xc0, 0xba, 0xab, 0xfa,
-    0xaf, 0x40, 0x7, 0xc0, 0xbf, 0xff, 0xff, 0xff,
-    0x40, 0xf, 0x40, 0x0, 0x10, 0x5, 0x0, 0x0,
-    0x1f, 0x0, 0x6, 0xf4, 0xf, 0xf4, 0x0, 0x3e,
-    0x1, 0xbf, 0xe0, 0x1, 0xff, 0xd0, 0x7c, 0x1f,
-    0xfd, 0x0, 0x0, 0xb, 0xfc, 0x78, 0xf, 0x40,
-    0x0, 0x0, 0x0, 0x68, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0,
-
     /* U+5EE8 "廨" */
     0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x2, 0xf0, 0x0, 0x0, 0x0, 0x0,
@@ -41090,6 +43659,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x1a, 0x40, 0x0, 0x8, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+5EF4 "廴" */
+    0x5, 0x55, 0x50, 0x0, 0x0, 0x0, 0x0, 0x2f,
+    0xff, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x2f, 0xff,
+    0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0xd0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x1f, 0x80, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x7e, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0xf8, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x3, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xf, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2f,
+    0xff, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x2f, 0xff,
+    0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xf0,
+    0x0, 0x0, 0x0, 0x0, 0x1c, 0x2, 0xe0, 0x0,
+    0x0, 0x0, 0x0, 0x2d, 0x3, 0xd0, 0x0, 0x0,
+    0x0, 0x0, 0x1e, 0x3, 0xc0, 0x0, 0x0, 0x0,
+    0x0, 0xf, 0x7, 0xc0, 0x0, 0x0, 0x0, 0x0,
+    0xb, 0x8f, 0x40, 0x0, 0x0, 0x0, 0x0, 0x3,
+    0xef, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0xfe,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xfc, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x1, 0xff, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x3, 0xff, 0xe0, 0x0, 0x0,
+    0x0, 0x0, 0xf, 0xc3, 0xff, 0x95, 0x0, 0x0,
+    0x0, 0x3f, 0x0, 0x7f, 0xff, 0xff, 0xff, 0xfd,
+    0xbd, 0x0, 0x1, 0xbf, 0xff, 0xff, 0xfc, 0x34,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+5EF6 "延" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0,
     0x0, 0x0, 0x0, 0x1, 0x6b, 0xfe, 0x0, 0x7f,
@@ -41174,6 +43769,31 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+5EFE "廾" */
+    0x0, 0x0, 0x50, 0x0, 0xa, 0x0, 0x0, 0x0,
+    0x7, 0xc0, 0x0, 0x3d, 0x0, 0x0, 0x0, 0x1f,
+    0x0, 0x0, 0xf4, 0x0, 0x0, 0x0, 0x7c, 0x0,
+    0x3, 0xd0, 0x0, 0x0, 0x1, 0xf0, 0x0, 0xf,
+    0x40, 0x0, 0x0, 0x7, 0xc0, 0x0, 0x3d, 0x0,
+    0x0, 0x0, 0x1f, 0x0, 0x0, 0xf4, 0x0, 0x0,
+    0x0, 0x7c, 0x0, 0x3, 0xd0, 0x0, 0x0, 0x1,
+    0xf0, 0x0, 0xf, 0x40, 0x0, 0x0, 0x7, 0xc0,
+    0x0, 0x3d, 0x0, 0x0, 0x0, 0x1f, 0x0, 0x0,
+    0xf4, 0x0, 0xf, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc,
+    0x55, 0x5b, 0xd5, 0x55, 0x7e, 0x55, 0x50, 0x0,
+    0x1f, 0x0, 0x0, 0xf4, 0x0, 0x0, 0x0, 0xbc,
+    0x0, 0x3, 0xd0, 0x0, 0x0, 0x2, 0xf0, 0x0,
+    0xf, 0x40, 0x0, 0x0, 0xf, 0x80, 0x0, 0x3d,
+    0x0, 0x0, 0x0, 0x3d, 0x0, 0x0, 0xf4, 0x0,
+    0x0, 0x2, 0xf0, 0x0, 0x3, 0xd0, 0x0, 0x0,
+    0x1f, 0x80, 0x0, 0xf, 0x40, 0x0, 0x0, 0xfc,
+    0x0, 0x0, 0x3d, 0x0, 0x0, 0xf, 0xd0, 0x0,
+    0x0, 0xf4, 0x0, 0x0, 0xfe, 0x0, 0x0, 0x3,
+    0xd0, 0x0, 0xf, 0xe0, 0x0, 0x0, 0xf, 0x40,
+    0x0, 0x7d, 0x0, 0x0, 0x0, 0x3d, 0x0, 0x0,
+    0x50, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+5EFF "廿" */
     0x0, 0xf, 0x40, 0x0, 0x3, 0xc0, 0x0, 0x0,
     0xf, 0x40, 0x0, 0x3, 0xc0, 0x0, 0x0, 0xf,
@@ -41332,35 +43952,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x7f, 0x40, 0x0, 0x0, 0x3c, 0x0, 0x0,
     0x50, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
 
-    /* U+5F07 "弇" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0xf, 0xd0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x1f, 0xfd, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x2f, 0x87, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x7f,
-    0x80, 0x7f, 0x40, 0x0, 0x0, 0x1, 0xff, 0x40,
-    0x3, 0xfd, 0x0, 0x0, 0x2, 0xfe, 0x0, 0x0,
-    0x1f, 0xf4, 0x0, 0x1f, 0xfa, 0xff, 0xff, 0xfe,
-    0x7f, 0xe0, 0x3f, 0xe0, 0x7f, 0xff, 0xff, 0x41,
-    0xff, 0xa, 0x40, 0x0, 0x0, 0x0, 0x0, 0x2,
-    0x80, 0x0, 0xaa, 0xaa, 0xaa, 0xaa, 0x90, 0x0,
-    0x0, 0x3f, 0xff, 0xff, 0xff, 0xf4, 0x0, 0x0,
-    0xf, 0x0, 0x0, 0x0, 0x2d, 0x0, 0x0, 0x3,
-    0xc0, 0x0, 0x0, 0xb, 0x40, 0x0, 0x0, 0xf0,
-    0x0, 0x0, 0x2, 0xd0, 0x0, 0x0, 0x3f, 0xff,
-    0xff, 0xff, 0xf4, 0x0, 0x0, 0xf, 0xff, 0xff,
-    0xff, 0xfd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x3, 0xc0, 0x0, 0x78,
-    0x0, 0x0, 0x0, 0x0, 0xf0, 0x0, 0x1e, 0x0,
-    0x0, 0xf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc,
-    0x3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0,
-    0x0, 0xb, 0x80, 0x0, 0x78, 0x0, 0x0, 0x0,
-    0x3, 0xd0, 0x0, 0x1e, 0x0, 0x0, 0x0, 0x3,
-    0xf0, 0x0, 0x7, 0x80, 0x0, 0x0, 0x7, 0xf4,
-    0x0, 0x1, 0xe0, 0x0, 0x0, 0x1f, 0xf4, 0x0,
-    0x0, 0x78, 0x0, 0x0, 0xb, 0xe0, 0x0, 0x0,
-    0x1e, 0x0, 0x0, 0x0, 0x80, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0,
-
     /* U+5F08 "弈" */
     0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0xf4, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -41768,6 +44359,30 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x3, 0xff, 0xe4, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+5F2A "弪" */
+    0x15, 0x55, 0x40, 0x0, 0x0, 0x0, 0x1, 0xff,
+    0xfe, 0x1f, 0xff, 0xff, 0xf0, 0x7, 0xff, 0xf8,
+    0x7f, 0xff, 0xff, 0xc0, 0x0, 0x1, 0xe0, 0x0,
+    0x0, 0x7e, 0x0, 0x0, 0x7, 0x80, 0x0, 0x3,
+    0xf0, 0x0, 0x0, 0x1e, 0x0, 0x0, 0x3f, 0x0,
+    0x0, 0x0, 0x78, 0x0, 0x7, 0xf0, 0x0, 0xb,
+    0xff, 0xe0, 0x0, 0xbf, 0xd0, 0x0, 0x2f, 0xff,
+    0x80, 0x1f, 0xff, 0xf0, 0x0, 0xf4, 0x0, 0x2,
+    0xfd, 0xb, 0xf8, 0x3, 0xc0, 0x0, 0xbf, 0xc0,
+    0x2, 0xfc, 0xf, 0x0, 0xf, 0xf4, 0x0, 0x1,
+    0xfc, 0x3c, 0x0, 0x1d, 0x0, 0x0, 0x0, 0xe0,
+    0xfa, 0xa8, 0x0, 0x0, 0x0, 0x0, 0x3, 0xff,
+    0xf4, 0x7f, 0xff, 0xff, 0xf0, 0x5, 0x57, 0xd1,
+    0xff, 0xff, 0xff, 0xc0, 0x0, 0xf, 0x41, 0x55,
+    0xf9, 0x55, 0x0, 0x0, 0x3d, 0x0, 0x3, 0xd0,
+    0x0, 0x0, 0x0, 0xf0, 0x0, 0xf, 0x40, 0x0,
+    0x0, 0x3, 0xc0, 0x0, 0x3d, 0x0, 0x0, 0x0,
+    0xf, 0x0, 0x0, 0xf4, 0x0, 0x0, 0x0, 0x3c,
+    0x0, 0x3, 0xd0, 0x0, 0x0, 0x17, 0xf3, 0xff,
+    0xff, 0xff, 0xfe, 0x7, 0xff, 0x8f, 0xff, 0xff,
+    0xff, 0xfc, 0xf, 0xe4, 0x15, 0x55, 0x55, 0x55,
+    0x50, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+5F2D "弭" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f,
     0xff, 0xc3, 0xff, 0xff, 0xff, 0xfc, 0x3f, 0xff,
@@ -41948,6 +44563,27 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xf8, 0x38, 0x0, 0x0, 0x2c, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+5F50 "彐" */
+    0x5, 0x55, 0x55, 0x55, 0x55, 0x54, 0x1f, 0xff,
+    0xff, 0xff, 0xff, 0xfd, 0x1f, 0xff, 0xff, 0xff,
+    0xff, 0xfd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3d,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x3d, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x3d, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x3d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3d,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x3d, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x3d, 0xb, 0xff, 0xff, 0xff,
+    0xff, 0xfd, 0xb, 0xff, 0xff, 0xff, 0xff, 0xfd,
+    0x5, 0x55, 0x55, 0x55, 0x55, 0xbd, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x3d, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x3d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3d,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x3d, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x3d, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x3d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3d,
+    0x15, 0x55, 0x55, 0x55, 0x55, 0x7d, 0x3f, 0xff,
+    0xff, 0xff, 0xff, 0xfd, 0x3f, 0xff, 0xff, 0xff,
+    0xff, 0xfd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3d,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x3d,
+
     /* U+5F52 "归" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0xf4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3d, 0x0,
@@ -42098,6 +44734,53 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xf0, 0xe, 0x7, 0xe0, 0x0, 0xd3, 0xff, 0x40,
     0x0, 0x9, 0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+5F5D "彝" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x2d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf9,
+    0x55, 0x55, 0x55, 0x0, 0x0, 0x3, 0xff, 0xff,
+    0xff, 0xfd, 0x0, 0x0, 0x1f, 0x0, 0x0, 0x0,
+    0xf4, 0x0, 0x0, 0xbf, 0xff, 0xff, 0xff, 0xc0,
+    0x0, 0x1, 0x55, 0x55, 0x55, 0x6f, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x7c, 0x0, 0x3f, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xf8, 0xaa, 0xaa, 0xaa,
+    0xaa, 0xba, 0xaa, 0x90, 0x50, 0x60, 0x10, 0x7,
+    0xc0, 0x60, 0x2, 0xd2, 0xd1, 0xd0, 0xb8, 0xb,
+    0xc0, 0x2, 0xcb, 0x5d, 0x1f, 0xff, 0xf4, 0x0,
+    0x2, 0x2d, 0x50, 0x15, 0x7e, 0x18, 0x2, 0xff,
+    0xff, 0xfc, 0xb, 0xd0, 0x78, 0x6, 0xab, 0xea,
+    0x96, 0xff, 0xff, 0xf8, 0x0, 0x7f, 0x74, 0x1a,
+    0xab, 0x95, 0x74, 0xb, 0xed, 0xb8, 0x7, 0x1d,
+    0x38, 0x41, 0xf8, 0xb4, 0x74, 0xbc, 0x74, 0xbd,
+    0xf, 0x42, 0xd0, 0x5f, 0x81, 0xd0, 0x3e, 0x10,
+    0x0, 0x90, 0x20, 0x5, 0x0, 0x20, 0x0, 0x3,
+    0xc0, 0x0, 0x3c, 0x0, 0x3, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xcf, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0x0, 0x2, 0xe0, 0x0, 0xf, 0x0,
+    0x0, 0x0, 0x1f, 0x40, 0x0, 0x3c, 0x0, 0x0,
+    0x7, 0xf4, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x3e,
+    0x0, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
+    /* U+5F61 "彡" */
+    0x0, 0x0, 0x0, 0x1, 0x40, 0x0, 0x0, 0x0,
+    0x2, 0xf0, 0x0, 0x0, 0x0, 0x7, 0xf8, 0x0,
+    0x0, 0x0, 0x1f, 0xf4, 0x0, 0x0, 0x0, 0x7f,
+    0xd0, 0x0, 0x0, 0x2, 0xff, 0x80, 0x0, 0x0,
+    0x1b, 0xfe, 0x0, 0x0, 0x0, 0x7f, 0xf4, 0x0,
+    0x0, 0x0, 0x1f, 0xd0, 0x0, 0x1, 0xd0, 0x1,
+    0x0, 0x0, 0x2, 0xfc, 0x0, 0x0, 0x0, 0x7,
+    0xf8, 0x0, 0x0, 0x0, 0xf, 0xf4, 0x0, 0x0,
+    0x0, 0x2f, 0xe0, 0x0, 0x0, 0x1, 0xff, 0xc0,
+    0x0, 0x0, 0x7, 0xff, 0x40, 0x0, 0x0, 0x2f,
+    0xfd, 0x0, 0x0, 0x14, 0xb, 0xe4, 0x0, 0x0,
+    0x2f, 0x40, 0x40, 0x0, 0x0, 0x7f, 0x80, 0x0,
+    0x0, 0x0, 0xbf, 0x80, 0x0, 0x0, 0x1, 0xff,
+    0x0, 0x0, 0x0, 0x7, 0xfd, 0x0, 0x0, 0x0,
+    0x1f, 0xf8, 0x0, 0x0, 0x0, 0xbf, 0xe0, 0x0,
+    0x0, 0x7, 0xff, 0x80, 0x0, 0x0, 0x7f, 0xfe,
+    0x0, 0x0, 0x0, 0xf, 0xe4, 0x0, 0x0, 0x0,
+    0x2, 0x40, 0x0, 0x0, 0x0, 0x0,
+
     /* U+5F62 "形" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x2f, 0x0, 0xff, 0xff,
@@ -42175,32 +44858,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xc1, 0xff, 0xe4, 0x0, 0x0, 0x0, 0x5, 0x2,
     0x40, 0x0, 0x0, 0x0, 0x0,
 
-    /* U+5F67 "彧" */
-    0x0, 0x0, 0x0, 0x0, 0x40, 0x40, 0x0, 0x0,
-    0x0, 0x0, 0xb, 0x87, 0xc0, 0x0, 0x0, 0x0,
-    0x0, 0x2e, 0xb, 0xc0, 0x0, 0x0, 0x0, 0x0,
-    0x78, 0xf, 0xc0, 0x0, 0x0, 0x0, 0x1, 0xe0,
-    0xe, 0x0, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff,
-    0xe3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc5,
-    0x55, 0x55, 0x55, 0x7d, 0x55, 0x55, 0x0, 0x0,
-    0x0, 0x0, 0xf0, 0x24, 0x0, 0x0, 0x0, 0x0,
-    0x3, 0xc2, 0xf0, 0x0, 0x0, 0x0, 0x0, 0xf,
-    0x3f, 0x0, 0x0, 0xff, 0xff, 0xd0, 0x3f, 0xf0,
-    0x0, 0x3, 0xff, 0xff, 0x40, 0xfe, 0x1, 0x0,
-    0xf, 0x0, 0x3d, 0xf, 0xe0, 0x3e, 0x0, 0x3c,
-    0x0, 0xf6, 0xff, 0x83, 0xf0, 0x0, 0xf0, 0x3,
-    0xdb, 0x6e, 0x7e, 0x0, 0x3, 0xc0, 0xf, 0x40,
-    0x7f, 0xd0, 0x20, 0xf, 0xff, 0xfd, 0x2, 0xfc,
-    0x3, 0xd0, 0x3f, 0xff, 0xf4, 0x7f, 0xd0, 0x3e,
-    0x0, 0x55, 0x55, 0x4b, 0xff, 0x47, 0xe0, 0x0,
-    0x0, 0x0, 0x1e, 0x2f, 0xbe, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x7f, 0xd2, 0xc0, 0x0, 0x16, 0xf8,
-    0x2, 0xfc, 0xb, 0x46, 0xbf, 0xff, 0xe0, 0x7f,
-    0xf0, 0x3c, 0x3f, 0xff, 0xe5, 0x1f, 0xf7, 0xd1,
-    0xf0, 0xf9, 0x40, 0x3, 0xfe, 0xb, 0xef, 0x80,
-    0x0, 0x0, 0x3f, 0x80, 0xf, 0xfc, 0x0, 0x0,
-    0x0, 0x60, 0x0, 0xb, 0xd0,
-
     /* U+5F69 "彩" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0,
     0x0, 0x56, 0xbf, 0x40, 0x1, 0xf0, 0xf, 0xff,
@@ -42758,6 +45415,35 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0xf4, 0x0, 0x0, 0x0, 0x3c, 0x0,
     0x0, 0xf4, 0x0, 0x0,
 
+    /* U+5F8C "後" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x20, 0x0, 0x1c, 0x0, 0x0, 0x0, 0x0,
+    0x2e, 0x0, 0xf, 0x40, 0x0, 0x0, 0x0, 0x1f,
+    0x0, 0xf, 0x80, 0xd, 0x0, 0x0, 0x1f, 0x40,
+    0xf, 0x80, 0xf, 0x80, 0x0, 0x1f, 0x80, 0x1f,
+    0x80, 0x1f, 0x80, 0x0, 0x1f, 0x80, 0x2f, 0x80,
+    0x1f, 0x80, 0x0, 0x1f, 0x80, 0x3f, 0xff, 0xff,
+    0x40, 0x0, 0x1f, 0x80, 0xf, 0xaa, 0xbf, 0x40,
+    0x0, 0x3, 0x80, 0x60, 0x0, 0x7f, 0x3, 0xc0,
+    0x0, 0x0, 0x3c, 0x0, 0xbe, 0x0, 0x7c, 0x0,
+    0x0, 0x3e, 0x1, 0xfd, 0x0, 0xb, 0x80, 0x0,
+    0x2f, 0xb, 0xfe, 0xbf, 0xff, 0xf4, 0x0, 0x1f,
+    0x7, 0xff, 0xff, 0xff, 0xff, 0x0, 0xf, 0xc0,
+    0x54, 0x90, 0x0, 0x2, 0xd0, 0xf, 0xf0, 0x0,
+    0x7c, 0x0, 0x0, 0x10, 0xf, 0xfc, 0x0, 0x3d,
+    0x0, 0x0, 0x0, 0xf, 0xcf, 0x0, 0x3f, 0xff,
+    0xff, 0xf0, 0x2, 0xc3, 0xc0, 0x3f, 0xea, 0xaa,
+    0xfc, 0x0, 0x0, 0xf0, 0x3f, 0xf0, 0x0, 0x7c,
+    0x0, 0x0, 0x3c, 0x3f, 0x7e, 0x0, 0x3d, 0x0,
+    0x0, 0xf, 0x3f, 0x3, 0xf0, 0x7e, 0x0, 0x0,
+    0x3, 0xc6, 0x0, 0x3f, 0xbd, 0x0, 0x0, 0x0,
+    0xf0, 0x0, 0x3, 0xfe, 0x0, 0x0, 0x0, 0x3c,
+    0x0, 0x1f, 0xff, 0xf8, 0x0, 0x0, 0xf, 0x6,
+    0xff, 0xd0, 0x6f, 0xf9, 0x0, 0x3, 0xcf, 0xfe,
+    0x40, 0x0, 0xbf, 0xf0, 0x0, 0xf2, 0xe4, 0x0,
+    0x0, 0x0, 0xb8, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+5F90 "徐" */
     0x0, 0x0, 0x40, 0x0, 0x29, 0x0, 0x0, 0x0,
     0x0, 0x7c, 0x0, 0x2f, 0xc0, 0x0, 0x0, 0x0,
@@ -43175,6 +45861,36 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x80, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+5FBD "徽" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x40, 0x7, 0x40, 0x2, 0xd0, 0x0, 0x0,
+    0x1f, 0x20, 0x74, 0x50, 0x3c, 0x0, 0x0, 0x3,
+    0xd7, 0x47, 0x4b, 0x43, 0xc0, 0x0, 0x0, 0xb8,
+    0x74, 0x74, 0xb4, 0x78, 0x0, 0x0, 0x1f, 0x7,
+    0x47, 0x4b, 0x4b, 0x95, 0x50, 0x3, 0xd0, 0x7e,
+    0xfe, 0xf4, 0xff, 0xff, 0x0, 0xf8, 0x7, 0xff,
+    0xff, 0xf, 0xaf, 0xa0, 0x2e, 0x0, 0x0, 0x0,
+    0x2, 0xd0, 0xb4, 0x0, 0xc0, 0xf0, 0x0, 0x0,
+    0x3c, 0xb, 0x0, 0x0, 0x2e, 0xbf, 0xff, 0xfb,
+    0xc0, 0xb0, 0x0, 0x3, 0xc6, 0xae, 0xaa, 0xfc,
+    0xf, 0x0, 0x0, 0xb4, 0x3, 0xc0, 0x1f, 0xd0,
+    0xf0, 0x0, 0x1f, 0x0, 0xf4, 0x2c, 0x9e, 0xf,
+    0x0, 0x3, 0xf0, 0x7e, 0xaf, 0x80, 0xe1, 0xe0,
+    0x0, 0xff, 0xf, 0xff, 0xe0, 0xf, 0x1d, 0x0,
+    0x2f, 0xb0, 0x1, 0xf4, 0xc0, 0x77, 0xc0, 0x7,
+    0xcb, 0x0, 0xbc, 0xf, 0x3, 0xfc, 0x0, 0x24,
+    0xb0, 0xbf, 0xaf, 0xf8, 0x3f, 0x80, 0x0, 0xb,
+    0x1f, 0xff, 0xfb, 0xd1, 0xf0, 0x0, 0x0, 0xb0,
+    0x0, 0x74, 0xd, 0x1f, 0x40, 0x0, 0xb, 0x2,
+    0x87, 0x5d, 0x3, 0xfc, 0x0, 0x0, 0xb0, 0x78,
+    0x74, 0xf0, 0xbb, 0xe0, 0x0, 0xb, 0xf, 0x7,
+    0x43, 0x9f, 0xf, 0x40, 0x0, 0xb2, 0xd0, 0x74,
+    0x17, 0xd0, 0x7d, 0x0, 0xb, 0x78, 0x6f, 0x41,
+    0xf4, 0x2, 0xf0, 0x0, 0xb1, 0xf, 0xf0, 0x3e,
+    0x0, 0xf, 0xc0, 0xb, 0x0, 0x54, 0x1, 0x80,
+    0x0, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0,
+
     /* U+5FC3 "心" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x2, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -43202,6 +45918,22 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x2f, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+5FC4 "忄" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xd0, 0x0,
+    0x0, 0x3, 0xd0, 0x0, 0x0, 0x3, 0xd0, 0x0,
+    0x0, 0x3, 0xd0, 0x0, 0x0, 0x3, 0xd0, 0x0,
+    0x3, 0xc3, 0xd7, 0x0, 0x3, 0xc3, 0xdf, 0x80,
+    0x7, 0xc3, 0xd3, 0xc0, 0x7, 0x83, 0xd2, 0xf0,
+    0xb, 0x43, 0xd0, 0xf4, 0xf, 0x43, 0xd0, 0xbc,
+    0xf, 0x3, 0xd0, 0x38, 0x1f, 0x3, 0xd0, 0x0,
+    0x2e, 0x3, 0xd0, 0x0, 0x3d, 0x3, 0xd0, 0x0,
+    0x2c, 0x3, 0xd0, 0x0, 0x0, 0x3, 0xd0, 0x0,
+    0x0, 0x3, 0xd0, 0x0, 0x0, 0x3, 0xd0, 0x0,
+    0x0, 0x3, 0xd0, 0x0, 0x0, 0x3, 0xd0, 0x0,
+    0x0, 0x3, 0xd0, 0x0, 0x0, 0x3, 0xd0, 0x0,
+    0x0, 0x3, 0xd0, 0x0, 0x0, 0x3, 0xd0, 0x0,
+    0x0, 0x3, 0xd0, 0x0, 0x0, 0x3, 0xd0, 0x0,
+
     /* U+5FC5 "必" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0xf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -43358,6 +46090,57 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x3, 0xd0, 0x0, 0x0, 0x1, 0xf0, 0x0,
     0x0, 0xf4, 0x0, 0x0,
 
+    /* U+5FD0 "忐" */
+    0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf4,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff,
+    0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, 0xff,
+    0x0, 0x0, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xf0, 0x0, 0x0, 0x0, 0x3f, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xf8, 0x3f, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xf8, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x40, 0xbc, 0x0, 0x0, 0x0, 0x1,
+    0x81, 0xf0, 0x3e, 0x0, 0x2c, 0x0, 0x3, 0xd1,
+    0xf0, 0x1f, 0x40, 0x2f, 0x0, 0x7, 0xc1, 0xf0,
+    0xb, 0xc0, 0xf, 0x80, 0xf, 0x41, 0xf0, 0x3,
+    0x40, 0x7, 0xd0, 0xf, 0x1, 0xf0, 0x0, 0x7,
+    0x82, 0xf0, 0x2e, 0x1, 0xf0, 0x0, 0x7, 0xc0,
+    0xf8, 0x3c, 0x1, 0xf0, 0x0, 0xb, 0x80, 0x7c,
+    0xb8, 0x1, 0xf4, 0x0, 0x1f, 0x80, 0x38, 0x10,
+    0x0, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0,
+    0x7f, 0xff, 0xfd, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
+    /* U+5FD1 "忑" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xbf,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xc2, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x7c,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xf0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x7, 0xc0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x1f, 0xb9, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x7e, 0xff, 0x40, 0x0, 0x0, 0x0,
+    0x1, 0xf0, 0xbf, 0xd0, 0x0, 0x0, 0x0, 0x7,
+    0xc0, 0x1f, 0xf4, 0x0, 0x0, 0x0, 0x1f, 0x0,
+    0xb, 0xf0, 0x0, 0x0, 0x0, 0x7c, 0x0, 0x2,
+    0x40, 0x0, 0x0, 0x1, 0xf0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x0,
+    0x4, 0xf, 0x40, 0x0, 0x0, 0x0, 0x0, 0xf8,
+    0x2f, 0x0, 0x7, 0x0, 0x3, 0xd3, 0xe0, 0x3f,
+    0x0, 0x3e, 0x0, 0xf, 0xf, 0x80, 0x3d, 0x0,
+    0x7c, 0x0, 0xb8, 0x3e, 0x0, 0x7c, 0x0, 0xb8,
+    0x3, 0xc0, 0xf8, 0x0, 0x81, 0x80, 0xf0, 0x2e,
+    0x3, 0xe0, 0x0, 0xb, 0x42, 0xf0, 0xf4, 0xf,
+    0x80, 0x0, 0x3d, 0x3, 0xdb, 0xc0, 0x2f, 0x40,
+    0x2, 0xf0, 0xb, 0x9c, 0x0, 0x7f, 0xff, 0xff,
+    0xc0, 0x18, 0x0, 0x0, 0x7f, 0xff, 0xf8, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+5FD2 "忒" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x3c, 0x34, 0x0, 0x0, 0x0,
@@ -43986,6 +46769,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x2f, 0xff, 0xf8, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+6002 "怂" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x2, 0xe0, 0x0, 0x3d, 0x0, 0x0, 0x0, 0x2,
+    0xe0, 0x0, 0x3d, 0x0, 0x0, 0x0, 0x3, 0xe0,
+    0x0, 0x3d, 0x0, 0x0, 0x0, 0x3, 0xd0, 0x0,
+    0x3d, 0x0, 0x0, 0x0, 0x3, 0xe0, 0x0, 0x3e,
+    0x0, 0x0, 0x0, 0x3, 0xf8, 0x0, 0x7f, 0x0,
+    0x0, 0x0, 0x7, 0xff, 0x0, 0xbf, 0x0, 0x0,
+    0x0, 0xf, 0x8f, 0xc0, 0xfb, 0x80, 0x0, 0x0,
+    0xf, 0x3, 0xf2, 0xf3, 0xc0, 0x0, 0x0, 0x3e,
+    0x0, 0xd7, 0xd1, 0xf0, 0x0, 0x0, 0xbc, 0x0,
+    0xf, 0x80, 0xf8, 0x0, 0x1, 0xf8, 0x0, 0x3f,
+    0x0, 0x3e, 0x0, 0x7, 0xe0, 0x1, 0xfc, 0x0,
+    0x1f, 0xc0, 0x1f, 0xc0, 0xb, 0xf0, 0x0, 0x7,
+    0xf4, 0x2f, 0x0, 0xb, 0x90, 0x0, 0x0, 0xf0,
+    0x4, 0x0, 0x50, 0x78, 0x0, 0x0, 0x0, 0x0,
+    0x41, 0xf0, 0x3e, 0x0, 0x3c, 0x0, 0x2, 0xd1,
+    0xf0, 0x1f, 0x0, 0x2f, 0x0, 0x3, 0xc1, 0xf0,
+    0xb, 0xc0, 0xf, 0x40, 0x7, 0x81, 0xf0, 0x3,
+    0xc0, 0x7, 0xc0, 0xf, 0x41, 0xf0, 0x1, 0x6,
+    0x3, 0xe0, 0x1f, 0x1, 0xf0, 0x0, 0x7, 0x81,
+    0xf0, 0x3d, 0x1, 0xf0, 0x0, 0xb, 0x80, 0xf8,
+    0xbc, 0x1, 0xf4, 0x0, 0x1f, 0x40, 0x78, 0x14,
+    0x0, 0xff, 0xff, 0xff, 0x0, 0x10, 0x0, 0x0,
+    0x2f, 0xff, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+6003 "怃" */
     0x0, 0x1f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x1f, 0x1, 0x55, 0x55, 0x55, 0x50, 0x0, 0x1f,
@@ -44393,6 +47203,30 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+601D "思" */
+    0x0, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x0, 0x3,
+    0xff, 0xff, 0xff, 0xff, 0xf4, 0x0, 0xf, 0x40,
+    0x7, 0xc0, 0x3, 0xd0, 0x0, 0x3c, 0x0, 0xf,
+    0x0, 0xf, 0x40, 0x0, 0xf0, 0x0, 0x3c, 0x0,
+    0x3d, 0x0, 0x3, 0xc0, 0x0, 0xf0, 0x0, 0xf4,
+    0x0, 0xf, 0xff, 0xff, 0xff, 0xff, 0xd0, 0x0,
+    0x3f, 0xff, 0xff, 0xff, 0xff, 0x40, 0x0, 0xf0,
+    0x0, 0x3c, 0x0, 0x3d, 0x0, 0x3, 0xc0, 0x0,
+    0xf0, 0x0, 0xf4, 0x0, 0xf, 0x0, 0x3, 0xc0,
+    0x3, 0xd0, 0x0, 0x3d, 0x0, 0x1f, 0x0, 0xf,
+    0x40, 0x0, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x0,
+    0x3, 0xff, 0xff, 0xff, 0xff, 0xf4, 0x0, 0x0,
+    0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x28,
+    0x1f, 0x0, 0x0, 0x0, 0x1, 0xd0, 0xf0, 0x3e,
+    0x0, 0x2d, 0x0, 0xf, 0x43, 0xc0, 0x3d, 0x0,
+    0x7c, 0x0, 0x3c, 0xf, 0x0, 0x7c, 0x0, 0xb8,
+    0x2, 0xe0, 0x3c, 0x0, 0xd1, 0x80, 0xf0, 0xf,
+    0x0, 0xf0, 0x0, 0x7, 0x82, 0xe0, 0xbc, 0x3,
+    0xc0, 0x0, 0x2d, 0x3, 0xc3, 0xd0, 0xf, 0x80,
+    0x1, 0xf0, 0xf, 0x8b, 0x0, 0x3f, 0xff, 0xff,
+    0xc0, 0x14, 0x0, 0x0, 0x2f, 0xff, 0xf8, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+6020 "怠" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x60, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -44787,6 +47621,59 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x1, 0xe0, 0x0, 0x0, 0x0, 0x3c, 0x0, 0x0,
     0x78, 0x0, 0x0,
 
+    /* U+6041 "恁" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x7, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb,
+    0x80, 0x0, 0x1, 0x6f, 0xc0, 0x0, 0xf, 0x5,
+    0xab, 0xff, 0xff, 0xc0, 0x0, 0x3e, 0x1f, 0xff,
+    0xfe, 0x94, 0x0, 0x0, 0x7c, 0xa, 0x54, 0xb8,
+    0x0, 0x0, 0x0, 0xfc, 0x0, 0x0, 0xb8, 0x0,
+    0x0, 0x2, 0xfc, 0x0, 0x0, 0xb8, 0x0, 0x0,
+    0x7, 0xfc, 0x0, 0x0, 0xb8, 0x0, 0x0, 0xf,
+    0xbc, 0xbf, 0xff, 0xff, 0xff, 0xfc, 0x3e, 0x3c,
+    0xbf, 0xff, 0xff, 0xff, 0xfc, 0x3c, 0x3c, 0x0,
+    0x0, 0xb8, 0x0, 0x0, 0x0, 0x3c, 0x0, 0x0,
+    0xb8, 0x0, 0x0, 0x0, 0x3c, 0x0, 0x0, 0xb8,
+    0x0, 0x0, 0x0, 0x3c, 0x0, 0x0, 0xb8, 0x0,
+    0x0, 0x0, 0x3c, 0x2f, 0xff, 0xff, 0xff, 0xf0,
+    0x0, 0x3c, 0x2f, 0xff, 0xff, 0xff, 0xf0, 0x0,
+    0x3c, 0x0, 0x24, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x3d, 0x0, 0x0, 0x0, 0x0, 0xd0, 0xf4,
+    0x1f, 0x0, 0xa, 0x0, 0x2, 0xe0, 0xf4, 0xb,
+    0xc0, 0xf, 0x40, 0x3, 0xc0, 0xf4, 0x3, 0xd0,
+    0x7, 0xc0, 0xb, 0x80, 0xf4, 0x0, 0x43, 0xc2,
+    0xf0, 0xf, 0x0, 0xf4, 0x0, 0x3, 0xc0, 0xf8,
+    0x3e, 0x0, 0xf4, 0x0, 0xb, 0xc0, 0x7c, 0x2c,
+    0x0, 0xff, 0xaa, 0xbf, 0x40, 0x3c, 0x0, 0x0,
+    0x2f, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
+    /* U+6042 "恂" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x78, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x1, 0xf0,
+    0x1, 0xf0, 0x0, 0x0, 0x0, 0x7, 0xc0, 0xf,
+    0x40, 0x0, 0x0, 0x0, 0x1f, 0x0, 0x7f, 0xff,
+    0xff, 0xf4, 0x0, 0x7e, 0x3, 0xff, 0xff, 0xff,
+    0xd0, 0x3d, 0xfe, 0x1f, 0x0, 0x0, 0xf, 0x41,
+    0xe7, 0xfd, 0xf4, 0x0, 0x0, 0x2d, 0xb, 0x9f,
+    0x77, 0xc0, 0x0, 0x0, 0xb4, 0x2d, 0x7c, 0x7d,
+    0x0, 0x0, 0x2, 0xd0, 0xf1, 0xf3, 0xff, 0xff,
+    0xfc, 0xb, 0x43, 0xc7, 0xcb, 0xff, 0xff, 0xf0,
+    0x3d, 0xf, 0x1f, 0x2, 0xd0, 0x3, 0xc0, 0xf4,
+    0x78, 0x7c, 0xb, 0x40, 0xf, 0x3, 0xd2, 0xd1,
+    0xf0, 0x2d, 0x0, 0x3c, 0xf, 0x4f, 0x47, 0xc0,
+    0xbf, 0xff, 0xf0, 0x3d, 0x18, 0x1f, 0x2, 0xff,
+    0xff, 0xc0, 0xf4, 0x0, 0x7c, 0xb, 0x40, 0x1f,
+    0x3, 0xd0, 0x1, 0xf0, 0x2d, 0x0, 0x3c, 0xf,
+    0x40, 0x7, 0xc0, 0xb4, 0x0, 0xf0, 0x3d, 0x0,
+    0x1f, 0x2, 0xd0, 0x3, 0xc0, 0xf4, 0x0, 0x7c,
+    0xb, 0xff, 0xff, 0x3, 0xd0, 0x1, 0xf0, 0x2f,
+    0xff, 0xfc, 0xf, 0x40, 0x7, 0xc0, 0x0, 0x0,
+    0x0, 0x3d, 0x0, 0x1f, 0x0, 0x0, 0x0, 0x1,
+    0xf0, 0x0, 0x7c, 0x0, 0x0, 0x6, 0xff, 0xc0,
+    0x1, 0xf0, 0x0, 0x0, 0x1f, 0xfd, 0x0, 0x7,
+    0xc0, 0x0, 0x0, 0x2a, 0x40,
+
     /* U+6043 "恃" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x7, 0x80, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x1,
@@ -44950,6 +47837,60 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x2f, 0xff, 0xf9, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+6059 "恙" */
+    0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0,
+    0x2, 0xc0, 0x0, 0x7, 0x80, 0x0, 0x0, 0x2,
+    0xf0, 0x0, 0xf, 0x40, 0x0, 0x0, 0x0, 0xf4,
+    0x0, 0x2f, 0x0, 0x0, 0x0, 0x0, 0xb8, 0x0,
+    0x7c, 0x0, 0x0, 0xf, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xe0, 0xf, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xe0, 0x0, 0x0, 0x0, 0x7c, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x7c, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x7c, 0x0, 0x0, 0x0, 0x2, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0x0, 0x1, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0x7c,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7c, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x7c, 0x0, 0x0,
+    0x0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8,
+    0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf4, 0x0,
+    0x0, 0x0, 0x74, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x40, 0xbc, 0x0, 0x0, 0x0, 0x2, 0x81, 0xe0,
+    0x2f, 0x0, 0x1e, 0x0, 0x3, 0xc1, 0xe0, 0xf,
+    0xc0, 0xf, 0x40, 0xb, 0x81, 0xe0, 0x3, 0xc0,
+    0x7, 0xc0, 0xf, 0x1, 0xe0, 0x1, 0x7, 0x82,
+    0xf0, 0x3e, 0x1, 0xf0, 0x0, 0x7, 0x80, 0xf8,
+    0x7c, 0x1, 0xf0, 0x0, 0xf, 0x40, 0x7c, 0x78,
+    0x0, 0xff, 0xeb, 0xff, 0x0, 0x34, 0x0, 0x0,
+    0x6f, 0xff, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
+    /* U+605A "恚" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x7c, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x7c, 0x0, 0x0, 0x0, 0x1, 0xaa, 0xaa,
+    0xfe, 0xaa, 0xaa, 0x0, 0x2, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0x7c, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x7c, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x7c, 0x0, 0x0, 0x0,
+    0x2f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x1f,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x0, 0x0,
+    0x0, 0x14, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x7c, 0x0, 0x0, 0x0, 0x2, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0x0, 0x2, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0x0, 0x0, 0x0, 0x0, 0x7c, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x7c, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x7c, 0x0, 0x0, 0x0, 0x2f,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x2f, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xf0, 0x0, 0x0, 0x0,
+    0x30, 0x0, 0x0, 0x0, 0x2, 0x81, 0xe0, 0xbc,
+    0x0, 0xf, 0x0, 0x3, 0xc1, 0xe0, 0x2f, 0x0,
+    0xf, 0x80, 0xb, 0x81, 0xe0, 0xf, 0x80, 0x3,
+    0xd0, 0x1f, 0x1, 0xe0, 0x2, 0xb, 0x41, 0xf0,
+    0x3d, 0x1, 0xf0, 0x0, 0xf, 0x40, 0xf8, 0xbc,
+    0x0, 0xfe, 0x56, 0xbf, 0x0, 0x3c, 0x10, 0x0,
+    0x7f, 0xff, 0xf8, 0x0, 0x10, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+605D "恝" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0xb8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -45061,6 +48002,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0x0, 0x0, 0xf0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+6067 "恧" */
+    0xb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x3,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0,
+    0x0, 0x3, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x1, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xb8, 0x0, 0x0, 0x0, 0x0, 0x3f, 0xff, 0xff,
+    0xff, 0xff, 0xf0, 0x0, 0xf, 0xff, 0xff, 0xff,
+    0xff, 0xfc, 0x0, 0x3, 0xd0, 0x2e, 0x1, 0xf0,
+    0xf, 0x0, 0x0, 0xf0, 0xb, 0x80, 0x7c, 0x3,
+    0xc0, 0x0, 0x3c, 0x2, 0xe0, 0x1f, 0x0, 0xf0,
+    0x0, 0xf, 0x0, 0xb8, 0x7, 0xc0, 0x3c, 0x0,
+    0x3, 0xc0, 0x2e, 0x1, 0xf0, 0xf, 0x0, 0x0,
+    0xf0, 0xb, 0x80, 0x7c, 0x7, 0xc0, 0x0, 0x3c,
+    0x2, 0xe0, 0x1f, 0x3f, 0xf0, 0x0, 0xf, 0x0,
+    0x0, 0x40, 0xb, 0xe0, 0x0, 0x0, 0x1, 0x40,
+    0xf4, 0x0, 0x0, 0x0, 0x0, 0xa0, 0xb8, 0x1f,
+    0x40, 0xb, 0x0, 0x0, 0x3c, 0x2e, 0x2, 0xf0,
+    0x3, 0xf0, 0x0, 0x2e, 0xb, 0x80, 0x3e, 0x0,
+    0x3e, 0x0, 0xf, 0x2, 0xe0, 0x7, 0x89, 0x7,
+    0xc0, 0xb, 0x80, 0xb8, 0x0, 0x43, 0xd0, 0xfc,
+    0x3, 0xc0, 0x2e, 0x0, 0x0, 0xf4, 0xf, 0x82,
+    0xe0, 0xb, 0xd0, 0x0, 0xbc, 0x2, 0xf0, 0x70,
+    0x1, 0xff, 0xff, 0xff, 0x0, 0x30, 0x0, 0x0,
+    0x1f, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+6068 "恨" */
     0x0, 0x28, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x3c, 0x0, 0xff, 0xff, 0xff, 0xc0, 0x0, 0x3c,
@@ -45280,6 +48247,30 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x7c, 0x0, 0x0, 0xf0, 0x7, 0xc0,
     0x0, 0xf, 0x0,
 
+    /* U+6073 "恳" */
+    0x0, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x3,
+    0xff, 0xff, 0xff, 0xff, 0xf0, 0x0, 0xf, 0x0,
+    0x0, 0x0, 0x3, 0xc0, 0x0, 0x3c, 0x0, 0x0,
+    0x0, 0xf, 0x0, 0x0, 0xfa, 0xaa, 0xaa, 0xaa,
+    0xbc, 0x0, 0x3, 0xff, 0xff, 0xff, 0xff, 0xf0,
+    0x0, 0xf, 0x0, 0x0, 0x0, 0x3, 0xc0, 0x0,
+    0x3c, 0x0, 0x0, 0x0, 0xf, 0x0, 0x0, 0xfa,
+    0xaa, 0xaa, 0xaa, 0xbc, 0x0, 0x3, 0xff, 0xff,
+    0xff, 0xff, 0xf0, 0x0, 0xf, 0x41, 0xf8, 0x0,
+    0x0, 0x78, 0x0, 0x3c, 0x0, 0xf8, 0x0, 0x1f,
+    0xf0, 0x0, 0xf0, 0x0, 0xfd, 0xb, 0xfd, 0x0,
+    0x3, 0xc0, 0x1d, 0xbf, 0xfe, 0x0, 0x0, 0xf,
+    0x6f, 0xf4, 0x2f, 0xf4, 0x0, 0x0, 0xbf, 0xfe,
+    0x40, 0xb, 0xff, 0xe5, 0x2, 0xf9, 0x0, 0xf0,
+    0x0, 0xbf, 0xf8, 0x0, 0x5, 0x2, 0xf0, 0x0,
+    0x15, 0x90, 0x38, 0x2d, 0x3, 0xe0, 0x1, 0xe0,
+    0x2, 0xe0, 0xb4, 0x3, 0xd0, 0x3, 0xd0, 0xf,
+    0x2, 0xd0, 0x6, 0xb, 0x43, 0xc0, 0xb8, 0xb,
+    0x40, 0x0, 0x2d, 0x7, 0xc7, 0xc0, 0x2e, 0x0,
+    0x1, 0xf0, 0xf, 0xad, 0x0, 0x7f, 0xff, 0xff,
+    0x80, 0xd, 0x10, 0x0, 0x7f, 0xff, 0xf8, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+6076 "恶" */
     0x7, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x2f,
     0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x15, 0x56,
@@ -45361,6 +48352,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x24, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+607A "恺" */
+    0x0, 0xf, 0x0, 0x0, 0xf, 0x0, 0x0, 0x0,
+    0x3, 0xc0, 0x40, 0x3, 0xc0, 0x4, 0x0, 0x0,
+    0xf0, 0x3c, 0x0, 0xf0, 0x7, 0x80, 0x0, 0x3c,
+    0xf, 0x0, 0x3c, 0x1, 0xe0, 0x0, 0xf, 0x3,
+    0xc0, 0xf, 0x0, 0x78, 0x1, 0xf3, 0xe0, 0xf0,
+    0x7, 0xc0, 0x1e, 0x0, 0x78, 0xfe, 0x3f, 0xff,
+    0xff, 0xff, 0x80, 0x2d, 0x3f, 0xdf, 0xff, 0xff,
+    0xff, 0xd0, 0xb, 0x4f, 0x7c, 0x0, 0x0, 0x0,
+    0x0, 0x3, 0xc3, 0xcf, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xf0, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x3c, 0x3c, 0xf, 0xff, 0xff, 0xff, 0xc0, 0x1e,
+    0xf, 0x3, 0xff, 0xff, 0xff, 0xf0, 0xb, 0x83,
+    0xc0, 0x0, 0x0, 0x0, 0x7c, 0x3, 0xd0, 0xf0,
+    0x0, 0x0, 0x0, 0x1f, 0x0, 0xb0, 0x3c, 0x0,
+    0x0, 0x0, 0x7, 0xc0, 0x0, 0xf, 0x2, 0xff,
+    0xff, 0xff, 0xf0, 0x0, 0x3, 0xc0, 0xbf, 0xff,
+    0xff, 0xfc, 0x0, 0x0, 0xf0, 0x2e, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x3c, 0xb, 0x80, 0x0, 0x0,
+    0x0, 0x0, 0xf, 0x2, 0xe0, 0x0, 0x0, 0xe,
+    0x0, 0x3, 0xc0, 0xb8, 0x0, 0x0, 0x3, 0xc0,
+    0x0, 0xf0, 0x2e, 0x0, 0x0, 0x1, 0xf0, 0x0,
+    0x3c, 0xb, 0xd4, 0x0, 0x5, 0xf8, 0x0, 0xf,
+    0x0, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x3, 0xc0,
+    0x1b, 0xff, 0xff, 0xf9, 0x0, 0x0, 0xf0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+607B "恻" */
     0x0, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x50, 0xf,
     0x1, 0x55, 0x54, 0x0, 0xf, 0x0, 0xf0, 0x3f,
@@ -45439,6 +48457,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0xf, 0x0, 0x0, 0x0, 0x3c, 0x0,
     0x0, 0xf, 0x0, 0x0,
 
+    /* U+607F "恿" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x3, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0xe0,
+    0x0, 0xb, 0xf4, 0x0, 0x0, 0x1, 0xfe, 0x41,
+    0xff, 0x40, 0x0, 0x0, 0x0, 0x1b, 0xff, 0xe0,
+    0x0, 0x0, 0x2, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0x0, 0x2, 0xff, 0xff, 0xff, 0xff, 0xff, 0x40,
+    0x2, 0xe0, 0x0, 0x7c, 0x0, 0xf, 0x40, 0x2,
+    0xe0, 0x0, 0x3c, 0x0, 0xf, 0x40, 0x2, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0x40, 0x2, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0x40, 0x2, 0xe0, 0x0, 0x3c,
+    0x0, 0xf, 0x40, 0x2, 0xe0, 0x0, 0x7c, 0x0,
+    0xf, 0x40, 0x2, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0x40, 0x2, 0xfa, 0xaa, 0xbe, 0xaa, 0xaf, 0x40,
+    0x2, 0xe0, 0x0, 0x3c, 0x0, 0xf, 0x40, 0x2,
+    0xe0, 0x0, 0x38, 0x6, 0xff, 0x0, 0x2, 0xd0,
+    0x40, 0xf0, 0x3, 0xa4, 0x0, 0x1, 0x41, 0xe0,
+    0xbc, 0x0, 0x1, 0x0, 0x3, 0xd1, 0xe0, 0x2f,
+    0x0, 0xf, 0x40, 0xb, 0x81, 0xe0, 0xf, 0x7,
+    0x47, 0xc0, 0xf, 0x1, 0xe0, 0x0, 0xb, 0x82,
+    0xf0, 0x3d, 0x1, 0xf0, 0x0, 0xf, 0x40, 0xf4,
+    0x7c, 0x0, 0xff, 0xff, 0xff, 0x0, 0x7c, 0x10,
+    0x0, 0x7f, 0xff, 0xf9, 0x0, 0x20, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+6083 "悃" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xc0,
@@ -45492,6 +48536,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0xf0, 0x0, 0xff, 0xd0, 0x0, 0x1f, 0x0,
     0x0, 0x0, 0x55, 0x0,
 
+    /* U+6089 "悉" */
+    0x0, 0x0, 0x0, 0x0, 0x1, 0x69, 0x0, 0x1,
+    0x6a, 0xab, 0xff, 0xff, 0xff, 0x0, 0x7, 0xff,
+    0xff, 0xff, 0xfe, 0xa5, 0x0, 0x2, 0xae, 0x55,
+    0xb8, 0x0, 0x90, 0x0, 0x0, 0x1e, 0x0, 0xb8,
+    0x1, 0xf0, 0x0, 0x0, 0xf, 0x40, 0xb8, 0x3,
+    0xd0, 0x0, 0x0, 0x7, 0xc0, 0xb8, 0xf, 0x80,
+    0x0, 0x0, 0x2, 0xc0, 0xb8, 0xb, 0x0, 0x0,
+    0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x3f,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x0, 0x0,
+    0x1f, 0xff, 0xe0, 0x0, 0x0, 0x0, 0x0, 0xbd,
+    0xb8, 0xfc, 0x0, 0x0, 0x0, 0xb, 0xf0, 0xb8,
+    0x2f, 0x80, 0x0, 0x0, 0xbf, 0x40, 0xb8, 0x7,
+    0xf4, 0x0, 0x1f, 0xf8, 0x0, 0xb8, 0x0, 0x7f,
+    0x90, 0xbf, 0x80, 0x0, 0xb8, 0x0, 0x7, 0xfc,
+    0x24, 0x0, 0x0, 0x70, 0x0, 0x0, 0x28, 0x0,
+    0x41, 0xf0, 0xfc, 0x0, 0x34, 0x0, 0x2, 0xe1,
+    0xf0, 0x3e, 0x0, 0x7c, 0x0, 0x3, 0xc1, 0xf0,
+    0xf, 0x80, 0x2f, 0x0, 0x7, 0xc1, 0xf0, 0x7,
+    0xc0, 0xf, 0x80, 0xf, 0x41, 0xf0, 0x2, 0xb,
+    0x47, 0xc0, 0x1f, 0x0, 0xf0, 0x0, 0xb, 0x43,
+    0xf0, 0x3d, 0x0, 0xf4, 0x0, 0xf, 0x0, 0xf4,
+    0x3c, 0x0, 0xff, 0xff, 0xff, 0x0, 0xb0, 0x0,
+    0x0, 0x2f, 0xff, 0xfd, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+608C "悌" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0,
     0xf0, 0x1, 0xe0, 0x0, 0x3c, 0x0, 0x3, 0xc0,
@@ -45518,6 +48588,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x3, 0xc3, 0x0, 0x3, 0xc0, 0x0, 0x0, 0xf,
     0x0, 0x0, 0xf, 0x0, 0x0,
 
+    /* U+608D "悍" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xf, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3,
+    0xd0, 0x1a, 0xaa, 0xaa, 0xa9, 0x0, 0x0, 0xf4,
+    0xb, 0xff, 0xff, 0xff, 0x80, 0x0, 0x3d, 0x2,
+    0xe0, 0x0, 0x2, 0xe0, 0x0, 0xf, 0x40, 0xb8,
+    0x0, 0x0, 0x78, 0x0, 0x63, 0xd8, 0x2e, 0x0,
+    0x0, 0x1e, 0x0, 0x2c, 0xff, 0x8b, 0xff, 0xff,
+    0xff, 0x80, 0xf, 0x3d, 0xf6, 0xff, 0xff, 0xff,
+    0xe0, 0x3, 0xcf, 0x5f, 0xb8, 0x0, 0x0, 0x78,
+    0x0, 0xf3, 0xd2, 0xfe, 0x0, 0x0, 0x1e, 0x0,
+    0x3c, 0xf4, 0xb, 0xff, 0xff, 0xff, 0x80, 0x1e,
+    0x3d, 0x2, 0xff, 0xff, 0xff, 0xe0, 0x7, 0x4f,
+    0x40, 0x0, 0x0, 0x0, 0x0, 0x2, 0xd3, 0xd0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0xf0, 0xf4, 0x5,
+    0x55, 0x55, 0x55, 0x40, 0x3c, 0x3d, 0x7, 0xff,
+    0xff, 0xff, 0xf8, 0x1, 0xf, 0x41, 0xff, 0xff,
+    0xff, 0xfd, 0x0, 0x3, 0xd0, 0x0, 0x2, 0xe0,
+    0x0, 0x0, 0x0, 0xf4, 0x0, 0x0, 0xb8, 0x0,
+    0x0, 0x0, 0x3d, 0x0, 0x0, 0x2e, 0x0, 0x0,
+    0x0, 0xf, 0x4f, 0xff, 0xff, 0xff, 0xff, 0xc0,
+    0x3, 0xd3, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x0,
+    0xf4, 0x0, 0x0, 0xb8, 0x0, 0x0, 0x0, 0x3d,
+    0x0, 0x0, 0x2e, 0x0, 0x0, 0x0, 0xf, 0x40,
+    0x0, 0xb, 0x80, 0x0, 0x0, 0x3, 0xd0, 0x0,
+    0x2, 0xe0, 0x0, 0x0, 0x0, 0xf4, 0x0, 0x0,
+    0x74, 0x0, 0x0,
+
     /* U+6092 "悒" */
     0x0, 0x3c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x3d, 0x3, 0xff, 0xff, 0xff, 0xc0, 0x0, 0x3d,
@@ -45712,6 +48810,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x2e, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+60A0 "悠" */
+    0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0,
+    0x0, 0xf4, 0x0, 0x1f, 0x0, 0x0, 0x0, 0x0,
+    0x7c, 0x0, 0xf, 0x40, 0x0, 0x0, 0x0, 0x3d,
+    0x0, 0x7, 0xc0, 0x0, 0x0, 0x0, 0x2f, 0xf,
+    0x3, 0xff, 0xff, 0xfd, 0x0, 0x1f, 0x3, 0xc2,
+    0xff, 0xff, 0xff, 0x40, 0xf, 0xc0, 0xf0, 0xf8,
+    0x0, 0xbc, 0x0, 0xf, 0xf0, 0x3c, 0xff, 0x0,
+    0x3d, 0x0, 0xf, 0xfc, 0xf, 0xbf, 0xd0, 0x1f,
+    0x0, 0xb, 0xcf, 0x3, 0xfc, 0x7c, 0xf, 0x80,
+    0x3, 0xc3, 0xc0, 0xf0, 0xb, 0x8b, 0xc0, 0x0,
+    0x10, 0xf0, 0x3c, 0x0, 0xff, 0xd0, 0x0, 0x0,
+    0x3c, 0xf, 0x0, 0xf, 0xe0, 0x0, 0x0, 0xf,
+    0x3, 0xc0, 0xf, 0xfe, 0x0, 0x0, 0x3, 0xc0,
+    0xf0, 0x2f, 0xdb, 0xf4, 0x0, 0x0, 0xf0, 0x0,
+    0xbf, 0x80, 0x7f, 0xe4, 0x0, 0x3c, 0x0, 0xff,
+    0x40, 0x2, 0xff, 0x0, 0xf, 0x0, 0x2d, 0x0,
+    0x0, 0x7, 0x80, 0x0, 0x1, 0x40, 0xf0, 0x0,
+    0x0, 0x0, 0x0, 0xe0, 0xf0, 0x2f, 0x0, 0x3d,
+    0x0, 0x0, 0x7c, 0x3c, 0x3, 0xf0, 0xb, 0xc0,
+    0x0, 0x3d, 0xf, 0x0, 0x38, 0x20, 0xf8, 0x0,
+    0x1f, 0x3, 0xc0, 0x4, 0x1e, 0xf, 0x40, 0xf,
+    0x40, 0xf0, 0x0, 0xb, 0x82, 0xf0, 0xb, 0xc0,
+    0x3e, 0x0, 0x7, 0xd0, 0x3d, 0x3, 0xc0, 0xf,
+    0xff, 0xff, 0xf0, 0xb, 0x0, 0x10, 0x0, 0xbf,
+    0xff, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+60A3 "患" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -45767,6 +48893,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+60A8 "您" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x3, 0xd0, 0x2d, 0x0, 0x0, 0x0, 0x0, 0x7,
+    0xc0, 0x3c, 0x0, 0x0, 0x0, 0x0, 0xf, 0x80,
+    0xb8, 0x0, 0x0, 0x0, 0x0, 0x1f, 0x0, 0xff,
+    0xff, 0xff, 0xfc, 0x0, 0x3e, 0x3, 0xff, 0xff,
+    0xff, 0xfc, 0x0, 0xbc, 0xb, 0xc0, 0x0, 0x0,
+    0xf4, 0x1, 0xfc, 0x1f, 0x0, 0x3c, 0x2, 0xf0,
+    0x3, 0xfc, 0x3d, 0x0, 0x3c, 0x2, 0xc0, 0xf,
+    0xbc, 0x4, 0x34, 0x3c, 0x8, 0x0, 0x3f, 0x3c,
+    0x0, 0xf8, 0x3c, 0x3e, 0x0, 0x1c, 0x3c, 0x2,
+    0xf0, 0x3c, 0xf, 0x40, 0x0, 0x3c, 0x7, 0xc0,
+    0x3c, 0x7, 0xd0, 0x0, 0x3c, 0xf, 0x40, 0x3c,
+    0x1, 0xf0, 0x0, 0x3c, 0x3e, 0x0, 0x3c, 0x0,
+    0xfc, 0x0, 0x3c, 0xbc, 0xf, 0xfc, 0x0, 0x3c,
+    0x0, 0x3c, 0x10, 0xf, 0xf4, 0x0, 0x14, 0x0,
+    0x28, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x28, 0xd, 0x0, 0x6, 0x0, 0x0, 0x78, 0x3c,
+    0xf, 0x40, 0xf, 0x40, 0x0, 0xf4, 0x3c, 0x7,
+    0xc0, 0x7, 0xc0, 0x1, 0xf0, 0x3c, 0x2, 0xe0,
+    0x2, 0xf0, 0x3, 0xd0, 0x3c, 0x0, 0x82, 0xe0,
+    0xf8, 0x7, 0xc0, 0x3c, 0x0, 0x2, 0xd0, 0x7c,
+    0xf, 0x40, 0x3d, 0x0, 0x7, 0xc0, 0x2e, 0x1f,
+    0x0, 0x3f, 0xff, 0xff, 0xc0, 0x8, 0x0, 0x0,
+    0xb, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+60AB "悫" */
     0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x1f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1,
@@ -45898,6 +49051,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x7, 0xc0, 0xf0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+60B2 "悲" */
+    0x0, 0x0, 0xe, 0x0, 0xe0, 0x0, 0x0, 0x0,
+    0x0, 0xf, 0x0, 0xf0, 0x0, 0x0, 0x0, 0x0,
+    0xf, 0x0, 0xf0, 0x0, 0x0, 0xf, 0xff, 0xff,
+    0x0, 0xff, 0xff, 0xe0, 0xa, 0xaa, 0xaf, 0x0,
+    0xfa, 0xaa, 0xa0, 0x0, 0x0, 0xf, 0x0, 0xf0,
+    0x0, 0x0, 0x0, 0x0, 0xf, 0x0, 0xf0, 0x0,
+    0x0, 0x1, 0x55, 0x5f, 0x0, 0xf5, 0x55, 0x40,
+    0x7, 0xff, 0xff, 0x0, 0xff, 0xff, 0xc0, 0x2,
+    0xaa, 0xaf, 0x0, 0xfa, 0xaa, 0x80, 0x0, 0x0,
+    0xf, 0x0, 0xf0, 0x0, 0x0, 0x0, 0x0, 0xf,
+    0x0, 0xf0, 0x0, 0x0, 0x5, 0x55, 0x5f, 0x0,
+    0xf5, 0x55, 0x50, 0x1f, 0xff, 0xff, 0x0, 0xff,
+    0xff, 0xf0, 0xa, 0xaa, 0xaf, 0x0, 0xfa, 0xaa,
+    0xa0, 0x0, 0x0, 0xf, 0x0, 0xf0, 0x0, 0x0,
+    0x0, 0x0, 0xf, 0x4, 0xf0, 0x0, 0x0, 0x0,
+    0x0, 0x40, 0x3c, 0x0, 0x0, 0x0, 0x1, 0xe1,
+    0xf0, 0x2f, 0x0, 0x1d, 0x0, 0x3, 0xe1, 0xf0,
+    0xf, 0x80, 0x2f, 0x0, 0x3, 0xd1, 0xf0, 0x7,
+    0xc0, 0xf, 0xc0, 0xb, 0xc1, 0xf0, 0x2, 0xc2,
+    0x3, 0xd0, 0x1f, 0x41, 0xf0, 0x0, 0x3, 0xc1,
+    0xf0, 0x3f, 0x1, 0xf0, 0x0, 0x7, 0xc0, 0xfc,
+    0x7c, 0x1, 0xf4, 0x0, 0xf, 0x80, 0x7d, 0xb8,
+    0x0, 0xff, 0xff, 0xff, 0x40, 0x28, 0x0, 0x0,
+    0x2f, 0xff, 0xfd, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+60B4 "悴" */
     0x0, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0,
     0x3, 0xc0, 0x0, 0xf, 0x0, 0x0, 0x0, 0x0,
@@ -46061,33 +49241,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x3, 0xcb, 0x0, 0x0, 0x2, 0xa4, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0,
 
-    /* U+60C7 "惇" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x78, 0x0, 0x0, 0xb4, 0x0, 0x0, 0x0, 0x7c,
-    0x0, 0x0, 0xb8, 0x0, 0x0, 0x0, 0x7c, 0x0,
-    0x0, 0x7c, 0x0, 0x0, 0x0, 0x7c, 0x3f, 0xff,
-    0xff, 0xff, 0xf8, 0x0, 0x7c, 0x3f, 0xff, 0xff,
-    0xff, 0xf8, 0x9, 0x7f, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x1e, 0x7f, 0xc2, 0xaa, 0xaa, 0xaa, 0x40,
-    0x1d, 0x7e, 0xe7, 0xff, 0xff, 0xff, 0x40, 0x2d,
-    0x7c, 0xfb, 0xc0, 0x0, 0xf, 0x40, 0x2c, 0x7c,
-    0x67, 0xc0, 0x0, 0xb, 0x40, 0x3c, 0x7c, 0x7,
-    0xea, 0xaa, 0xaf, 0x40, 0x3c, 0x7c, 0x7, 0xff,
-    0xff, 0xff, 0x40, 0x3c, 0x7c, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x78, 0x7c, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0xb4, 0x7c, 0x1f, 0xff, 0xff, 0xff, 0xc0,
-    0xb4, 0x7c, 0x1f, 0xff, 0xff, 0xff, 0xc0, 0x0,
-    0x7c, 0x0, 0x0, 0x1, 0xfe, 0x0, 0x0, 0x7c,
-    0x0, 0x0, 0x1f, 0xe0, 0x0, 0x0, 0x7c, 0x0,
-    0x0, 0x7d, 0x0, 0x0, 0x0, 0x7c, 0xff, 0xff,
-    0xff, 0xff, 0xfd, 0x0, 0x7c, 0xff, 0xff, 0xff,
-    0xff, 0xfd, 0x0, 0x7c, 0x0, 0x0, 0xb8, 0x0,
-    0x0, 0x0, 0x7c, 0x0, 0x0, 0xb8, 0x0, 0x0,
-    0x0, 0x7c, 0x0, 0x0, 0xb8, 0x0, 0x0, 0x0,
-    0x7c, 0x0, 0x16, 0xf8, 0x0, 0x0, 0x0, 0x7c,
-    0x0, 0x7f, 0xf0, 0x0, 0x0, 0x0, 0x7c, 0x0,
-    0x25, 0x0, 0x0, 0x0,
-
     /* U+60CA "惊" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0xb, 0x0, 0x0, 0xf, 0x0, 0x0, 0x0, 0x3,
@@ -46715,6 +49868,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x2f, 0xff, 0xff, 0xff, 0xff, 0x0, 0x3c, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+60F9 "惹" */
+    0x0, 0x0, 0x50, 0x0, 0x14, 0x0, 0x0, 0x0,
+    0x0, 0xf0, 0x0, 0x2e, 0x0, 0x0, 0x0, 0x0,
+    0xf0, 0x0, 0x2e, 0x0, 0x0, 0x2f, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xf4, 0x1f, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xf4, 0x0, 0x0, 0xf0, 0x0, 0x2e,
+    0x0, 0x0, 0x0, 0x0, 0xa3, 0xc0, 0x19, 0x0,
+    0x0, 0x0, 0x0, 0xf, 0xc0, 0x0, 0x0, 0x0,
+    0x2f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x1a,
+    0xaa, 0xfe, 0xaa, 0xaa, 0xaa, 0xa0, 0x0, 0x2,
+    0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb, 0xfa,
+    0xaa, 0xaa, 0xa8, 0x0, 0x0, 0x7f, 0xff, 0xff,
+    0xff, 0xfc, 0x0, 0x2, 0xff, 0x0, 0x0, 0x0,
+    0x3c, 0x0, 0x2f, 0xcf, 0x0, 0x0, 0x0, 0x3c,
+    0x0, 0xbd, 0xf, 0x0, 0x0, 0x0, 0x3c, 0x0,
+    0x20, 0xf, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x0,
+    0xa, 0xaa, 0xba, 0xaa, 0xa8, 0x0, 0x0, 0x0,
+    0x0, 0x38, 0x0, 0x0, 0x0, 0x1, 0xd0, 0xf0,
+    0x3e, 0x0, 0xb, 0x0, 0x3, 0xd0, 0xf0, 0xf,
+    0x80, 0xf, 0x80, 0x7, 0xc0, 0xf0, 0x7, 0x82,
+    0x43, 0xd0, 0xf, 0x40, 0xf0, 0x1, 0x3, 0xc1,
+    0xf0, 0x2f, 0x0, 0xf4, 0x0, 0xb, 0xc0, 0xbc,
+    0x3c, 0x0, 0xff, 0xff, 0xff, 0x40, 0x38, 0x4,
+    0x0, 0x2f, 0xff, 0xf9, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+60FA "惺" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x3c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c,
@@ -46824,6 +50003,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x2f, 0xff, 0xf9, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+6108 "愈" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x7, 0xff, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x2f,
+    0x82, 0xf8, 0x0, 0x0, 0x0, 0x1, 0xfd, 0x0,
+    0x7f, 0x80, 0x0, 0x0, 0x2f, 0xe0, 0x0, 0xb,
+    0xf8, 0x0, 0x6, 0xfe, 0x7f, 0xff, 0xfd, 0xbf,
+    0x90, 0x7f, 0xd0, 0x2a, 0xaa, 0xa8, 0x7, 0xfd,
+    0x38, 0x0, 0x0, 0x0, 0x0, 0x5, 0x2c, 0x0,
+    0xff, 0xff, 0xf0, 0x3c, 0xf, 0x0, 0x0, 0xf5,
+    0x55, 0xf0, 0x3c, 0xf, 0x0, 0x0, 0xf0, 0x0,
+    0xf0, 0x3c, 0xf, 0x0, 0x0, 0xff, 0xff, 0xf0,
+    0x3c, 0xf, 0x0, 0x0, 0xf5, 0x55, 0xf0, 0x3c,
+    0xf, 0x0, 0x0, 0xf0, 0x0, 0xf0, 0x3c, 0xf,
+    0x0, 0x0, 0xff, 0xff, 0xf0, 0x3c, 0xf, 0x0,
+    0x0, 0xf5, 0x55, 0xf0, 0x10, 0xf, 0x0, 0x0,
+    0xf0, 0x0, 0xf0, 0x0, 0x2f, 0x0, 0x0, 0xf0,
+    0x2f, 0xe0, 0xb, 0xfe, 0x0, 0x0, 0xe0, 0x1a,
+    0x60, 0x2, 0x94, 0x0, 0x0, 0x40, 0x40, 0x3d,
+    0x0, 0xd, 0x0, 0x1, 0xe0, 0xf0, 0x1f, 0x0,
+    0x1f, 0x0, 0x3, 0xd0, 0xf0, 0x7, 0xc2, 0x4b,
+    0xc0, 0x7, 0xc0, 0xf0, 0x2, 0x43, 0xc3, 0xe0,
+    0xf, 0x40, 0xf0, 0x0, 0x7, 0x80, 0xf4, 0x2f,
+    0x0, 0xff, 0xea, 0xff, 0x40, 0xb4, 0x8, 0x0,
+    0x2f, 0xff, 0xfd, 0x0, 0x10, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+6109 "愉" */
     0x0, 0x3c, 0x0, 0x0, 0x7e, 0x0, 0x0, 0x0,
     0xf, 0x0, 0x0, 0x3f, 0xd0, 0x0, 0x0, 0x3,
@@ -46851,6 +50057,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xc3, 0xf8, 0x1f, 0xf4, 0x0, 0x3, 0xc0, 0xf0,
     0xa4, 0x3, 0xa4, 0x0,
 
+    /* U+610D "愍" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0xb, 0x0, 0x0, 0x2, 0xaa,
+    0xaa, 0xa0, 0xf, 0x0, 0x0, 0x3, 0xff, 0xff,
+    0xf0, 0x1e, 0x0, 0x0, 0x3, 0xc0, 0x0, 0xb0,
+    0x3e, 0x55, 0x54, 0x3, 0xc0, 0x0, 0xb0, 0x7f,
+    0xff, 0xfc, 0x3, 0xc0, 0x0, 0xb0, 0xf9, 0x57,
+    0xd4, 0x3, 0xff, 0xff, 0xf1, 0xf4, 0x3, 0x80,
+    0x3, 0xea, 0xbe, 0xa7, 0xf8, 0x7, 0x80, 0x3,
+    0xc0, 0x3c, 0x3, 0x6c, 0xb, 0x0, 0x3, 0xc0,
+    0x3c, 0x0, 0x1e, 0xf, 0x0, 0x3, 0xff, 0xff,
+    0xff, 0xf, 0x2d, 0x0, 0x3, 0xea, 0xbe, 0xaa,
+    0x7, 0xfc, 0x0, 0x3, 0xc0, 0x1d, 0x0, 0x2,
+    0xf4, 0x0, 0x3, 0xc0, 0xd, 0x8, 0x2, 0xf8,
+    0x0, 0x3, 0xc1, 0x8f, 0xe, 0xb, 0xff, 0x0,
+    0x3, 0xef, 0xcb, 0x6d, 0x7f, 0xf, 0xe0, 0x7,
+    0xfe, 0x43, 0xfe, 0xf8, 0x2, 0xfc, 0x3, 0x80,
+    0x0, 0xa0, 0xd0, 0x0, 0x74, 0x0, 0x40, 0x0,
+    0x34, 0x0, 0x8, 0x0, 0x0, 0xf0, 0xf0, 0x7d,
+    0x0, 0x1f, 0x0, 0x3, 0xd0, 0xf0, 0x1f, 0x41,
+    0xb, 0xc0, 0x7, 0xc0, 0xf0, 0x7, 0x83, 0xc3,
+    0xe0, 0xf, 0x40, 0xf0, 0x1, 0x7, 0x80, 0xf4,
+    0x2e, 0x0, 0xf4, 0x0, 0xb, 0x80, 0xbc, 0x3c,
+    0x0, 0xff, 0xff, 0xff, 0x40, 0x38, 0x0, 0x0,
+    0x2f, 0xff, 0xfd, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+610E "愎" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x78, 0x0, 0x78, 0x0, 0x0, 0x0, 0x0, 0x78,
@@ -46879,33 +50112,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0x6c, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+6114 "愔" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x3c, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x3c,
-    0x0, 0x0, 0x2d, 0x0, 0x0, 0x0, 0x3c, 0x0,
-    0x0, 0xf, 0x0, 0x0, 0x0, 0x3c, 0x3, 0xff,
-    0xff, 0xff, 0xfc, 0x1, 0x3c, 0x3, 0xff, 0xff,
-    0xff, 0xfc, 0xb, 0x3f, 0x80, 0xb, 0x40, 0x1e,
-    0x0, 0xb, 0x3f, 0xd0, 0xb, 0x40, 0x2d, 0x0,
-    0xf, 0x3e, 0xf0, 0x7, 0x80, 0x3c, 0x0, 0xf,
-    0x3c, 0xbc, 0x3, 0xc0, 0x3c, 0x0, 0xf, 0x3c,
-    0x38, 0x3, 0xc0, 0x7c, 0x0, 0xf, 0x3c, 0xb,
-    0xff, 0xff, 0xff, 0xff, 0x1e, 0x3c, 0xb, 0xff,
-    0xff, 0xff, 0xfe, 0x1d, 0x3c, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x2d, 0x3c, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x3c, 0x3c, 0x0, 0xff, 0xff, 0xff, 0xd0,
-    0x18, 0x3c, 0x0, 0xff, 0xff, 0xff, 0xd0, 0x0,
-    0x3c, 0x0, 0xf0, 0x0, 0x2, 0xd0, 0x0, 0x3c,
-    0x0, 0xf0, 0x0, 0x2, 0xd0, 0x0, 0x3c, 0x0,
-    0xf0, 0x0, 0x2, 0xd0, 0x0, 0x3c, 0x0, 0xff,
-    0xff, 0xff, 0xd0, 0x0, 0x3c, 0x0, 0xff, 0xff,
-    0xff, 0xd0, 0x0, 0x3c, 0x0, 0xf0, 0x0, 0x2,
-    0xd0, 0x0, 0x3c, 0x0, 0xf0, 0x0, 0x2, 0xd0,
-    0x0, 0x3c, 0x0, 0xf0, 0x0, 0x2, 0xd0, 0x0,
-    0x3c, 0x0, 0xff, 0xff, 0xff, 0xd0, 0x0, 0x3c,
-    0x0, 0xff, 0xff, 0xff, 0xd0, 0x0, 0x3c, 0x0,
-    0xf0, 0x0, 0x2, 0xd0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0,
+    /* U+610F "意" */
+    0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xb8, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x7c, 0x0, 0x0, 0x0, 0x3, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0x80, 0x3, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xc0, 0x0, 0x1, 0xf0, 0x0, 0x1f,
+    0x0, 0x0, 0x0, 0x0, 0xf4, 0x0, 0x3e, 0x0,
+    0x0, 0x0, 0x0, 0xb8, 0x0, 0x3d, 0x0, 0x0,
+    0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x2a,
+    0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xa8, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xbf, 0xff,
+    0xff, 0xff, 0xfc, 0x0, 0x0, 0xbe, 0xaa, 0xaa,
+    0xaa, 0xbc, 0x0, 0x0, 0xb8, 0x0, 0x0, 0x0,
+    0x3c, 0x0, 0x0, 0xbe, 0xaa, 0xaa, 0xaa, 0xbc,
+    0x0, 0x0, 0xbf, 0xff, 0xff, 0xff, 0xfc, 0x0,
+    0x0, 0xb8, 0x0, 0x0, 0x0, 0x3c, 0x0, 0x0,
+    0xbe, 0xaa, 0xaa, 0xaa, 0xbc, 0x0, 0x0, 0xbf,
+    0xff, 0xff, 0xff, 0xfc, 0x0, 0x0, 0x0, 0x0,
+    0x30, 0x0, 0x0, 0x0, 0x1, 0x80, 0xa0, 0xbc,
+    0x0, 0x6, 0x0, 0x3, 0xe1, 0xf0, 0x2f, 0x0,
+    0xf, 0x80, 0x7, 0xc1, 0xf0, 0xb, 0xc7, 0x43,
+    0xd0, 0xf, 0x41, 0xf0, 0x2, 0xb, 0x81, 0xf0,
+    0x3f, 0x0, 0xf0, 0x0, 0xf, 0x40, 0xbc, 0x7c,
+    0x0, 0xff, 0xeb, 0xff, 0x0, 0x3c, 0x4, 0x0,
+    0x2f, 0xff, 0xf9, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
 
     /* U+6115 "愕" */
     0x0, 0x3c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -47154,6 +50386,57 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xbf, 0xc0, 0x0, 0xb0, 0x0, 0xf0, 0x40, 0xa,
     0x40, 0x0, 0x0,
 
+    /* U+613F "愿" */
+    0x2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x2,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x2, 0xd0,
+    0x0, 0x6, 0x80, 0x0, 0x0, 0x2, 0xd0, 0x0,
+    0xb, 0xc0, 0x0, 0x0, 0x2, 0xd0, 0xaa, 0xaf,
+    0xea, 0xaa, 0x0, 0x2, 0xd0, 0xff, 0xff, 0xff,
+    0xff, 0x0, 0x2, 0xd0, 0xf0, 0x0, 0x0, 0xf,
+    0x0, 0x2, 0xd0, 0xfa, 0xaa, 0xaa, 0xaf, 0x0,
+    0x2, 0xd0, 0xff, 0xff, 0xff, 0xff, 0x0, 0x2,
+    0xd0, 0xf0, 0x0, 0x0, 0xf, 0x0, 0x2, 0xd0,
+    0xfa, 0xaa, 0xaa, 0xaf, 0x0, 0x2, 0xd0, 0xff,
+    0xff, 0xff, 0xff, 0x0, 0x3, 0xd0, 0x0, 0x1,
+    0xf0, 0x0, 0x0, 0x3, 0xd0, 0xf, 0x1, 0xe0,
+    0xf4, 0x0, 0x3, 0xd0, 0x7d, 0x2, 0xe0, 0x7f,
+    0x0, 0x3, 0xc3, 0xf0, 0xbf, 0xe0, 0xb, 0xe0,
+    0x3, 0xcf, 0x80, 0x3a, 0x40, 0x0, 0xf4, 0x7,
+    0xc9, 0x0, 0x7, 0x40, 0x0, 0x20, 0xb, 0x81,
+    0x8b, 0x83, 0xc0, 0xb, 0x40, 0xf, 0x43, 0xcb,
+    0x80, 0xf0, 0x3, 0xc0, 0xf, 0x7, 0x8b, 0x80,
+    0x78, 0xe2, 0xe0, 0x1f, 0xf, 0xb, 0x80, 0x10,
+    0xe0, 0xf0, 0x3e, 0x2e, 0xb, 0xc0, 0x2, 0xd0,
+    0x7c, 0x7c, 0x3c, 0x7, 0xff, 0xff, 0xc0, 0x3c,
+    0xb8, 0x0, 0x2, 0xff, 0xff, 0x40, 0x0, 0x10,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+
+    /* U+6148 "慈" */
+    0x0, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0,
+    0xf, 0x40, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x2f,
+    0x0, 0x2, 0xe0, 0x0, 0x0, 0x0, 0x2e, 0x0,
+    0x1f, 0x0, 0x0, 0x1f, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xf0, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xc0, 0x0, 0xbc, 0x0, 0x1, 0xf0, 0x0, 0x0,
+    0x7, 0xc0, 0x0, 0x1f, 0x0, 0x40, 0x0, 0x7c,
+    0x3, 0x81, 0xf0, 0xf, 0x40, 0x7, 0xc0, 0x3d,
+    0x1f, 0x0, 0xbc, 0x0, 0xff, 0xbf, 0xd3, 0xff,
+    0xff, 0xc0, 0x3, 0xff, 0xfe, 0xf, 0xff, 0xfc,
+    0x0, 0x0, 0x3, 0xe0, 0x0, 0xb, 0xc0, 0x0,
+    0x0, 0x3e, 0xb0, 0x0, 0xbc, 0xe0, 0x0, 0x3,
+    0xd2, 0xe0, 0xb, 0xc3, 0xd0, 0x0, 0x7d, 0x3,
+    0xc0, 0xfc, 0x3, 0xc0, 0xf, 0xfb, 0xff, 0x9f,
+    0xeb, 0xff, 0x80, 0x3f, 0xff, 0xff, 0xbf, 0xff,
+    0xff, 0x0, 0x0, 0x0, 0x19, 0x40, 0x0, 0x1c,
+    0x0, 0x0, 0x0, 0x2d, 0x0, 0x0, 0x0, 0x0,
+    0xe1, 0xe0, 0x7d, 0x0, 0x3c, 0x0, 0xf, 0x47,
+    0x80, 0x7d, 0x0, 0xbc, 0x0, 0xbc, 0x1e, 0x0,
+    0x78, 0x74, 0xfc, 0x7, 0xc0, 0x78, 0x0, 0x41,
+    0xe0, 0xf8, 0x3d, 0x1, 0xf0, 0x0, 0xf, 0x40,
+    0xf9, 0xe0, 0x3, 0xff, 0xff, 0xfc, 0x1, 0xd0,
+    0x0, 0x7, 0xff, 0xff, 0x90, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+614A "慊" */
     0x0, 0x0, 0x0, 0x50, 0x0, 0x24, 0x0, 0x0,
     0xf, 0x0, 0x3c, 0x0, 0x1f, 0x0, 0x0, 0x3,
@@ -47182,33 +50465,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xf0, 0x74, 0x0, 0x80, 0x0, 0xf0, 0x0, 0x3c,
     0x1d, 0x0, 0x0,
 
-    /* U+614B "態" */
-    0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0xb, 0x80, 0x1, 0xf0, 0x0, 0x0, 0x0, 0x2f,
-    0x4, 0x1, 0xf0, 0x6, 0xc0, 0x0, 0xbc, 0x3d,
-    0x1, 0xf0, 0xbf, 0x80, 0x2, 0xf0, 0xf, 0x41,
-    0xff, 0xf8, 0x0, 0x1f, 0xea, 0xaf, 0xd1, 0xfe,
-    0x40, 0x90, 0x1f, 0xff, 0xff, 0xf5, 0xf0, 0x0,
-    0xf0, 0x0, 0x0, 0x0, 0x75, 0xf0, 0x0, 0xf0,
-    0x1, 0x55, 0x55, 0x40, 0xfe, 0xaf, 0xe0, 0x3,
-    0xff, 0xff, 0xc0, 0x7f, 0xff, 0x80, 0x3, 0xc0,
-    0x3, 0xc0, 0x50, 0x0, 0x0, 0x3, 0xc0, 0x7,
-    0xc1, 0xf0, 0x1, 0x80, 0x3, 0xff, 0xff, 0xc1,
-    0xf0, 0x1f, 0xd0, 0x3, 0xc0, 0x3, 0xc1, 0xf7,
-    0xfe, 0x0, 0x3, 0xc0, 0x3, 0xc1, 0xff, 0xd0,
-    0x0, 0x3, 0xff, 0xff, 0xc1, 0xf4, 0x0, 0xe0,
-    0x3, 0xd5, 0x57, 0xc1, 0xf0, 0x0, 0xf0, 0x3,
-    0xc0, 0x3, 0xc0, 0xf4, 0x2, 0xf0, 0x3, 0xc0,
-    0xaf, 0x80, 0xff, 0xff, 0xe0, 0x3, 0xc0, 0xfe,
-    0x10, 0x2f, 0xfe, 0x40, 0x0, 0x0, 0x50, 0x7c,
-    0x0, 0x5, 0x0, 0x1, 0xe1, 0xf0, 0x2f, 0x40,
-    0x1f, 0x0, 0x3, 0xd1, 0xf0, 0x7, 0xc1, 0xb,
-    0xc0, 0xb, 0xc1, 0xf0, 0x1, 0x7, 0x82, 0xf0,
-    0x1f, 0x0, 0xf0, 0x0, 0xb, 0x40, 0xf8, 0x3d,
-    0x0, 0xfe, 0xaa, 0xbf, 0x0, 0x3c, 0x8, 0x0,
-    0x2f, 0xff, 0xf9, 0x0, 0x10, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0,
-
     /* U+614C "慌" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0xe, 0x0, 0xf, 0x0, 0x1e, 0x0, 0x0, 0x3,
@@ -47322,6 +50578,31 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x3f, 0x80, 0x10, 0x8, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+615D "慝" */
+    0x3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x3,
+    0xea, 0xaa, 0xaa, 0xaa, 0xaa, 0xa0, 0x3, 0xc0,
+    0x7, 0x40, 0x3, 0x80, 0x0, 0x3, 0xc5, 0x5b,
+    0x95, 0x5b, 0xd5, 0x40, 0x3, 0xcf, 0xff, 0xff,
+    0xff, 0xff, 0xd0, 0x3, 0xc0, 0x7, 0x50, 0x3,
+    0x80, 0x0, 0x3, 0xc0, 0x0, 0x3c, 0x0, 0x0,
+    0x0, 0x3, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xf0,
+    0x3, 0xca, 0xab, 0xea, 0xaa, 0xaa, 0xa0, 0x3,
+    0xc0, 0xb, 0x80, 0x0, 0x0, 0x0, 0x3, 0xc0,
+    0x3f, 0xff, 0xff, 0xfc, 0x0, 0x3, 0xc2, 0xff,
+    0x55, 0x55, 0xbc, 0x0, 0x3, 0xcf, 0x9e, 0x0,
+    0x0, 0x3c, 0x0, 0x3, 0xc9, 0x1f, 0x55, 0x55,
+    0xbc, 0x0, 0x3, 0xc0, 0x1f, 0xff, 0xff, 0xfc,
+    0x0, 0x3, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf4, 0x3,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xf4, 0x0, 0x0,
+    0x0, 0x38, 0x0, 0x0, 0x0, 0x2, 0xd1, 0xe0,
+    0x3e, 0x0, 0xf, 0x0, 0x3, 0xc1, 0xe0, 0xf,
+    0x82, 0xb, 0xc0, 0xb, 0x81, 0xe0, 0x3, 0x43,
+    0xc2, 0xf0, 0x1f, 0x1, 0xf0, 0x0, 0xb, 0x80,
+    0xf8, 0x3d, 0x0, 0xfe, 0xaa, 0xbf, 0x0, 0x78,
+    0x18, 0x0, 0x7f, 0xff, 0xfd, 0x0, 0x10, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+6162 "慢" */
     0x0, 0x3c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0xf, 0x0, 0x7f, 0xff, 0xff, 0xf0, 0x0, 0x3,
@@ -47350,6 +50631,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x6, 0xf0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+6167 "慧" */
+    0x0, 0x3, 0xc0, 0x0, 0x7, 0x40, 0x0, 0x0,
+    0xf, 0x0, 0x0, 0x2d, 0x0, 0x0, 0xff, 0xff,
+    0xfc, 0xff, 0xff, 0xfe, 0x2, 0xaa, 0xfa, 0xa1,
+    0xab, 0xea, 0xa4, 0x0, 0x3, 0xc0, 0x0, 0xb,
+    0x40, 0x0, 0x1a, 0xaf, 0xa9, 0x1a, 0xbe, 0xaa,
+    0x0, 0xbf, 0xff, 0xfc, 0xbf, 0xff, 0xfc, 0x0,
+    0x0, 0xf0, 0x0, 0x2, 0xd0, 0x0, 0x15, 0x57,
+    0xe5, 0x45, 0x5b, 0x95, 0x50, 0xff, 0xff, 0xff,
+    0x7f, 0xff, 0xff, 0xd0, 0x0, 0x3c, 0x0, 0x0,
+    0xb4, 0x0, 0x0, 0x0, 0x60, 0x0, 0x1, 0x80,
+    0x0, 0x2, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x0,
+    0x6, 0xaa, 0xaa, 0xaa, 0xaa, 0xf4, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x2, 0xd0, 0x0, 0x3f, 0xff,
+    0xff, 0xff, 0xff, 0x40, 0x0, 0xaa, 0xaa, 0xaa,
+    0xaa, 0xbd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xb4, 0x0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xd0,
+    0x0, 0x6a, 0xaa, 0xae, 0xaa, 0xaa, 0x0, 0x0,
+    0x40, 0x90, 0x3c, 0x0, 0x18, 0x0, 0x7, 0xc3,
+    0xc0, 0xb8, 0x0, 0xf4, 0x0, 0x3d, 0xf, 0x0,
+    0xf4, 0x60, 0xf4, 0x2, 0xe0, 0x3c, 0x0, 0xc2,
+    0xd1, 0xf0, 0x1f, 0x0, 0xf0, 0x0, 0xf, 0x2,
+    0xe0, 0xf8, 0x3, 0xfa, 0xab, 0xfc, 0x3, 0xc0,
+    0x80, 0x7, 0xff, 0xff, 0x80, 0x4, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+6168 "慨" */
     0x0, 0x28, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0xf, 0x3, 0xff, 0xe3, 0xff, 0xff, 0x40, 0x3,
@@ -47539,6 +50846,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x1, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+619D "憝" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x3, 0xc0, 0x0, 0x1e, 0x0, 0x0, 0x0, 0x3,
+    0xd0, 0x0, 0x2d, 0x0, 0x0, 0x2f, 0xff, 0xff,
+    0xfc, 0x3c, 0x0, 0x0, 0x1a, 0xaa, 0xaa, 0xa8,
+    0x7d, 0x55, 0x50, 0x1, 0x55, 0x55, 0x40, 0xff,
+    0xff, 0xf8, 0x3, 0xff, 0xff, 0xd1, 0xf5, 0x5b,
+    0x94, 0x3, 0xc0, 0x1, 0xd3, 0xe0, 0xb, 0x0,
+    0x3, 0xd5, 0x56, 0xdb, 0xf0, 0xf, 0x0, 0x3,
+    0xff, 0xff, 0xdf, 0xf4, 0x1e, 0x0, 0x0, 0x0,
+    0x0, 0x1, 0x3c, 0x2d, 0x0, 0xf, 0xff, 0xff,
+    0xf0, 0x3d, 0x3c, 0x0, 0x5, 0x55, 0x6f, 0xe0,
+    0xf, 0xf4, 0x0, 0x0, 0x1, 0xfd, 0x0, 0x7,
+    0xe0, 0x0, 0x0, 0x3, 0xe5, 0xa8, 0xb, 0xf0,
+    0x0, 0xbf, 0xff, 0xff, 0xf8, 0x2f, 0xbd, 0x0,
+    0x6a, 0x97, 0xc0, 0x1, 0xfc, 0x2f, 0x80, 0x0,
+    0x3, 0xc0, 0xf, 0xe0, 0x7, 0xf8, 0x0, 0xff,
+    0xc0, 0xb, 0x0, 0x0, 0xbc, 0x0, 0xe9, 0x0,
+    0xf4, 0x0, 0x4, 0x0, 0x1, 0x41, 0xe0, 0x7c,
+    0x0, 0x2e, 0x0, 0x3, 0xc1, 0xe0, 0x1f, 0x0,
+    0xf, 0x40, 0xb, 0xc1, 0xe0, 0xb, 0x4b, 0x43,
+    0xc0, 0xf, 0x41, 0xe0, 0x0, 0xb, 0x42, 0xe0,
+    0x2f, 0x1, 0xf0, 0x0, 0xf, 0x0, 0xf4, 0x7c,
+    0x0, 0xff, 0xab, 0xff, 0x0, 0x78, 0x18, 0x0,
+    0x7f, 0xff, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+61A7 "憧" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x3c, 0x0, 0x0, 0x7c, 0x0, 0x0, 0x0, 0x3c,
@@ -47566,6 +50900,59 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x3f, 0xff, 0xff, 0xff, 0xff, 0x0, 0x3c, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+61A8 "憨" */
+    0x0, 0x0, 0x0, 0x0, 0x9, 0x0, 0x0, 0x3,
+    0xff, 0xff, 0x40, 0x1f, 0x0, 0x0, 0x3, 0xff,
+    0xff, 0x0, 0x2d, 0x0, 0x0, 0x0, 0x0, 0xf,
+    0x0, 0x3c, 0x0, 0x0, 0x0, 0x0, 0x2e, 0x0,
+    0xbf, 0xff, 0xfc, 0x3f, 0xff, 0xff, 0xfc, 0xff,
+    0xff, 0xfc, 0x2b, 0xfa, 0xab, 0xeb, 0xe0, 0x7,
+    0x80, 0x2, 0xd0, 0x3, 0xc7, 0xf0, 0xb, 0x40,
+    0x2, 0xfa, 0xab, 0xcf, 0xf4, 0xf, 0x0, 0x2,
+    0xff, 0xff, 0xde, 0x3c, 0x1e, 0x0, 0x2, 0xd0,
+    0x3, 0xc4, 0x2d, 0x3d, 0x0, 0x2, 0xea, 0xab,
+    0xc0, 0xf, 0xbc, 0x0, 0x2, 0xff, 0xff, 0xc0,
+    0x7, 0xf0, 0x0, 0x2, 0xd0, 0x3, 0xc0, 0x3,
+    0xf0, 0x0, 0x2, 0xd0, 0x7, 0xec, 0x1f, 0xfd,
+    0x0, 0x1b, 0xff, 0xff, 0xfc, 0xbe, 0x2f, 0x80,
+    0x7f, 0xff, 0xeb, 0xcb, 0xf8, 0xb, 0xf4, 0x29,
+    0x40, 0x3, 0xcb, 0xd0, 0x1, 0xfc, 0x0, 0x0,
+    0x3, 0xa6, 0x0, 0x4, 0x28, 0x0, 0xe0, 0xa0,
+    0x3d, 0x0, 0x3e, 0x0, 0x1, 0xf1, 0xf0, 0xf,
+    0x80, 0x1f, 0x40, 0x3, 0xd1, 0xf0, 0x3, 0xc7,
+    0x8b, 0xc0, 0xb, 0xc1, 0xf0, 0x1, 0x4b, 0x43,
+    0xe0, 0x1f, 0x0, 0xf4, 0x0, 0xf, 0x40, 0xf4,
+    0x3d, 0x0, 0xff, 0xff, 0xff, 0x0, 0xb4, 0x8,
+    0x0, 0x2f, 0xff, 0xf8, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0,
+
+    /* U+61A9 "憩" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0xf, 0x40, 0x0, 0x0, 0x1,
+    0xaf, 0x0, 0xf, 0x0, 0x0, 0x1f, 0xff, 0xff,
+    0x0, 0x1f, 0x0, 0x0, 0x1f, 0xef, 0x40, 0xf,
+    0xff, 0xff, 0xc0, 0x0, 0xf, 0x0, 0xf, 0xaa,
+    0xab, 0xc0, 0x0, 0xf, 0x0, 0xf, 0x0, 0x3,
+    0xc0, 0x2a, 0xaf, 0xaa, 0x8f, 0x0, 0x3, 0xc0,
+    0x3f, 0xff, 0xff, 0xcf, 0xff, 0xff, 0xc0, 0x0,
+    0xf, 0x0, 0xf, 0xaa, 0xab, 0xc0, 0x0, 0xf,
+    0x0, 0xf, 0x0, 0x3, 0xc0, 0x1, 0x5f, 0x54,
+    0xf, 0x0, 0x3, 0xc0, 0xb, 0xff, 0xfe, 0xf,
+    0xff, 0xff, 0xc0, 0xb, 0x95, 0x6e, 0xf, 0xff,
+    0xff, 0xc0, 0xb, 0x40, 0xe, 0xf, 0x0, 0x3,
+    0xc0, 0xb, 0x40, 0xe, 0xf, 0x0, 0x3, 0xc0,
+    0xb, 0xea, 0xbe, 0xf, 0xff, 0xff, 0xc0, 0xb,
+    0xff, 0xfe, 0xf, 0xff, 0xff, 0xc0, 0x0, 0x0,
+    0x0, 0xa0, 0x0, 0x0, 0x0, 0x1, 0x41, 0xe0,
+    0xf8, 0x0, 0xe, 0x0, 0x3, 0xd1, 0xe0, 0x3e,
+    0x0, 0xf, 0x40, 0xb, 0xc1, 0xe0, 0xf, 0x40,
+    0x7, 0xc0, 0xf, 0x1, 0xe0, 0x7, 0xb, 0x82,
+    0xf0, 0x2e, 0x1, 0xe0, 0x0, 0xb, 0x40, 0xf8,
+    0x7c, 0x1, 0xf0, 0x0, 0x1f, 0x40, 0x7c, 0x74,
+    0x0, 0xff, 0xff, 0xff, 0x0, 0x34, 0x0, 0x0,
+    0x7f, 0xff, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+61AC "憬" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0xf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3,
@@ -47735,6 +51122,60 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x2c, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+61CB "懋" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xf, 0x0, 0x0, 0x0, 0xb, 0x0, 0x0, 0x3,
+    0xc0, 0xaa, 0xaa, 0x42, 0xd0, 0x0, 0x0, 0xf0,
+    0x3f, 0xff, 0xd0, 0xb4, 0x0, 0x0, 0x3c, 0x0,
+    0x40, 0xf4, 0x2d, 0x0, 0x2, 0xaf, 0xa8, 0xb0,
+    0xba, 0xaf, 0xea, 0x0, 0xff, 0xff, 0xf, 0x7c,
+    0xff, 0xff, 0xc0, 0x1, 0xf0, 0x1, 0xfc, 0x5,
+    0xf9, 0x50, 0x0, 0x7c, 0x1a, 0xbf, 0xa8, 0x3f,
+    0x0, 0x0, 0x2f, 0xb, 0xff, 0xff, 0x1f, 0xd0,
+    0x0, 0xf, 0xf4, 0xb, 0xf3, 0x8f, 0xfc, 0x0,
+    0xb, 0xfb, 0x83, 0xbd, 0xdb, 0xfb, 0x80, 0x7,
+    0xbc, 0xb3, 0xcf, 0xb3, 0xad, 0xf4, 0x3, 0xcf,
+    0x6, 0xd3, 0xd7, 0xcb, 0x4f, 0x3, 0xd3, 0xc2,
+    0xe0, 0xf2, 0xe2, 0xd1, 0xf0, 0xa0, 0xf2, 0xe0,
+    0x3c, 0x70, 0xb4, 0x24, 0x0, 0x3c, 0x61, 0xbe,
+    0x0, 0x2d, 0x0, 0x0, 0xf, 0x0, 0x7f, 0x0,
+    0xb, 0x40, 0x0, 0x2, 0xc0, 0x0, 0x40, 0x1,
+    0xc0, 0x0, 0x1, 0x1, 0xd0, 0x78, 0x0, 0xc,
+    0x0, 0x0, 0xf0, 0x78, 0xf, 0x80, 0xb, 0xc0,
+    0x0, 0x78, 0x1e, 0x0, 0xf8, 0x0, 0xf8, 0x0,
+    0x3d, 0x7, 0x80, 0xd, 0x2d, 0xf, 0x40, 0x2f,
+    0x1, 0xe0, 0x0, 0xf, 0x2, 0xf0, 0xf, 0x0,
+    0x7c, 0x0, 0x3, 0xc0, 0x3e, 0xb, 0x80, 0xf,
+    0xea, 0xaf, 0xf0, 0x7, 0x40, 0x40, 0x1, 0xff,
+    0xff, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
+    /* U+61D1 "懑" */
+    0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x14,
+    0x0, 0x3, 0xc0, 0x1e, 0x0, 0x0, 0xf8, 0x0,
+    0xf, 0x0, 0x78, 0x0, 0x1, 0xfc, 0x7f, 0xff,
+    0xff, 0xff, 0xf8, 0x0, 0xfd, 0xaa, 0xfa, 0xaf,
+    0xea, 0x90, 0x0, 0xa0, 0x3, 0xc0, 0x1e, 0x0,
+    0x2, 0x0, 0x0, 0x5, 0x0, 0x10, 0x0, 0x1f,
+    0x40, 0xbf, 0xff, 0xff, 0xff, 0xfc, 0x2f, 0x82,
+    0xaa, 0xbe, 0xaf, 0xaa, 0xa0, 0x1f, 0xc0, 0x0,
+    0xe0, 0x3c, 0x0, 0x0, 0xe, 0xa, 0xab, 0xea,
+    0xfa, 0xa4, 0x0, 0x0, 0x3f, 0xff, 0xff, 0xff,
+    0xe0, 0x0, 0xa0, 0xf0, 0x74, 0xe, 0x7, 0x80,
+    0x3, 0xc3, 0xc2, 0xf0, 0x78, 0x1e, 0x0, 0x2e,
+    0xf, 0xf, 0xf3, 0xfc, 0x78, 0x0, 0xf0, 0x3c,
+    0xf0, 0xde, 0x7d, 0xe0, 0xb, 0x80, 0xff, 0x40,
+    0xf0, 0x77, 0x80, 0x7c, 0x3, 0xe8, 0xf, 0x40,
+    0x2e, 0x3, 0xe0, 0xf, 0x1, 0x4, 0xb, 0xf4,
+    0x7, 0x0, 0x14, 0x2e, 0x0, 0x3e, 0x40, 0x0,
+    0x90, 0x50, 0x3e, 0x0, 0x8, 0x0, 0xb, 0x87,
+    0x80, 0x3e, 0x0, 0xbc, 0x0, 0x3c, 0x1e, 0x0,
+    0x34, 0xb4, 0xf8, 0x2, 0xe0, 0x78, 0x0, 0x2,
+    0xd0, 0xf4, 0x1f, 0x1, 0xf0, 0x0, 0xf, 0x41,
+    0xf0, 0xf4, 0x3, 0xff, 0xff, 0xfc, 0x3, 0xd1,
+    0x80, 0x7, 0xff, 0xff, 0x80, 0x6, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+61D2 "懒" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0,
     0xe, 0x0, 0x2c, 0x0, 0x1e, 0x0, 0x0, 0x3,
@@ -47764,6 +51205,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x80, 0x0, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+61D4 "懔" */
+    0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0,
+    0xf, 0x0, 0x0, 0x1f, 0x0, 0x0, 0x0, 0x3,
+    0xc0, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x0, 0xf0,
+    0xff, 0xff, 0xff, 0xff, 0xf4, 0x0, 0x3c, 0x3f,
+    0xff, 0xff, 0xff, 0xfd, 0x0, 0xf, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0xf3, 0xe0, 0x6a, 0xaa,
+    0xaa, 0xaa, 0x0, 0x3c, 0xfe, 0x2f, 0xff, 0xff,
+    0xff, 0xc0, 0xe, 0x3f, 0xdb, 0x0, 0x0, 0x0,
+    0xf0, 0x3, 0x8f, 0x3f, 0xc2, 0xff, 0xfc, 0x3c,
+    0x1, 0xd3, 0xcb, 0xf0, 0xb0, 0xb, 0xf, 0x0,
+    0x74, 0xf0, 0x2c, 0x2e, 0xab, 0xc3, 0xc0, 0x2c,
+    0x3c, 0xb, 0x5, 0x55, 0x50, 0xf0, 0xf, 0xf,
+    0x2, 0xe5, 0x55, 0x55, 0x7c, 0x3, 0xc3, 0xc0,
+    0xbf, 0xff, 0xff, 0xff, 0x0, 0xf0, 0xf0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x78, 0x3c, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0xf, 0x2, 0xff, 0xff,
+    0xff, 0xfc, 0x0, 0x3, 0xc0, 0x6a, 0xaa, 0xaa,
+    0xaa, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x3c, 0x3f, 0xff, 0xff, 0xff, 0xff,
+    0x0, 0xf, 0xa, 0xaa, 0xaf, 0xea, 0xaa, 0x80,
+    0x3, 0xc0, 0x2, 0x2, 0xd1, 0x40, 0x0, 0x0,
+    0xf0, 0x2, 0xe0, 0xb4, 0xfc, 0x0, 0x0, 0x3c,
+    0x7, 0xe0, 0x2d, 0xb, 0xe0, 0x0, 0xf, 0xb,
+    0xe0, 0x1f, 0x40, 0x7f, 0x40, 0x3, 0xcf, 0xc0,
+    0xbf, 0xc0, 0x2, 0xf0, 0x0, 0xf0, 0x40, 0xf,
+    0x80, 0x0, 0x14,
+
     /* U+61E6 "懦" */
     0x0, 0x38, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x3c, 0x3, 0xff, 0xff, 0xff, 0xf4, 0x0, 0x3c,
@@ -47846,6 +51315,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x7f, 0xf4, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+6206 "戆" */
+    0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0,
+    0x1e, 0x0, 0x0, 0x7c, 0x0, 0x0, 0x0, 0xf,
+    0x0, 0x1, 0xf5, 0x55, 0x40, 0xf, 0xff, 0xff,
+    0x47, 0xff, 0xff, 0xd0, 0x6, 0xe5, 0xb9, 0x2f,
+    0xe0, 0xb, 0xc0, 0x0, 0xe0, 0x70, 0x38, 0xbd,
+    0x7e, 0x0, 0x0, 0xe0, 0xf0, 0x0, 0x1f, 0xf8,
+    0x0, 0x3f, 0xff, 0xff, 0x9b, 0xfe, 0xbf, 0xf8,
+    0x15, 0x55, 0x55, 0x7f, 0x80, 0x1, 0xbd, 0x1,
+    0x55, 0x55, 0x3, 0xff, 0xff, 0x80, 0xb, 0xff,
+    0xfe, 0x1, 0x57, 0xd5, 0x0, 0xb, 0x40, 0xe,
+    0x2a, 0xab, 0xea, 0xa4, 0xb, 0xff, 0xfe, 0x7f,
+    0xff, 0xff, 0xf4, 0xb, 0x95, 0x5e, 0x5, 0x55,
+    0x55, 0x40, 0xb, 0x95, 0x6e, 0xf, 0xff, 0xff,
+    0xd0, 0x7, 0xff, 0xfe, 0xf, 0x0, 0x2, 0xd0,
+    0x0, 0xf, 0x0, 0xf, 0x7, 0x41, 0xd0, 0x3f,
+    0xff, 0xff, 0xcf, 0xf, 0x41, 0xd0, 0x2a, 0xaf,
+    0xaa, 0x80, 0x7d, 0xfe, 0x40, 0x0, 0xf, 0x0,
+    0x6f, 0xf4, 0x1f, 0xf4, 0x0, 0xf, 0x1, 0xfe,
+    0x40, 0x1, 0xbc, 0x0, 0x50, 0x50, 0x68, 0x0,
+    0x6, 0x8, 0x0, 0xf0, 0xf0, 0x3f, 0x0, 0xb,
+    0x80, 0x2, 0xe0, 0xf0, 0xb, 0x83, 0x83, 0xd0,
+    0x7, 0xc0, 0xf0, 0x3, 0x47, 0x81, 0xf0, 0xf,
+    0x40, 0xf4, 0x0, 0xb, 0x80, 0xb8, 0x2f, 0x0,
+    0xbf, 0xff, 0xff, 0x0, 0x3c, 0xc, 0x0, 0x2f,
+    0xff, 0xf9, 0x0, 0x14, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+6208 "戈" */
     0x0, 0x0, 0x68, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x7, 0xc0, 0x78, 0x0, 0x0, 0x0, 0x0, 0x3c,
@@ -47896,6 +51393,30 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x80, 0x0, 0x0, 0x0, 0x7, 0xf4, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+620B "戋" */
+    0x0, 0x0, 0xa0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xf, 0x40, 0xb4, 0x0, 0x0, 0x0, 0x0, 0xb8,
+    0xb, 0xe0, 0x0, 0x0, 0x0, 0xb, 0x80, 0x1f,
+    0x80, 0x0, 0x0, 0x0, 0xbc, 0x0, 0x3e, 0x0,
+    0x0, 0x0, 0x7, 0xc0, 0x2, 0xea, 0xe0, 0x0,
+    0x1, 0xbe, 0xff, 0xff, 0xfe, 0x2, 0xff, 0xff,
+    0xff, 0xff, 0xa9, 0x40, 0x3f, 0xff, 0xbe, 0x40,
+    0x0, 0x0, 0x1, 0x40, 0x3, 0xe0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x2e, 0x0, 0x0, 0x0, 0x40,
+    0x0, 0x1, 0xf0, 0x5, 0xaf, 0xfc, 0x0, 0x0,
+    0x6f, 0xff, 0xff, 0xff, 0xc1, 0xaf, 0xff, 0xff,
+    0xfe, 0x94, 0x0, 0xbf, 0xff, 0xff, 0xd0, 0x0,
+    0x10, 0x7, 0xa5, 0x0, 0x7c, 0x0, 0xf, 0x80,
+    0x0, 0x0, 0x3, 0xd0, 0x7, 0xf4, 0x0, 0x0,
+    0x0, 0x3e, 0x3, 0xf8, 0x0, 0x0, 0x0, 0x1,
+    0xf6, 0xfd, 0x0, 0x0, 0x0, 0x0, 0xf, 0xfe,
+    0x0, 0x0, 0x0, 0x0, 0x7, 0xff, 0x0, 0x3,
+    0x80, 0x0, 0x1b, 0xff, 0xf0, 0x0, 0x3c, 0x0,
+    0x6f, 0xfe, 0xf, 0xc0, 0x7, 0x82, 0xff, 0xfd,
+    0x0, 0x7f, 0x0, 0xf4, 0xbf, 0xf4, 0x0, 0x1,
+    0xfe, 0xbf, 0x3, 0x90, 0x0, 0x0, 0x7, 0xff,
+    0xe0, 0x0, 0x0, 0x0, 0x0, 0xb, 0xf4, 0x0,
+
     /* U+620C "戌" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0xf, 0x0, 0xd0, 0x0, 0x0, 0x0,
@@ -48294,6 +51815,58 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x2f, 0xbc, 0xf, 0xff, 0xff, 0xfd, 0x0, 0x3f,
     0xf0, 0x2f, 0xff, 0xff, 0xf4, 0x0, 0x3e, 0x0,
 
+    /* U+6222 "戢" */
+    0x0, 0x0, 0x0, 0x0, 0x74, 0x0, 0x0, 0xa,
+    0xaa, 0xaa, 0x81, 0xe0, 0x40, 0x0, 0x3f, 0xff,
+    0xff, 0x7, 0x87, 0xc0, 0x0, 0xf0, 0x0, 0x3c,
+    0x1e, 0xf, 0xc0, 0x3, 0xc0, 0x0, 0xf0, 0x78,
+    0xf, 0xc0, 0xf, 0xaa, 0xab, 0xc0, 0xf0, 0xf,
+    0x80, 0x3f, 0xff, 0xff, 0x3, 0xc0, 0xe, 0x0,
+    0x0, 0x0, 0x0, 0xf, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x3c, 0x0, 0x0, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xf3, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0x80, 0xf0, 0x0, 0x78, 0xf, 0x0,
+    0x0, 0x3, 0xc0, 0x1, 0xe0, 0x3d, 0x2, 0xc0,
+    0xf, 0xff, 0xff, 0x80, 0xb4, 0xf, 0x0, 0x3f,
+    0xff, 0xfe, 0x2, 0xe0, 0xb8, 0x0, 0xf0, 0x0,
+    0x78, 0x7, 0x83, 0xc0, 0x3, 0xc0, 0x1, 0xe0,
+    0xf, 0x2e, 0x0, 0xf, 0xff, 0xff, 0x80, 0x3d,
+    0xf0, 0x0, 0x3f, 0xff, 0xfe, 0x0, 0xff, 0x40,
+    0x0, 0xf0, 0x0, 0x78, 0x2, 0xf8, 0x0, 0x3,
+    0xc0, 0x1, 0xf5, 0xb, 0xc0, 0x30, 0xf, 0x1,
+    0x6f, 0xf8, 0xbf, 0x1, 0xe1, 0x7f, 0xff, 0xff,
+    0x9b, 0xfd, 0xb, 0x6f, 0xff, 0xf9, 0xb8, 0xfd,
+    0x7c, 0x3c, 0x69, 0x40, 0x1, 0xe3, 0xc0, 0xfa,
+    0xe0, 0x0, 0x0, 0x7, 0x84, 0x1, 0xff, 0x0,
+    0x0, 0x0, 0x1e, 0x0, 0x1, 0xf4, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0,
+
+    /* U+6224 "戤" */
+    0x0, 0x0, 0x0, 0x0, 0xf, 0x0, 0x0, 0xa,
+    0xaa, 0xaa, 0xa0, 0xf, 0x3c, 0x0, 0x1f, 0xff,
+    0xff, 0xe0, 0xf, 0x2f, 0x0, 0x1, 0xe0, 0x2,
+    0xd0, 0xf, 0xb, 0xc0, 0x1, 0xd0, 0x2, 0xc0,
+    0xf, 0x3, 0xf0, 0x1, 0xd0, 0x3, 0xff, 0xf,
+    0x0, 0xd0, 0x1, 0xfa, 0xab, 0xff, 0xf, 0x0,
+    0x0, 0x2, 0xff, 0xff, 0xb, 0xf, 0x5a, 0xf8,
+    0x2, 0xc0, 0xf, 0xb, 0x6f, 0xff, 0xf8, 0x3,
+    0xed, 0x2d, 0xf, 0xbf, 0xe5, 0x0, 0x3, 0x8f,
+    0xf8, 0xf, 0x1b, 0x40, 0x0, 0xb, 0x43, 0xf4,
+    0xf, 0xb, 0x40, 0xe0, 0xf, 0xb, 0xfc, 0xf,
+    0x7, 0x82, 0xd0, 0x3d, 0x7f, 0x1d, 0xfe, 0x7,
+    0x87, 0xc0, 0x7c, 0xf8, 0x1, 0xfc, 0x7, 0xcf,
+    0x40, 0x20, 0x0, 0x0, 0x0, 0x3, 0xee, 0x0,
+    0xb, 0xff, 0xff, 0xfd, 0x3, 0xfc, 0x0, 0xb,
+    0xff, 0xff, 0xfe, 0x3, 0xf0, 0x0, 0xb, 0xf,
+    0xe, 0x1e, 0x3, 0xe0, 0x0, 0xb, 0xf, 0xe,
+    0xe, 0xf, 0xe0, 0x0, 0xb, 0xf, 0xe, 0xe,
+    0x3f, 0xf0, 0x24, 0xb, 0xf, 0xe, 0xe, 0x7c,
+    0xf0, 0x3c, 0xb, 0xf, 0xe, 0xe, 0x20, 0xb4,
+    0x3c, 0xb, 0xf, 0x1e, 0x5e, 0x40, 0x7c, 0x78,
+    0xff, 0xff, 0xff, 0xff, 0xd0, 0x3e, 0xf4, 0xff,
+    0xea, 0xaa, 0x55, 0x40, 0x1f, 0xf0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x7, 0xd0,
+
     /* U+6225 "戥" */
     0x0, 0x0, 0x0, 0x0, 0x38, 0x0, 0x0, 0xa,
     0xaa, 0xaa, 0xa0, 0x3c, 0x38, 0x0, 0xf, 0xff,
@@ -48696,6 +52269,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x2f, 0xff, 0xff, 0xff, 0xe4, 0x8, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+6249 "扉" */
+    0x0, 0x0, 0x0, 0x18, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xf4, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x2, 0xe0, 0x0, 0x0, 0x0, 0x3f, 0xff, 0xff,
+    0xff, 0xff, 0xf0, 0x1, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xc0, 0x7, 0xc0, 0x0, 0x0, 0x0, 0xf,
+    0x0, 0x1f, 0x0, 0x0, 0x0, 0x0, 0x3c, 0x0,
+    0x7c, 0x0, 0x0, 0x0, 0x0, 0xf0, 0x1, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xc0, 0x7, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0x0, 0x1f, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x7c, 0x0, 0x3c, 0xf, 0x0,
+    0x0, 0x1, 0xf0, 0x0, 0xf0, 0x3c, 0x0, 0x0,
+    0x7, 0xdf, 0xff, 0xc0, 0xff, 0xff, 0xc0, 0x1f,
+    0xbf, 0xff, 0x3, 0xff, 0xff, 0x0, 0x78, 0x0,
+    0x3c, 0xf, 0x0, 0x0, 0x1, 0xe0, 0x0, 0xf0,
+    0x3c, 0x0, 0x0, 0xb, 0x80, 0x3, 0xc0, 0xf0,
+    0x0, 0x0, 0x2d, 0x3f, 0xff, 0x3, 0xff, 0xfe,
+    0x0, 0xf0, 0xaa, 0xbc, 0xf, 0xaa, 0xa4, 0x3,
+    0xc0, 0x0, 0xf0, 0x3c, 0x0, 0x0, 0x1f, 0x0,
+    0x3, 0xc0, 0xf0, 0x0, 0x0, 0xf9, 0xaa, 0xaf,
+    0x3, 0xea, 0xaa, 0x43, 0xcb, 0xff, 0xfc, 0xf,
+    0xff, 0xfe, 0x2f, 0x0, 0x0, 0xf0, 0x3d, 0x0,
+    0x0, 0xf4, 0x0, 0x3, 0xc0, 0xf0, 0x0, 0xb,
+    0xc0, 0x0, 0xf, 0x3, 0xc0, 0x0, 0x5, 0x0,
+    0x0, 0x3c, 0xf, 0x0, 0x0,
+
     /* U+624B "手" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x16, 0x0, 0x0,
     0x5, 0x56, 0xaf, 0xff, 0xfd, 0x0, 0x3f, 0xff,
@@ -48720,6 +52319,22 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0x0, 0x7f, 0xf4, 0x0, 0x0,
     0x0, 0x0, 0x0, 0xa5, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+624C "扌" */
+    0x0, 0x0, 0x40, 0x0, 0x0, 0xb, 0x80, 0x0,
+    0x0, 0x2e, 0x0, 0x0, 0x0, 0xb8, 0x0, 0x0,
+    0x2, 0xe0, 0x0, 0x0, 0xb, 0x80, 0x0, 0xff,
+    0xff, 0xff, 0x83, 0xff, 0xff, 0xfe, 0x0, 0x3,
+    0xe0, 0x0, 0x0, 0xb, 0x80, 0x0, 0x0, 0x2e,
+    0x0, 0x0, 0x0, 0xb8, 0x0, 0x0, 0x2, 0xe0,
+    0x4, 0x0, 0xb, 0x9b, 0xf0, 0x0, 0x3f, 0xff,
+    0x80, 0x6f, 0xff, 0x90, 0x7f, 0xff, 0xe0, 0x0,
+    0xfe, 0x4b, 0x80, 0x1, 0x0, 0x2e, 0x0, 0x0,
+    0x0, 0xb8, 0x0, 0x0, 0x2, 0xe0, 0x0, 0x0,
+    0xb, 0x80, 0x0, 0x0, 0x2e, 0x0, 0x0, 0x0,
+    0xf8, 0x0, 0x0, 0x3, 0xe0, 0x0, 0xb, 0xff,
+    0x40, 0x0, 0x1f, 0xf8, 0x0, 0x0, 0x14, 0x0,
+    0x0,
+
     /* U+624D "才" */
     0x0, 0x0, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0xf4, 0x0, 0x0, 0x0, 0x0,
@@ -49413,33 +53028,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x74, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+6283 "抃" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x14, 0x0, 0x0, 0xb8, 0x0, 0x0, 0x0, 0x3c,
-    0x0, 0x0, 0xbc, 0x0, 0x0, 0x0, 0x3c, 0x0,
-    0x0, 0x3c, 0x0, 0x0, 0x0, 0x3c, 0x0, 0x0,
-    0x3d, 0x0, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x2e,
-    0x0, 0x0, 0x0, 0x3d, 0x0, 0x0, 0x2f, 0x0,
-    0x0, 0x3f, 0xff, 0xfd, 0xff, 0xff, 0xff, 0xfc,
-    0x3f, 0xff, 0xfd, 0xff, 0xff, 0xff, 0xfc, 0x0,
-    0x3c, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0x3c,
-    0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0x3c, 0x0,
-    0x0, 0xf0, 0x0, 0x0, 0x0, 0x3c, 0x0, 0x0,
-    0xf0, 0x0, 0x0, 0x0, 0x3c, 0x0, 0x0, 0xfb,
-    0x80, 0x0, 0x0, 0x3d, 0xbc, 0x0, 0xff, 0xf4,
-    0x0, 0x0, 0x7f, 0xfc, 0x0, 0xf1, 0xfe, 0x0,
-    0x6f, 0xff, 0x90, 0x0, 0xf0, 0x2f, 0xc0, 0xbf,
-    0xfc, 0x0, 0x0, 0xf0, 0x7, 0xf0, 0x54, 0x3c,
-    0x0, 0x0, 0xf0, 0x0, 0xf8, 0x0, 0x3c, 0x0,
-    0x0, 0xf0, 0x0, 0x30, 0x0, 0x3c, 0x0, 0x0,
-    0xf0, 0x0, 0x0, 0x0, 0x3c, 0x0, 0x0, 0xf0,
-    0x0, 0x0, 0x0, 0x3c, 0x0, 0x0, 0xf0, 0x0,
-    0x0, 0x0, 0x3c, 0x0, 0x0, 0xf0, 0x0, 0x0,
-    0x0, 0x3c, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x15,
-    0xbc, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x2f, 0xfc,
-    0x0, 0x0, 0xf0, 0x0, 0x0, 0x1f, 0xa0, 0x0,
-    0x0, 0xf0, 0x0, 0x0,
-
     /* U+6284 "抄" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x3, 0xc0, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x0,
@@ -49599,34 +53187,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xf0, 0x0, 0xf0, 0x0, 0x2e, 0x9, 0x40, 0xa0,
     0x0, 0xf0, 0x0, 0x4,
 
-    /* U+6294 "抔" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x7, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1,
-    0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7c,
-    0xb, 0xff, 0xff, 0xff, 0xf8, 0x0, 0x1f, 0x2,
-    0xff, 0xff, 0xff, 0xfe, 0x0, 0x7, 0xc0, 0x15,
-    0x55, 0xf5, 0x55, 0x0, 0x56, 0xf5, 0x40, 0x0,
-    0xb8, 0x0, 0x0, 0x3f, 0xff, 0xf0, 0x0, 0x3d,
-    0x0, 0x0, 0xf, 0xff, 0xfc, 0x0, 0x1f, 0x0,
-    0x0, 0x0, 0x7, 0xc0, 0x0, 0xf, 0x40, 0x0,
-    0x0, 0x1, 0xf0, 0x0, 0xb, 0xc0, 0x0, 0x0,
-    0x0, 0x7c, 0x0, 0x3, 0xfc, 0x40, 0x0, 0x0,
-    0x1f, 0x0, 0x2, 0xff, 0xb4, 0x0, 0x0, 0x7,
-    0xdb, 0x1, 0xfb, 0xdf, 0x40, 0x0, 0x2, 0xff,
-    0xc0, 0xf9, 0xf2, 0xf4, 0x0, 0x6f, 0xff, 0x40,
-    0xfc, 0x7c, 0x2f, 0x40, 0x3f, 0xff, 0x0, 0xbd,
-    0x1f, 0x2, 0xf0, 0x9, 0x7, 0xc0, 0x7e, 0x7,
-    0xc0, 0x3f, 0x0, 0x1, 0xf0, 0x7e, 0x1, 0xf0,
-    0x3, 0xf0, 0x0, 0x7c, 0x7f, 0x0, 0x7c, 0x0,
-    0x7e, 0x0, 0x1f, 0x3f, 0x0, 0x1f, 0x0, 0xb,
-    0x0, 0x7, 0xc3, 0x0, 0x7, 0xc0, 0x0, 0x0,
-    0x1, 0xf0, 0x0, 0x1, 0xf0, 0x0, 0x0, 0x0,
-    0x7c, 0x0, 0x0, 0x7c, 0x0, 0x0, 0x0, 0x1f,
-    0x0, 0x0, 0x1f, 0x0, 0x0, 0x2, 0xbf, 0x80,
-    0x0, 0x7, 0xc0, 0x0, 0x0, 0xff, 0xd0, 0x0,
-    0x1, 0xf0, 0x0, 0x0, 0x1a, 0x40, 0x0, 0x0,
-    0x7c, 0x0, 0x0,
-
     /* U+6295 "投" */
     0x0, 0x28, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x3c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c,
@@ -50121,6 +53681,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x3, 0xc0, 0x0, 0x0, 0x25, 0x0, 0x0, 0x0,
     0xf0, 0x0, 0x0,
 
+    /* U+62BB "抻" */
+    0x0, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0,
+    0xf4, 0x0, 0x0, 0x7c, 0x0, 0x0, 0x3, 0xd0,
+    0x0, 0x1, 0xf0, 0x0, 0x0, 0xf, 0x40, 0x0,
+    0x7, 0xc0, 0x0, 0x0, 0x3d, 0x0, 0x0, 0x1f,
+    0x0, 0x0, 0x0, 0xf4, 0xf, 0xff, 0xff, 0xff,
+    0xc0, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xff, 0x3,
+    0xff, 0xfc, 0xf0, 0x7, 0xc0, 0x3c, 0x5, 0x7e,
+    0x53, 0xc0, 0x1f, 0x0, 0xf0, 0x0, 0xf4, 0xf,
+    0x0, 0x7c, 0x3, 0xc0, 0x3, 0xd0, 0x3c, 0x1,
+    0xf0, 0xf, 0x0, 0xf, 0x40, 0xf0, 0x7, 0xc0,
+    0x3c, 0x0, 0x3d, 0x3, 0xd5, 0x5f, 0x55, 0xf0,
+    0x0, 0xf5, 0x8f, 0xff, 0xff, 0xff, 0xc0, 0x3,
+    0xff, 0x3f, 0xff, 0xff, 0xff, 0x1, 0xbf, 0xf8,
+    0xf0, 0x3, 0xc0, 0x3c, 0x3f, 0xfd, 0x3, 0xc0,
+    0xf, 0x0, 0xf0, 0xe4, 0xf4, 0xf, 0x0, 0x3c,
+    0x3, 0xc0, 0x3, 0xd0, 0x3c, 0x0, 0xf0, 0xf,
+    0x0, 0xf, 0x40, 0xf0, 0x7, 0xc0, 0x3c, 0x0,
+    0x3d, 0x3, 0xff, 0xff, 0xff, 0xf0, 0x0, 0xf4,
+    0xf, 0xff, 0xff, 0xff, 0xc0, 0x3, 0xd0, 0x0,
+    0x0, 0xf0, 0x0, 0x0, 0xf, 0x40, 0x0, 0x3,
+    0xc0, 0x0, 0x0, 0x3d, 0x0, 0x0, 0xf, 0x0,
+    0x0, 0x2f, 0xf0, 0x0, 0x0, 0x3c, 0x0, 0x0,
+    0xbf, 0x40, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x3, 0xc0, 0x0,
+
     /* U+62BC "押" */
     0x0, 0x64, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb,
     0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb8, 0xb,
@@ -50226,33 +53812,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x3, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+62C3 "拃" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0xa0, 0x0, 0x3d, 0x0, 0x0, 0x0, 0x3, 0xc0,
-    0x0, 0xf0, 0x0, 0x0, 0x0, 0xf, 0x0, 0x7,
-    0xc0, 0x0, 0x0, 0x0, 0x3c, 0x0, 0x3d, 0x0,
-    0x0, 0x0, 0x0, 0xf0, 0x1, 0xfe, 0xaa, 0xaa,
-    0x90, 0x7, 0xc0, 0xb, 0xff, 0xff, 0xff, 0x8b,
-    0xff, 0xfc, 0x3d, 0xf9, 0x55, 0x55, 0x2f, 0xff,
-    0xf3, 0xe3, 0xc0, 0x0, 0x0, 0x0, 0xf0, 0x1f,
-    0xf, 0x0, 0x0, 0x0, 0x3, 0xc0, 0xf8, 0x3c,
-    0x0, 0x0, 0x0, 0xf, 0xb, 0xc0, 0xf0, 0x0,
-    0x0, 0x0, 0x3c, 0x1c, 0x3, 0xff, 0xff, 0x80,
-    0x0, 0xf1, 0x80, 0xf, 0xff, 0xfe, 0x0, 0x3,
-    0xff, 0x0, 0x3d, 0x0, 0x0, 0x1, 0xbf, 0xf4,
-    0x0, 0xf0, 0x0, 0x0, 0xbf, 0xfc, 0x0, 0x3,
-    0xc0, 0x0, 0x1, 0xf5, 0xf0, 0x0, 0xf, 0x0,
-    0x0, 0x0, 0x3, 0xc0, 0x0, 0x3c, 0x0, 0x0,
-    0x0, 0xf, 0x0, 0x0, 0xff, 0xff, 0xf0, 0x0,
-    0x3c, 0x0, 0x3, 0xff, 0xff, 0xc0, 0x0, 0xf0,
-    0x0, 0xf, 0x40, 0x0, 0x0, 0x3, 0xc0, 0x0,
-    0x3c, 0x0, 0x0, 0x0, 0xf, 0x0, 0x0, 0xf0,
-    0x0, 0x0, 0x0, 0x7c, 0x0, 0x3, 0xc0, 0x0,
-    0x0, 0x1b, 0xf0, 0x0, 0xf, 0x0, 0x0, 0x1,
-    0xff, 0x80, 0x0, 0x3c, 0x0, 0x0, 0x3, 0xe4,
-    0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0,
-
     /* U+62C4 "拄" */
     0x0, 0x78, 0x0, 0x0, 0xb4, 0x0, 0x0, 0x0,
     0x7c, 0x0, 0x0, 0xb8, 0x0, 0x0, 0x0, 0x7c,
@@ -50898,32 +54457,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xf8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+62E4 "拤" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1,
-    0xe0, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x7, 0xc0,
-    0x0, 0xf, 0x0, 0x0, 0x0, 0x1f, 0x0, 0x0,
-    0x3c, 0x0, 0x0, 0x0, 0x7c, 0x0, 0x0, 0xf0,
-    0x0, 0x0, 0x1, 0xf0, 0x0, 0x3, 0xff, 0xff,
-    0x3, 0xff, 0xff, 0x40, 0xf, 0xff, 0xfd, 0xf,
-    0xff, 0xfd, 0x0, 0x3c, 0x0, 0x0, 0x15, 0xbd,
-    0x50, 0x0, 0xf0, 0x0, 0x0, 0x1, 0xf0, 0x0,
-    0x3, 0xc0, 0x0, 0x0, 0x7, 0xc0, 0x0, 0xf,
-    0x0, 0x0, 0x0, 0x1f, 0x0, 0x0, 0x3c, 0x0,
-    0x0, 0x0, 0x7c, 0xb, 0xff, 0xff, 0xff, 0xfc,
-    0x1, 0xf0, 0x2f, 0xff, 0xff, 0xff, 0xf0, 0x7,
-    0xca, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2f, 0xfc,
-    0x0, 0x3c, 0x0, 0x0, 0x6f, 0xff, 0x80, 0x0,
-    0xf2, 0x0, 0x3, 0xff, 0xf0, 0x0, 0x3, 0xff,
-    0x40, 0x5, 0x7, 0xc0, 0x0, 0xf, 0x7f, 0xc0,
-    0x0, 0x1f, 0x0, 0x0, 0x3c, 0x1f, 0xe0, 0x0,
-    0x7c, 0x0, 0x0, 0xf0, 0xf, 0xf0, 0x1, 0xf0,
-    0x0, 0x3, 0xc0, 0xb, 0xe0, 0x7, 0xc0, 0x0,
-    0xf, 0x0, 0x7, 0x0, 0x1f, 0x0, 0x0, 0x3c,
-    0x0, 0x0, 0x1, 0xb8, 0x0, 0x0, 0xf0, 0x0,
-    0x0, 0xff, 0xe0, 0x0, 0x3, 0xc0, 0x0, 0x2,
-    0xfe, 0x0, 0x0, 0xf, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x3c, 0x0, 0x0,
-
     /* U+62E5 "拥" */
     0x0, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf,
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf0, 0xf,
@@ -51634,6 +55167,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+631A "挚" */
+    0x0, 0x1e, 0x0, 0x2, 0xc0, 0x0, 0x0, 0x0,
+    0x1f, 0x0, 0x2, 0xc0, 0x0, 0x0, 0x0, 0x1f,
+    0x0, 0x2, 0xc0, 0x0, 0x0, 0x3f, 0xff, 0xfd,
+    0xff, 0xff, 0xfc, 0x0, 0x2a, 0xbf, 0xa9, 0xab,
+    0xfa, 0xbc, 0x0, 0x0, 0x1f, 0x0, 0x3, 0xc0,
+    0x3c, 0x0, 0x0, 0x1f, 0x58, 0x83, 0xc0, 0x3c,
+    0x0, 0x5, 0xbf, 0xfd, 0xff, 0xc0, 0x3c, 0x0,
+    0xbf, 0xff, 0x40, 0x2f, 0xd0, 0x3c, 0x1c, 0x65,
+    0x1f, 0x0, 0x2f, 0xfd, 0x2c, 0x2c, 0x0, 0x1e,
+    0x0, 0xbc, 0x1f, 0x1d, 0x38, 0x2, 0xbe, 0x7,
+    0xf0, 0x0, 0xf, 0xf4, 0x3, 0xfc, 0xb, 0x80,
+    0x0, 0x7, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x55,
+    0xa9, 0x0, 0x3, 0xff, 0xff, 0xff, 0xff, 0xfe,
+    0x0, 0x3, 0xfe, 0xaa, 0xbd, 0x54, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x7c, 0x0, 0x0, 0x0, 0x1,
+    0xaa, 0xaa, 0xbe, 0xaa, 0xa9, 0x0, 0x2, 0xff,
+    0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0,
+    0x7c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7c,
+    0x0, 0x0, 0x0, 0x3f, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xf0, 0x2f, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xe0, 0x0, 0x0, 0x0, 0x7c, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0xbc, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xbf, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x7f, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+631B "挛" */
     0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0xf4, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -51903,33 +55463,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xe0, 0x0, 0x0, 0x1f, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x1f, 0x0, 0x0,
 
-    /* U+6326 "挦" */
-    0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x2e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2e,
-    0x0, 0xaa, 0xaa, 0xaa, 0xa0, 0x0, 0x2e, 0x1,
-    0xff, 0xff, 0xff, 0xf0, 0x0, 0x2e, 0x0, 0x55,
-    0x55, 0x55, 0xf0, 0x0, 0x2e, 0x0, 0x0, 0x0,
-    0x0, 0xf0, 0xf, 0xff, 0xf4, 0x0, 0x0, 0x0,
-    0xf0, 0xf, 0xff, 0xf4, 0xbf, 0xff, 0xff, 0xf0,
-    0x0, 0x2e, 0x0, 0xbf, 0xff, 0xff, 0xf0, 0x0,
-    0x2e, 0x0, 0x0, 0x0, 0x0, 0xf0, 0x0, 0x2e,
-    0x0, 0x0, 0x0, 0x0, 0xf0, 0x0, 0x2e, 0x0,
-    0x0, 0x0, 0x0, 0xf0, 0x0, 0x2e, 0x72, 0xff,
-    0xff, 0xff, 0xf0, 0x0, 0x2f, 0xf6, 0xff, 0xff,
-    0xff, 0xf0, 0x1, 0xff, 0xd0, 0x0, 0x0, 0x5,
-    0x0, 0x3f, 0xfe, 0x0, 0x0, 0x0, 0xf, 0x0,
-    0x3e, 0x6e, 0x0, 0x0, 0x0, 0xf, 0x0, 0x0,
-    0x2e, 0x1f, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x2e,
-    0x1f, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x2e, 0x0,
-    0x60, 0x0, 0xf, 0x40, 0x0, 0x2e, 0x0, 0xf8,
-    0x0, 0xf, 0x0, 0x0, 0x2e, 0x0, 0x3f, 0x0,
-    0xf, 0x0, 0x0, 0x2e, 0x0, 0xf, 0xc0, 0xf,
-    0x0, 0x0, 0x2d, 0x0, 0x3, 0x40, 0xf, 0x0,
-    0x5, 0xbd, 0x0, 0x0, 0x0, 0x6f, 0x0, 0xf,
-    0xfc, 0x0, 0x0, 0x1f, 0xff, 0x0, 0xb, 0xa0,
-    0x0, 0x0, 0xf, 0xf8, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0,
-
     /* U+6328 "挨" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x6, 0x40, 0x0, 0xe, 0x0, 0x0, 0x0, 0x1,
@@ -52330,6 +55863,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xf8, 0x3f, 0xd7, 0xc0, 0xbe, 0x1, 0xff, 0xc0,
     0x69, 0x8, 0x0, 0x0, 0x3, 0xa4, 0x0,
 
+    /* U+634D "捍" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x7, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1,
+    0xe0, 0xa, 0xaa, 0xaa, 0xaa, 0x0, 0x0, 0x78,
+    0x3, 0xff, 0xff, 0xff, 0xc0, 0x0, 0x1e, 0x0,
+    0xf4, 0x0, 0x1, 0xf0, 0x0, 0x7, 0x80, 0x3c,
+    0x0, 0x0, 0x3c, 0x0, 0x2, 0xe0, 0xf, 0x0,
+    0x0, 0xf, 0x0, 0x3f, 0xff, 0xf3, 0xff, 0xff,
+    0xff, 0xc0, 0xf, 0xff, 0xfc, 0xff, 0xff, 0xff,
+    0xf0, 0x0, 0x7, 0x80, 0x3c, 0x0, 0x0, 0x3c,
+    0x0, 0x1, 0xe0, 0xf, 0x0, 0x0, 0xf, 0x0,
+    0x0, 0x78, 0x3, 0xff, 0xff, 0xff, 0xc0, 0x0,
+    0x1e, 0x0, 0xff, 0xff, 0xff, 0xf0, 0x0, 0x7,
+    0xfd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0xff,
+    0x40, 0x0, 0x0, 0x0, 0x0, 0x2f, 0xfe, 0x1,
+    0x55, 0x55, 0x55, 0x40, 0x3f, 0xfe, 0x3, 0xff,
+    0xff, 0xff, 0xf8, 0xa, 0x47, 0x80, 0xbf, 0xff,
+    0xff, 0xfe, 0x0, 0x1, 0xe0, 0x0, 0x0, 0xf0,
+    0x0, 0x0, 0x0, 0x78, 0x0, 0x0, 0x3c, 0x0,
+    0x0, 0x0, 0x1e, 0x0, 0x0, 0xf, 0x0, 0x0,
+    0x0, 0x7, 0x87, 0xff, 0xff, 0xff, 0xff, 0xc0,
+    0x1, 0xe1, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x0,
+    0x78, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x2e,
+    0x0, 0x0, 0xf, 0x0, 0x0, 0x0, 0xaf, 0x80,
+    0x0, 0x3, 0xc0, 0x0, 0x0, 0x3f, 0xc0, 0x0,
+    0x0, 0xf0, 0x0, 0x0, 0x5, 0x40, 0x0, 0x0,
+    0x3c, 0x0, 0x0,
+
     /* U+634E "捎" */
     0x0, 0x0, 0x0, 0x0, 0x14, 0x0, 0x0, 0x1,
     0xe0, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x7, 0x80,
@@ -52436,33 +55997,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xc0, 0x0, 0x2f, 0x80, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+635C "捜" */
-    0x0, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0,
-    0x3c, 0x0, 0x0, 0xf, 0x0, 0x0, 0x0, 0x3c,
-    0x0, 0x0, 0xf, 0x0, 0x0, 0x0, 0x3c, 0x0,
-    0x0, 0xf, 0x0, 0x0, 0x0, 0x3c, 0x3, 0xff,
-    0xff, 0xff, 0xf0, 0x0, 0x3c, 0x3, 0xff, 0xff,
-    0xff, 0xf0, 0xa, 0xbe, 0xa3, 0xc0, 0xf, 0x0,
-    0xf0, 0xf, 0xff, 0xf3, 0xc0, 0xf, 0x0, 0xf0,
-    0x5, 0x7d, 0x53, 0xff, 0xff, 0xff, 0xf0, 0x0,
-    0x3c, 0x3, 0xff, 0xff, 0xff, 0xf0, 0x0, 0x3c,
-    0x3, 0xc0, 0xf, 0x0, 0xf0, 0x0, 0x3c, 0x3,
-    0xc0, 0xf, 0x0, 0xf0, 0x0, 0x3c, 0x3, 0xc0,
-    0x1f, 0x0, 0xf0, 0x0, 0x3e, 0xd3, 0xff, 0xff,
-    0xff, 0xf0, 0x0, 0x7f, 0xd3, 0xff, 0xff, 0xff,
-    0xf0, 0x2f, 0xfe, 0x0, 0x0, 0xf, 0x0, 0x0,
-    0x3f, 0xbc, 0x0, 0x0, 0xf, 0x0, 0x0, 0x24,
-    0x3c, 0xf, 0xff, 0xff, 0xff, 0xf0, 0x0, 0x3c,
-    0xf, 0xff, 0xff, 0xff, 0xf0, 0x0, 0x3c, 0x0,
-    0xf8, 0x0, 0x3, 0xd0, 0x0, 0x3c, 0x0, 0x3e,
-    0x0, 0xf, 0x80, 0x0, 0x3c, 0x0, 0x1f, 0x80,
-    0x3f, 0x0, 0x0, 0x3c, 0x0, 0x3, 0xf1, 0xfc,
-    0x0, 0x0, 0x3c, 0x0, 0x0, 0xff, 0xe0, 0x0,
-    0x0, 0x3c, 0x0, 0x6, 0xff, 0xe4, 0x0, 0xb,
-    0xfc, 0x6, 0xbf, 0xf6, 0xff, 0x94, 0xf, 0xf8,
-    0x3f, 0xfe, 0x0, 0x2f, 0xfd, 0x5, 0x40, 0x1e,
-    0x40, 0x0, 0x0, 0x6c,
-
     /* U+635E "捞" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0xb4, 0x0, 0xf, 0x0, 0xf4, 0x0, 0x0, 0xb4,
@@ -52706,30 +56240,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x3c, 0x0, 0xf, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+636F "捯" */
-    0x0, 0x38, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0,
-    0xf0, 0x0, 0x0, 0x0, 0x0, 0xf0, 0x3, 0xc1,
-    0xaa, 0xaa, 0x80, 0x3, 0xc0, 0xf, 0xf, 0xff,
-    0xff, 0x0, 0xf, 0x0, 0x3c, 0x1a, 0xbe, 0xa8,
-    0x3c, 0x3c, 0x16, 0xf5, 0x2, 0xd0, 0x0, 0xf0,
-    0xf0, 0xff, 0xfc, 0xf, 0x1c, 0x3, 0xc3, 0xc2,
-    0xaf, 0xa0, 0xb4, 0xb8, 0xf, 0xf, 0x0, 0x3c,
-    0x3, 0xc0, 0xf0, 0x3c, 0x3c, 0x0, 0xf0, 0x2d,
-    0x2, 0xe0, 0xf0, 0xf0, 0x3, 0xc1, 0xfa, 0xaf,
-    0xc3, 0xc3, 0xc0, 0xf, 0xf, 0xff, 0xff, 0x4f,
-    0xf, 0x0, 0x3c, 0x59, 0x7d, 0x1e, 0x3c, 0x3c,
-    0x0, 0xfe, 0x0, 0xf0, 0x0, 0xf0, 0xf0, 0x6f,
-    0xf4, 0x3, 0xc0, 0x3, 0xc3, 0xcf, 0xff, 0x0,
-    0xf, 0x0, 0xf, 0xf, 0x29, 0x7c, 0x1a, 0xbe,
-    0xa4, 0x3c, 0x3c, 0x0, 0xf0, 0xbf, 0xff, 0xf0,
-    0xf0, 0xf0, 0x3, 0xc1, 0x57, 0xe5, 0x43, 0xc3,
-    0xc0, 0xf, 0x0, 0xf, 0x0, 0xf, 0xf, 0x0,
-    0x3c, 0x0, 0x3c, 0x0, 0x24, 0x3c, 0x0, 0xf0,
-    0x0, 0xf0, 0x0, 0x0, 0xf0, 0x3, 0xc0, 0x3,
-    0xeb, 0xe0, 0x3, 0xc0, 0x1f, 0x1f, 0xff, 0xff,
-    0x80, 0xf, 0x6, 0xf8, 0x3f, 0xe9, 0x40, 0x1a,
-    0xfc, 0x3f, 0xc0, 0x0, 0x0, 0x0, 0xbf, 0xd0,
-    0x54, 0x0, 0x0, 0x0, 0x0, 0x94, 0x0,
+    /* U+6371 "捱" */
+    0x0, 0x74, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xb4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb4,
+    0xf, 0xff, 0xff, 0xff, 0xfc, 0x0, 0xb4, 0xf,
+    0xff, 0xff, 0xff, 0xfc, 0x0, 0xb4, 0xf, 0x0,
+    0x6, 0x0, 0x0, 0x2a, 0xfe, 0x8f, 0x0, 0xb,
+    0x40, 0x0, 0x3f, 0xff, 0xcf, 0x0, 0xb, 0x40,
+    0x0, 0x2a, 0xfa, 0x8f, 0x1f, 0xff, 0xff, 0xd0,
+    0x0, 0xb4, 0xf, 0x1f, 0xff, 0xff, 0xd0, 0x0,
+    0xb4, 0xf, 0x0, 0xb, 0x40, 0x0, 0x0, 0xb4,
+    0xf, 0x0, 0xb, 0x40, 0x0, 0x0, 0xb5, 0x8f,
+    0x0, 0xb, 0x40, 0x0, 0x0, 0xbf, 0xcf, 0x6a,
+    0xaf, 0xea, 0xa4, 0x2, 0xff, 0xcf, 0x7f, 0xff,
+    0xff, 0xf8, 0x7f, 0xf8, 0xf, 0x0, 0x0, 0x0,
+    0x0, 0xff, 0xf4, 0xf, 0x0, 0x6, 0x0, 0x0,
+    0xa4, 0xb4, 0xf, 0x0, 0xb, 0x40, 0x0, 0x0,
+    0xb4, 0xf, 0x0, 0xb, 0x40, 0x0, 0x0, 0xb4,
+    0x1f, 0x2f, 0xff, 0xff, 0xe0, 0x0, 0xb4, 0x1e,
+    0x2f, 0xff, 0xff, 0xd0, 0x0, 0xb4, 0x2e, 0x0,
+    0xb, 0x40, 0x0, 0x0, 0xb4, 0x3d, 0x0, 0xb,
+    0x40, 0x0, 0x0, 0xb4, 0x3c, 0x0, 0xb, 0x40,
+    0x0, 0x0, 0xb4, 0xb8, 0x0, 0xb, 0x40, 0x0,
+    0x16, 0xf4, 0xf5, 0xff, 0xff, 0xff, 0xfc, 0x2f,
+    0xf2, 0xf0, 0xff, 0xff, 0xff, 0xfc, 0x1e, 0x81,
+    0xd0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
 
     /* U+6376 "捶" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -53002,6 +56538,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xff, 0x0, 0x3d, 0x0, 0x0, 0xf4, 0x1, 0x40,
     0x0, 0xf0, 0x0, 0x3, 0xd0,
 
+    /* U+638C "掌" */
+    0x0, 0x0, 0x0, 0x14, 0x0, 0x0, 0x0, 0x0,
+    0x30, 0x1, 0xf0, 0x0, 0x80, 0x0, 0x3, 0xf0,
+    0x7, 0xc0, 0xf, 0x40, 0x0, 0x3, 0xf0, 0x1f,
+    0x0, 0xf8, 0x0, 0x0, 0x3, 0xc0, 0x7c, 0xb,
+    0xc0, 0x0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0x80, 0xfa, 0xaa, 0xaa, 0xaa, 0xaa, 0xbe, 0x3,
+    0xc0, 0x0, 0x0, 0x0, 0x0, 0x78, 0xf, 0x1a,
+    0xaa, 0xaa, 0xaa, 0xa1, 0xe0, 0x3c, 0x7f, 0xff,
+    0xff, 0xff, 0xc7, 0x80, 0x1, 0xe0, 0x0, 0x0,
+    0xf, 0x0, 0x0, 0x7, 0xea, 0xaa, 0xaa, 0xbc,
+    0x0, 0x0, 0x1f, 0xff, 0xff, 0xff, 0xf0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x1, 0x55, 0x60, 0x1, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xd0, 0x2, 0xaa, 0xaa, 0xbe,
+    0x55, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf4, 0x0,
+    0x0, 0x0, 0xa, 0xaa, 0xab, 0xea, 0xaa, 0xa0,
+    0x0, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x0,
+    0x0, 0x0, 0x3d, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xf4, 0x0, 0x0, 0x3, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0x8a, 0xaa, 0xaa, 0xaf, 0xaa,
+    0xaa, 0xa9, 0x0, 0x0, 0x0, 0x3c, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0xff, 0xf0, 0x0, 0x0, 0x0,
+    0x0, 0x3, 0xfe, 0x40, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+638E "掎" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x78, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x78,
@@ -53920,6 +57482,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0xf0, 0x0, 0x29, 0x0, 0x0,
     0x0, 0x0, 0x3c, 0x0,
 
+    /* U+63DE "揞" */
+    0x0, 0x0, 0x0, 0x0, 0x14, 0x0, 0x0, 0x0,
+    0xb4, 0x0, 0x0, 0x7c, 0x0, 0x0, 0x0, 0xb4,
+    0x0, 0x0, 0x3d, 0x0, 0x0, 0x0, 0xb4, 0x0,
+    0x0, 0x3e, 0x0, 0x0, 0x0, 0xb4, 0xb, 0xff,
+    0xff, 0xff, 0xf4, 0x0, 0xb4, 0xb, 0xff, 0xff,
+    0xff, 0xf4, 0x3f, 0xff, 0xd0, 0x3d, 0x0, 0x3c,
+    0x0, 0x3f, 0xff, 0xe0, 0x2e, 0x0, 0x7c, 0x0,
+    0x0, 0xb8, 0x0, 0x1e, 0x0, 0xb8, 0x0, 0x0,
+    0xb4, 0x0, 0xf, 0x0, 0xf4, 0x0, 0x0, 0xb4,
+    0x0, 0xf, 0x41, 0xf4, 0x0, 0x0, 0xb4, 0x2f,
+    0xff, 0xff, 0xff, 0xfd, 0x0, 0xb4, 0x1a, 0xaa,
+    0xaa, 0xaa, 0xa9, 0x0, 0xb9, 0x80, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0xbf, 0xc0, 0x0, 0x0, 0x0,
+    0x0, 0x6f, 0xfe, 0x43, 0xff, 0xff, 0xff, 0xc0,
+    0xbf, 0xf4, 0x3, 0xff, 0xff, 0xff, 0xc0, 0xa4,
+    0xb4, 0x3, 0xd0, 0x0, 0x3, 0xc0, 0x0, 0xb4,
+    0x3, 0xd0, 0x0, 0x3, 0xc0, 0x0, 0xb4, 0x3,
+    0xd0, 0x0, 0x7, 0xc0, 0x0, 0xb4, 0x3, 0xff,
+    0xff, 0xff, 0xc0, 0x0, 0xb4, 0x3, 0xff, 0xff,
+    0xff, 0xc0, 0x0, 0xb4, 0x3, 0xd0, 0x0, 0x3,
+    0xc0, 0x0, 0xb4, 0x3, 0xd0, 0x0, 0x3, 0xc0,
+    0x0, 0xf4, 0x3, 0xd0, 0x0, 0x7, 0xc0, 0x1b,
+    0xf4, 0x3, 0xff, 0xff, 0xff, 0xc0, 0x2f, 0xf0,
+    0x3, 0xff, 0xff, 0xff, 0xc0, 0xa, 0x40, 0x3,
+    0xd0, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+63E0 "揠" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf0,
@@ -54085,33 +57675,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xf4, 0x0, 0x0, 0x0, 0x7f, 0xe0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x10, 0x0,
 
-    /* U+63F3 "揳" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0xf, 0x0, 0xb, 0x0, 0x0, 0x0, 0x0, 0x3,
-    0xc0, 0x2, 0xc0, 0x0, 0x0, 0x0, 0x0, 0xf0,
-    0x5, 0xb5, 0x5f, 0xff, 0xf0, 0x0, 0x3c, 0xb,
-    0xff, 0xfa, 0xfa, 0xbc, 0x0, 0xf, 0x0, 0x5b,
-    0x54, 0x3c, 0xf, 0x0, 0xff, 0xfd, 0x2, 0xc0,
-    0xf, 0x3, 0xc0, 0x3f, 0xff, 0x40, 0xb4, 0x3,
-    0xc0, 0xf0, 0x5, 0x7d, 0x47, 0xff, 0xf0, 0xe0,
-    0x38, 0x0, 0xf, 0x0, 0x5b, 0x94, 0x78, 0xe,
-    0x0, 0x3, 0xc0, 0x2, 0xc0, 0x2d, 0x3, 0x80,
-    0x0, 0xf0, 0x0, 0xb0, 0xf, 0x0, 0xe0, 0x0,
-    0x3c, 0xb, 0xff, 0xf7, 0x80, 0x78, 0x0, 0xf,
-    0xb1, 0xaf, 0xab, 0xc5, 0xbd, 0x0, 0xb, 0xfd,
-    0x2, 0xc1, 0xe2, 0xfe, 0x0, 0xbf, 0xf8, 0x0,
-    0xb0, 0x70, 0x14, 0x0, 0x3f, 0xbc, 0x0, 0x18,
-    0x2c, 0x0, 0x0, 0x4, 0xf, 0x0, 0x0, 0xb,
-    0x40, 0x0, 0x0, 0x3, 0xc0, 0xaa, 0xab, 0xfa,
-    0xaa, 0x90, 0x0, 0xf0, 0x3f, 0xff, 0xff, 0xff,
-    0xf8, 0x0, 0x3c, 0x0, 0x0, 0x7f, 0x0, 0x0,
-    0x0, 0xf, 0x0, 0x0, 0x2f, 0xd0, 0x0, 0x0,
-    0x3, 0xc0, 0x0, 0x1f, 0x7c, 0x0, 0x0, 0x0,
-    0xf0, 0x0, 0x2f, 0x47, 0xd0, 0x0, 0x0, 0xbc,
-    0x0, 0x7f, 0x40, 0x7f, 0x40, 0x3, 0xfe, 0x6,
-    0xfe, 0x0, 0x3, 0xfe, 0x40, 0xfe, 0x3, 0xf8,
-    0x0, 0x0, 0x1f, 0xf0, 0x0, 0x0, 0x50, 0x0,
-    0x0, 0x0, 0x24,
+    /* U+63F2 "揲" */
+    0x0, 0x28, 0x0, 0x0, 0x38, 0x6, 0x40, 0x0,
+    0xf, 0x0, 0x78, 0xf, 0x2, 0xe0, 0x0, 0x3,
+    0xc0, 0x1e, 0x3, 0xc0, 0xb8, 0x0, 0x0, 0xf0,
+    0xb, 0xc1, 0xf0, 0x2e, 0x0, 0x0, 0x3c, 0xf,
+    0xff, 0xff, 0xff, 0xfd, 0x7, 0xff, 0xf5, 0xbd,
+    0x6f, 0x57, 0xf5, 0x1, 0xff, 0xfe, 0x1e, 0x3,
+    0xc0, 0xb8, 0x0, 0x0, 0xf4, 0x7, 0x80, 0xf0,
+    0x2e, 0x0, 0x0, 0x3c, 0x1, 0xe0, 0x3c, 0xb,
+    0x80, 0x0, 0xf, 0x0, 0x78, 0xf, 0xff, 0xe0,
+    0x0, 0x3, 0xc0, 0x1e, 0x3, 0xff, 0xf4, 0x0,
+    0x0, 0xf0, 0x7, 0x80, 0x0, 0x0, 0x0, 0x0,
+    0x3e, 0xd1, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x1f,
+    0xf8, 0x7f, 0xff, 0xff, 0xff, 0x2, 0xff, 0xf4,
+    0x0, 0x2, 0xe0, 0x0, 0x0, 0xff, 0xf0, 0x0,
+    0x0, 0xb8, 0x0, 0x0, 0x24, 0x3c, 0x0, 0x0,
+    0x2e, 0x0, 0x0, 0x0, 0xf, 0xf, 0xff, 0xff,
+    0xff, 0xff, 0x0, 0x3, 0xc2, 0xff, 0xff, 0xff,
+    0xff, 0xc0, 0x0, 0xf0, 0x0, 0x7, 0xff, 0x0,
+    0x0, 0x0, 0x3c, 0x0, 0xb, 0xff, 0xf4, 0x0,
+    0x0, 0xf, 0x0, 0xf, 0xcb, 0x9f, 0x80, 0x0,
+    0x3, 0xc0, 0x2f, 0x82, 0xe0, 0xfd, 0x0, 0x0,
+    0xf0, 0xbf, 0x40, 0xb8, 0xb, 0xf8, 0xb, 0xfc,
+    0xfe, 0x0, 0x2e, 0x0, 0x7f, 0x3, 0xfd, 0x28,
+    0x0, 0xb, 0x80, 0x1, 0x40, 0x54, 0x0, 0x0,
+    0x2, 0xe0, 0x0, 0x0,
 
     /* U+63F4 "援" */
     0x0, 0xb4, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0,
@@ -54220,33 +57809,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x3f, 0x80, 0x2, 0xff, 0xf4, 0x2, 0x40, 0x14,
     0x0, 0x0, 0x0, 0x0,
 
-    /* U+63FE "揾" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0xb8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb8,
-    0x7, 0xff, 0xff, 0xff, 0x0, 0x0, 0xb8, 0x7,
-    0xff, 0xff, 0xff, 0x0, 0x0, 0xb8, 0x7, 0x80,
-    0x0, 0xf, 0x0, 0x0, 0xb8, 0x7, 0x80, 0x0,
-    0xf, 0x0, 0x0, 0xb8, 0x7, 0x80, 0x0, 0xf,
-    0x0, 0x3f, 0xff, 0xe7, 0xff, 0xff, 0xff, 0x0,
-    0x3f, 0xff, 0xd7, 0xff, 0xff, 0xff, 0x0, 0x0,
-    0xb8, 0x7, 0x80, 0x0, 0xf, 0x0, 0x0, 0xb8,
-    0x7, 0x80, 0x0, 0xf, 0x0, 0x0, 0xb8, 0x7,
-    0xff, 0xff, 0xff, 0x0, 0x0, 0xb8, 0x7, 0xff,
-    0xff, 0xff, 0x0, 0x0, 0xb9, 0xc0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0xbf, 0xc0, 0x0, 0x0, 0x0,
-    0x0, 0xb, 0xff, 0x40, 0x0, 0x0, 0x0, 0x0,
-    0xff, 0xf8, 0x1f, 0xff, 0xff, 0xff, 0xc0, 0xb9,
-    0xb8, 0x1f, 0xff, 0xff, 0xff, 0xc0, 0x0, 0xb8,
-    0x1e, 0xf, 0xb, 0x3, 0xc0, 0x0, 0xb8, 0x1e,
-    0xf, 0xb, 0x3, 0xc0, 0x0, 0xb8, 0x1e, 0xf,
-    0xb, 0x3, 0xc0, 0x0, 0xb8, 0x1e, 0xf, 0xb,
-    0x3, 0xc0, 0x0, 0xb8, 0x1e, 0xf, 0xb, 0x3,
-    0xc0, 0x0, 0xb8, 0x1e, 0xf, 0xb, 0x3, 0xc0,
-    0x0, 0xb4, 0x1e, 0xf, 0xb, 0x3, 0xc0, 0x2b,
-    0xf6, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x3f, 0xf2,
-    0xff, 0xff, 0xff, 0xff, 0xfd, 0x15, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0,
-
     /* U+63FF "揿" */
     0x0, 0x10, 0x0, 0x50, 0x0, 0x60, 0x0, 0x0,
     0xf, 0x0, 0x3d, 0x0, 0x3c, 0x0, 0x0, 0x3,
@@ -54276,6 +57838,35 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+6400 "搀" */
+    0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0,
+    0xf, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0x3,
+    0xc0, 0x0, 0xf8, 0x0, 0x0, 0x0, 0x0, 0xf0,
+    0x0, 0xbf, 0xff, 0xf8, 0x0, 0x0, 0x3c, 0x0,
+    0x7f, 0xff, 0xfe, 0x0, 0x0, 0xf, 0x0, 0x7c,
+    0x0, 0x2f, 0x0, 0x0, 0xab, 0xe9, 0xbc, 0x0,
+    0x2f, 0x0, 0x0, 0x7f, 0xff, 0xff, 0xaa, 0xbf,
+    0xea, 0x80, 0xa, 0xbe, 0x97, 0xff, 0xff, 0xff,
+    0xf0, 0x0, 0xf, 0x0, 0xf4, 0xb, 0x80, 0x3c,
+    0x0, 0x3, 0xc0, 0x3d, 0x3, 0xd0, 0xf, 0x0,
+    0x0, 0xf0, 0xf, 0xaa, 0xfa, 0xab, 0xc0, 0x0,
+    0x3c, 0x13, 0xff, 0xff, 0xff, 0xf0, 0x0, 0xf,
+    0xf8, 0x0, 0x3e, 0xf0, 0x0, 0x0, 0x1b, 0xfe,
+    0x0, 0x2f, 0x3c, 0x0, 0xe0, 0xbf, 0xf8, 0x0,
+    0x2f, 0x4f, 0x0, 0x3c, 0x3f, 0xfc, 0x0, 0x2f,
+    0x43, 0xd0, 0x1f, 0xa, 0xf, 0x0, 0x7f, 0x40,
+    0xff, 0xff, 0x80, 0x3, 0xc2, 0xff, 0x0, 0xb,
+    0xff, 0x80, 0x0, 0xf2, 0xfd, 0x29, 0x40, 0x0,
+    0x0, 0x0, 0x3c, 0x24, 0xf, 0xff, 0x90, 0x0,
+    0x0, 0xf, 0x0, 0x0, 0x5b, 0xff, 0x80, 0x0,
+    0x3, 0xc0, 0x0, 0x0, 0xb, 0xe0, 0x0, 0x0,
+    0xf0, 0x7, 0xa4, 0x0, 0x0, 0x0, 0x0, 0x3c,
+    0x2, 0xff, 0xf9, 0x0, 0x0, 0x2, 0xbf, 0x0,
+    0x5, 0xbf, 0xfe, 0x40, 0x0, 0xff, 0x80, 0x0,
+    0x0, 0x6f, 0xfc, 0x0, 0x1a, 0x40, 0x0, 0x0,
+    0x0, 0x6e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+6401 "搁" */
     0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf,
     0x1, 0xd0, 0x0, 0x0, 0x0, 0x0, 0xf0, 0x1f,
@@ -54358,6 +57949,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x2f, 0xff, 0x80, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+640B "搋" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf0,
+    0x0, 0x5, 0x5a, 0xff, 0xf0, 0x0, 0xf0, 0x3f,
+    0xff, 0xff, 0xfe, 0x90, 0x0, 0xf0, 0x3f, 0xaa,
+    0x64, 0x0, 0x0, 0x0, 0xf0, 0x3c, 0x0, 0x2d,
+    0x0, 0x0, 0x2a, 0xfa, 0x3c, 0x0, 0x2f, 0xff,
+    0xc0, 0x3f, 0xff, 0x7c, 0x0, 0x2e, 0xaa, 0x80,
+    0x15, 0xf5, 0x3c, 0x0, 0x2d, 0x0, 0x0, 0x0,
+    0xf0, 0x3c, 0xbf, 0xff, 0xff, 0xf0, 0x0, 0xf0,
+    0x3c, 0xbe, 0xaa, 0xaa, 0xf0, 0x0, 0xf0, 0x3c,
+    0xb0, 0x18, 0x0, 0xb0, 0x0, 0xf0, 0x3c, 0xb0,
+    0x2d, 0x0, 0xe0, 0x0, 0xff, 0x3c, 0xb1, 0x6f,
+    0xfc, 0x40, 0x1b, 0xff, 0x3c, 0xb7, 0xff, 0xa4,
+    0x80, 0xff, 0xf0, 0x3c, 0xb1, 0x2d, 0x1, 0xc0,
+    0xb5, 0xf0, 0x3c, 0xb0, 0x1f, 0xab, 0xc0, 0x0,
+    0xf0, 0x38, 0xb0, 0xb, 0xff, 0x40, 0x0, 0xf0,
+    0x38, 0xb0, 0x0, 0x0, 0x0, 0x0, 0xf0, 0x78,
+    0xf0, 0xbf, 0xf8, 0x0, 0x0, 0xf0, 0xb4, 0xf0,
+    0xbf, 0xf8, 0x0, 0x0, 0xf0, 0xf0, 0xe0, 0xf0,
+    0x38, 0x0, 0x0, 0xf0, 0xf1, 0xe0, 0xf0, 0x38,
+    0x2c, 0x0, 0xf2, 0xd2, 0xd0, 0xf0, 0x38, 0x2c,
+    0x1, 0xf3, 0xc3, 0xc2, 0xe0, 0x3c, 0x2c, 0x3f,
+    0xef, 0x8b, 0x4b, 0xc0, 0x3f, 0xf8, 0x2f, 0x87,
+    0xf, 0x2f, 0x0, 0x1f, 0xf0, 0x0, 0x0, 0x5,
+    0x8, 0x0, 0x0, 0x0,
+
     /* U+640C "搌" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf0,
@@ -54524,6 +58142,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xe0, 0xf0, 0x0, 0x40, 0x14, 0x0, 0x0, 0x38,
     0x3c, 0x0, 0x0,
 
+    /* U+641C "搜" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xf, 0x0, 0x0, 0xf, 0x0, 0x0, 0x0, 0x3,
+    0xc0, 0x0, 0x63, 0xc0, 0x0, 0x0, 0x0, 0xf0,
+    0xb, 0xfd, 0xf2, 0xff, 0x80, 0x0, 0x3c, 0x7,
+    0xf9, 0x3c, 0xff, 0xf0, 0x0, 0xf, 0x1, 0xe0,
+    0xf, 0x0, 0x3c, 0x0, 0xab, 0xea, 0x78, 0x3,
+    0xc0, 0xf, 0x0, 0x7f, 0xff, 0xde, 0x0, 0xf0,
+    0x3, 0xc0, 0xa, 0xbe, 0x97, 0xff, 0x3c, 0xbf,
+    0xf0, 0x0, 0xf, 0x1, 0xff, 0xcf, 0x2f, 0xfc,
+    0x0, 0x3, 0xc0, 0x78, 0x3, 0xc0, 0xf, 0x0,
+    0x0, 0xf0, 0x1e, 0x0, 0xf0, 0x3, 0xc0, 0x0,
+    0x3c, 0x7, 0x80, 0x3d, 0x1, 0xf0, 0x0, 0xf,
+    0xb9, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x3, 0xfe,
+    0x3f, 0xff, 0xff, 0xfe, 0x0, 0x1f, 0xf8, 0x0,
+    0x0, 0xf0, 0x0, 0x0, 0x3f, 0xfc, 0x0, 0x0,
+    0x3c, 0x0, 0x0, 0xf, 0x4f, 0x2, 0xff, 0xff,
+    0xff, 0xf0, 0x0, 0x3, 0xc0, 0x7f, 0xff, 0xff,
+    0xfc, 0x0, 0x0, 0xf0, 0x3, 0xd0, 0x0, 0x7d,
+    0x0, 0x0, 0x3c, 0x0, 0x3d, 0x0, 0x7e, 0x0,
+    0x0, 0xf, 0x0, 0x3, 0xe0, 0xbe, 0x0, 0x0,
+    0x3, 0xc0, 0x0, 0x2f, 0xfd, 0x0, 0x0, 0x0,
+    0xf0, 0x0, 0x1b, 0xff, 0x40, 0x0, 0x0, 0x3c,
+    0x6, 0xff, 0xe7, 0xff, 0x90, 0x2, 0xff, 0x3f,
+    0xfe, 0x40, 0xb, 0xff, 0xc0, 0x7f, 0x47, 0xa0,
+    0x0, 0x0, 0x6, 0xe0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+641E "搞" */
     0x0, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0,
     0xb, 0x40, 0x0, 0xf, 0x40, 0x0, 0x0, 0x2,
@@ -54771,6 +58417,62 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xbe, 0x0, 0x0, 0xff, 0x80, 0x0, 0x0, 0x20,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+643D "搽" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xb, 0x40, 0x3, 0xc0, 0xf, 0x0, 0x0, 0x2,
+    0xd0, 0x0, 0xf0, 0x3, 0xc0, 0x0, 0x0, 0xb4,
+    0x0, 0x3c, 0x0, 0xf0, 0x0, 0x0, 0x2d, 0xb,
+    0xff, 0xff, 0xff, 0xfe, 0x0, 0xb, 0x42, 0xff,
+    0xff, 0xff, 0xff, 0x80, 0x57, 0xe5, 0x0, 0xf0,
+    0x3, 0xc0, 0x0, 0x3f, 0xff, 0xd0, 0x3c, 0x0,
+    0xf0, 0x0, 0xa, 0xbf, 0xa0, 0xf, 0x2a, 0x2c,
+    0x0, 0x0, 0xb, 0x40, 0x0, 0x2f, 0xf0, 0x0,
+    0x0, 0x2, 0xd0, 0x0, 0x2f, 0x2f, 0x0, 0x0,
+    0x0, 0xb4, 0x0, 0x2f, 0x43, 0xf0, 0x0, 0x0,
+    0x2d, 0x0, 0x7f, 0x0, 0x2f, 0x80, 0x0, 0xb,
+    0xb1, 0xff, 0x3, 0xc1, 0xfd, 0x0, 0x7, 0xfd,
+    0xfd, 0x0, 0xf0, 0xf, 0xf0, 0x6f, 0xfd, 0x38,
+    0x0, 0x3c, 0x0, 0x7c, 0x3f, 0xfd, 0x0, 0x0,
+    0x1f, 0x0, 0x0, 0xa, 0xb, 0x40, 0xff, 0xff,
+    0xff, 0xfc, 0x0, 0x2, 0xd0, 0x3f, 0xff, 0xff,
+    0xff, 0x0, 0x0, 0xb4, 0x0, 0x0, 0x3c, 0x0,
+    0x0, 0x0, 0x2d, 0x0, 0x28, 0xf, 0x8, 0x0,
+    0x0, 0xb, 0x40, 0x1f, 0x3, 0xc7, 0xd0, 0x0,
+    0x2, 0xd0, 0xf, 0x40, 0xf0, 0x7d, 0x0, 0x0,
+    0xb4, 0xf, 0x80, 0x3c, 0x7, 0xd0, 0x0, 0x3d,
+    0xf, 0x80, 0xf, 0x0, 0x7d, 0x0, 0x6f, 0x4f,
+    0xc0, 0x1b, 0xc0, 0x7, 0xc0, 0x7f, 0xc3, 0x80,
+    0x3f, 0xe0, 0x0, 0xa0, 0xe, 0x40, 0x0, 0xa,
+    0x90, 0x0, 0x0,
+
+    /* U+643F "搿" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x1, 0x90, 0x3c, 0x0, 0x0, 0x64, 0x0, 0x6f,
+    0xf0, 0x3c, 0x0, 0x6f, 0xf8, 0x2f, 0xff, 0x90,
+    0xbd, 0xf, 0xff, 0xd0, 0x3f, 0xf4, 0x0, 0xff,
+    0xf, 0xfe, 0x0, 0x10, 0xf0, 0x2, 0xeb, 0x80,
+    0x1e, 0x0, 0x0, 0xf0, 0x3, 0xc3, 0xc0, 0x1e,
+    0x0, 0x0, 0xf0, 0xf, 0x40, 0xf0, 0x1e, 0x0,
+    0x0, 0xf0, 0x2e, 0x0, 0x74, 0x1e, 0x0, 0x1a,
+    0xf9, 0x7c, 0x0, 0x25, 0x6e, 0x50, 0x2f, 0xff,
+    0x73, 0xff, 0x8b, 0xff, 0xf4, 0x1a, 0xf9, 0x3,
+    0xff, 0xc6, 0xbf, 0xa0, 0x0, 0xf0, 0x0, 0x0,
+    0x0, 0x1e, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x0,
+    0x1e, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0x1e,
+    0x0, 0x0, 0xf0, 0xf, 0xff, 0xd0, 0x1e, 0x0,
+    0x0, 0xf0, 0xf, 0xff, 0xd0, 0x2e, 0x0, 0x7f,
+    0xff, 0xcf, 0x1, 0xdf, 0xff, 0xfc, 0x7f, 0xff,
+    0xcf, 0x1, 0xdf, 0xff, 0xfc, 0x0, 0xf0, 0xf,
+    0x1, 0xd0, 0x1e, 0x0, 0x1, 0xe0, 0xf, 0x1,
+    0xd0, 0x1e, 0x0, 0x2, 0xd0, 0xf, 0x1, 0xd0,
+    0x1e, 0x0, 0x3, 0xc0, 0xf, 0x1, 0xd0, 0x1e,
+    0x0, 0x3, 0xc0, 0xf, 0x2, 0xd0, 0x1e, 0x0,
+    0xf, 0x40, 0xf, 0xff, 0xd0, 0x2e, 0x0, 0x1f,
+    0x0, 0xf, 0xff, 0xc2, 0xbd, 0x0, 0x3d, 0x0,
+    0x0, 0x0, 0x3, 0xfc, 0x0, 0x28, 0x0, 0x0,
+    0x0, 0x1, 0x50, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+6441 "摁" */
     0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf0,
@@ -54907,6 +58609,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xe0, 0xa, 0xaa, 0xaa, 0xab, 0xc0, 0x1a, 0x40,
     0x0, 0x0, 0x0, 0x3, 0xc0,
 
+    /* U+6448 "摈" */
+    0x0, 0x0, 0x0, 0x0, 0x18, 0x0, 0x0, 0x0,
+    0xb, 0x40, 0x0, 0xb, 0x80, 0x0, 0x0, 0x2,
+    0xd0, 0x0, 0x1, 0xf0, 0x0, 0x0, 0x0, 0xb4,
+    0x0, 0x0, 0x7d, 0x0, 0x0, 0x0, 0x2d, 0x3,
+    0xff, 0xff, 0xff, 0xfc, 0x0, 0xb, 0x40, 0xfa,
+    0xaa, 0xaa, 0xaf, 0x0, 0xff, 0xff, 0x3c, 0x0,
+    0x0, 0x3, 0xc0, 0x3f, 0xff, 0xcf, 0x0, 0x0,
+    0x4, 0xf0, 0x5, 0x6e, 0x51, 0x45, 0x6b, 0xff,
+    0x40, 0x0, 0xb, 0x40, 0xf, 0xff, 0xff, 0x80,
+    0x0, 0x2, 0xd0, 0x3, 0xe9, 0x40, 0x0, 0x0,
+    0x0, 0xb4, 0x0, 0xf0, 0x0, 0x0, 0x0, 0x0,
+    0x2d, 0x10, 0x3c, 0x0, 0x0, 0x0, 0x0, 0xb,
+    0xfc, 0xf, 0xaa, 0xaa, 0xaa, 0x0, 0x1b, 0xfe,
+    0x3, 0xff, 0xff, 0xff, 0xc0, 0xff, 0xf8, 0x0,
+    0xf0, 0x1, 0xf0, 0x0, 0x3e, 0x6d, 0x0, 0x3c,
+    0x0, 0x3c, 0x0, 0x4, 0xb, 0x40, 0xf, 0x0,
+    0xf, 0x0, 0x0, 0x2, 0xd0, 0x3, 0xc0, 0x3,
+    0xc0, 0x0, 0x0, 0xb4, 0xff, 0xff, 0xff, 0xff,
+    0xfc, 0x0, 0x2d, 0x3f, 0xff, 0xff, 0xff, 0xff,
+    0x0, 0xb, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x2, 0xd0, 0x0, 0x38, 0x7, 0x0, 0x0, 0x0,
+    0xb4, 0x0, 0x7f, 0x3, 0xf8, 0x0, 0x0, 0x2d,
+    0x0, 0xfe, 0x0, 0x1f, 0xd0, 0x1, 0xff, 0x42,
+    0xfd, 0x0, 0x0, 0xbe, 0x0, 0x7f, 0x82, 0xf8,
+    0x0, 0x0, 0x7, 0xc0, 0x4, 0x0, 0x20, 0x0,
+    0x0, 0x0, 0x10,
+
     /* U+644A "摊" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0xf, 0x0, 0x0, 0x3, 0xc2, 0xc0, 0x0, 0x3,
@@ -55155,6 +58885,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0xbc, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+6479 "摹" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xf, 0x40, 0x3, 0xd0, 0x0, 0x0, 0x0,
+    0x3, 0xd0, 0x0, 0xf4, 0x0, 0x0, 0x3f, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xf4, 0xa, 0xaa, 0xbe,
+    0xaa, 0xaf, 0xaa, 0xa8, 0x0, 0x0, 0xb, 0x40,
+    0x2, 0xc0, 0x0, 0x0, 0x3, 0xff, 0xff, 0xff,
+    0xff, 0xf4, 0x0, 0x0, 0xf9, 0x55, 0x55, 0x55,
+    0x7d, 0x0, 0x0, 0x3d, 0x0, 0x0, 0x0, 0xf,
+    0x40, 0x0, 0xf, 0xff, 0xff, 0xff, 0xff, 0xd0,
+    0x0, 0x3, 0xd0, 0x0, 0x0, 0x0, 0xf4, 0x0,
+    0x0, 0xf9, 0x55, 0x55, 0x55, 0x7d, 0x0, 0x0,
+    0x3f, 0xff, 0xff, 0xff, 0xff, 0x40, 0x0, 0x0,
+    0x0, 0xf0, 0x0, 0x0, 0x0, 0x0, 0xaa, 0xaa,
+    0xfe, 0xaa, 0xaa, 0xaa, 0x90, 0x3f, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xf4, 0x0, 0x1, 0xf8, 0x0,
+    0x3, 0xe0, 0x0, 0x0, 0x2, 0xf9, 0x5a, 0xab,
+    0xbf, 0x40, 0x0, 0xb, 0xe2, 0xff, 0xfe, 0x91,
+    0xfd, 0x0, 0x7f, 0xd0, 0x0, 0x3c, 0x0, 0xb,
+    0xf8, 0x2e, 0x47, 0xff, 0xff, 0xff, 0xfc, 0x1f,
+    0x0, 0x0, 0x55, 0x57, 0xe5, 0x55, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0xf,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xd0, 0x1, 0x55,
+    0x55, 0x5f, 0x95, 0x55, 0x50, 0x0, 0x0, 0x0,
+    0x3, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f,
+    0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xa0,
+    0x0, 0x0, 0x0,
+
     /* U+647A "摺" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb,
     0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb4, 0x2f,
@@ -55180,34 +58938,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xfc, 0x1f, 0xe0, 0x3, 0xff, 0xff, 0xff, 0xc0,
     0x90, 0x0, 0x3c, 0x0, 0x0, 0x3c,
 
-    /* U+647D "摽" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0xb, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2,
-    0xd0, 0x6a, 0xaa, 0xaa, 0xaa, 0x90, 0x0, 0xb4,
-    0x2f, 0xff, 0xff, 0xff, 0xf8, 0x0, 0x2d, 0x0,
-    0x0, 0xe0, 0xf0, 0x0, 0x0, 0xb, 0x40, 0x0,
-    0x38, 0x3c, 0x0, 0x0, 0x6b, 0xea, 0x0, 0xe,
-    0xf, 0x0, 0x0, 0x3f, 0xff, 0xcf, 0xff, 0xff,
-    0xff, 0xf0, 0xa, 0xbe, 0xa3, 0xea, 0xfa, 0xfa,
-    0xbc, 0x0, 0xb, 0x40, 0xf0, 0x38, 0x3c, 0xf,
-    0x0, 0x2, 0xd0, 0x3c, 0xe, 0xf, 0x3, 0xc0,
-    0x0, 0xb4, 0xf, 0xab, 0xeb, 0xea, 0xf0, 0x0,
-    0x2d, 0x3, 0xff, 0xff, 0xff, 0xfc, 0x0, 0xb,
-    0xbc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xff,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x1f, 0xfd, 0xb,
-    0xff, 0xff, 0xff, 0xd0, 0x3f, 0xfd, 0x2, 0xff,
-    0xff, 0xff, 0xf4, 0xa, 0x4b, 0x40, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x2, 0xd0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0xb4, 0x3f, 0xff, 0xff, 0xff,
-    0xfd, 0x0, 0x2d, 0xa, 0xaa, 0xaf, 0xaa, 0xaa,
-    0x0, 0xb, 0x40, 0x4, 0x3, 0xc0, 0x90, 0x0,
-    0x2, 0xd0, 0xb, 0xc0, 0xf0, 0x7d, 0x0, 0x0,
-    0xb4, 0xb, 0xc0, 0x3c, 0x7, 0xd0, 0x0, 0x7d,
-    0xf, 0xc0, 0xf, 0x0, 0x7d, 0x3, 0xff, 0xf,
-    0xc2, 0xff, 0xc0, 0x7, 0xc0, 0xba, 0x0, 0x80,
-    0x7f, 0x80, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0,
-
     /* U+6482 "撂" */
     0x0, 0x3c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0xf, 0x0, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x3,
@@ -55319,32 +59049,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x5e, 0x7c, 0x0, 0x34, 0x10, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+6490 "撐" */
-    0x0, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0,
-    0x3c, 0x0, 0xe0, 0x1f, 0x1, 0xc0, 0x0, 0x3c,
-    0x0, 0xf4, 0x1f, 0x3, 0xc0, 0x0, 0x3c, 0x0,
-    0x7c, 0x1f, 0xf, 0x40, 0x0, 0x3c, 0x0, 0x28,
-    0x1f, 0xb, 0x0, 0x0, 0x3c, 0xf, 0xff, 0xff,
-    0xff, 0xfc, 0x5, 0x7d, 0x4f, 0xaa, 0xaa, 0xaa,
-    0xbc, 0xf, 0xff, 0xdf, 0x0, 0x0, 0x0, 0x3c,
-    0xa, 0xbe, 0x8f, 0x7f, 0xff, 0xff, 0x7c, 0x0,
-    0x3c, 0xf, 0x7f, 0xff, 0xff, 0xac, 0x0, 0x3c,
-    0x0, 0x78, 0x0, 0x7, 0x80, 0x0, 0x3c, 0x0,
-    0x7e, 0xaa, 0xab, 0x80, 0x0, 0x3c, 0x0, 0x7f,
-    0xff, 0xff, 0x80, 0x0, 0x3d, 0xd0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x3f, 0xd0, 0x0, 0x0, 0x0,
-    0x0, 0x6, 0xff, 0x43, 0xff, 0xff, 0xff, 0xf4,
-    0x3f, 0xfc, 0x2, 0xaa, 0xaa, 0xbe, 0xa0, 0x3e,
-    0x7c, 0x0, 0x50, 0x0, 0x3c, 0x0, 0x0, 0x3c,
-    0x0, 0xf0, 0x0, 0x3c, 0x0, 0x0, 0x3c, 0x0,
-    0xf0, 0x0, 0x3c, 0x0, 0x0, 0x3c, 0x1, 0xff,
-    0xff, 0xff, 0xfc, 0x0, 0x3c, 0x0, 0xaa, 0xbf,
-    0xfe, 0xa8, 0x0, 0x3c, 0x0, 0x0, 0x7e, 0x3c,
-    0x0, 0x0, 0x3c, 0x0, 0xb, 0xf4, 0x3c, 0x0,
-    0x0, 0x3c, 0x6, 0xff, 0x80, 0x3c, 0x0, 0x0,
-    0x7c, 0x3f, 0xf4, 0x0, 0x7c, 0x0, 0xf, 0xf8,
-    0x3d, 0x0, 0x2a, 0xf8, 0x0, 0xf, 0xe0, 0x0,
-    0x0, 0x3f, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    /* U+6491 "撑" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xf, 0x0, 0x14, 0x7, 0x80, 0x60, 0x0, 0x3,
+    0xc0, 0xf, 0x41, 0xe0, 0x3c, 0x0, 0x0, 0xf0,
+    0x0, 0xf0, 0x78, 0x2d, 0x0, 0x0, 0x3c, 0x0,
+    0x2c, 0x1e, 0xa, 0x0, 0x0, 0xf, 0x3, 0xff,
+    0xff, 0xff, 0xff, 0x40, 0x57, 0xd4, 0xfa, 0xaa,
+    0xaa, 0xab, 0xd0, 0x3f, 0xff, 0x7c, 0x0, 0x0,
+    0x0, 0x74, 0xf, 0xff, 0xdf, 0x15, 0x55, 0x55,
+    0x1d, 0x0, 0xf, 0x3, 0xcf, 0xff, 0xff, 0xd7,
+    0x40, 0x3, 0xc0, 0x3, 0xc0, 0x0, 0xb4, 0x0,
+    0x0, 0xf0, 0x0, 0xf0, 0x0, 0x2d, 0x0, 0x0,
+    0x3c, 0x0, 0x3f, 0xff, 0xff, 0x40, 0x0, 0xf,
+    0x7c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xfe,
+    0x0, 0x5, 0x56, 0xab, 0x0, 0x1f, 0xf9, 0xf,
+    0xff, 0xff, 0xff, 0x80, 0x3f, 0xfc, 0x2, 0x55,
+    0x5f, 0x0, 0x0, 0xa, 0x4f, 0x0, 0x0, 0x3,
+    0xc0, 0x0, 0x0, 0x3, 0xc0, 0x2a, 0xab, 0xfa,
+    0xaa, 0x40, 0x0, 0xf0, 0xf, 0xff, 0xff, 0xff,
+    0xd0, 0x0, 0x3c, 0x0, 0x0, 0xf, 0x0, 0x0,
+    0x0, 0xf, 0x0, 0x0, 0x3, 0xc0, 0x0, 0x0,
+    0x3, 0xc3, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x0,
+    0xf0, 0xaa, 0xaa, 0xbe, 0xaa, 0xa9, 0x0, 0x3c,
+    0x0, 0x0, 0xf, 0x0, 0x0, 0x0, 0x6f, 0x0,
+    0x0, 0xb, 0xc0, 0x0, 0x0, 0xbf, 0x80, 0x0,
+    0xff, 0xe0, 0x0, 0x0, 0x1f, 0x80, 0x0, 0x2f,
+    0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
     /* U+6492 "撒" */
@@ -55596,6 +59327,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xfa, 0xaa, 0xaa, 0xf8, 0x0, 0x64, 0x0, 0x3c,
     0x0, 0x0, 0x1e, 0x0,
 
+    /* U+64AE "撮" */
+    0x0, 0x28, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xf, 0x0, 0xff, 0xff, 0xff, 0xf4, 0x0, 0x3,
+    0xc0, 0x3e, 0xaa, 0xaa, 0xbd, 0x0, 0x0, 0xf0,
+    0xf, 0x0, 0x0, 0xb, 0x40, 0x0, 0x3c, 0x3,
+    0xff, 0xff, 0xff, 0xd0, 0x1, 0x6f, 0x54, 0xfa,
+    0xaa, 0xaa, 0xf4, 0x0, 0xff, 0xff, 0x3c, 0x0,
+    0x0, 0x2d, 0x0, 0x2a, 0xfa, 0x8f, 0xaa, 0xaa,
+    0xaf, 0x40, 0x0, 0x3c, 0x3, 0xff, 0xff, 0xff,
+    0xd0, 0x0, 0xf, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x3, 0xc1, 0xaa, 0xaa, 0xaa, 0xaa, 0xa0,
+    0x0, 0xf0, 0xbf, 0xff, 0xff, 0xff, 0xfc, 0x0,
+    0x3d, 0x8b, 0x0, 0xf0, 0x0, 0x0, 0x0, 0xf,
+    0xf1, 0xc0, 0x3c, 0x0, 0x0, 0x0, 0x7f, 0xf4,
+    0x7a, 0xaf, 0x3f, 0xff, 0x40, 0xff, 0xf0, 0x1f,
+    0xff, 0xcf, 0xff, 0xd0, 0x29, 0x3c, 0x7, 0x0,
+    0xf2, 0xc0, 0xb4, 0x0, 0xf, 0x1, 0xc0, 0x3c,
+    0x74, 0x3c, 0x0, 0x3, 0xc0, 0x7a, 0xaf, 0xe,
+    0x1e, 0x0, 0x0, 0xf0, 0x1f, 0xff, 0xc2, 0xcf,
+    0x0, 0x0, 0x3c, 0x7, 0x0, 0xf0, 0x3f, 0x80,
+    0x0, 0xf, 0x1, 0xc0, 0x3d, 0x4b, 0xc0, 0x0,
+    0x3, 0xc0, 0xba, 0xff, 0xe3, 0xf8, 0x0, 0x0,
+    0xf2, 0xff, 0xff, 0xd7, 0xeb, 0xd0, 0x2, 0xfc,
+    0xb9, 0x40, 0xf7, 0xe0, 0xbe, 0x0, 0xfd, 0x0,
+    0x0, 0x3d, 0xd0, 0x7, 0xc0, 0x14, 0x0, 0x0,
+    0xf, 0x0, 0x0, 0x10,
+
     /* U+64B0 "撰" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf0,
@@ -55954,6 +59712,61 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x2, 0xf9, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+64D7 "擗" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xe0, 0x0, 0x0, 0x0, 0x70, 0x0, 0x0, 0xf0,
+    0x0, 0x0, 0x0, 0x74, 0x0, 0x0, 0xf0, 0x3f,
+    0xff, 0x0, 0x38, 0x0, 0x0, 0xf0, 0x3f, 0xff,
+    0x6a, 0xbe, 0xa8, 0x0, 0xf0, 0x3c, 0xf, 0x7f,
+    0xff, 0xfc, 0x3f, 0xff, 0x7c, 0xf, 0xf, 0x1,
+    0xd0, 0x3f, 0xff, 0x7c, 0xf, 0xb, 0x41, 0xd0,
+    0x5, 0xf5, 0x3c, 0xf, 0x7, 0x82, 0xc0, 0x0,
+    0xf0, 0x3c, 0xf, 0x7, 0x82, 0xc0, 0x0, 0xf0,
+    0x3f, 0xff, 0x3, 0xc3, 0xc0, 0x0, 0xf0, 0x3f,
+    0xff, 0x3, 0xc3, 0xc0, 0x0, 0xf1, 0x3c, 0x0,
+    0x57, 0xd7, 0xd5, 0x0, 0xff, 0x7c, 0x0, 0xbf,
+    0xff, 0xfe, 0xb, 0xff, 0x7c, 0x0, 0x6a, 0xbe,
+    0xa9, 0xbf, 0xf0, 0x3f, 0xff, 0x0, 0x3c, 0x0,
+    0x7d, 0xf0, 0x7f, 0xff, 0x40, 0x3c, 0x0, 0x0,
+    0xf0, 0xbf, 0xb, 0x40, 0x3c, 0x0, 0x0, 0xf0,
+    0xfe, 0x7, 0x40, 0x3c, 0x0, 0x0, 0xf0, 0xee,
+    0x7, 0xbf, 0xff, 0xfc, 0x0, 0xf2, 0xde, 0x7,
+    0xbf, 0xff, 0xfc, 0x0, 0xf3, 0xce, 0x7, 0x40,
+    0x3c, 0x0, 0x0, 0xfb, 0x8e, 0x7, 0x40, 0x3c,
+    0x0, 0x0, 0xfb, 0xe, 0x7, 0x40, 0x3c, 0x0,
+    0x0, 0xf0, 0xe, 0x7, 0x40, 0x3c, 0x0, 0x1b,
+    0xe0, 0xf, 0xff, 0x40, 0x3c, 0x0, 0x3f, 0xd0,
+    0xf, 0xff, 0x40, 0x3c, 0x0, 0x19, 0x0, 0x0,
+    0x0, 0x0, 0x3c, 0x0,
+
+    /* U+64D8 "擘" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x1, 0xd0, 0x0, 0x0, 0xff,
+    0xff, 0xd0, 0x0, 0xe0, 0x0, 0x0, 0xfa, 0xab,
+    0xd7, 0xff, 0xff, 0xfc, 0x0, 0xf0, 0x2, 0xd2,
+    0xbe, 0xab, 0xe8, 0x0, 0xf0, 0x2, 0xd0, 0x3c,
+    0x7, 0x40, 0x0, 0xff, 0xff, 0xd0, 0x2c, 0xb,
+    0x0, 0x0, 0xf0, 0x0, 0x5, 0x6e, 0x5f, 0x55,
+    0x1, 0xe0, 0x0, 0xf, 0xff, 0xff, 0xff, 0x3,
+    0xff, 0xff, 0xc0, 0x1, 0xe0, 0x0, 0xb, 0xbc,
+    0x2, 0xc0, 0x1, 0xe0, 0x0, 0x1f, 0x3c, 0x2,
+    0xcb, 0xff, 0xff, 0xfc, 0x3d, 0x3e, 0xab, 0xc6,
+    0xaa, 0xfa, 0xa8, 0x4, 0x2f, 0xff, 0xc0, 0x1,
+    0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x90,
+    0x0, 0x0, 0x1, 0x55, 0x56, 0xaa, 0xbf, 0xe0,
+    0x1, 0xff, 0xff, 0xff, 0xff, 0xfa, 0x90, 0x0,
+    0x55, 0x40, 0xf, 0x40, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xf, 0x40, 0x0, 0x0, 0x0, 0xbf, 0xff,
+    0xff, 0xff, 0xff, 0xd0, 0x0, 0x6a, 0xaa, 0xaf,
+    0xaa, 0xaa, 0x80, 0x0, 0x0, 0x0, 0xf, 0x40,
+    0x0, 0x0, 0xf, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xa, 0xaa, 0xaa, 0xaf, 0xea, 0xaa, 0xaa,
+    0x0, 0x0, 0x0, 0xf, 0x40, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xf, 0x40, 0x0, 0x0, 0x0, 0x0,
+    0xa, 0xbf, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf,
+    0xf8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+64DE "擞" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x2c, 0x0, 0x1d, 0x0, 0xe, 0x0, 0x0, 0xb,
@@ -56066,34 +59879,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x7f, 0xc0, 0x1, 0xd0, 0x2e, 0x40, 0x40, 0xa,
     0x40, 0x0, 0x0,
 
-    /* U+64EC "擬" */
-    0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0xe0, 0x38, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe0,
-    0x38, 0xa, 0x7f, 0xff, 0xf4, 0x0, 0xe0, 0x38,
-    0xbf, 0x7f, 0xff, 0xf4, 0x0, 0xe0, 0x3f, 0xf8,
-    0x0, 0x1, 0xf0, 0x0, 0xe0, 0x3f, 0x40, 0x4,
-    0x3, 0xc0, 0x2a, 0xfa, 0x78, 0x3, 0xf, 0xf,
-    0x40, 0x3f, 0xff, 0x7c, 0x7, 0x47, 0xfe, 0x0,
-    0x15, 0xf5, 0x3e, 0xaf, 0x1, 0xf8, 0x0, 0x0,
-    0xe0, 0x1f, 0xfe, 0x0, 0xb8, 0x0, 0x0, 0xe0,
-    0x14, 0x0, 0x55, 0x7d, 0x50, 0x0, 0xe0, 0x3c,
-    0x0, 0xff, 0xff, 0xf8, 0x0, 0xe4, 0x38, 0x0,
-    0xaa, 0xbe, 0xb8, 0x0, 0xfe, 0x7f, 0xff, 0x0,
-    0x38, 0x74, 0x7, 0xfc, 0xff, 0xff, 0x0, 0x38,
-    0xb0, 0x7f, 0xf1, 0xe2, 0xd0, 0x2c, 0x38, 0x60,
-    0xbe, 0xe2, 0xd2, 0xc0, 0x3c, 0x38, 0x0, 0x50,
-    0xe0, 0x2, 0xc0, 0x3c, 0x3d, 0x50, 0x0, 0xe3,
-    0xff, 0xff, 0x7c, 0x3f, 0xf8, 0x0, 0xe3, 0xff,
-    0xff, 0x7c, 0x3e, 0xa4, 0x0, 0xe0, 0x3, 0xc0,
-    0x3c, 0x38, 0x0, 0x0, 0xe0, 0x7, 0xe0, 0x3c,
-    0x38, 0x0, 0x0, 0xe0, 0xf, 0xb8, 0x7d, 0x38,
-    0x0, 0x0, 0xe0, 0x2e, 0x3d, 0xff, 0x38, 0x0,
-    0x1, 0xe0, 0x7c, 0xe, 0xe7, 0xf8, 0x0, 0x2b,
-    0xe2, 0xf0, 0x2, 0xd2, 0xff, 0xfe, 0x3f, 0xc7,
-    0xd0, 0x7, 0xc0, 0x6f, 0xfd, 0x15, 0x3, 0x0,
-    0x7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0,
-
     /* U+6500 "攀" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x3, 0x80, 0x90, 0x1c, 0x7, 0x40, 0x0, 0x0,
@@ -56205,33 +59990,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xe4, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+651D "攝" */
-    0x0, 0x38, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0xf, 0x6, 0xaa, 0xaa, 0xaa, 0xaa, 0x0, 0x3,
-    0xc1, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x0, 0xf0,
-    0x3, 0xc0, 0x0, 0x2d, 0x0, 0x0, 0x3c, 0x0,
-    0xfa, 0xaa, 0xaf, 0x40, 0x1, 0x5f, 0x50, 0x3f,
-    0xff, 0xff, 0xd0, 0x0, 0xff, 0xfe, 0xf, 0x0,
-    0x0, 0xb4, 0x0, 0x2a, 0xfa, 0x43, 0xff, 0xff,
-    0xfd, 0x0, 0x0, 0x3c, 0x0, 0xfa, 0xaa, 0xaf,
-    0x40, 0x0, 0xf, 0x0, 0x3c, 0x0, 0x7, 0xe5,
-    0x40, 0x3, 0xc3, 0xff, 0xff, 0xff, 0xff, 0xe0,
-    0x0, 0xf0, 0xaa, 0xaa, 0x55, 0x7d, 0x50, 0x0,
-    0x3e, 0x40, 0x0, 0x0, 0x6, 0x0, 0x0, 0x1f,
-    0xda, 0xaa, 0xa6, 0xaa, 0xaa, 0x1, 0xbf, 0xd3,
-    0xff, 0xfe, 0xff, 0xff, 0xd0, 0xfe, 0xf0, 0x3c,
-    0xb, 0xd, 0x3, 0xc0, 0x14, 0x3c, 0xf, 0xab,
-    0xc3, 0x95, 0xf0, 0x0, 0xf, 0x3, 0xff, 0xf0,
-    0xff, 0xfc, 0x0, 0x3, 0xc0, 0xf0, 0x2c, 0x34,
-    0xf, 0x0, 0x0, 0xf0, 0x3d, 0x5b, 0xd, 0x3,
-    0xc0, 0x0, 0x3c, 0xf, 0xff, 0xc3, 0xff, 0xf0,
-    0x0, 0xf, 0x3, 0xd5, 0xf0, 0xea, 0xbc, 0x0,
-    0x3, 0xc0, 0xf0, 0x7e, 0x34, 0xf, 0x10, 0x0,
-    0xf2, 0xff, 0xff, 0xef, 0xff, 0xfd, 0x6, 0xf8,
-    0xbe, 0x96, 0xcf, 0xfa, 0xf5, 0x3, 0xfd, 0x0,
-    0x0, 0xb0, 0x0, 0x3c, 0x0, 0x94, 0x0, 0x0,
-    0x2c, 0x0, 0xf, 0x0,
-
     /* U+6525 "攥" */
     0x0, 0x10, 0x0, 0x50, 0x0, 0x10, 0x0, 0x0,
     0xf, 0x0, 0x3c, 0x0, 0x2c, 0x0, 0x0, 0x3,
@@ -56289,6 +60047,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x5, 0xbc, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+652E "攮" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xe0, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0xe0,
+    0x55, 0x55, 0xf5, 0x55, 0x50, 0x0, 0xe0, 0xff,
+    0xff, 0xff, 0xff, 0xf0, 0x0, 0xe0, 0x0, 0x0,
+    0xf0, 0x0, 0x0, 0x0, 0xe0, 0xf, 0xff, 0xff,
+    0xff, 0x40, 0x1a, 0xfa, 0xf, 0x55, 0xf5, 0x5b,
+    0x40, 0x3f, 0xff, 0x4f, 0x55, 0xf5, 0x5b, 0x40,
+    0x2b, 0xfa, 0xf, 0xff, 0xff, 0xff, 0x40, 0x0,
+    0xe0, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0xe0,
+    0xff, 0xff, 0xff, 0xff, 0xf4, 0x0, 0xe0, 0xf0,
+    0x0, 0x0, 0x0, 0x74, 0x0, 0xe0, 0xf7, 0xff,
+    0xdf, 0xff, 0x74, 0x0, 0xe5, 0x57, 0x3, 0xdd,
+    0xb, 0x0, 0x1, 0xfe, 0x7, 0xff, 0x9f, 0xff,
+    0x0, 0x2f, 0xfd, 0x0, 0x38, 0x1, 0xe0, 0x0,
+    0xbf, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x50,
+    0xe0, 0x0, 0x78, 0x1, 0xe0, 0x0, 0x0, 0xe0,
+    0x7f, 0xff, 0xff, 0xff, 0xe0, 0x0, 0xe0, 0x15,
+    0x79, 0x56, 0xe5, 0x40, 0x0, 0xe0, 0x55, 0xb9,
+    0x56, 0xe5, 0x54, 0x0, 0xe1, 0xff, 0xff, 0xff,
+    0xff, 0xfc, 0x0, 0xe0, 0x0, 0x1f, 0xb4, 0x7,
+    0x0, 0x0, 0xe0, 0x2, 0xfc, 0x2e, 0x7f, 0x0,
+    0x0, 0xe1, 0xbf, 0xf0, 0xb, 0xf4, 0x0, 0x6,
+    0xe7, 0xf8, 0xb0, 0xb5, 0xfe, 0x40, 0x3f, 0xd2,
+    0x40, 0xff, 0xe0, 0x1f, 0xfe, 0x1e, 0x40, 0x1,
+    0xf9, 0x0, 0x0, 0x6d, 0x0, 0x0, 0x0, 0x40,
+    0x0, 0x0, 0x0,
+
     /* U+652F "支" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x2, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -56316,6 +60102,62 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0x0, 0xbd, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+6534 "攴" */
+    0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x1, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x1, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1,
+    0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xf5,
+    0x55, 0x55, 0x40, 0x0, 0x0, 0x1, 0xff, 0xff,
+    0xff, 0xf0, 0x0, 0x0, 0x1, 0xff, 0xff, 0xff,
+    0xf0, 0x0, 0x0, 0x1, 0xf0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x1, 0xf0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x1, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x1, 0xf0, 0x0, 0x0, 0x0, 0xf, 0xff, 0xff,
+    0xff, 0xff, 0xf4, 0x0, 0xf, 0xff, 0xff, 0xff,
+    0xff, 0xf4, 0x0, 0x5, 0x5e, 0x55, 0x55, 0x56,
+    0xf4, 0x0, 0x0, 0x2f, 0x0, 0x0, 0x3, 0xf0,
+    0x0, 0x0, 0xf, 0x80, 0x0, 0xb, 0xc0, 0x0,
+    0x0, 0x7, 0xd0, 0x0, 0x1f, 0x80, 0x0, 0x0,
+    0x2, 0xf4, 0x0, 0x7f, 0x0, 0x0, 0x0, 0x0,
+    0xfd, 0x1, 0xfc, 0x0, 0x0, 0x0, 0x0, 0x3f,
+    0x4b, 0xf0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xff,
+    0xc0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xff, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x2f, 0xff, 0xd0, 0x0,
+    0x0, 0x0, 0x6, 0xff, 0x8b, 0xfe, 0x0, 0x0,
+    0x0, 0xbf, 0xf8, 0x0, 0xbf, 0xf8, 0x0, 0x6f,
+    0xff, 0x80, 0x0, 0xb, 0xff, 0xe4, 0xbf, 0xf4,
+    0x0, 0x0, 0x0, 0x6f, 0xfc, 0x79, 0x0, 0x0,
+    0x0, 0x0, 0x1, 0xb8, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
+    /* U+6535 "攵" */
+    0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x7c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xb8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf4,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0xf0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x7, 0xd0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0xf, 0xff, 0xff, 0xff, 0xff,
+    0xf0, 0x0, 0x2f, 0xff, 0xff, 0xff, 0xff, 0xf0,
+    0x0, 0x3f, 0xc0, 0x0, 0x7, 0xd0, 0x0, 0x0,
+    0xff, 0xc0, 0x0, 0x7, 0xc0, 0x0, 0x2, 0xf7,
+    0xd0, 0x0, 0xb, 0x80, 0x0, 0xb, 0xd3, 0xe0,
+    0x0, 0xf, 0x40, 0x0, 0x1f, 0x81, 0xf0, 0x0,
+    0x2f, 0x0, 0x0, 0x1f, 0x0, 0xf8, 0x0, 0x3e,
+    0x0, 0x0, 0x4, 0x0, 0xbc, 0x0, 0x7c, 0x0,
+    0x0, 0x0, 0x0, 0x3e, 0x0, 0xf8, 0x0, 0x0,
+    0x0, 0x0, 0x1f, 0x42, 0xf0, 0x0, 0x0, 0x0,
+    0x0, 0xf, 0xc7, 0xd0, 0x0, 0x0, 0x0, 0x0,
+    0x3, 0xff, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0xff,
+    0x40, 0x0, 0x0, 0x0, 0x0, 0xf, 0xff, 0xe0,
+    0x0, 0x0, 0x0, 0x0, 0xbf, 0x83, 0xfd, 0x0,
+    0x0, 0x0, 0x7, 0xfd, 0x0, 0xbf, 0xd0, 0x0,
+    0x0, 0xbf, 0xe0, 0x0, 0xf, 0xfe, 0x0, 0x1b,
+    0xfe, 0x0, 0x0, 0x1, 0xff, 0xf4, 0x7f, 0xe0,
+    0x0, 0x0, 0x0, 0x1f, 0xfc, 0x3e, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0xb4, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+6536 "收" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x28, 0x0, 0x38, 0x0, 0x0, 0x0, 0x0, 0xf4,
@@ -56737,6 +60579,35 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x80, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+655B "敛" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x2e, 0x0, 0x0, 0xe0, 0x0, 0x0, 0x0,
+    0xf, 0x40, 0x0, 0x7c, 0x0, 0x0, 0x0, 0xf,
+    0xf0, 0x0, 0x2e, 0x0, 0x0, 0x0, 0xb, 0xef,
+    0x40, 0xf, 0x40, 0x0, 0x0, 0x7, 0xd2, 0xf8,
+    0x7, 0xc0, 0x0, 0x0, 0x3, 0xe0, 0x1f, 0x82,
+    0xff, 0xff, 0xf0, 0x3, 0xe0, 0x1, 0xf8, 0xff,
+    0xff, 0xfc, 0x3, 0xf0, 0x0, 0xd, 0xb8, 0x0,
+    0xf0, 0x7, 0xf0, 0x0, 0x0, 0x3e, 0x0, 0x3c,
+    0x3, 0xf7, 0xff, 0xff, 0x2f, 0xc0, 0x1e, 0x0,
+    0xe1, 0xff, 0xff, 0xcf, 0xf0, 0xb, 0x40, 0x0,
+    0x0, 0x0, 0xb, 0xbd, 0x3, 0xd0, 0x0, 0x0,
+    0x10, 0x5, 0x4b, 0x80, 0xf0, 0x0, 0x3c, 0x1e,
+    0x3, 0xc0, 0xf0, 0x7c, 0x0, 0xb, 0x43, 0xc0,
+    0xf0, 0x3d, 0x2d, 0x0, 0x0, 0xe0, 0xf0, 0x78,
+    0xb, 0x8f, 0x0, 0x0, 0x3c, 0x2d, 0x2d, 0x0,
+    0xfb, 0x80, 0x0, 0xb, 0x7, 0x8f, 0x0, 0x2f,
+    0xc0, 0x0, 0x1, 0xd0, 0xe3, 0xc0, 0x3, 0xe0,
+    0x0, 0x0, 0x38, 0x3a, 0xd0, 0x2, 0xfc, 0x0,
+    0x0, 0xf, 0x0, 0xf0, 0x1, 0xff, 0x80, 0x0,
+    0x1, 0x0, 0x3d, 0x81, 0xf8, 0xf8, 0x0, 0x0,
+    0x16, 0xbf, 0xf1, 0xf8, 0x1f, 0x40, 0xf, 0xff,
+    0xff, 0xea, 0xf8, 0x1, 0xf4, 0x3, 0xff, 0xa4,
+    0x2, 0xf8, 0x0, 0x2f, 0x80, 0x50, 0x0, 0x3,
+    0xf4, 0x0, 0x2, 0xf4, 0x0, 0x0, 0x0, 0xb0,
+    0x0, 0x0, 0x1c, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+655D "敝" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x3c, 0x0, 0x0, 0x3c, 0x0, 0x3, 0x0, 0xf0,
@@ -57119,6 +60990,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x2f, 0xe0, 0x60, 0x0, 0x0, 0x0,
     0x0, 0x2, 0xe0,
 
+    /* U+6590 "斐" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x1f, 0x1, 0xf0, 0x0, 0x0, 0x0, 0x0,
+    0x1f, 0x1, 0xf0, 0x0, 0x0, 0xf, 0xff, 0xff,
+    0x1, 0xff, 0xff, 0xe0, 0xf, 0xff, 0xff, 0x1,
+    0xff, 0xff, 0xe0, 0x0, 0x0, 0x1f, 0x1, 0xf0,
+    0x0, 0x0, 0x0, 0x0, 0x1f, 0x1, 0xf0, 0x0,
+    0x0, 0x7, 0xff, 0xff, 0x1, 0xff, 0xff, 0xc0,
+    0x7, 0xff, 0xff, 0x1, 0xff, 0xff, 0x80, 0x0,
+    0x0, 0x1f, 0x1, 0xf0, 0x0, 0x0, 0x0, 0x0,
+    0x1f, 0x1, 0xf0, 0x0, 0x0, 0x2f, 0xff, 0xff,
+    0x1, 0xff, 0xff, 0xf0, 0x1a, 0xaa, 0xbf, 0x1,
+    0xfa, 0xaa, 0xa0, 0x0, 0x0, 0x1f, 0x65, 0xf0,
+    0x0, 0x0, 0x0, 0x0, 0x5, 0x7c, 0x50, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x3d, 0x0, 0x0, 0x0,
+    0x2f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x2f,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x0, 0xf,
+    0xc0, 0x0, 0x7, 0xe0, 0x0, 0x0, 0x3, 0xf0,
+    0x0, 0x1f, 0x80, 0x0, 0x0, 0x0, 0xfd, 0x0,
+    0xbe, 0x0, 0x0, 0x0, 0x0, 0x3f, 0x87, 0xf4,
+    0x0, 0x0, 0x0, 0x0, 0xb, 0xff, 0xc0, 0x0,
+    0x0, 0x0, 0x0, 0xb, 0xff, 0xd0, 0x0, 0x0,
+    0x0, 0x6, 0xff, 0xdb, 0xff, 0x90, 0x0, 0x1a,
+    0xff, 0xf8, 0x0, 0x6f, 0xff, 0xe8, 0xbf, 0xf9,
+    0x0, 0x0, 0x1, 0xaf, 0xfc, 0x79, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x68,
+
     /* U+6591 "斑" */
     0x0, 0x0, 0x0, 0x28, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0xf, 0x0, 0x0, 0x0, 0x0, 0xaa,
@@ -57390,6 +61288,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0x7c, 0x0, 0x0, 0x9, 0x0,
     0x0, 0x0, 0x7c, 0x0, 0x0,
 
+    /* U+65A7 "斧" */
+    0x0, 0x0, 0x2, 0x0, 0x24, 0x0, 0x0, 0x0,
+    0x0, 0xb, 0xe0, 0x2f, 0xd0, 0x0, 0x0, 0x0,
+    0x1f, 0xe0, 0x1, 0xff, 0x40, 0x0, 0x0, 0x7f,
+    0xe0, 0x0, 0x1f, 0xfd, 0x0, 0x1, 0xff, 0xbe,
+    0x0, 0x2f, 0x9f, 0xe0, 0x1, 0xfe, 0x7, 0xf0,
+    0x7f, 0x40, 0xbd, 0x0, 0x24, 0x0, 0x3f, 0xff,
+    0x0, 0x2, 0x0, 0x0, 0x0, 0x3, 0xff, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x1f, 0xfb, 0xf9, 0x0,
+    0x0, 0x0, 0x1, 0xbf, 0xe0, 0x2f, 0xf9, 0x0,
+    0x0, 0x1b, 0xff, 0x40, 0x0, 0x6f, 0xfe, 0x40,
+    0xff, 0xf8, 0x0, 0x0, 0x1, 0xef, 0xfc, 0x2f,
+    0x40, 0x5, 0x6a, 0xff, 0xf0, 0x6e, 0x0, 0x3,
+    0xff, 0xff, 0xff, 0xf8, 0x0, 0x0, 0x0, 0xff,
+    0xea, 0x54, 0x0, 0x0, 0x0, 0x0, 0x3d, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0x40, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x3, 0xe0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0x40, 0x0, 0x3f, 0xff, 0xff, 0xff, 0xff,
+    0xd0, 0x0, 0xf, 0x0, 0x0, 0x3d, 0x0, 0x0,
+    0x0, 0xb, 0xc0, 0x0, 0xf, 0x40, 0x0, 0x0,
+    0x3, 0xe0, 0x0, 0x3, 0xd0, 0x0, 0x0, 0x2,
+    0xf0, 0x0, 0x0, 0xf4, 0x0, 0x0, 0x2, 0xf8,
+    0x0, 0x0, 0x3d, 0x0, 0x0, 0x2, 0xf8, 0x0,
+    0x0, 0xf, 0x40, 0x0, 0x0, 0x3c, 0x0, 0x0,
+    0x3, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+65A9 "斩" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x1f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2e,
@@ -57418,6 +61344,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xc0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+65AB "斫" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x1, 0xbe, 0x0, 0xbf,
+    0xff, 0xfc, 0x16, 0xbf, 0xff, 0xc0, 0x2f, 0xff,
+    0xff, 0xf, 0xff, 0xfe, 0x0, 0x1, 0x5f, 0x95,
+    0x43, 0xfa, 0x40, 0x0, 0x0, 0x3, 0xd0, 0x0,
+    0xf0, 0x0, 0x0, 0x0, 0x1, 0xf0, 0x0, 0x3c,
+    0x0, 0x0, 0x0, 0x0, 0xb8, 0x0, 0xf, 0x0,
+    0x0, 0x0, 0x0, 0x3d, 0x0, 0x3, 0xc0, 0x0,
+    0x0, 0x0, 0x1f, 0x0, 0x0, 0xf0, 0x0, 0x0,
+    0x0, 0xf, 0xd5, 0x40, 0x3d, 0x55, 0x55, 0x50,
+    0x7, 0xff, 0xf8, 0xf, 0xff, 0xff, 0xfd, 0x3,
+    0xff, 0xfe, 0x3, 0xff, 0xff, 0xff, 0x42, 0xfd,
+    0x7, 0x80, 0xf0, 0x7, 0xc0, 0x0, 0xff, 0x41,
+    0xe0, 0x3c, 0x1, 0xf0, 0x0, 0xfe, 0xd0, 0x78,
+    0x1f, 0x0, 0x7c, 0x0, 0x7c, 0xb4, 0x1e, 0x7,
+    0xc0, 0x1f, 0x0, 0x5, 0x2d, 0x7, 0x81, 0xe0,
+    0x7, 0xc0, 0x0, 0xb, 0x41, 0xe0, 0xb8, 0x1,
+    0xf0, 0x0, 0x2, 0xd0, 0x78, 0x3d, 0x0, 0x7c,
+    0x0, 0x0, 0xb4, 0x1e, 0xf, 0x0, 0x1f, 0x0,
+    0x0, 0x2d, 0x7, 0x87, 0xc0, 0x7, 0xc0, 0x0,
+    0xb, 0xff, 0xe3, 0xe0, 0x1, 0xf0, 0x0, 0x2,
+    0xff, 0xf9, 0xf0, 0x0, 0x7c, 0x0, 0x0, 0x0,
+    0x1, 0xf8, 0x0, 0x1f, 0x0, 0x0, 0x0, 0x0,
+    0xbc, 0x0, 0x7, 0xc0, 0x0, 0x0, 0x0, 0x2d,
+    0x0, 0x1, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+65AD "断" */
     0x0, 0x3, 0xc0, 0x0, 0x0, 0x0, 0x5, 0x0,
     0x3c, 0x0, 0x0, 0x6, 0xe0, 0xf1, 0x3, 0xc1,
@@ -57635,6 +61589,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x80, 0x0, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+65C4 "旄" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x7, 0x80, 0x0, 0x38, 0x0, 0x0, 0x0, 0x1,
+    0xf0, 0x0, 0x1f, 0x0, 0x0, 0x0, 0x0, 0x3d,
+    0x0, 0xf, 0x40, 0x0, 0x0, 0x0, 0xb, 0xc0,
+    0x7, 0xff, 0xff, 0xfe, 0x1, 0x55, 0xf5, 0x43,
+    0xff, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xf6, 0xf0,
+    0x0, 0x0, 0x0, 0x3f, 0xff, 0xfe, 0xf4, 0x0,
+    0x0, 0x0, 0x0, 0xb4, 0x0, 0xf8, 0x0, 0x6,
+    0xe0, 0x0, 0x2d, 0x0, 0x1c, 0x16, 0xff, 0xfc,
+    0x0, 0xb, 0x40, 0x3, 0xff, 0xfe, 0x90, 0x0,
+    0x2, 0xd0, 0x0, 0xfe, 0xbc, 0x0, 0x0, 0x0,
+    0xbf, 0xfd, 0x0, 0x1f, 0x0, 0x0, 0x0, 0x2f,
+    0xff, 0x40, 0x7, 0xc0, 0x0, 0x0, 0xb, 0x42,
+    0xd0, 0x16, 0xfb, 0xff, 0x80, 0x2, 0xd0, 0xb4,
+    0xff, 0xff, 0xfa, 0x90, 0x0, 0xf0, 0x2d, 0x29,
+    0x5f, 0x0, 0x0, 0x0, 0x3c, 0xb, 0x0, 0x7,
+    0xc0, 0x0, 0x0, 0xf, 0x2, 0xc0, 0x1, 0xf1,
+    0x5a, 0xb0, 0x3, 0xc0, 0xf5, 0xab, 0xff, 0xff,
+    0xfc, 0x1, 0xe0, 0x3d, 0xff, 0xff, 0xa5, 0x40,
+    0x0, 0xb4, 0xf, 0x14, 0x7, 0xc0, 0x1, 0x0,
+    0x3c, 0x3, 0xc0, 0x1, 0xf0, 0x1, 0xe0, 0x1f,
+    0x0, 0xf0, 0x0, 0x7c, 0x0, 0x78, 0xf, 0x45,
+    0xfc, 0x0, 0xf, 0x40, 0x3d, 0x7, 0xc2, 0xfe,
+    0x0, 0x3, 0xff, 0xff, 0x3, 0xd0, 0x69, 0x0,
+    0x0, 0x2f, 0xff, 0x40, 0x20, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+65C5 "旅" */
     0x0, 0x5, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0,
     0x3, 0xc0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x0,
@@ -57861,6 +61843,35 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x40, 0x0, 0x3, 0xfe, 0x0, 0x60, 0x0, 0x0,
     0x0, 0x1, 0x50, 0x0,
 
+    /* U+65D7 "旗" */
+    0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0,
+    0xb, 0x40, 0x1, 0xf0, 0x0, 0x0, 0x0, 0x1,
+    0xe0, 0x0, 0xf4, 0x0, 0x0, 0x0, 0x0, 0x3c,
+    0x0, 0x7f, 0xff, 0xff, 0xf8, 0x0, 0xf, 0x40,
+    0x3f, 0xff, 0xff, 0xff, 0x3, 0xff, 0xff, 0xae,
+    0x0, 0x0, 0x0, 0x0, 0xff, 0xff, 0xff, 0xa0,
+    0x0, 0x28, 0x0, 0x2, 0xc0, 0x1, 0x3c, 0x0,
+    0xf, 0x0, 0x0, 0xb0, 0x0, 0xaf, 0xea, 0xab,
+    0xe9, 0x0, 0x2c, 0x0, 0x3f, 0xff, 0xff, 0xff,
+    0x40, 0xf, 0x0, 0x0, 0xf4, 0x0, 0x3c, 0x0,
+    0x3, 0xea, 0xa0, 0x3c, 0x0, 0xf, 0x0, 0x0,
+    0xff, 0xfc, 0xf, 0xaa, 0xab, 0xc0, 0x0, 0x3d,
+    0x5f, 0x3, 0xff, 0xff, 0xf0, 0x0, 0xf, 0x3,
+    0xc0, 0xf4, 0x0, 0x3c, 0x0, 0x3, 0xc0, 0xf0,
+    0x3c, 0x0, 0xf, 0x0, 0x0, 0xf0, 0x3c, 0xf,
+    0xaa, 0xab, 0xc0, 0x0, 0x3c, 0xf, 0x3, 0xff,
+    0xff, 0xf0, 0x0, 0x1e, 0x3, 0xc0, 0xf4, 0x0,
+    0x3c, 0x0, 0x7, 0x80, 0xf0, 0x3c, 0x0, 0xf,
+    0x0, 0x2, 0xd0, 0x39, 0xff, 0xff, 0xff, 0xff,
+    0x0, 0xf0, 0xe, 0x7f, 0xff, 0xff, 0xff, 0xd0,
+    0x7c, 0x3, 0x80, 0x0, 0x0, 0x0, 0x0, 0x2d,
+    0x1, 0xe0, 0x7, 0xc0, 0xf8, 0x0, 0xf, 0x0,
+    0xb8, 0xb, 0xe0, 0x1f, 0xd0, 0xb, 0x83, 0xfd,
+    0x2f, 0xd0, 0x0, 0xbf, 0x3, 0xc0, 0xb9, 0x3f,
+    0x80, 0x0, 0x3, 0xf0, 0x10, 0x0, 0x6, 0x0,
+    0x0, 0x0, 0x1c, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+65E0 "无" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7,
     0xff, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x1f, 0xff,
@@ -58127,6 +62138,29 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xff, 0xfd, 0x3f, 0xd0, 0x0, 0x0, 0x7, 0xff,
     0xd0, 0x60, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+65F0 "旰" */
+    0xbf, 0xff, 0x87, 0xff, 0xff, 0xff, 0xf, 0xff,
+    0xfc, 0x7f, 0xff, 0xff, 0xf0, 0xf9, 0x5b, 0xc0,
+    0x1, 0xf4, 0x0, 0xf, 0x40, 0x7c, 0x0, 0xf,
+    0x0, 0x0, 0xf4, 0x7, 0xc0, 0x0, 0xf0, 0x0,
+    0xf, 0x40, 0x7c, 0x0, 0xf, 0x0, 0x0, 0xf4,
+    0x7, 0xc0, 0x0, 0xf0, 0x0, 0xf, 0x40, 0x7c,
+    0x0, 0xf, 0x0, 0x0, 0xf4, 0x7, 0xc0, 0x0,
+    0xf0, 0x0, 0xf, 0x40, 0x7c, 0x0, 0xf, 0x0,
+    0x0, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xcf,
+    0xff, 0xfd, 0xff, 0xff, 0xff, 0xfc, 0xf4, 0x7,
+    0xc5, 0x55, 0xf9, 0x55, 0x4f, 0x40, 0x7c, 0x0,
+    0xf, 0x0, 0x0, 0xf4, 0x7, 0xc0, 0x0, 0xf0,
+    0x0, 0xf, 0x40, 0x7c, 0x0, 0xf, 0x0, 0x0,
+    0xf4, 0x7, 0xc0, 0x0, 0xf0, 0x0, 0xf, 0x40,
+    0x7c, 0x0, 0xf, 0x0, 0x0, 0xf4, 0x7, 0xc0,
+    0x0, 0xf0, 0x0, 0xf, 0x40, 0x7c, 0x0, 0xf,
+    0x0, 0x0, 0xff, 0xff, 0xc0, 0x0, 0xf0, 0x0,
+    0xf, 0xff, 0xfc, 0x0, 0xf, 0x0, 0x0, 0x15,
+    0x55, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xf0, 0x0, 0x0,
+
     /* U+65F1 "旱" */
     0x0, 0xbf, 0xff, 0xff, 0xff, 0xfd, 0x0, 0x3,
     0xff, 0xff, 0xff, 0xff, 0xf4, 0x0, 0xf, 0x40,
@@ -58201,29 +62235,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x1f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0,
 
-    /* U+65F8 "旸" */
-    0x0, 0x0, 0x1, 0x55, 0x55, 0x54, 0xf, 0xff,
-    0xc0, 0xff, 0xff, 0xff, 0x3, 0xff, 0xf0, 0x2a,
-    0xaa, 0xbf, 0xc0, 0xf0, 0x3c, 0x0, 0x0, 0x2f,
-    0xc0, 0x3c, 0xf, 0x0, 0x0, 0x3f, 0x80, 0xf,
-    0x3, 0xc0, 0x0, 0x7f, 0x40, 0x3, 0xc0, 0xf0,
-    0x0, 0xbe, 0x0, 0x0, 0xf0, 0x3c, 0x1, 0xfd,
-    0x0, 0x0, 0x3c, 0xf, 0x2, 0xf8, 0x0, 0x0,
-    0xf, 0x3, 0xc1, 0xff, 0xff, 0xff, 0xe3, 0xc0,
-    0xf0, 0x7f, 0xff, 0xff, 0xf8, 0xff, 0xfc, 0x0,
-    0xb4, 0x3c, 0x1e, 0x3f, 0xff, 0x0, 0x3c, 0xf,
-    0x7, 0x8f, 0x3, 0xc0, 0x1f, 0x7, 0x81, 0xd3,
-    0xc0, 0xf0, 0xf, 0x42, 0xd0, 0xb4, 0xf0, 0x3c,
-    0x7, 0xc0, 0xf0, 0x2d, 0x3c, 0xf, 0x3, 0xd0,
-    0x3c, 0xb, 0x4f, 0x3, 0xc2, 0xf0, 0x2d, 0x2,
-    0xd3, 0xc0, 0xf2, 0xf0, 0xf, 0x0, 0xf0, 0xf0,
-    0x3e, 0xf4, 0xb, 0x80, 0x3c, 0x3f, 0xff, 0x78,
-    0x7, 0xc0, 0xf, 0xf, 0xff, 0xc0, 0x3, 0xd0,
-    0x3, 0xc1, 0x55, 0x50, 0x3, 0xe0, 0x17, 0xf0,
-    0x0, 0x0, 0x3, 0xf0, 0x7f, 0xf4, 0x0, 0x0,
-    0x2, 0xf0, 0xf, 0xa0, 0x0, 0x0, 0x0, 0x20,
-    0x0, 0x0, 0x0,
-
     /* U+65FA "旺" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xff,
     0xf0, 0xff, 0xff, 0xff, 0xf4, 0xff, 0xff, 0xf,
@@ -58247,32 +62258,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xff, 0xff, 0xff, 0xfc, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+65FB "旻" */
-    0x0, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x1,
-    0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x1, 0xf0,
-    0x0, 0x0, 0x0, 0x1f, 0x0, 0x1, 0xf0, 0x0,
-    0x0, 0x0, 0x1f, 0x0, 0x1, 0xf0, 0x0, 0x0,
-    0x0, 0x2f, 0x0, 0x1, 0xff, 0xff, 0xff, 0xff,
-    0xff, 0x0, 0x1, 0xff, 0xff, 0xff, 0xff, 0xff,
-    0x0, 0x1, 0xf0, 0x0, 0x0, 0x0, 0x1f, 0x0,
-    0x1, 0xf0, 0x0, 0x0, 0x0, 0x1f, 0x0, 0x1,
-    0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0xff,
-    0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0,
-    0x14, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c, 0x0,
-    0x0, 0x0, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff,
-    0xf0, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
-    0x0, 0xf, 0x80, 0x0, 0x3, 0xf0, 0x0, 0x0,
-    0x3, 0xe0, 0x0, 0xf, 0xc0, 0x0, 0x0, 0x0,
-    0xfc, 0x0, 0x7f, 0x0, 0x0, 0x0, 0x0, 0x3f,
-    0x82, 0xf8, 0x0, 0x0, 0x0, 0x0, 0xb, 0xff,
-    0xd0, 0x0, 0x0, 0x0, 0x0, 0x7, 0xff, 0x90,
-    0x0, 0x0, 0x0, 0x1, 0xbf, 0xeb, 0xfe, 0x40,
-    0x0, 0x5, 0xbf, 0xfd, 0x0, 0xbf, 0xfe, 0x50,
-    0x7f, 0xfe, 0x40, 0x0, 0x1, 0xbf, 0xfc, 0x3e,
-    0x50, 0x0, 0x0, 0x0, 0x1, 0xb8, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x0,
-
     /* U+6600 "昀" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x2d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3d,
@@ -58368,58 +62353,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x2f, 0xff, 0xf8, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+6607 "昇" */
-    0x0, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x0,
-    0xff, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x0, 0xf0,
-    0x0, 0x0, 0x0, 0x3c, 0x0, 0x0, 0xf0, 0x0,
-    0x0, 0x0, 0x3c, 0x0, 0x0, 0xff, 0xff, 0xff,
-    0xff, 0xfc, 0x0, 0x0, 0xff, 0xff, 0xff, 0xff,
-    0xfc, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0x3c,
-    0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0x3c, 0x0,
-    0x0, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x0,
-    0xff, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x0, 0x0,
-    0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1,
-    0xbd, 0x0, 0x0, 0x0, 0x0, 0x16, 0xff, 0xfe,
-    0x7, 0x80, 0x0, 0xb, 0xff, 0xfe, 0x90, 0x7,
-    0x80, 0x0, 0x7, 0xf9, 0xf0, 0x0, 0x7, 0x80,
-    0x0, 0x0, 0x0, 0xf0, 0x0, 0x7, 0x80, 0x0,
-    0x0, 0x0, 0xf0, 0x0, 0x7, 0x80, 0x0, 0x7f,
-    0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x7f, 0xff,
-    0xff, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x1, 0xf0,
-    0x0, 0x7, 0x80, 0x0, 0x0, 0x2, 0xe0, 0x0,
-    0x7, 0x80, 0x0, 0x0, 0x7, 0xc0, 0x0, 0x7,
-    0x80, 0x0, 0x0, 0x2f, 0x80, 0x0, 0x7, 0x80,
-    0x0, 0x1, 0xfe, 0x0, 0x0, 0x7, 0x80, 0x0,
-    0xf, 0xf4, 0x0, 0x0, 0x7, 0x80, 0x0, 0xf,
-    0x80, 0x0, 0x0, 0x7, 0x80, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x0,
-
-    /* U+6609 "昉" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x2d, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x1, 0xe0, 0x0, 0xf, 0xff, 0xf0, 0x0, 0xf,
-    0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xf0, 0x0,
-    0xf, 0x1, 0xf3, 0xff, 0xff, 0xff, 0xfc, 0xf0,
-    0xf, 0x3f, 0xff, 0xff, 0xff, 0xcf, 0x0, 0xf0,
-    0x7, 0xc0, 0x0, 0x0, 0xf0, 0xf, 0x0, 0x78,
-    0x0, 0x0, 0xf, 0x0, 0xf0, 0x7, 0x80, 0x0,
-    0x0, 0xf0, 0xf, 0x0, 0x78, 0x0, 0x0, 0xf,
-    0x0, 0xf0, 0xb, 0x80, 0x0, 0x0, 0xf0, 0xf,
-    0x0, 0xbf, 0xff, 0xfc, 0xf, 0xff, 0xf0, 0xb,
-    0xff, 0xff, 0xc0, 0xff, 0xff, 0x0, 0xf4, 0x0,
-    0x3c, 0xf, 0x0, 0xf0, 0xf, 0x40, 0x3, 0xc0,
-    0xf0, 0xf, 0x0, 0xf0, 0x0, 0x3c, 0xf, 0x0,
-    0xf0, 0xf, 0x0, 0x3, 0xc0, 0xf0, 0xf, 0x1,
-    0xf0, 0x0, 0x7c, 0xf, 0x0, 0xf0, 0x2e, 0x0,
-    0x7, 0x80, 0xf0, 0xf, 0x3, 0xd0, 0x0, 0x78,
-    0xf, 0x0, 0xf0, 0x7c, 0x0, 0x7, 0x80, 0xf0,
-    0xf, 0xf, 0x40, 0x0, 0xb8, 0xf, 0xff, 0xf2,
-    0xf0, 0x0, 0xf, 0x80, 0xff, 0xff, 0x7d, 0x0,
-    0x5b, 0xf4, 0x0, 0x0, 0x1f, 0x80, 0xf, 0xff,
-    0x0, 0x0, 0x3, 0xf0, 0x0, 0xfe, 0x40, 0x0,
-    0x0, 0x1c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x0,
-
     /* U+660A "昊" */
     0x0, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x0, 0x0,
     0xff, 0xff, 0xff, 0xff, 0xfd, 0x0, 0x0, 0xf4,
@@ -58640,6 +62573,56 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+661F "星" */
+    0x0, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x3,
+    0xff, 0xff, 0xff, 0xff, 0xf0, 0x0, 0xf, 0x40,
+    0x0, 0x0, 0x3, 0xc0, 0x0, 0x3d, 0x0, 0x0,
+    0x0, 0xf, 0x0, 0x0, 0xff, 0xff, 0xff, 0xff,
+    0xfc, 0x0, 0x3, 0xff, 0xff, 0xff, 0xff, 0xf0,
+    0x0, 0xf, 0x40, 0x0, 0x0, 0x3, 0xc0, 0x0,
+    0x3d, 0x0, 0x0, 0x0, 0xf, 0x0, 0x0, 0xfe,
+    0xaa, 0xaa, 0xaa, 0xbc, 0x0, 0x3, 0xff, 0xff,
+    0xff, 0xff, 0xf0, 0x0, 0x1, 0x80, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0xb, 0x80, 0xa, 0x0, 0x0,
+    0x0, 0x0, 0x3d, 0x0, 0x3c, 0x0, 0x0, 0x0,
+    0x3, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x2f,
+    0xff, 0xff, 0xff, 0xff, 0xfc, 0x1, 0xf4, 0x0,
+    0x1f, 0x0, 0x0, 0x0, 0xf, 0x80, 0x0, 0x3c,
+    0x0, 0x0, 0x0, 0xfc, 0x0, 0x1, 0xf0, 0x0,
+    0x0, 0x1, 0xc7, 0xff, 0xff, 0xff, 0xff, 0xf0,
+    0x0, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x0,
+    0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7,
+    0xc0, 0x0, 0x0, 0xf, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xfd, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xf0,
+
+    /* U+6620 "映" */
+    0x0, 0x0, 0x0, 0x0, 0xa0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x3, 0xd0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xf, 0x40, 0x0, 0xf, 0xff, 0xc0, 0x0,
+    0x3d, 0x0, 0x0, 0x3f, 0xff, 0x0, 0x0, 0xf4,
+    0x0, 0x0, 0xf5, 0x7c, 0xf, 0xff, 0xff, 0xfc,
+    0x3, 0xc0, 0xf0, 0x3f, 0xff, 0xff, 0xf0, 0xf,
+    0x3, 0xc0, 0xf0, 0x3d, 0x3, 0xc0, 0x3c, 0xf,
+    0x3, 0xc0, 0xf4, 0xf, 0x0, 0xf0, 0x3c, 0xf,
+    0x3, 0xd0, 0x3c, 0x3, 0xc0, 0xf0, 0x3c, 0xf,
+    0x40, 0xf0, 0xf, 0x3, 0xc0, 0xf0, 0x3d, 0x3,
+    0xc0, 0x3f, 0xff, 0x3, 0xc0, 0xf4, 0xf, 0x0,
+    0xff, 0xfc, 0xf, 0x3, 0xd0, 0x3c, 0x3, 0xd5,
+    0xf3, 0xff, 0xff, 0xff, 0xff, 0xf, 0x3, 0xcf,
+    0xff, 0xff, 0xff, 0xfc, 0x3c, 0xf, 0x0, 0x1,
+    0xf8, 0x0, 0x0, 0xf0, 0x3c, 0x0, 0xb, 0xf0,
+    0x0, 0x3, 0xc0, 0xf0, 0x0, 0x3f, 0xd0, 0x0,
+    0xf, 0x3, 0xc0, 0x2, 0xf7, 0xc0, 0x0, 0x3c,
+    0xf, 0x0, 0xf, 0x8f, 0x80, 0x0, 0xf5, 0x7c,
+    0x0, 0xfc, 0xf, 0x80, 0x3, 0xff, 0xf0, 0xf,
+    0xc0, 0x1f, 0x80, 0xf, 0xff, 0xc1, 0xfc, 0x0,
+    0x2f, 0xd0, 0x0, 0x0, 0x3f, 0xc0, 0x0, 0x1f,
+    0xe0, 0x0, 0x3, 0xf8, 0x0, 0x0, 0xf, 0xd0,
+    0x0, 0x7, 0x40, 0x0, 0x0, 0x6, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+6625 "春" */
     0x0, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0xf, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -58668,6 +62651,175 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0xf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+6627 "昧" */
+    0x0, 0x0, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xf, 0x0, 0x0, 0xf, 0xff, 0xe0, 0x0,
+    0x3c, 0x0, 0x0, 0x3f, 0xff, 0xc0, 0x0, 0xf0,
+    0x0, 0x0, 0xfa, 0xaf, 0x2f, 0xff, 0xff, 0xfc,
+    0x3, 0xc0, 0x3c, 0xff, 0xff, 0xff, 0xf0, 0xf,
+    0x0, 0xf0, 0x55, 0x7d, 0x55, 0x40, 0x3c, 0x3,
+    0xc0, 0x0, 0xf0, 0x0, 0x0, 0xf0, 0xf, 0x0,
+    0x3, 0xc0, 0x0, 0x3, 0xc0, 0x3c, 0x0, 0xf,
+    0x0, 0x0, 0xf, 0x0, 0xf0, 0x0, 0x3c, 0x0,
+    0x0, 0x3c, 0x3, 0xda, 0xaa, 0xfa, 0xaa, 0x80,
+    0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0x43, 0xff,
+    0xfc, 0xaa, 0xbf, 0xea, 0xa8, 0xf, 0x0, 0xf0,
+    0x1, 0xff, 0x0, 0x0, 0x3c, 0x3, 0xc0, 0xf,
+    0xff, 0x0, 0x0, 0xf0, 0xf, 0x0, 0x7f, 0xee,
+    0x0, 0x3, 0xc0, 0x3c, 0x3, 0xdf, 0x3d, 0x0,
+    0xf, 0x0, 0xf0, 0x2e, 0x3c, 0x7c, 0x0, 0x3c,
+    0x3, 0xc1, 0xf0, 0xf0, 0x7c, 0x0, 0xf0, 0x1f,
+    0xf, 0x43, 0xc0, 0xbc, 0x3, 0xff, 0xfc, 0xf8,
+    0xf, 0x0, 0xbd, 0xf, 0xff, 0xff, 0x80, 0x3c,
+    0x0, 0xbd, 0x0, 0x0, 0xfc, 0x0, 0xf0, 0x0,
+    0xb4, 0x0, 0x1, 0x80, 0x3, 0xc0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0xf, 0x0, 0x0, 0x0,
+
+    /* U+6628 "昨" */
+    0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x7c, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x2, 0xf0, 0x0, 0x0, 0xa, 0xaa, 0xa0, 0xf,
+    0x40, 0x0, 0x0, 0x3f, 0xff, 0xc0, 0x7c, 0x0,
+    0x0, 0x0, 0xfa, 0xaf, 0x2, 0xff, 0xff, 0xff,
+    0xc3, 0xc0, 0x3c, 0xf, 0xff, 0xff, 0xff, 0xf,
+    0x0, 0xf0, 0xbc, 0xf4, 0x0, 0x0, 0x3c, 0x3,
+    0xc3, 0xd3, 0xc0, 0x0, 0x0, 0xf0, 0xf, 0x3f,
+    0xf, 0x0, 0x0, 0x3, 0xc0, 0x3e, 0xf4, 0x3c,
+    0x0, 0x0, 0xf, 0x0, 0xff, 0x80, 0xf0, 0x0,
+    0x0, 0x3c, 0x3, 0xdc, 0x3, 0xe5, 0x55, 0x0,
+    0xf0, 0xf, 0x0, 0xf, 0xff, 0xfd, 0x3, 0xff,
+    0xfc, 0x0, 0x3e, 0xaa, 0xa4, 0xf, 0xff, 0xf0,
+    0x0, 0xf0, 0x0, 0x0, 0x3c, 0x3, 0xc0, 0x3,
+    0xc0, 0x0, 0x0, 0xf0, 0xf, 0x0, 0xf, 0x0,
+    0x0, 0x3, 0xc0, 0x3c, 0x0, 0x3c, 0x0, 0x0,
+    0xf, 0x0, 0xf0, 0x0, 0xf5, 0x55, 0x50, 0x3c,
+    0x3, 0xc0, 0x3, 0xff, 0xff, 0xc0, 0xf0, 0xf,
+    0x0, 0xf, 0xff, 0xff, 0x3, 0xc0, 0x3c, 0x0,
+    0x3c, 0x0, 0x0, 0xf, 0xff, 0xf0, 0x0, 0xf0,
+    0x0, 0x0, 0x3f, 0xff, 0xc0, 0x3, 0xc0, 0x0,
+    0x0, 0x55, 0x55, 0x0, 0xf, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xf0, 0x0, 0x0,
+
+    /* U+662D "昭" */
+    0x0, 0x0, 0x2, 0xaa, 0xaa, 0xaa, 0x4f, 0xff,
+    0xf0, 0xff, 0xff, 0xff, 0xe3, 0xff, 0xfc, 0x2a,
+    0xbe, 0xaa, 0xf8, 0xf0, 0x1f, 0x0, 0x1f, 0x0,
+    0x2d, 0x3c, 0x3, 0xc0, 0x7, 0x80, 0xf, 0x4f,
+    0x0, 0xf0, 0x2, 0xe0, 0x3, 0xd3, 0xc0, 0x3c,
+    0x0, 0xf4, 0x0, 0xf4, 0xf0, 0xf, 0x0, 0x7c,
+    0x0, 0x3d, 0x3c, 0x3, 0xc0, 0x3d, 0x0, 0x1f,
+    0xf, 0x0, 0xf0, 0x3f, 0x2, 0xff, 0xc3, 0xc0,
+    0x3c, 0x3f, 0x0, 0x7f, 0xc0, 0xff, 0xff, 0x3f,
+    0x40, 0x5, 0x0, 0x3f, 0xff, 0xcf, 0x0, 0x0,
+    0x0, 0xf, 0x55, 0xf0, 0x0, 0x0, 0x0, 0x3,
+    0xc0, 0x3c, 0xf, 0xff, 0xff, 0xf0, 0xf0, 0xf,
+    0x3, 0xff, 0xff, 0xfc, 0x3c, 0x3, 0xc0, 0xf0,
+    0x0, 0xf, 0xf, 0x0, 0xf0, 0x3c, 0x0, 0x3,
+    0xc3, 0xc0, 0x3c, 0xf, 0x0, 0x0, 0xf0, 0xf0,
+    0xf, 0x3, 0xc0, 0x0, 0x3c, 0x3c, 0x3, 0xc0,
+    0xf0, 0x0, 0xf, 0xf, 0xff, 0xf0, 0x3c, 0x0,
+    0x3, 0xc3, 0xff, 0xfc, 0xf, 0xff, 0xff, 0xf0,
+    0x55, 0x55, 0x3, 0xff, 0xff, 0xfc, 0x0, 0x0,
+    0x0, 0xf0, 0x0, 0xf, 0x0, 0x0, 0x0, 0x3c,
+    0x0, 0x3, 0xc0,
+
+    /* U+662F "是" */
+    0x0, 0x7f, 0xff, 0xff, 0xff, 0xf4, 0x0, 0x2,
+    0xff, 0xff, 0xff, 0xff, 0xd0, 0x0, 0xb, 0x80,
+    0x0, 0x0, 0xf, 0x40, 0x0, 0x2e, 0x0, 0x0,
+    0x0, 0x3d, 0x0, 0x0, 0xbf, 0xff, 0xff, 0xff,
+    0xf4, 0x0, 0x2, 0xff, 0xff, 0xff, 0xff, 0xd0,
+    0x0, 0xb, 0x80, 0x0, 0x0, 0xf, 0x40, 0x0,
+    0x2e, 0x0, 0x0, 0x0, 0x3d, 0x0, 0x0, 0xb8,
+    0x0, 0x0, 0x0, 0xf4, 0x0, 0x2, 0xff, 0xff,
+    0xff, 0xff, 0xd0, 0x0, 0x7, 0xff, 0xff, 0xff,
+    0xff, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc3, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0,
+    0x1f, 0x0, 0x0, 0x0, 0x0, 0x1e, 0x0, 0x7c,
+    0x0, 0x0, 0x0, 0x0, 0xb8, 0x1, 0xf0, 0x0,
+    0x0, 0x0, 0x3, 0xd0, 0x7, 0xff, 0xff, 0xf0,
+    0x0, 0x2f, 0x40, 0x1f, 0xff, 0xff, 0xc0, 0x0,
+    0xff, 0x40, 0x7c, 0x0, 0x0, 0x0, 0xb, 0xef,
+    0x41, 0xf0, 0x0, 0x0, 0x0, 0x7d, 0x1f, 0xeb,
+    0xc0, 0x0, 0x0, 0x7, 0xe0, 0xf, 0xff, 0xff,
+    0xff, 0xff, 0x7f, 0x0, 0x1, 0xbf, 0xff, 0xff,
+    0xf8, 0xa0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+
+    /* U+6631 "昱" */
+    0x0, 0xbf, 0xff, 0xff, 0xff, 0xfd, 0x0, 0x3,
+    0xff, 0xff, 0xff, 0xff, 0xf8, 0x0, 0xf, 0x40,
+    0x0, 0x0, 0x2, 0xe0, 0x0, 0x3d, 0x0, 0x0,
+    0x0, 0xb, 0x80, 0x0, 0xf4, 0x0, 0x0, 0x0,
+    0x2e, 0x0, 0x3, 0xff, 0xff, 0xff, 0xff, 0xf8,
+    0x0, 0xf, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x0,
+    0x3d, 0x0, 0x0, 0x0, 0xb, 0x80, 0x0, 0xf4,
+    0x0, 0x0, 0x0, 0x2e, 0x0, 0x3, 0xff, 0xff,
+    0xff, 0xff, 0xf8, 0x0, 0xf, 0xff, 0xff, 0xff,
+    0xff, 0xe0, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0xb8, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x1, 0xf0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x3, 0xd0, 0x0, 0x0, 0x2, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xf4, 0xb, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xd0, 0x0, 0xa, 0x0, 0x0, 0x9,
+    0x0, 0x0, 0x0, 0x7d, 0x0, 0x0, 0xbc, 0x0,
+    0x0, 0x0, 0xbc, 0x0, 0x3, 0xd0, 0x0, 0x0,
+    0x0, 0xf4, 0x0, 0x3e, 0x0, 0x0, 0x0, 0x2,
+    0xf0, 0x1, 0xf0, 0x0, 0x0, 0x0, 0x3, 0x40,
+    0x1f, 0x80, 0x0, 0x1f, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xfc,
+
+    /* U+6634 "昴" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xff,
+    0xff, 0xff, 0xff, 0xf4, 0x3, 0xff, 0xff, 0xff,
+    0xff, 0xf4, 0x3, 0xd0, 0x0, 0x0, 0x0, 0xf4,
+    0x3, 0xd0, 0x0, 0x0, 0x0, 0xf4, 0x3, 0xff,
+    0xff, 0xff, 0xff, 0xf4, 0x3, 0xff, 0xff, 0xff,
+    0xff, 0xf4, 0x3, 0xd0, 0x0, 0x0, 0x0, 0xf4,
+    0x3, 0xd0, 0x0, 0x0, 0x0, 0xf4, 0x3, 0xff,
+    0xff, 0xff, 0xff, 0xf4, 0x3, 0xff, 0xff, 0xff,
+    0xff, 0xf4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x5, 0xbf, 0x40, 0x0, 0x0, 0xf, 0xff,
+    0xfe, 0x4f, 0xff, 0xff, 0xf, 0xfa, 0x40, 0xf,
+    0xff, 0xff, 0xf, 0x0, 0xa, 0xf, 0x0, 0xf,
+    0xf, 0x0, 0x1f, 0xf, 0x0, 0xf, 0xf, 0x0,
+    0x1f, 0xf, 0x0, 0xf, 0xf, 0x1, 0xbf, 0xf,
+    0x0, 0xf, 0x1f, 0xff, 0xfe, 0xf, 0x0, 0xf,
+    0x3f, 0xf9, 0x6e, 0xf, 0x0, 0x1f, 0x1d, 0x0,
+    0x7c, 0xf, 0x5, 0xbf, 0x0, 0x1, 0xf8, 0xf,
+    0xb, 0xfd, 0x0, 0x1b, 0xe0, 0xf, 0x6, 0x90,
+    0x1, 0xff, 0x40, 0xf, 0x0, 0x0, 0x3f, 0xf4,
+    0x0, 0xf, 0x0, 0x0, 0x3e, 0x40, 0x0, 0xf,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+
+    /* U+6635 "昵" */
+    0x0, 0x0, 0xa, 0xaa, 0xaa, 0xa8, 0x3f, 0xff,
+    0xc3, 0xff, 0xff, 0xff, 0x4f, 0xff, 0xf0, 0xfa,
+    0xaa, 0xab, 0xd3, 0xd5, 0x7c, 0x3c, 0x0, 0x0,
+    0xf4, 0xf0, 0xf, 0xf, 0x0, 0x0, 0x3d, 0x3c,
+    0x3, 0xc3, 0xc0, 0x0, 0xf, 0x4f, 0x0, 0xf0,
+    0xf4, 0x0, 0x3, 0xd3, 0xc0, 0x3c, 0x3f, 0xff,
+    0xff, 0xf4, 0xf0, 0xf, 0xf, 0xff, 0xff, 0xfd,
+    0x3c, 0x3, 0xc3, 0xc0, 0x0, 0x0, 0xf, 0xff,
+    0xf0, 0xf0, 0xf0, 0x0, 0x3, 0xff, 0xfc, 0x3c,
+    0x3c, 0x0, 0x30, 0xf4, 0x1f, 0xf, 0xf, 0x0,
+    0x3e, 0x3c, 0x3, 0xc3, 0xc3, 0xc0, 0x7f, 0xf,
+    0x0, 0xf0, 0xf0, 0xf0, 0xfe, 0x3, 0xc0, 0x3c,
+    0x3c, 0x3e, 0xfd, 0x0, 0xf0, 0xf, 0xf, 0xf,
+    0xf8, 0x0, 0x3c, 0x3, 0xc7, 0x83, 0xf4, 0x0,
+    0xf, 0x0, 0xf2, 0xe0, 0xf0, 0x0, 0x3, 0xd5,
+    0x7c, 0xf4, 0x3c, 0x0, 0x1d, 0xff, 0xff, 0x3c,
+    0xf, 0x0, 0xb, 0x7f, 0xff, 0xee, 0x3, 0xc0,
+    0x2, 0xd0, 0x0, 0xf, 0x0, 0xf8, 0x1, 0xf0,
+    0x0, 0xb, 0xc0, 0x2f, 0xff, 0xfc, 0x0, 0x7,
+    0xc0, 0x2, 0xff, 0xf8, 0x0, 0x0, 0x60, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+6636 "昶" */
     0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x3, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -58696,28 +62848,102 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x1, 0xaf, 0xf0, 0x0, 0x65, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+6645 "晅" */
-    0x0, 0x0, 0x2f, 0xff, 0xff, 0xff, 0xc3, 0xff,
-    0xf2, 0xff, 0xff, 0xff, 0xfc, 0x3f, 0xff, 0x0,
-    0x0, 0x0, 0x0, 0x3, 0xc1, 0xf0, 0x0, 0x0,
-    0x0, 0x0, 0x3c, 0xf, 0x0, 0x0, 0x0, 0x0,
-    0x3, 0xc0, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x3c,
-    0xf, 0x7, 0xff, 0xff, 0xff, 0x3, 0xc0, 0xf0,
-    0x7f, 0xff, 0xff, 0xf0, 0x3c, 0xf, 0x7, 0xc0,
-    0x0, 0xf, 0x3, 0xc0, 0xf0, 0x7c, 0x0, 0x0,
-    0xf0, 0x3c, 0xf, 0x7, 0xc0, 0x0, 0xf, 0x3,
-    0xff, 0xf0, 0x7c, 0x0, 0x1, 0xf0, 0x3f, 0xff,
-    0x7, 0xff, 0xff, 0xff, 0x3, 0xd5, 0xf0, 0x7f,
-    0xff, 0xff, 0xf0, 0x3c, 0xf, 0x7, 0xc0, 0x0,
-    0xf, 0x3, 0xc0, 0xf0, 0x7c, 0x0, 0x0, 0xf0,
-    0x3c, 0xf, 0x7, 0xc0, 0x0, 0xf, 0x3, 0xc0,
-    0xf0, 0x7f, 0xff, 0xff, 0xf0, 0x3c, 0xf, 0x7,
-    0xff, 0xff, 0xff, 0x3, 0xc0, 0xf0, 0x0, 0x0,
-    0x0, 0x0, 0x3c, 0xf, 0x0, 0x0, 0x0, 0x0,
-    0x3, 0xff, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x3f,
-    0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3,
-    0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x3f, 0xff,
-    0xff, 0xff, 0xf0,
+    /* U+663C "昼" */
+    0x0, 0x2f, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x0,
+    0xb, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x0, 0x2,
+    0xe0, 0x0, 0x0, 0x0, 0x7c, 0x0, 0x0, 0xb8,
+    0x0, 0x0, 0x0, 0xf, 0x0, 0x0, 0x2e, 0x0,
+    0x0, 0x0, 0x3, 0xc0, 0x0, 0xb, 0x80, 0x0,
+    0x0, 0x1, 0xf0, 0x0, 0x2, 0xff, 0xff, 0xff,
+    0xff, 0xfc, 0x0, 0x0, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0x0, 0x0, 0x3d, 0x0, 0x0, 0xb, 0x80,
+    0x0, 0x0, 0xf, 0x0, 0x0, 0x0, 0xf4, 0x0,
+    0x0, 0x7, 0xc0, 0x0, 0x0, 0x1f, 0x40, 0x0,
+    0x2, 0xef, 0xff, 0xff, 0xff, 0xf8, 0x0, 0x0,
+    0xf7, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x0, 0xbc,
+    0xf4, 0x0, 0x0, 0x1f, 0xfe, 0x0, 0x7d, 0x3d,
+    0x0, 0x0, 0x7, 0x8f, 0xf4, 0x3e, 0xf, 0xff,
+    0xff, 0xff, 0xe0, 0x7c, 0x2f, 0x3, 0xfa, 0xaa,
+    0xaa, 0xf8, 0x0, 0xb, 0x0, 0xf4, 0x0, 0x0,
+    0x1e, 0x0, 0x0, 0x0, 0x3f, 0xff, 0xff, 0xff,
+    0x80, 0x0, 0x0, 0xf, 0xff, 0xff, 0xff, 0xe0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xf4, 0xf, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xfd, 0x0,
+
+    /* U+663E "显" */
+    0x0, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x0, 0x3,
+    0xff, 0xff, 0xff, 0xff, 0xf4, 0x0, 0xf, 0x40,
+    0x0, 0x0, 0x3, 0xd0, 0x0, 0x3d, 0x0, 0x0,
+    0x0, 0xf, 0x40, 0x0, 0xf4, 0x0, 0x0, 0x0,
+    0x3d, 0x0, 0x3, 0xff, 0xff, 0xff, 0xff, 0xf4,
+    0x0, 0xf, 0xff, 0xff, 0xff, 0xff, 0xd0, 0x0,
+    0x3d, 0x0, 0x0, 0x0, 0xf, 0x40, 0x0, 0xf4,
+    0x0, 0x0, 0x0, 0x3d, 0x0, 0x3, 0xff, 0xff,
+    0xff, 0xff, 0xf4, 0x0, 0xf, 0xff, 0xff, 0xff,
+    0xff, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0xa, 0x0, 0xa0, 0x0, 0x0,
+    0x9, 0x0, 0x7c, 0x7, 0xc0, 0x9, 0x0, 0x7c,
+    0x1, 0xf0, 0x1f, 0x0, 0x7c, 0x0, 0xb8, 0x7,
+    0xc0, 0x7c, 0x3, 0xd0, 0x0, 0xf4, 0x1f, 0x1,
+    0xf0, 0x1f, 0x0, 0x1, 0xf0, 0x7c, 0x7, 0xc0,
+    0xf4, 0x0, 0x3, 0xe1, 0xf0, 0x1f, 0xb, 0x80,
+    0x0, 0x3, 0xc7, 0xc0, 0x7c, 0x7c, 0x0, 0x0,
+    0x9, 0x1f, 0x1, 0xf0, 0x90, 0x0, 0x0, 0x0,
+    0x7c, 0x7, 0xc0, 0x0, 0x0, 0x0, 0x1, 0xf0,
+    0x1f, 0x0, 0x0, 0x1f, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xfc,
+
+    /* U+6641 "晁" */
+    0x3, 0xff, 0xff, 0xff, 0xff, 0xf4, 0x0, 0x3f,
+    0xff, 0xff, 0xff, 0xff, 0x40, 0x3, 0xd0, 0x0,
+    0x0, 0x0, 0xf4, 0x0, 0x3d, 0x0, 0x0, 0x0,
+    0xf, 0x40, 0x3, 0xff, 0xff, 0xff, 0xff, 0xf4,
+    0x0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0x40, 0x3,
+    0xd0, 0x0, 0x0, 0x0, 0xf4, 0x0, 0x3d, 0x0,
+    0x0, 0x0, 0xf, 0x40, 0x3, 0xff, 0xff, 0xff,
+    0xff, 0xf4, 0x0, 0x3f, 0xff, 0xff, 0xff, 0xff,
+    0x40, 0x0, 0x0, 0x14, 0x5, 0x0, 0x0, 0x1,
+    0x80, 0x3, 0xc0, 0xf4, 0x0, 0x80, 0x2f, 0x80,
+    0x3c, 0xf, 0x40, 0xbe, 0x0, 0x7f, 0x83, 0xc0,
+    0xf4, 0xbf, 0x40, 0x0, 0x7d, 0x3c, 0xf, 0x6f,
+    0x40, 0x0, 0x0, 0x87, 0xc0, 0xf4, 0x40, 0x0,
+    0x0, 0x1b, 0xfc, 0xf, 0xb9, 0x0, 0x1, 0x6f,
+    0xff, 0xc0, 0xfb, 0xfe, 0x0, 0xff, 0xe4, 0xb8,
+    0xf, 0x46, 0xfd, 0xb, 0x90, 0xf, 0x40, 0xf4,
+    0x2, 0xd8, 0x0, 0x3, 0xf0, 0xf, 0x40, 0x1,
+    0xf0, 0x0, 0xfd, 0x0, 0xf4, 0x0, 0x2e, 0x0,
+    0xbf, 0x40, 0xf, 0xd0, 0x7, 0xd1, 0xff, 0xc0,
+    0x0, 0x7f, 0xff, 0xfc, 0x7f, 0xd0, 0x0, 0x1,
+    0xff, 0xfe, 0x2, 0xd0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+
+    /* U+6643 "晃" */
+    0x0, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x3,
+    0xff, 0xff, 0xff, 0xff, 0xf8, 0x0, 0xf, 0x0,
+    0x0, 0x0, 0x2, 0xe0, 0x0, 0x3c, 0x0, 0x0,
+    0x0, 0xb, 0x80, 0x0, 0xff, 0xff, 0xff, 0xff,
+    0xfe, 0x0, 0x3, 0xff, 0xff, 0xff, 0xff, 0xf8,
+    0x0, 0xf, 0x0, 0x0, 0x0, 0x2, 0xe0, 0x0,
+    0x3c, 0x0, 0x0, 0x0, 0xb, 0x80, 0x0, 0xff,
+    0xff, 0xff, 0xff, 0xfe, 0x0, 0x3, 0xff, 0xff,
+    0xff, 0xff, 0xf4, 0x0, 0x2, 0x0, 0x7, 0xc0,
+    0x2, 0x40, 0x0, 0x2f, 0x40, 0x1f, 0x0, 0x2f,
+    0x0, 0x0, 0x2f, 0x80, 0x7c, 0x3, 0xf4, 0x0,
+    0x0, 0x1f, 0x81, 0xf0, 0x3f, 0x0, 0x0, 0x0,
+    0x1c, 0x7, 0xc0, 0xa0, 0x0, 0xa, 0xaa, 0xba,
+    0xbf, 0xaa, 0xaa, 0xa9, 0x3f, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xf4, 0x55, 0x56, 0xf5, 0x5b, 0x95,
+    0x55, 0x40, 0x0, 0xb, 0x80, 0x2e, 0x0, 0x0,
+    0x0, 0x0, 0x3e, 0x0, 0xb8, 0x0, 0x0, 0x0,
+    0x2, 0xf0, 0x2, 0xe0, 0x0, 0xb8, 0x0, 0x3f,
+    0x80, 0xb, 0x80, 0x3, 0xe0, 0xb, 0xf8, 0x0,
+    0x1f, 0x40, 0x1f, 0x4b, 0xff, 0x40, 0x0, 0x3f,
+    0xff, 0xfc, 0x3f, 0xd0, 0x0, 0x0, 0x7f, 0xff,
+    0x90, 0x64, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
 
     /* U+664B "晋" */
     0xf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd0, 0x3f,
@@ -58946,29 +63172,29 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x3, 0xc0, 0x0, 0xf, 0x0, 0x0, 0x0, 0x3,
     0xc0, 0x0, 0xf, 0x0,
 
-    /* U+665E "晞" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x55,
-    0x40, 0xb8, 0x0, 0x0, 0xb0, 0xff, 0xfc, 0xb,
-    0xf8, 0x0, 0xbf, 0xf, 0xff, 0xc0, 0xb, 0xf8,
-    0xbf, 0x80, 0xf0, 0x3c, 0x0, 0x7, 0xff, 0x80,
-    0xf, 0x3, 0xc0, 0x1, 0xbf, 0xfd, 0x0, 0xf0,
-    0x3c, 0x2, 0xff, 0x47, 0xfd, 0xf, 0x3, 0xc2,
-    0xfe, 0x40, 0x7, 0xfc, 0xf0, 0x3c, 0xd, 0x3,
-    0xc0, 0x7, 0x8f, 0x3, 0xc0, 0x0, 0xb8, 0x0,
-    0x0, 0xf0, 0x3c, 0x2a, 0xaf, 0xea, 0xaa, 0x8f,
-    0xff, 0xc3, 0xff, 0xff, 0xff, 0xfd, 0xff, 0xfc,
-    0x0, 0x3c, 0x0, 0x0, 0xf, 0x3, 0xc0, 0xf,
-    0x87, 0x80, 0x0, 0xf0, 0x3c, 0x1, 0xf0, 0x78,
-    0x0, 0xf, 0x3, 0xc0, 0x3d, 0x7, 0x80, 0x0,
-    0xf0, 0x3c, 0xf, 0xff, 0xff, 0xff, 0x8f, 0x3,
-    0xc3, 0xff, 0xff, 0xff, 0xf8, 0xf0, 0x3c, 0xff,
-    0xc0, 0x78, 0x3, 0x8f, 0x3, 0xee, 0x3c, 0x7,
-    0x80, 0x38, 0xf0, 0x3c, 0x43, 0xc0, 0x78, 0x3,
-    0x8f, 0xff, 0xc0, 0x3c, 0x7, 0x80, 0x38, 0xff,
-    0xfc, 0x3, 0xc0, 0x78, 0xb, 0x80, 0x0, 0x0,
-    0x3c, 0x7, 0x8f, 0xf8, 0x0, 0x0, 0x3, 0xc0,
-    0x78, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x7, 0x80,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x78, 0x0, 0x0,
+    /* U+665A "晚" */
+    0x0, 0x0, 0x0, 0x14, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xf, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb,
+    0x80, 0x0, 0x3, 0xff, 0xf0, 0x3, 0xff, 0xff,
+    0x40, 0xff, 0xfc, 0x2, 0xff, 0xff, 0xd0, 0x3d,
+    0x5f, 0x1, 0xf0, 0x2, 0xf0, 0xf, 0x3, 0xc0,
+    0xf8, 0x0, 0xf4, 0x3, 0xc0, 0xf0, 0xfc, 0x0,
+    0xfc, 0x0, 0xf0, 0x3c, 0xbd, 0x0, 0x7c, 0x0,
+    0x3c, 0xf, 0x7f, 0xff, 0xff, 0xff, 0xf, 0x3,
+    0xc7, 0xff, 0xff, 0xff, 0xc3, 0xc0, 0xf0, 0x3c,
+    0xf, 0x0, 0xf0, 0xf0, 0x3c, 0xf, 0x3, 0xc0,
+    0x3c, 0x3f, 0xff, 0x3, 0xc0, 0xf0, 0xf, 0xf,
+    0xff, 0xc0, 0xf0, 0x3c, 0x3, 0xc3, 0xd0, 0xf0,
+    0x3c, 0xf, 0x0, 0xf0, 0xf0, 0x3c, 0xf, 0xff,
+    0xff, 0xfc, 0x3c, 0xf, 0x3, 0xff, 0xff, 0xff,
+    0xf, 0x3, 0xc0, 0x0, 0xf9, 0x0, 0x3, 0xc0,
+    0xf0, 0x0, 0x7f, 0xc0, 0x0, 0xf0, 0x3c, 0x0,
+    0x3d, 0xf0, 0x0, 0x3c, 0xf, 0x0, 0x3f, 0x3c,
+    0x0, 0xef, 0xff, 0xc0, 0x2f, 0xf, 0x0, 0x3f,
+    0xff, 0xf0, 0x3f, 0x43, 0xc0, 0x1f, 0x55, 0x54,
+    0x7f, 0x40, 0xf4, 0xb, 0x80, 0x0, 0xbf, 0x0,
+    0x3f, 0xff, 0xd0, 0x0, 0xbe, 0x0, 0x2, 0xff,
+    0xe0, 0x0, 0x9, 0x0, 0x0, 0x0, 0x0,
 
     /* U+665F "晟" */
     0x0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0,
@@ -59021,32 +63247,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xc0, 0x0, 0x0, 0x3c, 0x3, 0xc3, 0xfc, 0x0,
     0x0, 0x3, 0xc0, 0x0, 0x29, 0x0,
 
-    /* U+6662 "晢" */
-    0x0, 0xf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x3c, 0x0, 0x0, 0x5a, 0xff, 0x0, 0x0, 0xf0,
-    0x3, 0xff, 0xff, 0xf8, 0xb, 0xff, 0xff, 0xcf,
-    0xfa, 0x50, 0x0, 0x2f, 0xff, 0xff, 0x3d, 0x0,
-    0x0, 0x0, 0x0, 0x3c, 0x0, 0xf4, 0x0, 0x0,
-    0x0, 0x0, 0xf0, 0x3, 0xd0, 0x0, 0x0, 0x0,
-    0x3, 0xeb, 0xcf, 0xff, 0xff, 0xfe, 0x7f, 0xff,
-    0xff, 0x3e, 0xaa, 0xfe, 0xa5, 0xff, 0xbd, 0x0,
-    0xf0, 0x1, 0xf0, 0x0, 0x0, 0xf0, 0x7, 0xc0,
-    0x7, 0xc0, 0x0, 0x3, 0xc0, 0x2e, 0x0, 0x1f,
-    0x0, 0x0, 0x1f, 0x1, 0xf0, 0x0, 0x7c, 0x0,
-    0x2f, 0xfc, 0xf, 0x80, 0x1, 0xf0, 0x0, 0xbf,
-    0xc0, 0x7c, 0x0, 0x7, 0xc0, 0x0, 0x0, 0x0,
-    0x40, 0x0, 0x0, 0x0, 0x0, 0xbf, 0xff, 0xff,
-    0xff, 0xfc, 0x0, 0x2, 0xff, 0xff, 0xff, 0xff,
-    0xf0, 0x0, 0xb, 0x40, 0x0, 0x0, 0x3, 0xc0,
-    0x0, 0x2d, 0x0, 0x0, 0x0, 0xf, 0x0, 0x0,
-    0xbf, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x2, 0xff,
-    0xff, 0xff, 0xff, 0xf0, 0x0, 0xb, 0x40, 0x0,
-    0x0, 0x3, 0xc0, 0x0, 0x2d, 0x0, 0x0, 0x0,
-    0xf, 0x0, 0x0, 0xbf, 0xff, 0xff, 0xff, 0xfc,
-    0x0, 0x2, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x0,
-    0xb, 0x40, 0x0, 0x0, 0x3, 0xc0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x0,
-
     /* U+6664 "晤" */
     0x0, 0x0, 0x2f, 0xff, 0xff, 0xfe, 0xb, 0xff,
     0xe3, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xff, 0x0,
@@ -59098,31 +63298,31 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x1f, 0xe4, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
-    /* U+6669 "晩" */
-    0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x2, 0xe0, 0x0, 0x0, 0xf, 0xff, 0xc0, 0xf,
-    0xea, 0xa8, 0x0, 0x3f, 0xff, 0x0, 0xff, 0xff,
-    0xf0, 0x0, 0xf0, 0x3c, 0x7, 0xd5, 0x5f, 0xc0,
-    0x3, 0xc0, 0xf0, 0x3d, 0x0, 0x7d, 0x0, 0xf,
-    0x3, 0xc3, 0xe0, 0x3, 0xe0, 0x0, 0x3c, 0xf,
-    0x3e, 0x0, 0x2f, 0x0, 0x0, 0xf0, 0x3e, 0xff,
-    0xff, 0xff, 0xfc, 0x3, 0xc0, 0xf7, 0xff, 0xff,
-    0xff, 0xf0, 0xf, 0x3, 0xc3, 0xc0, 0x3c, 0x3,
-    0xc0, 0x3c, 0xf, 0xf, 0x0, 0xf0, 0xf, 0x0,
-    0xff, 0xfc, 0x3c, 0x3, 0xc0, 0x3c, 0x3, 0xff,
-    0xf0, 0xf0, 0xf, 0x0, 0xf0, 0xf, 0x3, 0xc3,
-    0xc0, 0x3c, 0x3, 0xc0, 0x3c, 0xf, 0xf, 0xff,
-    0xff, 0xff, 0x0, 0xf0, 0x3c, 0x3f, 0xff, 0xff,
-    0xfc, 0x3, 0xc0, 0xf0, 0x0, 0xf0, 0xf0, 0x0,
-    0xf, 0x3, 0xc0, 0x3, 0xc3, 0xc0, 0x0, 0x3c,
-    0xf, 0x0, 0x1e, 0xf, 0x0, 0x0, 0xf0, 0x3c,
-    0x0, 0xb4, 0x3c, 0x1, 0xd3, 0xc0, 0xf0, 0x7,
-    0xc0, 0xf0, 0x7, 0x8f, 0xff, 0xc0, 0x7d, 0x3,
-    0xc0, 0x2e, 0x3f, 0xff, 0xb, 0xe0, 0xf, 0x40,
-    0xf4, 0x0, 0x2, 0xfd, 0x0, 0x3f, 0xff, 0xc0,
-    0x0, 0xf, 0x80, 0x0, 0x3f, 0xfd, 0x0, 0x0,
-    0x10, 0x0, 0x0, 0x0, 0x0,
+    /* U+6668 "晨" */
+    0x0, 0x2a, 0xaa, 0xaa, 0xaa, 0xaa, 0x0, 0x0,
+    0x3f, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x3c,
+    0x0, 0x0, 0x0, 0xf, 0x0, 0x0, 0x3e, 0xaa,
+    0xaa, 0xaa, 0xaf, 0x0, 0x0, 0x3f, 0xff, 0xff,
+    0xff, 0xff, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x0,
+    0xf, 0x0, 0x0, 0x3e, 0xaa, 0xaa, 0xaa, 0xaf,
+    0x0, 0x0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xf0, 0x0, 0xfa, 0xaa,
+    0xaa, 0xaa, 0xaa, 0xa0, 0x0, 0xf0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0xf1, 0xaa, 0xaa, 0xaa,
+    0xaa, 0x0, 0x0, 0xf2, 0xff, 0xff, 0xff, 0xff,
+    0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x2, 0xfa,
+    0xfe, 0xfe, 0xaa, 0xaa, 0xa4, 0x2, 0xd0, 0xb4,
+    0x3d, 0x0, 0xe, 0x0, 0x3, 0xc0, 0xb4, 0xf,
+    0x80, 0xbf, 0x0, 0x7, 0xc0, 0xb4, 0x3, 0xfb,
+    0xf4, 0x0, 0xf, 0x40, 0xb4, 0x5, 0xbf, 0x80,
+    0x0, 0x2f, 0x0, 0xba, 0xfe, 0xb, 0xfe, 0x50,
+    0x7c, 0x1, 0xff, 0xe4, 0x0, 0x6f, 0xfd, 0xb8,
+    0x1, 0xf8, 0x0, 0x0, 0x0, 0x68, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0,
 
     /* U+666E "普" */
     0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -59432,6 +63632,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0xf, 0xe0, 0x0, 0x0, 0xbc, 0x0, 0x0,
     0x14, 0x0, 0x0, 0x0, 0x50,
 
+    /* U+6691 "暑" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0xfa,
+    0xaa, 0xaa, 0xaa, 0xbe, 0x0, 0x0, 0xf0, 0x0,
+    0x0, 0x0, 0x1e, 0x0, 0x0, 0xff, 0xff, 0xff,
+    0xff, 0xfe, 0x0, 0x0, 0xfa, 0xaa, 0xaa, 0xaa,
+    0xbe, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0x1e,
+    0x0, 0x0, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0,
+    0x0, 0xaa, 0xaa, 0xaa, 0xaa, 0xa9, 0x0, 0x0,
+    0x0, 0x2, 0xd0, 0x0, 0x1, 0x80, 0x0, 0xaa,
+    0xab, 0xfa, 0xaa, 0xb, 0xc0, 0x0, 0xff, 0xff,
+    0xff, 0xff, 0x3f, 0x0, 0x0, 0x0, 0x2, 0xe0,
+    0x2, 0xf8, 0x0, 0x0, 0x0, 0x2, 0xe0, 0x1f,
+    0xd0, 0x0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xfc, 0x2f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc,
+    0x0, 0x0, 0x6, 0xfe, 0x0, 0x0, 0x0, 0x0,
+    0x1, 0xbf, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x7f,
+    0xff, 0xff, 0xff, 0xf8, 0x0, 0x6f, 0xff, 0x95,
+    0x55, 0x55, 0xb8, 0x0, 0xbe, 0x4f, 0x40, 0x0,
+    0x0, 0x78, 0x0, 0x0, 0xf, 0xff, 0xff, 0xff,
+    0xf8, 0x0, 0x0, 0xf, 0xaa, 0xaa, 0xaa, 0xb8,
+    0x0, 0x0, 0xf, 0x40, 0x0, 0x0, 0x78, 0x0,
+    0x0, 0xf, 0xaa, 0xaa, 0xaa, 0xb8, 0x0, 0x0,
+    0xf, 0xff, 0xff, 0xff, 0xf8, 0x0, 0x0, 0xf,
+    0x40, 0x0, 0x0, 0x78, 0x0,
+
     /* U+6696 "暖" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x16, 0x0, 0x0,
     0x0, 0x15, 0xab, 0xff, 0xf0, 0xff, 0xfc, 0xff,
@@ -59666,31 +63892,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x5, 0x40, 0x60, 0x0, 0x8, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
-    /* U+66C8 "曈" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0xb, 0x40, 0x0, 0xf, 0xff, 0x86, 0xaa,
-    0xbf, 0xaa, 0xa0, 0x3f, 0xff, 0x2f, 0xff, 0xff,
-    0xff, 0xc0, 0xf0, 0x3c, 0x1, 0xd0, 0x3, 0xc0,
-    0x3, 0xc0, 0xf0, 0x7, 0x80, 0x1e, 0x0, 0xf,
-    0x3, 0xc0, 0xf, 0x0, 0xb4, 0x0, 0x3c, 0xf,
-    0x7f, 0xff, 0xff, 0xff, 0xf4, 0xf0, 0x3d, 0xaa,
-    0xaa, 0xaa, 0xaa, 0x83, 0xc0, 0xf0, 0x0, 0x0,
-    0x0, 0x0, 0xf, 0x3, 0xc2, 0xaa, 0xaa, 0xaa,
-    0x80, 0x3c, 0xf, 0xf, 0xff, 0xff, 0xff, 0x0,
-    0xfa, 0xbc, 0x3c, 0x3, 0xc0, 0x3c, 0x3, 0xff,
-    0xf0, 0xf0, 0xf, 0x0, 0xf0, 0xf, 0xab, 0xc3,
-    0xff, 0xff, 0xff, 0xc0, 0x3c, 0xf, 0xf, 0xaa,
-    0xfa, 0xaf, 0x0, 0xf0, 0x3c, 0x3c, 0x3, 0xc0,
-    0x3c, 0x3, 0xc0, 0xf0, 0xff, 0xff, 0xff, 0xf0,
-    0xf, 0x3, 0xc2, 0xaa, 0xbe, 0xaa, 0x80, 0x3c,
-    0xf, 0x0, 0x0, 0xf0, 0x0, 0x0, 0xf0, 0x3c,
-    0x0, 0x3, 0xc0, 0x0, 0x3, 0xc0, 0xf2, 0xff,
-    0xff, 0xff, 0xf4, 0xf, 0x7, 0xc5, 0x55, 0x7d,
-    0x55, 0x40, 0x3f, 0xff, 0x0, 0x0, 0xf0, 0x0,
-    0x0, 0xff, 0xf9, 0xaa, 0xab, 0xea, 0xaa, 0x80,
-    0x0, 0xf, 0xff, 0xff, 0xff, 0xff, 0x0,
-
     /* U+66D9 "曙" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x2, 0xff, 0xff, 0xff, 0xf4, 0x3f, 0xfe, 0x2e,
@@ -59939,6 +64140,30 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+66F7 "曷" */
+    0x0, 0x7f, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x2f,
+    0xff, 0xff, 0xff, 0xff, 0x0, 0xb, 0x80, 0x0,
+    0x0, 0x3, 0xc0, 0x2, 0xe0, 0x0, 0x0, 0x0,
+    0xf0, 0x0, 0xbe, 0xaa, 0xaa, 0xaa, 0xbc, 0x0,
+    0x2f, 0xff, 0xff, 0xff, 0xff, 0x0, 0xb, 0x80,
+    0x0, 0x0, 0x3, 0xc0, 0x2, 0xe0, 0x0, 0x0,
+    0x0, 0xf0, 0x0, 0xbf, 0xff, 0xff, 0xff, 0xfc,
+    0x0, 0x2f, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0,
+    0x7c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3d, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x3f, 0xff, 0xff, 0xff,
+    0xff, 0xc0, 0x2f, 0xff, 0xff, 0xff, 0xff, 0xf0,
+    0x3f, 0x0, 0x3, 0x80, 0x0, 0x7c, 0x7f, 0x0,
+    0x2, 0xf0, 0x0, 0x1f, 0x7f, 0xf0, 0x2, 0xfd,
+    0x0, 0x7, 0x9e, 0x3c, 0x2, 0xff, 0xf4, 0x1,
+    0xe0, 0xf, 0x3, 0xf8, 0x2f, 0xd0, 0xb8, 0x3,
+    0xcb, 0xf4, 0x0, 0xfe, 0x2e, 0x0, 0xf2, 0xd0,
+    0x0, 0x7, 0xb, 0x40, 0x3c, 0x0, 0x0, 0x0,
+    0x42, 0xd0, 0xf, 0xff, 0xff, 0xff, 0xf0, 0xf4,
+    0x2, 0xaa, 0xaa, 0xaa, 0xa8, 0x7c, 0x0, 0x0,
+    0x0, 0x0, 0xf, 0xff, 0x0, 0x0, 0x0, 0x0,
+    0x2, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0,
+
     /* U+66F9 "曹" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x7, 0x80, 0x3c, 0x0, 0x0, 0x0, 0x0, 0x78,
@@ -60068,6 +64293,27 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x3, 0xcf, 0x80, 0x7, 0xf4, 0x0, 0x0,
     0x3, 0xc4, 0x0, 0x0, 0x60,
 
+    /* U+6708 "月" */
+    0x0, 0x7f, 0xff, 0xff, 0xff, 0xf0, 0x7, 0xff,
+    0xff, 0xff, 0xff, 0x0, 0x7c, 0x0, 0x0, 0x2,
+    0xf0, 0x7, 0xc0, 0x0, 0x0, 0x1f, 0x0, 0x7c,
+    0x0, 0x0, 0x1, 0xf0, 0x7, 0xc0, 0x0, 0x0,
+    0x1f, 0x0, 0x7c, 0x0, 0x0, 0x1, 0xf0, 0x7,
+    0xc0, 0x0, 0x0, 0x2f, 0x0, 0x7f, 0xff, 0xff,
+    0xff, 0xf0, 0x7, 0xff, 0xff, 0xff, 0xff, 0x0,
+    0x7c, 0x0, 0x0, 0x1, 0xf0, 0x7, 0xc0, 0x0,
+    0x0, 0x1f, 0x0, 0x7c, 0x0, 0x0, 0x1, 0xf0,
+    0x7, 0xc0, 0x0, 0x0, 0x1f, 0x0, 0x7c, 0x0,
+    0x0, 0x1, 0xf0, 0xb, 0xff, 0xff, 0xff, 0xff,
+    0x0, 0xbf, 0xff, 0xff, 0xff, 0xf0, 0xf, 0x80,
+    0x0, 0x0, 0x1f, 0x0, 0xf4, 0x0, 0x0, 0x1,
+    0xf0, 0x1f, 0x0, 0x0, 0x0, 0x1f, 0x2, 0xf0,
+    0x0, 0x0, 0x1, 0xf0, 0x7d, 0x0, 0x0, 0x0,
+    0x1f, 0xf, 0xc0, 0x0, 0x0, 0x2, 0xf2, 0xf4,
+    0x0, 0x0, 0xa, 0xfe, 0xbe, 0x0, 0x0, 0x0,
+    0xff, 0xd7, 0xc0, 0x0, 0x0, 0xa, 0x90, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+6709 "有" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x3e, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -60485,6 +64731,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7c,
     0x0, 0x0, 0x0,
 
+    /* U+672D "札" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xf4, 0x0, 0x1f, 0x0, 0x0, 0x0, 0x0,
+    0x3d, 0x0, 0x7, 0xc0, 0x0, 0x0, 0x0, 0xf,
+    0x40, 0x1, 0xf0, 0x0, 0x0, 0x0, 0x3, 0xd0,
+    0x0, 0x7c, 0x0, 0x0, 0x0, 0x0, 0xf4, 0x0,
+    0x1f, 0x0, 0x0, 0x0, 0x0, 0x7d, 0x0, 0x7,
+    0xc0, 0x0, 0x0, 0x3f, 0xff, 0xff, 0xc1, 0xf0,
+    0x0, 0x0, 0xf, 0xff, 0xff, 0xf0, 0x7c, 0x0,
+    0x0, 0x0, 0x1, 0xf4, 0x0, 0x1f, 0x0, 0x0,
+    0x0, 0x0, 0xfd, 0x0, 0x7, 0xc0, 0x0, 0x0,
+    0x0, 0x7f, 0x40, 0x1, 0xf0, 0x0, 0x0, 0x0,
+    0x3f, 0xec, 0x0, 0x7c, 0x0, 0x0, 0x0, 0x1f,
+    0xff, 0xc0, 0x1f, 0x0, 0x0, 0x0, 0xf, 0x7d,
+    0xfc, 0x7, 0xc0, 0x0, 0x0, 0xb, 0xcf, 0x4f,
+    0xc1, 0xf0, 0x0, 0x0, 0x3, 0xd3, 0xd1, 0xf8,
+    0x7c, 0x0, 0x0, 0x3, 0xe0, 0xf4, 0x1c, 0x1f,
+    0x0, 0x0, 0x2, 0xf0, 0x3d, 0x0, 0x7, 0xc0,
+    0x0, 0x0, 0xf4, 0xf, 0x40, 0x1, 0xf0, 0x0,
+    0x20, 0x4, 0x3, 0xd0, 0x0, 0x7c, 0x0, 0xf,
+    0x0, 0x0, 0xf4, 0x0, 0x1f, 0x0, 0x3, 0xc0,
+    0x0, 0x3d, 0x0, 0x7, 0xc0, 0x1, 0xf0, 0x0,
+    0xf, 0x40, 0x1, 0xf0, 0x0, 0xb8, 0x0, 0x3,
+    0xd0, 0x0, 0x7e, 0x40, 0x7e, 0x0, 0x0, 0xf4,
+    0x0, 0xf, 0xff, 0xff, 0x0, 0x0, 0x3d, 0x0,
+    0x0, 0xbf, 0xfe, 0x0, 0x0, 0xf, 0x40, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+672F "术" */
     0x0, 0x0, 0x0, 0x1e, 0x0, 0x40, 0x0, 0x0,
     0x0, 0x0, 0x7, 0xc0, 0xf8, 0x0, 0x0, 0x0,
@@ -60760,6 +65034,35 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x2e, 0x0, 0x0, 0x0, 0x2e, 0x0, 0x0,
     0xb, 0x80, 0x0,
 
+    /* U+6748 "杈" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x7, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1,
+    0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7c,
+    0x2f, 0xff, 0xff, 0xff, 0xe0, 0x0, 0x1f, 0xb,
+    0xff, 0xff, 0xff, 0xf8, 0x0, 0x7, 0xc0, 0x28,
+    0x0, 0x0, 0x2d, 0x0, 0xff, 0xff, 0xcf, 0x7,
+    0x0, 0xf, 0x40, 0x3f, 0xff, 0xf3, 0xd1, 0xf0,
+    0x3, 0xc0, 0x5, 0x6f, 0x54, 0xb4, 0x3d, 0x1,
+    0xf0, 0x0, 0xf, 0xc0, 0x1f, 0x7, 0xc0, 0xb8,
+    0x0, 0x3, 0xf0, 0x3, 0xc0, 0xf4, 0x3c, 0x0,
+    0x2, 0xfc, 0x0, 0xb4, 0x1f, 0x1f, 0x0, 0x0,
+    0xff, 0xd0, 0x1f, 0x2, 0xb, 0x80, 0x0, 0xbf,
+    0xfd, 0x3, 0xd0, 0x3, 0xc0, 0x0, 0x3d, 0xf7,
+    0xd0, 0xbc, 0x2, 0xe0, 0x0, 0x2e, 0x7c, 0xbc,
+    0xf, 0x41, 0xf0, 0x0, 0xf, 0x1f, 0xf, 0x2,
+    0xf0, 0xf8, 0x0, 0xb, 0x87, 0xc0, 0x0, 0x3f,
+    0xbc, 0x0, 0x7, 0xc1, 0xf0, 0x0, 0x7, 0xfd,
+    0x0, 0x0, 0xe0, 0x7c, 0x0, 0x0, 0xbf, 0x0,
+    0x0, 0x0, 0x1f, 0x0, 0x0, 0x7f, 0xd0, 0x0,
+    0x0, 0x7, 0xc0, 0x0, 0xbe, 0xbe, 0x0, 0x0,
+    0x1, 0xf0, 0x0, 0xbe, 0xb, 0xe0, 0x0, 0x0,
+    0x7c, 0x0, 0xfe, 0x0, 0xbf, 0x0, 0x0, 0x1f,
+    0x2, 0xfd, 0x0, 0xb, 0xf4, 0x0, 0x7, 0xc7,
+    0xfd, 0x0, 0x0, 0x7f, 0x80, 0x1, 0xf2, 0xf8,
+    0x0, 0x0, 0x7, 0xf0, 0x0, 0x7c, 0x34, 0x0,
+    0x0, 0x0, 0x24, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+6749 "杉" */
     0x0, 0x7, 0x80, 0x0, 0x0, 0x1, 0x0, 0x0,
     0x7, 0x80, 0x0, 0x0, 0xb, 0xc0, 0x0, 0x7,
@@ -60786,6 +65089,35 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x7, 0x82, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x7,
     0x80, 0xa0, 0x0, 0x0, 0x0,
 
+    /* U+674C "杌" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xb, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2,
+    0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb8,
+    0x2f, 0xff, 0xff, 0xff, 0xf4, 0x0, 0x2e, 0xb,
+    0xff, 0xff, 0xff, 0xfd, 0x0, 0xb, 0x80, 0x3,
+    0xd0, 0x3d, 0x0, 0x0, 0x2, 0xe0, 0x0, 0xf4,
+    0xf, 0x40, 0x0, 0x7f, 0xff, 0xf0, 0x3d, 0x3,
+    0xd0, 0x0, 0x1f, 0xff, 0xfc, 0xf, 0x40, 0xf4,
+    0x0, 0x0, 0xb, 0x80, 0x3, 0xd0, 0x3d, 0x0,
+    0x0, 0x3, 0xe0, 0x0, 0xf4, 0xf, 0x40, 0x0,
+    0x1, 0xf8, 0x0, 0x3d, 0x3, 0xd0, 0x0, 0x0,
+    0xfe, 0x80, 0xf, 0x40, 0xf4, 0x0, 0x0, 0x3f,
+    0xfc, 0x3, 0xd0, 0x3d, 0x0, 0x0, 0x2f, 0xeb,
+    0xc0, 0xf0, 0xf, 0x40, 0x0, 0xf, 0xb8, 0xfc,
+    0x3c, 0x3, 0xd0, 0x0, 0xb, 0x6e, 0xf, 0x4f,
+    0x0, 0xf4, 0x0, 0x3, 0xcb, 0x81, 0x43, 0xc0,
+    0x3d, 0x0, 0x3, 0xe2, 0xe0, 0x1, 0xf0, 0xf,
+    0x40, 0x1, 0xf0, 0xb8, 0x0, 0xbc, 0x3, 0xd0,
+    0x0, 0x14, 0x2e, 0x0, 0x3e, 0x0, 0xf4, 0xa,
+    0x0, 0xb, 0x80, 0xf, 0x0, 0x3d, 0x2, 0xc0,
+    0x2, 0xe0, 0xb, 0xc0, 0xf, 0x40, 0xf0, 0x0,
+    0xb8, 0x7, 0xd0, 0x3, 0xd0, 0x3c, 0x0, 0x2e,
+    0x3, 0xf0, 0x0, 0xf8, 0x1f, 0x0, 0xb, 0x83,
+    0xf0, 0x0, 0x2f, 0xff, 0x80, 0x2, 0xe3, 0xf4,
+    0x0, 0x2, 0xff, 0x80, 0x0, 0xb8, 0x38, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+674E "李" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x7, 0xc0, 0x0, 0x0, 0x0, 0x0,
@@ -61395,34 +65727,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x1f, 0xff, 0xff, 0xe0, 0x0, 0x1e, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
-    /* U+677B "杻" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x7, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1,
-    0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x78,
-    0x3, 0xff, 0xff, 0xff, 0x80, 0x0, 0x1e, 0x0,
-    0xff, 0xff, 0xff, 0xe0, 0x0, 0x7, 0x80, 0x0,
-    0x38, 0x0, 0xb8, 0x0, 0x2, 0xe0, 0x0, 0x1e,
-    0x0, 0x2d, 0x0, 0x3f, 0xff, 0xf0, 0x7, 0x80,
-    0xb, 0x40, 0xf, 0xff, 0xfc, 0x1, 0xe0, 0x2,
-    0xd0, 0x0, 0xf, 0x80, 0x0, 0x74, 0x0, 0xb4,
-    0x0, 0x7, 0xe0, 0x0, 0x2d, 0x0, 0x3d, 0x0,
-    0x2, 0xf8, 0x0, 0xb, 0x40, 0xf, 0x40, 0x0,
-    0xff, 0xc0, 0x2, 0xd0, 0x3, 0xc0, 0x0, 0x7f,
-    0xfc, 0x7f, 0xff, 0xff, 0xf0, 0x0, 0x3e, 0xeb,
-    0x9f, 0xff, 0xff, 0xfc, 0x0, 0x1e, 0x78, 0xf4,
-    0xf, 0x40, 0xf, 0x0, 0xf, 0x5e, 0x18, 0x3,
-    0xc0, 0x3, 0xc0, 0x7, 0xc7, 0x80, 0x0, 0xf0,
-    0x0, 0xf0, 0x3, 0xd1, 0xe0, 0x0, 0x3c, 0x0,
-    0x3c, 0x1, 0xf0, 0x78, 0x0, 0xf, 0x0, 0xf,
-    0x0, 0x10, 0x1e, 0x0, 0x3, 0xc0, 0x3, 0xc0,
-    0x0, 0x7, 0x80, 0x0, 0xf0, 0x1, 0xf0, 0x0,
-    0x1, 0xe0, 0x0, 0x7c, 0x0, 0x7c, 0x0, 0x0,
-    0x78, 0x0, 0x1e, 0x0, 0x1f, 0x0, 0x0, 0x1e,
-    0x1, 0x5b, 0xd5, 0x5b, 0xd5, 0x0, 0x7, 0x82,
-    0xff, 0xff, 0xff, 0xff, 0xc0, 0x1, 0xe0, 0xbf,
-    0xff, 0xff, 0xff, 0xf0, 0x0, 0x78, 0x0, 0x0,
-    0x0, 0x0, 0x0,
-
     /* U+677C "杼" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0xf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf,
@@ -61536,6 +65840,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x80, 0x0, 0x0, 0xa0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+6784 "构" */
+    0x0, 0x5, 0x0, 0x1, 0x40, 0x0, 0x0, 0x0,
+    0x3c, 0x0, 0xf, 0x40, 0x0, 0x0, 0x0, 0xf0,
+    0x0, 0x7c, 0x0, 0x0, 0x0, 0x3, 0xc0, 0x2,
+    0xe0, 0x0, 0x0, 0x0, 0xf, 0x0, 0xf, 0x40,
+    0x0, 0x0, 0x0, 0x3c, 0x0, 0x7f, 0xff, 0xff,
+    0xd0, 0x0, 0xf4, 0x3, 0xff, 0xff, 0xff, 0x43,
+    0xff, 0xff, 0x9f, 0x55, 0x55, 0x7d, 0xf, 0xff,
+    0xfe, 0xf4, 0x0, 0x0, 0xb4, 0x0, 0x3c, 0xb,
+    0xc2, 0x40, 0x3, 0xd0, 0x2, 0xf0, 0x3d, 0xf,
+    0x0, 0xf, 0x40, 0xf, 0xc0, 0x60, 0xb8, 0x0,
+    0x3d, 0x0, 0x7f, 0xa0, 0x3, 0xc0, 0x0, 0xf0,
+    0x3, 0xff, 0xf0, 0x1f, 0x2c, 0x3, 0xc0, 0x1f,
+    0xf7, 0xf0, 0xf4, 0xf4, 0xf, 0x0, 0xf3, 0xc3,
+    0xe3, 0xc1, 0xf0, 0x3c, 0xb, 0x8f, 0x3, 0x2d,
+    0x3, 0xd0, 0xf0, 0x3c, 0x3c, 0x0, 0xf0, 0x7,
+    0x83, 0xc3, 0xe0, 0xf0, 0xf, 0x96, 0xbf, 0xf,
+    0xf, 0x3, 0xc0, 0xbf, 0xff, 0xfe, 0x3c, 0x0,
+    0xf, 0x1, 0xfa, 0x50, 0x3c, 0xf0, 0x0, 0x3c,
+    0x0, 0x0, 0x0, 0xe3, 0xc0, 0x0, 0xf0, 0x0,
+    0x0, 0x0, 0xf, 0x0, 0x3, 0xc0, 0x0, 0x0,
+    0x0, 0x7c, 0x0, 0xf, 0x0, 0x0, 0x1, 0x5b,
+    0xe0, 0x0, 0x3c, 0x0, 0x0, 0x2f, 0xff, 0x40,
+    0x0, 0xf0, 0x0, 0x0, 0x3f, 0xe0, 0x0, 0x3,
+    0xc0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+6787 "枇" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0xb, 0x40, 0x28, 0x0, 0x7c, 0x0, 0x0, 0x2,
@@ -62337,35 +66667,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0xff, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+67C8 "柈" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x3, 0xc0, 0x0, 0x2, 0xd0, 0x0, 0x0, 0x0,
-    0xf0, 0x0, 0x0, 0xb4, 0x0, 0x0, 0x0, 0x3c,
-    0x1, 0xc0, 0x2d, 0x3, 0xc0, 0x0, 0xf, 0x0,
-    0xb8, 0xb, 0x40, 0xf0, 0x0, 0x3, 0xc0, 0xf,
-    0x2, 0xd0, 0xb8, 0x0, 0x0, 0xf4, 0x2, 0xe0,
-    0xb4, 0x3c, 0x0, 0x3f, 0xff, 0xf0, 0x3c, 0x2d,
-    0x2e, 0x0, 0xf, 0xff, 0xfc, 0xf, 0x4b, 0x4f,
-    0x40, 0x0, 0x7, 0xc0, 0x1, 0x42, 0xd0, 0x80,
-    0x0, 0x2, 0xf0, 0x0, 0x0, 0xf4, 0x0, 0x0,
-    0x0, 0xfc, 0x7, 0xff, 0xff, 0xff, 0xf0, 0x0,
-    0xbf, 0x90, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x3f,
-    0xfd, 0x0, 0x2, 0xd0, 0x0, 0x0, 0x2e, 0xf7,
-    0xd0, 0x0, 0xb4, 0x0, 0x0, 0xf, 0x3c, 0x78,
-    0x0, 0x2d, 0x0, 0x0, 0xb, 0xcf, 0x4, 0x0,
-    0xb, 0x40, 0x0, 0x3, 0xd3, 0xc0, 0x0, 0x2,
-    0xd0, 0x0, 0x3, 0xe0, 0xf0, 0x3f, 0xff, 0xff,
-    0xff, 0xf1, 0xf0, 0x3c, 0xf, 0xff, 0xff, 0xff,
-    0xfc, 0x14, 0xf, 0x0, 0x0, 0xf, 0x40, 0x0,
-    0x0, 0x3, 0xc0, 0x0, 0x2, 0xd0, 0x0, 0x0,
-    0x0, 0xf0, 0x0, 0x0, 0xb4, 0x0, 0x0, 0x0,
-    0x3c, 0x0, 0x0, 0x2d, 0x0, 0x0, 0x0, 0xf,
-    0x0, 0x0, 0xb, 0x40, 0x0, 0x0, 0x3, 0xc0,
-    0x0, 0x2, 0xd0, 0x0, 0x0, 0x0, 0xf0, 0x0,
-    0x0, 0xb4, 0x0, 0x0, 0x0, 0x3c, 0x0, 0x0,
-    0x2d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0,
-
     /* U+67CF "柏" */
     0x0, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0,
     0x3c, 0x0, 0x0, 0x3e, 0x0, 0x0, 0x0, 0xf0,
@@ -62746,6 +67047,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x2c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+67E5 "查" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x7, 0xc0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x1, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x7c, 0x0, 0x0, 0x0, 0x3, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xf8, 0x0, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x1f, 0xff,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x2f, 0xbe, 0xf4,
+    0x0, 0x0, 0x0, 0x0, 0x7f, 0x1f, 0x1f, 0xd0,
+    0x0, 0x0, 0x1, 0xfe, 0x7, 0xc0, 0xfe, 0x40,
+    0x0, 0x7, 0xfc, 0x1, 0xf0, 0x7, 0xfd, 0x0,
+    0x2f, 0xf4, 0x0, 0x7c, 0x0, 0x2f, 0xf9, 0x3f,
+    0xe0, 0x0, 0x0, 0x0, 0x0, 0xbf, 0x47, 0x42,
+    0xff, 0xff, 0xff, 0xff, 0x41, 0x80, 0x0, 0xbf,
+    0xff, 0xff, 0xff, 0xd0, 0x0, 0x0, 0x2e, 0x0,
+    0x0, 0x0, 0xf4, 0x0, 0x0, 0xb, 0x80, 0x0,
+    0x0, 0x3d, 0x0, 0x0, 0x2, 0xff, 0xff, 0xff,
+    0xff, 0x40, 0x0, 0x0, 0xbf, 0xff, 0xff, 0xff,
+    0xd0, 0x0, 0x0, 0x2e, 0x0, 0x0, 0x0, 0xf4,
+    0x0, 0x0, 0xb, 0x80, 0x0, 0x0, 0x3d, 0x0,
+    0x0, 0x2, 0xff, 0xff, 0xff, 0xff, 0x40, 0x0,
+    0x0, 0xbf, 0xff, 0xff, 0xff, 0xd0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0x0, 0x3f, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xc0,
+
     /* U+67E9 "柩" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x2e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2e,
@@ -62936,32 +67264,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xf0, 0x0, 0x0, 0xa0, 0x0, 0x0, 0x0, 0x7c,
     0x0, 0x0, 0x0,
 
-    /* U+67FB "査" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x78, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x78, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x78, 0x0, 0x0, 0x0, 0x2f, 0xff, 0xff, 0xff,
-    0xff, 0xff, 0xf0, 0x2f, 0xff, 0xff, 0xff, 0xff,
-    0xff, 0xf0, 0x0, 0x0, 0x7, 0xff, 0x80, 0x0,
-    0x0, 0x0, 0x0, 0x3f, 0xff, 0xf4, 0x0, 0x0,
-    0x0, 0x2, 0xfc, 0x78, 0xbf, 0x40, 0x0, 0x0,
-    0x2f, 0xe0, 0x78, 0xb, 0xf8, 0x0, 0x2, 0xfe,
-    0x0, 0x78, 0x1, 0xff, 0xd0, 0x7f, 0xe0, 0x0,
-    0x0, 0x0, 0xb, 0xfc, 0x7e, 0x1f, 0xff, 0xff,
-    0xff, 0xf4, 0x78, 0x10, 0x1f, 0xff, 0xff, 0xff,
-    0xf4, 0x0, 0x0, 0x1e, 0x0, 0x0, 0x0, 0xb4,
-    0x0, 0x0, 0x1e, 0x0, 0x0, 0x0, 0xb4, 0x0,
-    0x0, 0x1f, 0xff, 0xff, 0xff, 0xf4, 0x0, 0x0,
-    0x1f, 0xff, 0xff, 0xff, 0xf4, 0x0, 0x0, 0x1e,
-    0x0, 0x0, 0x0, 0xb4, 0x0, 0x0, 0x1e, 0x0,
-    0x0, 0x0, 0xb4, 0x0, 0x0, 0x1f, 0xff, 0xff,
-    0xff, 0xf4, 0x0, 0x0, 0x1f, 0xff, 0xff, 0xff,
-    0xf4, 0x0, 0x0, 0x1e, 0x0, 0x0, 0x0, 0xb4,
-    0x0, 0x0, 0x1e, 0x0, 0x0, 0x0, 0xb4, 0x0,
-    0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf4, 0x3f,
-    0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x0,
-
     /* U+67FD "柽" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x7, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1,
@@ -63351,6 +67653,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x55, 0x55, 0x55, 0x40, 0x0, 0x78, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+6816 "栖" */
+    0x0, 0x2c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x3c, 0xf, 0xff, 0xff, 0xff, 0xfd, 0x0, 0x3c,
+    0xf, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x3c, 0x0,
+    0x3, 0xd1, 0xf0, 0x0, 0x0, 0x3c, 0x0, 0x3,
+    0xc0, 0xf0, 0x0, 0xf, 0xff, 0xf0, 0x3, 0xc0,
+    0xf0, 0x0, 0xf, 0xff, 0xf0, 0x3, 0xc0, 0xf0,
+    0x0, 0x0, 0x7d, 0x0, 0x3, 0xd0, 0xf0, 0x0,
+    0x0, 0x7c, 0x3, 0xff, 0xff, 0xff, 0xf0, 0x0,
+    0xfc, 0x3, 0xff, 0xff, 0xff, 0xf0, 0x0, 0xfd,
+    0x3, 0xc3, 0xc0, 0xf0, 0xf0, 0x2, 0xff, 0x83,
+    0xc3, 0xc0, 0xf0, 0xf0, 0x3, 0xff, 0xd3, 0xc3,
+    0xc0, 0xf0, 0xf0, 0x7, 0xbd, 0xf3, 0xc3, 0xc0,
+    0xf0, 0xf0, 0xf, 0x7c, 0xb3, 0xc3, 0xc0, 0xf0,
+    0xf0, 0x1f, 0x3c, 0x3, 0xc7, 0x80, 0xf0, 0xf0,
+    0x3d, 0x3c, 0x3, 0xcf, 0x40, 0xff, 0xf0, 0x3c,
+    0x3c, 0x3, 0xdf, 0x0, 0x7f, 0xf0, 0x4, 0x3c,
+    0x3, 0xfc, 0x0, 0x0, 0xf0, 0x0, 0x3c, 0x3,
+    0xd4, 0x0, 0x0, 0xf0, 0x0, 0x3c, 0x3, 0xc0,
+    0x0, 0x0, 0xf0, 0x0, 0x3c, 0x3, 0xc0, 0x0,
+    0x0, 0xf0, 0x0, 0x3c, 0x3, 0xc0, 0x0, 0x0,
+    0xf0, 0x0, 0x3c, 0x3, 0xff, 0xff, 0xff, 0xf0,
+    0x0, 0x3c, 0x3, 0xff, 0xff, 0xff, 0xf0, 0x0,
+    0x3c, 0x3, 0xc0, 0x0, 0x0, 0xf0, 0x0, 0x3c,
+    0x3, 0xc0, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+6817 "栗" */
     0x7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x1,
     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0,
@@ -63405,35 +67734,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x40, 0x0, 0x1f, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+681F "栟" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x3, 0x80, 0x2, 0xc0, 0x0, 0xf0, 0x0, 0x0,
-    0xf0, 0x0, 0xb8, 0x0, 0x7c, 0x0, 0x0, 0x3c,
-    0x0, 0xf, 0x40, 0x3d, 0x0, 0x0, 0xf, 0x0,
-    0x1, 0xf0, 0x2f, 0x0, 0x0, 0x3, 0xc0, 0x0,
-    0x3d, 0xf, 0x0, 0x0, 0x1, 0xf0, 0x6, 0xaa,
-    0xaf, 0xea, 0x80, 0x3f, 0xff, 0xf3, 0xff, 0xff,
-    0xff, 0xf0, 0xf, 0xff, 0xfc, 0x6b, 0xea, 0xaf,
-    0xa8, 0x0, 0xb, 0xc0, 0x0, 0xf0, 0x7, 0xc0,
-    0x0, 0x3, 0xf0, 0x0, 0x3c, 0x1, 0xf0, 0x0,
-    0x1, 0xfc, 0x0, 0xf, 0x0, 0x7c, 0x0, 0x0,
-    0xff, 0xd0, 0x3, 0xc0, 0x1f, 0x0, 0x0, 0x7f,
-    0xfc, 0x0, 0xf0, 0x7, 0xc0, 0x0, 0x3e, 0xf7,
-    0xc0, 0x3c, 0x1, 0xf0, 0x0, 0x1f, 0x3c, 0xa7,
-    0xff, 0xff, 0xff, 0xfc, 0xf, 0x4f, 0x2, 0xff,
-    0xff, 0xff, 0xff, 0x7, 0xc3, 0xc0, 0x1, 0xf0,
-    0x7, 0xc0, 0x3, 0xd0, 0xf0, 0x0, 0x7c, 0x1,
-    0xf0, 0x1, 0xf0, 0x3c, 0x0, 0x1e, 0x0, 0x7c,
-    0x0, 0x0, 0xf, 0x0, 0xb, 0x40, 0x1f, 0x0,
-    0x0, 0x3, 0xc0, 0x3, 0xc0, 0x7, 0xc0, 0x0,
-    0x0, 0xf0, 0x1, 0xf0, 0x1, 0xf0, 0x0, 0x0,
-    0x3c, 0x0, 0xf4, 0x0, 0x7c, 0x0, 0x0, 0xf,
-    0x0, 0xbc, 0x0, 0x1f, 0x0, 0x0, 0x3, 0xc0,
-    0x7c, 0x0, 0x7, 0xc0, 0x0, 0x0, 0xf0, 0x7d,
-    0x0, 0x1, 0xf0, 0x0, 0x0, 0x3c, 0x1e, 0x0,
-    0x0, 0x7c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0,
-
     /* U+6821 "校" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x3, 0xc0, 0x0, 0xb, 0x40, 0x0, 0x0, 0x1,
@@ -63849,6 +68149,35 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+6844 "桄" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xb, 0x40, 0x0, 0x7, 0xc0, 0x0, 0x0, 0x2,
+    0xe0, 0x0, 0x1, 0xf0, 0x0, 0x0, 0x0, 0xb8,
+    0x1, 0x0, 0x7c, 0x1, 0x80, 0x0, 0x2e, 0x3,
+    0xc0, 0x1f, 0x0, 0xf4, 0x0, 0xb, 0x80, 0x78,
+    0x7, 0xc0, 0x7c, 0x0, 0x2, 0xe0, 0xf, 0x41,
+    0xf0, 0x3d, 0x0, 0x3f, 0xff, 0xe1, 0xf0, 0x7c,
+    0x1f, 0x0, 0xf, 0xff, 0xf8, 0x3d, 0x1f, 0xf,
+    0x40, 0x0, 0xf, 0x80, 0x7, 0xc7, 0xcb, 0xc0,
+    0x0, 0x3, 0xe0, 0x0, 0xd1, 0xf1, 0xc0, 0x0,
+    0x2, 0xf8, 0x0, 0x0, 0x7c, 0x0, 0x0, 0x0,
+    0xfe, 0x0, 0x0, 0x1f, 0x0, 0x0, 0x0, 0x7f,
+    0xf1, 0xff, 0xff, 0xff, 0xff, 0x80, 0x3f, 0xfe,
+    0x7f, 0xff, 0xff, 0xff, 0xe0, 0x1f, 0xbb, 0xe0,
+    0x2d, 0x3, 0xc0, 0x0, 0xf, 0x6e, 0x38, 0xf,
+    0x40, 0xf0, 0x0, 0x7, 0xcb, 0x80, 0x3, 0xd0,
+    0x3c, 0x0, 0x3, 0xd2, 0xe0, 0x0, 0xf0, 0xf,
+    0x0, 0x0, 0xb0, 0xb8, 0x0, 0x3c, 0x3, 0xc0,
+    0x0, 0x0, 0x2e, 0x0, 0x1f, 0x0, 0xf0, 0x4,
+    0x0, 0xb, 0x80, 0xf, 0x80, 0x3c, 0x3, 0xc0,
+    0x2, 0xe0, 0x7, 0xc0, 0xf, 0x0, 0xf0, 0x0,
+    0xb8, 0x3, 0xe0, 0x3, 0xc0, 0x3c, 0x0, 0x2e,
+    0x3, 0xf0, 0x0, 0xf4, 0x2e, 0x0, 0xb, 0x87,
+    0xf0, 0x0, 0x3f, 0xff, 0x40, 0x2, 0xe3, 0xf0,
+    0x0, 0x3, 0xff, 0x80, 0x0, 0xb8, 0x70, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+6845 "桅" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x1e, 0x0, 0x2, 0xf0, 0x0, 0x0, 0x0, 0x1e,
@@ -64147,6 +68476,58 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0xb8, 0x0, 0x1, 0xf0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+6855 "桕" */
+    0x0, 0x2d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xb8, 0x0, 0x2, 0xd0, 0x0, 0x0, 0x2, 0xe0,
+    0x1, 0xff, 0x8a, 0xaa, 0x0, 0xb, 0x80, 0x3f,
+    0xf4, 0x7f, 0xfd, 0x0, 0x2e, 0x0, 0xf8, 0x0,
+    0x55, 0xf4, 0x3f, 0xff, 0xd3, 0xc0, 0x0, 0x3,
+    0xd0, 0xff, 0xff, 0x8f, 0x0, 0x0, 0xf, 0x41,
+    0x5f, 0x94, 0x3c, 0x0, 0x0, 0x3d, 0x0, 0x3e,
+    0x0, 0xf0, 0x0, 0x0, 0xf4, 0x1, 0xf8, 0x3,
+    0xc0, 0x0, 0x3, 0xd0, 0xf, 0xe0, 0xf, 0x0,
+    0x0, 0xf, 0x40, 0x3f, 0xf0, 0x3c, 0x0, 0x0,
+    0x3d, 0x2, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf4,
+    0xf, 0xbb, 0xe3, 0xff, 0xc3, 0xff, 0xd0, 0xba,
+    0xe3, 0xcf, 0x0, 0x0, 0xf, 0x43, 0xcb, 0x84,
+    0x3c, 0x0, 0x0, 0x3d, 0x2e, 0x2e, 0x0, 0xf0,
+    0x0, 0x0, 0xf4, 0xf0, 0xb8, 0x3, 0xc0, 0x0,
+    0x3, 0xd3, 0x82, 0xe0, 0xf, 0x0, 0x0, 0xf,
+    0x40, 0xb, 0x80, 0x3c, 0x0, 0x0, 0x3d, 0x0,
+    0x2e, 0x0, 0xf0, 0x0, 0x0, 0xf4, 0x0, 0xb8,
+    0x3, 0xc0, 0x0, 0x3, 0xd0, 0x2, 0xe0, 0xf,
+    0xff, 0xff, 0xff, 0x40, 0xb, 0x80, 0x3f, 0xff,
+    0xff, 0xfd, 0x0, 0x2e, 0x0, 0xf4, 0x0, 0x0,
+    0xf4, 0x0, 0xb8, 0x3, 0xc0, 0x0, 0x3, 0xd0,
+    0x2, 0xe0, 0xf, 0x0, 0x0, 0xb, 0x0,
+
+    /* U+6860 "桠" */
+    0x0, 0x19, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xb, 0x80, 0x55, 0x55, 0x55, 0x55, 0x0, 0x2,
+    0xe0, 0x3f, 0xff, 0xff, 0xff, 0xd0, 0x0, 0xb8,
+    0xf, 0xff, 0xff, 0xff, 0xf4, 0x0, 0x2e, 0x0,
+    0x3, 0xd0, 0xf0, 0x0, 0x0, 0xb, 0x80, 0x0,
+    0xf4, 0x3c, 0x0, 0x0, 0xff, 0xff, 0x80, 0x3d,
+    0xf, 0x0, 0x0, 0x3f, 0xff, 0xe0, 0xf, 0x43,
+    0xc0, 0x0, 0x0, 0x3e, 0x6, 0x3, 0xd0, 0xf0,
+    0x18, 0x0, 0xf, 0x82, 0xd0, 0xf4, 0x3c, 0xb,
+    0x40, 0xb, 0xe0, 0x7c, 0x3d, 0xf, 0x3, 0xc0,
+    0x3, 0xf9, 0xf, 0xf, 0x43, 0xc1, 0xf0, 0x1,
+    0xff, 0xc2, 0xd3, 0xd0, 0xf0, 0xb8, 0x0, 0xbf,
+    0xfc, 0x7c, 0xf4, 0x3c, 0x3d, 0x0, 0x3e, 0xef,
+    0x4f, 0x3d, 0xf, 0xf, 0x0, 0x2d, 0xb8, 0xf3,
+    0xdf, 0x43, 0xcb, 0x80, 0x1f, 0x2e, 0x20, 0x7b,
+    0xd0, 0xf7, 0xc0, 0xf, 0x4b, 0x80, 0xf, 0xf4,
+    0x3e, 0xf0, 0x3, 0xc2, 0xe0, 0x2, 0x3d, 0xf,
+    0x4, 0x0, 0x0, 0xb8, 0x0, 0xf, 0x43, 0xc0,
+    0x0, 0x0, 0x2e, 0x0, 0x3, 0xd0, 0xf0, 0x0,
+    0x0, 0xb, 0x80, 0x0, 0xf4, 0x3c, 0x0, 0x0,
+    0x2, 0xe0, 0x0, 0x3d, 0xf, 0x0, 0x0, 0x0,
+    0xb8, 0x0, 0xf, 0x43, 0xd0, 0x0, 0x0, 0x2e,
+    0x1f, 0xff, 0xff, 0xff, 0xff, 0x0, 0xb, 0x87,
+    0xff, 0xff, 0xff, 0xff, 0xc0, 0x2, 0xe0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+6861 "桡" */
     0x0, 0x2d, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0,
     0xb, 0x80, 0x3, 0xc0, 0x0, 0x0, 0x0, 0x2,
@@ -64175,6 +68556,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+6862 "桢" */
+    0x0, 0x0, 0x0, 0x0, 0x14, 0x0, 0x0, 0x0,
+    0x1e, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x1f,
+    0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x1f, 0x0,
+    0x0, 0x3d, 0x0, 0x0, 0x0, 0x1f, 0x0, 0x0,
+    0x3f, 0xff, 0xfc, 0x0, 0x1f, 0x0, 0x0, 0x3f,
+    0xff, 0xfc, 0x1, 0x5f, 0x54, 0x0, 0x3c, 0x0,
+    0x0, 0xf, 0xff, 0xfc, 0x0, 0x3c, 0x0, 0x0,
+    0xa, 0xbf, 0xa8, 0x0, 0x3c, 0x0, 0x0, 0x0,
+    0x2f, 0x0, 0xff, 0xff, 0xff, 0xf0, 0x0, 0x3f,
+    0x0, 0xff, 0xff, 0xff, 0xf0, 0x0, 0x7f, 0x0,
+    0xf0, 0x0, 0x1, 0xf0, 0x0, 0xbf, 0xd0, 0xf0,
+    0x4, 0x1, 0xf0, 0x0, 0xff, 0xf0, 0xf0, 0x1e,
+    0x1, 0xf0, 0x2, 0xef, 0xbc, 0xf0, 0x1e, 0x1,
+    0xf0, 0x3, 0xdf, 0x3d, 0xf0, 0x1e, 0x1, 0xf0,
+    0xb, 0x9f, 0x18, 0xf0, 0x1e, 0x1, 0xf0, 0xf,
+    0x1f, 0x0, 0xf0, 0x2e, 0x1, 0xf0, 0x2e, 0x1f,
+    0x0, 0xf0, 0x2e, 0x1, 0xf0, 0x1c, 0x1f, 0x0,
+    0xf0, 0x3d, 0x1, 0xf0, 0x0, 0x1f, 0x0, 0xf0,
+    0x3c, 0x1, 0xf0, 0x0, 0x1f, 0x0, 0x0, 0xbd,
+    0xd0, 0x0, 0x0, 0x1f, 0x0, 0x2, 0xf2, 0xfc,
+    0x0, 0x0, 0x1f, 0x0, 0xb, 0xd0, 0x7f, 0x40,
+    0x0, 0x1f, 0x0, 0x7f, 0x40, 0xb, 0xf0, 0x0,
+    0x1f, 0xb, 0xfc, 0x0, 0x1, 0xfd, 0x0, 0x1f,
+    0xf, 0xd0, 0x0, 0x0, 0x3d, 0x0, 0x1f, 0x9,
+    0x0, 0x0, 0x0, 0x8,
+
     /* U+6863 "档" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x78, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x1, 0xe0,
@@ -64477,31 +68885,60 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x87, 0x0, 0x0, 0x1, 0x50, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
-    /* U+6884 "梄" */
-    0x0, 0x2c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x2d, 0x7, 0xff, 0xff, 0xff, 0xff, 0x0, 0x2d,
-    0x7, 0xff, 0xff, 0xff, 0xff, 0x0, 0x2d, 0x0,
-    0x0, 0xf0, 0xf0, 0x0, 0x0, 0x2d, 0x0, 0x0,
-    0xf0, 0xf0, 0x0, 0xa, 0xbe, 0xa4, 0x0, 0xf0,
-    0xf0, 0x0, 0xf, 0xff, 0xf8, 0x0, 0xf0, 0xf0,
-    0x0, 0xa, 0xbe, 0xa4, 0xff, 0xff, 0xff, 0xfc,
-    0x0, 0x3d, 0x0, 0xff, 0xff, 0xff, 0xfc, 0x0,
-    0x7d, 0x0, 0xe0, 0xf0, 0xf0, 0x3c, 0x0, 0xfd,
-    0x0, 0xe0, 0xf0, 0xf0, 0x3c, 0x0, 0xff, 0x80,
-    0xe0, 0xe0, 0xf0, 0x3c, 0x2, 0xff, 0xe0, 0xe0,
-    0xe0, 0xb0, 0x3c, 0x3, 0xed, 0xf4, 0xe2, 0xd0,
-    0xb4, 0x3c, 0xb, 0xad, 0x7c, 0xe3, 0xc0, 0xbf,
-    0xfc, 0xf, 0x2d, 0x24, 0xff, 0x40, 0x2f, 0xfc,
-    0x2e, 0x2d, 0x0, 0xe9, 0x0, 0x0, 0x3c, 0x3c,
-    0x2d, 0x0, 0xe0, 0x0, 0x0, 0x3c, 0x38, 0x2d,
-    0x0, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x2d, 0x0,
-    0xff, 0xff, 0xff, 0xfc, 0x0, 0x2d, 0x0, 0xe0,
-    0x0, 0x0, 0x3c, 0x0, 0x2d, 0x0, 0xe0, 0x0,
-    0x0, 0x3c, 0x0, 0x2d, 0x0, 0xe0, 0x0, 0x0,
-    0x3c, 0x0, 0x2d, 0x0, 0xff, 0xff, 0xff, 0xfc,
-    0x0, 0x2d, 0x0, 0xff, 0xff, 0xff, 0xfc, 0x0,
-    0x2d, 0x0, 0xe0, 0x0, 0x0, 0x3c, 0x0, 0x2d,
-    0x0, 0xe0, 0x0, 0x0, 0x38,
+    /* U+6881 "梁" */
+    0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x3f, 0x0, 0xff, 0xff, 0xff, 0xc0, 0x0, 0x2,
+    0xf8, 0x7f, 0xff, 0xff, 0xf0, 0x0, 0x0, 0x1f,
+    0x0, 0x3, 0xc0, 0x3c, 0x0, 0x9, 0x0, 0x40,
+    0x0, 0xf0, 0xf, 0x0, 0x7, 0xf0, 0x0, 0x34,
+    0x78, 0x3, 0xe0, 0x0, 0x7f, 0x80, 0x2d, 0x2d,
+    0x0, 0xff, 0x0, 0x1, 0xf0, 0x2e, 0xf, 0x0,
+    0x7e, 0xe0, 0x0, 0x4, 0x1f, 0x7, 0xc0, 0x1e,
+    0x3e, 0x0, 0x0, 0x93, 0x3, 0xd0, 0x7, 0x83,
+    0xc0, 0x0, 0xbc, 0x3, 0xf0, 0x2, 0xe0, 0x40,
+    0x0, 0xbc, 0x7, 0xf0, 0x1, 0xf4, 0x0, 0x0,
+    0xbc, 0x1b, 0xf0, 0x2f, 0xfc, 0x0, 0x0, 0xfc,
+    0xf, 0xe0, 0x7, 0xf8, 0x0, 0x0, 0x7c, 0x2,
+    0x81, 0xe0, 0x0, 0x0, 0x0, 0x8, 0x0, 0x0,
+    0x78, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1e,
+    0x0, 0x0, 0x0, 0x3, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0x0, 0xbf, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xc0, 0x0, 0x0, 0x7, 0xff, 0x80, 0x0,
+    0x0, 0x0, 0x0, 0xb, 0xff, 0xfd, 0x0, 0x0,
+    0x0, 0x0, 0x2f, 0xd7, 0x8f, 0xe0, 0x0, 0x0,
+    0x0, 0xbf, 0x81, 0xe0, 0x7f, 0x90, 0x0, 0x7,
+    0xfe, 0x0, 0x78, 0x2, 0xff, 0x40, 0x2f, 0xf8,
+    0x0, 0x1e, 0x0, 0xb, 0xfe, 0xb, 0xe0, 0x0,
+    0x7, 0x80, 0x0, 0x1f, 0xc0, 0x40, 0x0, 0x1,
+    0xe0, 0x0, 0x0, 0x40,
+
+    /* U+6883 "梃" */
+    0x0, 0x3c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xf, 0x0, 0x0, 0x0, 0x0, 0x19, 0x0, 0x3,
+    0xc0, 0xff, 0xf8, 0x5b, 0xff, 0x80, 0x0, 0xf0,
+    0x3f, 0xfe, 0xff, 0xfe, 0x40, 0x0, 0x3c, 0x0,
+    0xf, 0x15, 0x7c, 0x0, 0x7, 0xff, 0xfc, 0xf,
+    0x80, 0xf, 0x0, 0x2, 0xff, 0xff, 0x7, 0xc0,
+    0x3, 0xc0, 0x0, 0x15, 0xf5, 0x43, 0xc0, 0x0,
+    0xf0, 0x0, 0x0, 0x7c, 0x3, 0xd0, 0x0, 0x3c,
+    0x0, 0x0, 0x3f, 0x1, 0xf0, 0x0, 0x1f, 0x0,
+    0x0, 0xf, 0xd0, 0xff, 0xf7, 0xff, 0xff, 0xc0,
+    0xb, 0xff, 0x3f, 0xfd, 0xff, 0xff, 0xf0, 0x3,
+    0xfe, 0xe0, 0x7, 0x40, 0x3c, 0x0, 0x1, 0xef,
+    0x3c, 0x2, 0xd0, 0xf, 0x0, 0x0, 0xf3, 0xc1,
+    0x90, 0xb0, 0x3, 0xc0, 0x0, 0xb8, 0xf0, 0x38,
+    0x3c, 0x0, 0xf0, 0x0, 0x3c, 0x3c, 0xf, 0xf,
+    0x0, 0x3c, 0x0, 0x1e, 0xf, 0x2, 0xd7, 0x40,
+    0xf, 0x0, 0x0, 0x3, 0xc0, 0x3f, 0xc2, 0xff,
+    0xff, 0x80, 0x0, 0xf0, 0xb, 0xf0, 0xff, 0xff,
+    0xf0, 0x0, 0x3c, 0x1, 0xf4, 0x0, 0x0, 0x0,
+    0x0, 0xf, 0x0, 0xbf, 0x0, 0x0, 0x0, 0x0,
+    0x3, 0xc0, 0x7f, 0xf4, 0x0, 0x0, 0x0, 0x0,
+    0xf0, 0x7d, 0x3f, 0xe5, 0x0, 0x0, 0x0, 0x3c,
+    0x7e, 0x1, 0xff, 0xff, 0xff, 0x0, 0xf, 0x3f,
+    0x0, 0x6, 0xbf, 0xff, 0x80, 0x3, 0xc3, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
 
     /* U+6885 "梅" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -64894,62 +69331,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x7, 0xff, 0xe0, 0x24, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
-    /* U+68BD "梽" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x7, 0x80, 0x0, 0x2, 0xd0, 0x0, 0x0, 0x1,
-    0xe0, 0x0, 0x0, 0xb4, 0x0, 0x0, 0x0, 0x78,
-    0x0, 0x0, 0x2d, 0x0, 0x0, 0x0, 0x1e, 0x0,
-    0x0, 0xb, 0x40, 0x0, 0x0, 0x7, 0x80, 0xbf,
-    0xff, 0xff, 0xff, 0x80, 0x56, 0xe5, 0x3f, 0xff,
-    0xff, 0xff, 0xf0, 0x3f, 0xff, 0xd5, 0x55, 0x7e,
-    0x55, 0x54, 0xf, 0xff, 0xf0, 0x0, 0xb, 0x40,
-    0x0, 0x0, 0xf, 0x80, 0x0, 0x2, 0xd0, 0x0,
-    0x0, 0x7, 0xe0, 0x0, 0x0, 0xb4, 0x0, 0x0,
-    0x3, 0xf9, 0x3, 0xff, 0xff, 0xff, 0xe0, 0x0,
-    0xff, 0xd1, 0xff, 0xff, 0xff, 0xfc, 0x0, 0xbb,
-    0xfd, 0x15, 0x55, 0x55, 0x55, 0x0, 0x3d, 0xeb,
-    0xc0, 0x0, 0x40, 0x0, 0x0, 0x2d, 0x78, 0xa0,
-    0x0, 0x7c, 0x0, 0x0, 0xf, 0x1e, 0x0, 0x0,
-    0xf, 0x0, 0x0, 0xb, 0x47, 0x80, 0x74, 0xe1,
-    0xe0, 0x1d, 0x7, 0xc1, 0xe0, 0x2d, 0x38, 0x3c,
-    0x7, 0xc0, 0xd0, 0x78, 0xf, 0xe, 0xb, 0x40,
-    0xf0, 0x0, 0x1e, 0x3, 0xc3, 0x81, 0x80, 0x2e,
-    0x0, 0x7, 0x81, 0xe0, 0xe0, 0x2, 0xd3, 0xc0,
-    0x1, 0xe0, 0xb4, 0x38, 0x0, 0xb4, 0xf4, 0x0,
-    0x78, 0x3c, 0xe, 0x0, 0x2d, 0x2e, 0x0, 0x1e,
-    0x1e, 0x3, 0xd0, 0x1f, 0x3, 0xc0, 0x7, 0x82,
-    0x40, 0xff, 0xff, 0xc0, 0x40, 0x1, 0xe0, 0x0,
-    0x1f, 0xff, 0x80, 0x0, 0x0, 0x78, 0x0, 0x0,
-    0x0, 0x0, 0x0,
-
-    /* U+68BE "梾" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0xa, 0x0, 0x0, 0x7, 0x80, 0x0, 0x0, 0x3,
-    0xc0, 0x0, 0x1, 0xe0, 0x0, 0x0, 0x0, 0xf0,
-    0x0, 0x0, 0x78, 0x0, 0x0, 0x0, 0x3c, 0x1,
-    0x55, 0x6e, 0x55, 0x50, 0x0, 0xf, 0x0, 0xff,
-    0xff, 0xff, 0xfd, 0x0, 0x3, 0xc0, 0x2a, 0xab,
-    0xfa, 0xaa, 0x40, 0xbf, 0xff, 0xc0, 0x0, 0x78,
-    0x1, 0x0, 0x2f, 0xff, 0xf1, 0xd0, 0x1e, 0x2,
-    0xd0, 0x0, 0x1f, 0x0, 0x3c, 0x7, 0x80, 0xf0,
-    0x0, 0xb, 0xc0, 0x7, 0xc1, 0xe0, 0xf4, 0x0,
-    0x3, 0xf0, 0x0, 0xb8, 0x78, 0x7c, 0x0, 0x1,
-    0xff, 0x40, 0xd, 0x1e, 0x2c, 0x0, 0x0, 0xff,
-    0xf0, 0x0, 0x7, 0x80, 0x0, 0x0, 0x3f, 0xee,
-    0xbf, 0xff, 0xff, 0xff, 0xc0, 0x2d, 0xf3, 0xef,
-    0xff, 0xff, 0xff, 0xf0, 0xf, 0x3c, 0x40, 0x0,
-    0x3f, 0x40, 0x0, 0xb, 0x8f, 0x0, 0x0, 0x2f,
-    0xf0, 0x0, 0x3, 0xc3, 0xc0, 0x0, 0x1f, 0xfe,
-    0x0, 0x2, 0xe0, 0xf0, 0x0, 0xf, 0xbb, 0xd0,
-    0x0, 0x20, 0x3c, 0x0, 0xf, 0x5e, 0x3d, 0x0,
-    0x0, 0xf, 0x0, 0xf, 0x87, 0x87, 0xd0, 0x0,
-    0x3, 0xc0, 0xf, 0xc1, 0xe0, 0xbd, 0x0, 0x0,
-    0xf0, 0x1f, 0xc0, 0x78, 0xb, 0xe0, 0x0, 0x3c,
-    0x2f, 0xc0, 0x1e, 0x0, 0xbe, 0x0, 0xf, 0xb,
-    0x80, 0x7, 0x80, 0x7, 0x40, 0x3, 0xc0, 0x40,
-    0x1, 0xe0, 0x0, 0x0, 0x0, 0xf0, 0x0, 0x0,
-    0x78, 0x0, 0x0,
-
     /* U+68C0 "检" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x7, 0x80, 0x0, 0xb, 0xc0, 0x0, 0x0, 0x1,
@@ -64978,35 +69359,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x55, 0x55, 0x55, 0x40, 0x0, 0x78, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+68C1 "棁" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x7, 0x40, 0xa, 0x0, 0x1, 0x80, 0x0, 0x1,
-    0xe0, 0x3, 0xd0, 0x0, 0xf8, 0x0, 0x0, 0x78,
-    0x0, 0x7c, 0x0, 0xbc, 0x0, 0x0, 0x1e, 0x0,
-    0xf, 0x80, 0x3d, 0x0, 0x0, 0x7, 0x80, 0x0,
-    0xf0, 0x2e, 0x0, 0x0, 0xaa, 0xfa, 0x40, 0x14,
-    0x1f, 0x0, 0x0, 0x3f, 0xff, 0xf3, 0xff, 0xff,
-    0xff, 0xc0, 0xa, 0xbf, 0xa4, 0xff, 0xff, 0xff,
-    0xf0, 0x0, 0xf, 0x80, 0x3c, 0x0, 0x0, 0x3c,
-    0x0, 0x7, 0xe0, 0xf, 0x0, 0x0, 0xf, 0x0,
-    0x2, 0xf8, 0x3, 0xc0, 0x0, 0x3, 0xc0, 0x0,
-    0xff, 0xc0, 0xf0, 0x0, 0x0, 0xf0, 0x0, 0xbf,
-    0xfc, 0x3c, 0x0, 0x0, 0x3c, 0x0, 0x3e, 0xeb,
-    0xcf, 0x0, 0x0, 0xf, 0x0, 0x1e, 0x78, 0xf3,
-    0xff, 0xff, 0xff, 0xc0, 0xf, 0x1e, 0x10, 0xff,
-    0xff, 0xff, 0xf0, 0x7, 0xc7, 0x80, 0x1, 0xe0,
-    0x3c, 0x0, 0x3, 0xc1, 0xe0, 0x0, 0x78, 0xf,
-    0x0, 0x0, 0xe0, 0x78, 0x0, 0x2d, 0x3, 0xc0,
-    0x0, 0x0, 0x1e, 0x0, 0xf, 0x40, 0xf0, 0x0,
-    0x0, 0x7, 0x80, 0x3, 0xc0, 0x3c, 0x1, 0xd0,
-    0x1, 0xe0, 0x1, 0xf0, 0xf, 0x0, 0x74, 0x0,
-    0x78, 0x0, 0xf4, 0x3, 0xc0, 0x1d, 0x0, 0x1e,
-    0x0, 0xfc, 0x0, 0xf4, 0x1f, 0x0, 0x7, 0x81,
-    0xfc, 0x0, 0x3f, 0xff, 0xc0, 0x1, 0xe1, 0xfc,
-    0x0, 0x7, 0xff, 0xd0, 0x0, 0x78, 0x38, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0,
-
     /* U+68C2 "棂" */
     0x0, 0x2d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0xb, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2,
@@ -65280,62 +69632,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xbf, 0xd0, 0x0, 0x10, 0x0, 0xb8, 0x0, 0xa,
     0x40, 0x0, 0x0,
 
-    /* U+68EA "棪" */
-    0x0, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0,
-    0x1d, 0x0, 0x0, 0xf, 0x0, 0x0, 0x0, 0x1d,
-    0x0, 0x0, 0xf, 0x0, 0x0, 0x0, 0x1d, 0x1,
-    0xd0, 0xf, 0x0, 0x34, 0x0, 0x1d, 0x1, 0xf4,
-    0xf, 0x0, 0xf8, 0x0, 0x1d, 0x0, 0xbc, 0xf,
-    0x3, 0xe0, 0x0, 0x1e, 0x0, 0x2f, 0xf, 0xb,
-    0xc0, 0xf, 0xff, 0xf8, 0xf, 0x1f, 0xf, 0x0,
-    0xf, 0xff, 0xf8, 0x0, 0x3f, 0x40, 0x0, 0x0,
-    0x3d, 0x0, 0x0, 0xbf, 0xf4, 0x0, 0x0, 0x3d,
-    0x0, 0x7, 0xf5, 0xfe, 0x0, 0x0, 0xbd, 0x0,
-    0x7f, 0xc0, 0x1f, 0xe0, 0x0, 0xff, 0x83, 0xfe,
-    0x5, 0x2, 0xfc, 0x1, 0xff, 0xe2, 0xe0, 0xf,
-    0x0, 0x38, 0x3, 0xee, 0xf4, 0x0, 0xf, 0x0,
-    0x0, 0x3, 0x9d, 0x79, 0xc0, 0xf, 0x0, 0x34,
-    0xb, 0x5d, 0x11, 0xf0, 0xf, 0x0, 0xb8, 0xf,
-    0x1d, 0x0, 0xbc, 0xf, 0x2, 0xf0, 0x2d, 0x1d,
-    0x0, 0x3e, 0x1f, 0x47, 0xc0, 0x3c, 0x1d, 0x0,
-    0x1e, 0x2f, 0xcb, 0x40, 0x24, 0x1d, 0x0, 0x4,
-    0x3f, 0xc1, 0x0, 0x0, 0x1d, 0x0, 0x0, 0xbd,
-    0xf0, 0x0, 0x0, 0x1d, 0x0, 0x2, 0xf0, 0xf8,
-    0x0, 0x0, 0x1d, 0x0, 0xb, 0xd0, 0x3e, 0x0,
-    0x0, 0x1d, 0x0, 0x7f, 0x40, 0xf, 0xd0, 0x0,
-    0x1d, 0x7, 0xfc, 0x0, 0x3, 0xf9, 0x0, 0x1d,
-    0x1f, 0xe0, 0x0, 0x0, 0xbe, 0x0, 0x1d, 0xe,
-    0x0, 0x0, 0x0, 0x8, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0,
-
-    /* U+68EC "棬" */
-    0x0, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0,
-    0xb, 0x40, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x2,
-    0xd0, 0xa, 0x1, 0xe0, 0x1d, 0x0, 0x0, 0xb4,
-    0x3, 0xd0, 0x78, 0xf, 0x0, 0x0, 0x2d, 0x0,
-    0x3c, 0x2d, 0xb, 0x80, 0x0, 0xb, 0x40, 0xb,
-    0xcf, 0x7, 0xc0, 0x0, 0x56, 0xe5, 0x0, 0xd3,
-    0xc1, 0xc0, 0x0, 0x3f, 0xff, 0xdb, 0xff, 0xff,
-    0xff, 0xf0, 0xf, 0xff, 0xf6, 0xff, 0xff, 0xff,
-    0xf8, 0x0, 0xf, 0x40, 0x0, 0x3d, 0x0, 0x0,
-    0x0, 0x7, 0xd0, 0x0, 0xf, 0x0, 0x0, 0x0,
-    0x2, 0xf9, 0x1f, 0xff, 0xff, 0xff, 0xf4, 0x0,
-    0xff, 0xc7, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x7f,
-    0xf8, 0x3, 0xe0, 0x1f, 0x0, 0x0, 0x3e, 0xef,
-    0x1, 0xf0, 0x2, 0xf0, 0x0, 0x1e, 0xb5, 0xe1,
-    0xf4, 0x0, 0x3f, 0x0, 0xf, 0x2d, 0x21, 0xff,
-    0xff, 0xff, 0xf0, 0x7, 0xcb, 0x41, 0xff, 0xff,
-    0xff, 0x7f, 0x83, 0xd2, 0xd2, 0xfb, 0xc0, 0x2,
-    0xc2, 0xf5, 0xf0, 0xb4, 0xf8, 0xf0, 0x0, 0xf0,
-    0x18, 0x14, 0x2d, 0x14, 0x3c, 0x0, 0x7c, 0x0,
-    0x0, 0xb, 0x40, 0xf, 0x3, 0xff, 0x0, 0x0,
-    0x2, 0xd0, 0x3, 0xc0, 0x7a, 0xf, 0x0, 0x0,
-    0xb4, 0x0, 0xf0, 0x0, 0x3, 0xc0, 0x0, 0x2d,
-    0x0, 0x3e, 0x0, 0x2, 0xf0, 0x0, 0xb, 0x40,
-    0xb, 0xff, 0xff, 0xf4, 0x0, 0x2, 0xd0, 0x0,
-    0x7f, 0xff, 0xf8, 0x0, 0x0, 0xb4, 0x0, 0x0,
-    0x0, 0x0, 0x0,
-
     /* U+68EE "森" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x7, 0x80, 0x0, 0x0, 0x0, 0x0,
@@ -65504,34 +69800,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x3c, 0x0, 0x1, 0xf0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+68FB "棻" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0xf, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x0,
-    0x3, 0xc0, 0x0, 0xf0, 0x0, 0x0, 0x3f, 0xff,
-    0xff, 0xff, 0xff, 0xff, 0xf0, 0xb, 0xff, 0xff,
-    0xff, 0xff, 0xff, 0xfc, 0x0, 0x0, 0xf, 0x0,
-    0x3, 0xc0, 0x0, 0x0, 0x0, 0x1, 0xb0, 0x2,
-    0x90, 0x0, 0x0, 0x0, 0x0, 0xbd, 0x1, 0xfe,
-    0x0, 0x0, 0x0, 0x2, 0xfd, 0x0, 0x7, 0xfd,
-    0x0, 0x0, 0x1f, 0xf4, 0x0, 0x0, 0x1f, 0xf4,
-    0x0, 0xff, 0xee, 0xaa, 0xaa, 0xaa, 0xaf, 0xc0,
-    0x3d, 0x7, 0xff, 0xff, 0xff, 0xd0, 0xf0, 0x0,
-    0x0, 0x3, 0xc0, 0x0, 0xb4, 0x0, 0x0, 0x0,
-    0x2, 0xe0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x2,
-    0xf0, 0x0, 0x2f, 0x0, 0x0, 0x0, 0x6f, 0xf0,
-    0x7, 0xff, 0x40, 0x0, 0x0, 0xff, 0x90, 0x0,
-    0xa5, 0x0, 0x0, 0x0, 0x39, 0x0, 0x6, 0x40,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xe0, 0x0,
-    0x0, 0x0, 0x2f, 0xff, 0xff, 0xff, 0xff, 0xff,
-    0xf0, 0xb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc,
-    0x0, 0x0, 0x0, 0xbf, 0xf8, 0x0, 0x0, 0x0,
-    0x0, 0x1, 0xfe, 0xff, 0xd0, 0x0, 0x0, 0x0,
-    0xb, 0xf8, 0x78, 0xbf, 0x40, 0x0, 0x0, 0x7f,
-    0xe0, 0x1e, 0x2, 0xff, 0x40, 0xb, 0xff, 0x80,
-    0x7, 0x80, 0xb, 0xff, 0x82, 0xf9, 0x0, 0x1,
-    0xe0, 0x0, 0x1b, 0xf0, 0x0, 0x0, 0x0, 0x78,
-    0x0, 0x0, 0x10,
-
     /* U+68FC "棼" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x3, 0xc0, 0x0, 0xf, 0x40, 0x0, 0x0, 0x3,
@@ -65729,34 +69997,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x3c, 0x0, 0xf, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+6911 "椑" */
-    0x0, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0,
-    0x3, 0xc0, 0x0, 0x7, 0xc0, 0x0, 0x0, 0x0,
-    0xf0, 0x0, 0x2, 0xe0, 0x0, 0x0, 0x0, 0x3c,
-    0x0, 0x0, 0xf4, 0x0, 0x0, 0x0, 0xf, 0x0,
-    0xff, 0xff, 0xff, 0xf0, 0x0, 0x3, 0xc0, 0x3f,
-    0xff, 0xff, 0xfc, 0x0, 0x6a, 0xfa, 0x8f, 0x0,
-    0xf0, 0xf, 0x0, 0x3f, 0xff, 0xf3, 0xc0, 0x3c,
-    0x3, 0xc0, 0x5, 0x6f, 0x54, 0xf0, 0xf, 0x0,
-    0xf0, 0x0, 0xf, 0xc0, 0x3f, 0xff, 0xff, 0xfc,
-    0x0, 0x3, 0xf0, 0xf, 0xff, 0xff, 0xff, 0x0,
-    0x2, 0xfe, 0x3, 0xc0, 0x3c, 0x3, 0xc0, 0x0,
-    0xff, 0xf0, 0xf0, 0xf, 0x0, 0xf0, 0x0, 0x7f,
-    0xfe, 0x3c, 0x3, 0x80, 0x3c, 0x0, 0x3d, 0xf7,
-    0xdf, 0x1, 0xe0, 0xf, 0x0, 0xf, 0x3c, 0xbb,
-    0xff, 0xff, 0xff, 0xc0, 0xb, 0x4f, 0x4, 0xff,
-    0xff, 0xff, 0xf0, 0x3, 0xc3, 0xc0, 0x0, 0x3d,
-    0x50, 0x0, 0x3, 0xd0, 0xf0, 0x0, 0x7d, 0x3c,
-    0x0, 0x0, 0xf0, 0x3c, 0x0, 0xbd, 0xf, 0x0,
-    0x0, 0x4, 0xf, 0x0, 0x3c, 0x3, 0xc0, 0x0,
-    0x0, 0x3, 0xc7, 0xff, 0xff, 0xff, 0xff, 0xc0,
-    0x0, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x0,
-    0x3c, 0x0, 0x0, 0xf, 0x0, 0x0, 0x0, 0xf,
-    0x0, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x3, 0xc0,
-    0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0xf0, 0x0,
-    0x0, 0x3c, 0x0, 0x0, 0x0, 0x3c, 0x0, 0x0,
-    0xf, 0x0, 0x0,
-
     /* U+6912 "椒" */
     0x0, 0x3c, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x0,
     0xf, 0x0, 0xf, 0x0, 0x0, 0x0, 0x0, 0x3,
@@ -65812,6 +70052,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x40, 0x0, 0x0, 0xc, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+6920 "椠" */
+    0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xb, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf,
+    0x0, 0x0, 0x0, 0x6f, 0xe0, 0x1a, 0xbf, 0xaa,
+    0xa2, 0xff, 0xff, 0xd0, 0x2f, 0xff, 0xff, 0xf3,
+    0xff, 0xa4, 0x0, 0x0, 0xb8, 0x0, 0x3, 0xc0,
+    0x0, 0x0, 0x0, 0xf0, 0xf0, 0x3, 0xc0, 0x0,
+    0x0, 0x3, 0xd0, 0xf0, 0x3, 0xc0, 0x0, 0x0,
+    0x7, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xfc, 0x7,
+    0xff, 0xff, 0xe3, 0xff, 0xff, 0xfc, 0x0, 0x0,
+    0xf0, 0x3, 0xc0, 0x3d, 0x0, 0x0, 0x0, 0xf0,
+    0x43, 0xc0, 0x3d, 0x0, 0x16, 0xab, 0xff, 0xe7,
+    0x80, 0x3d, 0x0, 0x3f, 0xff, 0xfa, 0x5f, 0x40,
+    0x3d, 0x0, 0x15, 0x0, 0xf0, 0x2f, 0x0, 0x3d,
+    0x0, 0x0, 0x0, 0xf0, 0x2c, 0x0, 0x3d, 0x0,
+    0x0, 0x0, 0xf0, 0x14, 0x0, 0x28, 0x0, 0x0,
+    0x0, 0x0, 0x7c, 0x0, 0x0, 0x0, 0x2f, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xf0, 0x2f, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xf0, 0x0, 0x0, 0x7, 0xff,
+    0xc0, 0x0, 0x0, 0x0, 0x0, 0x3f, 0xbe, 0xf8,
+    0x0, 0x0, 0x0, 0x2, 0xf8, 0x7c, 0x7f, 0x40,
+    0x0, 0x0, 0x7f, 0xd0, 0x7c, 0xb, 0xf8, 0x0,
+    0x1b, 0xfd, 0x0, 0x7c, 0x1, 0xff, 0xe0, 0xff,
+    0xd0, 0x0, 0x7c, 0x0, 0x1b, 0xfc, 0x79, 0x0,
+    0x0, 0x7c, 0x0, 0x0, 0x7c, 0x0, 0x0, 0x0,
+    0x7c, 0x0, 0x0, 0x0,
+
     /* U+6924 "椤" */
     0x0, 0x1e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x1e, 0x0, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x1e,
@@ -65921,6 +70188,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xf0, 0xfd, 0x0, 0xf, 0xc0, 0x2, 0xd0, 0x3c,
     0x18, 0x0, 0x0, 0x50,
 
+    /* U+6939 "椹" */
+    0x0, 0x2d, 0x0, 0x3c, 0x0, 0x3, 0xc0, 0x0,
+    0xb, 0x40, 0xf, 0x0, 0x0, 0xf0, 0x0, 0x2,
+    0xd0, 0x7, 0xc0, 0x0, 0x3c, 0x0, 0x0, 0xb4,
+    0x2f, 0xff, 0xff, 0xff, 0xf4, 0x0, 0x2d, 0xb,
+    0xff, 0xff, 0xff, 0xfd, 0x1, 0x5b, 0x94, 0xf,
+    0x0, 0x0, 0xf0, 0x0, 0xff, 0xff, 0x43, 0xc0,
+    0x0, 0x3c, 0x0, 0x2a, 0xfe, 0x90, 0xff, 0xff,
+    0xff, 0x0, 0x0, 0x3d, 0x0, 0x3f, 0xff, 0xff,
+    0xc0, 0x0, 0x1f, 0x40, 0xf, 0x0, 0x0, 0xf0,
+    0x0, 0xb, 0xf8, 0x3, 0xc0, 0x0, 0x3c, 0x0,
+    0x3, 0xff, 0x40, 0xff, 0xff, 0xff, 0x0, 0x2,
+    0xfe, 0xf4, 0x3f, 0xff, 0xff, 0xc0, 0x0, 0xfb,
+    0x5f, 0xf, 0x0, 0x0, 0xf0, 0x0, 0xba, 0xd2,
+    0x3, 0xc0, 0x0, 0x3c, 0x0, 0x3c, 0xb5, 0xff,
+    0xff, 0xff, 0xff, 0xfc, 0x2e, 0x2d, 0x7f, 0xff,
+    0xff, 0xff, 0xff, 0x1f, 0xb, 0x40, 0xf8, 0x5,
+    0x4, 0x0, 0x2, 0x42, 0xd0, 0x2d, 0x3, 0xc3,
+    0xc0, 0x0, 0x0, 0xb4, 0xb, 0x42, 0xe0, 0xbc,
+    0x0, 0x0, 0x2d, 0x2, 0xd2, 0xf0, 0xb, 0x80,
+    0x0, 0xb, 0x40, 0xb5, 0xf0, 0x0, 0xf4, 0x0,
+    0x2, 0xd0, 0x2d, 0xb0, 0x0, 0xe, 0x0, 0x0,
+    0xb4, 0xb, 0x84, 0x0, 0x0, 0x0, 0x0, 0x2d,
+    0x2, 0xff, 0xff, 0xff, 0xfc, 0x0, 0xb, 0x40,
+    0xbf, 0xff, 0xff, 0xff, 0x0, 0x2, 0xd0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+693D "椽" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0xb, 0x40, 0x3, 0xc0, 0x0, 0x0, 0x0, 0x2,
@@ -66281,32 +70575,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0xf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+696F "楯" */
-    0x0, 0x2c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0xb, 0x40, 0x0, 0x0, 0x16, 0xfd, 0x0, 0x2,
-    0xd0, 0x2a, 0xff, 0xff, 0xff, 0x80, 0x0, 0xb4,
-    0xf, 0xff, 0xff, 0x94, 0x0, 0x0, 0x2d, 0x3,
-    0xd0, 0x3, 0xc0, 0x0, 0x0, 0xb, 0x40, 0xf0,
-    0x0, 0xf0, 0x0, 0x0, 0xff, 0xff, 0x3c, 0x0,
-    0x3c, 0x0, 0x0, 0x2a, 0xfe, 0x8f, 0xff, 0xff,
-    0xff, 0xfc, 0x0, 0x3d, 0x3, 0xff, 0xff, 0xff,
-    0xff, 0x0, 0xf, 0x40, 0xf0, 0x0, 0xf0, 0x0,
-    0x0, 0xb, 0xd4, 0x3c, 0x0, 0x3c, 0x0, 0x0,
-    0x3, 0xff, 0xf, 0xa, 0xaf, 0xaa, 0x80, 0x0,
-    0xff, 0xe3, 0xc3, 0xff, 0xff, 0xf0, 0x0, 0xbf,
-    0x7c, 0xf0, 0xf0, 0x0, 0x3c, 0x0, 0x3e, 0xd7,
-    0xbc, 0x3c, 0x0, 0xf, 0x0, 0x1d, 0xb4, 0x8f,
-    0xf, 0x0, 0x3, 0xc0, 0xf, 0x2d, 0x3, 0xc3,
-    0xff, 0xff, 0xf0, 0x7, 0x8b, 0x40, 0xf0, 0xfa,
-    0xaa, 0xbc, 0x3, 0xd2, 0xd0, 0x78, 0x3c, 0x0,
-    0xf, 0x1, 0xe0, 0xb4, 0x2e, 0xf, 0x0, 0x3,
-    0xc0, 0x0, 0x2d, 0xf, 0x43, 0xff, 0xff, 0xf0,
-    0x0, 0xb, 0x43, 0xc0, 0xfa, 0xaa, 0xbc, 0x0,
-    0x2, 0xd0, 0xf0, 0x3c, 0x0, 0xf, 0x0, 0x0,
-    0xb4, 0xb8, 0xf, 0x0, 0x3, 0xc0, 0x0, 0x2d,
-    0x3d, 0x3, 0xff, 0xff, 0xf0, 0x0, 0xb, 0x5f,
-    0x0, 0xfa, 0xaa, 0xbc, 0x0, 0x2, 0xd2, 0x80,
-    0x3c, 0x0, 0xf, 0x0, 0x0, 0x0, 0x0, 0x0,
+    /* U+6971 "楱" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xe, 0x0, 0x0, 0x1f, 0x0, 0x0, 0x0, 0x3,
+    0xc0, 0x0, 0x7, 0xc0, 0x0, 0x0, 0x0, 0xf0,
+    0x0, 0x2, 0xe0, 0x0, 0x0, 0x0, 0x3c, 0xf,
+    0xff, 0xff, 0xff, 0xf0, 0x0, 0xf, 0x2, 0xaa,
+    0xbf, 0xaa, 0xa8, 0x0, 0x7, 0xc0, 0x0, 0xf,
+    0x0, 0x0, 0x0, 0xbf, 0xff, 0xc0, 0x3, 0xc0,
+    0x0, 0x0, 0x2f, 0xff, 0xfb, 0xff, 0xff, 0xff,
+    0xd0, 0x0, 0x1f, 0x1, 0xaa, 0xfe, 0xaa, 0xa4,
+    0x0, 0xf, 0xc0, 0x0, 0x3c, 0x0, 0x0, 0x0,
+    0x3, 0xf0, 0x6a, 0xbf, 0xaa, 0xaa, 0xa0, 0x2,
+    0xff, 0x2f, 0xff, 0xff, 0xff, 0xfc, 0x0, 0xff,
+    0xf0, 0xf, 0x80, 0x3d, 0x0, 0x0, 0x7b, 0xdf,
+    0xb, 0xc0, 0xb, 0xc0, 0x0, 0x3d, 0xf3, 0xdb,
+    0xc0, 0x0, 0xfc, 0x0, 0x1e, 0x3c, 0x2b, 0xef,
+    0xff, 0xff, 0xd0, 0xf, 0x4f, 0xb, 0xd7, 0xff,
+    0xfc, 0xbe, 0xb, 0xc3, 0xcf, 0xd0, 0x7, 0x80,
+    0x7, 0xf0, 0xd0, 0xf3, 0xc0, 0x1, 0xe0, 0x0,
+    0x24, 0x0, 0x3c, 0x3, 0xff, 0xff, 0xff, 0xc0,
+    0x0, 0xf, 0x0, 0xaa, 0xbf, 0xaa, 0xa0, 0x0,
+    0x3, 0xc0, 0x0, 0xf, 0x80, 0x0, 0x0, 0x0,
+    0xf0, 0x0, 0xf, 0xfe, 0x40, 0x0, 0x0, 0x3c,
+    0x0, 0x1f, 0xc7, 0xfd, 0x0, 0x0, 0xf, 0x1,
+    0xbf, 0x80, 0x1f, 0xf4, 0x0, 0x3, 0xc7, 0xfe,
+    0x0, 0x0, 0x7f, 0x40, 0x0, 0xf0, 0xf4, 0x0,
+    0x0, 0x1, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
     /* U+6977 "楷" */
@@ -66470,34 +70765,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x78, 0xc, 0x1, 0xf0, 0xf, 0xfd, 0x0, 0x78,
     0x0, 0x1, 0xc0, 0xb, 0xf8,
 
-    /* U+6983 "榃" */
-    0x0, 0x0, 0x40, 0x0, 0x1, 0x40, 0x0, 0x0,
-    0x0, 0x78, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x0,
-    0x1e, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x7,
-    0x80, 0x0, 0xf, 0x0, 0x0, 0xb, 0xff, 0xff,
-    0xf3, 0xff, 0xff, 0xfd, 0x2, 0xff, 0xff, 0xfc,
-    0xff, 0xff, 0xff, 0x40, 0x0, 0x3e, 0x0, 0x0,
-    0x7f, 0x0, 0x0, 0x0, 0x2f, 0xa4, 0x0, 0x3f,
-    0xe0, 0x0, 0x0, 0x2f, 0xef, 0x80, 0x3f, 0xfe,
-    0x0, 0x0, 0x1f, 0xb8, 0xf8, 0x3e, 0xf3, 0xe0,
-    0x0, 0x1f, 0x5e, 0xd, 0x3e, 0x3c, 0x3f, 0x0,
-    0x1f, 0x47, 0x80, 0x7f, 0xf, 0x2, 0xf8, 0x2f,
-    0x41, 0xe0, 0x3e, 0x3, 0xc0, 0x1f, 0x4b, 0x40,
-    0x78, 0x1, 0x0, 0xf0, 0x0, 0x80, 0x0, 0x4,
-    0x0, 0x0, 0x14, 0x0, 0x0, 0x0, 0xaa, 0xaa,
-    0xaa, 0xaa, 0xaa, 0x0, 0x0, 0x7f, 0xff, 0xff,
-    0xff, 0xff, 0xc0, 0x0, 0x1f, 0x0, 0x7, 0xc0,
-    0x0, 0xf0, 0x0, 0x7, 0xc0, 0x1, 0xf0, 0x0,
-    0x3c, 0x0, 0x1, 0xf0, 0x0, 0x7c, 0x0, 0xf,
-    0x0, 0x0, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xc0,
-    0x0, 0x1f, 0xaa, 0xaf, 0xea, 0xab, 0xf0, 0x0,
-    0x7, 0xc0, 0x1, 0xf0, 0x0, 0x3c, 0x0, 0x1,
-    0xf0, 0x0, 0x7c, 0x0, 0xf, 0x0, 0x0, 0x7c,
-    0x0, 0x1f, 0x0, 0x3, 0xc0, 0x0, 0x1f, 0xff,
-    0xff, 0xff, 0xff, 0xf0, 0x0, 0x7, 0xea, 0xaa,
-    0xaa, 0xaa, 0xbc, 0x0, 0x1, 0xf0, 0x0, 0x0,
-    0x0, 0xf, 0x0,
-
     /* U+6984 "榄" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x7, 0x40, 0x0, 0xf0, 0x2d, 0x0, 0x0, 0x1,
@@ -66717,32 +70984,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xff, 0xff, 0xfc, 0x0, 0x0, 0xb4, 0x0, 0xf0,
     0x0, 0xf, 0x0,
 
-    /* U+6996 "榖" */
-    0x0, 0x0, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x3c, 0x0, 0x5, 0x55, 0x50, 0x0, 0xaa,
-    0xaf, 0xaa, 0x93, 0xff, 0xfc, 0x0, 0x3f, 0xff,
-    0xff, 0xf8, 0xfa, 0xaf, 0x0, 0x0, 0x0, 0xf0,
-    0x0, 0x3c, 0x3, 0xc0, 0x0, 0x0, 0x3c, 0x0,
-    0xf, 0x0, 0xf0, 0x0, 0x3f, 0xff, 0xff, 0x83,
-    0xc0, 0x3c, 0x0, 0x6, 0xaa, 0xaa, 0x90, 0xf0,
-    0xf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x78, 0x3,
-    0xfe, 0x3, 0xff, 0xff, 0xff, 0x3c, 0x0, 0xbf,
-    0x80, 0xfa, 0xaa, 0xab, 0xed, 0x0, 0x0, 0x40,
-    0x3c, 0x0, 0x0, 0xf1, 0x0, 0x0, 0x0, 0xa,
-    0x6a, 0xaa, 0x69, 0xff, 0xff, 0xf0, 0x0, 0x1f,
-    0xff, 0xe0, 0x7f, 0xff, 0xfc, 0x0, 0x0, 0x0,
-    0x0, 0x7, 0x0, 0xf, 0x0, 0x0, 0x3, 0xc0,
-    0x1, 0xe0, 0x7, 0x80, 0x0, 0x0, 0xf0, 0x0,
-    0x3c, 0x3, 0xd0, 0x3, 0xff, 0xff, 0xff, 0x4b,
-    0x81, 0xf0, 0x0, 0xff, 0xff, 0xff, 0xd0, 0xf0,
-    0xf4, 0x0, 0x0, 0xf, 0xc0, 0x0, 0x1f, 0xbc,
-    0x0, 0x0, 0xf, 0xfb, 0x40, 0x3, 0xfc, 0x0,
-    0x0, 0x1f, 0xbd, 0xfc, 0x0, 0xbf, 0x0, 0x0,
-    0x2f, 0x4f, 0xf, 0xc0, 0xbf, 0xf0, 0x0, 0x3f,
-    0x43, 0xc0, 0xb0, 0xfc, 0x3f, 0x40, 0x3f, 0x0,
-    0xf0, 0x6, 0xfc, 0x2, 0xfd, 0x2, 0x0, 0x3c,
-    0x3, 0xf4, 0x0, 0x1f, 0xd0, 0x0, 0xf, 0x0,
-    0xa0, 0x0, 0x0, 0xa0, 0x0, 0x0, 0x0, 0x0,
+    /* U+6998 "榘" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7,
+    0x80, 0x0, 0x7f, 0xff, 0xff, 0xc0, 0x3, 0xfa,
+    0xaa, 0x5f, 0xff, 0xff, 0xf0, 0x1, 0xff, 0xff,
+    0xe7, 0x80, 0x0, 0x0, 0x0, 0xf4, 0x3c, 0x1,
+    0xe0, 0x0, 0x0, 0x0, 0xb8, 0xf, 0x0, 0x7f,
+    0xff, 0xfe, 0x0, 0x8, 0x3, 0x80, 0x1f, 0xff,
+    0xff, 0xc0, 0xa, 0xaa, 0xfa, 0xa7, 0x80, 0x0,
+    0xf0, 0x3, 0xff, 0xff, 0xfd, 0xe0, 0x0, 0x3c,
+    0x0, 0x0, 0x2d, 0x0, 0x7f, 0xff, 0xff, 0x0,
+    0x0, 0xf, 0x80, 0x1f, 0xff, 0xff, 0x80, 0x0,
+    0xf, 0xfc, 0x7, 0x80, 0x0, 0x0, 0x0, 0xf,
+    0xcb, 0xd1, 0xe0, 0x0, 0x0, 0x0, 0x1f, 0xc0,
+    0x7d, 0x7f, 0xff, 0xff, 0xd0, 0x3f, 0x80, 0x7,
+    0x5f, 0xff, 0xff, 0xf4, 0xf, 0x40, 0x0, 0x44,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb, 0x80,
+    0x0, 0x0, 0x0, 0xbf, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0x80, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xf0, 0x0, 0x0, 0x2, 0xff, 0xe0, 0x0, 0x0,
+    0x0, 0x0, 0x7, 0xff, 0xff, 0x40, 0x0, 0x0,
+    0x0, 0x1f, 0xf2, 0xe2, 0xf8, 0x0, 0x0, 0x0,
+    0x7f, 0xd0, 0xb8, 0x1f, 0xf4, 0x0, 0x6, 0xff,
+    0x80, 0x2e, 0x0, 0x7f, 0xe4, 0xf, 0xfd, 0x0,
+    0xb, 0x80, 0x1, 0xff, 0xc1, 0xe4, 0x0, 0x2,
+    0xe0, 0x0, 0x2, 0xe0, 0x0, 0x0, 0x0, 0xb8,
     0x0, 0x0, 0x0,
 
     /* U+699B "榛" */
@@ -66856,6 +71123,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+69AB "榫" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x3, 0x80, 0x2, 0xc0, 0xa0, 0x0, 0x0, 0x0,
+    0xe0, 0x0, 0xf0, 0x3c, 0x0, 0x0, 0x0, 0x38,
+    0x0, 0x78, 0xb, 0x40, 0x0, 0x0, 0xe, 0x0,
+    0x3d, 0x1, 0xf0, 0x0, 0x0, 0x3, 0x80, 0xf,
+    0xff, 0xff, 0xff, 0x0, 0x55, 0xf5, 0x4b, 0xea,
+    0xbe, 0xaa, 0x80, 0x3f, 0xff, 0xf7, 0xe0, 0xb,
+    0x40, 0x0, 0xa, 0xbf, 0xab, 0xf8, 0x2, 0xd0,
+    0x0, 0x0, 0xb, 0x82, 0xff, 0xff, 0xff, 0xff,
+    0x0, 0x3, 0xe1, 0xf7, 0xea, 0xbe, 0xaa, 0x80,
+    0x1, 0xf8, 0x74, 0xe0, 0xb, 0x40, 0x0, 0x0,
+    0xff, 0x80, 0x38, 0x2, 0xd0, 0x0, 0x0, 0x7f,
+    0xf8, 0xf, 0xff, 0xff, 0xff, 0x0, 0x3d, 0xff,
+    0x83, 0xea, 0xbe, 0xaa, 0x80, 0x1f, 0x38, 0xf4,
+    0xe0, 0xb, 0x40, 0x0, 0xf, 0x4e, 0x1c, 0x38,
+    0x2, 0xd0, 0x0, 0x7, 0xc3, 0x80, 0xf, 0xff,
+    0xff, 0xff, 0xc3, 0xd0, 0xe0, 0x2, 0xaa, 0xaa,
+    0xaa, 0xa0, 0xe0, 0x38, 0x0, 0x0, 0x3c, 0x0,
+    0x0, 0x0, 0xe, 0x0, 0x0, 0xf, 0x0, 0x0,
+    0x0, 0x3, 0x83, 0xff, 0xff, 0xff, 0xff, 0xe0,
+    0x0, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x0,
+    0x38, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0xe,
+    0x0, 0x0, 0xf, 0x0, 0x0, 0x0, 0x3, 0x80,
+    0x0, 0x3, 0xc0, 0x0, 0x0, 0x0, 0xe0, 0x0,
+    0x0, 0xf0, 0x0, 0x0, 0x0, 0x38, 0x0, 0x0,
+    0x3c, 0x0, 0x0,
+
     /* U+69AD "榭" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x7, 0x40, 0x3, 0xc0, 0x0, 0x38, 0x0, 0x2,
@@ -66884,6 +71179,35 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xff, 0x43, 0xfd, 0x0, 0x0, 0xb4, 0x40, 0x1a,
     0x40, 0x64, 0x0,
 
+    /* U+69B1 "榱" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xf, 0x0, 0x0, 0xf, 0x0, 0x0, 0x0, 0x3,
+    0xc0, 0x0, 0x2, 0xe0, 0x0, 0x0, 0x0, 0xf0,
+    0x0, 0x0, 0x7c, 0x0, 0x0, 0x0, 0x3c, 0x7,
+    0xff, 0xff, 0xff, 0xfc, 0x0, 0xf, 0x1, 0xff,
+    0xff, 0xff, 0xff, 0x0, 0x57, 0xd5, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x7f, 0xff, 0xc0, 0x0, 0x0,
+    0x0, 0x0, 0xa, 0xbe, 0xa0, 0xff, 0xff, 0xff,
+    0xc0, 0x0, 0x1f, 0x0, 0x3e, 0xaa, 0xaa, 0xf0,
+    0x0, 0xb, 0xc0, 0xf, 0x0, 0x0, 0x3c, 0x0,
+    0x3, 0xf0, 0x2f, 0xff, 0xff, 0xff, 0xf4, 0x1,
+    0xff, 0x4f, 0xff, 0xff, 0xff, 0xfe, 0x0, 0xff,
+    0xf4, 0x3c, 0x0, 0x0, 0xf0, 0x0, 0x3b, 0xef,
+    0xf, 0x0, 0x0, 0x3c, 0x0, 0x2d, 0xf2, 0xe3,
+    0xff, 0xff, 0xff, 0x0, 0xf, 0x3c, 0x30, 0xff,
+    0xff, 0xff, 0xc0, 0xb, 0x4f, 0x0, 0x0, 0x3f,
+    0x0, 0x0, 0x7, 0xc3, 0xc0, 0x0, 0x3f, 0xe0,
+    0xb, 0x0, 0xe0, 0xf0, 0x0, 0x7e, 0x3c, 0x1f,
+    0xc0, 0x0, 0x3c, 0x0, 0x7f, 0x7, 0xef, 0x80,
+    0x0, 0xf, 0x0, 0xff, 0x80, 0xbf, 0x40, 0x0,
+    0x3, 0xc2, 0xfd, 0xe0, 0xf, 0xc0, 0x0, 0x0,
+    0xf3, 0xf4, 0x38, 0x4, 0xfd, 0x0, 0x0, 0x3c,
+    0x60, 0xe, 0x1f, 0xb, 0xe0, 0x0, 0xf, 0x0,
+    0x7, 0xff, 0x80, 0x7f, 0x80, 0x3, 0xc0, 0x3,
+    0xfe, 0x0, 0x2, 0xd0, 0x0, 0xf0, 0x0, 0xb4,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+69B4 "榴" */
     0x0, 0x2c, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0,
     0xb4, 0x0, 0x1f, 0xc0, 0x0, 0x0, 0x2, 0xd0,
@@ -67154,32 +71478,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xff, 0xff, 0xff, 0xff, 0xc0, 0x1, 0xd0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
-    /* U+69DC "槜" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x1d, 0x0, 0x2d, 0x7, 0x40, 0x0, 0x0, 0x1e,
-    0x0, 0x3c, 0x3, 0xc0, 0x0, 0x0, 0x1e, 0x0,
-    0x3c, 0x3, 0xc0, 0x0, 0x0, 0x1e, 0x0, 0xbf,
-    0xff, 0xff, 0xfc, 0x0, 0x1e, 0x0, 0xfa, 0xab,
-    0xea, 0xa8, 0xa, 0xaf, 0xa2, 0xf0, 0x3, 0xc0,
-    0x0, 0xf, 0xff, 0xf7, 0xfa, 0xab, 0xea, 0xa0,
-    0x5, 0x7f, 0x5f, 0xff, 0xff, 0xff, 0xf4, 0x0,
-    0x3e, 0x1e, 0xf0, 0x3, 0xc0, 0x0, 0x0, 0x7e,
-    0x1c, 0xf0, 0x3, 0xc0, 0x0, 0x0, 0xbe, 0x40,
-    0xff, 0xff, 0xff, 0xf4, 0x0, 0xff, 0xe0, 0xfa,
-    0xab, 0xea, 0xa4, 0x1, 0xfe, 0xf8, 0xf0, 0x3,
-    0xc0, 0x0, 0x3, 0xee, 0x3d, 0xfa, 0xab, 0xea,
-    0xa9, 0x7, 0x9e, 0x4, 0xff, 0xff, 0xff, 0xfe,
-    0xf, 0x5e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f,
-    0x1e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3d, 0x1e,
-    0xb, 0xff, 0xff, 0xfd, 0x0, 0x28, 0x1e, 0xa,
-    0xaf, 0xea, 0xbd, 0x0, 0x0, 0x1e, 0x0, 0xf,
-    0x0, 0x3e, 0xa4, 0x0, 0x1e, 0x0, 0x1f, 0x0,
-    0x3f, 0xf8, 0x0, 0x1e, 0x0, 0x2e, 0x0, 0x0,
-    0x78, 0x0, 0x1e, 0x0, 0x7c, 0x0, 0x0, 0xb4,
-    0x0, 0x1e, 0x2, 0xf8, 0x0, 0x0, 0xf0, 0x0,
-    0x1e, 0x1f, 0xe0, 0x1, 0xbf, 0xf0, 0x0, 0x1e,
-    0x3f, 0x80, 0x0, 0xff, 0x80, 0x0, 0x1e, 0x2c,
+    /* U+69DF "槟" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x7, 0x80, 0x0, 0xb, 0x80, 0x0, 0x0, 0x1,
+    0xe0, 0x0, 0x1, 0xf0, 0x0, 0x0, 0x0, 0x78,
+    0x0, 0x0, 0x3d, 0x0, 0x0, 0x0, 0x1e, 0x2,
+    0xff, 0xff, 0xff, 0xfc, 0x0, 0x7, 0x80, 0xbf,
+    0xff, 0xff, 0xff, 0x0, 0x2, 0xe0, 0x2d, 0x0,
+    0x0, 0x3, 0xc0, 0x3f, 0xff, 0xeb, 0x40, 0x0,
+    0x0, 0xf0, 0xf, 0xff, 0xf9, 0x95, 0x5a, 0xbf,
+    0x54, 0x0, 0xb, 0x80, 0xf, 0xff, 0xff, 0x90,
+    0x0, 0x3, 0xe0, 0x3, 0xfa, 0x50, 0x0, 0x0,
+    0x1, 0xf8, 0x0, 0xf0, 0x0, 0x0, 0x0, 0x0,
+    0xff, 0xd0, 0x3c, 0x0, 0x0, 0x0, 0x0, 0x7f,
+    0xfc, 0xf, 0xea, 0xaa, 0xaa, 0x0, 0x3d, 0xe7,
+    0xc3, 0xff, 0xff, 0xff, 0xc0, 0x1e, 0x78, 0xb8,
+    0xf4, 0x1, 0xf0, 0x0, 0xf, 0x1e, 0xc, 0x3c,
+    0x0, 0x3c, 0x0, 0xb, 0x87, 0x80, 0xf, 0x0,
+    0xf, 0x0, 0x3, 0xc1, 0xe0, 0x3, 0xc0, 0x3,
+    0xc0, 0x0, 0xa0, 0x78, 0x6a, 0xfe, 0xab, 0xfa,
+    0xa8, 0x0, 0x1e, 0x2f, 0xff, 0xff, 0xff, 0xff,
+    0x0, 0x7, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x1, 0xe0, 0x0, 0x28, 0x3, 0x0, 0x0, 0x0,
+    0x78, 0x0, 0x3f, 0x2, 0xf8, 0x0, 0x0, 0x1e,
+    0x0, 0xbf, 0x0, 0x1f, 0xd0, 0x0, 0x7, 0x81,
+    0xfe, 0x0, 0x0, 0xbe, 0x0, 0x1, 0xe2, 0xfc,
+    0x0, 0x0, 0x7, 0xd0, 0x0, 0x78, 0x34, 0x0,
+    0x0, 0x0, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
     /* U+69E0 "槠" */
@@ -67487,6 +71812,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0xb4, 0x0, 0x0, 0x2, 0xd6, 0x0,
     0x0, 0x2d, 0x0, 0x0,
 
+    /* U+6A2A "横" */
+    0x0, 0xe, 0x0, 0x7, 0x40, 0x2c, 0x0, 0x0,
+    0x3, 0xc0, 0x2, 0xe0, 0xb, 0x40, 0x0, 0x0,
+    0xf0, 0x0, 0xb8, 0x3, 0xd0, 0x0, 0x0, 0x3c,
+    0xf, 0xff, 0xff, 0xff, 0xf4, 0x0, 0xf, 0x3,
+    0xff, 0xff, 0xff, 0xfd, 0x1, 0xab, 0xe4, 0x2,
+    0xe0, 0xb, 0x40, 0x0, 0xff, 0xff, 0x0, 0xb8,
+    0x2, 0xd0, 0x0, 0x15, 0xbd, 0x6f, 0xff, 0xff,
+    0xff, 0xfd, 0x0, 0x3f, 0xf, 0xff, 0xff, 0xff,
+    0xff, 0x40, 0xf, 0xc0, 0x0, 0x3, 0xc0, 0x0,
+    0x0, 0xb, 0xf4, 0x0, 0x0, 0xf0, 0x0, 0x0,
+    0x3, 0xff, 0x42, 0xaa, 0xbe, 0xaa, 0x80, 0x1,
+    0xff, 0xf5, 0xff, 0xff, 0xff, 0xf0, 0x0, 0xf7,
+    0xdf, 0x78, 0x3, 0xc0, 0x3c, 0x0, 0x78, 0xf2,
+    0xde, 0x0, 0xf0, 0xf, 0x0, 0x3c, 0x3c, 0x7,
+    0xea, 0xbe, 0xab, 0xc0, 0x2e, 0xf, 0x1, 0xff,
+    0xff, 0xff, 0xf0, 0xf, 0x3, 0xc0, 0x78, 0x3,
+    0xc0, 0x3c, 0x0, 0x40, 0xf0, 0x1e, 0x0, 0xf0,
+    0xf, 0x0, 0x0, 0x3c, 0x7, 0xea, 0xbe, 0xab,
+    0xc0, 0x0, 0xf, 0x1, 0xff, 0xff, 0xff, 0xf0,
+    0x0, 0x3, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xf0, 0x0, 0x2c, 0x7, 0x90, 0x0, 0x0,
+    0x3c, 0x0, 0xbf, 0x41, 0xff, 0x40, 0x0, 0xf,
+    0x2, 0xfe, 0x0, 0x7, 0xfd, 0x0, 0x3, 0xcb,
+    0xf8, 0x0, 0x0, 0x1f, 0xd0, 0x0, 0xf1, 0xe0,
+    0x0, 0x0, 0x0, 0x70, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+6A2F "樯" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x6, 0x0, 0x0, 0x7, 0x80, 0x0, 0x0, 0x2,
@@ -67685,6 +72038,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x40, 0x2, 0xff, 0x80, 0x0, 0xb4, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+6A50 "橐" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x78, 0x0, 0x0, 0x0, 0xa, 0xaa,
+    0xaa, 0xbe, 0xaa, 0xaa, 0x90, 0xf, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xf0, 0x0, 0x0, 0x0, 0x78,
+    0x0, 0x0, 0x0, 0x0, 0x15, 0x55, 0xbd, 0x55,
+    0x54, 0x0, 0x0, 0xbf, 0xff, 0xff, 0xff, 0xfc,
+    0x0, 0x0, 0xb4, 0x0, 0x78, 0x0, 0x3c, 0x0,
+    0x0, 0xbf, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x0,
+    0x0, 0x0, 0xbc, 0x0, 0x0, 0x0, 0xa, 0xaa,
+    0xaa, 0xbe, 0xaa, 0xaa, 0x90, 0xf, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xf0, 0xf, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xf0, 0xf, 0x3f, 0xff, 0xff, 0xff,
+    0xf4, 0xf0, 0xe, 0x15, 0xf9, 0x55, 0x55, 0x50,
+    0xe0, 0x0, 0xb, 0xf5, 0x55, 0x55, 0x50, 0x0,
+    0x1, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x0, 0x2f,
+    0xef, 0x0, 0x0, 0x0, 0xf0, 0x0, 0x1e, 0xf,
+    0x95, 0x55, 0x55, 0xf0, 0x0, 0x0, 0xf, 0xff,
+    0xff, 0xff, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x78,
+    0x0, 0x0, 0x0, 0xf, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xf0, 0xa, 0xaa, 0xaf, 0xff, 0xea, 0xaa,
+    0xa0, 0x0, 0x0, 0x6f, 0xff, 0xf4, 0x0, 0x0,
+    0x0, 0x1b, 0xf8, 0x78, 0x7f, 0x90, 0x0, 0x1a,
+    0xff, 0x40, 0x78, 0x6, 0xff, 0xa4, 0x7f, 0xd0,
+    0x0, 0x78, 0x0, 0x1b, 0xfc, 0x24, 0x0, 0x0,
+    0x78, 0x0, 0x0, 0x18,
+
     /* U+6A58 "橘" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x2c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c,
@@ -67796,61 +72176,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xe4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+6A66 "橦" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0xb, 0x40, 0x0, 0x7, 0x80, 0x0, 0x0, 0x2,
-    0xd0, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0xb4,
-    0xa, 0xaa, 0xbe, 0xaa, 0xa0, 0x0, 0x2d, 0x3,
-    0xff, 0xff, 0xff, 0xfc, 0x0, 0xb, 0x40, 0x0,
-    0xe0, 0x7, 0x80, 0x0, 0xab, 0xe9, 0x0, 0x3c,
-    0x2, 0xd0, 0x0, 0x3f, 0xff, 0xc0, 0xf, 0x0,
-    0xf0, 0x0, 0xa, 0xbe, 0xa7, 0xff, 0xff, 0xff,
-    0xff, 0x0, 0xf, 0x41, 0xff, 0xff, 0xff, 0xff,
-    0x80, 0x7, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x3, 0xf9, 0x2, 0xaa, 0xaa, 0xaa, 0x80, 0x0,
-    0xff, 0xc0, 0xff, 0xff, 0xff, 0xf4, 0x0, 0xbf,
-    0xf8, 0x3c, 0x3, 0xc0, 0x2d, 0x0, 0x3e, 0xdf,
-    0x4f, 0x0, 0xf0, 0xb, 0x40, 0x1e, 0xb4, 0x83,
-    0xff, 0xff, 0xff, 0xd0, 0xf, 0x2d, 0x0, 0xfa,
-    0xaf, 0xaa, 0xf4, 0x7, 0xcb, 0x40, 0x3c, 0x3,
-    0xc0, 0x2d, 0x3, 0xd2, 0xd0, 0xf, 0xff, 0xff,
-    0xff, 0x41, 0xf0, 0xb4, 0x2, 0xaa, 0xbe, 0xaa,
-    0x90, 0x20, 0x2d, 0x0, 0x0, 0xf, 0x0, 0x0,
-    0x0, 0xb, 0x40, 0x0, 0x3, 0xc0, 0x0, 0x0,
-    0x2, 0xd0, 0x3f, 0xff, 0xff, 0xff, 0xc0, 0x0,
-    0xb4, 0xa, 0xaa, 0xbe, 0xaa, 0xa0, 0x0, 0x2d,
-    0x0, 0x0, 0xf, 0x0, 0x0, 0x0, 0xb, 0x42,
-    0xaa, 0xab, 0xea, 0xaa, 0x80, 0x2, 0xd1, 0xff,
-    0xff, 0xff, 0xff, 0xf0, 0x0, 0xb4, 0x0, 0x0,
-    0x0, 0x0, 0x0,
-
-    /* U+6A6B "橫" */
-    0x0, 0x1d, 0x0, 0x7, 0x40, 0x3c, 0x0, 0x0,
-    0x7, 0x80, 0x1, 0xd0, 0xf, 0x0, 0x0, 0x1,
-    0xe0, 0x0, 0xb8, 0x3, 0xc0, 0x0, 0x0, 0x78,
-    0x1f, 0xff, 0xff, 0xff, 0xf0, 0x0, 0x1e, 0x2,
-    0xaf, 0xea, 0xbe, 0xa8, 0x2, 0xaf, 0xe9, 0x1,
-    0xd0, 0xf, 0x0, 0x0, 0xff, 0xff, 0x40, 0x7f,
-    0xff, 0xc0, 0x0, 0x15, 0xf9, 0x40, 0x1f, 0xff,
-    0xf0, 0x0, 0x0, 0x3e, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x1f, 0x80, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0xf, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xe0,
-    0x3, 0xff, 0x2a, 0xaa, 0xbe, 0xaa, 0xa4, 0x2,
-    0xff, 0xf0, 0x0, 0xf, 0x0, 0x0, 0x0, 0xf7,
-    0xaf, 0x3f, 0xff, 0xff, 0xf8, 0x0, 0xb5, 0xe2,
-    0xdf, 0xff, 0xff, 0xff, 0x0, 0x3c, 0x78, 0x3,
-    0xc0, 0x3c, 0x3, 0xc0, 0x2e, 0x1e, 0x0, 0xf0,
-    0xf, 0x0, 0xf0, 0xf, 0x7, 0x80, 0x3f, 0xff,
-    0xff, 0xfc, 0x3, 0x41, 0xe0, 0xf, 0xaa, 0xfa,
-    0xaf, 0x0, 0x0, 0x78, 0x3, 0xc0, 0x3c, 0x3,
-    0xc0, 0x0, 0x1e, 0x0, 0xfa, 0xaf, 0xaa, 0xf0,
-    0x0, 0x7, 0x80, 0x3f, 0xff, 0xff, 0xfc, 0x0,
-    0x1, 0xe0, 0x0, 0x8, 0x1, 0x0, 0x0, 0x0,
-    0x78, 0x0, 0x2f, 0x41, 0xf9, 0x0, 0x0, 0x1e,
-    0x0, 0xbf, 0x80, 0x1f, 0xf4, 0x0, 0x7, 0x87,
-    0xfe, 0x0, 0x0, 0x7f, 0xd0, 0x1, 0xe1, 0xf4,
-    0x0, 0x0, 0x1, 0xf0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0,
+    /* U+6A65 "橥" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2,
+    0x40, 0x20, 0x1, 0xe0, 0x0, 0x0, 0x3, 0xd0,
+    0xf8, 0x1, 0xe0, 0x0, 0xf0, 0x1, 0xf7, 0xe3,
+    0xff, 0xff, 0xf3, 0xd0, 0x0, 0xbf, 0x41, 0xaa,
+    0xfa, 0xaf, 0x80, 0x1, 0xfe, 0x0, 0x1, 0xe0,
+    0x3d, 0x0, 0xb, 0xef, 0xa, 0xaa, 0xfa, 0xfe,
+    0xa4, 0x2e, 0xb, 0x4f, 0xff, 0xff, 0xff, 0xfc,
+    0x0, 0xb, 0xc0, 0x0, 0xbe, 0x0, 0x0, 0x0,
+    0x2f, 0xc0, 0x1b, 0xf4, 0x0, 0x0, 0x0, 0xfb,
+    0xc6, 0xff, 0xff, 0xff, 0x40, 0x7, 0xe2, 0xff,
+    0xf5, 0x55, 0x5f, 0x40, 0x2f, 0x42, 0xe8, 0xf5,
+    0x55, 0x5f, 0x40, 0x7c, 0x2, 0xd0, 0xff, 0xff,
+    0xff, 0x40, 0x10, 0x3, 0xc0, 0xf0, 0x0, 0xb,
+    0x40, 0x1, 0x6f, 0xc0, 0xfa, 0xaa, 0xaf, 0x40,
+    0x2, 0xff, 0x0, 0xbf, 0xff, 0xff, 0x0, 0x0,
+    0x50, 0x0, 0x14, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x7c, 0x0, 0x0, 0x0, 0x1f, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xf0, 0x1f, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xf0, 0x0, 0x0, 0x7, 0xff, 0x80,
+    0x0, 0x0, 0x0, 0x0, 0x2f, 0xbf, 0xf4, 0x0,
+    0x0, 0x0, 0x6, 0xfc, 0x7c, 0x7f, 0x80, 0x0,
+    0x1, 0xbf, 0xd0, 0x7c, 0xb, 0xfd, 0x0, 0x6f,
+    0xfd, 0x0, 0x7c, 0x0, 0x7f, 0xf8, 0x7f, 0x80,
+    0x0, 0x7c, 0x0, 0x6, 0xfc, 0x10, 0x0, 0x0,
+    0x7c, 0x0, 0x0, 0x14,
 
     /* U+6A71 "橱" */
     0x0, 0x2c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -68386,34 +72737,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0xb0, 0x0, 0x0, 0x1c, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
-    /* U+6B2E "欮" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7,
-    0x40, 0xb, 0x40, 0x78, 0x0, 0x0, 0x7, 0xc0,
-    0xf, 0x0, 0xb4, 0x0, 0x0, 0x2, 0xd0, 0x3d,
-    0x0, 0xf0, 0x0, 0x0, 0x0, 0xf0, 0x7c, 0x0,
-    0xf0, 0x0, 0x0, 0x0, 0xa0, 0xf4, 0x1, 0xff,
-    0xff, 0xe0, 0xff, 0xff, 0xff, 0xf7, 0xff, 0xff,
-    0xf0, 0xff, 0xff, 0xff, 0xf7, 0xd5, 0x56, 0xe0,
-    0x0, 0xb, 0x0, 0xb, 0x80, 0x2, 0xd0, 0x0,
-    0xb, 0x0, 0xf, 0xf, 0x3, 0xc0, 0xd, 0xb,
-    0x3, 0xae, 0xf, 0x7, 0x80, 0x1e, 0xb, 0x3,
-    0xfd, 0xf, 0xf, 0x0, 0x1e, 0xb, 0x3, 0xc4,
-    0xf, 0xf, 0x0, 0x1e, 0xb, 0x3, 0xc0, 0xf,
-    0x0, 0x0, 0x1e, 0xb, 0x3, 0xc0, 0x1f, 0x0,
-    0x0, 0x1e, 0xb, 0x3, 0xc0, 0x1f, 0x0, 0x0,
-    0x1e, 0xb, 0x3, 0xc0, 0x2f, 0x40, 0x0, 0x1f,
-    0xff, 0xff, 0xc0, 0x3f, 0x80, 0x0, 0x1f, 0xff,
-    0xff, 0xc0, 0x3f, 0xc0, 0x0, 0x0, 0xf, 0x0,
-    0x0, 0xba, 0xe0, 0x0, 0x0, 0xf, 0x0, 0x0,
-    0xf4, 0xf0, 0x0, 0x0, 0x1e, 0x0, 0x2, 0xf0,
-    0xbc, 0x0, 0x0, 0x3d, 0x0, 0x7, 0xc0, 0x3e,
-    0x0, 0x0, 0x7c, 0x0, 0xf, 0x80, 0x1f, 0x40,
-    0x0, 0xf4, 0x0, 0x3f, 0x0, 0xb, 0xd0, 0x3,
-    0xe0, 0x0, 0xfc, 0x0, 0x2, 0xf4, 0xf, 0x80,
-    0x2, 0xf0, 0x0, 0x0, 0xbc, 0xe, 0x0, 0x0,
-    0x90, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0,
-
     /* U+6B32 "欲" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x1, 0x1, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x0,
@@ -68443,32 +72766,61 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+6B38 "欸" */
-    0x0, 0x1, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0,
-    0x7, 0xc0, 0x0, 0xf, 0x40, 0x0, 0x0, 0xf,
-    0x40, 0x0, 0xf, 0x0, 0x0, 0x0, 0x2e, 0xa,
-    0x0, 0x1f, 0x0, 0x0, 0x0, 0x7c, 0xf, 0x0,
-    0x2d, 0x0, 0x0, 0x0, 0xf4, 0xb, 0xc0, 0x3f,
-    0xaa, 0xa0, 0x7, 0xe1, 0x57, 0xd0, 0x7f, 0xff,
-    0xf4, 0xf, 0xff, 0xff, 0xf0, 0xb9, 0x55, 0xf0,
-    0xf, 0xff, 0xaa, 0xf8, 0xf0, 0x0, 0xf0, 0x0,
-    0x60, 0x0, 0x36, 0xf3, 0xc2, 0xd0, 0x0, 0xf0,
-    0x0, 0x3, 0xd3, 0xc3, 0xc0, 0x1, 0xf0, 0x0,
-    0x7, 0xc3, 0xc7, 0xc0, 0x3, 0xff, 0xff, 0xf0,
-    0x43, 0xc7, 0x40, 0x7, 0xff, 0xff, 0xf0, 0x3,
-    0xc0, 0x0, 0xf, 0x43, 0xc0, 0x0, 0x3, 0xc0,
-    0x0, 0x2e, 0x3, 0xc0, 0x0, 0x7, 0xc0, 0x0,
-    0x8, 0x3, 0xc0, 0x0, 0x7, 0xd0, 0x0, 0x3f,
-    0xff, 0xff, 0xfc, 0xb, 0xe0, 0x0, 0x3f, 0xff,
-    0xff, 0xfc, 0xf, 0xf0, 0x0, 0x0, 0x7, 0xc0,
-    0x0, 0x1f, 0xb4, 0x0, 0x0, 0xb, 0xd0, 0x0,
-    0x2d, 0x3c, 0x0, 0x0, 0xf, 0xf8, 0x0, 0x7c,
-    0x2e, 0x0, 0x0, 0x1f, 0x3f, 0x0, 0xf4, 0xf,
-    0x40, 0x0, 0x7d, 0xf, 0xc2, 0xf0, 0x7, 0xc0,
-    0x2, 0xf8, 0x2, 0xd7, 0xc0, 0x2, 0xf0, 0x1f,
-    0xe0, 0x0, 0x5f, 0x40, 0x0, 0xfc, 0x3f, 0x40,
-    0x0, 0x3d, 0x0, 0x0, 0x3d, 0x24, 0x0, 0x0,
-    0x4, 0x0, 0x0, 0x4,
+    /* U+6B37 "欷" */
+    0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0,
+    0x50, 0x0, 0x7, 0x0, 0xf0, 0x0, 0x0, 0x3f,
+    0x40, 0xb, 0xc0, 0x3c, 0x0, 0x0, 0x2, 0xfd,
+    0x1f, 0xd0, 0x1e, 0x0, 0x0, 0x0, 0xb, 0xff,
+    0x80, 0xb, 0x40, 0x0, 0x0, 0x0, 0xff, 0xc0,
+    0x3, 0xff, 0xff, 0x0, 0x2, 0xfe, 0xfe, 0x1,
+    0xff, 0xff, 0xc0, 0x1b, 0xf8, 0xb, 0xf4, 0xb4,
+    0x0, 0xf0, 0xb, 0xe1, 0x40, 0x3d, 0x3c, 0x0,
+    0x3c, 0x1, 0x80, 0xf0, 0x2, 0x1f, 0x3c, 0x2e,
+    0x0, 0x0, 0x78, 0x0, 0xf, 0x4f, 0xf, 0x0,
+    0x7f, 0xff, 0xff, 0xf7, 0xc3, 0xc7, 0xc0, 0x1f,
+    0xff, 0xff, 0xfd, 0xe0, 0xf2, 0xe0, 0x0, 0xf,
+    0x0, 0x0, 0x0, 0x7c, 0x10, 0x0, 0xb, 0x87,
+    0x40, 0x0, 0x1f, 0x0, 0x0, 0x7, 0xc1, 0xd0,
+    0x0, 0x7, 0xc0, 0x0, 0x7, 0xff, 0xff, 0xfd,
+    0x2, 0xf4, 0x0, 0x7, 0xff, 0xff, 0xff, 0x40,
+    0xbe, 0x0, 0x7, 0xee, 0xb, 0x82, 0xd0, 0x3f,
+    0xc0, 0x0, 0xe3, 0x81, 0xd0, 0x74, 0xf, 0xb4,
+    0x0, 0x0, 0xe0, 0x74, 0x1d, 0xb, 0x9e, 0x0,
+    0x0, 0x38, 0x1d, 0x7, 0x43, 0xc3, 0xd0, 0x0,
+    0xe, 0x7, 0x41, 0xd2, 0xe0, 0x7c, 0x0, 0x3,
+    0x81, 0xd2, 0xf4, 0xf4, 0xf, 0x80, 0x0, 0xe0,
+    0x75, 0xfc, 0xf8, 0x0, 0xf8, 0x0, 0x14, 0x1d,
+    0x10, 0xbc, 0x0, 0x1f, 0x80, 0x0, 0x7, 0x40,
+    0xbc, 0x0, 0x2, 0xf0, 0x0, 0x1, 0xd0, 0xd,
+    0x0, 0x0, 0x24, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
+    /* U+6B39 "欹" */
+    0x0, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0,
+    0x3, 0xc0, 0x0, 0xf, 0x0, 0x0, 0x0, 0x3,
+    0xc0, 0x0, 0x1f, 0x0, 0x0, 0x0, 0x3, 0xc0,
+    0x0, 0x2e, 0x0, 0x0, 0x1f, 0xff, 0xff, 0xf4,
+    0x3d, 0x0, 0x0, 0xa, 0xaf, 0xea, 0xa4, 0x3f,
+    0xff, 0xf4, 0x0, 0xb, 0xc0, 0x0, 0x7f, 0xff,
+    0xf4, 0x0, 0x1f, 0xf4, 0x0, 0xf4, 0x0, 0xf0,
+    0x0, 0x7e, 0xbf, 0x0, 0xf0, 0x1, 0xf0, 0x7,
+    0xf8, 0xf, 0xd2, 0xe3, 0xc2, 0xd0, 0x1f, 0xd0,
+    0x2, 0xf3, 0xc3, 0xc3, 0xc0, 0x9, 0x0, 0x0,
+    0x47, 0x83, 0xc7, 0x80, 0xbf, 0xff, 0xff, 0xfc,
+    0x3, 0xc7, 0x40, 0xbf, 0xff, 0xff, 0xfc, 0x3,
+    0xc0, 0x0, 0x0, 0x0, 0x3, 0xc0, 0x3, 0xc0,
+    0x0, 0x0, 0x0, 0x3, 0xc0, 0x7, 0xc0, 0x0,
+    0xf, 0xff, 0xc3, 0xc0, 0x7, 0xd0, 0x0, 0xf,
+    0xab, 0xc3, 0xc0, 0xb, 0xe0, 0x0, 0xf, 0x3,
+    0xc3, 0xc0, 0xf, 0xf0, 0x0, 0xf, 0x3, 0xc3,
+    0xc0, 0xf, 0xb4, 0x0, 0xf, 0x3, 0xc3, 0xc0,
+    0x2e, 0x7c, 0x0, 0xf, 0x3, 0xc3, 0xc0, 0x3c,
+    0x3e, 0x0, 0xf, 0xab, 0xc3, 0xc0, 0xf8, 0xf,
+    0x40, 0xf, 0xff, 0xc3, 0xc1, 0xf0, 0xb, 0xc0,
+    0x0, 0x0, 0x3, 0xc7, 0xd0, 0x3, 0xf0, 0x0,
+    0x0, 0xaf, 0xdf, 0x80, 0x0, 0xfc, 0x0, 0x0,
+    0xff, 0x1e, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x0,
+    0x4, 0x0, 0x0, 0x0,
 
     /* U+6B3A "欺" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3,
@@ -68525,6 +72877,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xc0, 0x0, 0x0, 0xb0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+6B43 "歃" */
+    0x0, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x60, 0xf, 0x0, 0x0, 0x1, 0x5a,
+    0xff, 0xf4, 0x1f, 0x0, 0x0, 0x3f, 0xff, 0xff,
+    0xa0, 0x2e, 0x0, 0x0, 0x2a, 0x97, 0xc0, 0x0,
+    0x3d, 0x0, 0x0, 0x0, 0x3, 0xc0, 0x0, 0x3f,
+    0xff, 0xf4, 0x0, 0x3, 0xc0, 0x0, 0x7f, 0xff,
+    0xf4, 0x7f, 0xff, 0xff, 0xf8, 0xb4, 0x0, 0xf0,
+    0x7f, 0xff, 0xff, 0xfc, 0xf1, 0x41, 0xf0, 0x0,
+    0x3, 0xd0, 0x1, 0xe2, 0xc3, 0xd0, 0x0, 0x3,
+    0xc0, 0x3, 0xd3, 0xc3, 0xc0, 0x0, 0x63, 0xc0,
+    0x3, 0xc3, 0xcb, 0x80, 0xb, 0xf7, 0xdf, 0xf4,
+    0x3, 0xc0, 0x0, 0x1f, 0xd3, 0xdf, 0xf4, 0x3,
+    0xd0, 0x0, 0x1e, 0x3, 0xc0, 0xb4, 0x3, 0xd0,
+    0x0, 0x1e, 0x3, 0xc0, 0xb4, 0x3, 0xe0, 0x0,
+    0x1e, 0x3, 0xc0, 0xb4, 0x3, 0xf0, 0x0, 0x1e,
+    0x3, 0xc0, 0xb4, 0x3, 0xf0, 0x0, 0x1f, 0xf3,
+    0xcf, 0xf4, 0x7, 0xf4, 0x0, 0x1f, 0xf3, 0xcf,
+    0xf4, 0xb, 0x78, 0x0, 0x1e, 0x3, 0xc0, 0xb4,
+    0xf, 0x2c, 0x0, 0x1e, 0x3, 0xc0, 0xb4, 0x1f,
+    0x1e, 0x0, 0x1e, 0x3, 0xc0, 0xb4, 0x3d, 0xf,
+    0x40, 0x1e, 0x3, 0xc0, 0xb4, 0xbc, 0x7, 0xc0,
+    0x1e, 0x3, 0xc0, 0xb5, 0xf4, 0x2, 0xf0, 0x1f,
+    0xff, 0xff, 0xfb, 0xe0, 0x0, 0xfc, 0x1f, 0xff,
+    0xff, 0xfb, 0xc0, 0x0, 0x3c, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+6B46 "歆" */
     0x0, 0x0, 0x0, 0x0, 0x24, 0x0, 0x0, 0x0,
     0xf, 0x0, 0x0, 0x78, 0x0, 0x0, 0x0, 0xf,
@@ -69602,30 +73981,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x28, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+6BC9 "毉" */
-    0xf, 0xff, 0xff, 0xf0, 0x7f, 0xff, 0x0, 0x3e,
-    0xbe, 0xaa, 0x81, 0xfa, 0xbc, 0x0, 0xf0, 0xf0,
-    0x0, 0xb, 0x40, 0xf0, 0x3, 0xc7, 0x95, 0x50,
-    0x3c, 0x3, 0xe8, 0xf, 0x3f, 0xff, 0xc3, 0xd0,
-    0xb, 0xf0, 0x3d, 0xd1, 0xc0, 0x9, 0x0, 0x0,
-    0x0, 0xf2, 0x5b, 0x95, 0x3f, 0xff, 0xfc, 0x3,
-    0xef, 0xff, 0xf8, 0x69, 0x56, 0xf0, 0xf, 0x0,
-    0xf8, 0x0, 0xf0, 0xf, 0x0, 0x3c, 0x1f, 0xbc,
-    0x1, 0xf4, 0xf4, 0x0, 0xf3, 0xf0, 0x7c, 0x1,
-    0xff, 0x40, 0x3, 0xce, 0x0, 0x20, 0x7, 0xfe,
-    0x0, 0xf, 0xff, 0xff, 0xf2, 0xfe, 0x7f, 0xe0,
-    0x1a, 0xaa, 0xaa, 0xaf, 0x80, 0xb, 0xe0, 0x0,
-    0x0, 0x0, 0x10, 0x0, 0x1, 0x2, 0xaa, 0xaa,
-    0xaa, 0xaa, 0xaa, 0xa4, 0xf, 0xff, 0xff, 0xff,
-    0xff, 0xff, 0xd0, 0x0, 0x1d, 0x0, 0xf0, 0xb,
-    0x40, 0x0, 0x0, 0xf4, 0x3, 0xc0, 0x7c, 0x0,
-    0x0, 0xb, 0xf4, 0xf, 0x3, 0xfd, 0x0, 0x0,
-    0xb9, 0xf8, 0x3c, 0x7d, 0x3f, 0x0, 0xf, 0x80,
-    0xb0, 0xf3, 0xd0, 0x1e, 0x0, 0x14, 0x0, 0x3,
-    0xc4, 0x0, 0x10, 0x1a, 0xaa, 0xaa, 0xaf, 0xaa,
-    0xaa, 0xaa, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff,
-    0xfc,
-
     /* U+6BCB "毋" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x7f, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x0, 0xbf,
@@ -69811,6 +74166,57 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0x1, 0xf0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x7, 0xc0, 0x0, 0x0, 0x0,
 
+    /* U+6BD6 "毖" */
+    0x0, 0x50, 0x0, 0x5, 0x0, 0x0, 0x0, 0x3,
+    0xc0, 0x0, 0x3d, 0x0, 0x0, 0x0, 0xf, 0x0,
+    0x0, 0xf4, 0x0, 0x4, 0x0, 0x3c, 0x0, 0x3,
+    0xd0, 0x2, 0xf0, 0x0, 0xf0, 0x0, 0xf, 0x40,
+    0xbf, 0xc0, 0x3, 0xff, 0xfe, 0x3d, 0x6f, 0xf4,
+    0x0, 0xf, 0xff, 0xf8, 0xff, 0xf9, 0x0, 0x0,
+    0x3c, 0x0, 0x3, 0xfe, 0x0, 0x0, 0x0, 0xf0,
+    0x0, 0xf, 0x80, 0x0, 0xe0, 0x3, 0xc0, 0x0,
+    0x3d, 0x0, 0x3, 0xc0, 0xf, 0x1, 0xb8, 0xf8,
+    0x0, 0x1f, 0x0, 0x3e, 0xbf, 0xe3, 0xf5, 0x55,
+    0xf8, 0x3, 0xff, 0xf9, 0x7, 0xff, 0xff, 0xd0,
+    0xb, 0xe4, 0xb, 0x2, 0xaa, 0xa8, 0x0, 0x0,
+    0x0, 0x2f, 0x0, 0xe, 0x0, 0x0, 0x0, 0x38,
+    0x2f, 0x0, 0xf8, 0x0, 0x1, 0xe0, 0xf0, 0x2e,
+    0xf, 0x80, 0x0, 0xf, 0x43, 0xc0, 0x21, 0xf8,
+    0x2c, 0x0, 0x7c, 0xf, 0x0, 0x2f, 0x80, 0xf4,
+    0x3, 0xe0, 0x3c, 0x7, 0xf4, 0x1, 0xf0, 0x2f,
+    0x0, 0xf1, 0xfe, 0x1, 0x3, 0xe0, 0xf8, 0x3,
+    0xff, 0xd0, 0xf, 0x7, 0xc3, 0xc0, 0x2f, 0xf4,
+    0x0, 0x3c, 0xf, 0x80, 0x1b, 0xfe, 0x0, 0x1,
+    0xf0, 0x1e, 0x1f, 0xfe, 0xfd, 0x0, 0x1f, 0x80,
+    0x11, 0xff, 0x42, 0xff, 0xff, 0xfd, 0x0, 0x2,
+    0x40, 0x2, 0xff, 0xff, 0x90, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0,
+
+    /* U+6BD7 "毗" */
+    0x0, 0x0, 0x0, 0xa0, 0xf, 0x0, 0x0, 0x0,
+    0x0, 0x3, 0xc0, 0x3c, 0x0, 0x0, 0x0, 0x0,
+    0xf, 0x0, 0xf0, 0x0, 0xf, 0xff, 0xfe, 0x3c,
+    0x3, 0xc0, 0x0, 0x3f, 0xff, 0xf8, 0xf0, 0xf,
+    0x0, 0x0, 0xf0, 0xf1, 0xe3, 0xc0, 0x3c, 0x0,
+    0x3, 0xc3, 0xc7, 0x8f, 0x0, 0xf0, 0xf, 0xf,
+    0xf, 0x1e, 0x3c, 0x3, 0xc0, 0xbc, 0x3c, 0x3c,
+    0x78, 0xf4, 0xf, 0xb, 0xd0, 0xf0, 0xf1, 0xe3,
+    0xff, 0xbd, 0xbd, 0x3, 0xc3, 0xc7, 0x8f, 0xfe,
+    0xff, 0xd0, 0xf, 0xf, 0x1e, 0x3c, 0x3, 0xfc,
+    0x0, 0x3f, 0xff, 0xf8, 0xf0, 0xf, 0xc0, 0x0,
+    0xff, 0xff, 0xe3, 0xc0, 0x3c, 0x0, 0x3, 0xc3,
+    0xc7, 0x8f, 0x0, 0xf0, 0x0, 0xf, 0xf, 0x1e,
+    0x3c, 0x3, 0xc0, 0x0, 0x3c, 0x3c, 0x78, 0xf0,
+    0xf, 0x0, 0x0, 0xf0, 0xf1, 0xe3, 0xc0, 0x3c,
+    0x0, 0x3, 0xc3, 0xc7, 0x8f, 0x0, 0xf0, 0x4,
+    0xf, 0xf, 0x1e, 0x3c, 0x3, 0xc0, 0x3c, 0x3c,
+    0x3c, 0x78, 0xf0, 0x1f, 0x0, 0xf0, 0xf0, 0xf1,
+    0xe3, 0xc7, 0xbc, 0x3, 0xc3, 0xff, 0xff, 0x8f,
+    0xbe, 0xf0, 0x1e, 0xf, 0xff, 0xfe, 0x3f, 0xd3,
+    0xe0, 0xf8, 0x0, 0x0, 0x0, 0xfc, 0xb, 0xff,
+    0xc0, 0x0, 0x0, 0x3, 0x80, 0xb, 0xfd, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+6BD9 "毙" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb,
     0x80, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x2e, 0x0,
@@ -69862,6 +74268,31 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xc0, 0x0, 0x0, 0x1, 0xbf, 0xff, 0xf9, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+6BE1 "毡" */
+    0x0, 0x0, 0x0, 0x0, 0xa0, 0x0, 0x0, 0x0,
+    0x1, 0xf0, 0x3, 0xd0, 0x0, 0x0, 0x1b, 0xff,
+    0xc0, 0xf, 0x40, 0x0, 0x1f, 0xff, 0xe4, 0x0,
+    0x3d, 0x0, 0x0, 0x7e, 0xf4, 0x0, 0x0, 0xff,
+    0xff, 0xe0, 0x3, 0xd0, 0x0, 0x3, 0xff, 0xff,
+    0x80, 0xf, 0x40, 0x0, 0xf, 0x40, 0x0, 0x0,
+    0x3d, 0x0, 0x0, 0x3d, 0x0, 0x0, 0x0, 0xf4,
+    0x0, 0x0, 0xf4, 0x0, 0x0, 0x17, 0xff, 0xf0,
+    0x3, 0xd0, 0x0, 0x3, 0xff, 0xff, 0xc0, 0xf,
+    0x40, 0x0, 0xf, 0xbe, 0x40, 0x3f, 0xff, 0xff,
+    0xc0, 0x0, 0xf4, 0x0, 0xff, 0xff, 0xff, 0x0,
+    0x3, 0xd0, 0x3, 0xc0, 0x0, 0x7c, 0x0, 0xf,
+    0x40, 0xf, 0x0, 0x1, 0xf0, 0x0, 0x3d, 0x1,
+    0x3c, 0x0, 0x7, 0xc0, 0x56, 0xff, 0xfc, 0xf0,
+    0x0, 0x1f, 0x3, 0xff, 0xff, 0xf3, 0xc0, 0x0,
+    0x7c, 0xb, 0xaf, 0x40, 0xf, 0x40, 0x1, 0xf0,
+    0x0, 0x3d, 0x0, 0x3f, 0xff, 0xff, 0xc0, 0x0,
+    0xf4, 0x0, 0xff, 0xff, 0xff, 0x60, 0x3, 0xd0,
+    0x0, 0x0, 0x0, 0x1, 0xe0, 0xf, 0x40, 0x0,
+    0x0, 0x0, 0xb, 0x80, 0x3f, 0x40, 0x0, 0x0,
+    0x1, 0x7d, 0x0, 0x7f, 0xff, 0xff, 0xff, 0xff,
+    0xf0, 0x0, 0x6f, 0xff, 0xff, 0xff, 0xfe, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+6BEA "毪" */
     0x0, 0x0, 0x0, 0x0, 0x14, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x3d, 0x0, 0x0, 0x0, 0x0,
@@ -69889,6 +74320,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xff, 0xff, 0xff, 0xff, 0xe0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+6BEB "毫" */
+    0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x3, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xf, 0x80, 0x0, 0x0, 0xa, 0xaa, 0xaa, 0xbf,
+    0xaa, 0xaa, 0xa8, 0x3f, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x1, 0x55, 0x55, 0x55, 0x55, 0x0, 0x0,
+    0x1f, 0xff, 0xff, 0xff, 0xfd, 0x0, 0x0, 0x7c,
+    0x0, 0x0, 0x0, 0xf4, 0x0, 0x1, 0xf5, 0x55,
+    0x55, 0x57, 0xd0, 0x0, 0x7, 0xff, 0xff, 0xff,
+    0xff, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x80,
+    0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0xf0,
+    0x0, 0x0, 0x0, 0x0, 0x3c, 0x3, 0xc0, 0x0,
+    0x0, 0x56, 0xbc, 0xf0, 0xa, 0x6f, 0xff, 0xff,
+    0xff, 0xe2, 0x80, 0x1, 0xff, 0xaf, 0x90, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x3d, 0x1, 0x55, 0x90,
+    0x0, 0x5a, 0xaf, 0xff, 0xff, 0xff, 0x80, 0x7,
+    0xff, 0xff, 0xe9, 0x55, 0x0, 0x0, 0x0, 0x0,
+    0xf, 0x40, 0x15, 0x5a, 0xa1, 0x6a, 0xbf, 0xff,
+    0xff, 0xff, 0xff, 0xaf, 0xff, 0xff, 0xfa, 0x55,
+    0x40, 0x40, 0x10, 0x0, 0x3, 0xd0, 0x0, 0x3,
+    0xc0, 0x0, 0x0, 0xb, 0xfe, 0xab, 0xff, 0x0,
+    0x0, 0x0, 0xb, 0xff, 0xff, 0xe0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+6BEF "毯" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x6,
@@ -70025,6 +74482,87 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xff, 0xff, 0xff, 0x40, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+6C05 "氅" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2,
+    0x1, 0xd0, 0x20, 0x7, 0x40, 0x0, 0x7, 0x81,
+    0xd0, 0xb4, 0xf, 0x0, 0x0, 0x1, 0xf1, 0xd2,
+    0xe0, 0x2e, 0x0, 0x0, 0x0, 0x71, 0xd3, 0x80,
+    0x7f, 0xff, 0xf8, 0x5, 0x66, 0xe6, 0x54, 0xfe,
+    0xab, 0xe4, 0xf, 0xff, 0xff, 0xfe, 0xfc, 0x3,
+    0x80, 0xf, 0x0, 0x0, 0x3e, 0x8e, 0xb, 0x0,
+    0xf, 0x1f, 0xfd, 0x3c, 0xb, 0x5e, 0x0, 0xf,
+    0x1d, 0x5d, 0x3c, 0x3, 0xfc, 0x0, 0xf, 0x1c,
+    0xd, 0x3c, 0x2, 0xf8, 0x0, 0xf, 0x1e, 0x6d,
+    0x3c, 0x1f, 0xff, 0x40, 0xf, 0x1f, 0xfd, 0x3e,
+    0xfe, 0xb, 0xf4, 0xf, 0x0, 0x1, 0xba, 0xe0,
+    0x0, 0xbc, 0xb, 0x0, 0x3, 0xe0, 0x0, 0x0,
+    0x4, 0x0, 0x0, 0x1, 0x56, 0xab, 0xfe, 0x0,
+    0x3, 0xff, 0xff, 0xff, 0xfe, 0xa4, 0x0, 0x3,
+    0xfa, 0xa7, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x3, 0xd0, 0x55, 0x69, 0x0, 0x1, 0xaa, 0xff,
+    0xff, 0xff, 0xfe, 0x0, 0x3, 0xff, 0xff, 0xe9,
+    0x55, 0x0, 0x0, 0x0, 0x0, 0x3, 0xd0, 0x1,
+    0x56, 0xa8, 0x15, 0x6a, 0xbf, 0xff, 0xff, 0xff,
+    0xfc, 0x7f, 0xff, 0xff, 0xea, 0x55, 0x2, 0x80,
+    0x14, 0x0, 0x3, 0xd0, 0x0, 0x3, 0xc0, 0x0,
+    0x0, 0x2, 0xff, 0xff, 0xff, 0xc0, 0x0, 0x0,
+    0x0, 0xbf, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
+    /* U+6C06 "氆" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0,
+    0x0, 0x0, 0x3c, 0x0, 0x3c, 0x0, 0x0, 0x6,
+    0xd0, 0xf, 0x0, 0xf4, 0x0, 0x1, 0xbf, 0xd0,
+    0x7, 0x42, 0xe0, 0x0, 0x3f, 0xf9, 0xf, 0xff,
+    0xff, 0xff, 0xf4, 0x3a, 0xf0, 0xa, 0xab, 0xeb,
+    0xea, 0xa0, 0x0, 0xf0, 0x7, 0x3, 0xc3, 0xc0,
+    0x90, 0x0, 0xf0, 0xb, 0x83, 0xc3, 0xc1, 0xe0,
+    0x0, 0xf0, 0x2, 0xe3, 0xc3, 0xc7, 0xc0, 0x0,
+    0xf0, 0x0, 0xf3, 0xc3, 0xcf, 0x0, 0x1, 0xfb,
+    0xc0, 0x3, 0xc3, 0xc1, 0x0, 0x3f, 0xff, 0xdf,
+    0xff, 0xff, 0xff, 0xfc, 0x2f, 0xf4, 0xa, 0xaa,
+    0xaa, 0xaa, 0xa8, 0x0, 0xf0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0xf0, 0x1, 0xaa, 0xaa, 0xaa,
+    0x40, 0x0, 0xf0, 0x1, 0xff, 0xff, 0xff, 0x40,
+    0x0, 0xf0, 0x1, 0xd0, 0x0, 0x7, 0x40, 0x1,
+    0xfa, 0xf1, 0xd0, 0x0, 0xb, 0x40, 0x7f, 0xff,
+    0xf1, 0xff, 0xff, 0xff, 0x40, 0xbf, 0xf5, 0x1,
+    0xfa, 0xaa, 0xaf, 0x40, 0x0, 0xf0, 0x1, 0xd0,
+    0x0, 0x7, 0x40, 0x0, 0xf0, 0x1, 0xfa, 0xaa,
+    0xaf, 0x48, 0x0, 0xf0, 0x1, 0xff, 0xff, 0xff,
+    0x5f, 0x0, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x1e,
+    0x0, 0xf4, 0x0, 0x0, 0x0, 0x0, 0x3d, 0x0,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x2f,
+    0xff, 0xff, 0xff, 0xff, 0xf4, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
+    /* U+6C07 "氇" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xf, 0x40, 0x0, 0x0, 0x0, 0x1,
+    0x90, 0x3f, 0x55, 0x54, 0x0, 0x1, 0xbf, 0xe0,
+    0xff, 0xff, 0xf8, 0x0, 0x7f, 0xfe, 0x43, 0xe0,
+    0x1, 0xf0, 0x0, 0x3e, 0xf0, 0x1f, 0xd5, 0x5b,
+    0xe5, 0x40, 0x0, 0xf0, 0x3f, 0xff, 0xff, 0xff,
+    0xc0, 0x0, 0xf0, 0x27, 0x40, 0x38, 0x3, 0xc0,
+    0x0, 0xf0, 0x7, 0x95, 0x7d, 0x57, 0xc0, 0x0,
+    0xf0, 0x7, 0xff, 0xff, 0xff, 0xc0, 0x15, 0xff,
+    0xd7, 0x40, 0x38, 0x3, 0xc0, 0x3f, 0xff, 0xd7,
+    0xff, 0xff, 0xff, 0xc0, 0x29, 0xf0, 0x1, 0x55,
+    0x55, 0x55, 0x40, 0x0, 0xf0, 0x2a, 0xaa, 0xaa,
+    0xaa, 0xa4, 0x0, 0xf0, 0x3f, 0xff, 0xff, 0xff,
+    0xfc, 0x0, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xf0, 0x10, 0xaa, 0xaa, 0xa9, 0x0, 0x16,
+    0xff, 0xf1, 0xff, 0xff, 0xff, 0x0, 0xff, 0xff,
+    0xf1, 0xd0, 0x0, 0xf, 0x0, 0xbe, 0xf4, 0x1,
+    0xea, 0xaa, 0xaf, 0x0, 0x0, 0xf0, 0x1, 0xff,
+    0xff, 0xff, 0x0, 0x0, 0xf0, 0x1, 0xd0, 0x0,
+    0xf, 0x10, 0x0, 0xf0, 0x1, 0xff, 0xff, 0xff,
+    0x2d, 0x0, 0xf0, 0x0, 0x55, 0x55, 0x55, 0x3c,
+    0x0, 0xf8, 0x0, 0x0, 0x0, 0x0, 0xbc, 0x0,
+    0xbf, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x1f,
+    0xff, 0xff, 0xff, 0xff, 0xe0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+6C0D "氍" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0xff, 0xf4, 0xff, 0xf0, 0x0, 0x6f, 0x0, 0x3e,
@@ -70075,6 +74613,30 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x2f, 0xfc, 0x6, 0x0, 0x0, 0x0,
     0x1, 0xfd, 0x0,
 
+    /* U+6C10 "氐" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x16, 0xbe, 0x0, 0x15, 0x5a, 0xbf,
+    0xff, 0xff, 0xc0, 0x3f, 0xff, 0xff, 0xff, 0xfa,
+    0x40, 0xf, 0xff, 0xea, 0xbc, 0x0, 0x0, 0x3,
+    0xc0, 0x0, 0x1f, 0x0, 0x0, 0x0, 0xf0, 0x0,
+    0x7, 0xc0, 0x0, 0x0, 0x3c, 0x0, 0x1, 0xf0,
+    0x0, 0x0, 0xf, 0x0, 0x0, 0x3c, 0x0, 0x0,
+    0x3, 0xc0, 0x0, 0xf, 0x0, 0x0, 0x0, 0xf0,
+    0x0, 0x3, 0xc0, 0x0, 0x0, 0x3f, 0xff, 0xff,
+    0xff, 0xff, 0xfe, 0xf, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0x83, 0xd5, 0x55, 0x5b, 0x95, 0x55, 0x40,
+    0xf0, 0x0, 0x1, 0xe0, 0x0, 0x0, 0x3c, 0x0,
+    0x0, 0x7c, 0x0, 0x0, 0xf, 0x0, 0x0, 0xf,
+    0x0, 0x0, 0x3, 0xc0, 0x0, 0x3, 0xd0, 0x0,
+    0x0, 0xf0, 0x0, 0x70, 0xbc, 0x0, 0x0, 0x3c,
+    0x1, 0xfd, 0xf, 0x0, 0x4, 0xf, 0x7, 0xff,
+    0x3, 0xe0, 0x7, 0x83, 0xdf, 0xfd, 0x0, 0x7c,
+    0x2, 0xe0, 0xff, 0xe0, 0x80, 0xf, 0xc0, 0xf4,
+    0xff, 0xc0, 0xf8, 0x0, 0xfe, 0xfc, 0x1f, 0x40,
+    0x1f, 0x80, 0x1f, 0xfd, 0x1, 0x0, 0x1, 0xf4,
+    0x1, 0xfd, 0x0, 0x0, 0x0, 0x2c, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+6C11 "民" */
     0x3f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xf, 0xff,
     0xff, 0xff, 0xff, 0xfc, 0x3, 0xe0, 0x0, 0x0,
@@ -70379,6 +74941,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x16, 0xd0, 0x2, 0xe0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+6C22 "氢" */
+    0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xf, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f, 0xff,
+    0xff, 0xff, 0xff, 0xf0, 0x0, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xe0, 0x2, 0xf0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xb, 0xfa, 0xaa, 0xaa, 0xaa, 0xaa,
+    0x40, 0x2f, 0x7f, 0xff, 0xff, 0xff, 0xff, 0x40,
+    0x7d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x38,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xff,
+    0xff, 0xff, 0xff, 0xf8, 0x0, 0x3, 0xff, 0xff,
+    0xff, 0xff, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x78, 0x0, 0x3, 0xff, 0xff, 0xff, 0xd0,
+    0x78, 0x0, 0x3, 0xff, 0xff, 0xff, 0xc0, 0x78,
+    0x0, 0x0, 0x0, 0x1, 0xfe, 0x0, 0x78, 0x0,
+    0x0, 0x0, 0x2f, 0xe0, 0x0, 0x78, 0x0, 0x0,
+    0x1b, 0xff, 0xfe, 0x40, 0x38, 0x0, 0x1b, 0xff,
+    0x80, 0x6f, 0xf9, 0x7c, 0x0, 0x7f, 0x90, 0x0,
+    0x0, 0xbf, 0x3c, 0x0, 0x11, 0xaa, 0xaa, 0xaa,
+    0xa6, 0x3c, 0x0, 0x2, 0xff, 0xff, 0xff, 0xf0,
+    0x3c, 0xe, 0x0, 0x0, 0x1f, 0x0, 0x0, 0x3c,
+    0xf, 0x0, 0x0, 0xf, 0x0, 0x0, 0x2d, 0x1e,
+    0x0, 0x0, 0xf, 0x0, 0x0, 0x1f, 0x2d, 0x2f,
+    0xff, 0xff, 0xff, 0xff, 0xf, 0xfc, 0x2f, 0xff,
+    0xff, 0xff, 0xff, 0xb, 0xf8, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x2, 0xe0,
+
     /* U+6C24 "氤" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0xf, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f,
@@ -70462,6 +75051,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x3, 0xd0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+6C28 "氨" */
+    0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xb, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf,
+    0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2f, 0xff,
+    0xff, 0xff, 0xff, 0xd0, 0x0, 0x7f, 0xff, 0xff,
+    0xff, 0xff, 0xd0, 0x0, 0xf8, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x3, 0xf0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xb, 0xcf, 0xff, 0xff, 0xff, 0xff, 0x0,
+    0x2f, 0x4a, 0xaa, 0xaa, 0xaa, 0xaa, 0x0, 0xbd,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x26, 0xff,
+    0xff, 0xff, 0xff, 0xf8, 0x0, 0x3, 0xff, 0xff,
+    0xff, 0xff, 0xf8, 0x0, 0x0, 0x0, 0x19, 0x0,
+    0x0, 0x78, 0x0, 0x0, 0x0, 0x1e, 0x0, 0x0,
+    0x78, 0x0, 0x6, 0xaa, 0xaf, 0xaa, 0xa8, 0x78,
+    0x0, 0xb, 0xff, 0xff, 0xff, 0xfc, 0x78, 0x0,
+    0xb, 0x80, 0x60, 0x0, 0x3c, 0x78, 0x0, 0xb,
+    0x40, 0xf4, 0x0, 0x3c, 0x78, 0x0, 0x0, 0x2,
+    0xe0, 0x0, 0x0, 0x78, 0x0, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0x7c, 0x0, 0xaa, 0xbf, 0xea, 0xbf,
+    0xea, 0x7c, 0x0, 0x0, 0x2e, 0x0, 0x2e, 0x0,
+    0x3c, 0x0, 0x0, 0xbf, 0x40, 0x7c, 0x0, 0x3c,
+    0x1d, 0x0, 0x1f, 0xfe, 0xf4, 0x0, 0x2c, 0x2d,
+    0x0, 0x0, 0x7f, 0xf4, 0x0, 0x2e, 0x3c, 0x0,
+    0x6, 0xfe, 0xff, 0x80, 0xf, 0xb8, 0x2b, 0xff,
+    0xe0, 0xb, 0xfd, 0xf, 0xf4, 0x3f, 0xe4, 0x0,
+    0x0, 0x7e, 0x3, 0xd0, 0x14, 0x0, 0x0, 0x0,
+    0x4, 0x0, 0x0,
+
     /* U+6C29 "氩" */
     0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x1f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3d,
@@ -70488,6 +75105,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xff, 0xff, 0xff, 0xff, 0xcb, 0xf8, 0x2f, 0xff,
     0xff, 0xff, 0xff, 0xc2, 0xe0,
 
+    /* U+6C2A "氪" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x3, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xd0, 0x0, 0x7f, 0xff,
+    0xff, 0xff, 0xff, 0xf0, 0x0, 0x3d, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x3f, 0xff, 0xff, 0xff,
+    0xff, 0xfc, 0x0, 0x3f, 0x2a, 0xaa, 0xaa, 0xaa,
+    0xaa, 0x0, 0x3f, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xb, 0xbf, 0xff, 0xff, 0xff, 0xff, 0x0,
+    0x0, 0x2f, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x0,
+    0x0, 0x0, 0x24, 0x0, 0x0, 0xf0, 0x0, 0x0,
+    0x0, 0x1e, 0x0, 0x0, 0x3c, 0x0, 0x3, 0xff,
+    0xff, 0xff, 0xff, 0xcf, 0x0, 0x0, 0xaa, 0xab,
+    0xfa, 0xaa, 0xa3, 0xc0, 0x0, 0x0, 0x0, 0x78,
+    0x0, 0x0, 0xf0, 0x0, 0x0, 0xaa, 0xaf, 0xaa,
+    0x90, 0x3c, 0x0, 0x0, 0x7f, 0xff, 0xff, 0xfc,
+    0xf, 0x0, 0x0, 0x1e, 0x0, 0x0, 0x1f, 0x3,
+    0xc0, 0x0, 0x7, 0x80, 0x0, 0x7, 0xc0, 0xb4,
+    0x0, 0x1, 0xff, 0xff, 0xff, 0xf0, 0x2d, 0x0,
+    0x0, 0x6a, 0xfa, 0xbe, 0xa4, 0x7, 0x43, 0xc0,
+    0x0, 0x7c, 0xf, 0x0, 0x60, 0xe0, 0xf0, 0x0,
+    0x3d, 0x3, 0xc0, 0x2d, 0x3c, 0x78, 0x0, 0x7f,
+    0x0, 0xf0, 0xf, 0xb, 0xbc, 0x2, 0xfe, 0x0,
+    0x3f, 0xff, 0xc1, 0xff, 0x3, 0xfd, 0x0, 0x2,
+    0xff, 0x80, 0x1f, 0x0, 0x50, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+6C2E "氮" */
     0x0, 0x1, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0xf4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -70626,6 +75271,17 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x7f, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+6C35 "氵" */
+    0x0, 0x0, 0x0, 0x78, 0x0, 0xf, 0xf4, 0x0,
+    0x1f, 0xf0, 0x0, 0x3f, 0xd0, 0x0, 0x7c, 0x0,
+    0x1, 0x82, 0x0, 0x0, 0xbd, 0x0, 0x7, 0xfc,
+    0x0, 0xb, 0xf4, 0x0, 0x1f, 0xe0, 0x0, 0x3e,
+    0x0, 0x0, 0x80, 0x0, 0x0, 0x0, 0x0, 0x40,
+    0x0, 0xf, 0x40, 0x1, 0xf0, 0x0, 0x3e, 0x0,
+    0x7, 0xc0, 0x0, 0xf8, 0x0, 0x2f, 0x0, 0x3,
+    0xe0, 0x0, 0xfc, 0x0, 0x1f, 0x40, 0x2, 0xf0,
+    0x0, 0x4, 0x0, 0x0,
+
     /* U+6C38 "永" */
     0x0, 0x0, 0x9, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x7, 0xfd, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -70654,6 +75310,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xd0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+6C3D "氽" */
+    0x0, 0x0, 0x0, 0x68, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x1, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x3, 0xef, 0x80, 0x0, 0x0, 0x0, 0x0, 0x1f,
+    0x83, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x7f, 0x0,
+    0xfc, 0x0, 0x0, 0x0, 0x2, 0xf8, 0x0, 0x3f,
+    0x40, 0x0, 0x0, 0x1f, 0xd0, 0x0, 0xf, 0xf0,
+    0x0, 0x1, 0xff, 0x40, 0x3c, 0x2, 0xfe, 0x0,
+    0x1f, 0xf8, 0x0, 0x3c, 0x0, 0x7f, 0xe0, 0x7f,
+    0xd0, 0x0, 0x3c, 0x0, 0xb, 0xfc, 0x3d, 0x0,
+    0x0, 0x3d, 0x0, 0x0, 0xb4, 0x0, 0x0, 0x0,
+    0x3e, 0x0, 0xb, 0x0, 0x0, 0x0, 0x0, 0x3f,
+    0x0, 0x3f, 0x40, 0xf, 0xff, 0xfc, 0x3f, 0x81,
+    0xfd, 0x0, 0xf, 0xff, 0xfc, 0x3f, 0xdb, 0xf0,
+    0x0, 0x0, 0x0, 0x78, 0x3d, 0xff, 0x80, 0x0,
+    0x0, 0x0, 0xf4, 0x3c, 0xfd, 0x0, 0x0, 0x0,
+    0x2, 0xf0, 0x3c, 0x3d, 0x0, 0x0, 0x0, 0x7,
+    0xc0, 0x3c, 0x1f, 0x40, 0x0, 0x0, 0xf, 0x80,
+    0x3c, 0xb, 0xd0, 0x0, 0x0, 0x3e, 0x0, 0x3c,
+    0x2, 0xf4, 0x0, 0x0, 0xfc, 0x0, 0x3c, 0x0,
+    0xbe, 0x0, 0x7, 0xf0, 0x0, 0x3c, 0x0, 0x2f,
+    0xd0, 0x2f, 0x80, 0x0, 0x3c, 0x0, 0x7, 0xfc,
+    0x7e, 0x0, 0x15, 0xfc, 0x0, 0x0, 0xb8, 0x14,
+    0x0, 0x3f, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x2f, 0x90, 0x0, 0x0, 0x0,
+
     /* U+6C40 "汀" */
     0x2, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3,
     0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xfd,
@@ -70786,31 +75468,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xfc, 0x3c, 0x0, 0x5, 0x55, 0x55, 0x55, 0x50,
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
 
-    /* U+6C48 "汈" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7,
-    0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f, 0x80,
-    0x3f, 0xff, 0xff, 0xff, 0x40, 0x2f, 0xc0, 0xff,
-    0xff, 0xff, 0xfd, 0x0, 0x1f, 0xc0, 0x0, 0x0,
-    0x0, 0xf4, 0x0, 0x1f, 0x0, 0x0, 0x0, 0x3,
-    0xd0, 0x0, 0x8, 0x0, 0x0, 0x0, 0xf, 0x40,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x3d, 0x1e, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0xf4, 0xbf, 0x0, 0x0,
-    0x0, 0x1, 0x3, 0xd0, 0x7f, 0x40, 0x0, 0x0,
-    0x2e, 0xf, 0x40, 0x3f, 0x40, 0x0, 0x3, 0xf8,
-    0x3c, 0x0, 0x3c, 0x0, 0x0, 0x7f, 0x40, 0xf0,
-    0x0, 0x10, 0x0, 0xb, 0xf0, 0x3, 0xc0, 0x0,
-    0x0, 0x1, 0xfe, 0x0, 0xf, 0x0, 0x0, 0x0,
-    0x7f, 0xd0, 0x0, 0x3c, 0x0, 0x8, 0xb, 0xf8,
-    0x0, 0x0, 0xf0, 0x0, 0xbc, 0x1f, 0x0, 0x0,
-    0x3, 0xc0, 0x3, 0xd0, 0x10, 0x0, 0x0, 0xf,
-    0x0, 0x1f, 0x0, 0x0, 0x0, 0x0, 0x3c, 0x0,
-    0xf8, 0x0, 0x0, 0x0, 0x0, 0xf0, 0x3, 0xd0,
-    0x0, 0x0, 0x0, 0x7, 0xc0, 0x2f, 0x0, 0x0,
-    0x0, 0x0, 0x2f, 0x0, 0xf4, 0x0, 0x0, 0x0,
-    0x57, 0xf8, 0xb, 0xc0, 0x0, 0x0, 0xf, 0xff,
-    0xc0, 0x3d, 0x0, 0x0, 0x0, 0x2f, 0xe4, 0x0,
-    0x60, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
     /* U+6C49 "汉" */
     0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb,
     0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb, 0xf0,
@@ -71172,6 +75829,30 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x90, 0x0, 0x0, 0x3, 0x40, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+6C68 "汨" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xd0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0xbf, 0x0, 0xff,
+    0xff, 0xff, 0xfc, 0xb, 0xf4, 0x3f, 0xff, 0xff,
+    0xff, 0x0, 0x7f, 0x4f, 0x40, 0x0, 0x7, 0xc0,
+    0x3, 0xc3, 0xd0, 0x0, 0x1, 0xf0, 0x0, 0x10,
+    0xf4, 0x0, 0x0, 0x7c, 0x40, 0x0, 0x3d, 0x0,
+    0x0, 0x1f, 0x3d, 0x0, 0xf, 0x40, 0x0, 0x7,
+    0xcf, 0xe0, 0x3, 0xd0, 0x0, 0x1, 0xf0, 0xbf,
+    0x0, 0xf4, 0x0, 0x0, 0x7c, 0x7, 0xf0, 0x3d,
+    0x0, 0x0, 0x1f, 0x0, 0x78, 0xf, 0xff, 0xff,
+    0xff, 0xc0, 0x4, 0x3, 0xff, 0xff, 0xff, 0xf0,
+    0x0, 0x0, 0xf4, 0x0, 0x0, 0x7c, 0x0, 0x0,
+    0x3d, 0x0, 0x0, 0x1f, 0x0, 0x38, 0xf, 0x40,
+    0x0, 0x7, 0xc0, 0xf, 0x3, 0xd0, 0x0, 0x1,
+    0xf0, 0x7, 0xc0, 0xf4, 0x0, 0x0, 0x7c, 0x3,
+    0xd0, 0x3d, 0x0, 0x0, 0x1f, 0x0, 0xf0, 0xf,
+    0x40, 0x0, 0x7, 0xc0, 0xb8, 0x3, 0xd0, 0x0,
+    0x1, 0xf0, 0x3d, 0x0, 0xff, 0xff, 0xff, 0xfc,
+    0x1f, 0x0, 0x3f, 0xff, 0xff, 0xff, 0xf, 0x80,
+    0xf, 0x95, 0x55, 0x5b, 0xc7, 0xc0, 0x3, 0xd0,
+    0x0, 0x1, 0xf1, 0xe0, 0x0, 0xf4, 0x0, 0x0,
+    0x7c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+6C69 "汩" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe0,
     0x0, 0x0, 0x0, 0x0, 0x0, 0x1f, 0xd0, 0x0,
@@ -71222,32 +75903,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x55, 0x55, 0x55, 0x55, 0x54, 0x5, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0,
 
-    /* U+6C6D "汭" */
-    0x0, 0x0, 0x0, 0x0, 0x2c, 0x0, 0x0, 0x4,
-    0x0, 0x0, 0x0, 0xf4, 0x0, 0x0, 0x7d, 0x0,
-    0x0, 0x3, 0xd0, 0x0, 0x0, 0xfe, 0x0, 0x0,
-    0xf, 0x40, 0x0, 0x0, 0xbf, 0x5, 0x55, 0x7d,
-    0x55, 0x50, 0x0, 0x7e, 0x3f, 0xff, 0xff, 0xff,
-    0xe0, 0x0, 0x30, 0xff, 0xff, 0xff, 0xff, 0x80,
-    0x0, 0x3, 0xc0, 0xf, 0x40, 0x2e, 0xc, 0x0,
-    0xf, 0x0, 0x3c, 0x0, 0xb8, 0xfd, 0x0, 0x3c,
-    0x0, 0xf0, 0x2, 0xe0, 0xfe, 0x0, 0xf0, 0x3,
-    0xc0, 0xb, 0x80, 0xbf, 0x3, 0xc0, 0xf, 0x0,
-    0x2e, 0x0, 0x7e, 0xf, 0x0, 0xbe, 0x0, 0xb8,
-    0x0, 0x70, 0x3c, 0x3, 0xfe, 0x2, 0xe0, 0x0,
-    0x0, 0xf0, 0x1f, 0x3d, 0xb, 0x80, 0x0, 0x3,
-    0xc0, 0xf8, 0x7c, 0x2e, 0x0, 0x0, 0xf, 0x7,
-    0xc0, 0xbc, 0xb8, 0x0, 0xf4, 0x3c, 0x3d, 0x0,
-    0xfa, 0xe0, 0x3, 0xc0, 0xf3, 0xe0, 0x0, 0xff,
-    0x80, 0x1f, 0x3, 0xdf, 0x0, 0x2, 0xae, 0x0,
-    0xb8, 0xf, 0x14, 0x0, 0x0, 0xb8, 0x3, 0xd0,
-    0x3c, 0x0, 0x0, 0x2, 0xe0, 0x1f, 0x0, 0xf0,
-    0x0, 0x0, 0xb, 0x80, 0xf8, 0x3, 0xc0, 0x0,
-    0x0, 0x2e, 0x3, 0xc0, 0xf, 0x0, 0x0, 0x5,
-    0xf4, 0x2f, 0x0, 0x3c, 0x0, 0x0, 0xbf, 0xc0,
-    0xf4, 0x0, 0xf0, 0x0, 0x1, 0xe4, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x0,
-
     /* U+6C70 "汰" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x2, 0xe0, 0x0, 0x0, 0x3, 0x40,
@@ -71511,32 +76166,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xd0, 0x0, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
-    /* U+6C84 "沄" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb,
-    0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb, 0xf0,
-    0xf, 0xff, 0xff, 0xff, 0xc0, 0x1, 0xfd, 0xf,
-    0xff, 0xff, 0xff, 0xc0, 0x0, 0x3f, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0xe, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x7d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f,
-    0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb, 0xf0,
-    0xbf, 0xff, 0xff, 0xff, 0xfc, 0x1, 0xfc, 0xbf,
-    0xff, 0xff, 0xff, 0xfc, 0x0, 0x74, 0x0, 0xb,
-    0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0x80,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x1f, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x2f, 0x0, 0x0, 0x0,
-    0x0, 0x78, 0x0, 0x3d, 0x0, 0x78, 0x0, 0x0,
-    0xb8, 0x0, 0xbc, 0x0, 0x7c, 0x0, 0x0, 0xf4,
-    0x0, 0xf8, 0x0, 0x3e, 0x0, 0x1, 0xf0, 0x1,
-    0xf0, 0x0, 0x1f, 0x0, 0x2, 0xe0, 0x3, 0xe0,
-    0x0, 0xf, 0x80, 0x3, 0xd0, 0xb, 0xc0, 0x0,
-    0x7, 0xc0, 0x7, 0xc0, 0x1f, 0xda, 0xab, 0xff,
-    0xd0, 0xf, 0x80, 0x3f, 0xff, 0xff, 0xff, 0xf0,
-    0xf, 0x0, 0x3f, 0xfa, 0xa5, 0x51, 0xf0, 0x2f,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0xf4, 0x5, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x90,
-
     /* U+6C85 "沅" */
     0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3,
     0xd0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0xf8,
@@ -71806,33 +76435,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+6C9A "沚" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1,
-    0x0, 0x0, 0x0, 0xf, 0x0, 0x0, 0x7, 0xd0,
-    0x0, 0x0, 0xf, 0x0, 0x0, 0x7, 0xf8, 0x0,
-    0x0, 0xf, 0x0, 0x0, 0x0, 0xbf, 0x0, 0x0,
-    0xf, 0x0, 0x0, 0x0, 0x1f, 0x80, 0x0, 0xf,
-    0x0, 0x0, 0x0, 0x7, 0x1, 0x90, 0xf, 0x0,
-    0x0, 0x0, 0x0, 0x2, 0xd0, 0xf, 0x0, 0x0,
-    0x10, 0x0, 0x2, 0xd0, 0xf, 0x0, 0x0, 0x3e,
-    0x0, 0x2, 0xd0, 0xf, 0x55, 0x50, 0x3f, 0xc0,
-    0x2, 0xd0, 0xf, 0xff, 0xf0, 0xb, 0xf4, 0x2,
-    0xd0, 0xf, 0xff, 0xf0, 0x0, 0xfc, 0x2, 0xd0,
-    0xf, 0x0, 0x0, 0x0, 0x3c, 0x2, 0xd0, 0xf,
-    0x0, 0x0, 0x0, 0x0, 0x2, 0xd0, 0xf, 0x0,
-    0x0, 0x0, 0x0, 0x2, 0xd0, 0xf, 0x0, 0x0,
-    0x0, 0x0, 0x2, 0xd0, 0xf, 0x0, 0x0, 0x0,
-    0x2d, 0x2, 0xd0, 0xf, 0x0, 0x0, 0x0, 0x3d,
-    0x2, 0xd0, 0xf, 0x0, 0x0, 0x0, 0x7c, 0x2,
-    0xd0, 0xf, 0x0, 0x0, 0x0, 0xf8, 0x2, 0xd0,
-    0xf, 0x0, 0x0, 0x0, 0xf4, 0x2, 0xd0, 0xf,
-    0x0, 0x0, 0x2, 0xf0, 0x2, 0xd0, 0xf, 0x0,
-    0x0, 0x3, 0xd0, 0x2, 0xd0, 0xf, 0x0, 0x0,
-    0xb, 0xc2, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xf,
-    0x42, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x2f, 0x0,
-    0x55, 0x55, 0x55, 0x55, 0x54, 0x5, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0,
-
     /* U+6C9B "沛" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x34, 0x0,
@@ -72041,33 +76643,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x7f, 0xff, 0xfe, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0,
 
-    /* U+6CA8 "沨" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf,
-    0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xe0,
-    0x3f, 0xff, 0xff, 0xff, 0x0, 0x2, 0xfc, 0x3f,
-    0xff, 0xff, 0xff, 0x0, 0x0, 0x7f, 0x3c, 0x0,
-    0x0, 0xf, 0x0, 0x0, 0x1d, 0x3c, 0x0, 0x0,
-    0xf, 0x0, 0x0, 0x0, 0x3c, 0x90, 0x3, 0x8f,
-    0x0, 0x10, 0x0, 0x3c, 0xf0, 0x7, 0x8f, 0x0,
-    0x3e, 0x0, 0x3c, 0xb8, 0xf, 0x4f, 0x0, 0x3f,
-    0xc0, 0x3c, 0x3d, 0xf, 0xf, 0x0, 0xb, 0xf0,
-    0x3c, 0x1f, 0x2e, 0xf, 0x0, 0x1, 0xfc, 0x3c,
-    0xf, 0x7c, 0xf, 0x0, 0x0, 0x38, 0x3c, 0x7,
-    0xf8, 0xf, 0x0, 0x0, 0x0, 0x3c, 0x3, 0xf0,
-    0xf, 0x0, 0x0, 0x0, 0x3c, 0x1, 0xf0, 0xf,
-    0x0, 0x0, 0x50, 0x3c, 0x3, 0xf8, 0xf, 0x0,
-    0x0, 0xf8, 0x3c, 0x7, 0xfc, 0xf, 0x0, 0x0,
-    0xf4, 0x3c, 0xf, 0x7d, 0xf, 0x0, 0x1, 0xf0,
-    0x78, 0x1f, 0x1f, 0xf, 0x0, 0x2, 0xf0, 0x78,
-    0x3d, 0xf, 0x4f, 0x4, 0x3, 0xe0, 0xb4, 0xb8,
-    0x7, 0xcf, 0x1e, 0x3, 0xc0, 0xf0, 0xf0, 0x3,
-    0xdf, 0x1d, 0x7, 0xc0, 0xf3, 0xe0, 0x2, 0xeb,
-    0x2c, 0xf, 0x82, 0xe3, 0xc0, 0x0, 0xeb, 0x7c,
-    0xf, 0x43, 0xd0, 0x40, 0x0, 0x7, 0xf8, 0x2f,
-    0xb, 0xc0, 0x0, 0x0, 0x3, 0xf4, 0x9, 0x7,
-    0x40, 0x0, 0x0, 0x1, 0xe0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0,
-
     /* U+6CA9 "沩" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x3c, 0x0, 0x0, 0x1, 0x0, 0x2c,
@@ -72225,6 +76800,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xc0, 0xbc, 0x0, 0x0, 0xbf, 0xff, 0xf8, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+6CB2 "沲" */
+    0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x3, 0xd0, 0x0, 0x0, 0x0, 0x60, 0x0,
+    0xf, 0x0, 0x0, 0x0, 0x3, 0xf4, 0x0, 0xb8,
+    0x0, 0x0, 0x0, 0x7, 0xf8, 0x3, 0xff, 0xff,
+    0xff, 0xf0, 0x3, 0xf8, 0x2f, 0xff, 0xff, 0xff,
+    0xc0, 0x2, 0xe1, 0xf5, 0x55, 0x55, 0x55, 0x0,
+    0x2, 0xf, 0x80, 0x3c, 0x0, 0x0, 0x0, 0x0,
+    0xbc, 0x0, 0xf0, 0x0, 0x0, 0xe0, 0x3, 0xe4,
+    0x3, 0xc0, 0x0, 0x7, 0xf4, 0xa, 0xf0, 0xf,
+    0x6, 0xfc, 0x7, 0xf8, 0x3, 0xc0, 0x3f, 0xff,
+    0xf0, 0x3, 0xf8, 0xf, 0x6f, 0xff, 0xeb, 0xc0,
+    0x2, 0xc1, 0xbf, 0xff, 0xd0, 0xf, 0x0, 0x1,
+    0x3f, 0xfe, 0x4f, 0x0, 0x7c, 0x0, 0x0, 0xfb,
+    0xc0, 0x3c, 0x1, 0xf0, 0x0, 0x0, 0xf, 0x0,
+    0xf0, 0x7, 0x80, 0x0, 0xe0, 0x3c, 0x3, 0xc0,
+    0x1e, 0x0, 0x7, 0xc0, 0xf0, 0xf, 0x1, 0xf8,
+    0x0, 0x3e, 0x3, 0xc0, 0x3c, 0x3f, 0xd0, 0x0,
+    0xf0, 0xf, 0x0, 0xf0, 0xf9, 0x0, 0xb, 0xc0,
+    0x3c, 0x3, 0xc0, 0x0, 0x80, 0x3d, 0x0, 0xf0,
+    0xf, 0x0, 0x3, 0xc1, 0xf0, 0x3, 0xc0, 0x0,
+    0x0, 0x1e, 0xf, 0x80, 0xf, 0xd0, 0x0, 0x1,
+    0xf8, 0x7c, 0x0, 0x1f, 0xff, 0xff, 0xff, 0xc2,
+    0xe0, 0x0, 0x1b, 0xff, 0xff, 0xf8, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+6CB3 "河" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb,
     0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xe0,
@@ -72303,31 +76904,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xff, 0xff, 0xf2, 0xf0, 0x3, 0xc0, 0x0, 0x0,
     0x3c, 0x74, 0x0, 0xf0, 0x0, 0x0, 0xf,
 
-    /* U+6CBA "沺" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe0,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x2f, 0xc0, 0x3f,
-    0xff, 0xff, 0xff, 0xd0, 0x7f, 0x43, 0xff, 0xff,
-    0xff, 0xfd, 0x0, 0xfd, 0x3c, 0x0, 0xf0, 0x2,
-    0xd0, 0x3, 0xc3, 0xc0, 0xf, 0x0, 0x2d, 0x0,
-    0x4, 0x3c, 0x0, 0xf0, 0x2, 0xd0, 0x0, 0x3,
-    0xc0, 0xf, 0x0, 0x2d, 0x38, 0x0, 0x3c, 0x0,
-    0xf0, 0x2, 0xdb, 0xf0, 0x3, 0xc0, 0xf, 0x0,
-    0x2d, 0x1f, 0xd0, 0x3c, 0x0, 0xf0, 0x2, 0xd0,
-    0x3f, 0x43, 0xc0, 0xf, 0x0, 0x2d, 0x0, 0xf0,
-    0x3f, 0xff, 0xff, 0xff, 0xd0, 0x2, 0x3, 0xff,
-    0xff, 0xff, 0xfd, 0x0, 0x0, 0x3d, 0x55, 0xf5,
-    0x57, 0xd0, 0x0, 0x3, 0xc0, 0xf, 0x0, 0x2d,
-    0x0, 0x90, 0x3c, 0x0, 0xf0, 0x2, 0xd0, 0xf,
-    0x3, 0xc0, 0xf, 0x0, 0x2d, 0x1, 0xf0, 0x3c,
-    0x0, 0xf0, 0x2, 0xd0, 0x2e, 0x3, 0xc0, 0xf,
-    0x0, 0x2d, 0x3, 0xd0, 0x3c, 0x0, 0xf0, 0x2,
-    0xd0, 0x3c, 0x3, 0xc0, 0xf, 0x0, 0x2d, 0x7,
-    0xc0, 0x3c, 0x0, 0xf4, 0x2, 0xd0, 0xf8, 0x3,
-    0xff, 0xff, 0xff, 0xfd, 0xf, 0x0, 0x3f, 0xff,
-    0xff, 0xff, 0xd2, 0xf0, 0x3, 0xc0, 0x0, 0x0,
-    0x2d, 0x3d, 0x0, 0x3c, 0x0, 0x0, 0x2, 0xd0,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
     /* U+6CBB "治" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0xf, 0x0, 0x0, 0x0, 0x24, 0x0,
@@ -72456,58 +77032,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0xf, 0x40, 0x0, 0xf, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0,
 
-    /* U+6CC1 "況" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb,
-    0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xe0,
-    0x1f, 0xff, 0xff, 0xff, 0xc0, 0x2, 0xfc, 0x1f,
-    0xff, 0xff, 0xff, 0xc0, 0x0, 0x7f, 0x1f, 0x0,
-    0x0, 0x7, 0xc0, 0x0, 0xe, 0x1f, 0x0, 0x0,
-    0x7, 0xc0, 0x0, 0x0, 0x1f, 0x0, 0x0, 0x7,
-    0xc0, 0x0, 0x0, 0x1f, 0x0, 0x0, 0x7, 0xc0,
-    0x3c, 0x0, 0x1f, 0x0, 0x0, 0x7, 0xc0, 0x3f,
-    0x40, 0x1f, 0x0, 0x0, 0x7, 0xc0, 0xf, 0xe0,
-    0x1f, 0x0, 0x0, 0x7, 0xc0, 0x2, 0xfc, 0x1f,
-    0x0, 0x0, 0x7, 0xc0, 0x0, 0xbc, 0x1f, 0xff,
-    0xff, 0xff, 0xc0, 0x0, 0x14, 0x1f, 0xff, 0xff,
-    0xff, 0xc0, 0x0, 0x0, 0x0, 0x3c, 0x3, 0xc0,
-    0x0, 0x0, 0x0, 0x0, 0x3c, 0x3, 0xc0, 0x0,
-    0x0, 0x10, 0x0, 0x7c, 0x3, 0xc0, 0x0, 0x0,
-    0x3d, 0x0, 0x7c, 0x3, 0xc0, 0x0, 0x0, 0x7c,
-    0x0, 0xb8, 0x3, 0xc0, 0x0, 0x0, 0xf8, 0x0,
-    0xf4, 0x3, 0xc0, 0x4, 0x1, 0xf0, 0x1, 0xf0,
-    0x3, 0xc0, 0x1e, 0x2, 0xe0, 0x3, 0xe0, 0x3,
-    0xc0, 0x1e, 0x3, 0xd0, 0xb, 0xc0, 0x3, 0xc0,
-    0x1d, 0xb, 0xc0, 0x3f, 0x0, 0x3, 0xd0, 0x3d,
-    0xf, 0x41, 0xfd, 0x0, 0x3, 0xff, 0xfc, 0x2f,
-    0xb, 0xf0, 0x0, 0x1, 0xff, 0xf4, 0x19, 0x3,
-    0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0,
-
-    /* U+6CC3 "泃" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x3, 0xc0, 0x0, 0x0, 0xf, 0x0, 0x0,
-    0xbc, 0x0, 0x0, 0x1, 0xfd, 0x0, 0xf, 0x40,
-    0x0, 0x0, 0x3, 0xf8, 0x2, 0xf5, 0x55, 0x55,
-    0x40, 0xb, 0xe0, 0x3f, 0xff, 0xff, 0xfc, 0x0,
-    0x1d, 0xb, 0xff, 0xff, 0xff, 0xc0, 0x0, 0x40,
-    0xf4, 0x0, 0x0, 0x3c, 0x10, 0x0, 0x2f, 0x0,
-    0x0, 0x3, 0xc7, 0xc0, 0x7, 0xc0, 0x0, 0x0,
-    0x3c, 0x7f, 0x40, 0xf8, 0x0, 0x0, 0x3, 0xc0,
-    0xfe, 0x2f, 0xff, 0xff, 0xc0, 0x3c, 0x3, 0xf4,
-    0xcf, 0xff, 0xfc, 0x3, 0xc0, 0xb, 0x0, 0xf0,
-    0x3, 0xc0, 0x3c, 0x0, 0x10, 0xf, 0x0, 0x3c,
-    0x3, 0xc0, 0x0, 0x0, 0xf0, 0x3, 0xc0, 0x3c,
-    0x0, 0x0, 0xf, 0x0, 0x3c, 0x3, 0xc0, 0xb,
-    0x80, 0xf0, 0x3, 0xc0, 0x3c, 0x0, 0xf8, 0xf,
-    0x0, 0x3c, 0x3, 0xc0, 0xf, 0x0, 0xf0, 0x3,
-    0xc0, 0x3c, 0x2, 0xf0, 0xf, 0xff, 0xfc, 0x3,
-    0xc0, 0x3e, 0x0, 0xff, 0xff, 0xc0, 0x3c, 0x3,
-    0xc0, 0x0, 0x0, 0x0, 0x3, 0xc0, 0xbc, 0x0,
-    0x0, 0x0, 0x0, 0x7c, 0xf, 0x40, 0x0, 0x0,
-    0x0, 0xf, 0xc1, 0xf0, 0x0, 0x0, 0x0, 0xff,
-    0xf8, 0x3e, 0x0, 0x0, 0x0, 0xf, 0xfe, 0x0,
-    0x40, 0x0, 0x0, 0x0, 0x55, 0x0,
-
     /* U+6CC4 "泄" */
     0x0, 0x0, 0x0, 0x1, 0x40, 0x4, 0x0, 0x0,
     0x0, 0x14, 0x3, 0xd0, 0x1f, 0x0, 0xf, 0x0,
@@ -72560,32 +77084,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xf0, 0x7c, 0x0, 0xf4, 0x0, 0x0, 0x3, 0xc0,
     0x60, 0x3, 0xd0, 0x0, 0x0, 0xf, 0x0,
 
-    /* U+6CC7 "泇" */
-    0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x8,
-    0x0, 0x2d, 0x0, 0x0, 0x0, 0x0, 0xbc, 0x0,
-    0xb4, 0x0, 0x0, 0x0, 0x0, 0xfc, 0x2, 0xd0,
-    0x0, 0x0, 0x0, 0x0, 0xfc, 0xb, 0x40, 0x2,
-    0xaa, 0xa0, 0x0, 0xf0, 0x2d, 0x0, 0xf, 0xff,
-    0xc0, 0x0, 0xb, 0xff, 0xfc, 0x3d, 0x5f, 0x0,
-    0x0, 0x3f, 0xff, 0xf0, 0xf0, 0x2c, 0x1c, 0x0,
-    0xb, 0x42, 0xc3, 0xc0, 0xb0, 0xfd, 0x0, 0x2d,
-    0xb, 0xf, 0x2, 0xc0, 0xfd, 0x0, 0xb4, 0x2c,
-    0x3c, 0xb, 0x0, 0xfd, 0x2, 0xc0, 0xb0, 0xf0,
-    0x2c, 0x0, 0xf4, 0xf, 0x3, 0xc3, 0xc0, 0xb0,
-    0x0, 0x80, 0x3c, 0xf, 0xf, 0x2, 0xc0, 0x0,
-    0x0, 0xf0, 0x3c, 0x3c, 0xb, 0x0, 0x0, 0x3,
-    0xc0, 0xf0, 0xf0, 0x2c, 0x0, 0x10, 0xf, 0x3,
-    0xc3, 0xc0, 0xb0, 0x1, 0xf0, 0x38, 0xf, 0xf,
-    0x2, 0xc0, 0xb, 0x81, 0xe0, 0x3c, 0x3c, 0xb,
-    0x0, 0x3d, 0xb, 0x40, 0xf0, 0xf0, 0x2c, 0x1,
-    0xf0, 0x3c, 0x3, 0xc3, 0xc0, 0xb0, 0xb, 0xc0,
-    0xf0, 0xf, 0xf, 0x2, 0xc0, 0x3d, 0x7, 0x80,
-    0x3c, 0x3c, 0xb, 0x1, 0xf0, 0x3c, 0x0, 0xf0,
-    0xff, 0xfc, 0xb, 0xc1, 0xf0, 0x7, 0xc3, 0xff,
-    0xf0, 0x3d, 0xf, 0x42, 0xfd, 0xf, 0x2, 0xc1,
-    0xf0, 0x7c, 0x2, 0x90, 0x3c, 0xb, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x0,
-
     /* U+6CC9 "泉" */
     0x0, 0x0, 0x0, 0x64, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x2f, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -72847,31 +77345,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0xc0, 0x2, 0xff, 0xff, 0xf8, 0x4, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0,
 
-    /* U+6CDC "泜" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x40, 0x30,
-    0x0, 0x0, 0x0, 0x5a, 0xff, 0x42, 0xf4, 0x1,
-    0x6a, 0xff, 0xff, 0xfd, 0x2, 0xf8, 0xf, 0xff,
-    0xff, 0xe4, 0x0, 0x1, 0xfc, 0x3e, 0xa5, 0x3c,
-    0x0, 0x0, 0x1, 0xe0, 0xf0, 0x0, 0xf4, 0x0,
-    0x0, 0x0, 0x3, 0xc0, 0x2, 0xd0, 0x0, 0x0,
-    0x0, 0xf, 0x0, 0xb, 0x40, 0x0, 0x38, 0x0,
-    0x3c, 0x0, 0x2d, 0x0, 0x1, 0xfc, 0x0, 0xf0,
-    0x0, 0xb4, 0x0, 0x1, 0xfc, 0x3, 0xc0, 0x2,
-    0xe0, 0x0, 0x0, 0xfc, 0xf, 0xff, 0xff, 0xff,
-    0xff, 0x0, 0xd0, 0x3f, 0xff, 0xff, 0xff, 0xfc,
-    0x0, 0x0, 0xf0, 0x0, 0x7c, 0x0, 0x0, 0x0,
-    0x3, 0xc0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0xf,
-    0x0, 0x3, 0xc0, 0x0, 0x0, 0x90, 0x3c, 0x0,
-    0xf, 0x0, 0x0, 0x3, 0xc0, 0xf0, 0x0, 0x2d,
-    0x0, 0x0, 0x1f, 0x3, 0xc0, 0x0, 0xb8, 0x0,
-    0x0, 0xb8, 0xf, 0x0, 0x41, 0xf0, 0x4, 0x3,
-    0xd0, 0x3c, 0x1f, 0x43, 0xc0, 0x3c, 0x1f, 0x0,
-    0xf7, 0xfd, 0xf, 0x41, 0xe0, 0xb8, 0x3, 0xff,
-    0x8d, 0x1f, 0xb, 0x43, 0xd0, 0x1f, 0xf0, 0x7c,
-    0x3e, 0x3c, 0x1f, 0x0, 0xbd, 0x0, 0xbc, 0x7f,
-    0xe0, 0xf8, 0x0, 0x80, 0x0, 0xf4, 0x7e, 0x1,
-    0x80, 0x0, 0x0, 0x1, 0x40, 0x0, 0x0,
-
     /* U+6CDE "泞" */
     0x0, 0x0, 0x0, 0x0, 0xb0, 0x0, 0x0, 0x1c,
     0x0, 0x0, 0x3, 0xd0, 0x0, 0x0, 0xfd, 0x0,
@@ -73271,6 +77744,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x3c, 0x0, 0x1f, 0xfd, 0x0, 0x0, 0x2c, 0x0,
     0x0, 0xf, 0xa4, 0x0, 0x0, 0x0,
 
+    /* U+6CF6 "泶" */
+    0x0, 0x10, 0x0, 0x90, 0x0, 0x20, 0x0, 0x0,
+    0xb8, 0x1, 0xf0, 0x0, 0xbc, 0x0, 0x0, 0x7c,
+    0x0, 0xf4, 0x0, 0xf4, 0x0, 0x0, 0x2f, 0x0,
+    0x7c, 0x3, 0xe0, 0x0, 0x0, 0xf, 0x40, 0x3d,
+    0x7, 0xc0, 0x0, 0x0, 0xb, 0x40, 0x28, 0xf,
+    0x80, 0x0, 0xf, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xd0, 0xf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd0,
+    0xf, 0x40, 0x0, 0x0, 0x0, 0x3, 0xd0, 0xf,
+    0x40, 0x0, 0x28, 0x0, 0x3, 0xd0, 0xf, 0x40,
+    0x0, 0x3c, 0x0, 0x3, 0xd0, 0xa, 0x0, 0x0,
+    0x3c, 0x0, 0x2, 0x80, 0x0, 0x0, 0x0, 0x3e,
+    0x0, 0x9, 0x0, 0xf, 0xff, 0xfc, 0x3f, 0x0,
+    0x3f, 0x0, 0xf, 0xff, 0xfc, 0x3f, 0x82, 0xfc,
+    0x0, 0x0, 0x0, 0x7c, 0x3f, 0xef, 0xe0, 0x0,
+    0x0, 0x0, 0xf4, 0x3c, 0xff, 0x40, 0x0, 0x0,
+    0x1, 0xf0, 0x3c, 0x7c, 0x0, 0x0, 0x0, 0x3,
+    0xd0, 0x3c, 0x3e, 0x0, 0x0, 0x0, 0xf, 0x80,
+    0x3c, 0xf, 0x80, 0x0, 0x0, 0x3f, 0x0, 0x3c,
+    0x3, 0xf0, 0x0, 0x0, 0xfc, 0x0, 0x3c, 0x1,
+    0xfd, 0x0, 0x3, 0xf0, 0x0, 0x3c, 0x0, 0x3f,
+    0x80, 0x1f, 0xc0, 0x0, 0x3c, 0x0, 0xf, 0xf8,
+    0xbf, 0x0, 0x1, 0xfc, 0x0, 0x1, 0xfc, 0x38,
+    0x0, 0x3f, 0xf8, 0x0, 0x0, 0x20, 0x0, 0x0,
+    0x3f, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+6CF7 "泷" */
     0x0, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x9,
     0x0, 0x0, 0xf0, 0xb, 0x0, 0x0, 0x7e, 0x0,
@@ -73607,32 +78107,31 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xfd, 0xf, 0x80, 0xf, 0x40, 0x0, 0x3, 0xd0,
     0xb0, 0x0, 0xf4, 0x0, 0x0, 0x3d,
 
-    /* U+6D11 "洑" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x3c, 0x7, 0x80, 0x0, 0xf, 0x0,
-    0x0, 0x78, 0x7, 0x8a, 0x0, 0xf, 0xd0, 0x0,
-    0xf4, 0x7, 0x8f, 0x40, 0x2, 0xf8, 0x0, 0xf0,
-    0x7, 0x87, 0xc0, 0x0, 0x78, 0x2, 0xe0, 0x7,
-    0x82, 0xd0, 0x0, 0x10, 0x3, 0xc0, 0x7, 0x80,
-    0xf0, 0x0, 0x0, 0xb, 0x80, 0x7, 0x80, 0x40,
-    0x0, 0x0, 0xf, 0x0, 0x7, 0x80, 0x0, 0x3d,
-    0x0, 0x2f, 0x1f, 0xff, 0xff, 0xfc, 0x3f, 0x40,
-    0x3f, 0x1f, 0xff, 0xff, 0xfc, 0xb, 0xe0, 0xff,
-    0x0, 0xb, 0xc0, 0x0, 0x2, 0xf1, 0xff, 0x0,
-    0xb, 0xc0, 0x0, 0x0, 0xa3, 0xdf, 0x0, 0xb,
-    0xc0, 0x0, 0x0, 0x3, 0x8f, 0x0, 0xf, 0xc0,
-    0x0, 0x0, 0x0, 0xf, 0x0, 0xf, 0xd0, 0x0,
-    0x0, 0x50, 0xf, 0x0, 0xf, 0xf0, 0x0, 0x0,
-    0xf0, 0xf, 0x0, 0x1e, 0xf0, 0x0, 0x1, 0xf0,
-    0xf, 0x0, 0x2d, 0x74, 0x0, 0x2, 0xe0, 0xf,
-    0x0, 0x3c, 0x3c, 0x0, 0x3, 0xd0, 0xf, 0x0,
-    0xb8, 0x2d, 0x0, 0x3, 0xc0, 0xf, 0x0, 0xf0,
-    0xf, 0x0, 0x7, 0xc0, 0xf, 0x2, 0xe0, 0xb,
-    0x80, 0xf, 0x40, 0xf, 0x3, 0xc0, 0x3, 0xd0,
-    0xf, 0x0, 0xf, 0xf, 0x80, 0x1, 0xf4, 0x2e,
-    0x0, 0xf, 0x2f, 0x0, 0x0, 0xbc, 0x3d, 0x0,
-    0xf, 0x3d, 0x0, 0x0, 0x3c, 0x4, 0x0, 0xf,
-    0x4, 0x0, 0x0, 0x0,
+    /* U+6D12 "洒" */
+    0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7d,
+    0x1, 0x55, 0x55, 0x55, 0x55, 0x40, 0xfe, 0x1f,
+    0xff, 0xff, 0xff, 0xff, 0xc0, 0xbe, 0x7f, 0xff,
+    0xff, 0xff, 0xfe, 0x0, 0x7e, 0x0, 0x2d, 0xf,
+    0x40, 0x0, 0x0, 0x70, 0x0, 0xb4, 0x3d, 0x0,
+    0x0, 0x0, 0x0, 0x2, 0xd0, 0xf4, 0x0, 0xe,
+    0x0, 0x0, 0xb, 0x43, 0xd0, 0x0, 0x7f, 0x0,
+    0xbf, 0xff, 0xff, 0xff, 0xd0, 0x7f, 0x2, 0xff,
+    0xff, 0xff, 0xff, 0x40, 0x3f, 0x4b, 0x82, 0xd0,
+    0xf4, 0x2d, 0x0, 0x3f, 0x2e, 0xb, 0x43, 0xd0,
+    0xb4, 0x0, 0x30, 0xb8, 0x2d, 0xf, 0x42, 0xd0,
+    0x0, 0x2, 0xe0, 0xf4, 0x3d, 0xb, 0x40, 0x0,
+    0xb, 0x83, 0xc0, 0xf4, 0x2d, 0x0, 0x18, 0x2e,
+    0x1f, 0x3, 0xe0, 0xb4, 0x0, 0xf4, 0xb8, 0xf8,
+    0xb, 0xff, 0xd0, 0x3, 0xc2, 0xeb, 0xc0, 0xf,
+    0xff, 0x40, 0x1f, 0xb, 0xfd, 0x0, 0x0, 0x2d,
+    0x0, 0xb8, 0x2e, 0x50, 0x0, 0x0, 0xb4, 0x3,
+    0xd0, 0xb8, 0x0, 0x0, 0x2, 0xd0, 0xf, 0x2,
+    0xe0, 0x0, 0x0, 0xb, 0x40, 0xb8, 0xb, 0x80,
+    0x0, 0x0, 0x3d, 0x3, 0xd0, 0x2f, 0xff, 0xff,
+    0xff, 0xf4, 0xf, 0x0, 0xbf, 0xff, 0xff, 0xff,
+    0xd0, 0xbc, 0x2, 0xe0, 0x0, 0x0, 0xb, 0x40,
+    0x50, 0xb, 0x80, 0x0, 0x0, 0x2d, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0,
 
     /* U+6D17 "洗" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -73769,33 +78268,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xfc, 0x2d, 0x0, 0xf0, 0x0, 0x1, 0xfe, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
 
-    /* U+6D23 "洣" */
-    0x0, 0x0, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x0,
-    0x74, 0x0, 0x0, 0xf, 0x0, 0x0, 0x0, 0x3f,
-    0x80, 0x70, 0x3, 0xc0, 0xc, 0x0, 0x2, 0xfc,
-    0x3e, 0x0, 0xf0, 0xb, 0x40, 0x0, 0x1f, 0xc3,
-    0xc0, 0x3c, 0x7, 0xc0, 0x0, 0x0, 0xf0, 0xbc,
-    0xf, 0x3, 0xd0, 0x0, 0x0, 0x4, 0xf, 0x43,
-    0xc2, 0xf0, 0x0, 0x0, 0x0, 0x1, 0xf0, 0xf1,
-    0xf0, 0x0, 0x1e, 0x0, 0x0, 0x38, 0x3c, 0xb4,
-    0x0, 0xb, 0xf0, 0x0, 0x0, 0xf, 0x0, 0x0,
-    0x0, 0x7f, 0x40, 0x0, 0x7, 0xc0, 0x0, 0x0,
-    0x3, 0xf4, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x0,
-    0x3c, 0x3f, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x1,
-    0x0, 0x0, 0x7f, 0xc0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x3f, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x2f, 0xff, 0x80, 0x0, 0x0, 0x14, 0x0, 0x1f,
-    0x7c, 0xf4, 0x0, 0x0, 0xf, 0x80, 0xf, 0x4f,
-    0x2f, 0x0, 0x0, 0x3, 0xc0, 0xf, 0x83, 0xc3,
-    0xf0, 0x0, 0x2, 0xf0, 0xf, 0xc0, 0xf0, 0x3f,
-    0x0, 0x0, 0xf4, 0xf, 0xc0, 0x3c, 0x3, 0xf4,
-    0x0, 0x7c, 0xf, 0xc0, 0xf, 0x0, 0x3f, 0x40,
-    0x3d, 0x1f, 0xc0, 0x3, 0xc0, 0x3, 0xf4, 0x1f,
-    0x3, 0xc0, 0x0, 0xf0, 0x0, 0x38, 0xf, 0x80,
-    0x0, 0x0, 0x3c, 0x0, 0x0, 0x7, 0xc0, 0x0,
-    0x0, 0xf, 0x0, 0x0, 0x0, 0x60, 0x0, 0x0,
-    0x3, 0xc0, 0x0, 0x0,
-
     /* U+6D25 "津" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x3, 0xc0, 0x0, 0x0, 0xf, 0x40,
@@ -73850,33 +78322,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xb, 0x80, 0x3, 0xff, 0x0, 0x19, 0x0, 0xb,
     0x80, 0x2, 0xa4, 0x0,
 
-    /* U+6D28 "洨" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x7, 0xc0, 0x0, 0x0, 0xa0, 0x0,
-    0x0, 0xf, 0x0, 0x0, 0x3, 0xf4, 0x0, 0x0,
-    0x2e, 0x0, 0x0, 0x7, 0xf8, 0x0, 0x0, 0xbc,
-    0x0, 0x0, 0x2, 0xf8, 0xff, 0xff, 0xff, 0xff,
-    0xd0, 0x2, 0xc3, 0xff, 0xff, 0xff, 0xff, 0x40,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x28, 0x0, 0xc0, 0x0, 0xe0, 0x0, 0x1,
-    0xf0, 0xb, 0xd0, 0xb, 0xf0, 0x0, 0x1f, 0x40,
-    0xb, 0xd0, 0x7, 0xf4, 0x1, 0xf8, 0x0, 0xb,
-    0xd0, 0x3, 0xf0, 0x1f, 0x80, 0x0, 0xb, 0xd0,
-    0x3, 0xc2, 0xf8, 0x0, 0x0, 0xb, 0xd0, 0x1,
-    0xb, 0x8e, 0x0, 0xb, 0x8b, 0x0, 0x0, 0x4,
-    0x3c, 0x0, 0x3d, 0x0, 0x0, 0x0, 0x0, 0xb8,
-    0x1, 0xf0, 0x0, 0x1, 0x0, 0x0, 0xf0, 0xf,
-    0x40, 0x0, 0xf, 0x0, 0x2, 0xf0, 0xbc, 0x0,
-    0x0, 0x7c, 0x0, 0x3, 0xe7, 0xd0, 0x0, 0x2,
-    0xe0, 0x0, 0x7, 0xfe, 0x0, 0x0, 0xf, 0x40,
-    0x0, 0xb, 0xf0, 0x0, 0x0, 0x7c, 0x0, 0x0,
-    0x7f, 0xf0, 0x0, 0x2, 0xe0, 0x0, 0xb, 0xe7,
-    0xf4, 0x0, 0xf, 0x40, 0x1, 0xfe, 0x3, 0xfd,
-    0x0, 0xbc, 0x0, 0x7f, 0xd0, 0x2, 0xff, 0x43,
-    0xd0, 0x1f, 0xf8, 0x0, 0x0, 0xbf, 0x8f, 0x0,
-    0x3e, 0x0, 0x0, 0x0, 0x2c, 0x0, 0x0, 0x40,
-    0x0, 0x0, 0x0, 0x0,
-
     /* U+6D2A "洪" */
     0x0, 0x0, 0x0, 0x40, 0x0, 0x40, 0x0, 0x0,
     0x0, 0x3, 0xc0, 0x3, 0xc0, 0x0, 0xb4, 0x0,
@@ -74010,33 +78455,30 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x3c, 0x0, 0x2, 0xd0, 0x0, 0x0, 0x3, 0xc0,
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
 
-    /* U+6D34 "洴" */
-    0x0, 0x0, 0x0, 0x40, 0x0, 0x4, 0x0, 0x0,
-    0x0, 0x1, 0xf0, 0x0, 0xf, 0x40, 0xf, 0x80,
-    0x0, 0xf8, 0x0, 0x1f, 0x0, 0xb, 0xf0, 0x0,
-    0x7c, 0x0, 0x3d, 0x0, 0x1, 0xfd, 0x0, 0x2f,
-    0x0, 0xbc, 0x0, 0x0, 0x3f, 0x0, 0xd, 0x1,
-    0xf0, 0x0, 0x0, 0xd, 0x3f, 0xff, 0xff, 0xff,
-    0xf4, 0x0, 0x0, 0x3f, 0xff, 0xff, 0xff, 0xf4,
-    0x0, 0x0, 0x0, 0xb8, 0x0, 0x7c, 0x0, 0x3d,
-    0x0, 0x0, 0x78, 0x0, 0x3c, 0x0, 0x3f, 0x40,
-    0x0, 0x78, 0x0, 0x3c, 0x0, 0xf, 0xe0, 0x0,
-    0x78, 0x0, 0x3c, 0x0, 0x2, 0xf8, 0x0, 0x78,
-    0x0, 0x3c, 0x0, 0x0, 0xb0, 0x0, 0x78, 0x0,
-    0x3c, 0x0, 0x0, 0x10, 0x0, 0x78, 0x0, 0x3c,
-    0x0, 0x0, 0x0, 0xff, 0xff, 0xff, 0xff, 0xfc,
-    0x0, 0x0, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0,
-    0xe0, 0x0, 0xb8, 0x0, 0x7c, 0x0, 0x0, 0xf4,
-    0x0, 0xb4, 0x0, 0x3c, 0x0, 0x1, 0xf0, 0x0,
-    0xf0, 0x0, 0x3c, 0x0, 0x2, 0xe0, 0x0, 0xf0,
-    0x0, 0x3c, 0x0, 0x3, 0xd0, 0x1, 0xf0, 0x0,
-    0x3c, 0x0, 0x7, 0xc0, 0x3, 0xd0, 0x0, 0x3c,
-    0x0, 0xf, 0x80, 0x7, 0xc0, 0x0, 0x3c, 0x0,
-    0xf, 0x40, 0xf, 0x80, 0x0, 0x3c, 0x0, 0x2f,
-    0x0, 0x3f, 0x0, 0x0, 0x3c, 0x0, 0x3d, 0x0,
-    0xfc, 0x0, 0x0, 0x3c, 0x0, 0x18, 0x0, 0xf0,
-    0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0,
+    /* U+6D33 "洳" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xf0, 0x0, 0x0, 0x0, 0xe, 0x0, 0xf,
+    0x0, 0x0, 0x0, 0x1, 0xfd, 0x0, 0xf0, 0x0,
+    0x55, 0x54, 0x2, 0xf4, 0xf, 0x0, 0xf, 0xff,
+    0xc0, 0xb, 0xc0, 0xf0, 0x0, 0xfa, 0xbc, 0x0,
+    0x23, 0xff, 0xff, 0xf, 0x3, 0xc0, 0x0, 0x3f,
+    0xff, 0xf0, 0xf0, 0x3c, 0x10, 0x0, 0x2d, 0xf,
+    0xf, 0x3, 0xcb, 0xc0, 0x3, 0xc0, 0xf0, 0xf0,
+    0x3c, 0x3f, 0x40, 0x3c, 0xf, 0xf, 0x3, 0xc0,
+    0xbe, 0x3, 0xc0, 0xf0, 0xf0, 0x3c, 0x2, 0xf0,
+    0x78, 0x1e, 0xf, 0x3, 0xc0, 0x9, 0x7, 0x81,
+    0xe0, 0xf0, 0x3c, 0x0, 0x0, 0xb4, 0x2d, 0xf,
+    0x3, 0xc0, 0x0, 0xf, 0x3, 0xc0, 0xf0, 0x3c,
+    0x0, 0x40, 0xf0, 0x3c, 0xf, 0x3, 0xc0, 0xf,
+    0xf, 0x87, 0x80, 0xf0, 0x3c, 0x1, 0xf0, 0x3f,
+    0xf4, 0xf, 0x3, 0xc0, 0x2e, 0x0, 0xff, 0x0,
+    0xf0, 0x3c, 0x3, 0xd0, 0x3, 0xf0, 0xf, 0x3,
+    0xc0, 0x7c, 0x0, 0xbf, 0xc0, 0xf0, 0x3c, 0xb,
+    0x80, 0x1f, 0x7f, 0xf, 0xff, 0xc0, 0xf4, 0x7,
+    0xd0, 0xfc, 0xff, 0xfc, 0x1f, 0x1, 0xf8, 0x7,
+    0x8f, 0x57, 0xc2, 0xe0, 0xbe, 0x0, 0x10, 0xf0,
+    0x3c, 0x3d, 0xf, 0x80, 0x0, 0xf, 0x3, 0xc0,
+    0x40, 0x60, 0x0, 0x0, 0x0, 0x0,
 
     /* U+6D35 "洵" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -74089,31 +78531,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x1, 0x55, 0x55, 0x55, 0x55, 0x54, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0,
 
-    /* U+6D3A "洺" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x74, 0x0, 0x0, 0xb, 0x0, 0x0,
-    0xf, 0x80, 0x0, 0x0, 0xfe, 0x0, 0x2, 0xf0,
-    0x0, 0x0, 0x2, 0xf8, 0x0, 0x7f, 0xff, 0xff,
-    0xc0, 0x7, 0xf0, 0xf, 0xff, 0xff, 0xfc, 0x0,
-    0x1e, 0x3, 0xf0, 0x0, 0xf, 0x80, 0x0, 0x40,
-    0xfd, 0x0, 0x2, 0xf0, 0x10, 0x0, 0x3f, 0xf4,
-    0x0, 0x7c, 0x3, 0xd0, 0xf, 0xc7, 0xe0, 0x1f,
-    0x40, 0x3f, 0x80, 0xf0, 0x1f, 0x87, 0xd0, 0x0,
-    0xbf, 0x0, 0x0, 0x75, 0xf4, 0x0, 0x1, 0xf8,
-    0x0, 0x1, 0xbd, 0x0, 0x0, 0x7, 0x0, 0x0,
-    0x7f, 0x40, 0x0, 0x0, 0x0, 0x0, 0x2f, 0xc0,
-    0x0, 0x0, 0x0, 0x0, 0x2f, 0xf5, 0x55, 0x54,
-    0x0, 0x0, 0x2f, 0xff, 0xff, 0xff, 0xc0, 0xb,
-    0x5f, 0xfe, 0xaa, 0xaa, 0xbc, 0x0, 0xf4, 0xf7,
-    0xc0, 0x0, 0x3, 0xc0, 0xf, 0x0, 0x3c, 0x0,
-    0x0, 0x3c, 0x2, 0xf0, 0x3, 0xc0, 0x0, 0x3,
-    0xc0, 0x3d, 0x0, 0x3c, 0x0, 0x0, 0x3c, 0x7,
-    0xc0, 0x3, 0xc0, 0x0, 0x3, 0xc0, 0xb8, 0x0,
-    0x3c, 0x0, 0x0, 0x3c, 0xf, 0x40, 0x3, 0xff,
-    0xff, 0xff, 0xc2, 0xf0, 0x0, 0x3f, 0xff, 0xff,
-    0xfc, 0x3e, 0x0, 0x3, 0xc0, 0x0, 0x3, 0xc0,
-    0x80, 0x0, 0x3c, 0x0, 0x0, 0x3c,
-
     /* U+6D3B "活" */
     0x5, 0x0, 0x0, 0x0, 0x0, 0x5, 0x80, 0xf,
     0xc0, 0x0, 0x56, 0xaf, 0xff, 0xc0, 0x7, 0xf4,
@@ -74380,33 +78797,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xd0, 0x7f, 0x80, 0x0, 0x0, 0x1f, 0x0, 0x0,
     0x90, 0x0, 0x0, 0x0, 0x8,
 
-    /* U+6D49 "浉" */
-    0x0, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x0, 0x18,
-    0x0, 0x3, 0xc0, 0x0, 0x0, 0x0, 0x3f, 0x0,
-    0x3, 0xc7, 0xff, 0xff, 0xfc, 0xf, 0xd1, 0x43,
-    0xc7, 0xff, 0xff, 0xfc, 0x2, 0xf3, 0xc3, 0xc0,
-    0x2, 0xd0, 0x0, 0x0, 0xa3, 0xc3, 0xc0, 0x2,
-    0xd0, 0x0, 0x0, 0x3, 0xc3, 0xc0, 0x2, 0xd0,
-    0x0, 0x0, 0x3, 0xc3, 0xc0, 0x2, 0xd0, 0x0,
-    0x30, 0x3, 0xc3, 0xc3, 0xff, 0xff, 0xe0, 0xbd,
-    0x3, 0xc3, 0xc3, 0xff, 0xff, 0xe0, 0x2f, 0x83,
-    0xc3, 0xc3, 0xc2, 0xd1, 0xe0, 0x7, 0xd3, 0xc3,
-    0xc3, 0xc2, 0xd1, 0xe0, 0x1, 0xc3, 0xc3, 0xc3,
-    0xc2, 0xd1, 0xe0, 0x0, 0x3, 0xc3, 0xc3, 0xc2,
-    0xd1, 0xe0, 0x0, 0x3, 0xc3, 0xc3, 0xc2, 0xd1,
-    0xe0, 0x0, 0x3, 0xc3, 0xc3, 0xc2, 0xd1, 0xe0,
-    0x2, 0xd3, 0xc3, 0xc3, 0xc2, 0xd1, 0xe0, 0x3,
-    0xd3, 0xc3, 0xc3, 0xc2, 0xd1, 0xe0, 0x3, 0xc3,
-    0xc3, 0xc3, 0xc2, 0xd1, 0xe0, 0x7, 0xc2, 0xc7,
-    0x83, 0xc2, 0xd1, 0xe0, 0xb, 0x40, 0xb, 0x43,
-    0xc2, 0xd6, 0xe0, 0xf, 0x0, 0xf, 0x3, 0xc2,
-    0xdf, 0xd0, 0x1f, 0x0, 0x1f, 0x2, 0xc2, 0xd6,
-    0x40, 0x2d, 0x0, 0x3d, 0x0, 0x2, 0xd0, 0x0,
-    0x3c, 0x0, 0xfc, 0x0, 0x2, 0xd0, 0x0, 0x7c,
-    0x2, 0xf0, 0x0, 0x2, 0xd0, 0x0, 0x0, 0x0,
-    0xd0, 0x0, 0x2, 0xd0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0,
-
     /* U+6D4A "浊" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0xf4, 0x0, 0x0, 0x6, 0x0,
@@ -74538,33 +78928,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x5b, 0xc3, 0xc1, 0xf0, 0x0, 0x0, 0xf,
     0xf8, 0x28, 0x5, 0x0, 0x0, 0x0, 0x69, 0x0,
 
-    /* U+6D50 "浐" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x3, 0xd0, 0x0, 0x0, 0x90, 0x0,
-    0x0, 0xb, 0xc0, 0x0, 0x7, 0xe0, 0x0, 0x0,
-    0x1f, 0x0, 0x0, 0xb, 0xf0, 0x0, 0x0, 0x7e,
-    0x0, 0x0, 0x7, 0xf4, 0xff, 0xff, 0xff, 0xff,
-    0xf0, 0x3, 0xe3, 0xff, 0xff, 0xff, 0xff, 0xc0,
-    0x3, 0x0, 0x2e, 0x0, 0xf, 0x40, 0x0, 0x0,
-    0x0, 0x7c, 0x0, 0x3d, 0x0, 0xe0, 0x0, 0x0,
-    0xf0, 0x0, 0xf0, 0xb, 0xf0, 0x0, 0x3, 0xc0,
-    0x7, 0xc0, 0x7, 0xf0, 0x0, 0xf, 0x40, 0x2e,
-    0x0, 0x7, 0xf0, 0x15, 0x7e, 0x55, 0xf9, 0x54,
-    0x3, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x5,
-    0x3, 0xff, 0xff, 0xff, 0xff, 0x80, 0x0, 0xf,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c, 0x0,
-    0x0, 0x0, 0x0, 0x1, 0xd0, 0xf0, 0x0, 0x0,
-    0x0, 0x0, 0xb, 0x83, 0xc0, 0x0, 0x0, 0x0,
-    0x0, 0x3d, 0xf, 0x0, 0x0, 0x0, 0x0, 0x1,
-    0xf0, 0x3c, 0x0, 0x0, 0x0, 0x0, 0xb, 0x81,
-    0xf0, 0x0, 0x0, 0x0, 0x0, 0x3d, 0x7, 0x80,
-    0x0, 0x0, 0x0, 0x1, 0xf0, 0x2e, 0x0, 0x0,
-    0x0, 0x0, 0xf, 0x80, 0xf0, 0x0, 0x0, 0x0,
-    0x0, 0x7c, 0xb, 0xc0, 0x0, 0x0, 0x0, 0x2,
-    0xf0, 0x7d, 0x0, 0x0, 0x0, 0x0, 0xb, 0x43,
-    0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0,
-    0x0, 0x0, 0x0, 0x0,
-
     /* U+6D51 "浑" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb,
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xd0,
@@ -74671,33 +79034,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0x3f, 0xf0, 0x0, 0x4, 0x0,
     0x0, 0x0, 0x19, 0x40, 0x0,
 
-    /* U+6D55 "浕" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7,
-    0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb, 0xf0,
-    0xf, 0xff, 0xff, 0xff, 0xc0, 0x1, 0xfd, 0xf,
-    0xff, 0xff, 0xff, 0xc0, 0x0, 0x3f, 0xf, 0x0,
-    0x0, 0x7, 0xc0, 0x0, 0xf, 0xf, 0x0, 0x0,
-    0x7, 0xc0, 0x0, 0x0, 0xf, 0x0, 0x0, 0x7,
-    0xc0, 0x24, 0x0, 0xf, 0x0, 0x0, 0x7, 0xc0,
-    0x7e, 0x0, 0xf, 0x55, 0x55, 0x5b, 0xc0, 0x2f,
-    0xc0, 0xf, 0xff, 0xff, 0xff, 0xc0, 0x7, 0xf0,
-    0xf, 0xff, 0xff, 0xff, 0x80, 0x1, 0xf4, 0xf,
-    0x0, 0xf, 0x0, 0x0, 0x0, 0x70, 0xf, 0x0,
-    0xb, 0x80, 0x0, 0x0, 0x0, 0x1f, 0x0, 0x3,
-    0xd0, 0x0, 0x0, 0x0, 0x1e, 0x0, 0x1, 0xf0,
-    0x0, 0x0, 0x50, 0x3d, 0xd, 0x0, 0xbc, 0x0,
-    0x0, 0xf8, 0x3c, 0x2f, 0xd0, 0x3f, 0x0, 0x0,
-    0xf4, 0xb8, 0x7, 0xfd, 0xf, 0xd0, 0x1, 0xf1,
-    0xf0, 0x0, 0x7f, 0x83, 0xf8, 0x2, 0xe3, 0xe0,
-    0x0, 0x7, 0x40, 0xbe, 0x3, 0xd2, 0xc0, 0x0,
-    0x0, 0x0, 0x1c, 0x7, 0xc0, 0x0, 0xf8, 0x0,
-    0x0, 0x0, 0xf, 0x80, 0x1, 0xff, 0x80, 0x0,
-    0x0, 0xf, 0x40, 0x0, 0x1f, 0xf8, 0x0, 0x0,
-    0x2f, 0x0, 0x0, 0x0, 0xbf, 0x80, 0x0, 0x3e,
-    0x0, 0x0, 0x0, 0xb, 0xf0, 0x0, 0x8, 0x0,
-    0x0, 0x0, 0x0, 0x90, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0,
-
     /* U+6D59 "浙" */
     0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0xf, 0x0, 0x0, 0x0, 0x10, 0xe, 0x0,
@@ -74860,32 +79196,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+6D65 "浥" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb,
-    0x40, 0x1f, 0xff, 0xff, 0xff, 0x0, 0xf, 0xe0,
-    0x1f, 0xff, 0xff, 0xff, 0x0, 0x2, 0xfc, 0x1e,
-    0x0, 0x0, 0xf, 0x0, 0x0, 0x7f, 0x1e, 0x0,
-    0x0, 0xf, 0x0, 0x0, 0x1e, 0x1e, 0x0, 0x0,
-    0xf, 0x0, 0x0, 0x4, 0x1f, 0xff, 0xff, 0xff,
-    0x0, 0x0, 0x0, 0x1f, 0xff, 0xff, 0xff, 0x0,
-    0x3c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f,
-    0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f, 0xd0,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xf8, 0x3f,
-    0xff, 0xff, 0xff, 0xc0, 0x0, 0xb8, 0x3f, 0xff,
-    0xff, 0xff, 0xc0, 0x0, 0x20, 0x3c, 0x0, 0xf0,
-    0x3, 0xc0, 0x0, 0x0, 0x3c, 0x0, 0xf0, 0x3,
-    0xc0, 0x0, 0x0, 0x3c, 0x0, 0xf0, 0x3, 0xc0,
-    0x0, 0x60, 0x3c, 0x0, 0xf0, 0x3, 0xc0, 0x0,
-    0xf8, 0x3f, 0xff, 0xff, 0xff, 0xc0, 0x0, 0xf0,
-    0x3f, 0xff, 0xff, 0xff, 0xc0, 0x1, 0xf0, 0x3c,
-    0x0, 0x0, 0x0, 0x0, 0x3, 0xe0, 0x3c, 0x0,
-    0x0, 0x0, 0x24, 0x3, 0xc0, 0x3c, 0x0, 0x0,
-    0x0, 0x3c, 0xb, 0xc0, 0x3c, 0x0, 0x0, 0x0,
-    0x7c, 0xf, 0x40, 0x3e, 0x0, 0x0, 0x1, 0xf8,
-    0x1f, 0x0, 0x2f, 0xff, 0xff, 0xff, 0xf4, 0x3e,
-    0x0, 0xb, 0xff, 0xff, 0xff, 0xd0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x0,
-
     /* U+6D66 "浦" */
     0x0, 0x0, 0x0, 0x0, 0x50, 0x10, 0x0, 0x0,
     0x0, 0x0, 0x7, 0xc1, 0xe0, 0x0, 0x70, 0x0,
@@ -75386,33 +79696,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xf0, 0x24, 0x0, 0xf, 0x0, 0x0, 0x1, 0x40,
     0x0, 0x0, 0x3c, 0x0, 0x0,
 
-    /* U+6D99 "涙" */
-    0x0, 0x0, 0x0, 0x1, 0x90, 0x0, 0x0, 0x10,
-    0x0, 0x0, 0xb, 0x80, 0x0, 0x2, 0xf0, 0x0,
-    0x0, 0x1f, 0x0, 0x0, 0x7, 0xf4, 0xb, 0xff,
-    0xff, 0xff, 0xf0, 0x3, 0xf8, 0x3f, 0xff, 0xff,
-    0xff, 0xc0, 0x2, 0xf0, 0xf5, 0x55, 0x55, 0x5f,
-    0x0, 0x2, 0x43, 0xc0, 0x0, 0x0, 0x3c, 0x0,
-    0x0, 0xf, 0x0, 0x0, 0x0, 0xf0, 0x10, 0x0,
-    0x3c, 0x0, 0x0, 0x3, 0xc1, 0xf0, 0x0, 0xff,
-    0xff, 0xff, 0xff, 0xb, 0xf4, 0x3, 0xff, 0xff,
-    0xff, 0xfc, 0x7, 0xf4, 0xf, 0x40, 0x0, 0x0,
-    0x0, 0x3, 0xf0, 0x3c, 0x0, 0x3c, 0x0, 0x0,
-    0x3, 0xc0, 0xf0, 0x0, 0xf0, 0x0, 0x0, 0x0,
-    0x3, 0xc0, 0x3, 0xc0, 0x0, 0x0, 0x0, 0xf,
-    0x0, 0xf, 0x0, 0x0, 0x0, 0x0, 0x3c, 0xff,
-    0xff, 0xff, 0xe0, 0x3, 0xc0, 0xf3, 0xff, 0xff,
-    0xff, 0x80, 0x1f, 0x3, 0xc0, 0x3, 0xd0, 0x0,
-    0x0, 0xb8, 0x1f, 0x0, 0x1f, 0x80, 0x0, 0x3,
-    0xd0, 0x78, 0x0, 0xff, 0x0, 0x0, 0x1f, 0x3,
-    0xd0, 0x7, 0xee, 0x0, 0x0, 0xb8, 0xf, 0x0,
-    0x3d, 0x3e, 0x0, 0x3, 0xd0, 0xb8, 0x3, 0xe0,
-    0x3e, 0x0, 0x1f, 0x3, 0xc0, 0xbf, 0x0, 0x7f,
-    0x0, 0xf8, 0x3e, 0x1f, 0xf0, 0x0, 0x7f, 0x83,
-    0xd1, 0xf0, 0xfe, 0x0, 0x0, 0x3f, 0x41, 0x1,
-    0x41, 0xc0, 0x0, 0x0, 0x18, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0,
-
     /* U+6D9B "涛" */
     0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x7, 0x0,
@@ -75570,33 +79853,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xfd, 0xa, 0x0, 0x3c, 0x0, 0x0, 0xfe, 0x40,
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
 
-    /* U+6DA2 "涢" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb,
-    0x40, 0x1f, 0xff, 0xff, 0xff, 0xc0, 0xf, 0xe0,
-    0x1f, 0xff, 0xff, 0xff, 0xc0, 0x2, 0xfc, 0x1e,
-    0x0, 0x0, 0x7, 0xc0, 0x0, 0x7f, 0x1e, 0x0,
-    0x0, 0x3, 0xc0, 0x0, 0xd, 0x1e, 0x0, 0x0,
-    0x3, 0xc0, 0x0, 0x0, 0x1f, 0xaa, 0xaa, 0xaf,
-    0xc0, 0x0, 0x0, 0x1f, 0xff, 0xff, 0xff, 0xc0,
-    0x3c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f,
-    0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xe0,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0xf8, 0x3f,
-    0xff, 0xff, 0xff, 0xd0, 0x0, 0xb4, 0x3f, 0xff,
-    0xff, 0xff, 0xd0, 0x0, 0x10, 0x3c, 0x0, 0x0,
-    0x2, 0xd0, 0x0, 0x0, 0x3c, 0x0, 0xa0, 0x2,
-    0xd0, 0x0, 0x0, 0x3c, 0x0, 0xf0, 0x2, 0xd0,
-    0x0, 0xb8, 0x3c, 0x0, 0xf0, 0x2, 0xd0, 0x0,
-    0xf4, 0x3c, 0x0, 0xf0, 0x2, 0xd0, 0x0, 0xf0,
-    0x3c, 0x1, 0xf0, 0x2, 0xd0, 0x2, 0xf0, 0x3c,
-    0x2, 0xe0, 0x2, 0xd0, 0x3, 0xe0, 0x3c, 0x3,
-    0xda, 0x1, 0xd0, 0x3, 0xc0, 0x0, 0xf, 0xcf,
-    0xe0, 0x0, 0xb, 0xc0, 0x0, 0x3f, 0x7, 0xfd,
-    0x0, 0xf, 0x80, 0x6, 0xfc, 0x0, 0x7f, 0xd0,
-    0x1f, 0x1, 0xbf, 0xe0, 0x0, 0x7, 0xf8, 0x3e,
-    0x3, 0xfe, 0x0, 0x0, 0x0, 0xbc, 0x4, 0x2,
-    0x90, 0x0, 0x0, 0x0, 0x18, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0,
-
     /* U+6DA3 "涣" */
     0x0, 0x0, 0x0, 0xe, 0x0, 0x0, 0x0, 0x2,
     0x0, 0x0, 0x2f, 0x0, 0x0, 0x0, 0xf, 0xc0,
@@ -75702,6 +79958,58 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xfc, 0x18, 0x0, 0xf4, 0x0, 0x2, 0xfe, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+6DA8 "涨" */
+    0x0, 0x0, 0x0, 0x0, 0xe0, 0x0, 0x0, 0x8,
+    0x0, 0x55, 0x40, 0xf0, 0x0, 0x0, 0x1f, 0x43,
+    0xff, 0xd0, 0xf0, 0x0, 0xe0, 0xb, 0xe2, 0xff,
+    0xd0, 0xf0, 0x3, 0xe0, 0x1, 0xf4, 0x1, 0xd0,
+    0xf0, 0xf, 0xc0, 0x0, 0x30, 0x1, 0xd0, 0xf0,
+    0x2f, 0x0, 0x0, 0x0, 0x1, 0xd0, 0xf0, 0xfc,
+    0x0, 0x10, 0x0, 0x1, 0xd0, 0xf3, 0xf0, 0x0,
+    0x78, 0x1, 0xff, 0xd0, 0xf3, 0xc0, 0x0, 0x7f,
+    0x1, 0xff, 0xd0, 0xf0, 0x0, 0x0, 0xf, 0xd2,
+    0xd0, 0x0, 0xf0, 0x0, 0x0, 0x2, 0xf2, 0xd0,
+    0x1f, 0xff, 0xff, 0xf8, 0x0, 0x82, 0xd0, 0x1f,
+    0xff, 0xff, 0xfc, 0x0, 0x3, 0xc0, 0x1, 0xf0,
+    0xf0, 0x0, 0x0, 0x3, 0xff, 0xc0, 0xf0, 0xb0,
+    0x0, 0x0, 0x93, 0xff, 0xc0, 0xf0, 0xb4, 0x0,
+    0x1, 0xe0, 0x3, 0xc0, 0xf0, 0x78, 0x0, 0x2,
+    0xd0, 0x3, 0xc0, 0xf0, 0x3c, 0x0, 0x3, 0xc0,
+    0x3, 0xc0, 0xf0, 0x2e, 0x0, 0x7, 0xc0, 0x3,
+    0xc0, 0xf0, 0xf, 0x0, 0xb, 0x80, 0x3, 0xc0,
+    0xf0, 0xf, 0x80, 0xf, 0x40, 0x3, 0xc0, 0xf0,
+    0x13, 0xd0, 0x1f, 0x0, 0x3, 0xc0, 0xf1, 0xe2,
+    0xf0, 0x2e, 0x0, 0xb, 0xc0, 0xff, 0xe0, 0xfc,
+    0x3d, 0x2, 0xff, 0x43, 0xff, 0x40, 0x3d, 0x7c,
+    0x1, 0xfe, 0x2, 0xf4, 0x0, 0x4, 0x0, 0x0,
+    0x0, 0x0, 0x40, 0x0, 0x0,
+
+    /* U+6DA9 "涩" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7,
+    0x40, 0x2f, 0xff, 0xff, 0xff, 0xd0, 0xb, 0xe0,
+    0x3f, 0xff, 0xff, 0xff, 0xd0, 0x1, 0xfc, 0x0,
+    0x1, 0xf0, 0x3, 0xd0, 0x0, 0x7f, 0x1, 0x1,
+    0xe0, 0x3, 0xd0, 0x0, 0x1e, 0x7, 0x82, 0xe0,
+    0x3, 0xc0, 0x0, 0x4, 0xf, 0x42, 0xd0, 0x3,
+    0xc0, 0x10, 0x0, 0x2f, 0x3, 0xc0, 0x3, 0xc0,
+    0x7c, 0x0, 0xbc, 0x7, 0xc0, 0x7, 0xc0, 0x7f,
+    0x40, 0xf4, 0xf, 0x40, 0xb, 0xc0, 0xf, 0xe0,
+    0x10, 0x3f, 0x0, 0x1f, 0x80, 0x3, 0xf4, 0x0,
+    0xfc, 0xb, 0xff, 0x0, 0x0, 0xf0, 0xb, 0xf4,
+    0x7, 0xf8, 0x0, 0x0, 0x0, 0x7f, 0xc0, 0x14,
+    0x0, 0x0, 0x0, 0x1, 0xfd, 0x0, 0x3d, 0x0,
+    0x0, 0x0, 0x0, 0xe0, 0x0, 0x3d, 0x0, 0x0,
+    0x0, 0xf4, 0x7, 0x80, 0x3d, 0x0, 0x0, 0x0,
+    0xf0, 0x7, 0x80, 0x3f, 0xff, 0xf0, 0x1, 0xf0,
+    0x7, 0x80, 0x3f, 0xff, 0xe0, 0x2, 0xe0, 0x7,
+    0x80, 0x3d, 0x0, 0x0, 0x3, 0xd0, 0x7, 0x80,
+    0x3d, 0x0, 0x0, 0x3, 0xc0, 0x7, 0x80, 0x3d,
+    0x0, 0x0, 0xb, 0x80, 0x7, 0x80, 0x3d, 0x0,
+    0x0, 0xf, 0x40, 0xb, 0x80, 0x3d, 0x0, 0x0,
+    0x1f, 0xf, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x2e,
+    0xf, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x5, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+6DAA "涪" */
     0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x2, 0xe0, 0x0, 0x0, 0x7, 0x40,
@@ -76098,32 +80406,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xd0, 0xf, 0x0, 0x0, 0x3f, 0xd0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0,
 
-    /* U+6DCF "淏" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3d,
-    0x0, 0xff, 0xff, 0xff, 0xfe, 0x0, 0xfe, 0x3,
-    0xff, 0xff, 0xff, 0xf8, 0x0, 0xbf, 0xf, 0x0,
-    0x0, 0x2, 0xe0, 0x0, 0x7d, 0x3c, 0x0, 0x0,
-    0xb, 0x80, 0x0, 0x70, 0xff, 0xff, 0xff, 0xfe,
-    0x0, 0x0, 0x3, 0xff, 0xff, 0xff, 0xf8, 0x4,
-    0x0, 0xf, 0x0, 0x0, 0x2, 0xe0, 0x7d, 0x0,
-    0x3c, 0x0, 0x0, 0xb, 0x80, 0xfd, 0x0, 0xfa,
-    0xaa, 0xaa, 0xbe, 0x0, 0xbe, 0x3, 0xff, 0xff,
-    0xff, 0xf8, 0x0, 0xbd, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0xa0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x2, 0xaa, 0xaa, 0xaa, 0xaa, 0x0, 0x0,
-    0xf, 0xff, 0xff, 0xff, 0xfd, 0x0, 0x0, 0x0,
-    0x0, 0x7c, 0x0, 0x0, 0x0, 0xe0, 0x0, 0x1,
-    0xe0, 0x0, 0x0, 0x7, 0xc0, 0x0, 0x7, 0x80,
-    0x0, 0x0, 0x3e, 0x3f, 0xff, 0xff, 0xff, 0xff,
-    0x0, 0xf4, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x7,
-    0xc0, 0x0, 0x3, 0xfc, 0x0, 0x0, 0x3e, 0x0,
-    0x0, 0x3e, 0xfc, 0x0, 0x0, 0xf4, 0x0, 0x7,
-    0xf0, 0xfc, 0x0, 0xb, 0xc0, 0x1, 0xbf, 0x0,
-    0xfe, 0x0, 0x3e, 0x1, 0xbf, 0xe0, 0x0, 0xbf,
-    0xe5, 0xf0, 0x1f, 0xf8, 0x0, 0x0, 0x2f, 0xe1,
-    0x80, 0x39, 0x0, 0x0, 0x0, 0x6, 0x40, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x0,
-
     /* U+6DD1 "淑" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0xb, 0x40, 0x0, 0x0, 0x0, 0xf, 0x0,
@@ -76474,34 +80756,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xf0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x40,
     0x3, 0xc0, 0x0, 0x0, 0x0,
 
-    /* U+6DEF "淯" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0xf4, 0x0, 0x0, 0x3, 0x40,
-    0x0, 0x0, 0xbc, 0x0, 0x0, 0xb, 0xf0, 0x0,
-    0x0, 0x7c, 0x0, 0x0, 0x2, 0xfc, 0x3f, 0xff,
-    0xff, 0xff, 0xfe, 0x0, 0x3f, 0x3f, 0xff, 0xff,
-    0xff, 0xfe, 0x0, 0xe, 0x0, 0x3f, 0x0, 0x2e,
-    0x0, 0x0, 0x0, 0x0, 0xfc, 0x0, 0xf, 0x80,
-    0x4, 0x0, 0x3, 0xe0, 0x0, 0x7, 0xe0, 0x3e,
-    0x0, 0x2f, 0xff, 0xff, 0xff, 0xf4, 0x2f, 0xc0,
-    0x2f, 0xff, 0xfe, 0xaa, 0xbc, 0x7, 0xf0, 0x5,
-    0x0, 0x0, 0x0, 0x2c, 0x1, 0xfc, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x34, 0xf, 0xff, 0xff,
-    0xff, 0xe0, 0x0, 0x0, 0xf, 0xff, 0xff, 0xff,
-    0xe0, 0x0, 0x0, 0xf, 0x0, 0x0, 0x1, 0xe0,
-    0x0, 0x0, 0xf, 0x0, 0x0, 0x1, 0xe0, 0x0,
-    0x3d, 0xf, 0xff, 0xff, 0xff, 0xe0, 0x0, 0x3d,
-    0xf, 0xff, 0xff, 0xff, 0xe0, 0x0, 0x7c, 0xf,
-    0x0, 0x0, 0x1, 0xe0, 0x0, 0xb8, 0xf, 0x0,
-    0x0, 0x1, 0xe0, 0x0, 0xf4, 0xf, 0xff, 0xff,
-    0xff, 0xe0, 0x1, 0xf0, 0xf, 0xff, 0xff, 0xff,
-    0xe0, 0x3, 0xe0, 0xf, 0x0, 0x0, 0x1, 0xe0,
-    0x3, 0xd0, 0xf, 0x0, 0x0, 0x1, 0xe0, 0xb,
-    0xc0, 0xf, 0x0, 0x0, 0x7, 0xe0, 0xf, 0x80,
-    0xf, 0x0, 0x0, 0x7f, 0xd0, 0xb, 0x0, 0xf,
-    0x0, 0x0, 0x3e, 0x40, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0,
-
     /* U+6DF1 "深" */
     0x5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f,
     0x80, 0xbf, 0xff, 0xff, 0xff, 0xe0, 0xb, 0xf0,
@@ -76634,6 +80888,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0xbf, 0x40, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+6DFC "淼" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x3d, 0x0, 0xf, 0x0, 0x3, 0xff, 0xff,
+    0xf, 0xc0, 0x2f, 0x80, 0x0, 0xbf, 0xff, 0xc3,
+    0xfc, 0x7f, 0x40, 0x0, 0x0, 0x3, 0xe0, 0xfb,
+    0xfe, 0x0, 0x0, 0x0, 0x2, 0xf0, 0x3c, 0xbd,
+    0x0, 0x0, 0x0, 0x3, 0xf0, 0xf, 0xb, 0xe0,
+    0x0, 0x0, 0x7, 0xf0, 0x3, 0xc0, 0x7f, 0x80,
+    0x0, 0xb, 0xf0, 0x1, 0xf0, 0x2, 0xfe, 0x40,
+    0x2f, 0xd0, 0xf, 0xfc, 0x0, 0xb, 0xf4, 0xb,
+    0x80, 0x92, 0xf8, 0x2, 0x80, 0x2c, 0x0, 0x0,
+    0x3c, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0xf,
+    0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x3, 0xc0,
+    0x0, 0xf, 0x0, 0xd0, 0xf, 0xfc, 0xf1, 0xdf,
+    0xf7, 0xe0, 0xf8, 0x2, 0xff, 0x3d, 0xf3, 0xfd,
+    0xfd, 0xf8, 0x0, 0x3, 0x8f, 0xf0, 0xb, 0x3f,
+    0xf8, 0x0, 0x1, 0xd3, 0xf8, 0x3, 0xcf, 0xb8,
+    0x0, 0x0, 0xf0, 0xfb, 0x41, 0xe3, 0xcf, 0x0,
+    0x0, 0x78, 0x3c, 0xf4, 0xf0, 0xf1, 0xf0, 0x0,
+    0x3c, 0xf, 0xe, 0x78, 0x3c, 0x2f, 0x0, 0x3d,
+    0x3, 0xc1, 0x3c, 0xf, 0x3, 0xf0, 0x2e, 0x0,
+    0xf0, 0x3d, 0x3, 0xc0, 0x3f, 0xf, 0x1, 0xbc,
+    0x2e, 0x1, 0xf0, 0x3, 0xd0, 0x3, 0xfe, 0x7,
+    0x3, 0xfc, 0x0, 0x10, 0x0, 0xb9, 0x0, 0x0,
+    0xb8, 0x0, 0x0,
+
     /* U+6E05 "清" */
     0x0, 0x0, 0x0, 0x0, 0xe0, 0x0, 0x0, 0x1,
     0x0, 0x0, 0x0, 0xf0, 0x0, 0x0, 0xf, 0x80,
@@ -76849,6 +81131,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+6E16 "渖" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xb, 0x80, 0x0, 0x0, 0x90, 0x0,
+    0x0, 0x1f, 0x0, 0x0, 0x7, 0xe0, 0x0, 0x0,
+    0x3d, 0x0, 0x0, 0x7, 0xf0, 0xff, 0xff, 0xff,
+    0xff, 0xf4, 0x3, 0xf3, 0xff, 0xff, 0xff, 0xff,
+    0xd0, 0x3, 0x4f, 0x0, 0x5, 0x0, 0xf, 0x40,
+    0x0, 0x3c, 0x0, 0x3c, 0x0, 0x3d, 0x0, 0x0,
+    0xf0, 0x0, 0xf0, 0x0, 0xf4, 0xe0, 0x1, 0x40,
+    0x3, 0xc0, 0x1, 0x43, 0xf0, 0x3, 0xff, 0xff,
+    0xff, 0xfc, 0x3, 0xf4, 0xf, 0xff, 0xff, 0xff,
+    0xf0, 0x3, 0xf0, 0x3d, 0x0, 0xf0, 0x3, 0xc0,
+    0x2, 0xc0, 0xf4, 0x3, 0xc0, 0xf, 0x0, 0x0,
+    0x3, 0xd0, 0xf, 0x0, 0x3c, 0x0, 0x0, 0xf,
+    0xea, 0xbe, 0xaa, 0xf0, 0x0, 0x40, 0x3f, 0xff,
+    0xff, 0xff, 0xc0, 0x3, 0xc0, 0xf4, 0x3, 0xc0,
+    0x1f, 0x0, 0x1f, 0x3, 0xd0, 0xf, 0x0, 0x3c,
+    0x0, 0xb8, 0xf, 0x40, 0x3c, 0x0, 0xf0, 0x3,
+    0xd0, 0x3d, 0x0, 0xf0, 0x3, 0xc0, 0xf, 0x0,
+    0xff, 0xff, 0xff, 0xff, 0x0, 0x7c, 0x2, 0xff,
+    0xff, 0xff, 0xfc, 0x3, 0xd0, 0x0, 0x0, 0x3c,
+    0x0, 0x0, 0xf, 0x0, 0x0, 0x0, 0xf0, 0x0,
+    0x0, 0x7c, 0x0, 0x0, 0x3, 0xc0, 0x0, 0x3,
+    0xd0, 0x0, 0x0, 0xf, 0x0, 0x0, 0x2, 0x0,
+    0x0, 0x0, 0x3c, 0x0, 0x0,
+
     /* U+6E17 "渗" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0xf, 0x40, 0x0, 0x0, 0xa, 0x0,
@@ -77278,34 +81586,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+6E3C "渼" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0xe0, 0x0, 0x74, 0x0, 0x4, 0x0,
-    0x0, 0xf4, 0x0, 0xf4, 0x0, 0xf, 0x40, 0x0,
-    0x7c, 0x2, 0xf0, 0x0, 0xf, 0xe0, 0x0, 0x38,
-    0x7, 0xd0, 0x0, 0x1, 0xfc, 0x7f, 0xff, 0xff,
-    0xff, 0xf0, 0x0, 0x7d, 0x2a, 0xaa, 0xfa, 0xaa,
-    0xa0, 0x0, 0x8, 0x0, 0x0, 0xf0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x34,
-    0x0, 0x2f, 0xff, 0xff, 0xff, 0xd0, 0xbe, 0x0,
-    0x3f, 0xff, 0xff, 0xff, 0xd0, 0x2f, 0xc0, 0x0,
-    0x0, 0xf0, 0x0, 0x0, 0x7, 0xf0, 0x0, 0x0,
-    0xf0, 0x0, 0x0, 0x1, 0xf0, 0x0, 0x0, 0xf0,
-    0x0, 0x0, 0x0, 0x60, 0xff, 0xff, 0xff, 0xff,
-    0xf8, 0x0, 0x0, 0xff, 0xff, 0xff, 0xff, 0xf8,
-    0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0,
-    0x50, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0xf8,
-    0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0xf4, 0xbf,
-    0xff, 0xff, 0xff, 0xf0, 0x1, 0xf0, 0xbf, 0xff,
-    0xff, 0xff, 0xf0, 0x3, 0xe0, 0x0, 0x3, 0xfc,
-    0x0, 0x0, 0x3, 0xd0, 0x0, 0xf, 0xbe, 0x0,
-    0x0, 0x7, 0xc0, 0x0, 0x3f, 0xf, 0xc0, 0x0,
-    0xf, 0x80, 0x2, 0xf8, 0x3, 0xf8, 0x0, 0x1f,
-    0x0, 0x7f, 0xd0, 0x0, 0xbf, 0x90, 0x2f, 0x3,
-    0xfe, 0x0, 0x0, 0xb, 0xfc, 0x2d, 0x2, 0xd0,
-    0x0, 0x0, 0x0, 0xb4, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0,
-
     /* U+6E43 "湃" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6,
     0x0, 0x0, 0x1d, 0x0, 0x0, 0x0, 0xf, 0xc0,
@@ -77358,32 +81638,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x3c, 0x28, 0x0, 0x0, 0xf0, 0x0, 0x3, 0xc0,
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
 
-    /* U+6E49 "湉" */
-    0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x38,
-    0x0, 0x3c, 0x0, 0x0, 0x16, 0x80, 0xfd, 0x0,
-    0xf0, 0xbf, 0xff, 0xff, 0x0, 0xbe, 0x3, 0xc2,
-    0xff, 0xff, 0xe4, 0x0, 0x78, 0x1f, 0x5, 0x52,
-    0xd0, 0x0, 0x0, 0x4b, 0x7f, 0x0, 0xb, 0x40,
-    0x0, 0x0, 0x3d, 0xff, 0x0, 0x2d, 0x0, 0x4,
-    0x0, 0xf7, 0xfd, 0x0, 0xb4, 0x0, 0x3d, 0x3,
-    0xcf, 0x38, 0x2, 0xd0, 0x0, 0xbe, 0xf, 0x3c,
-    0x7f, 0xff, 0xff, 0xf0, 0x7f, 0x78, 0xf0, 0xff,
-    0xff, 0xff, 0xc0, 0x7d, 0xe3, 0xc0, 0x0, 0xb4,
-    0x0, 0x0, 0x67, 0x4f, 0x0, 0x2, 0xd0, 0x0,
-    0x0, 0x2d, 0x3c, 0x0, 0xb, 0x40, 0x0, 0x0,
-    0xf0, 0xf0, 0x0, 0x2d, 0x0, 0x0, 0x0, 0x43,
-    0xc0, 0xff, 0xff, 0xf8, 0x0, 0xf4, 0xf, 0x3,
-    0xff, 0xff, 0xe0, 0x3, 0xd0, 0x3c, 0xf, 0x0,
-    0x7, 0x80, 0x1f, 0x0, 0xf0, 0x3c, 0x0, 0x1e,
-    0x0, 0xb8, 0x3, 0xc0, 0xf0, 0x0, 0x78, 0x3,
-    0xd0, 0xf, 0x3, 0xc0, 0x1, 0xe0, 0x1f, 0x0,
-    0x3c, 0xf, 0x0, 0x7, 0x80, 0xf8, 0x0, 0xf0,
-    0x3c, 0x0, 0x1e, 0x3, 0xd0, 0x3, 0xc0, 0xff,
-    0xff, 0xf8, 0x2f, 0x0, 0xf, 0x3, 0xff, 0xff,
-    0xe0, 0xf8, 0x0, 0x3c, 0xf, 0x55, 0x5b, 0x81,
-    0x80, 0x0, 0xf0, 0x3c, 0x0, 0x1e, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x0,
-
     /* U+6E4D "湍" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0xb, 0x40, 0x0, 0x0, 0xe0, 0x1,
@@ -77435,6 +81689,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xc0, 0xf4, 0x3, 0xc0, 0x0, 0x0, 0xf, 0x1,
     0x80, 0xf, 0x0, 0x0, 0x0, 0x3c, 0x0,
 
+    /* U+6E53 "湓" */
+    0x0, 0x0, 0x0, 0x10, 0x6, 0x0, 0x0, 0xb,
+    0x40, 0x0, 0x3d, 0xf, 0x40, 0x0, 0xf, 0xe0,
+    0x0, 0xb8, 0x3, 0xc0, 0x0, 0x2, 0xfc, 0x1,
+    0xf0, 0x2, 0xf0, 0x0, 0x0, 0x7e, 0x7, 0xd0,
+    0x0, 0xf8, 0x0, 0x0, 0xc, 0x1f, 0x40, 0x0,
+    0x3e, 0x0, 0x0, 0x0, 0x7e, 0x0, 0x0, 0xf,
+    0xc0, 0x10, 0x2, 0xfb, 0xff, 0xff, 0xff, 0xf8,
+    0xbc, 0x7, 0xd3, 0xff, 0xff, 0xfc, 0xbd, 0x7f,
+    0x41, 0x0, 0x3c, 0x0, 0x3c, 0x8, 0xf, 0xe0,
+    0x0, 0x78, 0x0, 0x3c, 0x0, 0x2, 0xf4, 0x0,
+    0xf4, 0x0, 0x78, 0x0, 0x0, 0xb0, 0x2, 0xe0,
+    0x0, 0xf8, 0x0, 0x0, 0x0, 0x1f, 0xc0, 0x3f,
+    0xf4, 0x0, 0x0, 0x1, 0xfe, 0x0, 0x2f, 0xd0,
+    0x0, 0x0, 0x42, 0xf4, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xf4, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xf0, 0x3f, 0xff, 0xff, 0xff, 0x40, 0x2, 0xe0,
+    0x3e, 0xbf, 0xaf, 0xaf, 0x40, 0x3, 0xd0, 0x38,
+    0x2c, 0xe, 0xb, 0x40, 0x3, 0xc0, 0x38, 0x2c,
+    0xe, 0xb, 0x40, 0xb, 0x80, 0x38, 0x2c, 0xe,
+    0xb, 0x40, 0xf, 0x40, 0x38, 0x2c, 0xe, 0xb,
+    0x40, 0x1f, 0x0, 0x38, 0x2c, 0xe, 0xb, 0x40,
+    0x3e, 0xf, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x7c,
+    0xf, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x4, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+6E54 "湔" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x1f, 0x0, 0x3, 0xd0, 0x0, 0x80, 0x0,
@@ -77512,31 +81792,31 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xf5, 0x57, 0xd2, 0xd0, 0x0, 0xb4, 0xf, 0x0,
     0x3d, 0x0, 0x0, 0xb, 0x40, 0x0, 0x0, 0x0,
 
-    /* U+6E5C "湜" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe,
-    0x0, 0xf, 0xff, 0xff, 0xff, 0x80, 0x1f, 0xd0,
-    0xf, 0xff, 0xff, 0xff, 0x80, 0x7, 0xf4, 0xf,
-    0x0, 0x0, 0x7, 0x80, 0x0, 0xbd, 0xf, 0x0,
-    0x0, 0x7, 0x80, 0x0, 0x2c, 0xf, 0xea, 0xaa,
-    0xaf, 0x80, 0x0, 0x0, 0xf, 0xff, 0xff, 0xff,
-    0x80, 0x10, 0x0, 0xf, 0x0, 0x0, 0x7, 0x80,
-    0xbc, 0x0, 0xf, 0x0, 0x0, 0x7, 0x80, 0x7f,
-    0x40, 0xf, 0xaa, 0xaa, 0xaf, 0x80, 0xf, 0xe0,
-    0xf, 0xff, 0xff, 0xff, 0x80, 0x2, 0xf0, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x90, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0xff, 0xff, 0xff, 0xff,
-    0xf4, 0x0, 0x0, 0xbf, 0xff, 0xff, 0xff, 0xf4,
-    0x0, 0x90, 0x0, 0x0, 0x78, 0x0, 0x0, 0x0,
-    0xf4, 0xb, 0x40, 0x78, 0x0, 0x0, 0x1, 0xf0,
-    0xf, 0x0, 0x78, 0x0, 0x0, 0x2, 0xe0, 0xf,
-    0x0, 0x7f, 0xff, 0xc0, 0x3, 0xd0, 0x1f, 0x80,
-    0x7f, 0xff, 0xc0, 0x7, 0xc0, 0x3f, 0xd0, 0x78,
-    0x0, 0x0, 0xf, 0x80, 0x7c, 0xf8, 0x78, 0x0,
-    0x0, 0x1f, 0x0, 0xf8, 0x7f, 0xb8, 0x0, 0x0,
-    0x3e, 0x2, 0xf0, 0xf, 0xff, 0xff, 0xfc, 0x3d,
-    0xb, 0xd0, 0x0, 0xaf, 0xff, 0xf8, 0x4, 0xb,
-    0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0,
+    /* U+6E5B "湛" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xf, 0x40, 0x0, 0x3c, 0x0, 0xe, 0x0,
+    0xf, 0x40, 0x0, 0x3c, 0x0, 0x2f, 0x80, 0xf,
+    0x40, 0x0, 0x3c, 0x0, 0xb, 0xf1, 0xff, 0xff,
+    0xff, 0xff, 0xf0, 0x1, 0xfd, 0xff, 0xff, 0xff,
+    0xff, 0xf0, 0x0, 0x78, 0xf, 0x40, 0x0, 0x3c,
+    0x0, 0x0, 0x10, 0xf, 0x40, 0x0, 0x3c, 0x0,
+    0x10, 0x0, 0xf, 0xff, 0xff, 0xfc, 0x0, 0xbc,
+    0x0, 0xf, 0xff, 0xff, 0xfc, 0x0, 0x7f, 0x0,
+    0xf, 0x40, 0x0, 0x3c, 0x0, 0xf, 0xd0, 0xf,
+    0x40, 0x0, 0x3c, 0x0, 0x3, 0xf0, 0xf, 0xff,
+    0xff, 0xfc, 0x0, 0x0, 0xf0, 0xf, 0xff, 0xff,
+    0xfc, 0x0, 0x0, 0x0, 0xf, 0x40, 0x0, 0x3c,
+    0x0, 0x0, 0x0, 0xf, 0x40, 0x0, 0x3c, 0x0,
+    0x0, 0x97, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x1,
+    0xeb, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x2, 0xe0,
+    0x7c, 0x1, 0x0, 0x40, 0x0, 0x3, 0xd0, 0x7c,
+    0x3, 0x83, 0xc0, 0x0, 0x3, 0xc0, 0x7c, 0xf,
+    0x41, 0xf0, 0x0, 0x7, 0xc0, 0x7c, 0x3e, 0x0,
+    0x7c, 0x0, 0xb, 0x80, 0x7c, 0xf8, 0x0, 0x2f,
+    0x0, 0xf, 0x40, 0x7c, 0xe0, 0x0, 0xe, 0x0,
+    0xf, 0x0, 0x7c, 0x0, 0x0, 0x0, 0x0, 0x2e,
+    0x0, 0x7f, 0xff, 0xff, 0xff, 0xf0, 0x3d, 0x0,
+    0x7f, 0xff, 0xff, 0xff, 0xf0, 0x18, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
     /* U+6E5F "湟" */
@@ -77619,33 +81899,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
-    /* U+6E72 "湲" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x7,
-    0x0, 0x0, 0x15, 0xab, 0xff, 0xe0, 0xf, 0xd0,
-    0x7f, 0xff, 0xff, 0xfe, 0x90, 0x2, 0xf8, 0x3f,
-    0xa9, 0xa0, 0x2, 0x0, 0x0, 0x7f, 0xb, 0x0,
-    0xf0, 0xb, 0x40, 0x0, 0x1d, 0x3, 0x80, 0xb4,
-    0xf, 0x0, 0x0, 0x4, 0x3, 0xc0, 0x38, 0x2d,
-    0x0, 0x0, 0x0, 0x1, 0xd0, 0x24, 0x3c, 0x0,
-    0x78, 0x0, 0x3f, 0xff, 0xff, 0xff, 0xf0, 0xbf,
-    0x0, 0x2a, 0xbf, 0xaa, 0xaa, 0xa0, 0x1f, 0xc0,
-    0x0, 0x3c, 0x0, 0x0, 0x0, 0x7, 0xf0, 0x0,
-    0x3c, 0x0, 0x0, 0x0, 0x0, 0xe0, 0xff, 0xff,
-    0xff, 0xff, 0xf8, 0x0, 0x0, 0xff, 0xff, 0xff,
-    0xff, 0xf8, 0x0, 0x0, 0x0, 0xf0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x1, 0xf0, 0x0, 0x0, 0x0,
-    0x0, 0xf4, 0x3, 0xff, 0xff, 0xff, 0x0, 0x1,
-    0xf0, 0x3, 0xff, 0xff, 0xff, 0x0, 0x2, 0xf0,
-    0xb, 0xbd, 0x0, 0x2f, 0x0, 0x3, 0xe0, 0x1f,
-    0xf, 0x0, 0x7c, 0x0, 0x3, 0xc0, 0x3d, 0x7,
-    0xc1, 0xf0, 0x0, 0xb, 0xc0, 0xbc, 0x1, 0xfb,
-    0xc0, 0x0, 0xf, 0x81, 0xf0, 0x0, 0xbf, 0x40,
-    0x0, 0x1f, 0x7, 0xd0, 0xb, 0xff, 0xf4, 0x0,
-    0x2f, 0xf, 0x81, 0xff, 0x81, 0xff, 0xe4, 0x3d,
-    0xf, 0x2f, 0xf8, 0x0, 0x1b, 0xfc, 0x18, 0x0,
-    0xe, 0x40, 0x0, 0x0, 0x64, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0,
-
     /* U+6E7E "湾" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x9, 0x0,
@@ -77674,30 +81927,30 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x3f, 0xe4, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+6E80 "満" */
-    0x0, 0x0, 0x0, 0x74, 0x2, 0xd0, 0x0, 0x34,
-    0x0, 0x1, 0xd0, 0xb, 0x40, 0x2, 0xf8, 0x0,
-    0x7, 0x40, 0x2d, 0x0, 0x2, 0xfc, 0x3f, 0xff,
-    0xff, 0xff, 0xfe, 0x1, 0xfc, 0xff, 0xff, 0xff,
-    0xff, 0xf8, 0x0, 0xe0, 0x1, 0xd0, 0xb, 0x40,
-    0x0, 0x0, 0x0, 0x7, 0x40, 0x2d, 0x0, 0x0,
-    0x0, 0x0, 0x1d, 0x0, 0xb4, 0x0, 0x34, 0x0,
-    0xff, 0xff, 0xff, 0xff, 0xf6, 0xf8, 0x3, 0xff,
-    0xff, 0xff, 0xff, 0xd1, 0xfc, 0x0, 0x0, 0xf,
-    0x0, 0x0, 0x0, 0xfc, 0x0, 0x0, 0x3c, 0x0,
-    0x0, 0x0, 0xf0, 0x0, 0x0, 0xf0, 0x0, 0x0,
-    0x0, 0x41, 0xff, 0xff, 0xff, 0xff, 0x40, 0x0,
-    0x7, 0xff, 0xff, 0xff, 0xfd, 0x0, 0x10, 0x1e,
-    0x0, 0x3c, 0x0, 0x74, 0x1, 0xf0, 0x78, 0x90,
-    0xf0, 0x61, 0xd0, 0xb, 0x81, 0xe3, 0x83, 0xc3,
-    0xc7, 0x40, 0x3e, 0x7, 0x8e, 0xf, 0xf, 0x1d,
-    0x0, 0xf4, 0x1e, 0x38, 0x3c, 0x3c, 0x74, 0x7,
-    0xc0, 0x78, 0xe0, 0xf0, 0xf1, 0xd0, 0x2e, 0x1,
-    0xe3, 0xff, 0xff, 0xc7, 0x40, 0xf4, 0x7, 0x8f,
-    0xff, 0xff, 0x1d, 0x3, 0xc0, 0x1e, 0x0, 0x0,
-    0x0, 0xb4, 0x1f, 0x0, 0x78, 0x0, 0x0, 0x17,
-    0xd0, 0xb8, 0x1, 0xe0, 0x0, 0x0, 0xff, 0x2,
-    0xd0, 0x7, 0x80, 0x0, 0x2, 0xe0, 0x0, 0x0,
+    /* U+6E7F "湿" */
+    0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb,
+    0x80, 0x1f, 0xff, 0xff, 0xff, 0xc0, 0xb, 0xf0,
+    0x1f, 0xff, 0xff, 0xff, 0xc0, 0x1, 0xfd, 0x1e,
+    0x0, 0x0, 0x7, 0xc0, 0x0, 0x3f, 0x1e, 0x0,
+    0x0, 0x3, 0xc0, 0x0, 0xe, 0x1e, 0x0, 0x0,
+    0x3, 0xc0, 0x0, 0x0, 0x1f, 0xff, 0xff, 0xff,
+    0xc0, 0x0, 0x0, 0x1f, 0xff, 0xff, 0xff, 0xc0,
+    0x38, 0x0, 0x1e, 0x0, 0x0, 0x3, 0xc0, 0x7f,
+    0x0, 0x1e, 0x0, 0x0, 0x3, 0xc0, 0x1f, 0xd0,
+    0x1e, 0x55, 0x55, 0x57, 0xc0, 0x3, 0xf4, 0x1f,
+    0xff, 0xff, 0xff, 0xc0, 0x0, 0xf8, 0x1a, 0xaa,
+    0xaa, 0xaa, 0x80, 0x0, 0x30, 0x0, 0x5, 0x1,
+    0x40, 0x0, 0x0, 0x0, 0x0, 0xf, 0x7, 0x80,
+    0x0, 0x0, 0x0, 0xb0, 0xf, 0x7, 0x80, 0xb4,
+    0x0, 0xb4, 0xbc, 0xf, 0x7, 0x80, 0xf0, 0x0,
+    0xf4, 0x3d, 0xf, 0x7, 0x82, 0xe0, 0x0, 0xf0,
+    0x1f, 0xf, 0x7, 0x83, 0xc0, 0x1, 0xf0, 0xf,
+    0x4f, 0x7, 0x8b, 0x80, 0x2, 0xe0, 0x7, 0xcf,
+    0x7, 0x9f, 0x0, 0x3, 0xd0, 0x3, 0x4f, 0x7,
+    0x89, 0x0, 0x7, 0xc0, 0x0, 0xf, 0x7, 0x80,
+    0x0, 0xb, 0x80, 0x0, 0x1f, 0x7, 0x80, 0x0,
+    0xf, 0x43, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x1f,
+    0x3, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x5, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0,
 
     /* U+6E83 "溃" */
@@ -77783,35 +82036,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x1, 0xc0, 0x0, 0x8, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+6E87 "溇" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x40, 0x1f, 0x0, 0x0, 0x0, 0x74,
-    0x0, 0xb8, 0x7, 0xc0, 0x2c, 0x0, 0x3f, 0x80,
-    0xf, 0x41, 0xf0, 0x1f, 0x0, 0x2, 0xfc, 0x1,
-    0xf0, 0x7c, 0x1f, 0x0, 0x0, 0x1f, 0xc0, 0x1e,
-    0x1f, 0xf, 0x40, 0x0, 0x0, 0xd0, 0x2, 0x7,
-    0xc2, 0x40, 0x0, 0x0, 0x1, 0xff, 0xff, 0xff,
-    0xff, 0xf0, 0x14, 0x0, 0x7f, 0xff, 0xff, 0xff,
-    0xfc, 0xf, 0x80, 0x0, 0x0, 0xbf, 0xd0, 0x0,
-    0x2, 0xfc, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0,
-    0x1f, 0xc0, 0x2, 0xf9, 0xf3, 0xf4, 0x0, 0x0,
-    0xf8, 0x7, 0xf8, 0x7c, 0x2f, 0xd0, 0x0, 0xc,
-    0x2f, 0xf4, 0x1f, 0x1, 0xff, 0x80, 0x0, 0xf,
-    0xd0, 0x17, 0x80, 0x7, 0xf0, 0x0, 0x1, 0x40,
-    0x2e, 0x0, 0x0, 0x14, 0x0, 0x0, 0x0, 0xf,
-    0x40, 0x0, 0x0, 0x0, 0xf, 0x3f, 0xff, 0xff,
-    0xff, 0xff, 0x40, 0xb, 0xcf, 0xff, 0xff, 0xff,
-    0xff, 0xd0, 0x3, 0xe0, 0x2, 0xe0, 0x0, 0xf4,
-    0x0, 0x0, 0xf0, 0x1, 0xf0, 0x0, 0xbc, 0x0,
-    0x0, 0xbc, 0x0, 0xff, 0x40, 0x7c, 0x0, 0x0,
-    0x3e, 0x0, 0x6, 0xff, 0xbd, 0x0, 0x0, 0x1f,
-    0x0, 0x0, 0x7, 0xff, 0x40, 0x0, 0xb, 0xc0,
-    0x0, 0x1b, 0xff, 0xfe, 0x0, 0x3, 0xd0, 0x6,
-    0xbf, 0xf4, 0x1f, 0xf8, 0x1, 0xf0, 0x1f, 0xff,
-    0x80, 0x0, 0x6f, 0x40, 0x68, 0x3, 0xe4, 0x0,
-    0x0, 0x0, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0,
-
     /* U+6E89 "溉" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7,
     0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb, 0xe0,
@@ -78025,34 +82249,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x1e, 0x90, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+6EA6 "溦" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x2, 0xc0, 0x0, 0xe0, 0x0, 0xd, 0x0,
-    0x2, 0xc0, 0x0, 0xf0, 0x0, 0x2f, 0x80, 0xd2,
-    0xc3, 0x81, 0xe0, 0x0, 0xb, 0xf1, 0xe2, 0xc3,
-    0xc2, 0xd0, 0x0, 0x1, 0xf9, 0xe2, 0xc3, 0xc3,
-    0xc0, 0x0, 0x0, 0x31, 0xe2, 0xc3, 0xc3, 0xff,
-    0xfc, 0x0, 0x1, 0xe2, 0xc3, 0xcb, 0xff, 0xfc,
-    0x0, 0x1, 0xff, 0xff, 0xcf, 0x41, 0xe0, 0x74,
-    0x1, 0xff, 0xff, 0xdf, 0x1, 0xd0, 0xbe, 0x0,
-    0x0, 0x0, 0x2f, 0x1, 0xd0, 0x2f, 0x80, 0x0,
-    0x0, 0x3f, 0x2, 0xc0, 0x7, 0xf0, 0x0, 0x0,
-    0x7f, 0x43, 0xc0, 0x1, 0xd3, 0xff, 0xff, 0xd7,
-    0x43, 0xc0, 0x0, 0x42, 0xaa, 0xaa, 0x83, 0xc3,
-    0x80, 0x0, 0x0, 0x0, 0x0, 0x3, 0xc7, 0x40,
-    0x0, 0x0, 0x0, 0x0, 0x2, 0xdb, 0x0, 0x0,
-    0xf0, 0xbf, 0xfd, 0x1, 0xff, 0x0, 0x1, 0xf0,
-    0xbf, 0xfe, 0x0, 0xfe, 0x0, 0x2, 0xe0, 0xb4,
-    0x1e, 0x0, 0xbc, 0x0, 0x3, 0xd0, 0xb4, 0x1e,
-    0x0, 0xbd, 0x0, 0x7, 0xc0, 0xb4, 0x1e, 0x70,
-    0xff, 0x0, 0xb, 0x80, 0xb0, 0x1f, 0xf3, 0xef,
-    0x80, 0xf, 0x40, 0xf0, 0x1f, 0xcb, 0xc7, 0xd0,
-    0x1f, 0x1, 0xe0, 0x3e, 0x2f, 0x2, 0xf0, 0x3e,
-    0x3, 0xc0, 0x18, 0x7d, 0x0, 0xfc, 0x3d, 0xb,
-    0x80, 0x1, 0xf8, 0x0, 0x3e, 0x18, 0x2, 0x0,
-    0x0, 0xe0, 0x0, 0x8, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0,
-
     /* U+6EA7 "溧" */
     0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f,
     0x40, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xb, 0xe0,
@@ -78236,6 +82432,31 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xf, 0xff, 0xff, 0xff, 0x0, 0x19, 0x0, 0xf,
     0x40, 0x0, 0x1f, 0x0,
 
+    /* U+6EB7 "溷" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x38,
+    0x7, 0xff, 0xff, 0xff, 0xff, 0xc1, 0xfc, 0x1f,
+    0xff, 0xff, 0xff, 0xff, 0x1, 0xfd, 0x7c, 0x0,
+    0x0, 0x0, 0x3c, 0x0, 0xfd, 0xf0, 0x0, 0x0,
+    0x0, 0xf0, 0x0, 0xd7, 0xc6, 0xaa, 0xaa, 0xa3,
+    0xc0, 0x0, 0x1f, 0x2f, 0xff, 0xff, 0xcf, 0x4,
+    0x0, 0x7c, 0x0, 0x3e, 0x0, 0x3c, 0x3d, 0x1,
+    0xf0, 0x7, 0xe0, 0x0, 0xf0, 0xfe, 0x7, 0xc0,
+    0xbf, 0x0, 0xf3, 0xc0, 0xbe, 0x1f, 0x2f, 0xae,
+    0xf, 0x8f, 0x0, 0xbc, 0x7c, 0xf4, 0x7d, 0xf8,
+    0x3c, 0x0, 0x91, 0xf0, 0xb, 0xff, 0x40, 0xf0,
+    0x0, 0x7, 0xc0, 0xf9, 0xfd, 0x3, 0xc0, 0x0,
+    0x1f, 0x2f, 0x47, 0xfc, 0xf, 0x0, 0x20, 0x7c,
+    0xe0, 0x7f, 0x3c, 0x3c, 0x1, 0xf1, 0xf0, 0xb,
+    0xfc, 0x78, 0xf0, 0xb, 0x87, 0xc0, 0xfc, 0xb0,
+    0xf3, 0xc0, 0x3d, 0x1f, 0x2f, 0x82, 0xc0, 0xef,
+    0x0, 0xf0, 0x7e, 0xf4, 0xb, 0x2, 0x3c, 0x7,
+    0xc1, 0xf2, 0x0, 0x7c, 0x0, 0xf0, 0x2e, 0x7,
+    0xc0, 0x3f, 0xe0, 0x3, 0xc0, 0xf4, 0x1f, 0x0,
+    0xb9, 0x0, 0xf, 0x3, 0xc0, 0x7c, 0x0, 0x0,
+    0x0, 0x3c, 0x1f, 0x1, 0xff, 0xff, 0xff, 0xff,
+    0xf0, 0xb8, 0x7, 0xea, 0xaa, 0xaa, 0xab, 0xc0,
+    0x40, 0x1f, 0x0, 0x0, 0x0, 0xf, 0x0,
+
     /* U+6EBA "溺" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1c,
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xfd, 0xf,
@@ -78365,34 +82586,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+6EC3 "滃" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x3, 0x80, 0xb4, 0x0, 0x0, 0x78,
-    0x0, 0x2, 0xf0, 0x1f, 0x0, 0x0, 0x2f, 0xc0,
-    0x2, 0xf0, 0x2, 0xf4, 0x0, 0x1, 0xfd, 0x2,
-    0xf4, 0x10, 0x2f, 0x40, 0x0, 0xf, 0xc2, 0xf4,
-    0x2e, 0x1, 0xfc, 0x0, 0x0, 0x93, 0xf0, 0x1f,
-    0x0, 0x1f, 0xe0, 0x0, 0x3, 0xf0, 0xf, 0x7,
-    0x40, 0xbd, 0x8, 0x0, 0x20, 0xf, 0x40, 0xf4,
-    0x2, 0xb, 0xd0, 0x0, 0xf, 0x40, 0x1f, 0x0,
-    0x1, 0xfd, 0x0, 0x2f, 0xff, 0xff, 0xf0, 0x0,
-    0xf, 0xe0, 0x7, 0xff, 0xaa, 0xbe, 0x0, 0x0,
-    0xbc, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x9,
-    0xa, 0xaa, 0x92, 0xaa, 0xa8, 0x0, 0x0, 0x3,
-    0xff, 0xfc, 0xff, 0xff, 0x0, 0x0, 0x0, 0x10,
-    0xf, 0x4, 0x3, 0xc0, 0x0, 0x10, 0x1d, 0x3,
-    0xcb, 0x40, 0xf0, 0x0, 0xf, 0x43, 0xc0, 0xf0,
-    0xf0, 0x3c, 0x0, 0x7, 0xc0, 0x7c, 0x3c, 0x1f,
-    0xf, 0x0, 0x2, 0xe0, 0xa, 0x1f, 0x2, 0x87,
-    0xc0, 0x0, 0xf4, 0x0, 0x7f, 0xc0, 0x1f, 0xf0,
-    0x0, 0x7c, 0x1, 0xfe, 0xf0, 0xbf, 0xbc, 0x0,
-    0x3e, 0xb, 0xf8, 0x3d, 0xfe, 0xf, 0x0, 0xf,
-    0x42, 0xe0, 0xf, 0x34, 0x3, 0xc0, 0xb, 0xc0,
-    0x0, 0x3, 0x80, 0x0, 0xf0, 0x3, 0xd0, 0x0,
-    0x6b, 0xe0, 0x2b, 0xf8, 0x0, 0xb0, 0x0, 0x1f,
-    0xe0, 0xb, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0,
-
     /* U+6EC7 "滇" */
     0x0, 0x0, 0x0, 0x1, 0xe0, 0x0, 0x0, 0x6,
     0x0, 0x0, 0x1, 0xf0, 0x0, 0x0, 0xf, 0xc0,
@@ -78580,31 +82773,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x2f, 0xd0, 0x0, 0x0, 0x60, 0x0, 0x0, 0x1,
     0x0, 0x0, 0x0,
 
-    /* U+6ED8 "滘" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3,
-    0x80, 0x1f, 0xff, 0xff, 0xff, 0xfc, 0x7, 0xf0,
-    0x1f, 0xff, 0xff, 0xff, 0xfc, 0x1, 0xfd, 0x1f,
-    0x0, 0x0, 0x0, 0x3c, 0x0, 0x3f, 0x1f, 0x1,
-    0x0, 0x0, 0x3c, 0x0, 0xb, 0x1f, 0xf, 0x0,
-    0x7c, 0x3c, 0x0, 0x0, 0x0, 0x7f, 0x0, 0x7f,
-    0x80, 0x0, 0x0, 0x2, 0xfc, 0x0, 0xb, 0xf4,
-    0x1d, 0x0, 0x1f, 0xe0, 0x0, 0x0, 0xfe, 0x3f,
-    0x80, 0x2f, 0x40, 0x0, 0x0, 0x2d, 0xb, 0xe0,
-    0x4, 0xff, 0xff, 0xff, 0x84, 0x2, 0xf8, 0x0,
-    0xaa, 0xbf, 0xaa, 0x40, 0x0, 0x7c, 0x0, 0x0,
-    0x2d, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x2d,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2e, 0x0,
-    0x0, 0x0, 0x0, 0x2f, 0xff, 0xff, 0xff, 0xff,
-    0x0, 0x2d, 0x1a, 0xaa, 0xaa, 0xaa, 0xaa, 0x0,
-    0x3d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c,
-    0x3, 0xff, 0xff, 0xff, 0xe0, 0x0, 0xbc, 0x3,
-    0xff, 0xff, 0xff, 0xf0, 0x0, 0xf4, 0x3, 0xc0,
-    0x0, 0x1, 0xf0, 0x1, 0xf0, 0x3, 0xc0, 0x0,
-    0x0, 0xf0, 0x3, 0xe0, 0x3, 0xc0, 0x0, 0x0,
-    0xf0, 0x3, 0xc0, 0x3, 0xff, 0xff, 0xff, 0xf0,
-    0xb, 0xc0, 0x3, 0xff, 0xff, 0xff, 0xf0, 0xf,
-    0x40, 0x3, 0xd5, 0x55, 0x55, 0xf0, 0x0, 0x0,
-    0x3, 0xc0, 0x0, 0x0, 0xf0,
+    /* U+6ED7 "滗" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xb, 0x40, 0x3, 0xc0, 0x0, 0xd, 0x0,
+    0xf, 0x0, 0x7, 0x80, 0x0, 0x2f, 0x80, 0x2e,
+    0x0, 0xf, 0x40, 0x0, 0xb, 0xe0, 0x3f, 0xff,
+    0xdf, 0xff, 0xf8, 0x1, 0xf8, 0x7f, 0xff, 0xef,
+    0xff, 0xf8, 0x0, 0x70, 0xf6, 0xd0, 0x3c, 0x3c,
+    0x0, 0x0, 0x2, 0xf0, 0xf0, 0xb8, 0x2d, 0x0,
+    0x0, 0x3, 0xc0, 0x78, 0xf0, 0xd, 0x0, 0x78,
+    0x3, 0x80, 0x10, 0x60, 0x5, 0x0, 0xbf, 0x0,
+    0x1, 0x5a, 0xbf, 0xff, 0x80, 0x1f, 0xc2, 0xff,
+    0xff, 0xff, 0xa9, 0x0, 0x3, 0xf1, 0xaa, 0x5f,
+    0x40, 0x0, 0x0, 0x0, 0xe0, 0x0, 0xf, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0x45, 0x5a,
+    0x40, 0x0, 0x0, 0xbf, 0xff, 0xff, 0xff, 0x80,
+    0x0, 0x81, 0xff, 0xff, 0xea, 0x55, 0x0, 0x1,
+    0xe0, 0x0, 0xf, 0x0, 0x0, 0x0, 0x2, 0xe0,
+    0x0, 0xf, 0x0, 0x0, 0x0, 0x3, 0xd0, 0x0,
+    0xf, 0x9a, 0xaf, 0xfc, 0x3, 0xcb, 0xff, 0xff,
+    0xff, 0xff, 0xfc, 0x7, 0xcf, 0xff, 0xaf, 0x95,
+    0x40, 0x0, 0xb, 0x80, 0x0, 0xf, 0x0, 0x0,
+    0xe0, 0xf, 0x0, 0x0, 0xf, 0x0, 0x0, 0xf0,
+    0x1f, 0x0, 0x0, 0xf, 0x80, 0x2, 0xe0, 0x2e,
+    0x0, 0x0, 0xb, 0xff, 0xff, 0xd0, 0x3c, 0x0,
+    0x0, 0x2, 0xff, 0xff, 0x40, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
 
     /* U+6EDA "滚" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -78902,61 +83096,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x2, 0xc0, 0x0, 0x0, 0x9, 0x0, 0x0,
     0x2, 0xc0, 0x0, 0x0,
 
-    /* U+6EEA "滪" */
-    0x1, 0x0, 0x0, 0x0, 0x15, 0x55, 0x55, 0x2,
-    0xe0, 0x7f, 0xff, 0xdf, 0xff, 0xff, 0xd0, 0x7f,
-    0x4a, 0xab, 0xf2, 0xab, 0xea, 0xa0, 0x2, 0xf4,
-    0x0, 0xb4, 0x0, 0xf0, 0x0, 0x0, 0x1c, 0x20,
-    0x3c, 0x0, 0x78, 0x0, 0x0, 0x0, 0x1e, 0x3d,
-    0x0, 0x2d, 0x0, 0x0, 0x0, 0x2, 0xfe, 0x2,
-    0xff, 0xff, 0xc0, 0xb4, 0x0, 0x3f, 0x0, 0xbf,
-    0xff, 0xf0, 0x2f, 0x80, 0x3, 0xc0, 0x2c, 0x0,
-    0x3c, 0x1, 0xfc, 0x0, 0x74, 0xb, 0x6, 0xf,
-    0x0, 0xf, 0x2f, 0xff, 0xf2, 0xc3, 0xc3, 0xc0,
-    0x0, 0x4f, 0xff, 0xfc, 0xb0, 0xf0, 0xf0, 0x0,
-    0x0, 0x7, 0x4b, 0x2c, 0x3c, 0x3c, 0x0, 0x0,
-    0x1, 0xd3, 0x8b, 0xf, 0xf, 0x0, 0x0, 0x0,
-    0x74, 0xd2, 0xc3, 0xc3, 0xc0, 0x2, 0xd0, 0x1d,
-    0xb0, 0xb0, 0xf0, 0xf0, 0x0, 0xf0, 0x7, 0x6c,
-    0x2c, 0x3c, 0x3c, 0x0, 0x3c, 0x1, 0xd0, 0xb,
-    0xf, 0xf, 0x0, 0x1e, 0x0, 0x74, 0x2, 0xc3,
-    0x83, 0xc0, 0xb, 0x40, 0x1d, 0x0, 0x52, 0xd0,
-    0x50, 0x3, 0xc0, 0x7, 0x40, 0x0, 0xf3, 0x40,
-    0x0, 0xf0, 0x1, 0xd0, 0x0, 0xf9, 0xf8, 0x0,
-    0xb8, 0x0, 0xb4, 0x0, 0xbc, 0xf, 0x80, 0x3c,
-    0x0, 0x7c, 0x1, 0xfc, 0x0, 0xfc, 0xf, 0x0,
-    0xff, 0x0, 0xf8, 0x0, 0xf, 0x41, 0x40, 0x19,
-    0x0, 0x24, 0x0, 0x0, 0x80, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0,
-
-    /* U+6EEB "滫" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0xd, 0x0, 0xe, 0x0, 0x0, 0xe, 0x0,
-    0x1d, 0x0, 0x1d, 0x0, 0x0, 0xf, 0x80, 0x2c,
-    0x0, 0x3f, 0xaa, 0x90, 0x3, 0xf0, 0x3c, 0x0,
-    0x7f, 0xff, 0xd0, 0x0, 0xf8, 0x78, 0xe0, 0xf0,
-    0x3, 0xc0, 0x0, 0x30, 0xb4, 0xe2, 0xf8, 0xb,
-    0x80, 0x0, 0x0, 0xf0, 0xe7, 0xad, 0x1f, 0x0,
-    0x20, 0x0, 0xf0, 0xeb, 0xf, 0xbc, 0x0, 0xbc,
-    0x2, 0xf0, 0xe0, 0x3, 0xf8, 0x0, 0x2f, 0x43,
-    0xf0, 0xe0, 0x1f, 0xff, 0x40, 0xb, 0xd7, 0xf0,
-    0xe1, 0xbe, 0x1f, 0xf8, 0x2, 0xcf, 0xf0, 0xeb,
-    0xf0, 0x1, 0xbc, 0x0, 0x2f, 0xf0, 0xea, 0x40,
-    0x0, 0x4, 0x0, 0x2c, 0xf0, 0xe0, 0xff, 0xff,
-    0xc0, 0x0, 0x4, 0xf0, 0xe0, 0xff, 0xff, 0xc0,
-    0x0, 0x0, 0xf0, 0xe0, 0xe0, 0x3, 0xc0, 0x0,
-    0xe0, 0xf0, 0xe0, 0xe0, 0x3, 0xc0, 0x1, 0xe0,
-    0xf0, 0xe0, 0xff, 0xff, 0xc0, 0x2, 0xe0, 0xf0,
-    0xe0, 0xff, 0xff, 0xc0, 0x3, 0xd0, 0xf0, 0xe0,
-    0xe0, 0x3, 0xc0, 0x3, 0xc0, 0xf0, 0xe0, 0xe0,
-    0x3, 0xc0, 0x7, 0x80, 0xf0, 0xe0, 0xff, 0xff,
-    0xc0, 0xf, 0x40, 0xf0, 0x0, 0xff, 0xff, 0xc0,
-    0xf, 0x0, 0xf0, 0x0, 0xe0, 0x3, 0xc0, 0x1f,
-    0x0, 0xf0, 0x0, 0xe0, 0x3, 0xc0, 0x3d, 0x0,
-    0xf0, 0x0, 0xe0, 0x3f, 0xc0, 0x18, 0x0, 0xf0,
-    0x0, 0xe0, 0x3e, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0,
-
     /* U+6EF4 "滴" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0xf, 0x0, 0x0, 0x0, 0xe0, 0x0,
@@ -78984,6 +83123,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x2d, 0x0, 0x0, 0x3f, 0x80, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+6EF9 "滹" */
+    0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x38,
+    0x0, 0x0, 0xf, 0xaa, 0xaa, 0x0, 0x1f, 0x80,
+    0x0, 0x3, 0xff, 0xff, 0xc0, 0x1, 0xfc, 0x0,
+    0x0, 0xf0, 0x0, 0x0, 0x0, 0xf, 0xc6, 0xaa,
+    0xbe, 0xaa, 0xa9, 0x0, 0x0, 0xe3, 0xff, 0xff,
+    0xff, 0xff, 0xc0, 0x0, 0x0, 0xf0, 0x0, 0x0,
+    0x1, 0xf0, 0x4, 0x0, 0x3c, 0x0, 0xf0, 0x0,
+    0xb4, 0xb, 0x80, 0xf, 0x1, 0x7e, 0xff, 0x18,
+    0x2, 0xfc, 0x3, 0xdf, 0xff, 0xfa, 0x44, 0x0,
+    0x1f, 0xc0, 0xf6, 0x57, 0xc0, 0x3, 0xc0, 0x0,
+    0xfc, 0x3c, 0x0, 0xfa, 0xab, 0xe0, 0x0, 0xd,
+    0xf, 0x0, 0x1f, 0xff, 0xe0, 0x0, 0x0, 0x3,
+    0xc0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0xf1,
+    0xaa, 0xff, 0xff, 0xd0, 0x0, 0x90, 0x3c, 0xbf,
+    0xff, 0xe9, 0x50, 0x0, 0x3c, 0xf, 0x2, 0x0,
+    0xf0, 0x28, 0x0, 0xf, 0x3, 0xc1, 0xf0, 0x3c,
+    0x1e, 0x0, 0xb, 0x81, 0xe0, 0x1f, 0xf, 0x1e,
+    0x0, 0x3, 0xd0, 0xb8, 0x1, 0x83, 0xc2, 0x0,
+    0x0, 0xf0, 0x3d, 0xbf, 0xff, 0xff, 0xff, 0xc0,
+    0x7c, 0xf, 0x2f, 0xff, 0xff, 0xff, 0xf0, 0x2e,
+    0x7, 0x80, 0x0, 0xf, 0x0, 0x0, 0xf, 0x3,
+    0xd0, 0x0, 0x3, 0xc0, 0x0, 0x7, 0xc1, 0xf0,
+    0x0, 0x6b, 0xe0, 0x0, 0x1, 0x90, 0xb4, 0x0,
+    0x1f, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+6F02 "漂" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x38,
     0xa, 0xaa, 0xaa, 0xaa, 0xaa, 0x81, 0xf8, 0x3f,
@@ -79386,34 +83553,58 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x3, 0xcb, 0xc0, 0x0, 0x3e, 0x14, 0x0, 0x3,
     0xc3, 0x0, 0x0, 0x8,
 
-    /* U+6F35 "漵" */
-    0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x2d, 0x0, 0xe, 0x0, 0x0, 0xe0,
-    0x0, 0xf, 0x0, 0x7, 0x80, 0x0, 0x7f, 0x0,
-    0xb, 0xe0, 0x2, 0xd0, 0x0, 0x3, 0xf4, 0x7,
-    0xfe, 0x0, 0xf0, 0x0, 0x0, 0x3f, 0x3, 0xd3,
-    0xe0, 0x7c, 0x0, 0x0, 0x3, 0xc2, 0xf0, 0x3e,
-    0x2f, 0xff, 0xf0, 0x0, 0x1, 0xf0, 0x3, 0xcf,
-    0xff, 0xfc, 0x0, 0x1, 0xf4, 0x0, 0xb, 0x80,
-    0x74, 0xf, 0x0, 0xff, 0xff, 0xe3, 0xe0, 0x2c,
-    0x3, 0xf4, 0x2b, 0xff, 0xfd, 0xf8, 0xb, 0x0,
-    0x2f, 0x80, 0x3, 0xc0, 0xff, 0x3, 0xc0, 0x2,
-    0xf4, 0x0, 0xf0, 0x3f, 0xc0, 0xf0, 0x0, 0x2c,
-    0x0, 0x3c, 0x1, 0xb0, 0x38, 0x0, 0x0, 0x0,
-    0xf, 0x0, 0x2d, 0x1d, 0x0, 0x0, 0x7, 0xff,
-    0xff, 0xc7, 0x8b, 0x0, 0x0, 0x1, 0xff, 0xff,
-    0xf0, 0xf3, 0xc0, 0x0, 0x3c, 0x0, 0x3c, 0x0,
-    0x2e, 0xe0, 0x0, 0xf, 0x2, 0xf, 0x14, 0x7,
-    0xf0, 0x0, 0x7, 0xc0, 0xe3, 0xcf, 0x0, 0xf8,
-    0x0, 0x2, 0xe0, 0xb4, 0xf1, 0xe0, 0x3f, 0x0,
-    0x0, 0xf4, 0x3c, 0x3c, 0x3c, 0x2f, 0xd0, 0x0,
-    0x3c, 0x2e, 0xf, 0x7, 0x9f, 0x7c, 0x0, 0x2f,
-    0xf, 0x3, 0xc0, 0x9f, 0x4b, 0xc0, 0xf, 0x4b,
-    0x80, 0xf0, 0xf, 0x80, 0xf8, 0x3, 0xc3, 0xc1,
-    0xbc, 0x1f, 0x80, 0xf, 0x81, 0xf0, 0x0, 0xfe,
-    0x1f, 0xc0, 0x1, 0xf4, 0x14, 0x0, 0x29, 0x3,
-    0xc0, 0x0, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0,
+    /* U+6F33 "漳" */
+    0x0, 0x0, 0x0, 0x2, 0xc0, 0x0, 0x0, 0x5,
+    0x0, 0x0, 0x2, 0xe0, 0x0, 0x0, 0xf, 0x80,
+    0x0, 0x1, 0xf0, 0x0, 0x0, 0xb, 0xe0, 0x7f,
+    0xff, 0xff, 0xff, 0xe0, 0x1, 0xfc, 0x6b, 0xfa,
+    0xab, 0xfa, 0x90, 0x0, 0x7c, 0x0, 0xf0, 0x3,
+    0xd0, 0x0, 0x0, 0x10, 0x0, 0xf4, 0x3, 0xc0,
+    0x0, 0x0, 0x2, 0xaa, 0xfe, 0xaf, 0xea, 0xa4,
+    0x38, 0x3, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x7e,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2f, 0xc0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0xf0, 0x2f,
+    0xff, 0xff, 0xff, 0x40, 0x1, 0xf8, 0x3f, 0xff,
+    0xff, 0xff, 0x40, 0x0, 0x70, 0x3d, 0x0, 0x0,
+    0xf, 0x40, 0x0, 0x0, 0x3f, 0xaa, 0xaa, 0xaf,
+    0x40, 0x0, 0x0, 0x3f, 0xff, 0xff, 0xff, 0x40,
+    0x0, 0xf0, 0x3d, 0x0, 0x0, 0xf, 0x40, 0x0,
+    0xf0, 0x3d, 0x0, 0x0, 0xf, 0x40, 0x1, 0xf0,
+    0x3f, 0xff, 0xff, 0xff, 0x40, 0x2, 0xe0, 0x2f,
+    0xff, 0xff, 0xff, 0x40, 0x3, 0xd0, 0x0, 0x1,
+    0xf0, 0x0, 0x0, 0x7, 0xc0, 0x0, 0x1, 0xf0,
+    0x0, 0x0, 0xb, 0x87, 0xff, 0xff, 0xff, 0xff,
+    0xfc, 0xf, 0x47, 0xff, 0xff, 0xff, 0xff, 0xfc,
+    0x1f, 0x0, 0x0, 0x1, 0xf0, 0x0, 0x0, 0x3e,
+    0x0, 0x0, 0x1, 0xf0, 0x0, 0x0, 0x18, 0x0,
+    0x0, 0x1, 0xf0, 0x0, 0x0,
+
+    /* U+6F36 "漶" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1,
+    0x0, 0x0, 0x0, 0xf0, 0x0, 0x0, 0xf, 0x80,
+    0x0, 0x0, 0xf0, 0x0, 0x0, 0xb, 0xe0, 0x1a,
+    0xaa, 0xfa, 0xaa, 0x80, 0x1, 0xfc, 0x2f, 0xff,
+    0xff, 0xff, 0xc0, 0x0, 0x7e, 0x2e, 0x0, 0xf0,
+    0x3, 0xc0, 0x0, 0x1c, 0x2d, 0x0, 0xf0, 0x3,
+    0xc0, 0x0, 0x0, 0x2d, 0x0, 0xf0, 0x3, 0xc0,
+    0x24, 0x0, 0x2f, 0xff, 0xff, 0xff, 0xc0, 0x7e,
+    0x0, 0x1a, 0xaa, 0xfa, 0xaa, 0x80, 0x2f, 0xc0,
+    0x0, 0x0, 0xf0, 0x0, 0x0, 0x7, 0xf0, 0x2a,
+    0xaa, 0xfa, 0xaa, 0x90, 0x1, 0xf4, 0x3f, 0xff,
+    0xff, 0xff, 0xf0, 0x0, 0x20, 0x3c, 0x0, 0xf0,
+    0x1, 0xf0, 0x0, 0x0, 0x3c, 0x0, 0xf0, 0x1,
+    0xf0, 0x0, 0x0, 0x3c, 0x0, 0xf0, 0x1, 0xf0,
+    0x0, 0x50, 0x3f, 0xff, 0xff, 0xff, 0xf0, 0x0,
+    0xf0, 0x2a, 0xaa, 0xfa, 0xaa, 0x90, 0x0, 0xf0,
+    0x0, 0x0, 0xf0, 0x0, 0x0, 0x2, 0xe0, 0x0,
+    0xa0, 0x90, 0x2, 0x0, 0x3, 0xd0, 0x3c, 0xf0,
+    0xf4, 0xb, 0xc0, 0x3, 0xc0, 0x78, 0xf0, 0x3d,
+    0x3, 0xd0, 0xb, 0x80, 0xf0, 0xf0, 0xd, 0xb0,
+    0xf0, 0xf, 0x41, 0xf0, 0xf0, 0x0, 0xf0, 0xb8,
+    0x1f, 0x3, 0xd0, 0xf4, 0x0, 0xf0, 0x3d, 0x3e,
+    0x7, 0xc0, 0xbf, 0xff, 0xf0, 0x1d, 0x2c, 0x1,
+    0x40, 0x2f, 0xff, 0x80, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
 
     /* U+6F3E "漾" */
     0x0, 0x0, 0x0, 0x40, 0x0, 0x10, 0x0, 0x0,
@@ -79497,31 +83688,58 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x1, 0xe0, 0x3, 0x80, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+6F4F "潏" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x78,
-    0x0, 0xff, 0xff, 0xff, 0xff, 0x2, 0xfc, 0x3,
-    0xff, 0xff, 0xff, 0xfc, 0x1, 0xfd, 0x0, 0x1d,
-    0x0, 0x1f, 0xc0, 0x0, 0xfd, 0x0, 0x7f, 0x42,
-    0xf4, 0x0, 0x0, 0xf0, 0x0, 0x1f, 0xfe, 0x0,
-    0x0, 0x0, 0xa, 0xaa, 0xaf, 0xfa, 0xaa, 0x44,
-    0x0, 0x3f, 0xff, 0xff, 0xff, 0xfe, 0xbc, 0x0,
-    0x0, 0x2f, 0xf, 0x0, 0xf2, 0xfc, 0x0, 0x7,
-    0xe0, 0x3c, 0xb, 0x41, 0xfd, 0x2, 0xfd, 0x2,
-    0xe0, 0x78, 0x0, 0xfc, 0xbf, 0x40, 0xbf, 0x40,
-    0x40, 0x0, 0xe1, 0xd0, 0x0, 0x50, 0x0, 0x0,
-    0x0, 0x0, 0xaa, 0xaa, 0xaa, 0xaa, 0x40, 0x0,
-    0x7, 0xff, 0xff, 0xff, 0xfd, 0x0, 0x0, 0x1e,
-    0x2, 0x81, 0xc0, 0xb4, 0x0, 0xf4, 0x78, 0x1f,
-    0xb, 0xd2, 0xd0, 0x3, 0xc1, 0xe2, 0xf0, 0x7,
-    0xdb, 0x40, 0x1f, 0x7, 0xff, 0xaa, 0xab, 0xed,
-    0x0, 0xf4, 0x1e, 0x9b, 0xff, 0xf1, 0xb4, 0x3,
-    0xc0, 0x78, 0x2c, 0x3, 0xc2, 0xd0, 0x2f, 0x1,
-    0xe0, 0xb0, 0xf, 0xb, 0x40, 0xf4, 0x7, 0x82,
-    0xd5, 0x7c, 0x2d, 0x7, 0xc0, 0x1e, 0xb, 0xff,
-    0xf0, 0xb4, 0x2e, 0x0, 0x78, 0x0, 0x0, 0x7,
-    0xd0, 0xf4, 0x1, 0xe0, 0x0, 0x2, 0xff, 0x2,
-    0xc0, 0x7, 0x80, 0x0, 0x3, 0x90, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x0,
+    /* U+6F4B "潋" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x2, 0xd0, 0x1, 0xe0, 0x0, 0xf, 0x40,
+    0x3, 0xc0, 0x2, 0xd0, 0x0, 0xb, 0xd0, 0xb,
+    0xe0, 0x3, 0xc0, 0x0, 0x2, 0xf8, 0xf, 0xf8,
+    0x3, 0xc0, 0x0, 0x0, 0x78, 0x3d, 0x3f, 0x7,
+    0x80, 0x0, 0x0, 0x10, 0xbc, 0xf, 0xcb, 0xff,
+    0xfc, 0x0, 0x0, 0xf0, 0x3, 0xdf, 0xff, 0xfc,
+    0x10, 0x3, 0xd0, 0x0, 0x6e, 0x2, 0xc0, 0xb8,
+    0xf, 0x80, 0x0, 0x3d, 0x2, 0xc0, 0x7e, 0x1f,
+    0xff, 0xfe, 0x7d, 0x3, 0xc0, 0xf, 0xc4, 0xff,
+    0xfe, 0xfe, 0x3, 0xc0, 0x3, 0xf0, 0x0, 0x0,
+    0xef, 0x3, 0x80, 0x0, 0xd0, 0x5, 0x1, 0xf,
+    0x7, 0x40, 0x0, 0x3, 0x4b, 0x3, 0xcb, 0x4b,
+    0x40, 0x0, 0x3, 0x8b, 0x43, 0x87, 0x8f, 0x0,
+    0x0, 0x42, 0xc7, 0x87, 0x43, 0xce, 0x0, 0x2,
+    0xd2, 0xc3, 0x8b, 0x2, 0xfd, 0x0, 0x2, 0xd1,
+    0xd3, 0xcf, 0x1, 0xfc, 0x0, 0x3, 0xc0, 0xe3,
+    0xce, 0x0, 0xf8, 0x0, 0x3, 0xc0, 0xf2, 0xed,
+    0x0, 0xfc, 0x0, 0x7, 0x80, 0xf0, 0x2c, 0x2,
+    0xfe, 0x0, 0xf, 0x40, 0x0, 0x3d, 0x8b, 0xdf,
+    0x40, 0xf, 0x1, 0x5b, 0xff, 0xdf, 0x4b, 0xc0,
+    0x1f, 0x1f, 0xff, 0xe9, 0xbd, 0x3, 0xf0, 0x2e,
+    0xe, 0x50, 0x1, 0xf8, 0x0, 0xfc, 0x3c, 0x0,
+    0x0, 0x7, 0xe0, 0x0, 0x7d, 0x18, 0x0, 0x0,
+    0x3, 0x80, 0x0, 0x18, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
+    /* U+6F4D "潍" */
+    0x0, 0x0, 0x8, 0x0, 0x74, 0x20, 0x0, 0x20,
+    0x0, 0x7c, 0x2, 0xd1, 0xd0, 0x2, 0xf0, 0x2,
+    0xd0, 0xf, 0x3, 0xc0, 0x3, 0xf4, 0xf, 0x0,
+    0x3c, 0xf, 0x0, 0x3, 0xf4, 0x78, 0x1, 0xe5,
+    0x6e, 0x50, 0x2, 0xe2, 0xd2, 0x8f, 0xff, 0xff,
+    0xd0, 0x2, 0xf, 0xf, 0x3f, 0xff, 0xff, 0x40,
+    0x0, 0xb8, 0xb5, 0xf0, 0xf, 0x0, 0x34, 0x3,
+    0xd7, 0xcf, 0xc0, 0x3c, 0x2, 0xf8, 0x3f, 0xfe,
+    0x7f, 0x0, 0xf0, 0x2, 0xf8, 0xbe, 0xf2, 0xfd,
+    0x7, 0xc0, 0x1, 0xf8, 0x3, 0xcf, 0xff, 0xff,
+    0xfc, 0x1, 0xd0, 0x2d, 0x37, 0xff, 0xff, 0xf0,
+    0x1, 0x0, 0xf0, 0xf, 0x0, 0xf0, 0x0, 0x0,
+    0xb, 0x40, 0x3c, 0x3, 0xc0, 0x0, 0x64, 0x7c,
+    0x68, 0xf0, 0xf, 0x0, 0x2, 0xd7, 0xff, 0xf3,
+    0xff, 0xff, 0xf0, 0xf, 0xf, 0xf9, 0xf, 0xff,
+    0xff, 0xc0, 0x3c, 0x24, 0x0, 0x3c, 0x3, 0xc0,
+    0x1, 0xf0, 0x0, 0x0, 0xf0, 0xf, 0x0, 0xb,
+    0x80, 0x0, 0x3, 0xc0, 0x3c, 0x0, 0x3d, 0x0,
+    0x1b, 0xdf, 0x0, 0xf0, 0x0, 0xf0, 0xbf, 0xff,
+    0x7c, 0x3, 0xc0, 0x7, 0xc3, 0xfe, 0x90, 0xff,
+    0xff, 0xff, 0x2e, 0x5, 0x0, 0x3, 0xff, 0xff,
+    0xf8, 0xf0, 0x0, 0x0, 0xf, 0x0, 0x0, 0x1,
+    0x80, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x0,
 
     /* U+6F58 "潘" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0xf,
@@ -79603,30 +83821,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0xf0, 0x3, 0xc0, 0x10, 0x0, 0x0,
     0x0, 0xf0, 0x3, 0xc0,
 
-    /* U+6F5F "潟" */
-    0x0, 0x0, 0x0, 0x6, 0x0, 0x0, 0x1, 0xe0,
-    0x1, 0xaf, 0xf5, 0xff, 0xfc, 0x2f, 0xc0, 0x3f,
-    0xf9, 0x1f, 0xff, 0xc0, 0x7f, 0x43, 0xc0, 0x0,
-    0x0, 0x3c, 0x0, 0xfc, 0x38, 0x0, 0x0, 0x3,
-    0xc0, 0x3, 0x83, 0x80, 0x0, 0x0, 0x3c, 0x0,
-    0x0, 0x3f, 0xff, 0x1f, 0xff, 0xc0, 0x0, 0x3,
-    0xff, 0xf0, 0xff, 0xfc, 0x78, 0x0, 0x38, 0x0,
-    0x0, 0x3, 0xc7, 0xf4, 0x3, 0x80, 0x0, 0x0,
-    0x3c, 0xf, 0xd0, 0x3f, 0xff, 0xff, 0xff, 0xc0,
-    0x2f, 0x3, 0xff, 0xff, 0xff, 0xfc, 0x0, 0xa0,
-    0x0, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2e,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0xb, 0xc0, 0x0,
-    0x0, 0x0, 0x4, 0x1, 0xff, 0xff, 0xff, 0xfe,
-    0x0, 0xf4, 0xbf, 0xff, 0xff, 0xff, 0xe0, 0xf,
-    0x2f, 0x40, 0x0, 0x0, 0xe, 0x1, 0xf3, 0xd0,
-    0x0, 0x0, 0x91, 0xe0, 0x3e, 0x2, 0xd3, 0x8b,
-    0xf, 0x1e, 0x3, 0xc0, 0x3c, 0x3c, 0x78, 0xb5,
-    0xe0, 0xbc, 0x7, 0xc3, 0xc3, 0xc3, 0xdd, 0xf,
-    0x40, 0xf4, 0x2d, 0x2c, 0x21, 0xd1, 0xf0, 0x1f,
-    0x2, 0xd1, 0x40, 0x2d, 0x2e, 0x1, 0xe0, 0x0,
-    0x0, 0x1b, 0xd3, 0xd0, 0x0, 0x0, 0x0, 0x2f,
-    0xfc, 0x4, 0x0, 0x0, 0x0, 0x0, 0xe9, 0x0,
-
     /* U+6F62 "潢" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x74, 0x0, 0xf0, 0x0, 0x3, 0x0,
@@ -79655,32 +83849,83 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0x1c, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+6F70 "潰" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0xf0, 0x0, 0x0, 0xe, 0x0,
-    0x0, 0x0, 0xf0, 0x0, 0x0, 0x1f, 0xd0, 0x3f,
-    0xff, 0xff, 0xff, 0xc0, 0x3, 0xf8, 0x3e, 0xab,
-    0xfa, 0xab, 0xc0, 0x0, 0xbe, 0x3c, 0x0, 0xf0,
-    0x3, 0xc0, 0x0, 0x2c, 0x3e, 0xaa, 0xfa, 0xab,
-    0xc0, 0x0, 0x4, 0x3f, 0xff, 0xff, 0xff, 0xc0,
-    0x20, 0x0, 0x0, 0x1, 0xf0, 0x0, 0x0, 0x7d,
-    0x0, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x7f, 0x83,
-    0xff, 0xff, 0xff, 0xff, 0xfc, 0xf, 0xe2, 0xaa,
-    0xaa, 0xaa, 0xaa, 0xa8, 0x2, 0xf0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0xa0, 0x2f, 0xff, 0xff,
-    0xff, 0x40, 0x0, 0x0, 0x2e, 0xaa, 0xaa, 0xaf,
-    0x40, 0x0, 0x0, 0x2d, 0x0, 0x0, 0xb, 0x40,
-    0x0, 0x0, 0x2f, 0xff, 0xff, 0xff, 0x40, 0x0,
-    0xb8, 0x2e, 0x55, 0x55, 0x5f, 0x40, 0x0, 0xf4,
-    0x2d, 0x0, 0x0, 0xf, 0x40, 0x1, 0xf0, 0x2f,
-    0xff, 0xff, 0xff, 0x40, 0x2, 0xe0, 0x2e, 0x55,
-    0x55, 0x5f, 0x40, 0x3, 0xd0, 0x2e, 0x55, 0x55,
-    0x5f, 0x40, 0x7, 0xc0, 0x2f, 0xff, 0xff, 0xff,
-    0x40, 0xf, 0x80, 0x0, 0x18, 0x6, 0x40, 0x0,
-    0xf, 0x40, 0x6, 0xfc, 0xb, 0xf9, 0x0, 0x2f,
-    0x1, 0xbf, 0xf4, 0x6, 0xff, 0xe0, 0x3e, 0xb,
-    0xfe, 0x0, 0x0, 0xb, 0xf8, 0x1c, 0x6, 0x40,
-    0x0, 0x0, 0x0, 0x24,
+    /* U+6F66 "潦" */
+    0x0, 0x0, 0x0, 0x0, 0xe0, 0x0, 0x0, 0xe,
+    0x0, 0x0, 0x1, 0xe0, 0x0, 0x0, 0x1f, 0xc0,
+    0x0, 0x2, 0xd0, 0x0, 0x0, 0x3, 0xf4, 0xff,
+    0xff, 0xff, 0xff, 0xf0, 0x0, 0xfc, 0xff, 0xff,
+    0xff, 0xff, 0xf0, 0x0, 0x3c, 0x0, 0xf, 0x7d,
+    0x0, 0x0, 0x0, 0x0, 0xb4, 0x1e, 0x1f, 0x2,
+    0xd0, 0x10, 0x0, 0x7d, 0x3c, 0xb, 0xcb, 0xc0,
+    0x3c, 0x0, 0xf, 0xf4, 0x2, 0xff, 0x0, 0x3f,
+    0x40, 0x7, 0xe0, 0x0, 0xbd, 0x0, 0xf, 0xe0,
+    0x2f, 0xff, 0xff, 0xff, 0x80, 0x2, 0xf5, 0xff,
+    0xff, 0xff, 0xff, 0xf4, 0x0, 0xab, 0xff, 0x0,
+    0x0, 0x1e, 0xfd, 0x0, 0xb, 0x4f, 0x0, 0x0,
+    0x1d, 0x2c, 0x0, 0x0, 0xf, 0xff, 0xff, 0xfd,
+    0x0, 0x0, 0x90, 0xf, 0xff, 0xff, 0xfd, 0x0,
+    0x0, 0xf0, 0xf, 0x0, 0x0, 0x1d, 0x0, 0x1,
+    0xf0, 0xf, 0x0, 0x0, 0x1d, 0x0, 0x2, 0xe0,
+    0xf, 0xff, 0xff, 0xfd, 0x0, 0x3, 0xd0, 0xa,
+    0xab, 0xfa, 0xa9, 0x0, 0x3, 0xc0, 0x2, 0x1,
+    0xf0, 0x10, 0x0, 0xb, 0xc0, 0xb, 0x81, 0xf0,
+    0xf8, 0x0, 0xf, 0x80, 0x2f, 0x41, 0xf0, 0x3f,
+    0x0, 0xf, 0x0, 0xfd, 0x1, 0xf0, 0xb, 0xd0,
+    0x2f, 0x7, 0xf4, 0x3, 0xe0, 0x2, 0xf4, 0x3e,
+    0xb, 0xc0, 0x7f, 0xe0, 0x0, 0xb4, 0x2c, 0x2,
+    0x0, 0x3f, 0x80, 0x0, 0x10, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
+    /* U+6F6D "潭" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x38,
+    0x6, 0xaa, 0xaa, 0xaa, 0xaa, 0x81, 0xfd, 0x1f,
+    0xff, 0xff, 0xff, 0xff, 0x0, 0xfd, 0x0, 0xb,
+    0x2, 0xc0, 0x0, 0x0, 0xbd, 0x0, 0x2c, 0xb,
+    0x0, 0x0, 0x0, 0xb2, 0xff, 0xff, 0xff, 0xff,
+    0x0, 0x0, 0xf, 0xab, 0xea, 0xfa, 0xbc, 0x0,
+    0x0, 0x3c, 0xb, 0x2, 0xc0, 0xb0, 0x38, 0x0,
+    0xf0, 0x2c, 0xb, 0x2, 0xc1, 0xfd, 0x3, 0xff,
+    0xff, 0xff, 0xff, 0x0, 0xfd, 0x6, 0xaa, 0xaa,
+    0xaa, 0xa8, 0x0, 0xbd, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xb0, 0x2f, 0xff, 0xff, 0xff, 0x0,
+    0x0, 0x40, 0xba, 0xaa, 0xaa, 0xbc, 0x0, 0x0,
+    0x2, 0xc0, 0x0, 0x0, 0xb0, 0x0, 0x10, 0xb,
+    0xff, 0xff, 0xff, 0xc0, 0x0, 0xf4, 0x2e, 0xaa,
+    0xaa, 0xaf, 0x0, 0x3, 0xc0, 0xb0, 0x0, 0x0,
+    0x2c, 0x0, 0x1f, 0x2, 0xea, 0xaa, 0xaa, 0xf0,
+    0x0, 0xb8, 0xb, 0xff, 0xff, 0xff, 0xc0, 0x3,
+    0xd0, 0x0, 0x1, 0xf0, 0x0, 0x0, 0xf, 0x0,
+    0x0, 0x7, 0xc0, 0x0, 0x0, 0x7c, 0x7f, 0xff,
+    0xff, 0xff, 0xff, 0xc3, 0xe0, 0xaa, 0xaa, 0xfe,
+    0xaa, 0xaa, 0xf, 0x0, 0x0, 0x1, 0xf0, 0x0,
+    0x0, 0x7c, 0x0, 0x0, 0x7, 0xc0, 0x0, 0x0,
+    0x50, 0x0, 0x0, 0x1f, 0x0, 0x0, 0x0,
+
+    /* U+6F6E "潮" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x78, 0x0, 0x0, 0x0, 0xd, 0x0, 0x7,
+    0x80, 0x5, 0x55, 0x52, 0xf8, 0x0, 0x78, 0x0,
+    0xff, 0xff, 0xb, 0xe3, 0xff, 0xff, 0x8f, 0xff,
+    0xf0, 0x1f, 0xbf, 0xff, 0xfc, 0xf0, 0xf, 0x0,
+    0x74, 0x7, 0x80, 0xf, 0x0, 0xf0, 0x1, 0x0,
+    0x78, 0x0, 0xf0, 0xf, 0x0, 0x1, 0xaf, 0xea,
+    0xf, 0x0, 0xf3, 0xc0, 0x3f, 0xff, 0xf0, 0xfa,
+    0xaf, 0x7f, 0x3, 0xd0, 0xf, 0xf, 0xff, 0xf0,
+    0xfd, 0x3c, 0x0, 0xf0, 0xfa, 0xaf, 0x3, 0xf3,
+    0xea, 0xaf, 0xf, 0x0, 0xf0, 0xe, 0x3f, 0xff,
+    0xf0, 0xf0, 0xf, 0x0, 0x3, 0xd0, 0xf, 0xf,
+    0x0, 0xf0, 0x0, 0x3c, 0x0, 0xf0, 0xf0, 0xf,
+    0x0, 0x3, 0xd0, 0xf, 0xf, 0x0, 0xf0, 0x1d,
+    0x3f, 0xff, 0xf0, 0xff, 0xff, 0x2, 0xd2, 0xff,
+    0xff, 0xf, 0xff, 0xf0, 0x3d, 0x0, 0x78, 0x0,
+    0xe0, 0xf, 0x3, 0xc0, 0x7, 0x80, 0x1e, 0x0,
+    0xf0, 0x7c, 0xff, 0xff, 0xf5, 0xd0, 0xf, 0x7,
+    0x8f, 0xff, 0xff, 0xac, 0x0, 0xf0, 0xf4, 0x0,
+    0x78, 0x3, 0xc0, 0xf, 0xf, 0x0, 0x7, 0x80,
+    0xb8, 0x1, 0xf1, 0xf0, 0x0, 0x78, 0xf, 0x6,
+    0xfe, 0x2e, 0x0, 0x7, 0x83, 0xe0, 0x3f, 0xd1,
+    0x90, 0x0, 0x78, 0x2c, 0x1, 0x50, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0,
 
     /* U+6F72 "潲" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x10,
@@ -79736,6 +83981,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xfd, 0x1, 0xe0, 0x3, 0xc0, 0x19, 0x0, 0x40,
     0x1, 0xd0, 0x3, 0xc0,
 
+    /* U+6F78 "潸" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x3, 0xc0, 0x0, 0xf0, 0x0, 0xf, 0x0,
+    0x3, 0xc0, 0x0, 0xf0, 0x0, 0x1f, 0xc0, 0x3,
+    0xc0, 0x1, 0xf0, 0x0, 0x3, 0xf4, 0xff, 0xff,
+    0x7f, 0xff, 0xf0, 0x0, 0xfc, 0xab, 0xea, 0x2b,
+    0xfe, 0xa0, 0x0, 0x30, 0xb, 0xd0, 0x3, 0xfc,
+    0x0, 0x0, 0x0, 0xf, 0xf8, 0xb, 0xfe, 0x0,
+    0x10, 0x0, 0x3f, 0xdf, 0x1e, 0xfb, 0x80, 0x78,
+    0x0, 0xf7, 0xc7, 0x7c, 0xf3, 0xe0, 0x7f, 0x3,
+    0xd3, 0xc2, 0xf0, 0xf0, 0xfc, 0x1f, 0xc7, 0x83,
+    0xc2, 0xc0, 0xf0, 0x3d, 0x3, 0xf1, 0x2, 0xc0,
+    0x0, 0xe0, 0x4, 0x0, 0xe0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x40, 0x7f, 0xff, 0xff, 0xff,
+    0x40, 0x0, 0x0, 0x7e, 0xaa, 0xaa, 0xaf, 0x40,
+    0x0, 0x90, 0x7c, 0x0, 0x0, 0xb, 0x40, 0x0,
+    0xf0, 0x7e, 0xaa, 0xaa, 0xaf, 0x40, 0x1, 0xe0,
+    0x7f, 0xff, 0xff, 0xff, 0x40, 0x2, 0xd0, 0x7c,
+    0x0, 0x0, 0xf, 0x40, 0x3, 0xc0, 0x7c, 0x0,
+    0x0, 0xb, 0x40, 0x3, 0xc0, 0x7e, 0xaa, 0xaa,
+    0xaf, 0x40, 0x7, 0x80, 0x7f, 0xff, 0xff, 0xff,
+    0x40, 0xf, 0x40, 0x7c, 0x0, 0x0, 0xb, 0x40,
+    0xf, 0x0, 0x7c, 0x0, 0x0, 0xf, 0x40, 0x1f,
+    0x0, 0x7c, 0x0, 0x6, 0xbf, 0x0, 0x2d, 0x0,
+    0x7c, 0x0, 0x7, 0xfd, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+6F7A "潺" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0xe0, 0xf, 0xff, 0xff, 0xff, 0xfd, 0x0, 0x7e,
@@ -79791,34 +84063,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xff, 0xff, 0xff, 0xff, 0xf8, 0x1, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
-    /* U+6F7D "潽" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0,
-    0x0, 0x0, 0xf0, 0x0, 0x78, 0x0, 0x9, 0x0,
-    0x0, 0xb8, 0x0, 0xf0, 0x0, 0x1f, 0xc0, 0x0,
-    0x3c, 0x3, 0xd0, 0x0, 0x7, 0xf0, 0x6a, 0xbe,
-    0xaf, 0xea, 0xa0, 0x0, 0xfc, 0xbf, 0xff, 0xff,
-    0xff, 0xf0, 0x0, 0x3c, 0x4, 0x1f, 0xb, 0x80,
-    0x40, 0x0, 0x0, 0x2c, 0xe, 0x7, 0x42, 0xc0,
-    0x0, 0x0, 0x1f, 0xe, 0x7, 0x43, 0xc0, 0x38,
-    0x0, 0xb, 0x8e, 0x7, 0x4f, 0x0, 0x7f, 0x0,
-    0x3, 0xce, 0x7, 0x6d, 0x0, 0x1f, 0xc0, 0x0,
-    0xe, 0x7, 0x44, 0x0, 0x3, 0xf2, 0xff, 0xff,
-    0xff, 0xff, 0xfc, 0x0, 0xe2, 0xff, 0xff, 0xff,
-    0xff, 0xfc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0xa, 0xaa, 0xaa, 0xaa, 0x0, 0x0,
-    0xf0, 0xf, 0xff, 0xff, 0xff, 0x40, 0x0, 0xf0,
-    0xf, 0x0, 0x0, 0xb, 0x40, 0x1, 0xf0, 0xf,
-    0x0, 0x0, 0xb, 0x40, 0x2, 0xe0, 0xf, 0x0,
-    0x0, 0xb, 0x40, 0x3, 0xd0, 0xf, 0xff, 0xff,
-    0xff, 0x40, 0x3, 0xc0, 0xf, 0xff, 0xff, 0xff,
-    0x40, 0xb, 0x80, 0xf, 0x0, 0x0, 0xb, 0x40,
-    0xf, 0x40, 0xf, 0x0, 0x0, 0xb, 0x40, 0xf,
-    0x0, 0xf, 0xff, 0xff, 0xff, 0x40, 0x2f, 0x0,
-    0xf, 0xff, 0xff, 0xff, 0x40, 0x19, 0x0, 0xf,
-    0x0, 0x0, 0xb, 0x40, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0,
-
     /* U+6F84 "澄" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd,
     0x0, 0x0, 0x0, 0x74, 0xd, 0x0, 0x2f, 0x80,
@@ -79954,6 +84198,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x40, 0x0, 0x2, 0xff, 0x0, 0x28, 0x0, 0x0,
     0x0, 0x0, 0x90, 0x0,
 
+    /* U+6F8E "澎" */
+    0x0, 0x0, 0x1, 0xd0, 0x0, 0x0, 0x0, 0x1c,
+    0x0, 0x1, 0xe0, 0x0, 0x0, 0xe0, 0x2f, 0x40,
+    0x1, 0xe0, 0x0, 0x3, 0xe0, 0x7, 0xe2, 0xff,
+    0xff, 0xf4, 0xb, 0xc0, 0x1, 0xfb, 0xff, 0xff,
+    0xf8, 0x2f, 0x0, 0x0, 0x70, 0x1, 0xe0, 0x0,
+    0xbc, 0x0, 0x0, 0x0, 0x1, 0xe0, 0x2, 0xf4,
+    0x0, 0x10, 0x0, 0x1, 0xe0, 0xb, 0xd0, 0x0,
+    0xb8, 0x2, 0xff, 0xff, 0xf7, 0x40, 0x0, 0x7f,
+    0x2, 0xaa, 0xaa, 0xa0, 0x0, 0xe0, 0xf, 0xd0,
+    0x0, 0x0, 0x0, 0x3, 0xf0, 0x3, 0xf0, 0xaa,
+    0xaa, 0x80, 0xb, 0xc0, 0x0, 0xd0, 0xff, 0xff,
+    0xc0, 0x2f, 0x0, 0x0, 0x0, 0xf0, 0x3, 0xc0,
+    0xbd, 0x0, 0x0, 0x0, 0xf0, 0x3, 0xc2, 0xf4,
+    0x0, 0x0, 0x40, 0xf0, 0x3, 0xcf, 0xd0, 0x0,
+    0x1, 0xe0, 0xff, 0xff, 0xcb, 0x0, 0x10, 0x2,
+    0xd0, 0xaa, 0xaa, 0x80, 0x0, 0x3c, 0x3, 0xc0,
+    0x20, 0x2, 0x0, 0x0, 0xf8, 0x3, 0xc0, 0xb8,
+    0xb, 0x80, 0x2, 0xf0, 0x7, 0x80, 0x3c, 0xf,
+    0x0, 0xb, 0xc0, 0xb, 0x40, 0x2d, 0x1e, 0x0,
+    0x1f, 0x40, 0xf, 0x0, 0xd, 0x3d, 0x60, 0xbd,
+    0x0, 0x1f, 0x1, 0x6b, 0xff, 0xf2, 0xf4, 0x0,
+    0x2e, 0x1f, 0xff, 0xfa, 0x5f, 0xd0, 0x0, 0x3c,
+    0xa, 0x50, 0x0, 0x3f, 0x40, 0x0, 0x28, 0x0,
+    0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+6F9C "澜" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40,
     0xe, 0x0, 0x0, 0x0, 0x0, 0x2e, 0x0, 0xf8,
@@ -80005,34 +84276,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xe, 0x0, 0x2, 0xd0, 0x0, 0x28, 0x4, 0x0,
     0x0, 0x2, 0xd0, 0x0, 0x0,
 
-    /* U+6FA5 "澥" */
-    0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x4,
-    0x0, 0xf, 0x40, 0x0, 0x0, 0x0, 0x2f, 0x0,
-    0xf, 0x0, 0xf, 0xff, 0xf8, 0x1f, 0xd0, 0x2f,
-    0xfe, 0xa, 0xfa, 0xf4, 0x3, 0xf4, 0x3f, 0xff,
-    0x0, 0xf0, 0x74, 0x0, 0xfc, 0xf4, 0x2e, 0x1,
-    0xe0, 0x74, 0x0, 0x35, 0xf0, 0x3c, 0x2, 0xd0,
-    0xb4, 0x0, 0x3, 0xc0, 0xb4, 0x3, 0xc0, 0xb0,
-    0x0, 0xf, 0xff, 0xff, 0x87, 0xc0, 0xf0, 0x34,
-    0xe, 0xff, 0xff, 0xcf, 0xb, 0xf0, 0x7e, 0x0,
-    0xe2, 0xc3, 0xee, 0x7, 0xd0, 0x2f, 0xc0, 0xe2,
-    0xc3, 0xc8, 0x0, 0x0, 0x7, 0xf0, 0xe2, 0xc3,
-    0xc1, 0x4f, 0x0, 0x1, 0xf0, 0xf2, 0xd3, 0xc3,
-    0xcf, 0x0, 0x0, 0x50, 0xff, 0xff, 0xc3, 0x8f,
-    0x0, 0x0, 0x0, 0xfb, 0xeb, 0xc7, 0xff, 0xfc,
-    0x0, 0x0, 0xe2, 0xc3, 0xcb, 0xff, 0xf8, 0x1,
-    0x90, 0xe2, 0xc3, 0xcf, 0xf, 0x0, 0x1, 0xf0,
-    0xf2, 0xc3, 0xde, 0xf, 0x0, 0x2, 0xe0, 0xff,
-    0xff, 0xc0, 0xf, 0x0, 0x3, 0xd1, 0xf7, 0xe7,
-    0xcf, 0xff, 0xfe, 0x3, 0xc1, 0xd2, 0xc3, 0xdf,
-    0xff, 0xfe, 0x7, 0xc2, 0xd2, 0xc3, 0xc0, 0xf,
-    0x0, 0xb, 0x83, 0xc2, 0xc3, 0xc0, 0xf, 0x0,
-    0xf, 0x43, 0xc2, 0xc3, 0xc0, 0xf, 0x0, 0xf,
-    0x7, 0x80, 0x3, 0xc0, 0xf, 0x0, 0x1f, 0xf,
-    0x0, 0x2f, 0x80, 0xf, 0x0, 0x1e, 0xb, 0x0,
-    0x2e, 0x0, 0xf, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0,
-
     /* U+6FA7 "澧" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x3c, 0xf, 0x0, 0x0, 0xe, 0x0,
@@ -80060,31 +84303,58 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xff, 0xff, 0xff, 0xff, 0xfc, 0x4, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
-    /* U+6FB4 "澴" */
-    0x2, 0x0, 0x1f, 0xff, 0xff, 0xff, 0xf0, 0x2,
-    0xf0, 0x7, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x3f,
-    0x41, 0xe0, 0x74, 0x2c, 0xf, 0x0, 0x2, 0xf8,
-    0x78, 0x1d, 0xb, 0x3, 0xc0, 0x0, 0x2f, 0x1e,
-    0x7, 0x42, 0xc0, 0xf0, 0x0, 0x2, 0x47, 0xff,
-    0xff, 0xff, 0xfc, 0x0, 0x0, 0x0, 0xaa, 0xaa,
-    0xaa, 0xaa, 0x0, 0x20, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x3f, 0x0, 0xff, 0xff, 0xff, 0xff,
-    0xfe, 0x7, 0xf4, 0x3f, 0xff, 0xff, 0xff, 0xff,
-    0x80, 0x3f, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x2, 0xe0, 0x1a, 0xaa, 0xaa, 0xaa, 0x0, 0x0,
-    0x20, 0xb, 0xff, 0xff, 0xff, 0xc0, 0x0, 0x0,
-    0x2, 0xc0, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x0,
-    0xb0, 0x0, 0x0, 0x3c, 0x0, 0x3, 0xc0, 0x2f,
-    0xff, 0xff, 0xff, 0x0, 0x0, 0xf0, 0xa, 0xab,
-    0xfe, 0xaa, 0x80, 0x0, 0x7c, 0x0, 0x3, 0xfe,
-    0x0, 0x2c, 0x0, 0x1f, 0x0, 0x7, 0xe3, 0xd0,
-    0x7f, 0x40, 0xb, 0x80, 0xb, 0xe0, 0x3e, 0xfe,
-    0x0, 0x3, 0xd0, 0x6f, 0xf4, 0x3, 0xf8, 0x0,
-    0x0, 0xf0, 0xff, 0x6d, 0x0, 0x3f, 0x40, 0x0,
-    0x7c, 0x3d, 0xb, 0x41, 0xc2, 0xfd, 0x0, 0x3e,
-    0x0, 0x2, 0xeb, 0xf0, 0x1f, 0xf8, 0xf, 0x0,
-    0x0, 0xff, 0xe0, 0x0, 0x7e, 0x2, 0xc0, 0x0,
-    0x3e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    /* U+6FB3 "澳" */
+    0x0, 0x0, 0x0, 0x1, 0x40, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x3, 0xd0, 0x0, 0x0, 0xb, 0x40,
+    0x0, 0x7, 0xc0, 0x0, 0x0, 0xf, 0xe0, 0x2a,
+    0xaf, 0xea, 0xaa, 0x80, 0x2, 0xfc, 0x7f, 0xff,
+    0xff, 0xff, 0xc0, 0x0, 0x7f, 0x7c, 0x0, 0x50,
+    0x3, 0xc0, 0x0, 0xd, 0x78, 0x40, 0xe0, 0x53,
+    0xc0, 0x0, 0x0, 0x78, 0xf0, 0xe0, 0xf3, 0xc0,
+    0x24, 0x0, 0x78, 0x78, 0xe3, 0xc3, 0xc0, 0xbe,
+    0x0, 0x78, 0x2c, 0xe7, 0x43, 0xc0, 0x2f, 0xc0,
+    0x78, 0x55, 0xf6, 0x53, 0xc0, 0x7, 0xf4, 0x7a,
+    0xff, 0xff, 0xf7, 0xc0, 0x0, 0xf8, 0x78, 0x7,
+    0xf4, 0x3, 0xc0, 0x0, 0x30, 0x78, 0xf, 0xfe,
+    0x3, 0xc0, 0x0, 0x0, 0x78, 0x3d, 0xeb, 0xc3,
+    0xc0, 0x0, 0x0, 0x78, 0xf4, 0xe1, 0xf3, 0xc0,
+    0x0, 0x50, 0x7f, 0xd0, 0xe0, 0x77, 0xc0, 0x0,
+    0xf4, 0x79, 0x0, 0x50, 0x13, 0xc0, 0x0, 0xf0,
+    0x0, 0x1, 0xf0, 0x0, 0x0, 0x1, 0xf3, 0xff,
+    0xff, 0xff, 0xff, 0xfc, 0x3, 0xd7, 0xff, 0xff,
+    0xff, 0xff, 0xfc, 0x3, 0xc0, 0x0, 0x3, 0xf8,
+    0x0, 0x0, 0xb, 0xc0, 0x0, 0xb, 0xfe, 0x0,
+    0x0, 0xf, 0x40, 0x0, 0x3f, 0xf, 0xc0, 0x0,
+    0x1f, 0x0, 0x7, 0xfc, 0x3, 0xf9, 0x0, 0x2e,
+    0x6, 0xff, 0xd0, 0x0, 0x7f, 0xe4, 0x3d, 0xf,
+    0xf9, 0x0, 0x0, 0x7, 0xfc, 0x18, 0xa, 0x40,
+    0x0, 0x0, 0x0, 0x18,
+
+    /* U+6FB6 "澶" */
+    0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x3, 0xd0, 0x0, 0x0, 0x1e, 0x0,
+    0x0, 0x2, 0xe0, 0x0, 0x0, 0x2f, 0xc1, 0xaa,
+    0xab, 0xfa, 0xaa, 0xa4, 0x7, 0xf1, 0xff, 0xff,
+    0xff, 0xff, 0xf8, 0x0, 0xfc, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x30, 0x6a, 0xaa, 0xaa, 0xaa,
+    0x80, 0x0, 0x0, 0xbf, 0xff, 0xff, 0xff, 0xc0,
+    0x10, 0x0, 0xb4, 0x0, 0x0, 0x3, 0xc0, 0xb8,
+    0x0, 0xb4, 0xbf, 0xff, 0xc3, 0xc0, 0x7f, 0x0,
+    0xb4, 0xb4, 0x2, 0xc3, 0xc0, 0xf, 0xd0, 0xb4,
+    0xb5, 0x56, 0xc3, 0xc0, 0x3, 0xf4, 0xb4, 0xbf,
+    0xff, 0xc3, 0xc0, 0x0, 0xb0, 0xb4, 0x0, 0x0,
+    0x3, 0xc0, 0x0, 0x10, 0xbf, 0xff, 0xff, 0xff,
+    0xc0, 0x0, 0x0, 0x55, 0x55, 0x55, 0x55, 0x40,
+    0x0, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xf0, 0x3f, 0xff, 0xff, 0xff, 0x0, 0x1, 0xf0,
+    0x3d, 0x0, 0x0, 0xf, 0x0, 0x2, 0xe0, 0x3e,
+    0x55, 0x55, 0x5f, 0x0, 0x3, 0xd0, 0x3f, 0xff,
+    0xff, 0xff, 0x0, 0x3, 0xc0, 0x3c, 0x0, 0x0,
+    0xf, 0x0, 0x7, 0xc0, 0x3f, 0xff, 0xff, 0xff,
+    0x0, 0xb, 0x40, 0x15, 0x55, 0x55, 0x55, 0x0,
+    0xf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f,
+    0x6, 0xaa, 0xaa, 0xaa, 0xaa, 0xa8, 0x2e, 0xb,
+    0xff, 0xff, 0xff, 0xff, 0xfc, 0x18, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
     /* U+6FB9 "澹" */
@@ -80116,34 +84386,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x1, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0,
 
-    /* U+6FBD "澽" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x3, 0xc0, 0x0, 0x0, 0xe, 0x0,
-    0x0, 0x3, 0xd0, 0x0, 0x0, 0x1f, 0xc0, 0x0,
-    0x3, 0xff, 0xff, 0x80, 0x7, 0xf4, 0x0, 0x3,
-    0xe5, 0x55, 0x40, 0x0, 0xfd, 0x0, 0x3, 0xd0,
-    0x0, 0x0, 0x0, 0x2c, 0xbf, 0xff, 0xff, 0xff,
-    0xf0, 0x0, 0x4, 0xba, 0xaa, 0xaa, 0xaa, 0xf0,
-    0x20, 0x0, 0xb0, 0x3, 0xc0, 0x0, 0xf0, 0xbd,
-    0x0, 0xb1, 0xab, 0xff, 0xd0, 0xd0, 0x2f, 0x80,
-    0xb3, 0xff, 0xfa, 0x4b, 0x0, 0xb, 0xe0, 0xb0,
-    0x3, 0xc0, 0xf, 0x0, 0x1, 0xf0, 0xb0, 0x2,
-    0xff, 0xfe, 0x0, 0x0, 0x50, 0xb0, 0x0, 0x15,
-    0x50, 0x0, 0x0, 0x0, 0xb1, 0xaa, 0xaa, 0xaa,
-    0xa0, 0x0, 0x0, 0xb3, 0xff, 0xff, 0xff, 0xf0,
-    0x1, 0x80, 0xf0, 0x0, 0xbd, 0x0, 0x0, 0x3,
-    0xd0, 0xf0, 0x1b, 0xf8, 0x2, 0xc0, 0x3, 0xd0,
-    0xf2, 0xfe, 0x3c, 0x1f, 0xc0, 0x3, 0xc0, 0xf2,
-    0x91, 0xff, 0xfd, 0x0, 0x7, 0xc0, 0xf0, 0x1f,
-    0xdf, 0xf8, 0x0, 0xb, 0x81, 0xe1, 0xfd, 0x2f,
-    0x3c, 0x0, 0xf, 0x42, 0xd7, 0xd1, 0xff, 0x4f,
-    0x0, 0xf, 0x3, 0xc1, 0xf, 0xdb, 0x47, 0xd0,
-    0x1f, 0x7, 0x81, 0xbe, 0xb, 0x41, 0xf8, 0x2e,
-    0xf, 0x1f, 0xe0, 0xf, 0x0, 0x7c, 0x3d, 0x2e,
-    0xe, 0x1, 0xff, 0x0, 0x4, 0x4, 0x1c, 0x0,
-    0x0, 0xa4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0,
-
     /* U+6FC0 "激" */
     0x0, 0x0, 0x0, 0xe0, 0x0, 0xa0, 0x0, 0x0,
     0x80, 0x0, 0x3c, 0x0, 0x3c, 0x0, 0x0, 0xbc,
@@ -80284,32 +84526,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x1d, 0x0, 0x0, 0x60, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+6FD5 "濕" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c,
-    0x0, 0xff, 0xff, 0xff, 0xff, 0x1, 0xfd, 0x3,
-    0xff, 0xff, 0xff, 0xfc, 0x0, 0xbe, 0xf, 0x0,
-    0x0, 0x0, 0xf0, 0x0, 0xbe, 0x3e, 0xaa, 0xaa,
-    0xab, 0xc0, 0x0, 0x70, 0xff, 0xff, 0xff, 0xff,
-    0x0, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x7c, 0x4,
-    0x0, 0xf, 0x0, 0x0, 0x0, 0xf0, 0x7c, 0x0,
-    0x3f, 0xff, 0xff, 0xff, 0xc1, 0xfd, 0x0, 0xaf,
-    0xaa, 0xab, 0xaa, 0x0, 0xfe, 0x0, 0x3c, 0x0,
-    0x2d, 0x0, 0x0, 0xbd, 0x3, 0xd0, 0x81, 0xf0,
-    0x20, 0x0, 0xb0, 0x3d, 0xb, 0x5f, 0x3, 0xd0,
-    0x0, 0x47, 0xfa, 0xf9, 0xfe, 0xbd, 0x0, 0x0,
-    0x1f, 0xff, 0x8b, 0xff, 0xd0, 0x0, 0x10, 0x0,
-    0xb9, 0x0, 0x2e, 0x40, 0x0, 0xf0, 0xb, 0x9e,
-    0x2, 0xe7, 0x80, 0x7, 0xc0, 0xb8, 0x3c, 0x2e,
-    0xb, 0x0, 0x2e, 0xf, 0xeb, 0xff, 0xfa, 0xbf,
-    0x0, 0xf4, 0x3f, 0xff, 0xff, 0xff, 0xfd, 0x3,
-    0xc0, 0x0, 0x1, 0xd0, 0x0, 0x34, 0x2f, 0x2,
-    0xd0, 0x90, 0x28, 0xe, 0x0, 0xf4, 0xf, 0x3,
-    0xc0, 0xf0, 0x3c, 0x3, 0xc0, 0x3c, 0xf, 0x2,
-    0xd0, 0x78, 0x2f, 0x2, 0xe0, 0x2d, 0x3, 0xc0,
-    0xf0, 0xf8, 0xf, 0x0, 0x78, 0xf, 0x1, 0xe1,
-    0x40, 0x78, 0x0, 0x40, 0x10, 0x3, 0x40, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x0,
-
     /* U+6FDE "濞" */
     0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x3, 0xd0, 0x0, 0x0, 0xe, 0x0,
@@ -80443,60 +84659,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x3c, 0x0, 0x0, 0x0, 0x0, 0x4, 0x0,
     0x3c, 0x0, 0x0, 0x0, 0x0,
 
-    /* U+6FF0 "濰" */
-    0x0, 0x0, 0x5, 0x0, 0x2c, 0x0, 0x0, 0xd,
-    0x0, 0xf, 0x0, 0x2c, 0x3c, 0x0, 0x1f, 0x80,
-    0x1e, 0x0, 0x3c, 0x3c, 0x0, 0x7, 0xf0, 0x3c,
-    0x0, 0x38, 0x2e, 0x0, 0x0, 0xfc, 0x78, 0x10,
-    0x78, 0x1f, 0x0, 0x0, 0x34, 0xf0, 0xb4, 0xff,
-    0xff, 0xfc, 0x0, 0x1, 0xe0, 0xf0, 0xff, 0xff,
-    0xf8, 0x0, 0x3, 0xc2, 0xd2, 0xf0, 0x3c, 0x0,
-    0x34, 0xb, 0xef, 0xc3, 0xf0, 0x3c, 0x0, 0x7e,
-    0xf, 0xff, 0x47, 0xf0, 0x3c, 0x0, 0x1f, 0xc1,
-    0xf, 0xf, 0xf0, 0x3c, 0x0, 0x3, 0xe0, 0x3d,
-    0x9a, 0xbf, 0xff, 0xf4, 0x0, 0xd0, 0x78, 0xf0,
-    0xbf, 0xff, 0xf4, 0x0, 0x0, 0xf0, 0x74, 0xb0,
-    0x3c, 0x0, 0x0, 0x3, 0xe5, 0xb8, 0xb0, 0x3c,
-    0x0, 0x0, 0x4b, 0xff, 0xfc, 0xb0, 0x3c, 0x0,
-    0x1, 0xf6, 0x54, 0x1c, 0xbf, 0xff, 0xf4, 0x2,
-    0xe0, 0x0, 0x10, 0xbf, 0xff, 0xf4, 0x3, 0xd3,
-    0x9d, 0xb0, 0xb0, 0x3d, 0x0, 0x3, 0xc7, 0x4e,
-    0x78, 0xb0, 0x3c, 0x0, 0xb, 0x87, 0x4e, 0x3c,
-    0xb0, 0x3c, 0x0, 0xf, 0x4b, 0xf, 0x2c, 0xb0,
-    0x3c, 0x0, 0xf, 0xf, 0xf, 0x1d, 0xb0, 0x3c,
-    0x0, 0x2e, 0xf, 0xf, 0xe, 0xbf, 0xff, 0xfd,
-    0x3d, 0x1e, 0xf, 0x4, 0xbf, 0xff, 0xfd, 0x7c,
-    0x19, 0x0, 0x0, 0xb0, 0x0, 0x0, 0x14, 0x0,
-    0x0, 0x0, 0xb0, 0x0, 0x0,
-
-    /* U+700D "瀍" */
-    0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0xf8, 0x0, 0x0, 0x4, 0x0,
-    0x0, 0x0, 0x7c, 0x0, 0x0, 0x3e, 0x0, 0xff,
-    0xff, 0xff, 0xff, 0xfc, 0x1f, 0xc0, 0xff, 0xff,
-    0xff, 0xff, 0xfc, 0x3, 0xf4, 0xf0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0xb8, 0xf0, 0x15, 0x55, 0x55,
-    0x40, 0x0, 0x20, 0xf0, 0xff, 0xff, 0xff, 0xe0,
-    0x0, 0x0, 0xf0, 0xf0, 0xf, 0x1, 0xe0, 0x10,
-    0x0, 0xf0, 0xf5, 0x5f, 0x55, 0xe0, 0xbc, 0x0,
-    0xf0, 0xff, 0xff, 0xff, 0xe0, 0x3f, 0x40, 0xf0,
-    0xf0, 0xf, 0x0, 0xe0, 0xb, 0xe0, 0xf0, 0xff,
-    0xff, 0xff, 0xe0, 0x2, 0xe0, 0xf0, 0x55, 0x5f,
-    0x55, 0x40, 0x0, 0x40, 0xf0, 0x55, 0x5f, 0x55,
-    0x50, 0x0, 0x0, 0xf0, 0xff, 0xff, 0xff, 0xf0,
-    0x0, 0x0, 0xf0, 0x0, 0xf, 0x0, 0x0, 0x2,
-    0x80, 0xf2, 0xaa, 0xaf, 0xaa, 0xa4, 0x3, 0xc0,
-    0xe3, 0xff, 0xff, 0xff, 0xfc, 0x3, 0xc0, 0xe0,
-    0x1d, 0x0, 0xf, 0x0, 0x7, 0x81, 0xe0, 0xbd,
-    0xf, 0xb, 0xe0, 0xb, 0x42, 0xd7, 0xf0, 0xf,
-    0x1, 0xfc, 0xf, 0x2, 0xcf, 0xaf, 0xff, 0xff,
-    0x6c, 0xf, 0x3, 0xc0, 0x1a, 0xaf, 0xaa, 0x0,
-    0x1e, 0x7, 0x80, 0x0, 0xf, 0x0, 0x0, 0x3d,
-    0xf, 0x46, 0xaa, 0xaf, 0xaa, 0xa8, 0x3c, 0x1f,
-    0x7, 0xff, 0xff, 0xff, 0xfc, 0x78, 0x1d, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0,
-
     /* U+7011 "瀑" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1,
     0xe0, 0xb, 0xff, 0xff, 0xff, 0xf0, 0x0, 0x7f,
@@ -80579,6 +84741,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x3e, 0x30, 0x1e, 0x1, 0xf8, 0x0, 0x14, 0x0,
     0x0, 0x4, 0x0, 0x0,
 
+    /* U+7023 "瀣" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x0, 0x34,
+    0x0, 0xf, 0x0, 0x0, 0x0, 0x0, 0x2f, 0x80,
+    0x3, 0xff, 0x7f, 0xff, 0xe0, 0x2, 0xf8, 0x4,
+    0xfa, 0x8b, 0xaa, 0xf8, 0x0, 0x1f, 0x87, 0x3c,
+    0x2, 0xc0, 0x2c, 0x0, 0x1, 0xc3, 0xff, 0xfe,
+    0x38, 0x1f, 0x0, 0x0, 0x3, 0xea, 0xaf, 0x8f,
+    0x4f, 0x40, 0x0, 0x2, 0xf4, 0x3, 0xc0, 0xff,
+    0x80, 0xb, 0x81, 0xef, 0xc3, 0xd0, 0x1f, 0xc0,
+    0x2, 0xf8, 0x10, 0xf3, 0xd0, 0x2f, 0xf8, 0x0,
+    0x1f, 0xc0, 0xb, 0xd0, 0x7f, 0x9f, 0xe0, 0x1,
+    0xfc, 0x1f, 0xd0, 0xfe, 0x0, 0xbf, 0x40, 0xd,
+    0x7f, 0x81, 0x68, 0xa0, 0x2, 0xc0, 0x0, 0x3e,
+    0x0, 0xf0, 0x3c, 0x0, 0x0, 0x0, 0x2, 0xaa,
+    0xbc, 0xf, 0xaa, 0xa0, 0x0, 0x10, 0xbf, 0xff,
+    0x3, 0xff, 0xfc, 0x0, 0x1e, 0x0, 0x3, 0xc0,
+    0xf0, 0x0, 0x0, 0xb, 0x41, 0x55, 0xf0, 0x3e,
+    0x55, 0x0, 0x3, 0xc0, 0xff, 0xfc, 0xf, 0xff,
+    0xd0, 0x0, 0xf0, 0x0, 0xf, 0x3, 0xc0, 0x0,
+    0x0, 0x78, 0x0, 0x3, 0xc0, 0xf0, 0x0, 0x0,
+    0x2d, 0xb, 0xff, 0xf0, 0x3f, 0xff, 0xc0, 0xf,
+    0x1, 0xaa, 0xbc, 0xf, 0xaa, 0x90, 0x7, 0xc0,
+    0x0, 0xf, 0x3, 0xc0, 0x0, 0x2, 0xe0, 0xbf,
+    0xff, 0xff, 0xff, 0xff, 0x40, 0xf4, 0x3f, 0xff,
+    0xff, 0xff, 0xff, 0xe0, 0x2c, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+7035 "瀵" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x1c, 0x0, 0xe0, 0x6, 0x0, 0xe, 0x0,
@@ -80741,6 +84931,18 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0x2, 0xf8, 0x18, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x20,
 
+    /* U+706C "灬" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3,
+    0xc0, 0x60, 0xa, 0x0, 0xf0, 0x0, 0x1f, 0x3,
+    0xc0, 0x3d, 0x3, 0xe0, 0x0, 0xf8, 0xb, 0x40,
+    0xb8, 0x3, 0xd0, 0x7, 0xc0, 0x1e, 0x0, 0xf0,
+    0xb, 0xc0, 0x3e, 0x0, 0x7c, 0x3, 0xd0, 0xf,
+    0x41, 0xf4, 0x0, 0xf0, 0xb, 0x80, 0x2f, 0xf,
+    0xc0, 0x3, 0xd0, 0x1f, 0x0, 0x3d, 0x7d, 0x0,
+    0xb, 0x40, 0x38, 0x0, 0xb9, 0xe0, 0x0, 0x14,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+706D "灭" */
     0x5, 0x55, 0x55, 0x55, 0x55, 0x55, 0x50, 0x2f,
     0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x2f, 0xff,
@@ -81301,34 +85503,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x2f, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
-    /* U+709F "炟" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x3c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c, 0x0,
-    0x7f, 0xff, 0xff, 0xc0, 0x0, 0x3c, 0x0, 0x7f,
-    0xff, 0xff, 0xc0, 0x0, 0x3c, 0x0, 0x7c, 0x0,
-    0x3, 0xc0, 0xb4, 0x3c, 0x2c, 0x7c, 0x0, 0x3,
-    0xc0, 0xb8, 0x3c, 0x3c, 0x7c, 0x0, 0x3, 0xc0,
-    0x7c, 0x3c, 0x7c, 0x7c, 0x0, 0x3, 0xc0, 0x3c,
-    0x3c, 0xb8, 0x7c, 0x0, 0x3, 0xc0, 0x3d, 0x3c,
-    0xf0, 0x7f, 0xff, 0xff, 0xc0, 0x2e, 0x3e, 0xf0,
-    0x7f, 0xff, 0xff, 0xc0, 0x1e, 0x3e, 0xd0, 0x7d,
-    0x55, 0x57, 0xc0, 0x1e, 0x3c, 0x0, 0x7c, 0x0,
-    0x3, 0xc0, 0x0, 0x3c, 0x0, 0x7c, 0x0, 0x3,
-    0xc0, 0x0, 0x3c, 0x0, 0x7c, 0x0, 0x3, 0xc0,
-    0x0, 0x3c, 0x0, 0x7c, 0x0, 0x3, 0xc0, 0x0,
-    0x7e, 0x0, 0x7c, 0x0, 0x3, 0xc0, 0x0, 0xbf,
-    0x40, 0x7f, 0xff, 0xff, 0xc0, 0x0, 0xfb, 0xc0,
-    0x7f, 0xff, 0xff, 0xc0, 0x0, 0xf2, 0xf0, 0x0,
-    0x0, 0x0, 0x0, 0x2, 0xe0, 0xfc, 0x0, 0x0,
-    0x0, 0x0, 0x3, 0xd0, 0x3d, 0x0, 0x0, 0x0,
-    0x0, 0x7, 0xc0, 0x14, 0x0, 0x0, 0x0, 0x0,
-    0xf, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2f,
-    0x0, 0x3, 0xff, 0xff, 0xff, 0xfc, 0x3d, 0x0,
-    0x3, 0xff, 0xff, 0xff, 0xfc, 0x18, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0,
-
     /* U+70AB "炫" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0xf0, 0x0, 0x2, 0xe0, 0x0, 0x0, 0x3, 0xc0,
@@ -81466,6 +85640,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0xf0, 0x0, 0xf, 0xe0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+70B1 "炱" */
+    0x0, 0x0, 0x1, 0x80, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x7, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x2f, 0x40, 0x2c, 0x0, 0x0, 0x0, 0x1, 0xfd,
+    0x0, 0x3f, 0x40, 0x0, 0x0, 0xb, 0xe0, 0x0,
+    0xb, 0xe0, 0x0, 0x0, 0xbf, 0x40, 0x0, 0x1,
+    0xfc, 0x0, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0x40, 0x1f, 0xff, 0xff, 0xff, 0xea, 0xab, 0xe0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff,
+    0xff, 0xff, 0xff, 0xfc, 0x0, 0x0, 0xff, 0xff,
+    0xff, 0xff, 0xfc, 0x0, 0x0, 0xf0, 0x0, 0x0,
+    0x0, 0x3c, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x0,
+    0x3c, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0x3c,
+    0x0, 0x0, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0,
+    0x0, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x1,
+    0x0, 0x0, 0x28, 0x0, 0x0, 0x0, 0xb, 0xd0,
+    0x0, 0x7c, 0x0, 0x7, 0xc0, 0x7, 0xf8, 0x0,
+    0x7c, 0x0, 0x2f, 0x80, 0x0, 0xbf, 0x40, 0xfd,
+    0x2, 0xfd, 0x0, 0x0, 0xf, 0xc1, 0xff, 0xb,
+    0xf0, 0x0, 0x0, 0x2, 0x7, 0xef, 0xc3, 0x40,
+    0x0, 0x0, 0x0, 0x7f, 0x83, 0xf8, 0x0, 0x0,
+    0x0, 0x7, 0xfd, 0x0, 0xbf, 0x90, 0x0, 0x6,
+    0xff, 0xe0, 0x0, 0x1f, 0xfe, 0x50, 0xbf, 0xfd,
+    0x0, 0x0, 0x1, 0xbf, 0xfc, 0x3e, 0x40, 0x0,
+    0x0, 0x0, 0x6, 0xf4, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+70B3 "炳" */
     0x0, 0x28, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x3c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c,
@@ -81906,59 +86108,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x20,
 
-    /* U+70DC "烜" */
-    0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x3, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0xf0, 0x3f, 0xff, 0xff, 0xff, 0xd0, 0x0, 0x3c,
-    0xf, 0xff, 0xff, 0xff, 0xf4, 0x0, 0xf, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0xf, 0x3, 0xc6, 0x0,
-    0x0, 0x0, 0x0, 0x3, 0xd0, 0xf3, 0xc0, 0x0,
-    0x0, 0x0, 0x0, 0xb8, 0x3d, 0xf1, 0xff, 0xff,
-    0xff, 0x80, 0x1f, 0xf, 0xb8, 0x7f, 0xff, 0xff,
-    0xe0, 0x3, 0xc3, 0xfd, 0x1e, 0x0, 0x0, 0x78,
-    0x0, 0xf0, 0xff, 0x7, 0x80, 0x0, 0x1e, 0x0,
-    0x2d, 0x3f, 0x81, 0xe0, 0x0, 0x7, 0x80, 0xb,
-    0x8f, 0x0, 0x78, 0x0, 0x2, 0xe0, 0x1, 0x83,
-    0xc0, 0x1f, 0xff, 0xff, 0xf8, 0x0, 0x0, 0xf0,
-    0x7, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x7c, 0x1,
-    0xe0, 0x0, 0x7, 0x80, 0x0, 0x1f, 0x0, 0x78,
-    0x0, 0x1, 0xe0, 0x0, 0xb, 0xf0, 0x1e, 0x0,
-    0x0, 0x78, 0x0, 0x3, 0xff, 0x7, 0xff, 0xff,
-    0xfe, 0x0, 0x0, 0xf3, 0xe1, 0xff, 0xff, 0xff,
-    0x80, 0x0, 0x78, 0x3d, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x3d, 0x7, 0x80, 0x0, 0x0, 0x0, 0x0,
-    0x1f, 0x0, 0x40, 0x0, 0x0, 0x0, 0x0, 0xf,
-    0x40, 0x3f, 0xff, 0xff, 0xff, 0xfc, 0xb, 0xc0,
-    0xf, 0xff, 0xff, 0xff, 0xff, 0x3, 0xd0, 0x1,
-    0x55, 0x55, 0x55, 0x55, 0x40, 0x60, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0,
-
-    /* U+70DD "烝" */
-    0x2, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x2,
-    0xff, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x1b, 0xf4, 0x0, 0x0, 0x0, 0x0,
-    0x1, 0xff, 0x40, 0x0, 0x0, 0x0, 0x0, 0x1f,
-    0xf4, 0x0, 0x0, 0x2f, 0xff, 0xf0, 0x3e, 0xa0,
-    0x2, 0xc0, 0x3f, 0xff, 0xf4, 0x3c, 0xf0, 0x1f,
-    0xd0, 0x0, 0x1, 0xf0, 0x3c, 0xb9, 0xfe, 0x0,
-    0x0, 0x3, 0xe0, 0x3c, 0x3f, 0xf0, 0x0, 0x0,
-    0x7, 0xc0, 0x3c, 0x1f, 0x40, 0x0, 0x0, 0x1f,
-    0x40, 0x3c, 0xb, 0xc0, 0x0, 0x0, 0x7d, 0x0,
-    0x3c, 0x3, 0xf4, 0x0, 0x2, 0xf4, 0x0, 0x3c,
-    0x0, 0xfe, 0x0, 0xf, 0xd0, 0x1, 0xbc, 0x0,
-    0x2f, 0xd0, 0x7f, 0x40, 0x3f, 0xf8, 0x0, 0x7,
-    0xfc, 0x78, 0x0, 0x1e, 0x90, 0x0, 0x0, 0xb4,
-    0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3,
-    0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x3, 0xff,
-    0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0x0, 0x0,
-    0x40, 0x4, 0x0, 0x1, 0xf0, 0x7c, 0x3, 0xc0,
-    0x3d, 0x0, 0x3, 0xd0, 0x3c, 0x2, 0xe0, 0x1f,
-    0x0, 0xb, 0xc0, 0x3d, 0x0, 0xf0, 0xf, 0x80,
-    0xf, 0x40, 0x2e, 0x0, 0xf4, 0x3, 0xd0, 0x1e,
-    0x0, 0x2e, 0x0, 0x60, 0x2, 0xc0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x0,
-
     /* U+70DF "烟" */
     0x0, 0x28, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0xf0, 0x5, 0x55, 0x55, 0x55, 0x40, 0x3, 0xc0,
@@ -82121,6 +86270,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+70EB "烫" */
+    0x2, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3,
+    0xf8, 0x7, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x7f,
+    0x4b, 0xff, 0xff, 0xff, 0x0, 0x0, 0xb, 0xc0,
+    0x0, 0x1b, 0xf8, 0x0, 0x18, 0x1, 0x40, 0x1,
+    0xff, 0x40, 0x0, 0x3f, 0x40, 0x0, 0x2f, 0xe4,
+    0x0, 0x0, 0xb, 0xf4, 0x6, 0xfe, 0x0, 0x0,
+    0x0, 0x0, 0xfc, 0x2f, 0xff, 0xff, 0xff, 0xd0,
+    0x0, 0x2c, 0x2f, 0xff, 0xff, 0xff, 0xd0, 0x0,
+    0x0, 0x0, 0x7c, 0xf, 0x42, 0xd0, 0x0, 0x2c,
+    0x0, 0xf4, 0xf, 0x3, 0xc0, 0x0, 0x7c, 0x3,
+    0xe0, 0x2e, 0x3, 0xc0, 0x0, 0xf4, 0xf, 0xc0,
+    0x7c, 0x3, 0xc0, 0x3, 0xe0, 0x7f, 0x1, 0xf4,
+    0x7, 0xc0, 0xf, 0x82, 0xf8, 0x7, 0xe2, 0xff,
+    0x40, 0x1f, 0x1, 0xd0, 0x12, 0x81, 0xf9, 0x0,
+    0x4, 0x10, 0x0, 0x7c, 0x0, 0x8, 0x0, 0x0,
+    0xf8, 0x0, 0x7c, 0x0, 0x3e, 0x0, 0x0, 0x7f,
+    0x0, 0xbc, 0x0, 0xfc, 0x0, 0x0, 0xf, 0xc0,
+    0xfe, 0x7, 0xf0, 0x0, 0x0, 0x3, 0xc2, 0xff,
+    0x47, 0x80, 0x0, 0x0, 0x0, 0x4b, 0xd7, 0xd0,
+    0x0, 0x0, 0x0, 0x0, 0x7f, 0x41, 0xfd, 0x0,
+    0x0, 0x0, 0x1b, 0xfd, 0x0, 0x7f, 0xe0, 0x0,
+    0x6, 0xff, 0xd0, 0x0, 0x7, 0xff, 0x90, 0xbf,
+    0xf9, 0x0, 0x0, 0x0, 0x6f, 0xfc, 0x3e, 0x40,
+    0x0, 0x0, 0x0, 0x0, 0xb8, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+70EC "烬" */
     0x0, 0x28, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0xf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3,
@@ -82259,33 +86435,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x3, 0x40, 0x4, 0x0, 0x20, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
-    /* U+70FA "烺" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x3c, 0x0, 0x0, 0x78, 0x0, 0x0, 0x0, 0x3c,
-    0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x3c, 0x0,
-    0x0, 0x3d, 0x0, 0x0, 0x0, 0x3c, 0x1, 0xff,
-    0xff, 0xff, 0xc0, 0x0, 0x3c, 0x11, 0xff, 0xff,
-    0xff, 0xc0, 0xf0, 0x3c, 0xb9, 0xf0, 0x0, 0x3,
-    0xc0, 0xb4, 0x3c, 0xf5, 0xf0, 0x0, 0x3, 0xc0,
-    0x78, 0x3c, 0xf1, 0xf0, 0x0, 0x3, 0xc0, 0x3c,
-    0x3e, 0xf1, 0xff, 0xff, 0xff, 0xc0, 0x3c, 0x3f,
-    0xd1, 0xff, 0xff, 0xff, 0xc0, 0x2d, 0x3f, 0xc1,
-    0xf0, 0x0, 0x3, 0xc0, 0x2e, 0x3c, 0x1, 0xf0,
-    0x0, 0x3, 0xc0, 0x1f, 0x3c, 0x1, 0xf0, 0x0,
-    0x3, 0xc0, 0x4, 0x3c, 0x1, 0xff, 0xff, 0xff,
-    0xc0, 0x0, 0x38, 0x1, 0xff, 0xff, 0xff, 0xc0,
-    0x0, 0x78, 0x1, 0xf0, 0xb4, 0x0, 0x0, 0x0,
-    0x78, 0x1, 0xf0, 0x7c, 0x0, 0xf0, 0x0, 0xbd,
-    0x1, 0xf0, 0x3d, 0x7, 0xe0, 0x0, 0xff, 0x41,
-    0xf0, 0x1f, 0x3f, 0x40, 0x0, 0xf7, 0xc1, 0xf0,
-    0xf, 0xf8, 0x0, 0x2, 0xe2, 0xf1, 0xf0, 0x3,
-    0xe0, 0x0, 0x3, 0xc0, 0xf5, 0xf0, 0x1, 0xf8,
-    0x0, 0xb, 0xc0, 0x51, 0xf0, 0x2c, 0x7f, 0x0,
-    0xf, 0x40, 0x1, 0xf7, 0xfc, 0x1f, 0xe0, 0x3f,
-    0x0, 0x2, 0xff, 0xe0, 0x2, 0xfd, 0x3c, 0x0,
-    0x3, 0xf9, 0x0, 0x0, 0x7c, 0x4, 0x0, 0x1,
-    0x80, 0x0, 0x0, 0x0,
-
     /* U+70FD "烽" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0xf, 0x0, 0x0, 0xf4, 0x0, 0x0, 0x0, 0x3,
@@ -82367,34 +86516,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x3c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+710C "焌" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0xa, 0x0, 0x0, 0xb, 0x0, 0x0, 0x0, 0x2,
-    0xd0, 0x0, 0x7, 0xc0, 0x0, 0x0, 0x0, 0xb4,
-    0x0, 0x3, 0xd0, 0xa0, 0x0, 0x0, 0x2d, 0x0,
-    0x3, 0xd0, 0x3e, 0x0, 0x0, 0xb, 0x40, 0x3,
-    0xe0, 0x3, 0xd0, 0x3, 0x82, 0xd2, 0x43, 0xe0,
-    0x0, 0x7d, 0x0, 0xf0, 0xb5, 0xe7, 0xff, 0xff,
-    0xff, 0xc0, 0x3d, 0x2d, 0xf4, 0xff, 0xff, 0xfa,
-    0xbc, 0xb, 0x4b, 0x7c, 0x10, 0x0, 0x0, 0xa,
-    0x1, 0xe2, 0xfe, 0x0, 0x28, 0x3, 0xc0, 0x0,
-    0x3c, 0xbf, 0x40, 0x3f, 0x1, 0xfd, 0x0, 0xf,
-    0x2d, 0x80, 0x7f, 0x0, 0xb, 0xe0, 0x3, 0xdf,
-    0x0, 0xbe, 0x34, 0x0, 0x3f, 0x40, 0x53, 0xc0,
-    0xbd, 0x2e, 0x0, 0x2, 0xd0, 0x0, 0xf0, 0x8,
-    0x1f, 0xff, 0xff, 0x10, 0x0, 0x3c, 0x0, 0xf,
-    0xff, 0xff, 0xc0, 0x0, 0xf, 0x0, 0xb, 0xc0,
-    0x2, 0xf0, 0x0, 0x3, 0xe0, 0xb, 0xf4, 0x0,
-    0xf0, 0x0, 0x1, 0xfe, 0xb, 0xdf, 0x0, 0xf8,
-    0x0, 0x0, 0xbb, 0xd7, 0xd1, 0xf0, 0xfc, 0x0,
-    0x0, 0x3c, 0x7c, 0x80, 0x2f, 0xfc, 0x0, 0x0,
-    0x1f, 0xb, 0xc0, 0x3, 0xfc, 0x0, 0x0, 0xf,
-    0x40, 0xf0, 0x7, 0xff, 0xd0, 0x0, 0x3, 0xc0,
-    0x10, 0x1f, 0xf4, 0xbf, 0x80, 0x3, 0xe0, 0x1,
-    0xbf, 0xd0, 0x7, 0xff, 0x80, 0xf0, 0x1, 0xfe,
-    0x0, 0x0, 0x1b, 0xe0, 0x14, 0x0, 0x24, 0x0,
-    0x0, 0x0, 0x10,
-
     /* U+7110 "焐" */
     0x0, 0x14, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x3c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c,
@@ -82588,33 +86709,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0x74, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+711C "焜" */
-    0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x2c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2c,
-    0x0, 0xff, 0xff, 0xff, 0xf0, 0x0, 0x2c, 0x1,
-    0xff, 0xff, 0xff, 0xf0, 0x0, 0x2c, 0x1, 0xe0,
-    0x0, 0x1, 0xf0, 0x0, 0x2c, 0x11, 0xe0, 0x0,
-    0x0, 0xf0, 0xb8, 0x2c, 0x7d, 0xe0, 0x0, 0x0,
-    0xf0, 0x7c, 0x2c, 0xb9, 0xff, 0xff, 0xff, 0xf0,
-    0x3c, 0x2d, 0xf5, 0xff, 0xff, 0xff, 0xf0, 0x3d,
-    0x2e, 0xf1, 0xe0, 0x0, 0x0, 0xf0, 0x2e, 0x2f,
-    0xe1, 0xe0, 0x0, 0x0, 0xf0, 0x1e, 0x2e, 0xc1,
-    0xff, 0xff, 0xff, 0xf0, 0xf, 0x2c, 0x1, 0xff,
-    0xff, 0xff, 0xf0, 0xf, 0x3c, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x4, 0x3c, 0x0, 0x90, 0x3, 0x80,
-    0x0, 0x0, 0x3c, 0x1, 0xe0, 0x3, 0xc0, 0x0,
-    0x0, 0x3c, 0x1, 0xe0, 0x3, 0xc0, 0x78, 0x0,
-    0x3c, 0x1, 0xe0, 0x3, 0xc2, 0xfc, 0x0, 0x7d,
-    0x1, 0xff, 0xf7, 0xef, 0xd0, 0x0, 0xbf, 0x1,
-    0xff, 0xf7, 0xfe, 0x0, 0x0, 0xff, 0xc1, 0xe0,
-    0x3, 0xe0, 0x0, 0x1, 0xf3, 0xe1, 0xe0, 0x3,
-    0xc0, 0xe, 0x3, 0xd0, 0xf5, 0xe0, 0x3, 0xc0,
-    0xf, 0x7, 0xc0, 0x61, 0xe0, 0x63, 0xc0, 0xe,
-    0xf, 0x80, 0x1, 0xfb, 0xf3, 0xd0, 0x2d, 0x1f,
-    0x0, 0x3, 0xff, 0x93, 0xff, 0xfc, 0x2d, 0x0,
-    0x3, 0xe4, 0x0, 0xbf, 0xf4, 0x4, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0,
-
     /* U+7126 "焦" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x1e, 0x0, 0x2d, 0x0, 0x0, 0x0, 0x0, 0xbc,
@@ -82861,30 +86955,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x3, 0xc0, 0xe, 0x0, 0x38, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
-    /* U+7155 "煕" */
-    0xf, 0xff, 0xff, 0xf8, 0xff, 0xff, 0x80, 0x3f,
-    0xff, 0xff, 0xe3, 0xff, 0xff, 0x0, 0xf0, 0x3,
-    0x80, 0xf, 0x0, 0x3c, 0x3, 0xc0, 0xe, 0x0,
-    0x3c, 0x0, 0xf0, 0xf, 0x2c, 0x38, 0x0, 0xf0,
-    0x3, 0xc0, 0x3c, 0xb0, 0xff, 0x83, 0xc0, 0xf,
-    0x0, 0xf2, 0xc3, 0xfe, 0xf, 0x0, 0x3c, 0x3,
-    0xcb, 0x0, 0x38, 0x3f, 0xff, 0xf0, 0xf, 0x2c,
-    0x0, 0xe0, 0xff, 0xff, 0xc0, 0x3c, 0xb0, 0x3,
-    0x83, 0xc0, 0x0, 0x0, 0xf2, 0xc2, 0xae, 0xf,
-    0x0, 0x0, 0x3, 0xcb, 0xf, 0xf8, 0x3c, 0x0,
-    0x1d, 0xf, 0x1c, 0x38, 0x0, 0xf0, 0x0, 0xb4,
-    0x3c, 0x0, 0xe0, 0x3, 0xc0, 0x2, 0xd0, 0xf0,
-    0x3, 0x80, 0xf, 0x0, 0xf, 0x3, 0xff, 0xff,
-    0xfe, 0x3f, 0xff, 0xfc, 0xf, 0xff, 0xff, 0xfc,
-    0x3f, 0xff, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x14, 0x1, 0x40, 0x18, 0x1, 0xc0,
-    0x0, 0xf4, 0x1f, 0x0, 0xf4, 0xf, 0x80, 0x7,
-    0xc0, 0x3c, 0x2, 0xe0, 0x1f, 0x0, 0x2e, 0x0,
-    0xf4, 0x7, 0xc0, 0x3e, 0x0, 0xf4, 0x2, 0xd0,
-    0xf, 0x40, 0x7c, 0xb, 0xc0, 0x7, 0x80, 0x2f,
-    0x0, 0xbc, 0x3d, 0x0, 0xf, 0x0, 0x3c, 0x1,
-    0xf0, 0xb0, 0x0, 0x10, 0x0, 0x0, 0x2, 0x40,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    /* U+715C "煜" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x3c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c,
+    0x0, 0xff, 0xff, 0xff, 0xd0, 0x0, 0x3c, 0x0,
+    0xff, 0xff, 0xff, 0xe0, 0x0, 0x3c, 0x0, 0xf0,
+    0x0, 0x1, 0xe0, 0x4, 0x3c, 0x0, 0xf0, 0x0,
+    0x1, 0xe0, 0x3c, 0x3c, 0x3c, 0xf0, 0x0, 0x1,
+    0xe0, 0x2d, 0x3c, 0x7c, 0xff, 0xff, 0xff, 0xe0,
+    0x1e, 0x3c, 0xf4, 0xff, 0xff, 0xff, 0xe0, 0xf,
+    0x3d, 0xf0, 0xf0, 0x0, 0x1, 0xe0, 0xf, 0x3f,
+    0xe0, 0xf0, 0x0, 0x1, 0xe0, 0xb, 0x7f, 0xc0,
+    0xff, 0xff, 0xff, 0xe0, 0xb, 0xbc, 0x0, 0xff,
+    0xff, 0xff, 0xe0, 0x7, 0xbc, 0x0, 0x0, 0x5,
+    0x0, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x2e, 0x0,
+    0x0, 0x0, 0x3c, 0x0, 0x0, 0x1f, 0x0, 0x0,
+    0x0, 0x3d, 0x0, 0x0, 0xf, 0x40, 0x0, 0x0,
+    0x7f, 0x3, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x7f,
+    0x43, 0xff, 0xff, 0xff, 0xfc, 0x0, 0xbf, 0xc0,
+    0x5, 0x0, 0x9, 0x0, 0x0, 0xf3, 0xd0, 0x1f,
+    0x0, 0xf, 0x0, 0x0, 0xf2, 0xf0, 0xf, 0x40,
+    0x2e, 0x0, 0x2, 0xe0, 0xf4, 0x7, 0xc0, 0x3c,
+    0x0, 0x3, 0xc0, 0xe0, 0x3, 0xc0, 0x78, 0x0,
+    0xb, 0xc0, 0x0, 0x1, 0x40, 0xf4, 0x0, 0xf,
+    0x40, 0x2f, 0xff, 0xff, 0xff, 0xff, 0x3e, 0x0,
+    0x2f, 0xff, 0xff, 0xff, 0xff, 0x2c, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
 
     /* U+715E "煞" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -83049,6 +87146,35 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x20, 0x0, 0xd0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+7172 "煲" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xb8, 0x3f, 0xff, 0xff, 0xfc, 0x0, 0x0, 0x7c,
+    0xf, 0xaa, 0xaa, 0xaf, 0x0, 0x0, 0x3e, 0x3,
+    0xc0, 0x0, 0x3, 0xc0, 0x0, 0x2f, 0x0, 0xf0,
+    0x0, 0x0, 0xf0, 0x0, 0x1f, 0xc0, 0x3f, 0xff,
+    0xff, 0xfc, 0x0, 0xf, 0xf0, 0xa, 0xaa, 0xfa,
+    0xaa, 0x0, 0xf, 0xbc, 0x0, 0x0, 0x3c, 0x0,
+    0x0, 0xf, 0xcf, 0x0, 0x0, 0xf, 0x0, 0x0,
+    0x2, 0xc3, 0xc3, 0xff, 0xff, 0xff, 0xff, 0xd0,
+    0x0, 0xf0, 0xaa, 0xaf, 0xfa, 0xaa, 0xa4, 0x0,
+    0x3c, 0x0, 0x7, 0xfc, 0x90, 0x0, 0x0, 0xf,
+    0x0, 0xb, 0xdf, 0x7f, 0x80, 0x0, 0x3, 0xc0,
+    0x6f, 0x83, 0xc1, 0xfe, 0x0, 0x0, 0xf1, 0xff,
+    0x40, 0xf0, 0x7, 0xf8, 0x0, 0x18, 0x79, 0x0,
+    0x3c, 0x0, 0x1d, 0x0, 0x8, 0x0, 0x7, 0xc5,
+    0x0, 0x50, 0x0, 0xf, 0xd0, 0x1, 0xf0, 0x0,
+    0x7c, 0x0, 0x0, 0xfe, 0x0, 0xbc, 0x0, 0xbe,
+    0x0, 0x0, 0xb, 0xe0, 0x3f, 0x40, 0xfd, 0x0,
+    0x0, 0x0, 0x7c, 0x2f, 0xf4, 0xbd, 0x0, 0x0,
+    0x0, 0x4, 0x3f, 0x6f, 0x48, 0x0, 0x0, 0x0,
+    0x0, 0xbf, 0x42, 0xfd, 0x0, 0x0, 0x0, 0x7,
+    0xff, 0x0, 0x1f, 0xf8, 0x0, 0x1, 0xbf, 0xfd,
+    0x0, 0x0, 0xbf, 0xf9, 0x2, 0xff, 0xe0, 0x0,
+    0x0, 0x1, 0xbf, 0xf0, 0x3e, 0x0, 0x0, 0x0,
+    0x0, 0x1, 0xb8, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+7173 "煳" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf,
     0x0, 0xf, 0x0, 0x0, 0x0, 0x0, 0xf0, 0x0,
@@ -83102,6 +87228,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0xe, 0x0, 0x0, 0x60, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+717A "煺" */
+    0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xf0, 0x24, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf0,
+    0x3c, 0x2, 0xaa, 0xaa, 0x80, 0x0, 0xf0, 0x2c,
+    0x3, 0xff, 0xff, 0xc0, 0x0, 0xf0, 0x1e, 0x3,
+    0xc0, 0x3, 0xc0, 0x10, 0xf0, 0xf, 0x3, 0xc0,
+    0x3, 0xc0, 0xb0, 0xf2, 0xcb, 0x43, 0xc0, 0x3,
+    0xc0, 0x74, 0xf3, 0xc3, 0x43, 0xff, 0xff, 0xc0,
+    0x38, 0xf7, 0x40, 0x3, 0xff, 0xff, 0xc0, 0x3c,
+    0xff, 0x0, 0x3, 0xc0, 0x3, 0xc0, 0x3c, 0xfe,
+    0x55, 0x3, 0xc0, 0x3, 0xc0, 0x2c, 0xfc, 0xff,
+    0x3, 0xc0, 0x3, 0xc0, 0x1d, 0xf0, 0xaf, 0x3,
+    0xff, 0xff, 0xc0, 0x1e, 0xf0, 0xf, 0x3, 0xea,
+    0xaa, 0x40, 0x4, 0xf0, 0xf, 0x3, 0xc0, 0x0,
+    0x80, 0x0, 0xf0, 0xf, 0x3, 0xde, 0x2, 0xe0,
+    0x0, 0xf0, 0xf, 0x3, 0xcf, 0x8f, 0xc0, 0x0,
+    0xf4, 0xf, 0x3, 0xc2, 0xfe, 0x0, 0x1, 0xfc,
+    0xf, 0x3, 0xc0, 0xbc, 0x0, 0x2, 0xfd, 0xf,
+    0x3, 0xc0, 0x6f, 0x0, 0x3, 0xcf, 0xf, 0x3,
+    0xdb, 0xcb, 0xc0, 0x7, 0xcb, 0x4f, 0x7, 0xff,
+    0x42, 0xf0, 0xb, 0x43, 0x5f, 0x87, 0xe0, 0x0,
+    0xd0, 0xf, 0x1, 0x7f, 0xe1, 0x0, 0x0, 0x0,
+    0x2e, 0x1, 0xf5, 0xfd, 0x0, 0x0, 0x0, 0x7c,
+    0x1, 0xe0, 0x7f, 0xff, 0xff, 0xfc, 0xb8, 0x0,
+    0x40, 0x6, 0xbf, 0xff, 0xf8, 0x10, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+717D "煽" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb,
     0x0, 0x0, 0xf, 0x0, 0x0, 0x0, 0xf0, 0x0,
@@ -83237,32 +87390,83 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0xf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+719C "熜" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x38, 0x0, 0x0, 0xb8, 0x0, 0x0, 0x0, 0x38,
-    0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0x38, 0x3,
-    0xff, 0xff, 0xff, 0xe0, 0x0, 0x38, 0x3, 0xff,
-    0xff, 0xff, 0xf0, 0x0, 0x38, 0x3, 0xc0, 0x50,
-    0x0, 0xf0, 0xb0, 0x38, 0xa3, 0xc0, 0xf0, 0x0,
-    0xf0, 0xb4, 0x38, 0xf3, 0xc2, 0xf5, 0x54, 0xf0,
-    0x78, 0x39, 0xe3, 0xc7, 0xff, 0xf8, 0xf0, 0x3c,
-    0x3a, 0xd3, 0xcf, 0x0, 0xf4, 0xf0, 0x3c, 0x3f,
-    0xc3, 0xee, 0xd2, 0xe0, 0xf0, 0x2d, 0x3f, 0x83,
-    0xc5, 0xff, 0x80, 0xf0, 0x1e, 0x3f, 0x3, 0xc0,
-    0x7f, 0xc0, 0xf0, 0x1e, 0x78, 0x3, 0xc7, 0xf6,
-    0xf0, 0xf0, 0x9, 0x78, 0x3, 0xdf, 0x80, 0x70,
-    0xf0, 0x0, 0x78, 0x3, 0xc4, 0x0, 0x0, 0xf0,
-    0x0, 0xb4, 0x3, 0xff, 0xff, 0xff, 0xf0, 0x0,
-    0xb8, 0x2, 0xaa, 0xaa, 0xaa, 0xa0, 0x0, 0xfe,
-    0x0, 0x0, 0x34, 0x0, 0x0, 0x0, 0xff, 0x81,
-    0x4f, 0x3d, 0x2, 0xc0, 0x1, 0xf3, 0xd3, 0xcf,
-    0xf, 0x2, 0xe0, 0x2, 0xd1, 0xf7, 0x8f, 0xb,
-    0x40, 0xf0, 0x3, 0xc0, 0x8b, 0x4f, 0x2, 0x1c,
-    0x7c, 0xb, 0x80, 0xf, 0xf, 0x0, 0x1c, 0x3d,
-    0xf, 0x0, 0x2d, 0xf, 0x0, 0x3c, 0x1e, 0x2e,
-    0x0, 0x1c, 0xf, 0xff, 0xf8, 0x4, 0x3c, 0x0,
-    0x0, 0x6, 0xff, 0xe0, 0x0, 0x4, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0,
+    /* U+7198 "熘" */
+    0x0, 0x2c, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0,
+    0xf0, 0x0, 0x6f, 0x80, 0x0, 0x0, 0x3, 0xc0,
+    0x2f, 0xfd, 0xff, 0xff, 0xc0, 0xf, 0x0, 0xfe,
+    0x42, 0xfe, 0xbf, 0x0, 0x3c, 0x3, 0x80, 0x1,
+    0xd0, 0x38, 0xa0, 0xf0, 0xe, 0xe, 0x7, 0x40,
+    0xe3, 0xc3, 0xcb, 0xb8, 0x2c, 0x2c, 0x3, 0x8b,
+    0xf, 0x7d, 0xe0, 0x78, 0xf0, 0xe, 0x1d, 0x3f,
+    0xe3, 0x87, 0xf7, 0xc0, 0x78, 0x38, 0xff, 0xf,
+    0xfe, 0xfd, 0x2, 0xd0, 0xf3, 0xe0, 0xbf, 0x41,
+    0xf0, 0xff, 0x3, 0xcf, 0x2, 0xe0, 0xf, 0x42,
+    0xe0, 0xb, 0x3c, 0x0, 0x0, 0x38, 0x0, 0x0,
+    0x18, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3,
+    0xc0, 0x2f, 0xff, 0xff, 0xff, 0x0, 0xf, 0x0,
+    0xbf, 0xff, 0xff, 0xfc, 0x0, 0x3c, 0x2, 0xd0,
+    0x2d, 0x0, 0xf0, 0x1, 0xfc, 0xb, 0x40, 0xb4,
+    0x3, 0xc0, 0x7, 0xf4, 0x2d, 0x2, 0xd0, 0xf,
+    0x0, 0x2d, 0xf0, 0xbf, 0xff, 0xff, 0xfc, 0x0,
+    0xf2, 0xe2, 0xff, 0xff, 0xff, 0xf0, 0x7, 0x83,
+    0xcb, 0x40, 0xb4, 0x3, 0xc0, 0x3d, 0xa, 0x2d,
+    0x2, 0xd0, 0xf, 0x1, 0xf0, 0x0, 0xb4, 0xf,
+    0x40, 0x3c, 0xf, 0x40, 0x2, 0xff, 0xff, 0xff,
+    0xf0, 0xbc, 0x0, 0xb, 0xea, 0xaa, 0xaf, 0xc0,
+    0x90, 0x0, 0x2d, 0x0, 0x0, 0xf, 0x0,
+
+    /* U+7199 "熙" */
+    0xf, 0xff, 0xff, 0xf4, 0xff, 0xff, 0x80, 0x3f,
+    0xff, 0xff, 0xe7, 0xff, 0xff, 0x0, 0xf0, 0x3,
+    0xc0, 0x1f, 0x0, 0x7c, 0x3, 0xc0, 0xf, 0x0,
+    0x7c, 0x0, 0xf0, 0xf, 0x0, 0x3c, 0x1, 0xf0,
+    0x3, 0xc0, 0x3c, 0x3f, 0xff, 0x47, 0xc0, 0xf,
+    0x0, 0xf0, 0xff, 0xfe, 0x1f, 0x0, 0x3c, 0x3,
+    0xc3, 0x80, 0x38, 0x7f, 0xff, 0xf0, 0xf, 0xe,
+    0x0, 0xe1, 0xff, 0xff, 0xc0, 0x3c, 0x38, 0x3,
+    0x87, 0xc0, 0x0, 0x0, 0xf0, 0xfa, 0xae, 0x1f,
+    0x0, 0x0, 0x3, 0xc3, 0xff, 0xf8, 0x7c, 0x0,
+    0x10, 0xf, 0x0, 0x3c, 0x1, 0xf0, 0x0, 0xb0,
+    0x3c, 0x0, 0xf0, 0x7, 0xc0, 0x3, 0xc0, 0xf0,
+    0x3, 0xc0, 0xf, 0x0, 0x1f, 0x3, 0xff, 0xff,
+    0xff, 0x3f, 0xff, 0xf8, 0xf, 0xff, 0xff, 0xfc,
+    0x7f, 0xff, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x19, 0x0, 0x0, 0x14, 0x1, 0xc0,
+    0x0, 0xf8, 0x1f, 0x0, 0xf0, 0xb, 0xc0, 0x7,
+    0xc0, 0x3c, 0x3, 0xe0, 0xf, 0x40, 0x3e, 0x0,
+    0xf4, 0x7, 0xc0, 0x1f, 0x1, 0xf4, 0x2, 0xe0,
+    0xf, 0x40, 0x3e, 0xf, 0xc0, 0x7, 0x80, 0x2e,
+    0x0, 0x7c, 0x7d, 0x0, 0x1f, 0x0, 0x78, 0x0,
+    0xf8, 0xa0, 0x0, 0x10, 0x0, 0x0, 0x1, 0x40,
+
+    /* U+719F "熟" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x2, 0xd0, 0x0, 0xf, 0x0, 0x0, 0x0, 0x0,
+    0x78, 0x0, 0x3, 0xc0, 0x0, 0x0, 0xff, 0xff,
+    0xff, 0xd0, 0xf0, 0x0, 0x0, 0x2a, 0xaa, 0xaa,
+    0xa4, 0x3c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2,
+    0xff, 0xff, 0xc0, 0x0, 0x7f, 0xff, 0xf8, 0xff,
+    0xff, 0xf0, 0x0, 0x1e, 0x55, 0x6f, 0x0, 0xf0,
+    0x3c, 0x0, 0x7, 0x40, 0x3, 0xc0, 0x3c, 0xf,
+    0x0, 0x1, 0xff, 0xff, 0xf0, 0xf, 0x3, 0xc0,
+    0x0, 0x15, 0x55, 0x54, 0x93, 0x80, 0xf0, 0x0,
+    0x0, 0x0, 0x0, 0x7e, 0xe0, 0x3c, 0x0, 0xf,
+    0xff, 0xff, 0xc7, 0xf8, 0xf, 0x0, 0x2, 0xaa,
+    0xaf, 0xe0, 0x2f, 0x83, 0xc0, 0x0, 0x0, 0x2f,
+    0x80, 0xb, 0xfc, 0xf0, 0x0, 0x0, 0xf, 0x56,
+    0x83, 0xcb, 0xec, 0x14, 0xbf, 0xff, 0xff, 0xf1,
+    0xe0, 0xab, 0x4b, 0x2f, 0xaa, 0xf5, 0x0, 0xf0,
+    0x1, 0xe3, 0xc0, 0x0, 0x38, 0x0, 0xf8, 0x0,
+    0x3e, 0xd0, 0x0, 0x2e, 0x0, 0xbc, 0x0, 0xf,
+    0xf0, 0x1, 0xff, 0x40, 0xbc, 0x0, 0x0, 0xf4,
+    0x0, 0x29, 0x0, 0x8, 0x0, 0x7, 0x0, 0x0,
+    0xe, 0x2, 0x80, 0x3c, 0x3, 0xe0, 0x0, 0xb,
+    0x80, 0xf0, 0xb, 0x80, 0x3d, 0x0, 0x3, 0xc0,
+    0x3d, 0x1, 0xf0, 0xb, 0xc0, 0x3, 0xe0, 0xb,
+    0x80, 0x3d, 0x0, 0xf8, 0x1, 0xf0, 0x1, 0xf0,
+    0xb, 0x80, 0x1f, 0x0, 0xb4, 0x0, 0x3c, 0x1,
+    0xd0, 0x3, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
 
     /* U+71A0 "熠" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb,
@@ -83289,33 +87493,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xfc, 0x7c, 0x0, 0x3, 0xff, 0xff, 0xff, 0xc2,
     0x0, 0x0, 0x3c, 0x0, 0x0, 0x3c,
 
-    /* U+71A5 "熥" */
-    0x0, 0x14, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0xf, 0x0, 0x40, 0x0, 0x0, 0x0, 0x0, 0x3,
-    0xc0, 0xf0, 0x2f, 0xff, 0xff, 0x40, 0x0, 0xf0,
-    0x1e, 0xb, 0xff, 0xff, 0xe0, 0x0, 0x3c, 0x3,
-    0xc0, 0x18, 0x2, 0xf0, 0x5, 0xf, 0x18, 0xb4,
-    0xf, 0x82, 0xf0, 0x3, 0xc3, 0xcb, 0xf, 0x0,
-    0xbb, 0xf0, 0x0, 0xf0, 0xf3, 0xc3, 0xc0, 0xb,
-    0xe0, 0x0, 0x2d, 0x3d, 0xe0, 0x2, 0xaa, 0xfe,
-    0xa4, 0x7, 0x8f, 0xf0, 0x0, 0xbf, 0xff, 0xfe,
-    0x0, 0xe3, 0xf8, 0xa9, 0x2c, 0xe, 0x3, 0x80,
-    0x3c, 0xf8, 0x3f, 0x8b, 0x3, 0x80, 0xe0, 0xf,
-    0x3c, 0x5, 0xe2, 0xea, 0xfa, 0xb8, 0x2, 0xcf,
-    0x0, 0x38, 0xbf, 0xff, 0xfe, 0x0, 0x3, 0xc0,
-    0xe, 0x2c, 0xe, 0x3, 0x80, 0x0, 0xf0, 0x3,
-    0x8b, 0x3, 0x80, 0xe0, 0x0, 0x38, 0x0, 0xe2,
-    0xc0, 0xe0, 0x38, 0x0, 0xf, 0x0, 0x38, 0xbf,
-    0xff, 0xfe, 0x0, 0x7, 0xf0, 0xe, 0x2e, 0xaf,
-    0xab, 0x80, 0x2, 0xff, 0x3, 0x8b, 0x3, 0x80,
-    0xe0, 0x0, 0xf3, 0xe0, 0xe2, 0xc0, 0xe0, 0x38,
-    0x0, 0x7c, 0x3d, 0x3c, 0xb0, 0x38, 0x6e, 0x0,
-    0x2d, 0x6, 0x3f, 0x2c, 0xe, 0x3f, 0x0, 0xf,
-    0x0, 0x3f, 0xf9, 0x0, 0x1, 0x0, 0xf, 0x80,
-    0x3f, 0x2f, 0x90, 0x0, 0x0, 0x7, 0xc0, 0x2f,
-    0x2, 0xff, 0xff, 0xff, 0xd1, 0xd0, 0x3, 0x0,
-    0xa, 0xff, 0xff, 0xf0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0,
+    /* U+71A8 "熨" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x5, 0x0, 0x3,
+    0xff, 0xff, 0xff, 0x0, 0xf, 0x0, 0x3, 0xea,
+    0xaa, 0xaf, 0x0, 0xf, 0x0, 0x3, 0xc0, 0x0,
+    0xf, 0x0, 0xf, 0x0, 0x3, 0xe5, 0x55, 0x6f,
+    0x3f, 0xff, 0xf8, 0x3, 0xff, 0xff, 0xff, 0x3f,
+    0xff, 0xf8, 0x3, 0xc0, 0x0, 0x0, 0x0, 0xf,
+    0x0, 0x3, 0xc5, 0x55, 0x55, 0x14, 0xf, 0x0,
+    0x3, 0xcf, 0xff, 0xff, 0x3c, 0xf, 0x0, 0x3,
+    0xc0, 0x0, 0x0, 0xe, 0xf, 0x0, 0x3, 0xff,
+    0xff, 0xff, 0xcb, 0xf, 0x0, 0x7, 0x95, 0x5f,
+    0x95, 0x43, 0x4f, 0x0, 0xf, 0x46, 0xf, 0x14,
+    0x0, 0xf, 0x0, 0xf, 0xe, 0xf, 0x3d, 0x0,
+    0xf, 0x0, 0x2d, 0x3c, 0xf, 0xf, 0x40, 0x1f,
+    0x0, 0x7c, 0xf0, 0xbf, 0x2, 0xc3, 0xff, 0x0,
+    0x24, 0xd0, 0xf8, 0x14, 0x41, 0xe4, 0x0, 0x0,
+    0x40, 0x0, 0xbc, 0x0, 0x8, 0x0, 0x0, 0xf4,
+    0x0, 0xb8, 0x0, 0x3d, 0x0, 0x0, 0x7e, 0x0,
+    0xfc, 0x1, 0xf8, 0x0, 0x0, 0xf, 0xc2, 0xfe,
+    0xb, 0xd0, 0x0, 0x0, 0x3, 0x8b, 0xef, 0x8b,
+    0x40, 0x0, 0x0, 0x0, 0x7f, 0x83, 0xf4, 0x0,
+    0x0, 0x0, 0x7, 0xfd, 0x0, 0xbf, 0x90, 0x0,
+    0x6, 0xff, 0xe0, 0x0, 0x1f, 0xfe, 0x50, 0xbf,
+    0xf9, 0x0, 0x0, 0x0, 0xbf, 0xfc, 0x3e, 0x40,
+    0x0, 0x0, 0x0, 0x1, 0xb4, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
 
     /* U+71AC "熬" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -83345,6 +87548,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x40, 0x38, 0x0, 0xd0, 0x4, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+71B3 "熳" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3,
+    0xc0, 0x1f, 0xff, 0xff, 0xfc, 0x0, 0x0, 0xf0,
+    0x7, 0xaa, 0xaa, 0xaf, 0x0, 0x0, 0x3c, 0x1,
+    0xd0, 0x0, 0x3, 0xc0, 0x0, 0xf, 0x0, 0x7a,
+    0xaa, 0xaa, 0xf0, 0x2, 0x43, 0xc2, 0x1f, 0xff,
+    0xff, 0xfc, 0x0, 0xe0, 0xf1, 0xe7, 0x40, 0x0,
+    0xf, 0x0, 0x3c, 0x3d, 0xf1, 0xfa, 0xaa, 0xab,
+    0xc0, 0xb, 0xf, 0xf4, 0x7f, 0xff, 0xff, 0xf0,
+    0x1, 0xd3, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x38, 0xfc, 0x15, 0x55, 0x55, 0x55, 0x40, 0xf,
+    0x3c, 0xf, 0xff, 0xff, 0xff, 0xf8, 0x3, 0xcf,
+    0x3, 0xc0, 0xe0, 0x38, 0x1e, 0x0, 0xa3, 0xc0,
+    0xf0, 0x38, 0xe, 0x7, 0x80, 0x0, 0xf0, 0x3d,
+    0x5f, 0x57, 0x96, 0xe0, 0x0, 0x3c, 0xf, 0xff,
+    0xff, 0xff, 0xf8, 0x0, 0xf, 0x40, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x7, 0xf0, 0x2a, 0xaa, 0xaa,
+    0xa8, 0x0, 0x2, 0xee, 0xf, 0xff, 0xff, 0xff,
+    0x0, 0x0, 0xf3, 0xd0, 0x78, 0x0, 0xb, 0x80,
+    0x0, 0x38, 0x7c, 0xf, 0x80, 0xf, 0x80, 0x0,
+    0x2d, 0xf, 0x0, 0xfd, 0x1f, 0x80, 0x0, 0xf,
+    0x1, 0x40, 0xb, 0xff, 0x40, 0x0, 0xb, 0x80,
+    0x0, 0x6, 0xff, 0xe0, 0x0, 0x7, 0xc0, 0x1,
+    0xbf, 0xf9, 0xbf, 0xf9, 0x2, 0xd0, 0x7, 0xff,
+    0x90, 0x1, 0xbf, 0xf0, 0x10, 0x0, 0xe4, 0x0,
+    0x0, 0x0, 0x68,
+
     /* U+71B5 "熵" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0xb, 0x0, 0x0, 0xf, 0x0, 0x0, 0x0, 0x3,
@@ -83428,31 +87659,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0xf4, 0x7, 0x42, 0xc0, 0xb4, 0x10, 0x0,
     0xb0, 0x0, 0x0, 0x0, 0x50,
 
-    /* U+71CA "燊" */
-    0x0, 0x20, 0x0, 0x3c, 0x0, 0x4, 0x0, 0x2,
-    0xf4, 0x1, 0xf0, 0x1, 0xf4, 0x0, 0x2, 0xf8,
-    0x7, 0xc0, 0x2f, 0x80, 0x0, 0x1, 0xf0, 0x3f,
-    0xd1, 0xf4, 0x0, 0x0, 0x0, 0x47, 0xe7, 0xf5,
-    0x0, 0x0, 0x0, 0x6, 0xfd, 0x2, 0xfe, 0x40,
-    0x0, 0x1b, 0xff, 0x80, 0x0, 0xbf, 0xe5, 0xb,
-    0xff, 0x90, 0x0, 0x0, 0x1b, 0xfe, 0xa, 0x41,
-    0x80, 0x1, 0xb, 0x42, 0xb0, 0xb, 0xb, 0x4b,
-    0x2d, 0x2d, 0xe, 0x0, 0x2e, 0x3c, 0x3c, 0x3c,
-    0xb0, 0xf4, 0x0, 0x3c, 0xf2, 0xd0, 0xf3, 0xc7,
-    0xc0, 0x0, 0x57, 0xe1, 0x1, 0x1f, 0xd8, 0x0,
-    0x0, 0x7f, 0xf0, 0x0, 0xfb, 0xe0, 0x0, 0xb,
-    0xd3, 0xf4, 0x1f, 0x87, 0xe0, 0x1, 0xfd, 0x2,
-    0xf7, 0xf4, 0x3, 0xf0, 0xf, 0xc0, 0x1, 0x8b,
-    0x0, 0x3, 0xc0, 0x4, 0x0, 0x1, 0xe0, 0x0,
-    0x0, 0x1, 0xaa, 0xaa, 0xaf, 0xea, 0xaa, 0xaa,
-    0x7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0,
-    0x0, 0x7, 0xff, 0x80, 0x0, 0x0, 0x0, 0x0,
-    0xbf, 0xff, 0xd0, 0x0, 0x0, 0x0, 0x2f, 0xd7,
-    0x8b, 0xf4, 0x0, 0x0, 0x2f, 0xf8, 0x1e, 0x7,
-    0xfe, 0x40, 0x6f, 0xfe, 0x0, 0x78, 0x1, 0xbf,
-    0xf9, 0xfe, 0x40, 0x1, 0xe0, 0x0, 0x1b, 0xe2,
-    0x40, 0x0, 0x7, 0x80, 0x0, 0x0, 0x0,
-
     /* U+71CE "燎" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0xf, 0x0, 0x0, 0xb, 0x40, 0x0, 0x0, 0x3,
@@ -83535,33 +87741,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xf0, 0x0, 0xb4, 0x3, 0x80, 0x7, 0x42, 0x40,
     0x0, 0x0, 0x0, 0x0, 0x4,
 
-    /* U+71DA "燚" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x2c, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0xb0,
-    0x14, 0x0, 0xf0, 0x0, 0xb, 0x42, 0xc0, 0xf2,
-    0x3, 0xc0, 0x34, 0x1f, 0xb, 0x7, 0xae, 0xf,
-    0x2, 0xd0, 0x2e, 0x2c, 0x3c, 0x3d, 0x3c, 0xf,
-    0x0, 0x3c, 0xf1, 0xe0, 0x3c, 0xf0, 0xf4, 0x0,
-    0x53, 0xc7, 0x0, 0x67, 0xc7, 0x80, 0x0, 0x1f,
-    0xc0, 0x0, 0x2f, 0x44, 0x0, 0x0, 0xff, 0xd0,
-    0x1, 0xff, 0xc0, 0x0, 0xf, 0x8b, 0xe0, 0x2f,
-    0x5f, 0xe0, 0x1, 0xf8, 0x7, 0x8b, 0xf4, 0xb,
-    0xf4, 0x7f, 0x85, 0x0, 0xfe, 0x5, 0x3, 0xd1,
-    0xf4, 0x2d, 0x1, 0x80, 0x3c, 0x1, 0x1, 0x0,
-    0xb4, 0x0, 0x0, 0xf0, 0x0, 0x2, 0x2, 0xd1,
-    0x8f, 0x3, 0xc0, 0x74, 0x1f, 0xb, 0x4f, 0x2e,
-    0xf, 0x3, 0xc0, 0x2e, 0x2c, 0x78, 0x3c, 0x3c,
-    0x1e, 0x0, 0x3c, 0xb7, 0xc0, 0x78, 0xf4, 0xf0,
-    0x0, 0x73, 0xde, 0x0, 0xf3, 0xeb, 0x40, 0x0,
-    0xf, 0xc0, 0x0, 0x1f, 0xc4, 0x0, 0x0, 0xbf,
-    0xd0, 0x0, 0xff, 0x40, 0x0, 0x3, 0xcb, 0xd0,
-    0xb, 0x8f, 0x0, 0x0, 0x3e, 0xb, 0xd0, 0x7c,
-    0x2f, 0x0, 0x7, 0xf0, 0xb, 0xb, 0xd0, 0x3f,
-    0x0, 0xbf, 0x0, 0x1, 0xfd, 0x0, 0x3f, 0x87,
-    0xe0, 0x0, 0xf, 0xc0, 0x0, 0x2f, 0xd, 0x0,
-    0x0, 0x28, 0x0, 0x0, 0x14, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0,
-
     /* U+71E0 "燠" */
     0x0, 0x0, 0x0, 0x0, 0x24, 0x0, 0x0, 0x0,
     0xf, 0x0, 0x0, 0x1f, 0x0, 0x0, 0x0, 0x3,
@@ -83676,6 +87855,31 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x5, 0xb8, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+71F9 "燹" */
+    0xf, 0xff, 0xff, 0xd7, 0xff, 0xff, 0xf4, 0xf,
+    0xff, 0xff, 0xe7, 0xff, 0xff, 0xf8, 0x0, 0x7,
+    0xe0, 0x0, 0x3, 0xe0, 0x0, 0x0, 0x2f, 0x40,
+    0x0, 0x1f, 0x80, 0x0, 0x1, 0xff, 0x1, 0xc1,
+    0xff, 0x0, 0xa0, 0x1f, 0xd7, 0x87, 0xdf, 0xe3,
+    0xc2, 0xf0, 0x1d, 0xb, 0xef, 0xe, 0xb, 0xef,
+    0x80, 0x0, 0x7e, 0xf8, 0x0, 0x7e, 0xfd, 0x0,
+    0x7, 0xf0, 0xef, 0x7, 0xf4, 0xf6, 0x0, 0x1f,
+    0x47, 0xf7, 0x8f, 0x43, 0xfb, 0x80, 0x4, 0x2f,
+    0xf1, 0xe4, 0x2f, 0xf2, 0xe0, 0x1, 0xf8, 0xf0,
+    0xb1, 0xf8, 0xb0, 0xb4, 0x1f, 0xd0, 0xf0, 0x1f,
+    0xd0, 0xb0, 0x3c, 0x2e, 0x1, 0xf0, 0x2e, 0x1,
+    0xf0, 0x0, 0x0, 0x3f, 0xd0, 0x14, 0x2f, 0xe0,
+    0x0, 0x0, 0x2a, 0x0, 0x3c, 0x1a, 0x40, 0x0,
+    0x0, 0x74, 0x0, 0x3c, 0x0, 0xf, 0x0, 0x0,
+    0x7e, 0x0, 0x3c, 0x0, 0x7e, 0x0, 0x0, 0xf,
+    0xc0, 0x7e, 0x2, 0xf8, 0x0, 0x0, 0x3, 0xd0,
+    0xff, 0x47, 0xd0, 0x0, 0x0, 0x0, 0x47, 0xf7,
+    0xe1, 0x0, 0x0, 0x0, 0x0, 0x7f, 0x81, 0xfe,
+    0x0, 0x0, 0x0, 0x1b, 0xfd, 0x0, 0x2f, 0xe4,
+    0x0, 0x16, 0xff, 0xd0, 0x0, 0x6, 0xff, 0xe4,
+    0x3f, 0xf9, 0x0, 0x0, 0x0, 0x1f, 0xfc, 0x19,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x68,
+
     /* U+7206 "爆" */
     0x0, 0x3c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0xf, 0x0, 0xff, 0xff, 0xff, 0xf4, 0x0, 0x3,
@@ -83732,6 +87936,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xb, 0x7, 0xfc, 0x0, 0x20, 0x0, 0x10, 0x0,
     0x0, 0xa4, 0x0,
 
+    /* U+7228 "爨" */
+    0x0, 0x6, 0x45, 0x55, 0x55, 0x0, 0x0, 0x0,
+    0x3f, 0xe7, 0xff, 0xff, 0xcf, 0xf8, 0x0, 0xe,
+    0x41, 0xc0, 0x0, 0xb1, 0x5e, 0x0, 0x3, 0x80,
+    0x73, 0xff, 0x6c, 0x3, 0x40, 0x0, 0xff, 0x9c,
+    0x0, 0xb, 0x3f, 0xd0, 0x0, 0x38, 0x7, 0x1f,
+    0xf2, 0xc0, 0x74, 0x0, 0xe, 0x51, 0xca, 0xc,
+    0xb1, 0x5d, 0x0, 0x3, 0xfe, 0x72, 0xeb, 0x2c,
+    0xff, 0x40, 0x0, 0xe0, 0x1c, 0x15, 0x4b, 0x1,
+    0xd0, 0x2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0x0, 0xb9, 0x55, 0x55, 0x55, 0x55, 0x57, 0xc0,
+    0x2c, 0x1, 0xd0, 0x0, 0xe, 0x0, 0xf0, 0xb,
+    0x7f, 0xff, 0xf3, 0xff, 0xff, 0xac, 0x0, 0x5,
+    0xbe, 0x54, 0x57, 0xe5, 0x50, 0x0, 0x0, 0xbf,
+    0xb8, 0x2, 0xfb, 0x80, 0x0, 0x6, 0xf5, 0xd2,
+    0xdb, 0x9e, 0x7f, 0x40, 0x3, 0x90, 0x76, 0x86,
+    0x3, 0x40, 0xa0, 0x1, 0x55, 0x56, 0xf5, 0x55,
+    0x55, 0x55, 0x0, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xc0, 0x0, 0x2, 0xf0, 0x0, 0x2f, 0x0,
+    0x0, 0x0, 0x7, 0xe0, 0xe, 0x1, 0xf8, 0x0,
+    0x0, 0x1f, 0xde, 0x7, 0x80, 0xeb, 0xe4, 0x1,
+    0xff, 0x42, 0xf2, 0xd0, 0xf0, 0x2f, 0xe0, 0xb9,
+    0x0, 0x1a, 0xff, 0xb0, 0x0, 0x6c, 0x0, 0x0,
+    0x1f, 0xe1, 0xbf, 0x90, 0x0, 0x0, 0x1a, 0xff,
+    0x80, 0x1, 0xbf, 0x80, 0x0, 0x7, 0xe4, 0x0,
+    0x0, 0x1, 0xf4, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+722A "爪" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x5, 0xbf, 0x80, 0x0, 0x1,
@@ -83759,6 +87991,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0xf4, 0x0, 0x0, 0x34, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+722C "爬" */
+    0x0, 0x0, 0x0, 0x18, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x1a, 0xff, 0x0, 0x0, 0x0, 0x0, 0xf,
+    0xff, 0xff, 0x4f, 0xff, 0xff, 0x0, 0x3, 0xff,
+    0xd7, 0x83, 0xff, 0xff, 0xc0, 0x0, 0xf0, 0xf0,
+    0xe0, 0xf0, 0xb0, 0xb0, 0x0, 0x3c, 0x3c, 0x38,
+    0x3c, 0x2c, 0x2c, 0x0, 0xf, 0xf, 0xe, 0xf,
+    0xb, 0xb, 0x0, 0x3, 0xc3, 0xc3, 0x83, 0xc2,
+    0xc2, 0xc0, 0x0, 0xf0, 0xf0, 0xe0, 0xf0, 0xb0,
+    0xb0, 0x0, 0x3c, 0x3c, 0x38, 0x3c, 0x2c, 0x2c,
+    0x0, 0xf, 0xf, 0xe, 0xf, 0xff, 0xff, 0x0,
+    0x3, 0xc3, 0xc3, 0x83, 0xff, 0xff, 0xc0, 0x0,
+    0xf0, 0xf0, 0xf0, 0xf0, 0x0, 0x0, 0x0, 0x3c,
+    0x3c, 0x3c, 0x3c, 0x0, 0x0, 0x0, 0xe, 0xf,
+    0xf, 0xf, 0x0, 0x0, 0x0, 0x7, 0x83, 0xc3,
+    0xc3, 0xc0, 0x0, 0x78, 0x1, 0xe0, 0xf0, 0xb4,
+    0xf0, 0x0, 0x1e, 0x0, 0xb4, 0x3c, 0x2e, 0x3d,
+    0x0, 0xf, 0x40, 0x3c, 0xf, 0x3, 0xcb, 0xff,
+    0xff, 0xc0, 0xf, 0x3, 0xc0, 0xf4, 0xbf, 0xff,
+    0xd0, 0x7, 0xc0, 0xf0, 0x1f, 0x0, 0x14, 0x0,
+    0x2, 0xe0, 0x3c, 0x3, 0xf4, 0x0, 0x0, 0x0,
+    0xf0, 0xf, 0x0, 0x3f, 0xd0, 0x0, 0x0, 0x7c,
+    0x3, 0xc0, 0x2, 0xff, 0x94, 0x0, 0x3e, 0x0,
+    0xf0, 0x0, 0x1f, 0xff, 0xff, 0xb, 0x0, 0x3c,
+    0x0, 0x0, 0x1b, 0xff, 0xc0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x1, 0x50,
+
     /* U+7230 "爰" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0,
     0x0, 0x0, 0x55, 0xab, 0xff, 0xf8, 0x0, 0x1f,
@@ -83947,33 +88206,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+723A "爺" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x2c, 0x0, 0xf4, 0x0, 0x0, 0x0, 0x2,
-    0xfd, 0x0, 0xff, 0x80, 0x0, 0x0, 0x2f, 0xf0,
-    0x0, 0x1f, 0xf9, 0x0, 0x6, 0xff, 0xf4, 0x0,
-    0x3f, 0xbf, 0xd0, 0x1f, 0xf4, 0xbe, 0x2, 0xfd,
-    0xb, 0xf0, 0xe, 0x0, 0xf, 0xff, 0xd0, 0x0,
-    0x90, 0x0, 0x0, 0x1b, 0xff, 0x90, 0x0, 0x0,
-    0x0, 0x1b, 0xff, 0x9b, 0xfe, 0x40, 0x0, 0x1b,
-    0xff, 0xe4, 0x0, 0x6f, 0xff, 0x94, 0x7f, 0xe4,
-    0x0, 0x0, 0x1, 0xbf, 0xfc, 0x29, 0x55, 0x55,
-    0x54, 0x0, 0x0, 0x68, 0xf, 0xff, 0xff, 0xfc,
-    0xff, 0xff, 0xc0, 0x6, 0xf5, 0x57, 0xd4, 0xff,
-    0xff, 0xc0, 0x0, 0xf0, 0x3, 0xc0, 0xf0, 0x3,
-    0x80, 0x0, 0xfa, 0xab, 0xc0, 0xf0, 0xf, 0x0,
-    0x0, 0xff, 0xff, 0xc0, 0xf0, 0x1e, 0x0, 0x0,
-    0xf0, 0x3, 0xc0, 0xf0, 0x3c, 0x0, 0x0, 0xf0,
-    0x3, 0xc0, 0xf0, 0x2d, 0x0, 0x0, 0xff, 0xff,
-    0xc0, 0xf0, 0xb, 0x40, 0x0, 0xff, 0xff, 0xc0,
-    0xf0, 0x3, 0xc0, 0x0, 0xf0, 0x3, 0xc0, 0xf0,
-    0x1, 0xe0, 0x0, 0xf0, 0x3, 0xc0, 0xf0, 0x1,
-    0xe0, 0x1, 0xf5, 0xab, 0xfc, 0xf0, 0x7, 0xe0,
-    0x2f, 0xff, 0xff, 0xfc, 0xf0, 0xff, 0xc0, 0x1a,
-    0xa5, 0x43, 0xc0, 0xf0, 0x79, 0x0, 0x0, 0x0,
-    0x3, 0xc0, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x3,
-    0xc0, 0xf0, 0x0, 0x0,
-
     /* U+723B "爻" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x20, 0x0, 0x0, 0x0, 0x24, 0x0, 0x0, 0xfe,
@@ -84052,62 +88284,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xd0, 0x0, 0x0, 0x3, 0xc2, 0xf0, 0x0, 0x0,
     0x0, 0x3c, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0,
 
-    /* U+7241 "牁" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x80,
-    0xf0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xc0, 0xf2,
-    0xff, 0xff, 0xff, 0xfc, 0x3, 0xc0, 0xf2, 0xff,
-    0xff, 0xff, 0xfc, 0x3, 0xc0, 0xf0, 0x0, 0x0,
-    0xb, 0x80, 0x3, 0xc0, 0xf0, 0x0, 0x0, 0x7,
-    0x80, 0x3, 0xc0, 0xf0, 0x0, 0x0, 0x7, 0x80,
-    0x3, 0xc0, 0xf0, 0x0, 0x0, 0x7, 0x80, 0x3,
-    0xff, 0xf0, 0x7f, 0xff, 0x7, 0x80, 0x3, 0xff,
-    0xf0, 0x7f, 0xff, 0x7, 0x80, 0x0, 0x0, 0xf0,
-    0x78, 0xb, 0x7, 0x80, 0x0, 0x0, 0xf0, 0x78,
-    0xb, 0x7, 0x80, 0x0, 0x0, 0xf0, 0x78, 0xb,
-    0x7, 0x80, 0x0, 0x0, 0xf0, 0x78, 0xb, 0x7,
-    0x80, 0x3f, 0xff, 0xf0, 0x78, 0xb, 0x7, 0x80,
-    0x3f, 0xff, 0xf0, 0x78, 0xb, 0x7, 0x80, 0x1,
-    0xe0, 0xf0, 0x78, 0xb, 0x7, 0x80, 0x1, 0xe0,
-    0xf0, 0x78, 0xb, 0x7, 0x80, 0x1, 0xe0, 0xf0,
-    0x7f, 0xff, 0x7, 0x80, 0x2, 0xd0, 0xf0, 0x7f,
-    0xff, 0x7, 0x80, 0x3, 0xd0, 0xf0, 0x0, 0x0,
-    0x7, 0x80, 0x3, 0xc0, 0xf0, 0x0, 0x0, 0x7,
-    0x80, 0x7, 0x80, 0xf0, 0x0, 0x0, 0x7, 0x80,
-    0xf, 0x40, 0xf0, 0x0, 0x0, 0xb, 0x80, 0x1f,
-    0x0, 0xf0, 0x0, 0x6, 0xbf, 0x40, 0x3d, 0x0,
-    0xf0, 0x0, 0x1f, 0xff, 0x0, 0x18, 0x0, 0xf0,
-    0x0, 0xa, 0x94, 0x0,
-
-    /* U+7242 "牂" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x2d, 0x2, 0xc0, 0x0, 0xf0, 0x0, 0x28,
-    0xb, 0x40, 0x7c, 0x0, 0x7c, 0x0, 0xb, 0x2,
-    0xd0, 0xf, 0x40, 0x3d, 0x0, 0x2, 0xc0, 0xb4,
-    0x1, 0xf0, 0x2e, 0x0, 0x0, 0xb0, 0x2d, 0x0,
-    0x34, 0xf, 0x40, 0x0, 0x2c, 0xb, 0x4f, 0xff,
-    0xff, 0xff, 0xc0, 0xb, 0x2, 0xd3, 0xff, 0xff,
-    0xff, 0xf0, 0x2, 0xd0, 0xb4, 0x0, 0x7, 0x80,
-    0x0, 0x0, 0xbf, 0xfd, 0x0, 0x1, 0xe0, 0x0,
-    0x0, 0x2f, 0xff, 0x40, 0x0, 0x78, 0x0, 0x0,
-    0x0, 0x2, 0xd0, 0x0, 0x1e, 0x0, 0x0, 0x0,
-    0x0, 0xb4, 0x55, 0x5b, 0xd5, 0x54, 0x0, 0x0,
-    0x2d, 0x2f, 0xff, 0xff, 0xfe, 0x0, 0x0, 0xb,
-    0x46, 0xaa, 0xfe, 0xaa, 0x40, 0xff, 0xff, 0xd0,
-    0x0, 0x1e, 0x0, 0x0, 0x3f, 0xff, 0xf4, 0x0,
-    0x7, 0x80, 0x0, 0x0, 0x78, 0x2d, 0x0, 0x1,
-    0xe0, 0x0, 0x0, 0xe, 0xb, 0x40, 0x0, 0x78,
-    0x0, 0x0, 0x7, 0x82, 0xdb, 0xff, 0xff, 0xff,
-    0xfc, 0x1, 0xe0, 0xb6, 0xff, 0xff, 0xff, 0xff,
-    0x0, 0xb4, 0x2d, 0x0, 0x2, 0xe0, 0x0, 0x0,
-    0x3c, 0xb, 0x40, 0x0, 0x78, 0x0, 0x0, 0xf,
-    0x2, 0xd0, 0x0, 0x1e, 0x0, 0x0, 0xb, 0x80,
-    0xb4, 0x0, 0x7, 0x80, 0x0, 0x3, 0xc0, 0x2d,
-    0x0, 0x1, 0xe0, 0x0, 0x3, 0xe0, 0xb, 0x40,
-    0x0, 0x78, 0x0, 0x0, 0xb0, 0x2, 0xc0, 0x0,
-    0x1e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0,
-
     /* U+7247 "片" */
     0x0, 0x14, 0x0, 0x0, 0x78, 0x0, 0x0, 0x0,
     0xf4, 0x0, 0x1, 0xf0, 0x0, 0x0, 0x3, 0xd0,
@@ -84699,6 +88875,84 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xf0, 0x0, 0x7, 0xc0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+727F "牿" */
+    0x0, 0xe, 0x0, 0x0, 0xf, 0x0, 0x0, 0x0,
+    0xf, 0x0, 0x3c, 0xf, 0x0, 0x0, 0x9, 0xf,
+    0x0, 0x3c, 0xf, 0x0, 0x0, 0xf, 0xf, 0x0,
+    0x7c, 0xf, 0x0, 0x0, 0xf, 0xf, 0x0, 0xbd,
+    0x6f, 0x55, 0x50, 0xf, 0xf, 0x0, 0xff, 0xff,
+    0xff, 0xf0, 0x1f, 0xff, 0xf9, 0xfa, 0xaf, 0xaa,
+    0xa0, 0x1f, 0xff, 0xfb, 0xe0, 0xf, 0x0, 0x0,
+    0x2e, 0x1f, 0x7, 0xc0, 0xf, 0x0, 0x0, 0x2d,
+    0xf, 0x7, 0x80, 0xf, 0x0, 0x0, 0x3c, 0xf,
+    0x0, 0x0, 0xf, 0x0, 0x0, 0x3c, 0xf, 0xf,
+    0xff, 0xff, 0xff, 0xfc, 0x3c, 0xf, 0xf, 0xff,
+    0xff, 0xff, 0xfc, 0x0, 0xf, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0xf, 0xb4, 0x0, 0x0, 0x0,
+    0x0, 0x1, 0xbf, 0xf4, 0x0, 0x0, 0x0, 0x0,
+    0x6f, 0xff, 0x40, 0xff, 0xff, 0xff, 0xc0, 0xbf,
+    0xaf, 0x0, 0xff, 0xff, 0xff, 0xc0, 0x24, 0xf,
+    0x0, 0xf4, 0x0, 0x7, 0xc0, 0x0, 0xf, 0x0,
+    0xf0, 0x0, 0x7, 0xc0, 0x0, 0xf, 0x0, 0xf0,
+    0x0, 0x7, 0xc0, 0x0, 0xf, 0x0, 0xf0, 0x0,
+    0x7, 0xc0, 0x0, 0xf, 0x0, 0xf0, 0x0, 0x7,
+    0xc0, 0x0, 0xf, 0x0, 0xff, 0xff, 0xff, 0xc0,
+    0x0, 0xf, 0x0, 0xff, 0xff, 0xff, 0xc0, 0x0,
+    0xf, 0x0, 0xf5, 0x55, 0x57, 0xc0, 0x0, 0xf,
+    0x0, 0xf0, 0x0, 0x7, 0xc0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
+    /* U+7280 "犀" */
+    0x0, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x0,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x0, 0xf4,
+    0x0, 0x0, 0x0, 0x0, 0xf0, 0x0, 0xf4, 0x0,
+    0x0, 0x0, 0x0, 0xf0, 0x0, 0xfa, 0xaa, 0xaa,
+    0xaa, 0xaa, 0xf0, 0x0, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xf0, 0x0, 0xf9, 0x55, 0x55, 0x55, 0x55,
+    0x50, 0x0, 0xf4, 0xa4, 0x0, 0xf0, 0x0, 0x70,
+    0x0, 0xf4, 0xff, 0x90, 0xf0, 0x6f, 0xf4, 0x0,
+    0xf4, 0x7, 0xf8, 0xf1, 0xff, 0x80, 0x0, 0xf4,
+    0x0, 0x20, 0xf0, 0x90, 0x0, 0x0, 0xf4, 0x1,
+    0xb8, 0xf2, 0xe4, 0x0, 0x0, 0xf5, 0xbf, 0xf8,
+    0xf1, 0xff, 0xe0, 0x0, 0xf3, 0xfe, 0x0, 0x50,
+    0x6, 0xfc, 0x0, 0xf1, 0xb, 0x40, 0xf0, 0x0,
+    0x18, 0x0, 0xf0, 0xf, 0x0, 0xf0, 0x0, 0x0,
+    0x0, 0xf0, 0x3f, 0xff, 0xff, 0xff, 0xe0, 0x1,
+    0xf0, 0xbf, 0xff, 0xff, 0xff, 0xd0, 0x2, 0xe2,
+    0xf0, 0x0, 0xf0, 0x0, 0x0, 0x3, 0xd0, 0xd0,
+    0x0, 0xf0, 0x0, 0x0, 0x7, 0xc6, 0xaa, 0xaa,
+    0xfa, 0xaa, 0xaa, 0xb, 0x8b, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xf, 0x40, 0x0, 0x0, 0xf0, 0x0,
+    0x0, 0x1f, 0x0, 0x0, 0x0, 0xf0, 0x0, 0x0,
+    0x3e, 0x0, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x2c,
+    0x0, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0,
+
+    /* U+7281 "犁" */
+    0x0, 0x0, 0x0, 0x10, 0x0, 0x6, 0x40, 0x0,
+    0x5a, 0xff, 0xd0, 0x40, 0x1e, 0x0, 0xff, 0xff,
+    0xfe, 0x3, 0xc0, 0x78, 0x2, 0xa9, 0xb8, 0x0,
+    0xf, 0x1, 0xe0, 0x0, 0x2, 0xe0, 0x0, 0x3c,
+    0x7, 0x80, 0x15, 0x5b, 0x95, 0x50, 0xf0, 0x1e,
+    0x2, 0xff, 0xff, 0xff, 0xc3, 0xc0, 0x78, 0x6,
+    0xab, 0xfe, 0xaa, 0xf, 0x1, 0xe0, 0x0, 0x1f,
+    0xe5, 0x0, 0x3c, 0x7, 0x80, 0x2, 0xfb, 0xbe,
+    0x0, 0xf0, 0x1e, 0x0, 0x7f, 0x2e, 0x3f, 0x40,
+    0x0, 0xb8, 0xb, 0xe0, 0xb8, 0x1e, 0x0, 0x1b,
+    0xe0, 0x3d, 0x2, 0xe0, 0x0, 0x7, 0xff, 0x40,
+    0x0, 0x6, 0x40, 0x60, 0xf, 0xa0, 0x0, 0x0,
+    0x74, 0x3, 0xd0, 0x0, 0x0, 0x0, 0x3, 0xd0,
+    0xf, 0x40, 0x0, 0x0, 0x0, 0x2f, 0xff, 0xff,
+    0xff, 0xff, 0x40, 0x1, 0xff, 0xff, 0xff, 0xff,
+    0xfd, 0x0, 0xf, 0x40, 0x3, 0xd0, 0x0, 0x0,
+    0x0, 0xf8, 0x0, 0xf, 0x40, 0x0, 0x0, 0x0,
+    0x80, 0x0, 0x3d, 0x0, 0x0, 0x0, 0xaa, 0xaa,
+    0xaa, 0xfe, 0xaa, 0xaa, 0xa3, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xc0, 0x0, 0x0, 0xf, 0x40,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x3d, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0xf4, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x3, 0xd0, 0x0, 0x0, 0x0,
+
     /* U+7284 "犄" */
     0x0, 0xa, 0x0, 0x0, 0x19, 0x0, 0x0, 0x0,
     0xf, 0x0, 0x0, 0x2d, 0x0, 0x0, 0x5, 0xf,
@@ -84864,6 +89118,31 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x2, 0xd0, 0x0, 0xf, 0xf4, 0x0, 0xf, 0x2,
     0xd0, 0x0, 0x6, 0x40,
 
+    /* U+729F "犟" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xbf,
+    0xff, 0x7, 0xff, 0xff, 0xfc, 0x1, 0xaa, 0xbc,
+    0x1e, 0x55, 0x55, 0xf0, 0x0, 0x0, 0xf0, 0x74,
+    0x0, 0x3, 0xc0, 0x0, 0x3, 0xc1, 0xff, 0xff,
+    0xff, 0x0, 0x3f, 0xff, 0x1, 0x56, 0xf5, 0x54,
+    0x0, 0xfa, 0xa8, 0x0, 0x7, 0x80, 0x0, 0x3,
+    0xc0, 0x2, 0xff, 0xff, 0xff, 0xf0, 0xe, 0x0,
+    0xb, 0x95, 0xbd, 0x57, 0xc0, 0x3f, 0xfe, 0x2d,
+    0x1, 0xe0, 0xf, 0x0, 0xaa, 0xb8, 0xbf, 0xff,
+    0xff, 0xfc, 0x0, 0x1, 0xd1, 0xaa, 0xaf, 0xaa,
+    0xd0, 0x0, 0x7, 0x40, 0x0, 0x78, 0x7, 0x40,
+    0x5, 0xbc, 0x15, 0x56, 0xf5, 0xaf, 0x0, 0xff,
+    0xe2, 0xff, 0xff, 0xff, 0xfe, 0x2, 0x96, 0x41,
+    0x5a, 0x40, 0x0, 0x3c, 0x0, 0xf, 0x0, 0x3c,
+    0x0, 0x0, 0x60, 0x0, 0xf8, 0x0, 0xf0, 0x0,
+    0x0, 0x0, 0xb, 0xff, 0xff, 0xff, 0xff, 0xf0,
+    0x0, 0x7e, 0xaa, 0xaf, 0xaa, 0xaa, 0x80, 0x3,
+    0xd0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x1, 0x0,
+    0x0, 0xf0, 0x0, 0x0, 0xb, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xfe, 0x0, 0x0, 0x0, 0x3c, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x0,
+
     /* U+72AC "犬" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -84891,6 +89170,22 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0x2, 0xf8, 0x28, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x20,
 
+    /* U+72AD "犭" */
+    0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x0, 0x0,
+    0x2f, 0x40, 0x1d, 0x0, 0x3f, 0x1, 0xfc, 0x0,
+    0x3f, 0x2f, 0xc0, 0x0, 0x3f, 0xfc, 0x0, 0x0,
+    0xbf, 0x80, 0x0, 0xb, 0xfc, 0x0, 0x0, 0xff,
+    0xf4, 0x0, 0x2f, 0xe3, 0xf0, 0x1, 0xfd, 0x7,
+    0xc0, 0x3, 0x80, 0xf, 0x80, 0x0, 0x0, 0x3f,
+    0x0, 0x0, 0x3, 0xfc, 0x0, 0x0, 0x2f, 0xf0,
+    0x0, 0x3, 0xf7, 0xd0, 0x0, 0x7f, 0x4f, 0x40,
+    0xb, 0xf4, 0x3e, 0x0, 0xff, 0x0, 0xb8, 0x1f,
+    0xe0, 0x2, 0xe0, 0x3d, 0x0, 0xb, 0x80, 0x40,
+    0x0, 0x2e, 0x0, 0x0, 0x0, 0xf8, 0x0, 0x0,
+    0x3, 0xd0, 0x0, 0x0, 0x7f, 0x0, 0x0, 0xff,
+    0xf8, 0x0, 0x2, 0xff, 0x40, 0x0, 0x1, 0x40,
+    0x0,
+
     /* U+72AF "犯" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7,
     0x40, 0x8, 0x0, 0x0, 0x0, 0x0, 0x7, 0xc0,
@@ -85381,34 +89676,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xff, 0xff, 0xff, 0xff, 0xc0, 0xa, 0x90, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
-    /* U+72DD "狝" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0xe0, 0x0, 0x0, 0x0, 0x20,
-    0x1, 0x0, 0x78, 0x0, 0x0, 0x0, 0x3d, 0x1,
-    0xf0, 0x3d, 0x0, 0x0, 0x0, 0x7, 0xc1, 0xf4,
-    0xf, 0x0, 0x0, 0x0, 0x0, 0xbd, 0xf8, 0xb,
-    0xff, 0xff, 0xff, 0x0, 0xf, 0xf8, 0x3, 0xff,
-    0xff, 0xff, 0xc0, 0x2, 0xf8, 0x1, 0xf0, 0x0,
-    0x2, 0xf0, 0x1, 0xfd, 0x0, 0xf4, 0x0, 0x0,
-    0xf4, 0x2, 0xff, 0xc0, 0x7c, 0x1, 0x40, 0x7c,
-    0x3, 0xf4, 0xf0, 0x3d, 0x0, 0xf0, 0x3d, 0x0,
-    0x70, 0x2d, 0xf, 0x0, 0x3c, 0xb, 0x0, 0x0,
-    0x7, 0x80, 0x0, 0xf, 0x0, 0x0, 0x0, 0x3,
-    0xf0, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x2, 0xfc,
-    0x0, 0xf0, 0xf0, 0xb0, 0x0, 0x1, 0xff, 0x0,
-    0x3c, 0x3c, 0x3e, 0x0, 0x1, 0xf7, 0xc0, 0x2e,
-    0xf, 0x7, 0xc0, 0x1, 0xf4, 0xb0, 0xf, 0x43,
-    0xc0, 0xf4, 0x2, 0xf8, 0x2d, 0x7, 0xc0, 0xf0,
-    0x1f, 0x0, 0xf4, 0xb, 0x42, 0xe0, 0x3c, 0x3,
-    0xd0, 0x4, 0x2, 0xd0, 0xf0, 0xf, 0x0, 0xbc,
-    0x0, 0x0, 0xb4, 0xb8, 0x3, 0xc0, 0xf, 0x0,
-    0x0, 0x3d, 0x3c, 0x0, 0xf0, 0x2, 0xe0, 0x0,
-    0xf, 0x6e, 0x0, 0x3c, 0x0, 0x7c, 0x0, 0x7,
-    0xc7, 0x0, 0xf, 0x0, 0xd, 0x0, 0x6b, 0xf0,
-    0x0, 0xbf, 0xc0, 0x0, 0x0, 0x3f, 0xf4, 0x0,
-    0x3f, 0xe0, 0x0, 0x0, 0x6, 0x90, 0x0, 0x6,
-    0x40, 0x0, 0x0,
-
     /* U+72DE "狞" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x78, 0x0, 0x0, 0xb, 0x0,
@@ -85791,6 +90058,31 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x1f, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x50, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+72F7 "狷" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf0,
+    0x3, 0x47, 0xff, 0xff, 0xf8, 0xf, 0x80, 0xfc,
+    0x7f, 0xff, 0xff, 0xc0, 0x3d, 0x3f, 0x7, 0x80,
+    0x0, 0x3c, 0x2, 0xff, 0xc0, 0x78, 0x0, 0x3,
+    0xc0, 0xf, 0xf0, 0x7, 0x80, 0x0, 0x3c, 0x2,
+    0xfc, 0x0, 0x7f, 0xff, 0xff, 0xc0, 0xff, 0xc0,
+    0x7, 0xff, 0xff, 0xfc, 0x3f, 0x6e, 0x0, 0x0,
+    0x0, 0x0, 0x3, 0xd1, 0xf0, 0x0, 0x0, 0x0,
+    0x0, 0x10, 0xf, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xf4, 0x1f, 0xff, 0xff, 0xfe, 0x0, 0x1f,
+    0x41, 0xfa, 0xaa, 0xab, 0xe0, 0x7, 0xf8, 0x1f,
+    0x0, 0x0, 0x1e, 0x1, 0xff, 0x81, 0xf0, 0x0,
+    0x1, 0xe0, 0x7e, 0x78, 0x1f, 0xff, 0xff, 0xfe,
+    0x2f, 0x87, 0xc1, 0xff, 0xff, 0xff, 0xeb, 0xd0,
+    0x7c, 0x1f, 0x0, 0x0, 0x1e, 0x30, 0x3, 0xc1,
+    0xf0, 0x0, 0x1, 0xe0, 0x0, 0x3c, 0x1f, 0xff,
+    0xff, 0xfe, 0x0, 0x3, 0xc1, 0xff, 0xff, 0xff,
+    0xe0, 0x0, 0x7c, 0x1f, 0x0, 0x0, 0x1e, 0x0,
+    0x7, 0xc1, 0xf0, 0x0, 0x1, 0xe0, 0x0, 0xb8,
+    0x1f, 0x0, 0x0, 0x2e, 0x1, 0xbf, 0x41, 0xf0,
+    0x0, 0x17, 0xe0, 0x3f, 0xf0, 0x1f, 0x0, 0xb,
+    0xfd, 0x2, 0xf8, 0x1, 0xf0, 0x0, 0x7e, 0x40,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+72F8 "狸" */
     0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1e,
     0x0, 0x80, 0x0, 0x0, 0x0, 0x0, 0xf, 0x42,
@@ -85952,34 +90244,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xff, 0xff, 0xff, 0xff, 0x40, 0xa, 0x40, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
-    /* U+7304 "猄" */
-    0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0,
-    0x80, 0x0, 0x0, 0x3, 0xd0, 0x0, 0x0, 0xb4,
-    0x7, 0x40, 0x0, 0xb8, 0x0, 0x0, 0x1f, 0x3,
-    0xc0, 0x0, 0x1f, 0x0, 0x0, 0x2, 0xe3, 0xd0,
-    0xff, 0xff, 0xff, 0xff, 0x0, 0x3f, 0xe0, 0x7f,
-    0xff, 0xff, 0xff, 0xc0, 0xb, 0xf0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x3, 0xf0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x3, 0xfd, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x3, 0xfb, 0x80, 0xf, 0xff, 0xff, 0xfc,
-    0x2, 0xf1, 0xf0, 0x3, 0xff, 0xff, 0xff, 0x0,
-    0x60, 0x3c, 0x0, 0xf0, 0x0, 0x7, 0xc0, 0x0,
-    0xf, 0x0, 0x3c, 0x0, 0x0, 0xf0, 0x0, 0x7,
-    0xd0, 0xf, 0x0, 0x0, 0x3c, 0x0, 0x3, 0xf4,
-    0x3, 0xc0, 0x0, 0xf, 0x0, 0x2, 0xfe, 0x0,
-    0xf5, 0x55, 0x57, 0xc0, 0x2, 0xf7, 0x80, 0x3f,
-    0xff, 0xff, 0xf0, 0x1, 0xf1, 0xe0, 0xb, 0xff,
-    0xff, 0xf8, 0x1, 0xf4, 0x38, 0x0, 0x0, 0x78,
-    0x0, 0x0, 0xf4, 0xf, 0x0, 0x20, 0x1e, 0x5,
-    0x0, 0x4, 0x3, 0xc0, 0x1f, 0x7, 0x87, 0xc0,
-    0x0, 0x0, 0xf0, 0xf, 0x81, 0xe0, 0xb8, 0x0,
-    0x0, 0x38, 0x7, 0xc0, 0x78, 0xf, 0x40, 0x0,
-    0x1e, 0x3, 0xd0, 0x1e, 0x2, 0xf0, 0x0, 0xb,
-    0x83, 0xf0, 0x7, 0x80, 0x3d, 0x0, 0x5b, 0xc2,
-    0xf0, 0x17, 0xe0, 0x7, 0xc0, 0x3f, 0xe0, 0xb4,
-    0xf, 0xf4, 0x0, 0xe0, 0x6, 0x40, 0x0, 0x1,
-    0xa4, 0x0, 0x0,
-
     /* U+730A "猊" */
     0x1, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x3,
     0xd0, 0x18, 0x1, 0xf8, 0x0, 0x0, 0x0, 0x7c,
@@ -86036,6 +90300,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0xb, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+7313 "猓" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1,
+    0xf0, 0xc, 0x7f, 0xff, 0xff, 0xf8, 0x0, 0x3d,
+    0xb, 0xdf, 0xff, 0xff, 0xfe, 0x0, 0x7, 0xcb,
+    0xc7, 0x80, 0xb8, 0x7, 0x80, 0x0, 0xff, 0xd1,
+    0xe0, 0x1e, 0x1, 0xe0, 0x0, 0x1f, 0xd0, 0x78,
+    0x7, 0x80, 0x78, 0x0, 0x7, 0xe0, 0x1f, 0xff,
+    0xff, 0xfe, 0x0, 0xb, 0xf8, 0x7, 0xff, 0xff,
+    0xff, 0x80, 0xf, 0xef, 0x1, 0xe0, 0x1e, 0x1,
+    0xe0, 0x7, 0xd3, 0xd0, 0x78, 0x7, 0x80, 0x78,
+    0x0, 0x80, 0xb4, 0x1e, 0x1, 0xe0, 0x1e, 0x0,
+    0x0, 0x2e, 0x7, 0xff, 0xff, 0xff, 0x80, 0x0,
+    0xf, 0xc1, 0xff, 0xff, 0xff, 0xe0, 0x0, 0xf,
+    0xf0, 0x0, 0x7, 0x80, 0x0, 0x0, 0xf, 0xfc,
+    0x0, 0x1, 0xe0, 0x0, 0x0, 0xf, 0xcf, 0x3f,
+    0xff, 0xff, 0xff, 0xf4, 0xf, 0xc3, 0xcf, 0xff,
+    0xff, 0xff, 0xfd, 0xf, 0xc0, 0xf0, 0x0, 0x2f,
+    0xf0, 0x0, 0x1, 0xc0, 0x3c, 0x0, 0x1f, 0xff,
+    0x0, 0x0, 0x0, 0xf, 0x0, 0x1f, 0xbb, 0xf0,
+    0x0, 0x0, 0x3, 0xc0, 0x1f, 0x5e, 0x3f, 0x0,
+    0x0, 0x0, 0xf0, 0x2f, 0x47, 0x83, 0xf4, 0x0,
+    0x0, 0x3c, 0x3f, 0x41, 0xe0, 0x3f, 0x80, 0x0,
+    0x2f, 0x7f, 0x0, 0x78, 0x2, 0xfc, 0x2, 0xff,
+    0x9e, 0x0, 0x1e, 0x0, 0x1e, 0x0, 0xbf, 0x81,
+    0x0, 0x7, 0x80, 0x0, 0x0, 0x5, 0x0, 0x0,
+    0x1, 0xe0, 0x0, 0x0,
+
     /* U+7315 "猕" */
     0x4, 0x0, 0x0, 0x0, 0xe, 0x0, 0x0, 0x3c,
     0x1, 0x0, 0x0, 0x1f, 0x0, 0x0, 0x1e, 0xf,
@@ -86630,6 +90921,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+734D "獍" */
+    0x0, 0x0, 0x0, 0x0, 0x14, 0x0, 0x0, 0x0,
+    0x80, 0x0, 0x0, 0xf, 0x40, 0x0, 0x0, 0xb8,
+    0x2, 0x0, 0x2, 0xe0, 0x0, 0x0, 0xf, 0x43,
+    0xea, 0xaa, 0xfe, 0xaa, 0xa0, 0x2, 0xf2, 0xe3,
+    0xff, 0xff, 0xff, 0xfc, 0x0, 0x3f, 0xf0, 0x3,
+    0xc0, 0xf, 0x0, 0x0, 0xb, 0xf0, 0x0, 0xf0,
+    0x3, 0xc0, 0x0, 0x2, 0xf4, 0x0, 0x3c, 0x1,
+    0xe0, 0x0, 0x2, 0xfe, 0x1a, 0xaf, 0xea, 0xfe,
+    0xaa, 0x2, 0xfb, 0xc7, 0xff, 0xff, 0xff, 0xff,
+    0xc2, 0xf4, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x34, 0x2d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xb, 0x82, 0xff, 0xff, 0xff, 0xd0, 0x0, 0x7,
+    0xe0, 0xba, 0xaa, 0xaa, 0xf4, 0x0, 0x3, 0xfc,
+    0x2d, 0x0, 0x0, 0x2d, 0x0, 0x3, 0xef, 0xb,
+    0xaa, 0xaa, 0xaf, 0x40, 0x2, 0xf3, 0xc2, 0xff,
+    0xff, 0xff, 0xd0, 0x2, 0xf0, 0xf0, 0xb4, 0x0,
+    0x0, 0xb4, 0x2, 0xf4, 0x3c, 0x2d, 0x0, 0x0,
+    0x2d, 0x0, 0xf4, 0xf, 0xb, 0xff, 0xff, 0xff,
+    0x40, 0x4, 0x3, 0xc1, 0xaf, 0xeb, 0xfa, 0x90,
+    0x0, 0x0, 0xf0, 0x2, 0xe0, 0x78, 0x0, 0x0,
+    0x0, 0x3c, 0x0, 0xf4, 0x1e, 0x0, 0xb4, 0x0,
+    0xf, 0x0, 0x7c, 0x7, 0x80, 0x2c, 0x0, 0x1f,
+    0x80, 0xbd, 0x1, 0xe0, 0xf, 0x0, 0x7f, 0xd6,
+    0xfe, 0x0, 0x3f, 0xff, 0xc0, 0xf, 0x93, 0xfd,
+    0x0, 0xb, 0xff, 0xc0, 0x0, 0x0, 0x64, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+7350 "獐" */
     0x0, 0x0, 0x0, 0x0, 0x2c, 0x0, 0x0, 0x1,
     0xe0, 0xc, 0x0, 0xb, 0x40, 0x0, 0x0, 0x3c,
@@ -86657,6 +90976,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x7, 0xc0, 0x0, 0x0, 0x5, 0x0, 0x0,
     0x1, 0xf0, 0x0, 0x0,
 
+    /* U+7352 "獒" */
+    0x0, 0x1, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0,
+    0x3, 0xc0, 0x0, 0xf, 0x0, 0x0, 0x0, 0x3,
+    0xc0, 0x0, 0x2e, 0x0, 0x0, 0x1f, 0xff, 0xff,
+    0xf8, 0x3c, 0x0, 0x0, 0x1a, 0xab, 0xea, 0xa4,
+    0xbd, 0x55, 0x54, 0x0, 0x3, 0xc0, 0x0, 0xff,
+    0xff, 0xfc, 0x5, 0x57, 0xe5, 0x52, 0xfa, 0xaf,
+    0xa4, 0xb, 0xff, 0xff, 0xf7, 0xc0, 0xe, 0x0,
+    0x0, 0x3, 0xc0, 0xf, 0x90, 0x2d, 0x0, 0x2a,
+    0xab, 0xea, 0xae, 0xb8, 0x3c, 0x0, 0x3f, 0xff,
+    0xff, 0xfc, 0x2f, 0xb8, 0x0, 0x0, 0x78, 0x0,
+    0x0, 0x7, 0xf0, 0x0, 0x0, 0xbe, 0xaa, 0x80,
+    0xb, 0xf8, 0x0, 0x0, 0xff, 0xff, 0xc0, 0x3f,
+    0x7e, 0x0, 0x2, 0xf0, 0x3, 0xc6, 0xfc, 0xf,
+    0xc0, 0x7, 0xc0, 0xb, 0xcf, 0xd0, 0x3, 0xf0,
+    0x2f, 0x41, 0xff, 0x45, 0xb, 0x0, 0xb0, 0x3d,
+    0x0, 0x50, 0x78, 0xb, 0xd0, 0x0, 0x0, 0x0,
+    0x0, 0x7c, 0x1, 0xf4, 0x0, 0x2f, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xf0, 0x2f, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xf0, 0x0, 0x0, 0x1, 0xfe, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x7, 0xef, 0x80, 0x0,
+    0x0, 0x0, 0x0, 0x7f, 0x83, 0xf4, 0x0, 0x0,
+    0x0, 0xb, 0xfe, 0x0, 0xbf, 0x90, 0x0, 0x1b,
+    0xff, 0xe0, 0x0, 0x1f, 0xff, 0x94, 0x7f, 0xf9,
+    0x0, 0x0, 0x0, 0xbf, 0xfc, 0x39, 0x0, 0x0,
+    0x0, 0x0, 0x1, 0xa4,
+
     /* U+7357 "獗" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2,
     0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x78,
@@ -86797,34 +91143,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x7c, 0x3, 0x80, 0xd0, 0x3c, 0x0, 0x0, 0x10,
     0x0, 0x0, 0x0, 0x0,
 
-    /* U+7374 "獴" */
-    0x0, 0x0, 0x0, 0x1, 0x0, 0x10, 0x0, 0x1,
-    0xc0, 0x0, 0x2, 0xd0, 0x1e, 0x0, 0x0, 0xb8,
-    0x8, 0x0, 0xb4, 0x7, 0x80, 0x0, 0xf, 0xb,
-    0xaf, 0xff, 0xff, 0xff, 0xf8, 0x1, 0xe7, 0xc6,
-    0xaf, 0xea, 0xfe, 0xa9, 0x0, 0x3f, 0xd0, 0x2,
-    0xd0, 0x1e, 0x0, 0x0, 0xb, 0xd0, 0x0, 0x10,
-    0x1, 0x0, 0x0, 0x7, 0xf0, 0x2f, 0xff, 0xff,
-    0xff, 0xe0, 0x7, 0xfc, 0xb, 0xaa, 0xaa, 0xaa,
-    0xb8, 0x7, 0xd7, 0x82, 0xd0, 0x0, 0x0, 0x1e,
-    0x2, 0xd0, 0xf0, 0xb4, 0xaa, 0xaa, 0x87, 0x80,
-    0x10, 0x3c, 0x2c, 0x7f, 0xff, 0xf4, 0xe0, 0x0,
-    0xf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb,
-    0xd1, 0xaa, 0xaa, 0xaa, 0xaa, 0x0, 0x7, 0xf4,
-    0xff, 0xff, 0xff, 0xff, 0xc0, 0x3, 0xed, 0x0,
-    0x2, 0xf4, 0x0, 0x0, 0x3, 0xe7, 0x80, 0x1b,
-    0xf8, 0x0, 0xe0, 0x3, 0xf0, 0xe1, 0xbf, 0x8f,
-    0x42, 0xf8, 0x3, 0xf0, 0x39, 0xfe, 0xb, 0xfb,
-    0xf4, 0x0, 0x70, 0xe, 0x20, 0x2f, 0x7f, 0xf0,
-    0x0, 0x0, 0x3, 0x80, 0xbe, 0x1f, 0xad, 0x0,
-    0x0, 0x0, 0xe2, 0xfd, 0x2f, 0xe3, 0xc0, 0x0,
-    0x0, 0x79, 0xe4, 0x3e, 0x78, 0x7c, 0x0, 0x0,
-    0x1e, 0x0, 0xbd, 0x1e, 0xb, 0xc0, 0x0, 0xf,
-    0x42, 0xfc, 0x7, 0x80, 0xbe, 0x0, 0xff, 0xcb,
-    0xf4, 0x3, 0xd0, 0xb, 0xc0, 0x2f, 0xc3, 0xd0,
-    0x3f, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb,
-    0x90, 0x0, 0x0,
-
     /* U+737E "獾" */
     0x0, 0x0, 0x0, 0x14, 0x0, 0x40, 0x0, 0x20,
     0x0, 0x0, 0xb0, 0x7, 0x80, 0x1, 0xe0, 0x2c,
@@ -86951,6 +91269,31 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xff, 0xff, 0xff, 0x85, 0x55, 0x55, 0x55, 0x55,
     0x55, 0x54,
 
+    /* U+738E "玎" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f,
+    0xff, 0xfe, 0xbf, 0xff, 0xff, 0xfd, 0x3f, 0xff,
+    0xfe, 0xbf, 0xff, 0xff, 0xfd, 0x15, 0x7e, 0x54,
+    0x0, 0x3, 0xe0, 0x0, 0x0, 0x3d, 0x0, 0x0,
+    0x3, 0xe0, 0x0, 0x0, 0x3d, 0x0, 0x0, 0x3,
+    0xe0, 0x0, 0x0, 0x3d, 0x0, 0x0, 0x3, 0xe0,
+    0x0, 0x0, 0x3d, 0x0, 0x0, 0x3, 0xe0, 0x0,
+    0x0, 0x3d, 0x0, 0x0, 0x3, 0xe0, 0x0, 0x0,
+    0x3d, 0x0, 0x0, 0x3, 0xe0, 0x0, 0x5, 0x7e,
+    0x54, 0x0, 0x3, 0xe0, 0x0, 0x3f, 0xff, 0xfd,
+    0x0, 0x3, 0xe0, 0x0, 0x2f, 0xff, 0xfc, 0x0,
+    0x3, 0xe0, 0x0, 0x0, 0x3d, 0x0, 0x0, 0x3,
+    0xe0, 0x0, 0x0, 0x3d, 0x0, 0x0, 0x3, 0xe0,
+    0x0, 0x0, 0x3d, 0x0, 0x0, 0x3, 0xe0, 0x0,
+    0x0, 0x3d, 0x0, 0x0, 0x3, 0xe0, 0x0, 0x0,
+    0x3d, 0x0, 0x0, 0x3, 0xe0, 0x0, 0x0, 0x3d,
+    0x0, 0x0, 0x3, 0xe0, 0x0, 0x0, 0x3d, 0x1a,
+    0x0, 0x3, 0xe0, 0x0, 0x0, 0x3f, 0xff, 0x0,
+    0x3, 0xe0, 0x0, 0x6f, 0xff, 0xf9, 0x0, 0x3,
+    0xe0, 0x0, 0xbf, 0xf9, 0x0, 0x1, 0x5f, 0xd0,
+    0x0, 0x64, 0x0, 0x0, 0x3, 0xff, 0xc0, 0x0,
+    0x0, 0x0, 0x0, 0x3, 0xfe, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+7391 "玑" */
     0x0, 0x0, 0x0, 0x3f, 0xff, 0xf0, 0x0, 0x7f,
     0xff, 0xfc, 0x3f, 0xff, 0xf0, 0x0, 0x7f, 0xff,
@@ -86976,32 +91319,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x2c, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
 
-    /* U+7395 "玕" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3,
-    0xff, 0xff, 0xc7, 0xff, 0xff, 0xff, 0x0, 0xff,
-    0xff, 0xf1, 0xff, 0xff, 0xff, 0xc0, 0x0, 0x3c,
-    0x0, 0x0, 0xf, 0x80, 0x0, 0x0, 0xf, 0x0,
-    0x0, 0x2, 0xd0, 0x0, 0x0, 0x3, 0xc0, 0x0,
-    0x0, 0xb4, 0x0, 0x0, 0x0, 0xf0, 0x0, 0x0,
-    0x2d, 0x0, 0x0, 0x0, 0x3c, 0x0, 0x0, 0xb,
-    0x40, 0x0, 0x0, 0xf, 0x0, 0x0, 0x2, 0xd0,
-    0x0, 0x0, 0x3, 0xc0, 0x0, 0x0, 0xb4, 0x0,
-    0x0, 0xff, 0xff, 0xe0, 0x0, 0x2d, 0x0, 0x0,
-    0x3f, 0xff, 0xf9, 0xff, 0xff, 0xff, 0xfd, 0x0,
-    0xf, 0x0, 0x7f, 0xff, 0xff, 0xff, 0x40, 0x3,
-    0xc0, 0x5, 0x55, 0xf9, 0x55, 0x40, 0x0, 0xf0,
-    0x0, 0x0, 0x2d, 0x0, 0x0, 0x0, 0x3c, 0x0,
-    0x0, 0xb, 0x40, 0x0, 0x0, 0xf, 0x0, 0x0,
-    0x2, 0xd0, 0x0, 0x0, 0x3, 0xc0, 0x0, 0x0,
-    0xb4, 0x0, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x2d,
-    0x0, 0x0, 0x0, 0x3d, 0xbd, 0x0, 0xb, 0x40,
-    0x0, 0x1, 0xaf, 0xff, 0x40, 0x2, 0xd0, 0x0,
-    0xf, 0xff, 0xf9, 0x0, 0x0, 0xb4, 0x0, 0x3,
-    0xfa, 0x40, 0x0, 0x0, 0x2d, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0xb, 0x40, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x2, 0xd0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0xb4, 0x0, 0x0,
-
     /* U+7396 "玖" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0xb, 0x80, 0x0, 0x0, 0x0,
@@ -87031,32 +91348,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x7, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0,
     0x0, 0x0,
 
-    /* U+7399 "玙" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x78, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x2, 0xe0, 0x0, 0x0, 0xa, 0xaa, 0xa9, 0xb,
-    0x40, 0x0, 0x0, 0x3f, 0xff, 0xfc, 0x3d, 0x0,
-    0x0, 0x0, 0xaa, 0xfa, 0x90, 0xff, 0xff, 0xff,
-    0xf0, 0x7, 0xc0, 0x3, 0xff, 0xff, 0xff, 0xc0,
-    0x1f, 0x0, 0xf, 0x0, 0x0, 0x0, 0x0, 0x7c,
-    0x0, 0x3c, 0x0, 0x0, 0x0, 0x1, 0xf0, 0x1,
-    0xf0, 0x0, 0x0, 0x0, 0x7, 0xc0, 0x7, 0x80,
-    0x0, 0x0, 0x0, 0x1f, 0x0, 0x1e, 0x55, 0x55,
-    0x50, 0x3f, 0xff, 0xf4, 0xbf, 0xff, 0xff, 0xd0,
-    0xff, 0xff, 0xd2, 0xff, 0xff, 0xff, 0x40, 0x7,
-    0xc0, 0x0, 0x0, 0x0, 0x2d, 0x0, 0x1f, 0x0,
-    0x0, 0x0, 0x0, 0xf4, 0x0, 0x7c, 0x0, 0x0,
-    0x0, 0x3, 0xd0, 0x1, 0xf0, 0x0, 0x0, 0x0,
-    0xf, 0x40, 0x7, 0xc0, 0x3f, 0xff, 0xfe, 0x3c,
-    0x0, 0x1f, 0x1, 0xff, 0xff, 0xf8, 0xf0, 0x0,
-    0x7c, 0x1, 0x55, 0x55, 0x43, 0xc0, 0x1, 0xf7,
-    0xd0, 0x0, 0x0, 0xf, 0x0, 0x5f, 0xff, 0x40,
-    0x0, 0x0, 0x3c, 0x2f, 0xff, 0x90, 0x0, 0x0,
-    0x1, 0xf0, 0x7e, 0x40, 0x0, 0x0, 0x0, 0x1f,
-    0xc0, 0x0, 0x0, 0x0, 0x0, 0xbf, 0xfd, 0x0,
-    0x0, 0x0, 0x0, 0x1, 0xff, 0xd0, 0x0, 0x0,
-    0x0, 0x0, 0x1, 0x40, 0x0,
-
     /* U+739B "玛" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x1f, 0xff, 0xff, 0xe0, 0x3f, 0xff, 0xf9,
@@ -87081,59 +91372,35 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x2f, 0xff, 0x40, 0x0, 0x0, 0x0, 0x0, 0xfe,
     0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
 
-    /* U+73A0 "玠" */
+    /* U+739F "玟" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0xf, 0x80, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x7, 0xf0, 0x0, 0x0, 0xff, 0xff,
-    0xc0, 0x3, 0xfe, 0x0, 0x0, 0x3f, 0xff, 0xf4,
-    0x1, 0xf7, 0xc0, 0x0, 0x0, 0x2e, 0x0, 0x0,
-    0xf8, 0xb8, 0x0, 0x0, 0xb, 0x80, 0x0, 0xbc,
-    0xf, 0x40, 0x0, 0x2, 0xe0, 0x0, 0x7d, 0x1,
-    0xf4, 0x0, 0x0, 0xb8, 0x0, 0x3e, 0x0, 0x2f,
-    0x0, 0x0, 0x2e, 0x0, 0x3f, 0x0, 0x3, 0xf0,
-    0x0, 0xb, 0x80, 0x3f, 0x0, 0x0, 0x3f, 0x40,
-    0x2, 0xe0, 0x3f, 0x0, 0x0, 0x3, 0xf4, 0x3f,
-    0xff, 0xef, 0xf, 0x0, 0x3c, 0x2e, 0xf, 0xff,
-    0xf4, 0x3, 0xc0, 0xf, 0x1, 0x0, 0xb, 0x80,
-    0x0, 0xf0, 0x3, 0xc0, 0x0, 0x2, 0xe0, 0x0,
-    0x3c, 0x0, 0xf0, 0x0, 0x0, 0xb8, 0x0, 0xf,
-    0x0, 0x3c, 0x0, 0x0, 0x2e, 0x0, 0x3, 0xc0,
-    0xf, 0x0, 0x0, 0xb, 0x80, 0x1, 0xf0, 0x3,
-    0xc0, 0x0, 0x2, 0xe0, 0x0, 0x78, 0x0, 0xf0,
-    0x0, 0x0, 0xb8, 0x0, 0x2e, 0x0, 0x3c, 0x0,
-    0x0, 0x2e, 0x6c, 0xf, 0x40, 0xf, 0x0, 0x0,
-    0x1f, 0xff, 0x43, 0xc0, 0x3, 0xc0, 0x2, 0xff,
-    0xfe, 0x43, 0xe0, 0x0, 0xf0, 0x0, 0xbf, 0x90,
-    0x2, 0xf0, 0x0, 0x3c, 0x0, 0x4, 0x0, 0x1,
-    0xf4, 0x0, 0xf, 0x0, 0x0, 0x0, 0x1, 0xf8,
-    0x0, 0x3, 0xc0, 0x0, 0x0, 0x0, 0x3c, 0x0,
-    0x0, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0xb, 0x40, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x2, 0xe0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x7c, 0x0, 0x0, 0xf, 0xff, 0xfd,
+    0x0, 0xf, 0x0, 0x0, 0x3, 0xff, 0xff, 0x95,
+    0x57, 0xd5, 0x55, 0x0, 0x56, 0xf5, 0x7f, 0xff,
+    0xff, 0xff, 0xe0, 0x0, 0x3c, 0xb, 0xff, 0xff,
+    0xff, 0xf4, 0x0, 0xf, 0x0, 0x3c, 0x0, 0xb,
+    0x80, 0x0, 0x3, 0xc0, 0xf, 0x0, 0x2, 0xe0,
+    0x0, 0x0, 0xf0, 0x2, 0xd0, 0x0, 0xf4, 0x0,
+    0x0, 0x3c, 0x0, 0xb8, 0x0, 0x3c, 0x0, 0x0,
+    0x1f, 0x0, 0x1f, 0x0, 0x1f, 0x0, 0x3, 0xff,
+    0xff, 0x83, 0xc0, 0xb, 0x80, 0x0, 0xff, 0xff,
+    0xe0, 0xb8, 0x3, 0xd0, 0x0, 0x0, 0x3c, 0x0,
+    0x1f, 0x1, 0xf0, 0x0, 0x0, 0xf, 0x0, 0x3,
+    0xd0, 0xf8, 0x0, 0x0, 0x3, 0xc0, 0x0, 0x7c,
+    0x7c, 0x0, 0x0, 0x0, 0xf0, 0x0, 0xf, 0xfe,
+    0x0, 0x0, 0x0, 0x3c, 0x0, 0x0, 0xff, 0x0,
+    0x0, 0x0, 0xf, 0x0, 0x0, 0x3f, 0x80, 0x0,
+    0x0, 0x3, 0xc7, 0xc0, 0x2f, 0xf4, 0x0, 0x0,
+    0x6, 0xff, 0xf0, 0x3f, 0x6f, 0x80, 0x0, 0xbf,
+    0xff, 0x90, 0x7f, 0x42, 0xfc, 0x0, 0x3f, 0xe4,
+    0x0, 0xff, 0x0, 0x1f, 0xe0, 0x5, 0x0, 0x2,
+    0xfe, 0x0, 0x0, 0xff, 0x80, 0x0, 0x3, 0xfd,
+    0x0, 0x0, 0xb, 0xf0, 0x0, 0x0, 0x38, 0x0,
+    0x0, 0x0, 0x28, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+73A1 "玡" */
-    0x0, 0x0, 0x0, 0x55, 0x55, 0x55, 0x50, 0xff,
-    0xff, 0xdf, 0xff, 0xff, 0xff, 0xc3, 0xff, 0xff,
-    0x7f, 0xff, 0xff, 0xff, 0x0, 0x2e, 0x0, 0x0,
-    0x0, 0x2d, 0x0, 0x0, 0x78, 0x0, 0x0, 0x0,
-    0xb4, 0x0, 0x1, 0xe0, 0x2, 0xe0, 0x2, 0xd0,
-    0x0, 0x7, 0x80, 0xb, 0x40, 0xb, 0x40, 0x0,
-    0x1e, 0x0, 0x3c, 0x0, 0x2d, 0x0, 0x0, 0x78,
-    0x0, 0xf0, 0x0, 0xb4, 0x0, 0x56, 0xe5, 0x7,
-    0xc0, 0x2, 0xd0, 0x3, 0xff, 0xfe, 0x2f, 0xff,
-    0xff, 0xff, 0xca, 0xbf, 0xa4, 0xbf, 0xff, 0xff,
-    0xff, 0x0, 0x78, 0x0, 0x0, 0x1f, 0xb8, 0x0,
-    0x1, 0xe0, 0x0, 0x0, 0xf6, 0xd0, 0x0, 0x7,
-    0x80, 0x0, 0xb, 0xcb, 0x40, 0x0, 0x1e, 0x0,
-    0x0, 0x7c, 0x2d, 0x0, 0x0, 0x78, 0x0, 0x7,
-    0xd0, 0xb4, 0x0, 0x1, 0xe0, 0x0, 0x3e, 0x2,
-    0xd0, 0x0, 0x7, 0x9b, 0x3, 0xf0, 0xb, 0x40,
-    0x0, 0x2f, 0xfd, 0x7f, 0x0, 0x2d, 0x0, 0x6f,
-    0xff, 0x9b, 0xf0, 0x0, 0xb4, 0x2, 0xfe, 0x40,
-    0xfe, 0x0, 0x2, 0xd0, 0x6, 0x40, 0x1f, 0xd0,
-    0x0, 0xf, 0x40, 0x0, 0x0, 0x3d, 0x0, 0x2f,
-    0xfc, 0x0, 0x0, 0x0, 0x0, 0x0, 0xbf, 0xe0,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0,
-
     /* U+73A2 "玢" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x78, 0x0, 0x0, 0x0,
@@ -87163,57 +91430,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+73A5 "玥" */
-    0x0, 0x0, 0x0, 0x15, 0x55, 0x55, 0x41, 0x55,
-    0x55, 0x3, 0xff, 0xff, 0xfc, 0x3f, 0xff, 0xf4,
-    0x3f, 0xff, 0xff, 0xc3, 0xff, 0xff, 0x43, 0xc0,
-    0x0, 0x3c, 0x0, 0x78, 0x0, 0x3c, 0x0, 0x3,
-    0xc0, 0x7, 0x80, 0x3, 0xc0, 0x0, 0x3c, 0x0,
-    0x78, 0x0, 0x3c, 0x0, 0x3, 0xc0, 0x7, 0x80,
-    0x3, 0xc0, 0x0, 0x3c, 0x0, 0x78, 0x0, 0x3f,
-    0xff, 0xff, 0xc0, 0x7, 0x80, 0x3, 0xff, 0xff,
-    0xfc, 0x3f, 0xff, 0xf4, 0x3c, 0x0, 0x3, 0xc3,
-    0xff, 0xff, 0x43, 0xc0, 0x0, 0x3c, 0x0, 0x78,
-    0x0, 0x3c, 0x0, 0x3, 0xc0, 0x7, 0x80, 0x3,
-    0xc0, 0x0, 0x3c, 0x0, 0x78, 0x0, 0x3c, 0x0,
-    0x3, 0xc0, 0x7, 0x80, 0x7, 0xff, 0xff, 0xfc,
-    0x0, 0x78, 0x0, 0x7f, 0xff, 0xff, 0xc0, 0x7,
-    0x80, 0x7, 0x80, 0x0, 0x3c, 0x0, 0x79, 0xb4,
-    0xb4, 0x0, 0x3, 0xc0, 0x1b, 0xff, 0x8f, 0x40,
-    0x0, 0x3c, 0xbf, 0xff, 0x90, 0xf0, 0x0, 0x3,
-    0xcb, 0xf9, 0x0, 0x2e, 0x0, 0x0, 0x3c, 0x0,
-    0x0, 0x7, 0xc0, 0x0, 0x3, 0xc0, 0x0, 0x0,
-    0xf4, 0x0, 0x2b, 0xfc, 0x0, 0x0, 0x3f, 0x0,
-    0x2, 0xff, 0x40, 0x0, 0x2, 0xc0, 0x0, 0x9,
-    0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
-    /* U+73A6 "玦" */
-    0x0, 0x0, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0xf0, 0x0, 0x0, 0x3f, 0xff, 0xf4,
-    0x0, 0xf0, 0x0, 0x0, 0x3f, 0xff, 0xf4, 0x1,
-    0xf0, 0x0, 0x0, 0x0, 0xb8, 0x3, 0xff, 0xff,
-    0xff, 0x0, 0x0, 0x78, 0x3, 0xff, 0xff, 0xff,
-    0x0, 0x0, 0x78, 0x0, 0x0, 0xf0, 0xf, 0x0,
-    0x0, 0x78, 0x0, 0x0, 0xf0, 0xf, 0x0, 0x0,
-    0x78, 0x0, 0x0, 0xf0, 0xf, 0x0, 0x0, 0x78,
-    0x0, 0x0, 0xf0, 0xf, 0x0, 0x0, 0xb8, 0x0,
-    0x0, 0xf0, 0xf, 0x0, 0x3f, 0xff, 0xe0, 0x0,
-    0xf0, 0xf, 0x0, 0x2f, 0xff, 0xe0, 0x1, 0xf0,
-    0xf, 0x40, 0x0, 0x78, 0xf, 0xff, 0xff, 0xff,
-    0xf8, 0x0, 0x78, 0xf, 0xff, 0xff, 0xff, 0xf8,
-    0x0, 0x78, 0x0, 0x2, 0xf4, 0x0, 0x0, 0x0,
-    0x78, 0x0, 0x3, 0xf8, 0x0, 0x0, 0x0, 0x78,
-    0x0, 0x7, 0xfd, 0x0, 0x0, 0x0, 0x78, 0x0,
-    0xf, 0x9f, 0x0, 0x0, 0x0, 0x7a, 0xf0, 0x1f,
-    0xf, 0x80, 0x0, 0x1, 0xff, 0xf0, 0x7e, 0x3,
-    0xe0, 0x0, 0xbf, 0xfe, 0x41, 0xfc, 0x1, 0xf8,
-    0x0, 0xbf, 0x90, 0x7, 0xf0, 0x0, 0x7f, 0x40,
-    0x50, 0x0, 0x2f, 0xc0, 0x0, 0x1f, 0xe0, 0x0,
-    0x0, 0xff, 0x0, 0x0, 0x3, 0xfc, 0x0, 0x0,
-    0xb8, 0x0, 0x0, 0x0, 0x74, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0,
-
     /* U+73A9 "玩" */
     0x15, 0x55, 0x51, 0xaa, 0xaa, 0xaa, 0x80, 0x3f,
     0xff, 0xf5, 0xff, 0xff, 0xff, 0xc0, 0x3f, 0xff,
@@ -87794,31 +92010,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x3c, 0x0, 0x0,
 
-    /* U+73E3 "珣" */
-    0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x2f, 0x0, 0x0, 0x3, 0xff, 0xff, 0x3, 0xd0,
-    0x0, 0x0, 0x3f, 0xff, 0xf0, 0x7f, 0xff, 0xff,
-    0xc0, 0xb, 0x80, 0xf, 0xff, 0xff, 0xfd, 0x0,
-    0xb8, 0x1, 0xf0, 0x0, 0x3, 0xc0, 0xb, 0x80,
-    0x3d, 0x0, 0x0, 0x3c, 0x0, 0xb8, 0xb, 0x80,
-    0x0, 0x3, 0xc0, 0xb, 0x81, 0xf4, 0x0, 0x0,
-    0x3c, 0x0, 0xb8, 0xf, 0xff, 0xff, 0x3, 0xc0,
-    0xb, 0x80, 0x6f, 0xff, 0xf0, 0x3c, 0x2a, 0xfe,
-    0x92, 0xc0, 0xf, 0x3, 0xc3, 0xff, 0xfd, 0x2c,
-    0x0, 0xf0, 0x3c, 0x0, 0xb8, 0x2, 0xc0, 0xf,
-    0x3, 0xc0, 0xb, 0x80, 0x2f, 0xff, 0xf0, 0x3c,
-    0x0, 0xb8, 0x2, 0xff, 0xff, 0x3, 0xc0, 0xb,
-    0x80, 0x2d, 0x0, 0xf0, 0x3c, 0x0, 0xb8, 0x2,
-    0xc0, 0xf, 0x3, 0xc0, 0xb, 0x80, 0x2c, 0x0,
-    0xf0, 0x3c, 0x0, 0xb8, 0x12, 0xc0, 0xf, 0x3,
-    0xc0, 0xb, 0xef, 0x2f, 0xff, 0xf0, 0x3c, 0x16,
-    0xff, 0xf2, 0xff, 0xff, 0x3, 0xcb, 0xff, 0x90,
-    0x0, 0x0, 0x0, 0x3c, 0x79, 0x0, 0x0, 0x0,
-    0x0, 0xb, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x6f,
-    0xf8, 0x0, 0x0, 0x0, 0x0, 0x3, 0xff, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x25, 0x0,
-
     /* U+73E5 "珥" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f,
     0xff, 0xf7, 0xff, 0xff, 0xff, 0xf4, 0x3f, 0xff,
@@ -87925,32 +92116,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x7d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
-    /* U+73F0 "珰" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x0,
-    0x8, 0x0, 0xf0, 0x2, 0x0, 0x0, 0x0, 0xbc,
-    0x3, 0xc0, 0x2e, 0xf, 0xff, 0xf4, 0xf8, 0xf,
-    0x0, 0xf4, 0x3f, 0xff, 0xd1, 0xf4, 0x3c, 0xb,
-    0x80, 0x2, 0xd0, 0x2, 0xf0, 0xf0, 0x7c, 0x0,
-    0xb, 0x40, 0x3, 0xe3, 0xc3, 0xd0, 0x0, 0x2d,
-    0x0, 0x7, 0x4f, 0x1e, 0x0, 0x0, 0xb4, 0x0,
-    0x0, 0x3c, 0x0, 0x0, 0x2, 0xd0, 0x1a, 0xaa,
-    0xfa, 0xaa, 0x0, 0xb, 0x40, 0xbf, 0xff, 0xff,
-    0xfc, 0xb, 0xff, 0xf1, 0x55, 0x55, 0x55, 0xf0,
-    0x3f, 0xff, 0xc0, 0x0, 0x0, 0x3, 0xc0, 0x17,
-    0xe5, 0x0, 0x0, 0x0, 0xf, 0x0, 0xb, 0x40,
-    0x0, 0x0, 0x0, 0x3c, 0x0, 0x2d, 0x0, 0x0,
-    0x0, 0x0, 0xf0, 0x0, 0xb4, 0x3, 0xff, 0xff,
-    0xff, 0xc0, 0x2, 0xd0, 0xf, 0xff, 0xff, 0xff,
-    0x0, 0xb, 0x40, 0x0, 0x0, 0x0, 0x3c, 0x0,
-    0x2d, 0x0, 0x0, 0x0, 0x0, 0xf0, 0x0, 0xbf,
-    0xe0, 0x0, 0x0, 0x3, 0xc1, 0x6f, 0xff, 0x40,
-    0x0, 0x0, 0xf, 0xf, 0xff, 0x90, 0x0, 0x0,
-    0x0, 0x3c, 0x39, 0x0, 0x7, 0xff, 0xff, 0xff,
-    0xf0, 0x0, 0x0, 0x1f, 0xff, 0xff, 0xff, 0xc0,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x3c,
-
     /* U+73F2 "珲" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x3, 0xff, 0xff, 0xff, 0xf0, 0x3f, 0xff,
@@ -87976,34 +92141,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0x0, 0xf, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0xf, 0x0, 0x0,
 
-    /* U+73FD "珽" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x55, 0x40, 0x0, 0x6e, 0x0, 0xff,
-    0xfe, 0xff, 0xf9, 0xaf, 0xff, 0xc0, 0x3f, 0xff,
-    0xaa, 0xbe, 0xbf, 0xf9, 0x0, 0x0, 0x3c, 0x0,
-    0xf, 0x19, 0x3c, 0x0, 0x0, 0xf, 0x0, 0xb,
-    0x80, 0xf, 0x0, 0x0, 0x3, 0xc0, 0x7, 0xc0,
-    0x3, 0xc0, 0x0, 0x0, 0xf0, 0x3, 0xc0, 0x0,
-    0xf0, 0x0, 0x0, 0x3c, 0x2, 0xe0, 0x0, 0x3c,
-    0x0, 0x0, 0xf, 0x1, 0xf0, 0x0, 0xf, 0x0,
-    0x0, 0x7, 0xc0, 0xfe, 0xa6, 0xff, 0xff, 0xd0,
-    0x3f, 0xff, 0x3f, 0xfe, 0xbf, 0xff, 0xf4, 0xb,
-    0xff, 0xc5, 0x5b, 0x80, 0x3c, 0x0, 0x0, 0xf,
-    0x0, 0x1, 0xd0, 0xf, 0x0, 0x0, 0x3, 0xc0,
-    0x50, 0xb4, 0x3, 0xc0, 0x0, 0x0, 0xf0, 0x3c,
-    0x3c, 0x0, 0xf0, 0x0, 0x0, 0x3c, 0xf, 0xf,
-    0x0, 0x3c, 0x0, 0x0, 0xf, 0x2, 0xd7, 0x80,
-    0xf, 0x0, 0x0, 0x3, 0xc0, 0x3f, 0xd2, 0xff,
-    0xff, 0xc0, 0x0, 0xf1, 0x8b, 0xf0, 0xbf, 0xff,
-    0xf0, 0x0, 0x7f, 0xf0, 0xf4, 0x0, 0x0, 0x0,
-    0xb, 0xff, 0xf8, 0xbf, 0x40, 0x0, 0x0, 0x3,
-    0xfe, 0x40, 0x7f, 0xf8, 0x0, 0x0, 0x0, 0x50,
-    0x0, 0x3d, 0x2f, 0xe5, 0x0, 0x0, 0x0, 0x0,
-    0x3e, 0x1, 0xff, 0xff, 0xff, 0x0, 0x0, 0x3f,
-    0x0, 0x6, 0xbf, 0xff, 0xc0, 0x0, 0x3, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0,
-
     /* U+7403 "球" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x1f, 0x8, 0x0, 0x0, 0x0,
@@ -88084,33 +92221,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x54, 0x0, 0x3f, 0xff, 0xff, 0xff, 0xfd,
     0x0, 0x0, 0x3f, 0xff, 0xff, 0xff, 0xfd,
 
-    /* U+7407 "琇" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x80, 0x0,
-    0x0, 0x0, 0x15, 0xab, 0xff, 0xc0, 0x3f, 0xff,
-    0xd7, 0xff, 0xff, 0xfe, 0x40, 0x3f, 0xff, 0xe7,
-    0xea, 0xbc, 0x0, 0x0, 0x15, 0xf5, 0x40, 0x0,
-    0x3c, 0x0, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x3c,
-    0x0, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x7c, 0x0,
-    0x0, 0x0, 0xf0, 0xf, 0xff, 0xff, 0xff, 0xfc,
-    0x0, 0xf0, 0xa, 0xab, 0xff, 0xea, 0xa8, 0x0,
-    0xf0, 0x0, 0x7, 0xff, 0xc0, 0x0, 0x0, 0xf0,
-    0x0, 0x2f, 0x7d, 0xf8, 0x0, 0x3f, 0xff, 0x81,
-    0xfd, 0x3c, 0x7f, 0x40, 0x3f, 0xff, 0x9f, 0xf4,
-    0x3c, 0xf, 0xf4, 0x0, 0xf4, 0x7f, 0x80, 0x28,
-    0x2, 0xfd, 0x0, 0xf0, 0x2d, 0x0, 0x0, 0x0,
-    0x3c, 0x0, 0xf0, 0x2, 0xff, 0xff, 0xf8, 0x0,
-    0x0, 0xf0, 0x2, 0xff, 0xff, 0xf4, 0x0, 0x0,
-    0xf0, 0x0, 0x1d, 0x0, 0xb0, 0x0, 0x0, 0xf0,
-    0x0, 0x2d, 0x0, 0xff, 0xe0, 0x0, 0xf0, 0x0,
-    0x3c, 0x0, 0xff, 0xd0, 0x0, 0xfb, 0xd0, 0x3c,
-    0x0, 0x1, 0xd0, 0x1b, 0xff, 0xd0, 0xb8, 0x0,
-    0x2, 0xd0, 0x7f, 0xf9, 0x1, 0xf0, 0x0, 0x2,
-    0xc0, 0x29, 0x0, 0x7, 0xd0, 0x0, 0x3, 0xc0,
-    0x0, 0x0, 0x2f, 0x80, 0x6, 0xbf, 0xc0, 0x0,
-    0x0, 0xfe, 0x0, 0x3, 0xff, 0x0, 0x0, 0x0,
-    0x74, 0x0, 0x1, 0x50, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0,
-
     /* U+7409 "琉" */
     0x0, 0x0, 0x0, 0x0, 0x28, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0xf, 0x0, 0x0, 0x0, 0x0,
@@ -88139,32 +92249,29 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x3, 0xc0, 0xbf, 0xe0, 0x0, 0x0, 0x80, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+740E "琎" */
-    0x0, 0x0, 0x0, 0x0, 0x5, 0x1, 0x40, 0x0,
-    0x0, 0x0, 0xe0, 0x3, 0xc0, 0xb4, 0x0, 0x0,
-    0x0, 0x3c, 0x0, 0xf0, 0x2d, 0x0, 0x3f, 0xff,
-    0x8b, 0x80, 0x3c, 0xb, 0x40, 0xf, 0xff, 0xe0,
-    0xf0, 0xf, 0x2, 0xd0, 0x0, 0xf, 0x0, 0x2e,
-    0x3f, 0xff, 0xff, 0x80, 0x3, 0xc0, 0x7, 0x9f,
-    0xff, 0xff, 0xe0, 0x0, 0xf0, 0x0, 0x40, 0x3c,
-    0xb, 0x40, 0x0, 0x3c, 0x0, 0x0, 0xf, 0x2,
-    0xd0, 0x0, 0xf, 0x1, 0x50, 0x3, 0xc0, 0xb4,
-    0x0, 0x3, 0xc1, 0xff, 0x0, 0xf0, 0x2d, 0x0,
-    0x2b, 0xfa, 0x6f, 0xc0, 0x3c, 0xb, 0x40, 0xf,
-    0xff, 0xd0, 0xf0, 0xf, 0x2, 0xd0, 0x1, 0x5f,
-    0x50, 0x3c, 0xff, 0xff, 0xff, 0xc0, 0x3, 0xc0,
-    0xf, 0x3f, 0xff, 0xff, 0xf0, 0x0, 0xf0, 0x3,
-    0xc0, 0x3c, 0xb, 0x40, 0x0, 0x3c, 0x0, 0xf0,
-    0xf, 0x2, 0xd0, 0x0, 0xf, 0x0, 0x3c, 0x7,
-    0x80, 0xb4, 0x0, 0x3, 0xc0, 0xf, 0x3, 0xc0,
-    0x2d, 0x0, 0x0, 0xf1, 0x43, 0xc1, 0xf0, 0xb,
-    0x40, 0x0, 0x7f, 0xe0, 0xf0, 0xf4, 0x2, 0xd0,
-    0xb, 0xff, 0xe0, 0x7c, 0xb8, 0x0, 0xb4, 0x3,
-    0xf9, 0x0, 0x7f, 0xdc, 0x0, 0x2c, 0x0, 0x0,
-    0x0, 0x7e, 0xfe, 0x50, 0x0, 0x0, 0x0, 0x0,
-    0x7e, 0xb, 0xff, 0xff, 0xff, 0x0, 0x0, 0x9,
-    0x0, 0x6b, 0xff, 0xff, 0xc0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0,
+    /* U+740A "琊" */
+    0x0, 0x0, 0x5, 0x55, 0x50, 0x0, 0x0, 0x55,
+    0x54, 0xff, 0xff, 0xcf, 0xff, 0xe3, 0xff, 0xfa,
+    0xff, 0xff, 0x3f, 0xff, 0x8f, 0xff, 0xe0, 0x3,
+    0xc0, 0xf0, 0x2d, 0x0, 0xf0, 0x5, 0xf, 0x3,
+    0xc0, 0xf0, 0x3, 0xc0, 0x3c, 0x3c, 0xf, 0x3,
+    0xc0, 0xf, 0x1, 0xe0, 0xf0, 0x3c, 0x1d, 0x0,
+    0x3c, 0x7, 0x83, 0xc0, 0xf0, 0xf0, 0x0, 0xf0,
+    0x2d, 0xf, 0x3, 0xc3, 0xc0, 0x3, 0xc0, 0xf0,
+    0x3c, 0xf, 0x1e, 0x3, 0xff, 0xf7, 0xff, 0xff,
+    0x7c, 0xb4, 0xf, 0xff, 0xdf, 0xff, 0xfd, 0xf0,
+    0xf0, 0x0, 0xf0, 0x0, 0xff, 0x3, 0xc2, 0xd0,
+    0x3, 0xc0, 0x3, 0xbc, 0xf, 0x3, 0xc0, 0xf,
+    0x0, 0x2d, 0xf0, 0x3c, 0xb, 0x40, 0x3c, 0x0,
+    0xf3, 0xc0, 0xf0, 0x1e, 0x0, 0xf0, 0xb, 0x8f,
+    0x3, 0xc0, 0x3c, 0x3, 0xc4, 0x3c, 0x3c, 0xf,
+    0x0, 0xf0, 0xf, 0xfa, 0xe0, 0xf0, 0x3c, 0x3,
+    0xdb, 0xff, 0xff, 0x3, 0xc0, 0xf0, 0x2f, 0xbf,
+    0x90, 0xf4, 0xf, 0x3, 0xcf, 0xf4, 0x40, 0xf,
+    0x80, 0x3c, 0xf, 0x2f, 0x40, 0x0, 0xfc, 0x0,
+    0xf0, 0x3c, 0x0, 0x0, 0x3, 0xc0, 0x6f, 0xc0,
+    0xf0, 0x0, 0x0, 0x0, 0x3, 0xfd, 0x3, 0xc0,
+    0x0, 0x0, 0x0, 0x6, 0x40, 0xf, 0x0, 0x0,
 
     /* U+740F "琏" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -88298,33 +92405,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x1f, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x2, 0x50, 0x0, 0x0, 0x0,
 
-    /* U+7424 "琤" */
-    0x0, 0x0, 0x0, 0x7, 0x40, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0xf, 0x40, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x1f, 0x0, 0x0, 0x0, 0x2f, 0xff, 0xd0,
-    0x3f, 0xff, 0xfc, 0x0, 0x3f, 0xff, 0xd0, 0xbf,
-    0xff, 0xfc, 0x0, 0x15, 0xf9, 0x41, 0xf0, 0x0,
-    0xf4, 0x0, 0x0, 0xb4, 0x7, 0xd0, 0x2, 0xe0,
-    0x0, 0x0, 0xb4, 0xf, 0x40, 0x7, 0xc0, 0x0,
-    0x0, 0xb4, 0xf, 0xff, 0xff, 0xff, 0xc0, 0x0,
-    0xb4, 0x2, 0xff, 0xff, 0xff, 0xc0, 0x0, 0xb4,
-    0x0, 0x0, 0x3c, 0x3, 0xc0, 0x0, 0xb4, 0x0,
-    0x0, 0x3c, 0x3, 0xc0, 0x1f, 0xff, 0xc0, 0x0,
-    0x3c, 0x3, 0xc0, 0x1f, 0xff, 0xc0, 0x0, 0x3c,
-    0x3, 0xc0, 0x0, 0xb4, 0xf, 0xff, 0xff, 0xff,
-    0xfc, 0x0, 0xb4, 0xf, 0xff, 0xff, 0xff, 0xfc,
-    0x0, 0xb4, 0x0, 0x0, 0x3c, 0x3, 0xc0, 0x0,
-    0xb4, 0x0, 0x0, 0x3c, 0x3, 0xc0, 0x0, 0xb4,
-    0x0, 0x0, 0x3c, 0x3, 0xc0, 0x0, 0xb4, 0x0,
-    0x0, 0x3c, 0x3, 0xc0, 0x0, 0xb4, 0x3, 0xff,
-    0xff, 0xff, 0xc0, 0x0, 0xb5, 0x93, 0xff, 0xff,
-    0xff, 0xc0, 0x1, 0xff, 0xe0, 0x0, 0x3c, 0x0,
-    0x0, 0xbf, 0xfe, 0x40, 0x0, 0x3c, 0x0, 0x0,
-    0x7e, 0x40, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x6, 0xfc, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x1f, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x9, 0x40, 0x0, 0x0,
-
     /* U+7425 "琥" */
     0x0, 0x0, 0x0, 0x0, 0xb4, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0xb4, 0x0, 0x0, 0x0, 0x0,
@@ -88430,33 +92510,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x3d, 0x0, 0x0, 0x0, 0x28, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
-    /* U+742B "琫" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x3c, 0x0, 0x0, 0x3f, 0xff, 0xc7, 0xff,
-    0xff, 0xff, 0xf0, 0x3f, 0xff, 0xc6, 0xaa, 0xfe,
-    0xaa, 0xa0, 0x0, 0xf0, 0x0, 0x0, 0xb8, 0x0,
-    0x0, 0x0, 0xf0, 0x0, 0x0, 0xf4, 0x0, 0x0,
-    0x0, 0xf0, 0x3, 0xff, 0xff, 0xff, 0xc0, 0x0,
-    0xf0, 0x3, 0xff, 0xff, 0xff, 0xc0, 0x0, 0xf0,
-    0x0, 0x2, 0xe0, 0x0, 0x0, 0x0, 0xf0, 0x0,
-    0x3, 0xc0, 0x0, 0x0, 0x1, 0xf0, 0xf, 0xff,
-    0xff, 0xff, 0xf8, 0x3f, 0xff, 0x8f, 0xff, 0xff,
-    0xff, 0xf8, 0x2f, 0xff, 0x80, 0x2e, 0x4, 0x7c,
-    0x0, 0x0, 0xf0, 0x0, 0x7c, 0x2d, 0x2e, 0x0,
-    0x0, 0xf0, 0x0, 0xf4, 0x2d, 0xf, 0x40, 0x0,
-    0xf0, 0x3, 0xd0, 0x2d, 0x7, 0xe0, 0x0, 0xf0,
-    0x1f, 0x7f, 0xff, 0xfd, 0xfc, 0x0, 0xf0, 0x7d,
-    0x2f, 0xff, 0xfc, 0x3d, 0x0, 0xf0, 0x20, 0x0,
-    0x2d, 0x0, 0x4, 0x0, 0xf6, 0x80, 0x0, 0x2d,
-    0x0, 0x0, 0x6, 0xff, 0xc3, 0xff, 0xff, 0xff,
-    0xd0, 0xff, 0xf9, 0x3, 0xff, 0xff, 0xff, 0xe0,
-    0xb9, 0x0, 0x0, 0x0, 0x2d, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x2d, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x2d, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x2d, 0x0, 0x0,
-
     /* U+742C "琬" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x74, 0x0, 0x0, 0x0, 0x0,
@@ -88513,34 +92566,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xf, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+742F "琯" */
-    0x0, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x2e, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x1f, 0x0, 0x0, 0xf, 0xff, 0xf0,
-    0x0, 0xf, 0x0, 0x0, 0xf, 0xff, 0xf3, 0xff,
-    0xff, 0xff, 0xfc, 0x0, 0x3d, 0x3, 0xff, 0xff,
-    0xff, 0xfc, 0x0, 0x3c, 0x3, 0xd0, 0x0, 0x0,
-    0x3c, 0x0, 0x3c, 0x3, 0xd0, 0x0, 0x0, 0x3c,
-    0x0, 0x3c, 0x2, 0xd0, 0x0, 0x0, 0x2c, 0x0,
-    0x3c, 0x0, 0x7f, 0xff, 0xff, 0xc0, 0x0, 0x3c,
-    0x0, 0x7f, 0xff, 0xff, 0xc0, 0x0, 0x3c, 0x0,
-    0x7c, 0x0, 0x3, 0xc0, 0xf, 0xff, 0xf0, 0x7c,
-    0x0, 0x3, 0xc0, 0xf, 0xff, 0xf0, 0x7c, 0x0,
-    0x3, 0xc0, 0x0, 0x3c, 0x0, 0x7f, 0xff, 0xff,
-    0xc0, 0x0, 0x3c, 0x0, 0x7f, 0xff, 0xff, 0xc0,
-    0x0, 0x3c, 0x0, 0x7c, 0x0, 0x0, 0x0, 0x0,
-    0x3c, 0x0, 0x7c, 0x0, 0x0, 0x0, 0x0, 0x3c,
-    0x0, 0x7c, 0x0, 0x0, 0x0, 0x0, 0x3c, 0x0,
-    0x7f, 0xff, 0xff, 0xf0, 0x0, 0x3c, 0x0, 0x7f,
-    0xff, 0xff, 0xf0, 0x0, 0x3e, 0xf4, 0x7c, 0x0,
-    0x1, 0xf0, 0x1, 0xbf, 0xf4, 0x7c, 0x0, 0x0,
-    0xf0, 0x3f, 0xfe, 0x40, 0x7c, 0x0, 0x0, 0xf0,
-    0x2f, 0x90, 0x0, 0x7c, 0x0, 0x1, 0xf0, 0x0,
-    0x0, 0x0, 0x7f, 0xff, 0xff, 0xf0, 0x0, 0x0,
-    0x0, 0x7f, 0xff, 0xff, 0xf0, 0x0, 0x0, 0x0,
-    0x7c, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0,
-
     /* U+7430 "琰" */
     0x0, 0x0, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x15, 0x55,
@@ -88697,30 +92722,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x10, 0xf, 0xf4, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
-    /* U+7440 "瑀" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x40, 0x0,
-    0x0, 0x15, 0x6a, 0xff, 0xfd, 0x3f, 0xff, 0xe7,
-    0xff, 0xff, 0xff, 0x93, 0xff, 0xfe, 0x7a, 0x97,
-    0xc0, 0x0, 0x0, 0xf4, 0x0, 0x0, 0x3c, 0x0,
-    0x0, 0xb, 0x0, 0x0, 0x3, 0xc0, 0x0, 0x0,
-    0xb0, 0x3, 0xff, 0xff, 0xff, 0xc0, 0xb, 0x0,
-    0x3f, 0xff, 0xff, 0xfc, 0x0, 0xb0, 0x3, 0xc0,
-    0x3c, 0x3, 0xc0, 0xb, 0x0, 0x3c, 0x3, 0xc0,
-    0x3c, 0x0, 0xf4, 0x3, 0xd5, 0x7d, 0x57, 0xc2,
-    0xff, 0xfc, 0x3f, 0xff, 0xff, 0xfc, 0x2f, 0xff,
-    0xc2, 0xaa, 0xbe, 0xaa, 0x80, 0xb, 0x0, 0x0,
-    0x3, 0xc0, 0x0, 0x0, 0xb0, 0x0, 0x0, 0x3c,
-    0x0, 0x0, 0xb, 0x0, 0x7f, 0xff, 0xff, 0xff,
-    0x0, 0xb0, 0x7, 0xff, 0xff, 0xff, 0xf0, 0xb,
-    0x0, 0x78, 0x3, 0xc0, 0xf, 0x0, 0xb0, 0x7,
-    0x80, 0x3c, 0xb0, 0xf0, 0xb, 0x4, 0x78, 0x3,
-    0xcb, 0x4f, 0x0, 0xff, 0xd7, 0x80, 0x3d, 0xb8,
-    0xf6, 0xbf, 0xfd, 0x79, 0xff, 0xff, 0xcf, 0xbf,
-    0xe4, 0x7, 0x9f, 0xea, 0x6c, 0xf5, 0x40, 0x0,
-    0x78, 0x0, 0x1, 0x9f, 0x0, 0x0, 0x7, 0x80,
-    0x0, 0x2f, 0xe0, 0x0, 0x0, 0x78, 0x0, 0x2,
-    0xf8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
     /* U+7441 "瑁" */
     0x0, 0x0, 0xb, 0xff, 0xff, 0xff, 0xe2, 0xaa,
     0xa8, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xff, 0xcf,
@@ -88745,56 +92746,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xaa, 0xab, 0xc0, 0x0, 0x0, 0x3e, 0x0, 0x0,
     0x3c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
 
-    /* U+7444 "瑄" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x2, 0xd0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x7, 0xc0, 0x0, 0x5, 0x55, 0x40, 0x0,
-    0xf, 0x0, 0x0, 0x3f, 0xff, 0xcf, 0xff, 0xff,
-    0xff, 0xf0, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff,
-    0xc0, 0xf, 0x0, 0xf0, 0x0, 0x0, 0xf, 0x0,
-    0x3c, 0x3, 0xc0, 0x0, 0x0, 0x3c, 0x0, 0xf0,
-    0xf, 0x0, 0x0, 0x0, 0xf0, 0x3, 0xc0, 0x27,
-    0xff, 0xff, 0xfa, 0x80, 0xf, 0x0, 0xb, 0xff,
-    0xff, 0xe0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x1a, 0xfa, 0x40, 0x0, 0x0, 0x0, 0x0,
-    0xff, 0xff, 0xb, 0xff, 0xff, 0xfc, 0x1, 0xaf,
-    0xa4, 0x2f, 0xff, 0xff, 0xf0, 0x0, 0x3c, 0x0,
-    0xb0, 0x0, 0x3, 0xc0, 0x0, 0xf0, 0x2, 0xc0,
-    0x0, 0xf, 0x0, 0x3, 0xc0, 0xb, 0xff, 0xff,
-    0xfc, 0x0, 0xf, 0x0, 0x2f, 0xaa, 0xaa, 0xf0,
-    0x0, 0x3c, 0x0, 0xb0, 0x0, 0x3, 0xc0, 0x0,
-    0xf0, 0x2, 0xea, 0xaa, 0xaf, 0x0, 0x3, 0xda,
-    0xb, 0xff, 0xff, 0xfc, 0x0, 0x6f, 0xfc, 0x0,
-    0x0, 0x0, 0x0, 0x3f, 0xff, 0x90, 0x0, 0x0,
-    0x0, 0x0, 0xff, 0x90, 0x0, 0x0, 0x0, 0x0,
-    0x1, 0x40, 0x0, 0xff, 0xff, 0xff, 0xff, 0xe0,
-    0x0, 0x3, 0xff, 0xff, 0xff, 0xff, 0x80,
-
-    /* U+7452 "瑒" */
-    0x0, 0x0, 0x0, 0xbf, 0xff, 0xff, 0xc0, 0x15,
-    0x55, 0x40, 0xbe, 0xaa, 0xab, 0xc0, 0x3f, 0xff,
-    0xe0, 0xb0, 0x0, 0x3, 0xc0, 0x3f, 0xff, 0xd0,
-    0xb4, 0x0, 0x3, 0xc0, 0x0, 0xf0, 0x0, 0xbf,
-    0xff, 0xff, 0xc0, 0x0, 0xf0, 0x0, 0xba, 0xaa,
-    0xab, 0xc0, 0x0, 0xf0, 0x0, 0xb0, 0x0, 0x3,
-    0xc0, 0x0, 0xf0, 0x0, 0xbe, 0xaa, 0xab, 0xc0,
-    0x0, 0xf0, 0x0, 0xbf, 0xff, 0xff, 0xc0, 0x0,
-    0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x15, 0xf5,
-    0x40, 0x0, 0x0, 0x0, 0x0, 0x3f, 0xff, 0xcf,
-    0xff, 0xff, 0xff, 0xfd, 0x2a, 0xfa, 0x4a, 0xbf,
-    0xaa, 0xaa, 0xa8, 0x0, 0xf0, 0x0, 0x3c, 0x0,
-    0x0, 0x0, 0x0, 0xf0, 0x0, 0xfe, 0xaa, 0xaa,
-    0xa0, 0x0, 0xf0, 0x3, 0xff, 0xff, 0xff, 0xe0,
-    0x0, 0xf0, 0xf, 0x82, 0xe0, 0xf0, 0xe0, 0x0,
-    0xf0, 0x2e, 0x3, 0xc1, 0xe0, 0xe0, 0x0, 0xf1,
-    0x44, 0xf, 0x42, 0xd0, 0xe0, 0x0, 0xff, 0xc0,
-    0x2f, 0x3, 0xc0, 0xd0, 0x7f, 0xff, 0x80, 0xbc,
-    0xf, 0x40, 0xd0, 0xbf, 0x90, 0x2, 0xf4, 0x2f,
-    0x1, 0xd0, 0x10, 0x0, 0xf, 0xd0, 0xbc, 0x3,
-    0xc0, 0x0, 0x0, 0x7f, 0x2, 0xf0, 0xbf, 0xc0,
-    0x0, 0x0, 0x28, 0xf, 0xc0, 0x7e, 0x0, 0x0,
-    0x0, 0x0, 0x6, 0x0, 0x0, 0x0,
-
     /* U+7455 "瑕" */
     0x0, 0x0, 0x5, 0x55, 0x45, 0x55, 0x40, 0x15,
     0x55, 0x5f, 0xff, 0xcf, 0xff, 0xc0, 0x7f, 0xff,
@@ -89006,33 +92957,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x24, 0x0, 0x2f, 0xff, 0xfe, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
 
-    /* U+7462 "瑢" */
-    0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0xb8, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x3d, 0x0, 0x0, 0x3f, 0xff, 0xeb, 0xff,
-    0xff, 0xff, 0xf0, 0x3f, 0xff, 0xeb, 0xff, 0xff,
-    0xff, 0xf0, 0x0, 0xb4, 0xb, 0x40, 0x0, 0x0,
-    0xf0, 0x0, 0xb4, 0xb, 0x40, 0x0, 0x40, 0xf0,
-    0x0, 0xb4, 0xb, 0x47, 0x82, 0xe0, 0xf0, 0x0,
-    0xb4, 0x0, 0x2f, 0x40, 0xfd, 0x0, 0x0, 0xb4,
-    0x0, 0xfc, 0x0, 0x2f, 0x80, 0x0, 0xb4, 0xb,
-    0xe0, 0x7e, 0x7, 0xf0, 0x1a, 0xfe, 0x8b, 0x40,
-    0xff, 0x0, 0xf0, 0x2f, 0xff, 0xc0, 0x3, 0xd7,
-    0xc0, 0x0, 0x5, 0xb9, 0x40, 0xf, 0x82, 0xf0,
-    0x0, 0x0, 0xb4, 0x0, 0x3f, 0x0, 0xbd, 0x0,
-    0x0, 0xb4, 0x1, 0xfc, 0x0, 0x2f, 0x40, 0x0,
-    0xb4, 0xb, 0xe0, 0x0, 0x7, 0xf0, 0x0, 0xb4,
-    0x3f, 0xff, 0xff, 0xff, 0xfd, 0x0, 0xb4, 0x2c,
-    0xff, 0xff, 0xff, 0x2c, 0x0, 0xb4, 0x0, 0xf4,
-    0x0, 0xf, 0x0, 0x0, 0xb5, 0xe0, 0xf0, 0x0,
-    0xf, 0x0, 0x1, 0xff, 0xf0, 0xf0, 0x0, 0xf,
-    0x0, 0xbf, 0xff, 0x80, 0xf0, 0x0, 0xf, 0x0,
-    0xff, 0x90, 0x0, 0xf0, 0x0, 0xf, 0x0, 0x50,
-    0x0, 0x0, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0,
-    0x0, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0,
-    0xf0, 0x0, 0xf, 0x0,
-
     /* U+746D "瑭" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x7, 0x40, 0x0, 0x0, 0x0,
@@ -89116,6 +93040,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x2, 0xaa, 0xaa, 0xab, 0xc0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x3, 0xc0,
 
+    /* U+7477 "瑷" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x15, 0x6b, 0xff, 0x0, 0x0,
+    0x0, 0x2f, 0xff, 0xff, 0xff, 0x80, 0x3f, 0xff,
+    0xd7, 0xfa, 0xb9, 0x1, 0x40, 0xf, 0xff, 0xf4,
+    0x74, 0xe, 0x0, 0xf0, 0x0, 0xf, 0x0, 0xf,
+    0x2, 0xc0, 0xb4, 0x0, 0x3, 0xc0, 0x1, 0xd0,
+    0x74, 0x38, 0x0, 0x0, 0xf0, 0xf, 0xff, 0xff,
+    0xff, 0xf0, 0x0, 0x3c, 0x7, 0xff, 0xff, 0xff,
+    0xfc, 0x0, 0xf, 0x1, 0xe0, 0x0, 0x0, 0xb,
+    0x0, 0x3, 0xc0, 0x78, 0x1d, 0x0, 0x2, 0xc0,
+    0x1a, 0xfa, 0x80, 0xb, 0x40, 0x0, 0x0, 0xf,
+    0xff, 0xf2, 0xff, 0xff, 0xff, 0xf8, 0x1, 0x5f,
+    0x94, 0xff, 0xff, 0xff, 0xff, 0x0, 0x3, 0xc0,
+    0x0, 0x78, 0x0, 0x0, 0x0, 0x0, 0xf0, 0x0,
+    0x3d, 0x0, 0x0, 0x0, 0x0, 0x3c, 0x0, 0xf,
+    0xff, 0xff, 0xe0, 0x0, 0xf, 0x0, 0xb, 0xff,
+    0xff, 0xf8, 0x0, 0x3, 0xc0, 0x3, 0xfc, 0x0,
+    0x7d, 0x0, 0x0, 0xf5, 0xd2, 0xe7, 0x80, 0x3e,
+    0x0, 0x0, 0x7f, 0xf5, 0xf0, 0xf8, 0x3e, 0x0,
+    0xb, 0xff, 0xe5, 0xf4, 0xf, 0xbe, 0x0, 0x3,
+    0xfe, 0x40, 0xf8, 0x0, 0xff, 0x0, 0x0, 0x50,
+    0x0, 0xf8, 0x2, 0xff, 0xf4, 0x0, 0x0, 0x0,
+    0xf8, 0x2f, 0xf8, 0x2f, 0xf9, 0x0, 0x0, 0x8,
+    0xbf, 0xe0, 0x0, 0xbf, 0xc0, 0x0, 0x0, 0x1e,
+    0x40, 0x0, 0x1, 0xa0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+747E "瑾" */
     0x0, 0x0, 0x0, 0xb0, 0x0, 0x78, 0x0, 0x0,
     0x0, 0x2, 0xc0, 0x1, 0xe0, 0x0, 0x0, 0x0,
@@ -89219,33 +93171,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x1, 0xd0, 0x0, 0x3, 0xf8, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0,
 
-    /* U+7486 "璆" */
-    0x0, 0x0, 0x2, 0xff, 0xfa, 0xff, 0xf0, 0x3,
-    0xff, 0xfc, 0xff, 0xfe, 0xff, 0xfc, 0x0, 0xff,
-    0xff, 0x1, 0x3, 0x88, 0xb, 0x0, 0x0, 0xf0,
-    0x2, 0xd0, 0xe7, 0x82, 0xc0, 0x0, 0x3c, 0x0,
-    0x3d, 0x38, 0xb8, 0xb0, 0x0, 0xf, 0x0, 0x3,
-    0x4e, 0xb, 0x3c, 0x0, 0x3, 0xc0, 0x0, 0x1f,
-    0x80, 0xbf, 0x0, 0x0, 0xf0, 0x0, 0x7f, 0xe2,
-    0xff, 0xc0, 0x0, 0x3c, 0x2, 0xfe, 0x7a, 0xf4,
-    0xb0, 0x0, 0xf, 0x0, 0xf8, 0xb, 0xe0, 0x2c,
-    0x0, 0xbf, 0xfe, 0x0, 0x7, 0xfd, 0x1, 0x0,
-    0x3f, 0xff, 0x80, 0xb, 0xc3, 0xe0, 0x0, 0x0,
-    0x3c, 0x0, 0x1f, 0x80, 0x2f, 0x40, 0x0, 0xf,
-    0x0, 0x7f, 0x40, 0xb1, 0xfd, 0x0, 0x3, 0xc0,
-    0xfe, 0x2, 0xf8, 0xb, 0xf0, 0x0, 0xf0, 0x18,
-    0xb, 0xf4, 0x10, 0x28, 0x0, 0x3c, 0x0, 0x7f,
-    0xd0, 0x2e, 0x0, 0x0, 0xf, 0x0, 0x2f, 0x40,
-    0xbf, 0x0, 0x0, 0x3, 0xc0, 0x0, 0x6, 0xfd,
-    0x2, 0x0, 0x0, 0xfb, 0xc0, 0x1f, 0xf4, 0xb,
-    0xd0, 0x6, 0xff, 0xf0, 0xff, 0x90, 0x1f, 0xd0,
-    0xf, 0xfe, 0x80, 0x3d, 0x0, 0x7f, 0x80, 0x2,
-    0x90, 0x0, 0x0, 0x6, 0xfe, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x6f, 0xf8, 0x0, 0x0, 0x0, 0x0,
-    0x3, 0xff, 0x90, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0xf9, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0,
-
     /* U+7487 "璇" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x3, 0x80, 0x7, 0x40, 0x0, 0x0, 0x0,
@@ -89274,35 +93199,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x7, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+7488 "璈" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0xb, 0x0, 0x7, 0x40, 0x0, 0x0,
-    0x0, 0x2, 0xc0, 0x2, 0xc0, 0x0, 0x0, 0x0,
-    0x0, 0xb0, 0x0, 0xf0, 0x0, 0xf, 0xff, 0xcf,
-    0xff, 0xf8, 0x3c, 0x0, 0x3, 0xff, 0xf3, 0xff,
-    0xfe, 0x1e, 0x0, 0x0, 0x7, 0x40, 0x2, 0xc0,
-    0xb, 0xff, 0xf0, 0x1, 0xd0, 0x0, 0xb0, 0x3,
-    0xff, 0xfc, 0x0, 0x74, 0xb, 0xff, 0xf0, 0xe0,
-    0x34, 0x0, 0x1d, 0x3, 0xff, 0xfc, 0xb4, 0x1d,
-    0x0, 0x7, 0x40, 0x2, 0xc0, 0x3e, 0x7, 0x40,
-    0x1, 0xd0, 0x0, 0xb0, 0x2f, 0x82, 0xc0, 0xa,
-    0xba, 0x40, 0x2c, 0x7, 0xf0, 0xb0, 0x3, 0xff,
-    0xfb, 0xff, 0xfd, 0x2c, 0x3c, 0x0, 0x5b, 0x96,
-    0xff, 0xff, 0x47, 0xe, 0x0, 0x1, 0xd0, 0x7,
-    0x40, 0x1, 0xd7, 0x40, 0x0, 0x74, 0x1, 0xd0,
-    0x0, 0x3a, 0xc0, 0x0, 0x1d, 0x0, 0x7a, 0xa8,
-    0xb, 0xf0, 0x0, 0x7, 0x40, 0x2f, 0xff, 0x1,
-    0xf8, 0x0, 0x1, 0xd0, 0xb, 0x3, 0xc0, 0x3c,
-    0x0, 0x0, 0x74, 0x3, 0xc0, 0xf0, 0xf, 0x40,
-    0x0, 0x1f, 0xe1, 0xe0, 0x38, 0xb, 0xf0, 0x2,
-    0xff, 0xf8, 0xb4, 0xe, 0x7, 0xee, 0x0, 0xff,
-    0x90, 0x3c, 0x7, 0x83, 0xc3, 0xd0, 0x0, 0x0,
-    0x2d, 0x7, 0xd3, 0xe0, 0x7c, 0x0, 0x0, 0x1f,
-    0xf, 0xf2, 0xf0, 0xb, 0xc0, 0x0, 0xf, 0x1,
-    0x41, 0xf0, 0x0, 0xf4, 0x0, 0x2, 0x40, 0x0,
-    0x34, 0x0, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0,
-
     /* U+748B "璋" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0xb8, 0x0, 0x0, 0x0, 0x0,
@@ -89384,35 +93280,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0xe0, 0xf, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x38, 0x3, 0xc0,
 
-    /* U+7498 "璘" */
-    0x0, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x4, 0x3, 0xc0, 0x10, 0x0, 0x0,
-    0x0, 0xf, 0x40, 0xf0, 0x1e, 0x0, 0x2a, 0xaa,
-    0x81, 0xf0, 0x3c, 0xf, 0x0, 0xf, 0xff, 0xf0,
-    0x1f, 0xf, 0xf, 0x40, 0x1, 0x5f, 0x54, 0x2,
-    0x83, 0xc3, 0x40, 0x0, 0x3, 0xc0, 0x15, 0x55,
-    0xf5, 0x55, 0x40, 0x0, 0xf0, 0x1f, 0xff, 0xff,
-    0xff, 0xf0, 0x0, 0x3c, 0x1, 0x55, 0xbf, 0xe5,
-    0x54, 0x0, 0xf, 0x0, 0x0, 0xbf, 0xfe, 0x0,
-    0x0, 0x3, 0xc0, 0x0, 0xfc, 0xf3, 0xf4, 0x0,
-    0x0, 0xf0, 0x2, 0xf8, 0x3c, 0x2f, 0xd0, 0xb,
-    0xff, 0xeb, 0xf4, 0xf, 0x0, 0xff, 0x3, 0xff,
-    0xfa, 0xe9, 0x3, 0xc1, 0x87, 0x80, 0x3, 0xc0,
-    0x7, 0x80, 0x0, 0xb0, 0x0, 0x0, 0xf0, 0x3,
-    0xe5, 0x40, 0x2c, 0x0, 0x0, 0x3c, 0x1, 0xff,
-    0xf7, 0xff, 0xfc, 0x0, 0xf, 0x0, 0xf9, 0x7c,
-    0xff, 0xff, 0x0, 0x3, 0xc0, 0x7c, 0xe, 0x24,
-    0xb0, 0x0, 0x0, 0xf0, 0x3f, 0x4b, 0x4d, 0x2c,
-    0x0, 0x0, 0x3c, 0x1e, 0xfb, 0xc7, 0xb, 0x0,
-    0x0, 0xf, 0xf4, 0xf, 0xe2, 0xff, 0xff, 0x41,
-    0xbf, 0xfd, 0x1, 0xf0, 0xbf, 0xff, 0xe0, 0xff,
-    0xe4, 0x1, 0xf4, 0x0, 0x2c, 0x0, 0x25, 0x0,
-    0x0, 0xf8, 0x0, 0xb, 0x0, 0x0, 0x0, 0x1,
-    0xf8, 0x0, 0x2, 0xc0, 0x0, 0x0, 0x1, 0xf8,
-    0x0, 0x0, 0xb0, 0x0, 0x0, 0x0, 0x34, 0x0,
-    0x0, 0x2c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0,
-
     /* U+749C "璜" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x3, 0xc0, 0xf, 0x0, 0x0, 0x0,
@@ -89471,34 +93338,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x7c, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+74A0 "璠" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x5, 0xa4, 0x0,
-    0x0, 0x0, 0x1a, 0xaf, 0xff, 0xff, 0x80, 0xf,
-    0xff, 0xe3, 0xff, 0xff, 0xea, 0x50, 0x0, 0xff,
-    0xff, 0x16, 0x40, 0xf0, 0x1c, 0x0, 0x0, 0xb8,
-    0x0, 0x78, 0xf, 0x3, 0xd0, 0x0, 0x7, 0x40,
-    0x3, 0xd0, 0xf0, 0x7c, 0x0, 0x0, 0x74, 0x0,
-    0xf, 0xf, 0xf, 0x0, 0x0, 0x7, 0x40, 0x0,
-    0x80, 0xf0, 0xa0, 0x0, 0x0, 0x74, 0xb, 0xff,
-    0xff, 0xff, 0xff, 0x0, 0x7, 0x40, 0x6a, 0xbf,
-    0xff, 0xea, 0xa0, 0x0, 0x74, 0x0, 0x3, 0xdf,
-    0xbc, 0x0, 0x0, 0xff, 0xfc, 0x1, 0xf4, 0xf2,
-    0xf4, 0x0, 0xf, 0xff, 0xc0, 0xbd, 0xf, 0xb,
-    0xe0, 0x0, 0x7, 0x80, 0xbf, 0x40, 0xe0, 0xf,
-    0xe4, 0x0, 0x74, 0x3f, 0xfa, 0xaa, 0xaa, 0xbf,
-    0x80, 0x7, 0x41, 0xdf, 0xff, 0xff, 0xff, 0x10,
-    0x0, 0x74, 0x0, 0xf0, 0xf, 0x0, 0xf0, 0x0,
-    0x7, 0x40, 0xf, 0x0, 0xf0, 0xf, 0x0, 0x0,
-    0x74, 0x0, 0xf0, 0xf, 0x0, 0xf0, 0x0, 0x7,
-    0x40, 0xf, 0xff, 0xff, 0xff, 0x0, 0x0, 0x7a,
-    0xe0, 0xfa, 0xbf, 0xab, 0xf0, 0x0, 0x6f, 0xff,
-    0xf, 0x0, 0xf0, 0xf, 0x0, 0x3f, 0xfe, 0x40,
-    0xf0, 0xf, 0x0, 0xf0, 0x3, 0xe4, 0x0, 0xf,
-    0x0, 0xf0, 0xf, 0x0, 0x0, 0x0, 0x0, 0xff,
-    0xff, 0xff, 0xf0, 0x0, 0x0, 0x0, 0xf, 0xaa,
-    0xaa, 0xaf, 0x0, 0x0, 0x0, 0x0, 0xf0, 0x0,
-    0x0, 0xf0, 0x0,
-
     /* U+74A7 "璧" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x1d, 0x0, 0x0, 0x15, 0x55,
@@ -89580,33 +93419,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0xe8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+74AA "璪" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x3f, 0xff, 0xff, 0xf0, 0x0, 0xff,
-    0xff, 0xf, 0xff, 0xff, 0xfc, 0x0, 0x3f, 0xff,
-    0xc3, 0xc0, 0x0, 0xf, 0x0, 0x0, 0x3c, 0x0,
-    0xf0, 0x0, 0x3, 0xc0, 0x0, 0xf, 0x0, 0x3f,
-    0xff, 0xff, 0xf0, 0x0, 0x3, 0xc0, 0xf, 0xff,
-    0xff, 0xfc, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0xf, 0x1, 0xff, 0xf8, 0xbf, 0xfd,
-    0x0, 0x3, 0xc0, 0x7e, 0xae, 0x2e, 0xaf, 0x40,
-    0x3f, 0xff, 0x5d, 0x3, 0x8b, 0x1, 0xd0, 0xf,
-    0xff, 0xe7, 0x40, 0xe2, 0xc0, 0x74, 0x0, 0xf,
-    0x1, 0xff, 0xf8, 0xbf, 0xfd, 0x0, 0x3, 0xc0,
-    0x7f, 0xfe, 0x2f, 0xff, 0x40, 0x0, 0xf0, 0x0,
-    0x0, 0x10, 0x0, 0x0, 0x0, 0x3c, 0x0, 0x0,
-    0x1d, 0x0, 0x0, 0x0, 0xf, 0x3, 0xff, 0xff,
-    0xff, 0xff, 0x0, 0x3, 0xc0, 0xff, 0xff, 0xff,
-    0xff, 0xd0, 0x0, 0xf0, 0x0, 0x2, 0xfe, 0x0,
-    0x0, 0x0, 0x3e, 0xe0, 0x2, 0xff, 0xe0, 0x0,
-    0x1, 0xbf, 0xf8, 0x3, 0xfb, 0x7f, 0x40, 0x3,
-    0xff, 0xd0, 0xb, 0xf1, 0xd2, 0xfd, 0x0, 0xa5,
-    0x0, 0x6f, 0xd0, 0x74, 0x1f, 0xf4, 0x0, 0x0,
-    0x7f, 0x80, 0x1d, 0x0, 0x7f, 0x40, 0x0, 0xe,
-    0x0, 0x7, 0x40, 0x1, 0x80, 0x0, 0x0, 0x0,
-    0x1, 0xd0, 0x0, 0x0,
-
     /* U+74BA "璺" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1,
     0xba, 0xff, 0xff, 0xf1, 0x55, 0x0, 0x7f, 0xdb,
@@ -89659,33 +93471,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0x78, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+74D8 "瓘" */
-    0x0, 0x0, 0x0, 0x5, 0x0, 0x14, 0x0, 0x0,
-    0x0, 0x0, 0xf, 0x0, 0x3c, 0x0, 0x0, 0x0,
-    0x0, 0xf, 0x0, 0x3c, 0x0, 0x2f, 0xff, 0xcf,
-    0xff, 0xff, 0xff, 0xfd, 0x2f, 0xff, 0xcf, 0xff,
-    0xff, 0xff, 0xfd, 0x0, 0x74, 0x0, 0xf, 0x0,
-    0x3c, 0x0, 0x0, 0x74, 0x0, 0x5, 0x0, 0x14,
-    0x0, 0x0, 0x74, 0xb, 0xff, 0xe2, 0xff, 0xf4,
-    0x0, 0x74, 0xb, 0xaa, 0xe3, 0xea, 0xb4, 0x0,
-    0x74, 0xb, 0x0, 0xe3, 0xc0, 0x74, 0x0, 0x74,
-    0xb, 0xaa, 0xe3, 0xea, 0xb4, 0x5, 0xb9, 0x4b,
-    0xff, 0xe3, 0xff, 0xf4, 0xf, 0xff, 0xc0, 0x34,
-    0xf, 0x0, 0x0, 0xf, 0xff, 0xc0, 0xbc, 0xb,
-    0x80, 0x0, 0x0, 0x74, 0x1, 0xfe, 0xab, 0xea,
-    0xa8, 0x0, 0x74, 0x7, 0xff, 0xff, 0xff, 0xfc,
-    0x0, 0x74, 0x1f, 0xd0, 0x7, 0x80, 0x0, 0x0,
-    0x74, 0x7f, 0xe5, 0x5b, 0xd5, 0x54, 0x0, 0x74,
-    0xf5, 0xff, 0xff, 0xff, 0xf8, 0x0, 0x74, 0x11,
-    0xd0, 0x7, 0x80, 0x0, 0x0, 0x75, 0xa1, 0xd0,
-    0x7, 0x80, 0x0, 0x0, 0xbf, 0xe1, 0xfa, 0xab,
-    0xea, 0xa4, 0x2f, 0xff, 0x81, 0xff, 0xff, 0xff,
-    0xf8, 0x3f, 0x90, 0x1, 0xd0, 0x7, 0x80, 0x0,
-    0x10, 0x0, 0x1, 0xd0, 0x7, 0x80, 0x0, 0x0,
-    0x0, 0x1, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0,
-    0x1, 0xea, 0xaa, 0xaa, 0xaa, 0x0, 0x0, 0x1,
-    0xd0, 0x0, 0x0, 0x0,
-
     /* U+74DC "瓜" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x5, 0xaf, 0x40, 0x0, 0x1,
@@ -89713,6 +93498,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0xb, 0x40, 0x24, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+74DE "瓞" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x24, 0x0, 0x0,
+    0x0, 0x1, 0xaf, 0x40, 0xf, 0x0, 0x0, 0x6,
+    0xbf, 0xff, 0xd3, 0xc3, 0xc0, 0x0, 0x3, 0xff,
+    0xeb, 0xc0, 0xe0, 0xf0, 0x0, 0x0, 0xf4, 0xf0,
+    0xf0, 0x78, 0x3c, 0x0, 0x0, 0x38, 0x3c, 0x3c,
+    0x2e, 0x5f, 0x55, 0x0, 0xe, 0xf, 0xf, 0xf,
+    0xff, 0xff, 0xc0, 0x3, 0x83, 0xc3, 0xc3, 0xff,
+    0xff, 0xf0, 0x0, 0xe0, 0xf0, 0xf1, 0xd0, 0x3c,
+    0x0, 0x0, 0x38, 0x3c, 0x3c, 0xf0, 0xf, 0x0,
+    0x0, 0xe, 0xf, 0xf, 0x18, 0x3, 0xc0, 0x0,
+    0x3, 0x83, 0xc3, 0xc0, 0x1, 0xf0, 0x0, 0x0,
+    0xe0, 0xf0, 0xf3, 0xff, 0xff, 0xff, 0x0, 0x38,
+    0x3c, 0x2c, 0xff, 0xff, 0xff, 0xc0, 0xe, 0xf,
+    0xb, 0x0, 0xf, 0x40, 0x0, 0x7, 0x83, 0xc2,
+    0xd0, 0x3, 0xf0, 0x0, 0x1, 0xd0, 0xf1, 0x78,
+    0x2, 0xff, 0x0, 0x0, 0xb4, 0x3a, 0xdf, 0x0,
+    0xf2, 0xf0, 0x0, 0x2d, 0xe, 0x7b, 0xc0, 0xf8,
+    0x2e, 0x0, 0xf, 0x7, 0x4f, 0x78, 0xfc, 0x3,
+    0xe0, 0x3, 0xc2, 0xd2, 0xcf, 0xfc, 0x0, 0x3d,
+    0x1, 0xe0, 0xb0, 0x75, 0xfc, 0x0, 0x7, 0x40,
+    0xb4, 0x3c, 0x1f, 0x1f, 0x80, 0x0, 0x0, 0x3c,
+    0x1f, 0xff, 0xc1, 0xfe, 0x40, 0x0, 0x1f, 0xf,
+    0xfe, 0xf4, 0xb, 0xff, 0x94, 0xf, 0x43, 0x90,
+    0x1e, 0x0, 0x2f, 0xff, 0xf2, 0xc0, 0x0, 0x2,
+    0x0, 0x0, 0x1b, 0xf4, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+74E0 "瓠" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -89741,6 +93554,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0x34, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+74E2 "瓢" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x24, 0x1,
+    0xff, 0xff, 0xff, 0xc0, 0x6, 0xff, 0x80, 0xa,
+    0xaf, 0xbe, 0xa8, 0xff, 0xff, 0xd0, 0x0, 0x0,
+    0xd2, 0xc0, 0xf, 0xfd, 0x2c, 0x0, 0x0, 0xd,
+    0x2c, 0x0, 0xe2, 0xc2, 0xc0, 0x0, 0xbf, 0xff,
+    0xff, 0x4e, 0x2c, 0x2c, 0x0, 0xb, 0xae, 0xbe,
+    0xf4, 0xe2, 0xc2, 0xc0, 0x0, 0xb0, 0xd2, 0xcb,
+    0x4e, 0x2c, 0x1c, 0x0, 0xb, 0xd, 0x2c, 0xb4,
+    0xe2, 0xc1, 0xc0, 0x0, 0xba, 0xfb, 0xef, 0x4e,
+    0x2c, 0x1d, 0x0, 0xb, 0xff, 0xff, 0xf4, 0xe2,
+    0xc0, 0xd0, 0x0, 0x0, 0x0, 0x0, 0xe, 0x2c,
+    0xe, 0x0, 0x2, 0xaa, 0xaa, 0xa0, 0xe2, 0xc0,
+    0xf0, 0x0, 0x3f, 0xff, 0xff, 0xe, 0x3c, 0xf,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0xe3, 0xc0, 0xb0,
+    0x0, 0x0, 0x0, 0x0, 0x1d, 0x3c, 0x87, 0x40,
+    0xf, 0xff, 0xff, 0xf9, 0xd3, 0xad, 0x38, 0x1,
+    0xff, 0xff, 0xff, 0xdc, 0x38, 0xe3, 0xc0, 0x0,
+    0x1, 0xe0, 0x2, 0xc7, 0x4f, 0x2c, 0x0, 0xd,
+    0x1e, 0x38, 0x3c, 0xb4, 0xb1, 0xd0, 0x2, 0xd1,
+    0xe3, 0xd3, 0x8f, 0xb, 0x4f, 0x0, 0x78, 0x1e,
+    0xf, 0xb4, 0xfb, 0xf8, 0xf0, 0xf, 0x1, 0xe0,
+    0x7f, 0x2f, 0xfb, 0xc7, 0x83, 0xd3, 0xfd, 0x1,
+    0xf1, 0xd0, 0x3c, 0x3c, 0x18, 0x2f, 0x80, 0x2d,
+    0x0, 0x1, 0x42, 0x80, 0x0, 0x0, 0x0, 0x40,
+    0x0, 0x0, 0x0,
+
     /* U+74E3 "瓣" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1,
     0xd0, 0x0, 0x0, 0x60, 0x3c, 0x0, 0x0, 0xe0,
@@ -89769,6 +93609,35 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x40, 0x1e, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+74E4 "瓤" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x1, 0xf0, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0,
+    0x3c, 0x0, 0x0, 0x1, 0xbf, 0x40, 0x7f, 0xff,
+    0xff, 0xe2, 0xbf, 0xff, 0x90, 0x1f, 0xff, 0xff,
+    0xfc, 0xff, 0xe7, 0x80, 0x0, 0x0, 0x0, 0x0,
+    0x38, 0xb0, 0xe0, 0x0, 0x15, 0x51, 0x55, 0xd,
+    0x2c, 0x38, 0x0, 0x2f, 0xf8, 0xff, 0xd3, 0x4b,
+    0xe, 0x0, 0xb, 0xe, 0x34, 0x34, 0xd2, 0xc3,
+    0x80, 0x2, 0xd7, 0x8e, 0x5d, 0x34, 0xb0, 0xf0,
+    0x0, 0xbf, 0xe3, 0xff, 0x4d, 0x2c, 0x2c, 0x0,
+    0x0, 0xf0, 0x38, 0x3, 0x4b, 0xb, 0x0, 0x5,
+    0x7d, 0x5e, 0x50, 0xd2, 0xc2, 0xc0, 0x3, 0xff,
+    0xff, 0xff, 0x34, 0xb0, 0x70, 0x0, 0x3, 0xc1,
+    0xe0, 0xd, 0x2c, 0x1c, 0x0, 0x5, 0xf5, 0x79,
+    0x43, 0x4b, 0x3, 0x40, 0xb, 0xff, 0xff, 0xf5,
+    0xd3, 0xc0, 0xe0, 0x0, 0xf, 0x7, 0x80, 0x74,
+    0xf6, 0x38, 0x0, 0x57, 0xd5, 0xe5, 0x5d, 0x39,
+    0xcb, 0x0, 0xbf, 0xff, 0xff, 0xfb, 0xe, 0x36,
+    0xc0, 0x0, 0x1f, 0x80, 0xa2, 0xc7, 0x4e, 0x74,
+    0x0, 0x1f, 0xb8, 0xb8, 0xf1, 0xd2, 0xce, 0x0,
+    0x2f, 0x47, 0xf8, 0x38, 0xb0, 0x73, 0xc0, 0xbf,
+    0xd0, 0x3d, 0x1d, 0x3c, 0x1d, 0xb4, 0x7d, 0x74,
+    0x73, 0xeb, 0x1f, 0xff, 0x8e, 0x4, 0x1e, 0xfc,
+    0x2b, 0xcb, 0xf9, 0xe3, 0xc0, 0xf, 0xe4, 0x2,
+    0xd0, 0x40, 0x2c, 0xb4, 0x2, 0x80, 0x0, 0xb0,
+    0x0, 0x5, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+74E6 "瓦" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff,
     0xff, 0xff, 0xff, 0xff, 0xff, 0xd3, 0xff, 0xff,
@@ -89979,6 +93848,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xaa, 0x54, 0x0, 0x7, 0x80, 0xb, 0xf8, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+750D "甍" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x2, 0xd0, 0x0, 0xf4, 0x0, 0x0, 0x0, 0xb,
+    0x40, 0x3, 0xd0, 0x0, 0xf, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xf8, 0x0, 0x2, 0xd0, 0x0, 0xf4, 0x0,
+    0x0, 0x0, 0x5, 0x40, 0x1, 0x50, 0x0, 0x0,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xd0, 0x3, 0xd5,
+    0x5e, 0x55, 0xf5, 0x5b, 0x40, 0xf, 0x40, 0x78,
+    0x3, 0xc0, 0x2d, 0x0, 0x3f, 0xff, 0xff, 0xff,
+    0xff, 0xf4, 0x0, 0x6a, 0xaa, 0xaa, 0xaa, 0xaa,
+    0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0xfa,
+    0xaa, 0xaa, 0xaa, 0xaa, 0xbe, 0x3, 0xc0, 0x0,
+    0x0, 0x0, 0x0, 0x78, 0xf, 0x6a, 0xaa, 0xaa,
+    0xaa, 0xaa, 0xe0, 0x2, 0xff, 0xff, 0xff, 0xff,
+    0xf0, 0x0, 0x1, 0xf0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x7, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x2f, 0xff, 0xff, 0xff, 0x40, 0x0, 0x0, 0xfa,
+    0xba, 0xaa, 0xbd, 0x0, 0x0, 0x3, 0xc1, 0xfd,
+    0x0, 0xb4, 0xf, 0x0, 0x1f, 0x0, 0x6f, 0x42,
+    0xc0, 0x3c, 0x0, 0xb8, 0x0, 0x1e, 0x4f, 0x40,
+    0xf0, 0xb, 0xff, 0xff, 0xff, 0x6f, 0xff, 0x80,
+    0x2f, 0xfe, 0xa9, 0x40, 0x3f, 0xf8, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+750F "甏" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x78, 0x0, 0x0, 0x0, 0x70, 0x15, 0x5b, 0xd5,
@@ -90232,29 +94127,57 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x3c, 0x3, 0xfe, 0x1, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+752A "甪" */
+    /* U+7529 "甩" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0xf4, 0x0, 0x0, 0x0, 0x0, 0x0, 0xbc,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x3e, 0x0, 0x0,
-    0x0, 0x0, 0x55, 0x6f, 0x55, 0x55, 0x55, 0x0,
-    0x3f, 0xff, 0xff, 0xff, 0xff, 0xe0, 0xf, 0xff,
-    0xff, 0xff, 0xff, 0xf8, 0x3, 0xc0, 0x0, 0xf0,
-    0x0, 0x2e, 0x0, 0xf0, 0x0, 0x3c, 0x0, 0xb,
-    0x80, 0x3c, 0x0, 0xf, 0x0, 0x2, 0xe0, 0xf,
-    0x0, 0x3, 0xc0, 0x0, 0xb8, 0x3, 0xff, 0xff,
-    0xff, 0xff, 0xfe, 0x0, 0xff, 0xff, 0xff, 0xff,
-    0xff, 0x80, 0x3c, 0x0, 0xf, 0x40, 0x2, 0xe0,
-    0xf, 0x0, 0x3, 0xc0, 0x0, 0xb8, 0x3, 0xc0,
-    0x0, 0xf0, 0x0, 0x2e, 0x0, 0xf0, 0x0, 0x3c,
-    0x0, 0xb, 0x80, 0x3c, 0x0, 0xf, 0x0, 0x2,
-    0xe0, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x7,
-    0xff, 0xff, 0xff, 0xff, 0xfe, 0x1, 0xe0, 0x0,
-    0x3d, 0x0, 0xb, 0x80, 0xb4, 0x0, 0xf, 0x0,
-    0x2, 0xe0, 0x3d, 0x0, 0x3, 0xc0, 0x0, 0xb8,
-    0x1f, 0x0, 0x0, 0xf0, 0x0, 0x2e, 0xf, 0x80,
-    0x0, 0x3c, 0x0, 0xf, 0x87, 0xc0, 0x0, 0xf,
-    0x1, 0xff, 0xd3, 0xe0, 0x0, 0x3, 0xc0, 0x3f,
-    0xd0, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x3f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x0, 0xf,
+    0xff, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x3, 0xd0,
+    0x0, 0xf0, 0x0, 0x1f, 0x0, 0x0, 0xf4, 0x0,
+    0x3c, 0x0, 0x7, 0xc0, 0x0, 0x3d, 0x0, 0xf,
+    0x0, 0x1, 0xf0, 0x0, 0xf, 0x40, 0x3, 0xc0,
+    0x0, 0x7c, 0x0, 0x3, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0x0, 0x0, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xc0, 0x0, 0x3d, 0x0, 0xf, 0x40, 0x1, 0xf0,
+    0x0, 0xf, 0x40, 0x3, 0xc0, 0x0, 0x7c, 0x0,
+    0x3, 0xd0, 0x0, 0xf0, 0x0, 0x1f, 0x0, 0x0,
+    0xf4, 0x0, 0x3c, 0x0, 0x7, 0xc0, 0x0, 0x3f,
+    0xff, 0xff, 0xff, 0xff, 0xf0, 0x0, 0xf, 0xff,
+    0xff, 0xff, 0xff, 0xfc, 0x0, 0x3, 0xd0, 0x0,
+    0xf4, 0x0, 0x1f, 0x0, 0x0, 0xf0, 0x0, 0x3c,
+    0x0, 0x7, 0xc0, 0x0, 0x3c, 0x0, 0xf, 0x0,
+    0x2, 0xf0, 0x0, 0x1f, 0x0, 0x3, 0xc0, 0x3f,
+    0xf8, 0x0, 0xb, 0x80, 0x0, 0xf0, 0xf, 0xf8,
+    0x3c, 0x3, 0xd0, 0x0, 0x3c, 0x0, 0x0, 0x1f,
+    0x1, 0xf0, 0x0, 0xf, 0x40, 0x0, 0x7, 0xc0,
+    0xf8, 0x0, 0x3, 0xf4, 0x0, 0x7, 0xe0, 0xbc,
+    0x0, 0x0, 0x7f, 0xff, 0xff, 0xf4, 0x3e, 0x0,
+    0x0, 0x6, 0xff, 0xff, 0xe4, 0x1, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0,
+
+    /* U+752B "甫" */
+    0x0, 0x0, 0x0, 0x50, 0x8, 0x0, 0x0, 0x0,
+    0x0, 0x1f, 0x1, 0xf0, 0x0, 0x0, 0x0, 0x1,
+    0xf0, 0xf, 0xc0, 0x0, 0x0, 0x0, 0x1f, 0x0,
+    0x3e, 0x0, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0,
+    0x0, 0x1, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x1f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xf0,
+    0x0, 0x0, 0x0, 0xbf, 0xff, 0xff, 0xff, 0xff,
+    0xc0, 0xb, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x0,
+    0xb9, 0x55, 0x6f, 0x55, 0x57, 0xd0, 0xb, 0x40,
+    0x1, 0xf0, 0x0, 0x3d, 0x0, 0xb4, 0x0, 0x1f,
+    0x0, 0x3, 0xd0, 0xb, 0x80, 0x1, 0xf0, 0x0,
+    0x3d, 0x0, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xd0,
+    0xb, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x0, 0xb4,
+    0x0, 0x1f, 0x0, 0x3, 0xd0, 0xb, 0x40, 0x1,
+    0xf0, 0x0, 0x3d, 0x0, 0xb8, 0x0, 0x1f, 0x0,
+    0x3, 0xd0, 0xb, 0xff, 0xff, 0xff, 0xff, 0xfd,
+    0x0, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xd0, 0xb,
+    0x40, 0x1, 0xf0, 0x0, 0x3d, 0x0, 0xb4, 0x0,
+    0x1f, 0x0, 0x3, 0xd0, 0xb, 0x40, 0x1, 0xf0,
+    0x0, 0x3c, 0x0, 0xb4, 0x0, 0x1f, 0x1, 0xbf,
+    0xc0, 0xb, 0x40, 0x1, 0xf0, 0x1f, 0xfc, 0x0,
+    0xb4, 0x0, 0x0, 0x0, 0xfe, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0,
 
     /* U+752C "甬" */
     0x3f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xff,
@@ -90487,6 +94410,30 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xf4, 0x0, 0x0, 0x0, 0x0, 0x2f, 0xfe, 0x0,
     0x0, 0x0, 0x0, 0x1, 0xa9, 0x0,
 
+    /* U+753A "町" */
+    0x15, 0x55, 0x55, 0x0, 0x0, 0x0, 0x0, 0xff,
+    0xff, 0xfc, 0xff, 0xff, 0xff, 0xd3, 0xff, 0xff,
+    0xf3, 0xff, 0xff, 0xff, 0x4f, 0xf, 0x3, 0xc5,
+    0x56, 0xf5, 0x54, 0x3c, 0x3c, 0xf, 0x0, 0x7,
+    0xc0, 0x0, 0xf0, 0xf0, 0x3c, 0x0, 0x1f, 0x0,
+    0x3, 0xc3, 0xc0, 0xf0, 0x0, 0x7c, 0x0, 0xf,
+    0xf, 0x3, 0xc0, 0x1, 0xf0, 0x0, 0x3c, 0x3c,
+    0xf, 0x0, 0x7, 0xc0, 0x0, 0xf0, 0xf0, 0x3c,
+    0x0, 0x1f, 0x0, 0x3, 0xd7, 0xd5, 0xf0, 0x0,
+    0x7c, 0x0, 0xf, 0xff, 0xff, 0xc0, 0x1, 0xf0,
+    0x0, 0x3f, 0xff, 0xff, 0x0, 0x7, 0xc0, 0x0,
+    0xf0, 0xf0, 0x3c, 0x0, 0x1f, 0x0, 0x3, 0xc3,
+    0xc0, 0xf0, 0x0, 0x7c, 0x0, 0xf, 0xf, 0x3,
+    0xc0, 0x1, 0xf0, 0x0, 0x3c, 0x3c, 0xf, 0x0,
+    0x7, 0xc0, 0x0, 0xf0, 0xf0, 0x3c, 0x0, 0x1f,
+    0x0, 0x3, 0xc3, 0xc0, 0xf0, 0x0, 0x7c, 0x0,
+    0xf, 0xf, 0x3, 0xc0, 0x1, 0xf0, 0x0, 0x3d,
+    0x7d, 0x5f, 0x0, 0x7, 0xc0, 0x0, 0xff, 0xff,
+    0xfc, 0x0, 0x1f, 0x0, 0x3, 0xff, 0xff, 0xf0,
+    0x0, 0xbc, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff,
+    0xf0, 0x0, 0x0, 0x0, 0x0, 0x2, 0xff, 0x40,
+    0x0, 0x0, 0x0, 0x0, 0x1, 0x40, 0x0, 0x0,
+
     /* U+753B "画" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff,
     0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0xff, 0xff,
@@ -90586,6 +94533,136 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x80, 0x3, 0xc0, 0x2, 0xc0, 0x4, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+7548 "畈" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x40, 0x0,
+    0x0, 0x0, 0x0, 0x5, 0xbf, 0xd0, 0x3f, 0xff,
+    0xf8, 0x3f, 0xff, 0xff, 0xd0, 0x3f, 0xff, 0xf8,
+    0x3f, 0xff, 0x90, 0x0, 0x3c, 0x3c, 0x38, 0x3d,
+    0x0, 0x0, 0x0, 0x3c, 0x3c, 0x38, 0x3c, 0x0,
+    0x0, 0x0, 0x3c, 0x3c, 0x38, 0x3c, 0x0, 0x0,
+    0x0, 0x3c, 0x3c, 0x38, 0x3c, 0x0, 0x0, 0x0,
+    0x3c, 0x3c, 0x38, 0x3f, 0xff, 0xff, 0x80, 0x3c,
+    0x3c, 0x38, 0x3f, 0xff, 0xff, 0xc0, 0x3c, 0x3c,
+    0x38, 0x3c, 0x50, 0xb, 0x80, 0x3c, 0x3c, 0x38,
+    0x3e, 0xd0, 0xb, 0x40, 0x3f, 0xff, 0xf8, 0x3d,
+    0xe0, 0xf, 0x40, 0x3f, 0xff, 0xf8, 0x3c, 0xf0,
+    0xf, 0x0, 0x3c, 0x3c, 0x38, 0x3c, 0xf0, 0x1e,
+    0x0, 0x3c, 0x3c, 0x38, 0x3c, 0xb8, 0x3d, 0x0,
+    0x3c, 0x3c, 0x38, 0x7c, 0x3c, 0x3c, 0x0, 0x3c,
+    0x3c, 0x38, 0x78, 0x2e, 0xb8, 0x0, 0x3c, 0x3c,
+    0x38, 0xb8, 0xf, 0xf0, 0x0, 0x3c, 0x3c, 0x38,
+    0xf4, 0xb, 0xe0, 0x0, 0x3c, 0x3c, 0x38, 0xf0,
+    0xf, 0xe0, 0x0, 0x3e, 0xfe, 0xf9, 0xf0, 0x2f,
+    0xf8, 0x0, 0x3f, 0xff, 0xfb, 0xd0, 0xfd, 0x7e,
+    0x0, 0x0, 0x0, 0xb, 0xc3, 0xf4, 0x1f, 0x80,
+    0x0, 0x0, 0xf, 0xaf, 0xd0, 0x7, 0xf4, 0x0,
+    0x0, 0x2f, 0x7f, 0x0, 0x1, 0xf8, 0x0, 0x0,
+    0x9, 0x28, 0x0, 0x0, 0x20,
+
+    /* U+754B "畋" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xb, 0x80, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x3d, 0x0, 0x0, 0xf, 0xff, 0xfe, 0x0,
+    0xf0, 0x0, 0x0, 0x3f, 0xff, 0xfc, 0x7, 0xc0,
+    0x0, 0x0, 0xf5, 0xf5, 0xf0, 0x3e, 0x55, 0x55,
+    0x43, 0xc3, 0x83, 0xc0, 0xff, 0xff, 0xff, 0xf,
+    0xe, 0xf, 0xb, 0xff, 0xff, 0xfc, 0x3c, 0x38,
+    0x3c, 0x3d, 0x0, 0x3d, 0x0, 0xf0, 0xe0, 0xf2,
+    0xf4, 0x0, 0xf0, 0x3, 0xc3, 0x83, 0xcf, 0xe0,
+    0x3, 0xc0, 0xf, 0xe, 0xf, 0xbf, 0x80, 0xf,
+    0x0, 0x3c, 0x3c, 0x7f, 0xdf, 0x0, 0x78, 0x0,
+    0xff, 0xff, 0xf1, 0x3d, 0x2, 0xd0, 0x3, 0xff,
+    0xff, 0xc0, 0xb8, 0xf, 0x0, 0xf, 0xe, 0xf,
+    0x0, 0xf0, 0x7c, 0x0, 0x3c, 0x38, 0x3c, 0x3,
+    0xe3, 0xd0, 0x0, 0xf0, 0xe0, 0xf0, 0x7, 0xdf,
+    0x0, 0x3, 0xc3, 0x83, 0xc0, 0xf, 0xf4, 0x0,
+    0xf, 0xe, 0xf, 0x0, 0xf, 0xc0, 0x0, 0x3c,
+    0x38, 0x3c, 0x0, 0x7f, 0x40, 0x0, 0xf0, 0xe0,
+    0xf0, 0x3, 0xff, 0x0, 0x3, 0xd7, 0xd7, 0xc0,
+    0x7f, 0x3f, 0x0, 0xf, 0xff, 0xff, 0x7, 0xf0,
+    0x7f, 0x40, 0x3f, 0xff, 0xf8, 0xbf, 0x0, 0x7f,
+    0x40, 0x0, 0x0, 0xf, 0xe0, 0x0, 0x7f, 0x80,
+    0x0, 0x1, 0xfe, 0x0, 0x0, 0x3f, 0x80, 0x0,
+    0x3, 0xd0, 0x0, 0x0, 0x2c, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
+    /* U+754C "界" */
+    0x0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x0,
+    0x1f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x0, 0x7,
+    0xc0, 0x0, 0xf0, 0x0, 0x3c, 0x0, 0x1, 0xf0,
+    0x0, 0x3c, 0x0, 0xf, 0x0, 0x0, 0x7c, 0x0,
+    0xf, 0x0, 0x3, 0xc0, 0x0, 0x1f, 0xff, 0xff,
+    0xff, 0xff, 0xf0, 0x0, 0x7, 0xff, 0xff, 0xff,
+    0xff, 0xfc, 0x0, 0x1, 0xf0, 0x0, 0x3c, 0x0,
+    0xf, 0x0, 0x0, 0x7c, 0x0, 0xf, 0x0, 0x3,
+    0xc0, 0x0, 0x1f, 0x0, 0x3, 0xc0, 0x0, 0xf0,
+    0x0, 0x7, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0,
+    0x0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0,
+    0x0, 0x0, 0xff, 0xe0, 0x0, 0x0, 0x0, 0x0,
+    0x1, 0xfc, 0x3f, 0x0, 0x0, 0x0, 0x0, 0x7,
+    0xf8, 0x2, 0xf8, 0x0, 0x0, 0x0, 0x1f, 0xf4,
+    0x0, 0x1f, 0xe0, 0x0, 0x1, 0xbf, 0xe9, 0x0,
+    0x2, 0xff, 0x90, 0xb, 0xff, 0x47, 0xc0, 0x1,
+    0xf1, 0xff, 0x91, 0xf8, 0x2, 0xe0, 0x0, 0x7c,
+    0x7, 0xf4, 0x10, 0x0, 0xb8, 0x0, 0x1f, 0x0,
+    0x4, 0x0, 0x0, 0x3d, 0x0, 0x7, 0xc0, 0x0,
+    0x0, 0x0, 0x2f, 0x0, 0x1, 0xf0, 0x0, 0x0,
+    0x0, 0x1f, 0x40, 0x0, 0x7c, 0x0, 0x0, 0x0,
+    0x2f, 0x80, 0x0, 0x1f, 0x0, 0x0, 0x0, 0xbf,
+    0x80, 0x0, 0x7, 0xc0, 0x0, 0x0, 0x1f, 0x40,
+    0x0, 0x1, 0xf0, 0x0, 0x0, 0x1, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
+    /* U+754E "畎" */
+    0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xf, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xf1, 0xc0, 0xf, 0xff, 0xff, 0x0, 0xf,
+    0x2f, 0x0, 0xff, 0xff, 0xf0, 0x0, 0xf0, 0xf8,
+    0xf, 0xf, 0xf, 0x0, 0xf, 0x3, 0xc0, 0xf0,
+    0xf0, 0xf0, 0x0, 0xf0, 0x2e, 0xf, 0xf, 0xf,
+    0x0, 0xf, 0x0, 0x80, 0xf0, 0xf0, 0xf0, 0x0,
+    0xf0, 0x0, 0xf, 0xf, 0xf, 0x3f, 0xff, 0xff,
+    0xfc, 0xf0, 0xf0, 0xf3, 0xff, 0xff, 0xff, 0xcf,
+    0xf, 0xf, 0x0, 0x1f, 0x0, 0x0, 0xf0, 0xf0,
+    0xf0, 0x1, 0xf0, 0x0, 0xf, 0xff, 0xff, 0x0,
+    0x1f, 0x0, 0x0, 0xff, 0xff, 0xf0, 0x2, 0xf4,
+    0x0, 0xf, 0xf, 0xf, 0x0, 0x3f, 0x80, 0x0,
+    0xf0, 0xf0, 0xf0, 0x3, 0xfc, 0x0, 0xf, 0xf,
+    0xf, 0x0, 0x7f, 0xd0, 0x0, 0xf0, 0xf0, 0xf0,
+    0xf, 0x5f, 0x0, 0xf, 0xf, 0xf, 0x1, 0xf0,
+    0xf4, 0x0, 0xf0, 0xf0, 0xf0, 0x3e, 0xb, 0xc0,
+    0xf, 0xf, 0xf, 0x7, 0xc0, 0x3d, 0x0, 0xff,
+    0xff, 0xf0, 0xf8, 0x2, 0xf0, 0xf, 0xff, 0xff,
+    0x3f, 0x0, 0xf, 0xc0, 0x0, 0x0, 0xb, 0xc0,
+    0x0, 0x3f, 0x0, 0x0, 0x2, 0xf4, 0x0, 0x1,
+    0xfc, 0x0, 0x0, 0x3e, 0x0, 0x0, 0xb, 0x80,
+    0x0, 0x0, 0x80, 0x0, 0x0, 0x10,
+
+    /* U+754F "畏" */
+    0x2, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x0, 0xb,
+    0xff, 0xff, 0xff, 0xff, 0xf4, 0x0, 0x2e, 0x0,
+    0xb, 0x80, 0x3, 0xd0, 0x0, 0xb8, 0x0, 0x2e,
+    0x0, 0xf, 0x40, 0x2, 0xe0, 0x0, 0xb8, 0x0,
+    0x3d, 0x0, 0xb, 0xff, 0xff, 0xff, 0xff, 0xf4,
+    0x0, 0x2f, 0xff, 0xff, 0xff, 0xff, 0xd0, 0x0,
+    0xb8, 0x0, 0x2e, 0x0, 0xf, 0x40, 0x2, 0xe0,
+    0x0, 0xb8, 0x0, 0x3d, 0x0, 0xb, 0xff, 0xff,
+    0xff, 0xff, 0xf4, 0x0, 0x2f, 0xff, 0xff, 0xff,
+    0xff, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcf, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x3d, 0x3,
+    0xe0, 0x0, 0x1, 0x0, 0x0, 0xf4, 0x7, 0xc0,
+    0x0, 0x3c, 0x0, 0x3, 0xd0, 0xf, 0xc0, 0xb,
+    0xf4, 0x0, 0xf, 0x40, 0xf, 0xc1, 0xff, 0x0,
+    0x0, 0x3d, 0x0, 0xf, 0xff, 0xd0, 0x0, 0x0,
+    0xf4, 0x0, 0xf, 0xf8, 0x0, 0x0, 0x3, 0xd0,
+    0x7, 0x8b, 0xfd, 0x0, 0x0, 0xf, 0x5b, 0xfe,
+    0x2, 0xff, 0xe4, 0x0, 0x7f, 0xff, 0x90, 0x0,
+    0xbf, 0xfe, 0x2, 0xfe, 0x40, 0x0, 0x0, 0x1b,
+    0xf4, 0x6, 0x40, 0x0, 0x0, 0x0, 0x0, 0x40,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+7554 "畔" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0xb8, 0x0, 0x0, 0x0, 0x0,
@@ -90795,33 +94872,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xaa, 0xaa, 0xab, 0xd0, 0x0, 0x2, 0xd0, 0x0,
     0x0, 0x0, 0xf4, 0x0,
 
-    /* U+756F "畯" */
-    0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x3e, 0x4, 0x0, 0xf, 0xff, 0xf0, 0x2,
-    0xf0, 0xb4, 0x0, 0x3f, 0xff, 0xc0, 0x1f, 0x1,
-    0xf0, 0x0, 0xf3, 0xcb, 0x0, 0xf4, 0x2, 0xf0,
-    0x3, 0x8b, 0x2c, 0xf, 0x80, 0x3, 0xf0, 0xe,
-    0x2c, 0xb1, 0xff, 0xff, 0xff, 0xe0, 0x38, 0xb2,
-    0xc7, 0xff, 0xff, 0xeb, 0xc0, 0xe2, 0xcb, 0x4,
-    0x0, 0x0, 0x6, 0x3, 0x8b, 0x2c, 0x0, 0xf0,
-    0x2d, 0x0, 0xe, 0x2c, 0xb0, 0xf, 0xc0, 0xbe,
-    0x0, 0x38, 0xb2, 0xc1, 0xf8, 0x0, 0x7f, 0x40,
-    0xff, 0xff, 0x7f, 0x58, 0x0, 0x2f, 0x43, 0xff,
-    0xfe, 0xf0, 0xf0, 0x0, 0x1e, 0xe, 0x2c, 0xb2,
-    0x7, 0xff, 0xff, 0x10, 0x38, 0xb2, 0xc0, 0x3f,
-    0xff, 0xfd, 0x0, 0xe2, 0xcb, 0x2, 0xf0, 0x0,
-    0xf0, 0x3, 0x8b, 0x2c, 0x1f, 0xd0, 0xb, 0x80,
-    0xe, 0x2c, 0xb0, 0xfb, 0xc0, 0x7c, 0x0, 0x38,
-    0xb2, 0xdf, 0x8f, 0x83, 0xd0, 0x0, 0xe2, 0xcb,
-    0x38, 0xf, 0xbe, 0x0, 0x3, 0x8f, 0x2c, 0x0,
-    0x1f, 0xf0, 0x0, 0xf, 0xff, 0xf0, 0x0, 0xbf,
-    0xc0, 0x0, 0x3f, 0xff, 0xc0, 0x2f, 0xef, 0xe0,
-    0x0, 0x0, 0x0, 0x1b, 0xfc, 0xb, 0xfd, 0x0,
-    0x0, 0x3, 0xfe, 0x40, 0x2, 0xff, 0x0, 0x0,
-    0xf, 0x80, 0x0, 0x0, 0x74, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0,
-
     /* U+7572 "畲" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x2, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -90876,29 +94926,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0xb, 0xf4, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
-    /* U+7576 "當" */
-    0x0, 0x40, 0x7, 0xc0, 0x1, 0x0, 0x3, 0xd0,
-    0x7, 0xc0, 0xf, 0x40, 0x1, 0xf4, 0x7, 0xc0,
-    0x3e, 0x0, 0x0, 0x7d, 0x7, 0xc0, 0xf8, 0x0,
-    0x0, 0x2d, 0x7, 0xc0, 0xf0, 0x0, 0xff, 0xff,
-    0xff, 0xff, 0xff, 0xfd, 0xff, 0xff, 0xff, 0xff,
-    0xff, 0xfd, 0xf4, 0x0, 0x0, 0x0, 0x0, 0x3d,
-    0xf4, 0xaa, 0xaa, 0xaa, 0xa8, 0x3d, 0xf4, 0xff,
-    0xff, 0xff, 0xfd, 0x3d, 0xf4, 0xf0, 0x0, 0x0,
-    0x3d, 0x3d, 0x0, 0xf0, 0x0, 0x0, 0x3d, 0x0,
-    0x0, 0xff, 0xff, 0xff, 0xfd, 0x0, 0x0, 0xaa,
-    0xaa, 0xaa, 0xa8, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0xa, 0xaa, 0xaa, 0xaa, 0xaa, 0x80,
-    0xf, 0xff, 0xff, 0xff, 0xff, 0xd0, 0xf, 0x40,
-    0x7, 0xc0, 0x3, 0xd0, 0xf, 0x40, 0x7, 0xc0,
-    0x3, 0xd0, 0xf, 0x40, 0x7, 0xc0, 0x3, 0xd0,
-    0xf, 0xff, 0xff, 0xff, 0xff, 0xd0, 0xf, 0xaa,
-    0xab, 0xea, 0xab, 0xd0, 0xf, 0x40, 0x7, 0xc0,
-    0x3, 0xd0, 0xf, 0x40, 0x7, 0xc0, 0x3, 0xd0,
-    0xf, 0xff, 0xff, 0xff, 0xff, 0xd0, 0xf, 0xea,
-    0xaa, 0xaa, 0xab, 0xd0, 0xf, 0x40, 0x0, 0x0,
-    0x3, 0xd0,
-
     /* U+7578 "畸" */
     0x0, 0x0, 0x0, 0x0, 0x2d, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0xb0, 0x0, 0x2, 0xaa, 0xaa,
@@ -90951,6 +94978,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x3, 0xe0, 0x0, 0x1b, 0xe8, 0x0, 0x0,
     0x2, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+757F "畿" */
+    0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0,
+    0x24, 0x3, 0xc0, 0x7, 0x0, 0x0, 0x2, 0xe0,
+    0xf, 0x0, 0x3c, 0x0, 0x0, 0x1f, 0x1, 0x3c,
+    0x3, 0xd0, 0x60, 0x1, 0xf0, 0x3c, 0xb4, 0x3d,
+    0x7, 0xc0, 0x1f, 0x3, 0xd2, 0xd7, 0xfa, 0xbc,
+    0x1, 0xff, 0xfe, 0x7, 0x9f, 0xff, 0xc0, 0x1,
+    0x57, 0xe0, 0x1e, 0x0, 0x7c, 0x80, 0x0, 0x2e,
+    0x38, 0x3c, 0x7, 0xc3, 0xc0, 0x3, 0xe0, 0xb4,
+    0xf0, 0x7d, 0x1b, 0x40, 0x7f, 0xaa, 0xf2, 0xdf,
+    0xff, 0xff, 0x3, 0xff, 0xff, 0xdb, 0x59, 0x74,
+    0xc, 0x0, 0x0, 0x2, 0x1e, 0x0, 0xf0, 0x0,
+    0x0, 0x0, 0x0, 0x3c, 0x1, 0xe0, 0xb, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xda, 0xaa, 0xaa,
+    0xab, 0xfa, 0xaa, 0xaa, 0x0, 0x0, 0x0, 0x3,
+    0xc0, 0x9, 0x0, 0x1a, 0xaa, 0xaa, 0x4f, 0x0,
+    0x7c, 0x0, 0xff, 0xff, 0xfe, 0x2e, 0x3, 0xd0,
+    0x3, 0xc0, 0xf0, 0x38, 0x3c, 0x2e, 0x0, 0xf,
+    0x3, 0xc1, 0xe0, 0xf6, 0xf0, 0x0, 0x3f, 0xff,
+    0xff, 0x81, 0xff, 0x0, 0x80, 0xf0, 0x3c, 0x1e,
+    0x3, 0xf0, 0x3, 0x83, 0xc0, 0xf0, 0x38, 0x2f,
+    0xc0, 0x1d, 0xf, 0x57, 0xd6, 0xe3, 0xfb, 0xc0,
+    0xb4, 0x3f, 0xff, 0xff, 0xfe, 0xf, 0xd7, 0xc0,
+    0x0, 0x0, 0xf, 0xe0, 0xf, 0xfe, 0x0, 0x0,
+    0x0, 0x1d, 0x0, 0xb, 0xe0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+7583 "疃" */
     0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x3, 0xd0, 0x0, 0x0, 0x0, 0x0,
@@ -91002,6 +95056,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xfd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+758B "疋" */
+    0x3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x0,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0,
+    0x0, 0x0, 0xf4, 0x0, 0x2f, 0x40, 0x0, 0x0,
+    0x0, 0x3d, 0x0, 0xf, 0x80, 0x0, 0x0, 0x0,
+    0xf, 0x40, 0xb, 0xc0, 0x0, 0x0, 0x0, 0x3,
+    0xd0, 0x3, 0xe0, 0x0, 0x0, 0x50, 0x0, 0xf4,
+    0x1, 0xf0, 0x0, 0x0, 0x3c, 0x0, 0x3d, 0x0,
+    0x0, 0x0, 0x0, 0xf, 0x0, 0xf, 0x40, 0x0,
+    0x0, 0x0, 0x3, 0xc0, 0x3, 0xd0, 0x0, 0x0,
+    0x0, 0x0, 0xf0, 0x0, 0xf9, 0x55, 0x55, 0x0,
+    0x0, 0x7c, 0x0, 0x3f, 0xff, 0xff, 0xc0, 0x0,
+    0x1f, 0x0, 0xf, 0xff, 0xff, 0xf0, 0x0, 0xb,
+    0xc0, 0x3, 0xd0, 0x0, 0x0, 0x0, 0x2, 0xf0,
+    0x0, 0xf4, 0x0, 0x0, 0x0, 0x0, 0xfd, 0x0,
+    0x3d, 0x0, 0x0, 0x0, 0x0, 0x7f, 0x80, 0xf,
+    0x40, 0x0, 0x0, 0x0, 0x2f, 0xf0, 0x3, 0xd0,
+    0x0, 0x0, 0x0, 0xf, 0x6f, 0x0, 0xf4, 0x0,
+    0x0, 0x0, 0x7, 0xc3, 0xf0, 0x3d, 0x0, 0x0,
+    0x0, 0x3, 0xe0, 0x7f, 0x4f, 0x40, 0x0, 0x0,
+    0x2, 0xf0, 0x7, 0xff, 0xe5, 0x50, 0x5, 0x40,
+    0xf8, 0x0, 0x2f, 0xff, 0xff, 0xff, 0xf4, 0xfc,
+    0x0, 0x0, 0x6f, 0xff, 0xff, 0xfc, 0x1d, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+758F "疏" */
     0x0, 0x0, 0x0, 0x0, 0x28, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0xf, 0x0, 0x0, 0x0, 0x0,
@@ -91059,6 +95139,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+7592 "疒" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xf, 0x40, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xb, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x7, 0xc0, 0x0, 0x0, 0x0, 0x5, 0x55, 0x57,
+    0xe5, 0x55, 0x54, 0x0, 0x1f, 0xff, 0xff, 0xff,
+    0xff, 0xfc, 0x2c, 0x1f, 0xff, 0xff, 0xff, 0xff,
+    0xfc, 0x2e, 0x1f, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xf, 0x1f, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf,
+    0x5f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0x9f,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xdf, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x3, 0xdf, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x1, 0x5f, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x2f, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x1, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x2f, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0xbf,
+    0x9f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x38, 0x2f,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2e, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x3d, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x7c, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0xbc, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xf4, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x3, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7,
+    0xd0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xc0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x1f, 0x40, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+7594 "疔" */
     0x0, 0x0, 0x0, 0x6, 0x40, 0x0, 0x0, 0x0,
     0x0, 0x0, 0xb, 0x80, 0x0, 0x0, 0x0, 0x0,
@@ -91451,34 +95559,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xb0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+75AD "疭" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0xb, 0x80, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x7, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x3, 0xd0, 0x0, 0x0, 0x0, 0x3f, 0xff, 0xff,
-    0xff, 0xff, 0xfc, 0x14, 0x3f, 0xff, 0xff, 0xff,
-    0xff, 0xfc, 0x78, 0x3c, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x3c, 0x3c, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x2e, 0x3c, 0x2, 0xd0, 0x2, 0xd0, 0x0, 0x1f,
-    0x3c, 0x2, 0xd0, 0x2, 0xd0, 0x0, 0xf, 0x3c,
-    0x3, 0xd0, 0x2, 0xd0, 0x0, 0xb, 0xbc, 0x3,
-    0xd0, 0x3, 0xc0, 0x0, 0x7, 0x7c, 0x3, 0xc0,
-    0x3, 0xc0, 0x0, 0x0, 0x3c, 0x3, 0xd0, 0x3,
-    0xd0, 0x0, 0x1, 0xfc, 0x3, 0xf0, 0x3, 0xe0,
-    0x0, 0x1f, 0xfc, 0x7, 0xfc, 0x7, 0xf0, 0x0,
-    0xff, 0xbc, 0xb, 0xbe, 0x7, 0xf0, 0x0, 0xb8,
-    0x3c, 0xf, 0x4f, 0x4b, 0xf4, 0x0, 0x0, 0x78,
-    0xf, 0x7, 0xdf, 0x7c, 0x0, 0x0, 0xb8, 0x2f,
-    0x2, 0xef, 0x3c, 0x0, 0x0, 0xf4, 0x3d, 0x0,
-    0x7d, 0x1e, 0x0, 0x0, 0xf0, 0x7c, 0x0, 0x7c,
-    0xf, 0x40, 0x2, 0xe0, 0xf8, 0x0, 0xf8, 0xb,
-    0xc0, 0x3, 0xd1, 0xf0, 0x2, 0xf0, 0x3, 0xe0,
-    0xb, 0xc3, 0xe0, 0x7, 0xd0, 0x1, 0xf4, 0x1f,
-    0x4f, 0xc0, 0x1f, 0x80, 0x0, 0xbd, 0x3f, 0xf,
-    0x40, 0x3f, 0x0, 0x0, 0x3e, 0x2c, 0x1, 0x0,
-    0xc, 0x0, 0x0, 0x8, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0,
-
     /* U+75AE "疮" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0xf8, 0x0, 0x0, 0x0, 0x0,
@@ -92178,6 +96258,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x40, 0x0, 0x0, 0x19, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+75D6 "痖" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xf, 0x80, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x7, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x3, 0xd0, 0x0, 0x0, 0x0, 0x3f, 0xff, 0xff,
+    0xff, 0xff, 0xfc, 0x20, 0x3f, 0xff, 0xff, 0xff,
+    0xff, 0xfc, 0x78, 0x3c, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x3c, 0x3c, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x2d, 0x3c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f,
+    0x3c, 0xbf, 0xff, 0xff, 0xff, 0xf0, 0xf, 0x3c,
+    0xbf, 0xff, 0xff, 0xff, 0xf0, 0xb, 0x7c, 0x0,
+    0x3c, 0xb, 0x40, 0x0, 0x6, 0x3c, 0x0, 0x3c,
+    0xb, 0x40, 0x0, 0x0, 0x3c, 0x40, 0x3c, 0xb,
+    0x40, 0x90, 0x1, 0xfd, 0xf0, 0x3c, 0xb, 0x40,
+    0xf0, 0x1f, 0xfc, 0xf4, 0x3c, 0xb, 0x42, 0xe0,
+    0xff, 0xbc, 0x7c, 0x3c, 0xb, 0x43, 0xc0, 0xb8,
+    0x3c, 0x3c, 0x3c, 0xb, 0x47, 0xc0, 0x0, 0x78,
+    0x2e, 0x3c, 0xb, 0x4f, 0x40, 0x0, 0xb8, 0xf,
+    0x3c, 0xb, 0x5f, 0x0, 0x0, 0xf4, 0xb, 0xbc,
+    0xb, 0x7d, 0x0, 0x0, 0xf0, 0x7, 0x3c, 0xb,
+    0x7c, 0x0, 0x2, 0xe0, 0x0, 0x3c, 0xb, 0x40,
+    0x0, 0x3, 0xd0, 0x0, 0x3c, 0xb, 0x40, 0x0,
+    0xb, 0xc0, 0x0, 0x3c, 0xb, 0x40, 0x0, 0x1f,
+    0x47, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x3e, 0x7,
+    0xff, 0xff, 0xff, 0xff, 0xfc, 0x1c, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+75D8 "痘" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0xb, 0x80, 0x0, 0x0, 0x0, 0x0,
@@ -92659,6 +96767,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x1, 0xa0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+7600 "瘀" */
+    0x0, 0x0, 0x0, 0x6, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xf, 0x40, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xb, 0xc0, 0x0, 0x0, 0x0, 0x3f, 0xff,
+    0xff, 0xff, 0xff, 0xfc, 0x0, 0x3f, 0xff, 0xff,
+    0xff, 0xff, 0xfc, 0x14, 0x3c, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x7c, 0x3c, 0x7, 0x40, 0x0, 0xa0,
+    0x0, 0x3c, 0x3c, 0x3, 0x80, 0x1, 0xf8, 0x0,
+    0x2e, 0x3c, 0x3, 0xc0, 0x2, 0xfc, 0x0, 0xf,
+    0x3d, 0xff, 0xff, 0x83, 0xed, 0x0, 0xf, 0x7d,
+    0xff, 0xff, 0x8b, 0x4f, 0x0, 0xb, 0xbc, 0x2d,
+    0x0, 0xf, 0xb, 0x40, 0x7, 0x7c, 0x2c, 0x0,
+    0x2e, 0x3, 0xc0, 0x0, 0x3c, 0x2c, 0x0, 0x3c,
+    0x2, 0xf0, 0x0, 0xbc, 0x2d, 0x0, 0xf4, 0x0,
+    0xf8, 0xb, 0xfc, 0x2f, 0xff, 0xe1, 0x0, 0x3e,
+    0x7f, 0xfc, 0x2f, 0xfe, 0xc7, 0xd0, 0x1c, 0x7d,
+    0x38, 0x3c, 0x1d, 0x2, 0xf8, 0x0, 0x20, 0x78,
+    0x3c, 0x2d, 0x0, 0x3f, 0x40, 0x0, 0x74, 0x3c,
+    0x2c, 0x0, 0xb, 0x0, 0x0, 0xf0, 0x3c, 0x2c,
+    0x0, 0x0, 0x0, 0x0, 0xf0, 0x78, 0x2c, 0x24,
+    0x0, 0x0, 0x1, 0xe0, 0xb4, 0x2c, 0x7f, 0x0,
+    0x0, 0x3, 0xc0, 0xf0, 0x2c, 0x1f, 0xe0, 0x0,
+    0x7, 0xc1, 0xe0, 0x3c, 0x2, 0xfd, 0x0, 0xf,
+    0x43, 0xc2, 0xfc, 0x0, 0x3f, 0x80, 0x3e, 0xb,
+    0x82, 0xf4, 0x0, 0x7, 0xc0, 0x1c, 0x7, 0x0,
+    0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+7601 "瘁" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0xf4, 0x0, 0x0, 0x0, 0x0,
@@ -92716,32 +96852,59 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x9, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+7606 "瘆" */
-    0x0, 0x0, 0x0, 0x1, 0x40, 0x0, 0x0, 0x0,
+    /* U+7605 "瘅" */
+    0x0, 0x0, 0x0, 0x7, 0x80, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x7, 0xc0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x3, 0xd0, 0x0, 0x0, 0x0, 0x2a, 0xaa,
+    0x0, 0x3, 0xd0, 0x0, 0x0, 0x0, 0x3f, 0xff,
+    0xff, 0xff, 0xff, 0xfc, 0x0, 0x3f, 0xff, 0xff,
+    0xff, 0xff, 0xfc, 0xf0, 0x3c, 0x1, 0xe0, 0x0,
+    0x74, 0x0, 0x78, 0x3c, 0x0, 0xf4, 0x1, 0xf0,
+    0x0, 0x3c, 0x3c, 0x0, 0x3c, 0x3, 0xd0, 0x0,
+    0x2d, 0x3c, 0x3f, 0xff, 0xff, 0xff, 0xc0, 0x1e,
+    0x3c, 0x3f, 0xff, 0xff, 0xff, 0xc0, 0xf, 0x3c,
+    0x3c, 0x0, 0xf0, 0x3, 0xc0, 0xa, 0x3c, 0x3c,
+    0x0, 0xf0, 0x3, 0xc0, 0x0, 0x3c, 0x3f, 0xff,
+    0xff, 0xff, 0xc0, 0x1, 0xfc, 0x3f, 0xff, 0xff,
+    0xff, 0xc0, 0x1f, 0xfc, 0x3c, 0x0, 0xf0, 0x3,
+    0xc0, 0xbf, 0x7c, 0x3c, 0x0, 0xf0, 0x3, 0xc0,
+    0x74, 0x3c, 0x3f, 0xff, 0xff, 0xff, 0xc0, 0x0,
+    0x78, 0x3f, 0xff, 0xff, 0xff, 0xc0, 0x0, 0xb4,
+    0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0xf0, 0x0,
+    0x0, 0xf0, 0x0, 0x0, 0x0, 0xf0, 0x0, 0x0,
+    0xf0, 0x0, 0x0, 0x2, 0xe3, 0xff, 0xff, 0xff,
+    0xff, 0xfd, 0x3, 0xd3, 0xff, 0xff, 0xff, 0xff,
+    0xfd, 0xb, 0xc0, 0x0, 0x0, 0xf0, 0x0, 0x0,
+    0x1f, 0x40, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x3e,
+    0x0, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x1c, 0x0,
+    0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
+    /* U+760A "瘊" */
+    0x0, 0x0, 0x0, 0x6, 0x40, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x7, 0xc0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x3, 0xc0, 0x0, 0x0, 0x0, 0x2a, 0xaa,
     0xab, 0xfa, 0xaa, 0xa8, 0x0, 0x3f, 0xff, 0xff,
-    0xff, 0xff, 0xfc, 0x60, 0x3c, 0x0, 0x2, 0x40,
-    0x0, 0x0, 0x78, 0x3c, 0x0, 0xb, 0xc0, 0x0,
-    0x0, 0x3c, 0x3c, 0x0, 0x2f, 0x2, 0xd0, 0x0,
-    0x2d, 0x3c, 0x0, 0xfc, 0x1, 0xf8, 0x0, 0x1e,
-    0x3c, 0x7, 0xe0, 0x0, 0x7e, 0x0, 0xf, 0x3c,
-    0x1f, 0xff, 0xff, 0xff, 0xc0, 0xf, 0x7c, 0xe,
-    0xab, 0xaa, 0x96, 0xe0, 0x5, 0x3c, 0x0, 0x3,
-    0xc0, 0x0, 0x80, 0x0, 0x7c, 0xaa, 0xaf, 0xea,
-    0xaa, 0xa4, 0x7, 0xfc, 0xff, 0xff, 0xff, 0xff,
-    0xf8, 0x6f, 0xfc, 0x0, 0x7c, 0x1, 0xe0, 0x0,
-    0xbe, 0x78, 0x1, 0xf0, 0x0, 0xb8, 0x0, 0x60,
-    0x78, 0x7, 0xd0, 0x6e, 0x2f, 0x0, 0x0, 0x78,
-    0x3f, 0x1b, 0xf8, 0xb, 0xd0, 0x0, 0xb6, 0xf9,
-    0xff, 0x80, 0xa1, 0xfc, 0x0, 0xf1, 0xd0, 0xe0,
-    0xb, 0xf0, 0x2c, 0x0, 0xf0, 0x0, 0x1, 0xff,
-    0x41, 0x0, 0x2, 0xe0, 0x1, 0xbf, 0xe0, 0x1f,
-    0x80, 0x3, 0xc0, 0xf, 0xf9, 0x1, 0xfe, 0x0,
-    0xb, 0xc0, 0x5, 0x0, 0x6f, 0xe0, 0x0, 0xf,
-    0x40, 0x0, 0x6f, 0xfe, 0x0, 0x0, 0x2f, 0x0,
-    0x2f, 0xff, 0x80, 0x0, 0x0, 0x4, 0x0, 0x3e,
-    0x90, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xff, 0xff, 0xfc, 0x70, 0x3d, 0x55, 0x55, 0x55,
+    0x55, 0x54, 0xb4, 0x3c, 0x3, 0x80, 0x0, 0x0,
+    0x0, 0x3c, 0x3c, 0x7, 0x8b, 0xff, 0xff, 0x0,
+    0x3c, 0x3c, 0xf, 0xf, 0xff, 0xff, 0x0, 0x2e,
+    0x3c, 0xf, 0x0, 0x0, 0xf, 0x0, 0xf, 0x3c,
+    0x2e, 0x0, 0x0, 0xf, 0x0, 0xf, 0x3c, 0x3c,
+    0x7f, 0xff, 0xff, 0xfc, 0xa, 0x3c, 0xbc, 0xbf,
+    0xff, 0xff, 0xfc, 0x0, 0x3c, 0xfc, 0x2, 0x40,
+    0x0, 0x0, 0x2, 0xfe, 0xfc, 0x7, 0x80, 0x0,
+    0x0, 0x2f, 0xff, 0xfc, 0xf, 0xff, 0xff, 0xe0,
+    0xff, 0x7f, 0xbc, 0x1f, 0xff, 0xff, 0xe0, 0xb4,
+    0x7e, 0x3c, 0x3c, 0x7, 0x80, 0x0, 0x0, 0x78,
+    0x3c, 0x74, 0x7, 0x80, 0x0, 0x0, 0xb4, 0x3c,
+    0x0, 0x7, 0x80, 0x0, 0x0, 0xf0, 0x3c, 0xff,
+    0xff, 0xff, 0xfc, 0x0, 0xf0, 0x3c, 0xaa, 0xaf,
+    0xea, 0xa8, 0x2, 0xe0, 0x3c, 0x0, 0xf, 0xc0,
+    0x0, 0x3, 0xc0, 0x3c, 0x0, 0x3e, 0xf0, 0x0,
+    0xb, 0x80, 0x3c, 0x1, 0xfc, 0x7d, 0x0, 0x1f,
+    0x0, 0x3c, 0x1f, 0xe0, 0x1f, 0xd0, 0x3e, 0x0,
+    0x3c, 0xff, 0x40, 0x2, 0xfc, 0x1c, 0x0, 0x3c,
+    0xb4, 0x0, 0x0, 0x6c, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
     /* U+760C "瘌" */
@@ -92800,6 +96963,62 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x68, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+7615 "瘕" */
+    0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xf, 0x40, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xb, 0xc0, 0x0, 0x0, 0x0, 0x3f, 0xff,
+    0xff, 0xff, 0xff, 0xfc, 0x0, 0x3f, 0xff, 0xff,
+    0xff, 0xff, 0xfc, 0x78, 0x3c, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x3c, 0x3c, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x3d, 0x3c, 0x3f, 0xff, 0x1f, 0xff, 0xc0,
+    0x1e, 0x3c, 0x3f, 0xff, 0x2f, 0xff, 0xc0, 0xf,
+    0x3c, 0x3c, 0xb, 0x0, 0x2, 0xc0, 0xf, 0x7c,
+    0x3c, 0xb, 0x0, 0x2, 0xc0, 0xb, 0xbc, 0x3c,
+    0xb, 0x0, 0x2, 0xc0, 0x6, 0x3c, 0x3f, 0xff,
+    0x2f, 0xff, 0xc0, 0x0, 0x3c, 0x3f, 0xff, 0x2f,
+    0xff, 0xc0, 0x2, 0xfc, 0x3c, 0x0, 0x0, 0x0,
+    0x0, 0x2f, 0xfc, 0x3c, 0x0, 0x0, 0x0, 0x0,
+    0xbf, 0x7c, 0x3e, 0xaa, 0x7f, 0xff, 0xc0, 0x74,
+    0x38, 0x3f, 0xff, 0x7f, 0xff, 0xc0, 0x0, 0x78,
+    0x3c, 0x0, 0x28, 0x3, 0xc0, 0x0, 0xb4, 0x3c,
+    0x0, 0x3c, 0xb, 0x80, 0x0, 0xf0, 0x3c, 0x0,
+    0x1e, 0xf, 0x0, 0x0, 0xf0, 0x3f, 0xff, 0x8f,
+    0x7d, 0x0, 0x2, 0xe0, 0x3f, 0xff, 0xc3, 0xf8,
+    0x0, 0x3, 0xc0, 0x3c, 0x0, 0x7, 0xf8, 0x0,
+    0xb, 0x80, 0x3c, 0x0, 0x2f, 0xbf, 0x40, 0x1f,
+    0x0, 0x3c, 0x2, 0xfd, 0xf, 0xf8, 0x3e, 0x0,
+    0x3c, 0xf, 0xe0, 0x1, 0xfc, 0x1c, 0x0, 0x3c,
+    0x6, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
+    /* U+7617 "瘗" */
+    0x0, 0x0, 0x0, 0x6, 0x40, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x7, 0xc0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x3, 0xc0, 0x0, 0x0, 0x0, 0x2a, 0xaa,
+    0xab, 0xfa, 0xaa, 0xa8, 0x0, 0x3f, 0xff, 0xff,
+    0xff, 0xff, 0xfc, 0x20, 0x3c, 0x0, 0x0, 0x40,
+    0x0, 0x0, 0x78, 0x3c, 0x0, 0x0, 0xf0, 0x0,
+    0x0, 0x3c, 0x3c, 0x0, 0x0, 0xf0, 0x0, 0x0,
+    0x2d, 0x3c, 0xbf, 0xff, 0xff, 0xff, 0xf0, 0x1e,
+    0x3c, 0x6a, 0xaa, 0xfe, 0xaa, 0xa0, 0xf, 0x3c,
+    0x3, 0x0, 0xf0, 0x9, 0x0, 0xf, 0x3c, 0x3,
+    0xc0, 0xf0, 0x2e, 0x0, 0x4, 0x3c, 0x1, 0xe0,
+    0xf0, 0x78, 0x0, 0x0, 0x3c, 0xaa, 0xea, 0xfa,
+    0xba, 0xa8, 0x1, 0xfd, 0xff, 0xff, 0xff, 0xff,
+    0xfc, 0x1f, 0xfc, 0x0, 0xb, 0xef, 0x0, 0x0,
+    0xff, 0x7c, 0x0, 0x7f, 0xb, 0xe0, 0x0, 0xb4,
+    0x78, 0xb, 0xf8, 0x0, 0xfe, 0x40, 0x0, 0x7a,
+    0xff, 0x80, 0xf0, 0x1b, 0xfd, 0x0, 0xb7, 0xe4,
+    0x0, 0xf0, 0x0, 0x6d, 0x0, 0xf0, 0x1a, 0xaa,
+    0xfa, 0xaa, 0x40, 0x0, 0xf0, 0x2f, 0xff, 0xff,
+    0xff, 0x80, 0x1, 0xe0, 0x0, 0x0, 0xf0, 0x0,
+    0x0, 0x3, 0xc0, 0x0, 0x0, 0xf0, 0x0, 0x0,
+    0xb, 0xc0, 0x0, 0x0, 0xf0, 0x0, 0x0, 0xf,
+    0x47, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x3e, 0xb,
+    0xff, 0xff, 0xff, 0xff, 0xfc, 0x1c, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+7618 "瘘" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x3, 0xd0, 0x0, 0x0, 0x0, 0x0,
@@ -93024,6 +97243,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+7626 "瘦" */
+    0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x3, 0xd0, 0x0, 0x0, 0x0, 0x2a, 0xaa,
+    0xab, 0xfa, 0xaa, 0xa8, 0x0, 0x3f, 0xff, 0xff,
+    0xff, 0xff, 0xfc, 0x38, 0x3d, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x3c, 0x3d, 0x0, 0x0, 0x64, 0x0,
+    0x0, 0x2d, 0x3d, 0x0, 0x68, 0xb4, 0x0, 0x0,
+    0x1f, 0x3d, 0x1f, 0xfd, 0xb6, 0xff, 0xd0, 0xf,
+    0x3d, 0x2e, 0x40, 0xb5, 0xab, 0xd0, 0xb, 0x7d,
+    0x2c, 0x0, 0xb4, 0x1, 0xd0, 0x7, 0xbd, 0x2e,
+    0x54, 0xb5, 0x56, 0xd0, 0x2, 0x3d, 0x2f, 0xfd,
+    0xb6, 0xff, 0xd0, 0x0, 0x3d, 0x2d, 0x0, 0xb4,
+    0x1, 0xd0, 0x1, 0xfd, 0x2c, 0x0, 0xb4, 0x1,
+    0xd0, 0x1f, 0xfd, 0x2f, 0xaa, 0xfe, 0xab, 0xd0,
+    0xff, 0xbc, 0x2f, 0xff, 0xff, 0xff, 0xd0, 0xb8,
+    0x3c, 0x0, 0x0, 0xb4, 0x0, 0x0, 0x0, 0x3c,
+    0x0, 0x0, 0xb4, 0x0, 0x0, 0x0, 0x7c, 0x3f,
+    0xff, 0xff, 0xff, 0x40, 0x0, 0xb8, 0x2b, 0xfa,
+    0xaa, 0xbf, 0x40, 0x0, 0xf4, 0x3, 0xf0, 0x0,
+    0x3e, 0x0, 0x1, 0xf0, 0x0, 0xbd, 0x1, 0xf8,
+    0x0, 0x2, 0xe0, 0x0, 0x1f, 0xdf, 0xd0, 0x0,
+    0x3, 0xc0, 0x0, 0x7, 0xff, 0x40, 0x0, 0xf,
+    0x80, 0x6, 0xff, 0xef, 0xfa, 0x40, 0x1f, 0xb,
+    0xff, 0xf9, 0x1, 0xbf, 0xfe, 0x1e, 0x7, 0xf9,
+    0x0, 0x0, 0x1, 0xbe, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+7629 "瘩" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0xb, 0x40, 0x0, 0x0, 0x0, 0x0,
@@ -93052,6 +97299,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x1e, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+762A "瘪" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0xb8, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x1f, 0x0, 0x0, 0x0, 0x0, 0x3f,
+    0xff, 0xff, 0xff, 0xff, 0xf4, 0x0, 0xf, 0xff,
+    0xff, 0xff, 0xff, 0xfe, 0x2, 0x3, 0xc0, 0x0,
+    0x19, 0x0, 0x0, 0x2, 0xe0, 0xf0, 0x0, 0xf,
+    0x40, 0x0, 0x0, 0x7c, 0x3c, 0x1f, 0xff, 0xff,
+    0xff, 0xc0, 0xf, 0x4f, 0x7, 0xd5, 0x55, 0x56,
+    0xf0, 0x2, 0xe3, 0xc1, 0xf0, 0x0, 0x0, 0x7c,
+    0x0, 0x3c, 0xf0, 0x7f, 0xff, 0xff, 0xff, 0x0,
+    0xf, 0x7c, 0x1f, 0x0, 0x0, 0x7, 0xc0, 0x2,
+    0x8f, 0x7, 0xd5, 0x55, 0x56, 0xf0, 0x0, 0x3,
+    0xc1, 0xff, 0xff, 0xff, 0xfc, 0x0, 0xb, 0xf0,
+    0x7c, 0x0, 0x0, 0x1f, 0x0, 0x2f, 0xfc, 0x1f,
+    0xff, 0xff, 0xff, 0xc0, 0x3f, 0xdf, 0x2, 0xab,
+    0xff, 0xea, 0x90, 0xb, 0x47, 0x80, 0x2, 0xf9,
+    0xfc, 0x0, 0x0, 0x1, 0xe0, 0xb, 0xf4, 0xb,
+    0xe4, 0x0, 0x0, 0xb4, 0x7f, 0xd0, 0x0, 0x7f,
+    0xd0, 0x0, 0x3f, 0xff, 0xe0, 0x6, 0xfd, 0xbf,
+    0x40, 0x1f, 0x74, 0xbe, 0xff, 0xf9, 0x1, 0x80,
+    0xf, 0x80, 0x2f, 0xfe, 0x40, 0x4, 0x0, 0x7,
+    0xc0, 0xb, 0x80, 0x0, 0x7, 0x80, 0x3, 0xe0,
+    0x2, 0xf0, 0x0, 0x3, 0xe0, 0x2, 0xf0, 0x0,
+    0x7f, 0xff, 0xff, 0xf4, 0x0, 0xf4, 0x0, 0x7,
+    0xff, 0xff, 0xf4, 0x0, 0x8, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+762B "瘫" */
     0x0, 0x0, 0x0, 0x2, 0x40, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x0, 0x0,
@@ -93080,6 +97355,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x2, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+762D "瘭" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x7, 0xc0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x3, 0xc0, 0x0, 0x0, 0x0, 0x2f, 0xff,
+    0xff, 0xff, 0xff, 0xfc, 0x0, 0x3f, 0xff, 0xff,
+    0xff, 0xff, 0xfc, 0x0, 0x3d, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x38, 0x3d, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x3c, 0x3d, 0xbf, 0xff, 0xff, 0xff, 0xf0,
+    0x1d, 0x3d, 0x6a, 0xaf, 0xaf, 0xaa, 0xa0, 0xf,
+    0x3d, 0x0, 0xe, 0x7, 0x40, 0x0, 0xf, 0x3d,
+    0x15, 0x6f, 0x5b, 0x95, 0x40, 0xb, 0x7d, 0x3f,
+    0xff, 0xff, 0xff, 0xc0, 0x1, 0x3c, 0x3c, 0xe,
+    0x7, 0x43, 0xc0, 0x0, 0x3c, 0x3c, 0xe, 0x7,
+    0x43, 0xc0, 0x1, 0xfc, 0x3f, 0xff, 0xff, 0xff,
+    0xc0, 0x1f, 0xfc, 0x15, 0x55, 0x55, 0x55, 0x40,
+    0xbf, 0x7c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x74,
+    0x3c, 0x2f, 0xff, 0xff, 0xff, 0xc0, 0x0, 0x3c,
+    0x1a, 0xaa, 0xaa, 0xaa, 0x80, 0x0, 0x3c, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x79, 0xff, 0xff,
+    0xff, 0xff, 0xfe, 0x0, 0xb5, 0xaa, 0xaa, 0xfe,
+    0xaa, 0xa9, 0x0, 0xf0, 0x2, 0x40, 0xb4, 0x20,
+    0x0, 0x1, 0xe0, 0xb, 0xc0, 0xb4, 0x7e, 0x0,
+    0x3, 0xd0, 0x7f, 0x0, 0xb4, 0x1f, 0xd0, 0xb,
+    0xc2, 0xf8, 0x5, 0xf4, 0x2, 0xfc, 0xf, 0x43,
+    0xc0, 0x2f, 0xf0, 0x0, 0x38, 0xa, 0x0, 0x0,
+    0x9, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+7630 "瘰" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x2, 0xe0, 0x0, 0x0, 0x0, 0x0,
@@ -93165,6 +97468,35 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+7635 "瘵" */
+    0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0xf4, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x2e, 0x0, 0x0, 0x0, 0x0, 0x7f,
+    0xff, 0xff, 0xff, 0xff, 0xf8, 0x0, 0x2f, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0x0, 0xb, 0x40, 0x0,
+    0x0, 0x0, 0x0, 0x3, 0xc2, 0xd0, 0x1d, 0x0,
+    0x90, 0x0, 0x0, 0xb4, 0xb4, 0xf, 0x40, 0x3c,
+    0x0, 0x0, 0xe, 0x2d, 0x7, 0xff, 0xfb, 0xff,
+    0xf8, 0x3, 0xcb, 0x43, 0xd5, 0x7d, 0xfa, 0xbe,
+    0x0, 0xb6, 0xd3, 0xfc, 0x1d, 0x3c, 0x1f, 0x0,
+    0x1e, 0xb6, 0xe7, 0xcf, 0xb, 0x4f, 0x0, 0x3,
+    0xaf, 0xf0, 0x2b, 0x40, 0xff, 0x40, 0x0, 0xb,
+    0xff, 0xb, 0x80, 0x1f, 0x40, 0x0, 0x7, 0xd0,
+    0xdb, 0xc0, 0x2, 0xf0, 0x0, 0x1f, 0xf4, 0xb,
+    0xff, 0xff, 0xef, 0x0, 0x3f, 0xfc, 0xb, 0xdf,
+    0xff, 0xf2, 0xf8, 0xf, 0x4f, 0x1f, 0x80, 0x0,
+    0x0, 0x1f, 0xc1, 0x3, 0xdf, 0x40, 0x0, 0x0,
+    0x0, 0xb0, 0x0, 0xf3, 0xbf, 0xff, 0xff, 0xff,
+    0xc0, 0x0, 0x78, 0x2f, 0xff, 0xff, 0xff, 0xf0,
+    0x0, 0x2d, 0x0, 0x10, 0x2e, 0x0, 0x0, 0x0,
+    0xf, 0x0, 0x2d, 0xb, 0x83, 0xe0, 0x0, 0xb,
+    0x80, 0x2f, 0x2, 0xe0, 0x7f, 0x0, 0x3, 0xc0,
+    0x3f, 0x0, 0xb8, 0x2, 0xf4, 0x3, 0xe0, 0xbe,
+    0x2, 0xfd, 0x0, 0x1f, 0x81, 0xf0, 0x2e, 0x0,
+    0xff, 0x0, 0x0, 0xc0, 0x28, 0x0, 0x0, 0x15,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+7638 "瘸" */
     0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x3, 0xd0, 0x0, 0x0, 0x0, 0x0,
@@ -93193,6 +97525,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x3f, 0xc0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+763C "瘼" */
+    0x0, 0x0, 0x0, 0xb, 0x40, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xb, 0xc0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x7, 0xd0, 0x0, 0x0, 0x0, 0x3f, 0xff,
+    0xff, 0xff, 0xff, 0xfc, 0x0, 0x3e, 0xaa, 0xaa,
+    0xaa, 0xaa, 0xa8, 0x74, 0x3c, 0x0, 0xb0, 0x2,
+    0xc0, 0x0, 0x3c, 0x3c, 0x55, 0xf5, 0x57, 0xd5,
+    0x50, 0x2d, 0x3c, 0xff, 0xff, 0xff, 0xff, 0xf8,
+    0x1e, 0x3c, 0x55, 0xf5, 0x57, 0xd5, 0x50, 0xf,
+    0x3c, 0x0, 0xa0, 0x2, 0x80, 0x0, 0xb, 0x7c,
+    0x3f, 0xff, 0xff, 0xff, 0x80, 0x6, 0x3c, 0x3e,
+    0xaa, 0xaa, 0xaf, 0x80, 0x0, 0x3c, 0x3c, 0x0,
+    0x0, 0x7, 0x80, 0x1, 0xfc, 0x3e, 0xaa, 0xaa,
+    0xab, 0x80, 0x1f, 0xfc, 0x3f, 0xff, 0xff, 0xff,
+    0x80, 0xbf, 0x7c, 0x3c, 0x0, 0x0, 0x7, 0x80,
+    0x74, 0x38, 0x3e, 0xaa, 0xaa, 0xab, 0x80, 0x0,
+    0x78, 0x3f, 0xff, 0xff, 0xff, 0x80, 0x0, 0xb4,
+    0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0xf0, 0x0,
+    0x0, 0xf0, 0x0, 0x0, 0x0, 0xf3, 0xff, 0xff,
+    0xff, 0xff, 0xfc, 0x2, 0xe2, 0xff, 0xff, 0xff,
+    0xff, 0xf8, 0x3, 0xc0, 0x0, 0x7, 0xfd, 0x0,
+    0x0, 0xb, 0xc0, 0x0, 0x6f, 0x4f, 0xd0, 0x0,
+    0xf, 0x0, 0x1b, 0xfd, 0x2, 0xfe, 0x40, 0x3e,
+    0xb, 0xff, 0xd0, 0x0, 0x2f, 0xfd, 0x1c, 0x7,
+    0xe4, 0x0, 0x0, 0x1, 0xbc, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+763E "瘾" */
     0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0xf4, 0x0, 0x0, 0x0, 0x0,
@@ -93363,6 +97722,60 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+7654 "癔" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xb, 0x80, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x7, 0xc0, 0x0, 0x0, 0x0, 0x2a, 0xaa,
+    0xaf, 0xfa, 0xaa, 0xa8, 0x0, 0x3f, 0xff, 0xff,
+    0xff, 0xff, 0xfc, 0x20, 0x3c, 0x0, 0x2, 0xc0,
+    0x0, 0x0, 0xb4, 0x3c, 0x0, 0x2, 0xd0, 0x0,
+    0x0, 0x3c, 0x3c, 0xff, 0xff, 0xff, 0xff, 0xe0,
+    0x3c, 0x3c, 0xab, 0xfa, 0xab, 0xfa, 0x90, 0x1e,
+    0x3c, 0x0, 0xe0, 0x2, 0xd0, 0x0, 0xf, 0x3c,
+    0x0, 0xf0, 0x3, 0xc0, 0x0, 0xf, 0x3f, 0xff,
+    0xff, 0xff, 0xff, 0xfc, 0x9, 0x3d, 0xaa, 0xaa,
+    0xaa, 0xaa, 0xa8, 0x0, 0x3c, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x2, 0xfc, 0x3f, 0xff, 0xff, 0xff,
+    0x0, 0x2f, 0xf8, 0x3d, 0x55, 0x55, 0x5f, 0x0,
+    0xfe, 0x78, 0x3d, 0x55, 0x55, 0x5f, 0x0, 0x60,
+    0x74, 0x3f, 0xff, 0xff, 0xff, 0x0, 0x0, 0xb4,
+    0x3c, 0x0, 0x0, 0xf, 0x0, 0x0, 0xf0, 0x3f,
+    0xff, 0xff, 0xff, 0x0, 0x0, 0xf0, 0x1a, 0xab,
+    0xea, 0xaa, 0x0, 0x1, 0xe0, 0x61, 0xc3, 0xd0,
+    0x3, 0x40, 0x3, 0xd0, 0xf2, 0xc0, 0xf4, 0x3,
+    0xc0, 0x7, 0xc2, 0xe2, 0xc0, 0x34, 0xe1, 0xf0,
+    0xf, 0x83, 0xc2, 0xd0, 0x0, 0xe0, 0xf4, 0x1f,
+    0xf, 0x41, 0xfa, 0xab, 0xd0, 0x3c, 0x3d, 0x2,
+    0x0, 0xbf, 0xff, 0x80, 0x10, 0x4, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
+    /* U+7656 "癖" */
+    0x0, 0x0, 0x0, 0x1, 0x40, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x7, 0xc0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x3, 0xd0, 0x0, 0x0, 0x0, 0x2f, 0xff,
+    0xff, 0xff, 0xff, 0xfd, 0x0, 0x2f, 0xff, 0xff,
+    0xff, 0xff, 0xfd, 0x14, 0x2d, 0x0, 0x0, 0x0,
+    0x24, 0x0, 0x3c, 0x2c, 0x0, 0x0, 0x0, 0x38,
+    0x0, 0x2d, 0x2c, 0x2f, 0xff, 0x0, 0x3c, 0x0,
+    0x1e, 0x2c, 0x2f, 0xff, 0x2f, 0xff, 0xfc, 0xf,
+    0x2c, 0x2c, 0xb, 0x3f, 0xff, 0xfc, 0xb, 0x6c,
+    0x2c, 0xb, 0xb, 0x0, 0xe0, 0x7, 0x6c, 0x2c,
+    0xb, 0x7, 0x41, 0xe0, 0x1, 0x2c, 0x2d, 0xb,
+    0x3, 0x81, 0xd0, 0x0, 0x2c, 0x2f, 0xff, 0x3,
+    0xc2, 0xc0, 0x0, 0xbc, 0x2e, 0xaa, 0x3, 0xc3,
+    0xc0, 0x7, 0xfc, 0x3c, 0x0, 0x3f, 0xff, 0xfe,
+    0x7f, 0xfc, 0x3c, 0x0, 0x3f, 0xff, 0xfe, 0x3d,
+    0x3c, 0x3d, 0x55, 0x0, 0x3c, 0x0, 0x10, 0x3c,
+    0x7f, 0xff, 0x0, 0x3c, 0x0, 0x0, 0x78, 0xbf,
+    0x5f, 0x0, 0x3c, 0x0, 0x0, 0xb4, 0xfe, 0xb,
+    0x2a, 0xbe, 0xa8, 0x0, 0xf1, 0xee, 0xb, 0x3f,
+    0xff, 0xfd, 0x0, 0xf3, 0xde, 0xb, 0x0, 0x3c,
+    0x0, 0x2, 0xd7, 0xce, 0xb, 0x0, 0x3c, 0x0,
+    0x3, 0xcb, 0x4f, 0xaf, 0x0, 0x3c, 0x0, 0xb,
+    0x80, 0xf, 0xff, 0x0, 0x3c, 0x0, 0xf, 0x0,
+    0x0, 0x0, 0x0, 0x3c, 0x0, 0x5, 0x0, 0x0,
+    0x0, 0x0, 0x3c, 0x0,
+
     /* U+765C "癜" */
     0x0, 0x0, 0x0, 0x1, 0x40, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0x0,
@@ -93420,6 +97833,35 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xc0, 0x90, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+7663 "癣" */
+    0x0, 0x0, 0x0, 0x2, 0x80, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x3e, 0x0, 0x0, 0x0, 0x0, 0x6a,
+    0xaa, 0xaf, 0xea, 0xaa, 0xa4, 0x0, 0x2f, 0xff,
+    0xff, 0xff, 0xff, 0xfe, 0x1, 0xb, 0x40, 0x80,
+    0x0, 0x0, 0x0, 0x3, 0xd2, 0xd0, 0x78, 0x0,
+    0x28, 0x7, 0x40, 0x78, 0xb4, 0x3e, 0x55, 0xb,
+    0x42, 0xc0, 0xf, 0x2d, 0xf, 0xff, 0x80, 0xf0,
+    0xe0, 0x2, 0xdb, 0x4f, 0x42, 0xc0, 0x2c, 0xb0,
+    0x0, 0x7e, 0xd7, 0x80, 0xd0, 0xff, 0xff, 0xd0,
+    0xf, 0xbb, 0xea, 0xfa, 0x3f, 0xff, 0xf4, 0x3,
+    0xaf, 0xff, 0xff, 0xc0, 0x1e, 0x0, 0x0, 0xb,
+    0x5e, 0x2c, 0x70, 0x7, 0x80, 0x0, 0xb, 0xd3,
+    0x8b, 0x1c, 0x1, 0xe0, 0x0, 0x2f, 0xf4, 0xfb,
+    0xeb, 0x1a, 0xfe, 0xa0, 0x3f, 0xed, 0x3f, 0xff,
+    0xcb, 0xff, 0xfc, 0xf, 0x4b, 0xe, 0x2c, 0xb0,
+    0xb, 0x80, 0x1, 0x3, 0xc3, 0x8b, 0x1c, 0x1,
+    0xe0, 0x0, 0x0, 0xf0, 0xe2, 0xc7, 0x0, 0x78,
+    0x0, 0x0, 0x3c, 0x3e, 0xfb, 0xc0, 0x1e, 0x0,
+    0x0, 0x1e, 0xf, 0xff, 0xfb, 0xff, 0xff, 0xd0,
+    0xf, 0x40, 0x0, 0x1, 0xff, 0xff, 0xf4, 0x3,
+    0xc0, 0x0, 0x0, 0x0, 0x78, 0x0, 0x2, 0xe2,
+    0xaf, 0xff, 0xf0, 0x1e, 0x0, 0x0, 0xf0, 0xbf,
+    0xff, 0xa8, 0x7, 0x80, 0x0, 0xbc, 0x0, 0x0,
+    0x0, 0x1, 0xe0, 0x0, 0x3c, 0x0, 0x0, 0x0,
+    0x0, 0x78, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+766B "癫" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x0, 0x0,
@@ -93834,6 +98276,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x38, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+7699 "皙" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x7, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7,
+    0x80, 0x0, 0x15, 0xaf, 0xf0, 0x0, 0x7, 0x80,
+    0xf, 0xff, 0xff, 0xe0, 0xa, 0xaf, 0xea, 0x8f,
+    0xea, 0x50, 0x0, 0xf, 0xff, 0xff, 0xcf, 0x0,
+    0x0, 0x0, 0x5, 0x5f, 0xd5, 0x4f, 0x0, 0x0,
+    0x0, 0x0, 0x1f, 0x80, 0xf, 0x40, 0x0, 0x0,
+    0x0, 0x3f, 0xf4, 0xf, 0xff, 0xff, 0xff, 0x0,
+    0xff, 0xfe, 0xf, 0xff, 0xff, 0xfe, 0x3, 0xf7,
+    0x8f, 0x9f, 0x0, 0x3d, 0x0, 0xf, 0xc7, 0x82,
+    0x2e, 0x0, 0x3d, 0x0, 0x3f, 0x7, 0x80, 0x7d,
+    0x0, 0x3d, 0x0, 0x1c, 0x7, 0x80, 0xb8, 0x0,
+    0x3d, 0x0, 0x0, 0x7, 0x80, 0x38, 0x0, 0x3c,
+    0x0, 0x0, 0x0, 0x0, 0x7c, 0x0, 0x0, 0x0,
+    0x0, 0x2f, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0,
+    0x2f, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x2e,
+    0x0, 0x0, 0x0, 0x2f, 0x0, 0x0, 0x2e, 0x0,
+    0x0, 0x0, 0x2f, 0x0, 0x0, 0x2f, 0xaa, 0xaa,
+    0xaa, 0xbf, 0x0, 0x0, 0x2f, 0xff, 0xff, 0xff,
+    0xff, 0x0, 0x0, 0x2e, 0x0, 0x0, 0x0, 0x2f,
+    0x0, 0x0, 0x2e, 0x0, 0x0, 0x0, 0x2f, 0x0,
+    0x0, 0x2e, 0x0, 0x0, 0x0, 0x2f, 0x0, 0x0,
+    0x2f, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x2f,
+    0xaa, 0xaa, 0xaa, 0xbf, 0x0, 0x0, 0x2e, 0x0,
+    0x0, 0x0, 0x2f, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+76A4 "皤" */
     0x1, 0xe0, 0x0, 0x0, 0x0, 0x1, 0x40, 0x1,
     0xe0, 0x0, 0x15, 0xab, 0xff, 0xc0, 0x2, 0xd0,
@@ -94019,6 +98489,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc,
     0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc,
 
+    /* U+76C5 "盅" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x7c, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x7c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x7c, 0x0, 0x0, 0x0, 0x2, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0x0, 0x2, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0x0, 0x2, 0xe0, 0x0, 0x7c, 0x0, 0x1f,
+    0x0, 0x2, 0xd0, 0x0, 0x7c, 0x0, 0xf, 0x0,
+    0x2, 0xd0, 0x0, 0x7c, 0x0, 0xf, 0x0, 0x2,
+    0xd0, 0x0, 0x7c, 0x0, 0xf, 0x0, 0x2, 0xe5,
+    0x55, 0xbd, 0x55, 0x6f, 0x0, 0x2, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0x0, 0x1, 0xaa, 0xaa, 0xfe,
+    0xaa, 0xaa, 0x0, 0x0, 0x0, 0x0, 0x7c, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x7c, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x78, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1,
+    0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x1, 0xff,
+    0xff, 0xff, 0xff, 0xfe, 0x0, 0x1, 0xf0, 0x1f,
+    0x1, 0xe0, 0x1e, 0x0, 0x1, 0xf0, 0x1f, 0x1,
+    0xe0, 0x1e, 0x0, 0x1, 0xf0, 0x1f, 0x1, 0xe0,
+    0x1e, 0x0, 0x1, 0xf0, 0x1f, 0x1, 0xe0, 0x1e,
+    0x0, 0x1, 0xf0, 0x1f, 0x1, 0xe0, 0x1e, 0x0,
+    0x1, 0xf0, 0x1f, 0x2, 0xe0, 0x2e, 0x0, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xfc,
+
     /* U+76C6 "盆" */
     0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0,
     0x0, 0xd, 0x2, 0xe0, 0x0, 0x0, 0x0, 0x0,
@@ -94069,30 +98565,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc,
     0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc,
 
-    /* U+76C9 "盉" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x15, 0x0, 0x1,
-    0x55, 0x5a, 0xaf, 0xff, 0xf8, 0x0, 0x1f, 0xff,
-    0xff, 0xff, 0xfe, 0x90, 0x0, 0x2a, 0xa5, 0x6f,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7c, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x1, 0xf0, 0x0, 0x0,
-    0x1, 0xaa, 0xaa, 0xaf, 0xea, 0xaa, 0xaa, 0xb,
-    0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x0,
-    0xb, 0xff, 0xd0, 0x0, 0x0, 0x0, 0x0, 0xbe,
-    0xfb, 0xd0, 0x0, 0x0, 0x0, 0xf, 0xd7, 0xcb,
-    0xe0, 0x0, 0x0, 0x1, 0xfc, 0x1f, 0x7, 0xf4,
-    0x0, 0x0, 0x7f, 0x80, 0x7c, 0x7, 0xfd, 0x0,
-    0x2f, 0xf4, 0x1, 0xf0, 0x2, 0xff, 0x83, 0xfd,
-    0x0, 0x7, 0xc0, 0x0, 0xbf, 0x8b, 0x40, 0x0,
-    0x0, 0x0, 0x0, 0x2c, 0x0, 0xff, 0xff, 0xff,
-    0xff, 0xfd, 0x0, 0x3, 0xff, 0xff, 0xff, 0xff,
-    0xf4, 0x0, 0xf, 0x0, 0xf0, 0x1d, 0x2, 0xd0,
-    0x0, 0x3c, 0x3, 0xc0, 0x74, 0xb, 0x40, 0x0,
-    0xf0, 0xf, 0x1, 0xd0, 0x2d, 0x0, 0x3, 0xc0,
-    0x3c, 0x7, 0x40, 0xb4, 0x0, 0xf, 0x0, 0xf0,
-    0x1d, 0x2, 0xd0, 0x0, 0x3c, 0x3, 0xc0, 0x78,
-    0xb, 0x40, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff,
-    0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
-
     /* U+76CA "益" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x7, 0x80, 0x0, 0x3, 0xd0, 0x0, 0x0, 0x7,
@@ -94351,6 +98823,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xbf, 0xff,
     0xff, 0xff, 0xff, 0xff, 0xfc,
 
+    /* U+76D8 "盘" */
+    0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xf4, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x1, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x1f, 0xff,
+    0xff, 0xff, 0xf8, 0x0, 0x0, 0x1f, 0xff, 0xff,
+    0xff, 0xf8, 0x0, 0x0, 0x1f, 0x0, 0x80, 0x0,
+    0xb8, 0x0, 0x0, 0x1f, 0x1, 0xf4, 0x0, 0xb8,
+    0x0, 0x0, 0x1f, 0x0, 0xbd, 0x0, 0xb8, 0x0,
+    0x0, 0x1f, 0x0, 0x1f, 0x40, 0xb8, 0x0, 0x0,
+    0x1f, 0x0, 0x6, 0x0, 0xb8, 0x0, 0x3f, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xf8, 0x3f, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xf8, 0x0, 0x3d, 0x1, 0x80,
+    0x0, 0xb8, 0x0, 0x0, 0x3c, 0x3, 0xf0, 0x0,
+    0xb8, 0x0, 0x0, 0xfc, 0x0, 0xbd, 0x0, 0xb8,
+    0x0, 0x2, 0xf0, 0x0, 0x1e, 0x1b, 0xf8, 0x0,
+    0xb, 0xd0, 0x0, 0x4, 0x2f, 0xe0, 0x0, 0x3f,
+    0x40, 0x0, 0x0, 0x4, 0x0, 0x0, 0xe, 0xff,
+    0xff, 0xff, 0xff, 0xfe, 0x0, 0x1, 0xff, 0xff,
+    0xff, 0xff, 0xfe, 0x0, 0x1, 0xe0, 0x1e, 0x1,
+    0xe0, 0x1e, 0x0, 0x1, 0xe0, 0x1e, 0x1, 0xe0,
+    0x1e, 0x0, 0x1, 0xe0, 0x1e, 0x1, 0xe0, 0x1e,
+    0x0, 0x1, 0xe0, 0x1e, 0x1, 0xe0, 0x1e, 0x0,
+    0x1, 0xe0, 0x1e, 0x1, 0xe0, 0x1e, 0x0, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xfc,
+
     /* U+76DB "盛" */
     0x0, 0x0, 0x0, 0x5, 0x0, 0x40, 0x0, 0x0,
     0x0, 0x0, 0x3d, 0xb, 0x40, 0x0, 0x0, 0x0,
@@ -94425,6 +98923,25 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xbf,
     0xff, 0xff, 0xff, 0xff, 0xff, 0xfc,
 
+    /* U+76EE "目" */
+    0x55, 0x55, 0x55, 0x55, 0x54, 0xff, 0xff, 0xff,
+    0xff, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xf4,
+    0x0, 0x0, 0x0, 0x3d, 0xf4, 0x0, 0x0, 0x0,
+    0x3d, 0xf4, 0x0, 0x0, 0x0, 0x3d, 0xf4, 0x0,
+    0x0, 0x0, 0x3d, 0xf4, 0x0, 0x0, 0x0, 0x3d,
+    0xff, 0xff, 0xff, 0xff, 0xfd, 0xff, 0xff, 0xff,
+    0xff, 0xfd, 0xf4, 0x0, 0x0, 0x0, 0x3d, 0xf4,
+    0x0, 0x0, 0x0, 0x3d, 0xf4, 0x0, 0x0, 0x0,
+    0x3d, 0xf4, 0x0, 0x0, 0x0, 0x3d, 0xf4, 0x0,
+    0x0, 0x0, 0x3d, 0xff, 0xff, 0xff, 0xff, 0xfd,
+    0xff, 0xff, 0xff, 0xff, 0xfd, 0xf4, 0x0, 0x0,
+    0x0, 0x3d, 0xf4, 0x0, 0x0, 0x0, 0x3d, 0xf4,
+    0x0, 0x0, 0x0, 0x3d, 0xf4, 0x0, 0x0, 0x0,
+    0x3d, 0xf9, 0x55, 0x55, 0x55, 0x7d, 0xff, 0xff,
+    0xff, 0xff, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xfd,
+    0xf4, 0x0, 0x0, 0x0, 0x3d, 0xf4, 0x0, 0x0,
+    0x0, 0x3d, 0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+76EF "盯" */
     0xaa, 0xaa, 0x80, 0x0, 0x0, 0x0, 0xf, 0xff,
     0xfc, 0xbf, 0xff, 0xff, 0xfc, 0xfa, 0xab, 0xcf,
@@ -94551,6 +99068,56 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xf0, 0x0, 0x2d, 0x0, 0xf0, 0x0, 0x3, 0xc0,
     0x0, 0xb4, 0x3, 0xc0, 0x0, 0xf, 0x0,
 
+    /* U+76F9 "盹" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xb4, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x2d, 0x0, 0x3, 0xff, 0xfc, 0x0, 0xb, 0x40,
+    0x0, 0xff, 0xff, 0x0, 0x2, 0xe0, 0x0, 0x3c,
+    0x3, 0xcf, 0xff, 0xff, 0xff, 0xef, 0x0, 0xf3,
+    0xff, 0xff, 0xff, 0xfb, 0xc0, 0x3c, 0x0, 0xb,
+    0x40, 0x0, 0xf0, 0xf, 0x0, 0x2, 0xd0, 0x0,
+    0x3c, 0x3, 0xc2, 0x80, 0xb4, 0x9, 0xf, 0xff,
+    0xf0, 0xf0, 0x2d, 0x3, 0xc3, 0xff, 0xfc, 0x3c,
+    0xb, 0x40, 0xf0, 0xf0, 0xf, 0xf, 0x2, 0xd0,
+    0x3c, 0x3c, 0x3, 0xc3, 0xc0, 0xb4, 0xf, 0xf,
+    0x0, 0xf0, 0xf0, 0x2d, 0x3, 0xc3, 0xc0, 0x3c,
+    0x3c, 0xb, 0x40, 0xf0, 0xf5, 0x5f, 0xf, 0x2,
+    0xe0, 0x7c, 0x3f, 0xff, 0xc3, 0xff, 0xff, 0xff,
+    0xf, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xc3, 0xc0,
+    0x3c, 0x0, 0xb, 0x40, 0x0, 0xf0, 0xf, 0x0,
+    0x2, 0xd0, 0x0, 0x3c, 0x3, 0xc0, 0x0, 0xb4,
+    0x0, 0xdf, 0x0, 0xf0, 0x0, 0x2d, 0x0, 0x3f,
+    0xff, 0xfc, 0x0, 0xb, 0x40, 0x1e, 0xff, 0xff,
+    0x0, 0x2, 0xf4, 0x1f, 0x85, 0x55, 0x0, 0x0,
+    0x7f, 0xff, 0xd0, 0x0, 0x0, 0x0, 0x7, 0xff,
+    0xd0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+
+    /* U+76FC "盼" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x2c, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xb8, 0xb8, 0x0, 0xf, 0xff, 0xf0, 0x3,
+    0xd1, 0xf0, 0x0, 0x3f, 0xff, 0xc0, 0xf, 0x3,
+    0xc0, 0x0, 0xf0, 0xf, 0x0, 0xb8, 0xb, 0x80,
+    0x3, 0xc0, 0x3c, 0x3, 0xc0, 0xf, 0x0, 0xf,
+    0x0, 0xf0, 0x2e, 0x0, 0x3e, 0x0, 0x3c, 0x3,
+    0xc0, 0xf0, 0x0, 0x7c, 0x0, 0xf0, 0xf, 0xb,
+    0x80, 0x0, 0xf8, 0x3, 0xff, 0xfc, 0x7c, 0x0,
+    0x0, 0xf4, 0xf, 0xff, 0xf3, 0xd0, 0x0, 0x2,
+    0xf4, 0x3c, 0x3, 0xef, 0x0, 0x0, 0x7, 0xf0,
+    0xf0, 0xf, 0x2f, 0xff, 0xff, 0xf3, 0xc3, 0xc0,
+    0x3c, 0x2f, 0xff, 0xff, 0xc4, 0xf, 0x0, 0xf0,
+    0x7, 0x80, 0xf, 0x0, 0x3f, 0xff, 0xc0, 0x1e,
+    0x0, 0x3c, 0x0, 0xff, 0xff, 0x0, 0xb8, 0x1,
+    0xf0, 0x3, 0xc0, 0x3c, 0x3, 0xd0, 0x7, 0xc0,
+    0xf, 0x0, 0xf0, 0xf, 0x0, 0x1e, 0x0, 0x3c,
+    0x3, 0xc0, 0x7c, 0x0, 0x78, 0x0, 0xf0, 0xf,
+    0x3, 0xe0, 0x1, 0xe0, 0x3, 0xc0, 0x3c, 0x1f,
+    0x0, 0xb, 0x80, 0xf, 0xff, 0xf0, 0xf8, 0x0,
+    0x3e, 0x0, 0x3f, 0xff, 0xcf, 0xc0, 0x6, 0xf4,
+    0x0, 0x0, 0x1, 0xfc, 0x2, 0xff, 0xc0, 0x0,
+    0x0, 0xf, 0xc0, 0x3, 0xf8, 0x0, 0x0, 0x0,
+    0x8, 0x0, 0x0, 0x0, 0x0,
+
     /* U+76FE "盾" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x5, 0x6a, 0xff, 0xf0, 0x0, 0xaf,
@@ -94607,6 +99174,80 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x3d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+7704 "眄" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f, 0xff,
+    0xaf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xeb, 0xff,
+    0xff, 0xff, 0xff, 0xc0, 0x38, 0x0, 0xf, 0x0,
+    0x0, 0xf0, 0xe, 0x0, 0x3, 0xc0, 0x0, 0x3c,
+    0x3, 0x80, 0x0, 0xf0, 0x0, 0xf, 0x0, 0xe2,
+    0xc0, 0x3c, 0x0, 0x3, 0xff, 0xf8, 0xb4, 0xf,
+    0xff, 0xf4, 0xff, 0xfe, 0x2c, 0x3, 0xff, 0xfd,
+    0x3d, 0x57, 0x8f, 0x0, 0xf0, 0xf, 0xf, 0x0,
+    0xe3, 0xc0, 0x3c, 0x3, 0xc3, 0xc0, 0x38, 0xf0,
+    0xf, 0x0, 0xf0, 0xf0, 0xe, 0x3c, 0x3, 0xc0,
+    0x3c, 0x3c, 0x3, 0x8f, 0x0, 0xf0, 0xf, 0xf,
+    0xaa, 0xe3, 0xd0, 0x3d, 0x3, 0xc3, 0xff, 0xf8,
+    0xff, 0xff, 0xff, 0xf0, 0xfa, 0xae, 0x3f, 0xff,
+    0xff, 0xfc, 0x3c, 0x3, 0x80, 0x0, 0x0, 0xf,
+    0xf, 0x0, 0xe0, 0x0, 0x0, 0x3, 0xc3, 0xc0,
+    0x38, 0x0, 0x0, 0x0, 0xf0, 0xf0, 0xe, 0x0,
+    0x0, 0x0, 0x3c, 0x3f, 0xff, 0x80, 0x0, 0x0,
+    0xf, 0xf, 0xff, 0xe0, 0x0, 0x0, 0xf, 0xc0,
+    0x0, 0x0, 0x0, 0xb, 0xff, 0xd0, 0x0, 0x0,
+    0x0, 0x1, 0xff, 0xd0, 0x0, 0x0, 0x0, 0x0,
+    0x10, 0x0, 0x0,
+
+    /* U+7707 "眇" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x3, 0xc0, 0x0, 0xf, 0xff, 0xf0, 0x0, 0x3c,
+    0x0, 0x0, 0xff, 0xff, 0x0, 0x3, 0xc0, 0x40,
+    0xf, 0x0, 0xf0, 0x1d, 0x3c, 0x7c, 0x0, 0xf0,
+    0xf, 0x2, 0xd3, 0xc3, 0xd0, 0xf, 0x0, 0xf0,
+    0x3c, 0x3c, 0x1f, 0x0, 0xf0, 0xf, 0x3, 0xc3,
+    0xc0, 0xf4, 0xf, 0x40, 0xf0, 0xb8, 0x3c, 0x7,
+    0xc0, 0xff, 0xff, 0xf, 0x43, 0xc0, 0x3d, 0xf,
+    0xff, 0xf0, 0xf0, 0x3c, 0x2, 0xf0, 0xf0, 0xf,
+    0x2e, 0x3, 0xc0, 0xf, 0x4f, 0x0, 0xf3, 0xc0,
+    0x3c, 0x0, 0xbc, 0xf0, 0xf, 0x7c, 0x3, 0xc0,
+    0x13, 0x4f, 0x0, 0xff, 0x40, 0x3c, 0xf, 0x40,
+    0xff, 0xff, 0x10, 0x3, 0xc1, 0xf0, 0xf, 0xff,
+    0xf0, 0x0, 0x3c, 0x3d, 0x0, 0xf4, 0xf, 0x0,
+    0x0, 0xf, 0x80, 0xf, 0x0, 0xf0, 0x0, 0x3,
+    0xf0, 0x0, 0xf0, 0xf, 0x0, 0x0, 0xfc, 0x0,
+    0xf, 0x0, 0xf0, 0x0, 0x7f, 0x0, 0x0, 0xf0,
+    0xf, 0x0, 0x2f, 0xc0, 0x0, 0xf, 0xff, 0xf0,
+    0xf, 0xf0, 0x0, 0x0, 0xff, 0xff, 0xb, 0xf8,
+    0x0, 0x0, 0x0, 0x0, 0x1b, 0xfc, 0x0, 0x0,
+    0x0, 0x0, 0xb, 0xfd, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x7d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1,
+    0x0, 0x0, 0x0, 0x0, 0x0,
+
+    /* U+7708 "眈" */
+    0x0, 0x0, 0x0, 0x1, 0xd0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x2e, 0x0, 0x0, 0xaa, 0xaa, 0x0,
+    0x2, 0xd0, 0x0, 0xf, 0xff, 0xf0, 0x0, 0x2d,
+    0x0, 0x0, 0xf5, 0x5f, 0x5, 0x56, 0xe5, 0x54,
+    0xf, 0x0, 0xf0, 0xff, 0xff, 0xff, 0xf0, 0xf0,
+    0xf, 0xf, 0xff, 0xff, 0xff, 0xf, 0x0, 0xf0,
+    0xf0, 0x3d, 0x0, 0xf0, 0xf0, 0xf, 0xf, 0x3,
+    0xc0, 0xf, 0xf, 0xff, 0xf0, 0xf0, 0x3c, 0x0,
+    0xf0, 0xff, 0xff, 0xf, 0x3, 0xc0, 0xf, 0xf,
+    0x0, 0xf0, 0xa0, 0x3d, 0x0, 0xa0, 0xf0, 0xf,
+    0x0, 0x7, 0xf4, 0x0, 0xf, 0x0, 0xf0, 0x0,
+    0xbf, 0x40, 0x0, 0xf0, 0xf, 0x0, 0xf, 0xf4,
+    0x0, 0xf, 0x0, 0xf0, 0x0, 0xff, 0x40, 0x0,
+    0xff, 0xff, 0x0, 0x2e, 0xf4, 0x0, 0xf, 0xff,
+    0xf0, 0x3, 0xcf, 0x40, 0x0, 0xf0, 0xf, 0x0,
+    0x7c, 0xf4, 0x0, 0xf, 0x0, 0xf0, 0xf, 0x4f,
+    0x40, 0x0, 0xf0, 0xf, 0x2, 0xf0, 0xf4, 0x2,
+    0xdf, 0x0, 0xf0, 0x7c, 0xf, 0x40, 0x2c, 0xf0,
+    0xf, 0x1f, 0x80, 0xf4, 0x3, 0xcf, 0xff, 0xf3,
+    0xe0, 0xf, 0x80, 0x7c, 0xff, 0xff, 0xfc, 0x0,
+    0xbf, 0xff, 0x80, 0x0, 0x3f, 0x0, 0x2, 0xff,
+    0xe0, 0x0, 0x1, 0xc0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+7709 "眉" */
     0x0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x1f,
     0xff, 0xff, 0xff, 0xff, 0xff, 0x1, 0xf0, 0x0,
@@ -94631,30 +99272,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x7, 0xc1, 0x40, 0x7, 0xc0, 0x0, 0x0,
     0x7c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
 
-    /* U+770A "眊" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x1a, 0xf0, 0x3f, 0xff, 0xc0,
-    0x6, 0xbf, 0xff, 0x3, 0xff, 0xfc, 0x7f, 0xff,
-    0xfa, 0x40, 0x3c, 0x3, 0xc7, 0xff, 0xd0, 0x0,
-    0x3, 0xc0, 0x3c, 0x0, 0x3c, 0x0, 0x0, 0x3c,
-    0x3, 0xc0, 0x3, 0xc0, 0x0, 0x3, 0xc0, 0x3c,
-    0x0, 0x3c, 0x0, 0x0, 0x3c, 0x3, 0xc0, 0x3,
-    0xc0, 0x5, 0x3, 0xff, 0xfc, 0x15, 0xbf, 0xff,
-    0xf0, 0x3f, 0xff, 0xc7, 0xff, 0xff, 0xff, 0x3,
-    0xc0, 0x3c, 0x7a, 0xbd, 0x0, 0x0, 0x3c, 0x3,
-    0xc0, 0x3, 0xc0, 0x0, 0x3, 0xc0, 0x3c, 0x0,
-    0x3c, 0x0, 0x0, 0x3c, 0x3, 0xc0, 0x3, 0xc0,
-    0x0, 0x3, 0xc0, 0x3c, 0x0, 0x3c, 0x5, 0x6a,
-    0x3f, 0xff, 0xc5, 0xab, 0xff, 0xff, 0xf3, 0xff,
-    0xfd, 0xff, 0xff, 0xff, 0xa9, 0x3c, 0x3, 0xce,
-    0xa7, 0xd0, 0x0, 0x3, 0xc0, 0x3c, 0x0, 0x3c,
-    0x0, 0x0, 0x3c, 0x3, 0xc0, 0x3, 0xc0, 0x2,
-    0x43, 0xc0, 0x3c, 0x0, 0x3c, 0x0, 0x3d, 0x3c,
-    0x7, 0xc0, 0x3, 0xd0, 0x3, 0xc3, 0xff, 0xfc,
-    0x0, 0x3f, 0x41, 0xbc, 0x3f, 0xff, 0xc0, 0x2,
-    0xff, 0xff, 0x80, 0x0, 0x0, 0x0, 0x7, 0xff,
-    0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
     /* U+770B "看" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x15, 0x40, 0x0,
     0x55, 0x5a, 0xab, 0xff, 0xff, 0xc0, 0x0, 0xff,
@@ -94682,6 +99299,29 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xd0, 0x0, 0x0, 0x1e, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+770D "眍" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xff,
+    0xf0, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xf,
+    0xff, 0xff, 0xff, 0xcf, 0x0, 0xf0, 0xf0, 0x0,
+    0x0, 0x0, 0xf0, 0xf, 0xf, 0x0, 0x0, 0x4,
+    0xf, 0x0, 0xf0, 0xf1, 0xd0, 0x2, 0xd0, 0xf0,
+    0xf, 0xf, 0xf, 0x0, 0x3c, 0xf, 0x41, 0xf0,
+    0xf0, 0xbc, 0xb, 0x80, 0xff, 0xff, 0xf, 0x3,
+    0xd0, 0xf0, 0xf, 0xff, 0xf0, 0xf0, 0xf, 0x2e,
+    0x0, 0xf0, 0xf, 0xf, 0x0, 0xbf, 0xc0, 0xf,
+    0x0, 0xf0, 0xf0, 0x3, 0xf8, 0x0, 0xf0, 0xf,
+    0xf, 0x0, 0x1f, 0x40, 0xf, 0x0, 0xf0, 0xf0,
+    0x3, 0xfc, 0x0, 0xff, 0xff, 0xf, 0x0, 0xbf,
+    0xd0, 0xf, 0xff, 0xf0, 0xf0, 0x1f, 0x1f, 0x0,
+    0xf0, 0xf, 0xf, 0x3, 0xd0, 0xf8, 0xf, 0x0,
+    0xf0, 0xf0, 0xbc, 0x3, 0xc0, 0xf0, 0xf, 0xf,
+    0x2f, 0x0, 0x2f, 0xf, 0x0, 0xf0, 0xf7, 0xd0,
+    0x0, 0xf0, 0xf0, 0xf, 0xf, 0x4, 0x0, 0x4,
+    0xf, 0xff, 0xf0, 0xf0, 0x0, 0x0, 0x0, 0xff,
+    0xff, 0xf, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xff, 0xff, 0xff, 0xfc, 0x0, 0x0, 0xf, 0xff,
+    0xff, 0xff, 0xc0,
+
     /* U+7719 "眙" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0xb4, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -94706,6 +99346,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xff, 0xff, 0x0, 0x0, 0x0, 0x3d, 0x0, 0x3,
     0xc0, 0x0, 0x0, 0xf, 0x0, 0x0, 0xf0,
 
+    /* U+771A "眚" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x1f, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x0, 0x3e,
+    0x0, 0x3c, 0x0, 0x0, 0x0, 0x0, 0x7c, 0x0,
+    0x3d, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xe0, 0x3, 0xfa, 0xaa, 0xbe, 0xaa,
+    0xaa, 0x90, 0xb, 0xc0, 0x0, 0x3c, 0x0, 0x0,
+    0x0, 0x1f, 0x6a, 0xaa, 0xbe, 0xaa, 0xaa, 0x40,
+    0x9, 0x3f, 0xff, 0xff, 0xff, 0xff, 0x40, 0x0,
+    0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x3c, 0x0, 0x0, 0x0, 0xbf, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xfc, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xbf, 0xff, 0xff, 0xff, 0xfc, 0x0,
+    0x0, 0xbe, 0xaa, 0xaa, 0xaa, 0xbc, 0x0, 0x0,
+    0xb4, 0x0, 0x0, 0x0, 0x3c, 0x0, 0x0, 0xbe,
+    0xaa, 0xaa, 0xaa, 0xbc, 0x0, 0x0, 0xbf, 0xff,
+    0xff, 0xff, 0xfc, 0x0, 0x0, 0xb4, 0x0, 0x0,
+    0x0, 0x3c, 0x0, 0x0, 0xba, 0xaa, 0xaa, 0xaa,
+    0xbc, 0x0, 0x0, 0xbf, 0xff, 0xff, 0xff, 0xfc,
+    0x0, 0x0, 0xb8, 0x0, 0x0, 0x0, 0x3c, 0x0,
+    0x0, 0xb4, 0x0, 0x0, 0x0, 0x3c, 0x0, 0x0,
+    0xbf, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x0, 0xbe,
+    0xaa, 0xaa, 0xaa, 0xbc, 0x0, 0x0, 0xb4, 0x0,
+    0x0, 0x0, 0x3c, 0x0,
+
     /* U+771F "真" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0xbc, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -94734,6 +99401,59 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x2, 0xe0, 0x4, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+7720 "眠" */
+    0x0, 0x0, 0x2, 0xaa, 0xaa, 0xaa, 0x0, 0xff,
+    0xff, 0xf, 0xff, 0xff, 0xfc, 0x3, 0xff, 0xfc,
+    0x3e, 0xaa, 0xaa, 0xf0, 0xf, 0x0, 0xf0, 0xf0,
+    0x0, 0x3, 0xc0, 0x3c, 0x3, 0xc3, 0xc0, 0x0,
+    0xf, 0x0, 0xf0, 0xf, 0xf, 0x0, 0x0, 0x3c,
+    0x3, 0xc0, 0x3c, 0x3c, 0x0, 0x0, 0xf0, 0xf,
+    0x0, 0xf0, 0xff, 0xff, 0xff, 0xc0, 0x3f, 0xff,
+    0xc3, 0xff, 0xff, 0xff, 0x0, 0xff, 0xff, 0xf,
+    0x0, 0x3c, 0x0, 0x3, 0xc0, 0x3c, 0x3c, 0x0,
+    0xf0, 0x0, 0xf, 0x0, 0xf0, 0xf0, 0x3, 0xc0,
+    0x0, 0x3c, 0x3, 0xc3, 0xc0, 0xf, 0x0, 0x0,
+    0xf0, 0xf, 0xf, 0x55, 0x7d, 0x55, 0x3, 0xc0,
+    0x7c, 0x3f, 0xff, 0xff, 0xfe, 0xf, 0xff, 0xf0,
+    0xff, 0xff, 0xff, 0xf4, 0x3f, 0xff, 0xc3, 0xc0,
+    0x7, 0x80, 0x0, 0xf0, 0xf, 0xf, 0x0, 0x1e,
+    0x0, 0x3, 0xc0, 0x3c, 0x3c, 0x0, 0x3c, 0x0,
+    0xf, 0x0, 0xf0, 0xf0, 0x0, 0xf0, 0x0, 0x3c,
+    0x3, 0xc3, 0xc0, 0x12, 0xd0, 0x70, 0xff, 0xff,
+    0xf, 0x7, 0xc7, 0x82, 0xc3, 0xff, 0xfc, 0x3d,
+    0xff, 0x4f, 0xf, 0x5, 0x55, 0x51, 0xff, 0xf4,
+    0x3f, 0xb8, 0x0, 0x0, 0x7, 0xf8, 0x0, 0x7f,
+    0xc0, 0x0, 0x0, 0xe, 0x0, 0x0, 0x7d, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+
+    /* U+7722 "眢" */
+    0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xf, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f,
+    0x0, 0x5, 0x55, 0x55, 0x40, 0x0, 0x3f, 0xaa,
+    0x9f, 0xff, 0xff, 0x80, 0x0, 0xbf, 0xff, 0xdf,
+    0x95, 0x5b, 0x80, 0x1, 0xf0, 0x3, 0xdf, 0x40,
+    0x7, 0x80, 0x7, 0xe0, 0x7, 0xcf, 0x40, 0x7,
+    0x80, 0x1f, 0xfc, 0xf, 0x4f, 0x41, 0xbf, 0x40,
+    0x3d, 0x3f, 0x2e, 0xf, 0x41, 0xfd, 0x24, 0x14,
+    0xa, 0xbc, 0xf, 0x40, 0x0, 0x3c, 0x0, 0x3,
+    0xf0, 0xb, 0x80, 0x0, 0x7c, 0x0, 0x1f, 0xc0,
+    0x7, 0xff, 0xff, 0xf4, 0x1, 0xfe, 0x0, 0x1,
+    0xbf, 0xff, 0x90, 0x1f, 0xf4, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x3f, 0xbf, 0xff, 0xff, 0xff, 0xfc,
+    0x0, 0x24, 0x3f, 0xff, 0xff, 0xff, 0xfc, 0x0,
+    0x0, 0x3c, 0x0, 0x0, 0x0, 0x3c, 0x0, 0x0,
+    0x3c, 0x0, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x3f,
+    0xff, 0xff, 0xff, 0xfc, 0x0, 0x0, 0x3e, 0xaa,
+    0xaa, 0xaa, 0xbc, 0x0, 0x0, 0x3c, 0x0, 0x0,
+    0x0, 0x3c, 0x0, 0x0, 0x3e, 0xaa, 0xaa, 0xaa,
+    0xbc, 0x0, 0x0, 0x3f, 0xff, 0xff, 0xff, 0xfc,
+    0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x3c, 0x0,
+    0x0, 0x3c, 0x0, 0x0, 0x0, 0x3c, 0x0, 0x0,
+    0x3f, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x0, 0x3e,
+    0xaa, 0xaa, 0xaa, 0xbc, 0x0, 0x0, 0x3c, 0x0,
+    0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+7726 "眦" */
     0x0, 0x0, 0x0, 0x14, 0xe, 0x0, 0x0, 0x0,
     0x0, 0x3, 0xc0, 0xf0, 0x0, 0xff, 0xfc, 0x0,
@@ -94758,6 +99478,30 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xf, 0xff, 0x80, 0x0, 0x0, 0x0, 0x0, 0x3f,
     0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+7728 "眨" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x55,
+    0x55, 0x0, 0x0, 0x1, 0xae, 0x3, 0xff, 0xfc,
+    0x5, 0xaf, 0xff, 0xfc, 0xf, 0xff, 0xf1, 0xff,
+    0xff, 0xfe, 0x40, 0x3c, 0x3, 0xc7, 0xfe, 0x94,
+    0x0, 0x0, 0xf0, 0xf, 0x0, 0x0, 0x40, 0x0,
+    0x3, 0xc0, 0x3c, 0x0, 0xf, 0x40, 0x0, 0xf,
+    0x0, 0xf0, 0x0, 0x2e, 0x0, 0x0, 0x3d, 0x57,
+    0xc0, 0x0, 0x7c, 0x0, 0x0, 0xff, 0xff, 0x0,
+    0x0, 0xf0, 0x0, 0x3, 0xff, 0xfc, 0x3f, 0xff,
+    0xff, 0xf0, 0xf, 0x0, 0xf0, 0xff, 0xff, 0xff,
+    0xc0, 0x3c, 0x3, 0xc0, 0x0, 0x0, 0x3e, 0x0,
+    0xf0, 0xf, 0x0, 0x0, 0x3, 0xf0, 0x3, 0xc0,
+    0x3c, 0x0, 0x0, 0x3f, 0x0, 0xf, 0xff, 0xf0,
+    0x0, 0x3, 0xf0, 0x0, 0x3f, 0xff, 0xc0, 0x0,
+    0x3f, 0x0, 0x0, 0xf0, 0xf, 0x0, 0x3, 0xf0,
+    0x0, 0x3, 0xc0, 0x3c, 0x0, 0x3f, 0x0, 0x0,
+    0xf, 0x0, 0xf0, 0x17, 0xf0, 0x0, 0x0, 0x3c,
+    0x3, 0xc2, 0xff, 0x0, 0x0, 0x0, 0xf0, 0xf,
+    0x2f, 0xf0, 0x0, 0x0, 0x3, 0xff, 0xfc, 0xfb,
+    0xd0, 0x0, 0x0, 0xf, 0xff, 0xff, 0x87, 0xe5,
+    0x0, 0x0, 0x0, 0x0, 0x7c, 0xb, 0xff, 0xff,
+    0xf0, 0x0, 0x0, 0x50, 0x6, 0xbf, 0xff, 0xc0,
+
     /* U+7729 "眩" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x3, 0xd0, 0x0, 0x0, 0x0, 0x0,
@@ -94785,32 +99529,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0x0, 0x70, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
-    /* U+772C "眬" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x3, 0xc0, 0x10, 0x0, 0x15, 0x55, 0x0,
-    0x3c, 0xb, 0x40, 0x3, 0xff, 0xf0, 0x3, 0xc0,
-    0xbd, 0x0, 0x3f, 0xff, 0x0, 0x3c, 0x2, 0xf0,
-    0x3, 0xc0, 0xf0, 0x3, 0xc0, 0xb, 0x80, 0x3c,
-    0xf, 0x2a, 0xbe, 0xaa, 0xba, 0x83, 0xc0, 0xf3,
-    0xff, 0xff, 0xff, 0xfc, 0x3c, 0xf, 0x15, 0xbd,
-    0x7d, 0x55, 0x43, 0xff, 0xf0, 0x7, 0xc3, 0xc0,
-    0x0, 0x3f, 0xff, 0x0, 0x78, 0x3c, 0x1, 0x3,
-    0xd5, 0xf0, 0x7, 0x83, 0xc0, 0x7c, 0x3c, 0xf,
-    0x0, 0xb8, 0x3c, 0xf, 0x83, 0xc0, 0xf0, 0xb,
-    0x43, 0xc1, 0xf0, 0x3c, 0xf, 0x0, 0xf4, 0x3c,
-    0x3d, 0x3, 0xc0, 0xf0, 0xf, 0x3, 0xcb, 0xc0,
-    0x3f, 0xff, 0x0, 0xf0, 0x3d, 0xf0, 0x3, 0xff,
-    0xf0, 0x1e, 0x3, 0xfd, 0x0, 0x3c, 0xf, 0x2,
-    0xd0, 0x3f, 0x80, 0x3, 0xc0, 0xf0, 0x3c, 0x3,
-    0xe0, 0x0, 0x3c, 0xf, 0x3, 0xc0, 0xfc, 0x0,
-    0xd3, 0xc0, 0xf0, 0xb8, 0x7f, 0xc0, 0xf, 0x3c,
-    0xf, 0xf, 0x6f, 0xbc, 0x1, 0xe3, 0xff, 0xf2,
-    0xfb, 0xd3, 0xc0, 0x1e, 0x3f, 0xff, 0x3d, 0x34,
-    0x3e, 0x7, 0xd0, 0x0, 0xb, 0xc0, 0x2, 0xff,
-    0xfc, 0x0, 0x1, 0xf4, 0x0, 0xb, 0xff, 0x40,
-    0x0, 0x1e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x0,
-
     /* U+772D "眭" */
     0x0, 0x0, 0x0, 0x0, 0x78, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x1, 0xf0, 0x0, 0x3, 0xff, 0xf8,
@@ -95467,6 +100185,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0xf, 0x40, 0x0, 0x0, 0x70, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+777E "睾" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x2, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x3, 0xd0, 0x0, 0x0, 0x0, 0x3, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0x40, 0x7, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0x80, 0x7, 0xc0, 0x1d, 0x0, 0xf0,
+    0xb, 0x80, 0x7, 0xc0, 0x1d, 0x0, 0xf0, 0xb,
+    0x80, 0x7, 0xea, 0xbf, 0xaa, 0xfa, 0xaf, 0x80,
+    0x7, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x0,
+    0x0, 0x0, 0x64, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x78, 0x0, 0x0, 0x0, 0x3, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0x0, 0x2, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0x78, 0x0,
+    0x0, 0x0, 0xaa, 0xaa, 0xaa, 0xfe, 0xaa, 0xaa,
+    0xa8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc,
+    0x0, 0x2, 0xe0, 0x0, 0x3d, 0x0, 0x0, 0x0,
+    0x0, 0xf0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x0,
+    0xf0, 0x0, 0x3c, 0x0, 0x0, 0x2, 0xaa, 0xfa,
+    0xaa, 0xfe, 0xaa, 0x40, 0x3, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0x40, 0x0, 0x0, 0x0, 0x78, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x78, 0x0, 0x0,
+    0x0, 0x2f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
+    0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x0,
+    0x0, 0x0, 0x78, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x78, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x78, 0x0, 0x0, 0x0,
+
     /* U+777F "睿" */
     0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -95899,31 +100644,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0xe0, 0x0, 0x0, 0xf0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
 
-    /* U+77AD "瞭" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x7, 0x80, 0x0, 0xf, 0xff, 0xc0, 0x0, 0xb8,
-    0x0, 0x0, 0xff, 0xfc, 0xff, 0xff, 0xff, 0xff,
-    0xf, 0x3, 0xcf, 0xff, 0xff, 0xff, 0xf0, 0xf0,
-    0x3c, 0x0, 0x1e, 0xf0, 0x0, 0xf, 0x3, 0xcb,
-    0x3, 0xcb, 0x41, 0xd0, 0xf0, 0x3c, 0x7c, 0xb8,
-    0x3d, 0xbc, 0xf, 0x3, 0xc1, 0xff, 0x1, 0xff,
-    0x0, 0xff, 0xfc, 0xf, 0xd0, 0x7, 0xd0, 0xf,
-    0xff, 0xc3, 0xfe, 0xaa, 0xbf, 0x80, 0xf0, 0x3d,
-    0xff, 0xff, 0xff, 0xff, 0x4f, 0x3, 0xef, 0xd0,
-    0x0, 0xf, 0xfc, 0xf0, 0x3c, 0x5d, 0x0, 0x0,
-    0xf1, 0x4f, 0x3, 0xc1, 0xff, 0xff, 0xff, 0x0,
-    0xf0, 0x7c, 0x1f, 0xaa, 0xaa, 0xf0, 0xf, 0xff,
-    0xc1, 0xd0, 0x0, 0xf, 0x0, 0xff, 0xfc, 0x1d,
-    0x0, 0x0, 0xf0, 0xf, 0x3, 0xc1, 0xff, 0xff,
-    0xff, 0x0, 0xf0, 0x3c, 0xa, 0xaf, 0xea, 0xa0,
-    0xf, 0x3, 0xc0, 0x10, 0x78, 0x20, 0x0, 0xf0,
-    0x3c, 0xf, 0x7, 0x87, 0xc0, 0xf, 0x3, 0xc2,
-    0xe0, 0x78, 0x3f, 0x0, 0xff, 0xfc, 0xbc, 0x7,
-    0x80, 0xbd, 0xf, 0xff, 0xae, 0x5, 0xf8, 0x2,
-    0xf4, 0x0, 0x1, 0x80, 0xff, 0x40, 0xb, 0x0,
-    0x0, 0x0, 0xa, 0x90, 0x0, 0x0,
-
     /* U+77B0 "瞰" */
     0x0, 0x0, 0x0, 0x0, 0x1, 0x90, 0x0, 0x0,
     0x0, 0x6a, 0xa8, 0xb, 0x40, 0x3, 0xff, 0xe2,
@@ -96028,6 +100748,59 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xb0, 0xe, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+77BD "瞽" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x3, 0x80, 0x0, 0x3, 0xc0, 0x0, 0x1a, 0xab,
+    0xea, 0xa0, 0x3, 0xc0, 0x0, 0x3f, 0xff, 0xff,
+    0xfa, 0xab, 0xea, 0xa0, 0x0, 0x3, 0x80, 0xb,
+    0xff, 0xff, 0xf4, 0xa, 0xab, 0xea, 0x90, 0x3,
+    0xc0, 0x0, 0xf, 0xff, 0xff, 0xe0, 0x3, 0xc0,
+    0x0, 0x0, 0x0, 0x0, 0xb, 0xff, 0xff, 0xd0,
+    0xb, 0xff, 0xff, 0xc6, 0xea, 0xab, 0xd0, 0xb,
+    0x55, 0x56, 0xc1, 0xc0, 0x7, 0xc0, 0xb, 0x0,
+    0x2, 0xc0, 0xf0, 0xf, 0x0, 0xb, 0xff, 0xff,
+    0xc0, 0x7d, 0x7d, 0x0, 0x1, 0xe0, 0xe, 0x0,
+    0x1f, 0xf0, 0x0, 0x0, 0xf0, 0x1e, 0x0, 0x2f,
+    0xf8, 0x0, 0x15, 0xfa, 0xbf, 0xfb, 0xfd, 0x7f,
+    0xe4, 0xbf, 0xff, 0xfa, 0xab, 0x90, 0x6, 0xfc,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x18, 0x0,
+    0xbf, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x0, 0xb9,
+    0x55, 0x55, 0x55, 0x7c, 0x0, 0x0, 0xb9, 0x55,
+    0x55, 0x55, 0x7c, 0x0, 0x0, 0xbf, 0xff, 0xff,
+    0xff, 0xfc, 0x0, 0x0, 0xb4, 0x0, 0x0, 0x0,
+    0x3c, 0x0, 0x0, 0xb9, 0x55, 0x55, 0x55, 0x7c,
+    0x0, 0x0, 0xbf, 0xff, 0xff, 0xff, 0xfc, 0x0,
+    0x0, 0xb4, 0x0, 0x0, 0x0, 0x3c, 0x0, 0x0,
+    0xb9, 0x55, 0x55, 0x55, 0x7c, 0x0, 0x0, 0xbf,
+    0xff, 0xff, 0xff, 0xfc, 0x0, 0x0, 0xb4, 0x0,
+    0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
+    /* U+77BF "瞿" */
+    0x2, 0xaa, 0xaa, 0x42, 0xaa, 0xaa, 0x40, 0xf,
+    0xff, 0xff, 0x1f, 0xff, 0xff, 0x0, 0x3c, 0x0,
+    0x3c, 0x78, 0x0, 0x3c, 0x0, 0xf5, 0x55, 0xf1,
+    0xf5, 0x55, 0xf0, 0x3, 0xff, 0xff, 0xc7, 0xff,
+    0xff, 0xc0, 0xf, 0x0, 0x1f, 0x1f, 0x0, 0x1f,
+    0x0, 0x3c, 0x0, 0x7c, 0x7c, 0x0, 0x7c, 0x0,
+    0xff, 0xff, 0xf1, 0xff, 0xff, 0xf0, 0x3, 0xc0,
+    0x7, 0xc7, 0xc0, 0x7, 0xc0, 0xf, 0x0, 0xf,
+    0x1e, 0x0, 0xf, 0x0, 0x3f, 0xff, 0xfc, 0x7f,
+    0xff, 0xfc, 0x0, 0xab, 0xea, 0x91, 0xaa, 0xaa,
+    0x90, 0x0, 0x1f, 0x40, 0x1f, 0x0, 0x0, 0x0,
+    0x0, 0xfe, 0xaa, 0xbf, 0xaa, 0xaa, 0x80, 0xf,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0xbf, 0x0,
+    0x3, 0xd0, 0x0, 0x0, 0xb, 0xfc, 0x0, 0xf,
+    0x40, 0x0, 0x0, 0xfe, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xb, 0xc7, 0xea, 0xaa, 0xfa, 0xaa, 0xa8,
+    0xc, 0x1f, 0x0, 0x3, 0xd0, 0x0, 0x0, 0x0,
+    0x7e, 0xaa, 0xaf, 0xea, 0xaa, 0x80, 0x1, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0x0, 0x7, 0xc0, 0x0,
+    0xf4, 0x0, 0x0, 0x0, 0x1f, 0x0, 0x3, 0xd0,
+    0x0, 0x0, 0x0, 0x7f, 0xff, 0xff, 0xff, 0xff,
+    0xfc, 0x1, 0xfa, 0xaa, 0xaa, 0xaa, 0xaa, 0x90,
+    0x7, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+77CD "矍" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3,
     0xff, 0xff, 0x83, 0xff, 0xff, 0x80, 0x3, 0xd5,
@@ -96055,6 +100828,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0x5a, 0xbc, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+77D7 "矗" */
+    0x0, 0x0, 0x0, 0x38, 0x0, 0x0, 0x0, 0x5,
+    0x55, 0x55, 0xbd, 0x55, 0x55, 0x40, 0xf, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xd0, 0x0, 0x0, 0x0,
+    0x7c, 0x0, 0x0, 0x0, 0x0, 0x3f, 0xff, 0xff,
+    0xff, 0xf4, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x0,
+    0xb4, 0x0, 0x0, 0x3f, 0xff, 0xff, 0xff, 0xf4,
+    0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0xb4, 0x0,
+    0x0, 0x3f, 0xff, 0xff, 0xff, 0xf4, 0x0, 0x0,
+    0x3d, 0x55, 0x55, 0x55, 0xf4, 0x0, 0x0, 0x3d,
+    0x55, 0x55, 0x55, 0xf4, 0x0, 0x3f, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xf4, 0x15, 0x55, 0x55, 0x55,
+    0x55, 0x55, 0x50, 0x0, 0x7, 0x40, 0x0, 0x3,
+    0x80, 0x0, 0x3f, 0xff, 0xff, 0xdf, 0xff, 0xff,
+    0xf0, 0x0, 0x7, 0x40, 0x0, 0x3, 0x80, 0x0,
+    0x7, 0xff, 0xff, 0x3, 0xff, 0xff, 0xc0, 0x7,
+    0x40, 0x7, 0x43, 0x80, 0x2, 0xc0, 0x7, 0xff,
+    0xff, 0x43, 0xea, 0xab, 0xc0, 0x7, 0x0, 0x7,
+    0x43, 0x95, 0x57, 0xc0, 0x7, 0xff, 0xff, 0x43,
+    0xff, 0xff, 0xc0, 0x7, 0x40, 0x7, 0x43, 0x95,
+    0x57, 0xc0, 0x7, 0xff, 0xff, 0x43, 0xea, 0xab,
+    0xc0, 0x7, 0x40, 0x7, 0x43, 0x95, 0x57, 0xc0,
+    0xb, 0x56, 0xaf, 0xc7, 0x80, 0x2, 0xc0, 0xbf,
+    0xff, 0xfe, 0xaf, 0xff, 0xff, 0xfc, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+77DB "矛" */
     0x0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x3,
     0xff, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x0, 0x0,
@@ -96556,6 +101355,35 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x6b, 0xfc, 0x0, 0x0, 0x0, 0x0, 0x1, 0xff,
     0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+7802 "砂" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x1, 0xf0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x7c, 0x0, 0x0, 0x2a, 0xaa,
+    0xa9, 0x0, 0x1f, 0x0, 0x0, 0xf, 0xff, 0xff,
+    0x80, 0x7, 0xc1, 0x0, 0x2, 0xab, 0xea, 0x90,
+    0xb9, 0xf2, 0xe0, 0x0, 0x0, 0xf0, 0x0, 0x3d,
+    0x7c, 0x7c, 0x0, 0x0, 0xb8, 0x0, 0xf, 0x1f,
+    0xf, 0x80, 0x0, 0x3d, 0x0, 0x7, 0xc7, 0xc0,
+    0xf0, 0x0, 0xf, 0x0, 0x3, 0xe1, 0xf0, 0x2e,
+    0x0, 0xb, 0x80, 0x0, 0xf0, 0x7c, 0x3, 0xc0,
+    0x3, 0xd5, 0x50, 0x7c, 0x1f, 0x0, 0xf8, 0x2,
+    0xff, 0xfc, 0x3e, 0x7, 0xc0, 0x1f, 0x0, 0xfe,
+    0xaf, 0xf, 0x1, 0xf0, 0x3, 0xe0, 0xff, 0x3,
+    0xcb, 0xc0, 0x7c, 0x4, 0x78, 0xbf, 0xc0, 0xf3,
+    0xd0, 0x1f, 0x7, 0xc0, 0x7d, 0xf0, 0x3c, 0xb0,
+    0x7, 0xc3, 0xe0, 0xa, 0x3c, 0xf, 0x0, 0x1,
+    0xf2, 0xf0, 0x0, 0xf, 0x3, 0xc0, 0x0, 0x15,
+    0xf4, 0x0, 0x3, 0xc0, 0xf0, 0x0, 0x1, 0xf8,
+    0x0, 0x0, 0xf0, 0x3c, 0x0, 0x1, 0xf8, 0x0,
+    0x0, 0x3c, 0xf, 0x0, 0x2, 0xf8, 0x0, 0x0,
+    0xf, 0x3, 0xc0, 0x3, 0xf8, 0x0, 0x0, 0x3,
+    0xff, 0xf0, 0xb, 0xf4, 0x0, 0x0, 0x0, 0xff,
+    0xfc, 0x2f, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x1,
+    0xbf, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff,
+    0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1e, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+7809 "砉" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x1, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -96802,6 +101630,60 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x2, 0xff, 0xf4, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+781A "砚" */
+    0x0, 0x0, 0x0, 0x2a, 0xaa, 0xaa, 0xa0, 0x3,
+    0xff, 0xff, 0xcf, 0xff, 0xff, 0xfc, 0x0, 0xff,
+    0xff, 0xf3, 0xe5, 0x55, 0x5f, 0x0, 0x0, 0x7c,
+    0x0, 0xf0, 0x0, 0x3, 0xc0, 0x0, 0x1e, 0x0,
+    0x3c, 0xa, 0x0, 0xf0, 0x0, 0xf, 0x40, 0xf,
+    0x3, 0xd0, 0x3c, 0x0, 0x3, 0xc0, 0x3, 0xc0,
+    0xf4, 0xf, 0x0, 0x2, 0xe0, 0x0, 0xf0, 0x3c,
+    0x3, 0xc0, 0x0, 0xf4, 0x0, 0x3c, 0xf, 0x0,
+    0xf0, 0x0, 0x7f, 0xff, 0xf, 0x3, 0xc0, 0x3c,
+    0x0, 0x3f, 0xff, 0xc3, 0xc0, 0xf0, 0xf, 0x0,
+    0x1f, 0xc0, 0xf0, 0xf0, 0x3c, 0x3, 0xc0, 0xf,
+    0xf0, 0x3c, 0x3c, 0xf, 0x0, 0xf0, 0xb, 0xfc,
+    0xf, 0xf, 0x3, 0xc0, 0x3c, 0x7, 0xdf, 0x3,
+    0xc3, 0xc0, 0xf0, 0xf, 0x0, 0xb3, 0xc0, 0xf0,
+    0xf0, 0x7f, 0x3, 0xc0, 0x0, 0xf0, 0x3c, 0x3c,
+    0x2f, 0xc0, 0xf0, 0x0, 0x3c, 0xf, 0x0, 0xf,
+    0xf0, 0x0, 0x0, 0xf, 0x3, 0xc0, 0xb, 0xbc,
+    0x0, 0x50, 0x3, 0xc0, 0xf0, 0x7, 0xcf, 0x0,
+    0x3c, 0x0, 0xf0, 0x3c, 0x3, 0xe3, 0xc0, 0xf,
+    0x0, 0x3f, 0xff, 0x3, 0xe0, 0xf4, 0x3, 0xc0,
+    0xf, 0xff, 0xc7, 0xf0, 0x3e, 0x2, 0xf0, 0x0,
+    0x0, 0xb, 0xe0, 0xb, 0xff, 0xf4, 0x0, 0x0,
+    0xb, 0xe0, 0x0, 0xbf, 0xf8, 0x0, 0x0, 0x0,
+    0xd0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
+    /* U+781C "砜" */
+    0x0, 0x0, 0x0, 0x15, 0x55, 0x55, 0x50, 0x3,
+    0xff, 0xff, 0x5f, 0xff, 0xff, 0xf8, 0x0, 0xff,
+    0xff, 0xd7, 0x95, 0x55, 0x6e, 0x0, 0x0, 0xb8,
+    0x1, 0xd0, 0x0, 0x3, 0x80, 0x0, 0x2d, 0x0,
+    0x74, 0x0, 0x10, 0xe0, 0x0, 0xf, 0x0, 0x1d,
+    0xf0, 0xf, 0x38, 0x0, 0x3, 0xc0, 0x7, 0x6d,
+    0x7, 0x8e, 0x0, 0x2, 0xe0, 0x1, 0xd3, 0xc2,
+    0xd3, 0x80, 0x0, 0xf0, 0x0, 0x74, 0xb4, 0xf0,
+    0xe0, 0x0, 0x7f, 0xfc, 0x1d, 0xf, 0x78, 0x38,
+    0x0, 0x3f, 0xff, 0x47, 0x43, 0xfd, 0xe, 0x0,
+    0x1f, 0xc2, 0xd1, 0xd0, 0x7f, 0x3, 0x80, 0xf,
+    0xe0, 0xb4, 0x74, 0xf, 0x80, 0xe0, 0xb, 0xf8,
+    0x2d, 0x1d, 0x3, 0xe0, 0x38, 0x3, 0xee, 0xb,
+    0x47, 0x41, 0xfc, 0xe, 0x0, 0x63, 0x82, 0xd2,
+    0xd0, 0xff, 0x43, 0x80, 0x0, 0xe0, 0xb4, 0xb4,
+    0x7c, 0xf0, 0xe0, 0x0, 0x38, 0x2d, 0x2c, 0x2d,
+    0x3d, 0x38, 0x0, 0xe, 0xb, 0x4f, 0xf, 0x7,
+    0x8e, 0x24, 0x3, 0x82, 0xd3, 0xcb, 0x40, 0xf3,
+    0xce, 0x0, 0xe0, 0xb5, 0xe7, 0xc0, 0x2d, 0xf3,
+    0x80, 0x3f, 0xfd, 0xb7, 0xd0, 0x7, 0xfc, 0xd0,
+    0xf, 0xff, 0x7d, 0xb0, 0x0, 0xdb, 0x70, 0x0,
+    0x0, 0x1f, 0x0, 0x0, 0x1, 0xfc, 0x0, 0x0,
+    0xb, 0x80, 0x0, 0x0, 0x3e, 0x0, 0x0, 0x1,
+    0xc0, 0x0, 0x0, 0xb, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+781D "砝" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x1, 0xf0, 0x0, 0x0, 0x0,
@@ -96912,6 +101794,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x1, 0xf0, 0x2d, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x10, 0x0, 0x0,
 
+    /* U+7826 "砦" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x2, 0xd0, 0xb, 0x80, 0x0, 0x0, 0x0, 0xb,
+    0x40, 0x2e, 0x0, 0x4, 0x0, 0xf4, 0x2d, 0x0,
+    0xb8, 0x1, 0xf4, 0x3, 0xd0, 0xb8, 0x2, 0xe0,
+    0x7f, 0xd0, 0xf, 0x42, 0xff, 0xeb, 0x9f, 0xf8,
+    0x0, 0x3d, 0xb, 0xea, 0x6f, 0xfd, 0x0, 0x0,
+    0xf4, 0x2d, 0x0, 0xbe, 0x40, 0x0, 0x3, 0xd0,
+    0xb4, 0x2, 0xe0, 0x0, 0x78, 0xf, 0x42, 0xd1,
+    0x67, 0x80, 0x1, 0xe0, 0x3d, 0x5f, 0xff, 0xdf,
+    0x0, 0xf, 0x4a, 0xff, 0xff, 0xf9, 0x3f, 0xff,
+    0xfc, 0x3f, 0xfe, 0x90, 0x0, 0x7f, 0xff, 0x90,
+    0x94, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xf8, 0x0, 0x3, 0xe0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x3e, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x3, 0xfa, 0xaa, 0xaa, 0xaa, 0x40, 0x0,
+    0x7f, 0xff, 0xff, 0xff, 0xfd, 0x0, 0xb, 0xfe,
+    0x0, 0x0, 0x0, 0xf4, 0x1, 0xfd, 0xf4, 0x0,
+    0x0, 0x3, 0xd0, 0x1f, 0xd3, 0xd0, 0x0, 0x0,
+    0xf, 0x40, 0x38, 0xf, 0x40, 0x0, 0x0, 0x3d,
+    0x0, 0x0, 0x3f, 0xff, 0xff, 0xff, 0xf4, 0x0,
+    0x0, 0xff, 0xff, 0xff, 0xff, 0xd0, 0x0, 0x3,
+    0xd0, 0x0, 0x0, 0xf, 0x40,
+
     /* U+7827 "砧" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x1, 0xf0, 0x0, 0x0, 0x0,
@@ -96940,6 +101848,61 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xf4, 0x0, 0xf, 0x0, 0x0, 0x0, 0x0, 0x3c,
     0x0, 0x3, 0xc0,
 
+    /* U+7829 "砩" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x2, 0xc0, 0xf0, 0x0, 0x0, 0x0,
+    0x0, 0x2, 0xc0, 0xf0, 0x0, 0xa, 0xaa, 0xa8,
+    0x2, 0xc0, 0xf0, 0x0, 0xf, 0xff, 0xfc, 0x2,
+    0xd0, 0xf0, 0x0, 0x5, 0x7e, 0x56, 0xff, 0xff,
+    0xff, 0xf8, 0x0, 0x3c, 0x1, 0xff, 0xff, 0xff,
+    0xf8, 0x0, 0x3c, 0x0, 0x2, 0xc0, 0xf0, 0x38,
+    0x0, 0x78, 0x0, 0x2, 0xc0, 0xf0, 0x38, 0x0,
+    0xf4, 0x0, 0x2, 0xc0, 0xf0, 0x38, 0x0, 0xf0,
+    0x0, 0x2, 0xd0, 0xf0, 0x78, 0x2, 0xe0, 0x1,
+    0xff, 0xff, 0xff, 0xf8, 0x3, 0xff, 0xf2, 0xff,
+    0xff, 0xff, 0xf8, 0xb, 0xff, 0xf2, 0xd2, 0xc0,
+    0xf0, 0x0, 0xf, 0xd0, 0xf2, 0xc2, 0xc0, 0xf0,
+    0x0, 0x2f, 0xd0, 0xf2, 0xc2, 0xc0, 0xf0, 0x0,
+    0x3e, 0xd0, 0xf3, 0xd7, 0xd5, 0xf5, 0x54, 0x29,
+    0xd0, 0xf3, 0xff, 0xff, 0xff, 0xfd, 0x1, 0xd0,
+    0xf2, 0xab, 0xea, 0xfa, 0xbd, 0x1, 0xd0, 0xf0,
+    0x3, 0xc0, 0xf0, 0x1d, 0x1, 0xd0, 0xf0, 0x3,
+    0xc0, 0xf0, 0x2d, 0x1, 0xd0, 0xf0, 0x3, 0x80,
+    0xf0, 0x2c, 0x1, 0xd0, 0xf0, 0xb, 0x40, 0xf0,
+    0x7c, 0x1, 0xff, 0xf0, 0xf, 0x0, 0xf3, 0xfc,
+    0x1, 0xff, 0xf0, 0x3d, 0x0, 0xf1, 0x90, 0x0,
+    0x55, 0x40, 0xf8, 0x0, 0xf0, 0x0, 0x0, 0x0,
+    0x3, 0xf0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0x2,
+    0x80, 0x0, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
+    /* U+782C "砬" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0xf8, 0x0, 0x0, 0x15, 0x55,
+    0x54, 0x0, 0x2f, 0x0, 0x0, 0xf, 0xff, 0xff,
+    0x0, 0x7, 0xc0, 0x0, 0x2, 0xab, 0xea, 0x80,
+    0x1, 0xf4, 0x0, 0x0, 0x1, 0xf0, 0x3, 0xff,
+    0xff, 0xff, 0xe0, 0x0, 0xb8, 0x0, 0xff, 0xff,
+    0xff, 0xf8, 0x0, 0x3d, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x1f, 0x0, 0x0, 0x0, 0x0, 0x10,
+    0x0, 0xb, 0x80, 0x0, 0xf0, 0x0, 0x2e, 0x0,
+    0x3, 0xd0, 0x0, 0x2d, 0x0, 0xb, 0x40, 0x2,
+    0xff, 0xfc, 0x7, 0x80, 0x3, 0xc0, 0x0, 0xff,
+    0xff, 0x0, 0xf0, 0x0, 0xf0, 0x0, 0xbf, 0x3,
+    0xc0, 0x3d, 0x0, 0x78, 0x0, 0x7f, 0xc0, 0xf0,
+    0xb, 0x80, 0x2d, 0x0, 0x3e, 0xf0, 0x3c, 0x1,
+    0xf0, 0xf, 0x0, 0xb, 0x3c, 0xf, 0x0, 0x3c,
+    0x3, 0xc0, 0x0, 0xf, 0x3, 0xc0, 0xf, 0x41,
+    0xe0, 0x0, 0x3, 0xc0, 0xf0, 0x2, 0xe0, 0xf4,
+    0x0, 0x0, 0xf0, 0x3c, 0x0, 0x78, 0x3c, 0x0,
+    0x0, 0x3c, 0xf, 0x0, 0xd, 0x1f, 0x0, 0x0,
+    0xf, 0x3, 0xc0, 0x0, 0xb, 0x80, 0x0, 0x3,
+    0xea, 0xf0, 0x0, 0x3, 0xc0, 0x0, 0x0, 0xff,
+    0xfc, 0xff, 0xff, 0xff, 0xff, 0x40, 0x15, 0x55,
+    0x3f, 0xff, 0xff, 0xff, 0xd0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+782D "砭" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x1, 0x6f, 0x0, 0x7f,
@@ -96994,33 +101957,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x1, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x1f, 0x0, 0x0,
 
-    /* U+7832 "砲" */
-    0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0xb, 0x80, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0xf, 0x0, 0x0, 0x0, 0xb, 0xff, 0xfc,
-    0x1f, 0x0, 0x0, 0x0, 0xb, 0xff, 0xfc, 0x3f,
-    0xff, 0xff, 0xf0, 0x1, 0x6e, 0x54, 0x3f, 0xff,
-    0xff, 0xf0, 0x0, 0x2d, 0x0, 0xb8, 0x0, 0x0,
-    0xf0, 0x0, 0x3c, 0x0, 0xf0, 0x0, 0x0, 0xf0,
-    0x0, 0x3c, 0x3, 0xd0, 0x0, 0x0, 0xf0, 0x0,
-    0xb4, 0x7, 0xd5, 0x55, 0x40, 0xf0, 0x0, 0xf0,
-    0xf, 0xff, 0xff, 0xc0, 0xf0, 0x1, 0xff, 0xf5,
-    0xff, 0xff, 0xc0, 0xf0, 0x3, 0xff, 0xf4, 0xf0,
-    0x3, 0xc0, 0xf0, 0x7, 0xf0, 0xb4, 0xf0, 0x3,
-    0xc0, 0xf0, 0xf, 0xf0, 0x74, 0xf0, 0x3, 0xc0,
-    0xf0, 0x1f, 0xf0, 0x74, 0xf0, 0x3, 0xc0, 0xf0,
-    0x3d, 0xf0, 0x74, 0xf0, 0x3, 0xc0, 0xf0, 0x8,
-    0xf0, 0x74, 0xff, 0xff, 0xc0, 0xf0, 0x0, 0xf0,
-    0x74, 0xff, 0xff, 0xc1, 0xf0, 0x0, 0xf0, 0x74,
-    0xf0, 0x0, 0x17, 0xe0, 0x0, 0xf0, 0x74, 0xf0,
-    0x0, 0xff, 0xc0, 0x0, 0xf0, 0x74, 0xf0, 0x0,
-    0xa9, 0x1c, 0x0, 0xf0, 0x74, 0xf0, 0x0, 0x0,
-    0x2c, 0x0, 0xfa, 0xf4, 0xf4, 0x0, 0x0, 0x3c,
-    0x0, 0xff, 0xf4, 0xbd, 0x0, 0x1, 0xb8, 0x0,
-    0x0, 0x0, 0x7f, 0xff, 0xff, 0xf4, 0x0, 0x0,
-    0x0, 0x1b, 0xff, 0xff, 0x90, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0,
-
     /* U+7834 "破" */
     0x0, 0x0, 0x0, 0x0, 0x3, 0xc0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x55,
@@ -97500,34 +102436,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x2f, 0xc0, 0x0, 0x7f, 0xf8, 0x0, 0x0, 0xd,
     0x0, 0x0, 0x0, 0x0,
 
-    /* U+785A "硚" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0,
-    0x0, 0x0, 0x0, 0x5, 0x6b, 0xfc, 0x0, 0xff,
-    0xff, 0xd7, 0xff, 0xff, 0xff, 0x0, 0x3f, 0xff,
-    0xf4, 0xff, 0xfe, 0x40, 0x0, 0x1, 0x6f, 0x54,
-    0x0, 0xf, 0x0, 0x0, 0x0, 0xb, 0x40, 0x0,
-    0x3, 0xc0, 0x0, 0x0, 0x3, 0xc0, 0x0, 0x1,
-    0xf0, 0x0, 0x0, 0x1, 0xf0, 0x0, 0x0, 0xb8,
-    0x0, 0x0, 0x0, 0xb4, 0x0, 0xff, 0xff, 0xff,
-    0xfd, 0x0, 0x3c, 0x0, 0x2f, 0xff, 0xff, 0xff,
-    0x40, 0x1f, 0xff, 0x80, 0xb, 0x9f, 0x0, 0x0,
-    0xf, 0xff, 0xe0, 0x3, 0xc3, 0xe0, 0x0, 0x7,
-    0xf5, 0x78, 0x3, 0xe0, 0x7d, 0x0, 0x3, 0xfc,
-    0x1e, 0x2, 0xf0, 0x7, 0xd0, 0x2, 0xff, 0x7,
-    0x82, 0xf0, 0x0, 0xbe, 0x0, 0xf7, 0xc1, 0xe3,
-    0xf9, 0x0, 0x5b, 0xf0, 0x4, 0xf0, 0x7b, 0xf7,
-    0xc0, 0x2d, 0x7f, 0x0, 0x3c, 0x1e, 0xf0, 0xf0,
-    0xb, 0x42, 0x80, 0xf, 0x7, 0x80, 0x3c, 0x2,
-    0xd0, 0x0, 0x3, 0xc1, 0xe0, 0xf, 0x0, 0xb4,
-    0x0, 0x0, 0xf0, 0x78, 0x7, 0xc0, 0x2d, 0x0,
-    0x0, 0x3c, 0x1e, 0x2, 0xe0, 0xb, 0x40, 0x0,
-    0xf, 0xff, 0x80, 0xf4, 0x2, 0xd0, 0x0, 0x3,
-    0xff, 0xe0, 0x7c, 0x0, 0xb4, 0x0, 0x0, 0x0,
-    0x0, 0x3d, 0x0, 0x2d, 0x0, 0x0, 0x0, 0x0,
-    0x3e, 0x0, 0xb, 0x40, 0x0, 0x0, 0x0, 0xe,
-    0x0, 0x2, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0,
-
     /* U+785D "硝" */
     0x0, 0x0, 0x0, 0x0, 0x1, 0x40, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x0,
@@ -97745,32 +102653,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xf4, 0x0, 0x0, 0x50, 0x10, 0x24, 0x9, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
 
-    /* U+7881 "碁" */
-    0x0, 0xf, 0x0, 0x0, 0x1, 0xe0, 0x0, 0x0,
-    0xf, 0x0, 0x0, 0x1, 0xf0, 0x0, 0x1f, 0xff,
-    0xff, 0xff, 0xff, 0xff, 0xf0, 0x1f, 0xff, 0xff,
-    0xff, 0xff, 0xff, 0xf0, 0x0, 0xf, 0x0, 0x0,
-    0x1, 0xf0, 0x0, 0x0, 0xf, 0xaa, 0xaa, 0xab,
-    0xf0, 0x0, 0x0, 0xf, 0xff, 0xff, 0xff, 0xf0,
-    0x0, 0x0, 0xf, 0x0, 0x0, 0x1, 0xf0, 0x0,
-    0x0, 0xf, 0xaa, 0xaa, 0xaa, 0xf0, 0x0, 0x0,
-    0xf, 0xff, 0xff, 0xff, 0xf0, 0x0, 0x0, 0xf,
-    0x0, 0x0, 0x1, 0xf0, 0x0, 0x0, 0xf, 0x0,
-    0x0, 0x1, 0xf0, 0x0, 0x7f, 0xff, 0xff, 0xff,
-    0xff, 0xff, 0xfc, 0x3f, 0xff, 0xff, 0xff, 0xff,
-    0xff, 0xf8, 0x0, 0xb, 0xc0, 0x0, 0x3, 0xe0,
-    0x0, 0x0, 0x3e, 0x0, 0x0, 0x0, 0xfc, 0x0,
-    0x2, 0xfe, 0xaa, 0xaa, 0xaa, 0xbf, 0x80, 0x2f,
-    0xef, 0xff, 0xff, 0xff, 0xe7, 0xf8, 0xbf, 0x0,
-    0xbd, 0x0, 0x0, 0x0, 0xfd, 0x74, 0x1, 0xf4,
-    0x0, 0x0, 0x0, 0x18, 0x0, 0xb, 0xff, 0xff,
-    0xff, 0xf0, 0x0, 0x0, 0x7f, 0xff, 0xff, 0xff,
-    0xf0, 0x0, 0x7, 0xff, 0x40, 0x0, 0x0, 0xf0,
-    0x0, 0xf, 0xdb, 0x40, 0x0, 0x0, 0xf0, 0x0,
-    0x5, 0xb, 0xff, 0xff, 0xff, 0xf0, 0x0, 0x0,
-    0xb, 0xea, 0xaa, 0xaa, 0xf0, 0x0, 0x0, 0xb,
-    0x40, 0x0, 0x0, 0xf0, 0x0,
-
     /* U+7887 "碇" */
     0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x3, 0xd0, 0x0, 0x0, 0x0,
@@ -98375,35 +103257,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xff, 0xff, 0xff, 0xff, 0xc0, 0x0, 0x0, 0x3f,
     0xff, 0xff, 0xff, 0xf0,
 
-    /* U+78B6 "碶" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x7, 0x40, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x1, 0xd0, 0x0, 0x0, 0x0, 0x3f, 0xff,
-    0xc5, 0xb9, 0x5f, 0xff, 0xf0, 0xf, 0xff, 0xf3,
-    0xff, 0xf6, 0xbe, 0xbc, 0x0, 0xf, 0x0, 0x5b,
-    0x94, 0xe, 0xf, 0x0, 0x7, 0x80, 0x1, 0xd0,
-    0x3, 0x83, 0xc0, 0x2, 0xd0, 0x5, 0x79, 0x40,
-    0xe0, 0xf0, 0x0, 0xf0, 0x3, 0xff, 0xf0, 0x74,
-    0x3c, 0x0, 0x7c, 0x0, 0x5b, 0x94, 0x2d, 0xf,
-    0x0, 0x2e, 0x0, 0x1, 0xd0, 0xf, 0x3, 0x80,
-    0xf, 0xff, 0x40, 0x78, 0x3, 0xc0, 0xe0, 0x7,
-    0xff, 0xd7, 0xff, 0xfa, 0xd0, 0x78, 0x3, 0xf4,
-    0x74, 0xab, 0xea, 0xf1, 0xbd, 0x1, 0xfd, 0x1d,
-    0x1, 0xd0, 0xf4, 0xbf, 0x0, 0xff, 0x47, 0x40,
-    0x74, 0x2c, 0x4, 0x0, 0x7d, 0xd1, 0xd0, 0x9,
-    0x1e, 0x0, 0x0, 0x9, 0x74, 0x74, 0x0, 0x7,
-    0xc0, 0x0, 0x0, 0x1d, 0x1d, 0x7f, 0xff, 0xff,
-    0xff, 0xd0, 0x7, 0x47, 0x6f, 0xff, 0xff, 0xff,
-    0xf8, 0x1, 0xd1, 0xd0, 0x0, 0x2f, 0x40, 0x0,
-    0x0, 0x74, 0x74, 0x0, 0xf, 0xf0, 0x0, 0x0,
-    0x1d, 0x1d, 0x0, 0xb, 0xfe, 0x0, 0x0, 0x7,
-    0xff, 0x40, 0xf, 0xd3, 0xe0, 0x0, 0x1, 0xff,
-    0xd0, 0x1f, 0xd0, 0x7f, 0x40, 0x0, 0x0, 0x1,
-    0xbf, 0xc0, 0x3, 0xfe, 0x0, 0x0, 0x2, 0xff,
-    0x40, 0x0, 0x1f, 0xf0, 0x0, 0x0, 0x39, 0x0,
-    0x0, 0x0, 0x6c, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0,
-
     /* U+78B9 "碹" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x7, 0xc0, 0x0, 0x0, 0x0,
@@ -98929,30 +103782,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xc2, 0xe0, 0x0, 0xf4, 0x0, 0x0, 0x1, 0x0,
     0x20, 0x0, 0x4,
 
-    /* U+790C "礌" */
-    0x0, 0x0, 0x3, 0xff, 0xff, 0xff, 0xf0, 0xff,
-    0xff, 0x8f, 0xff, 0xff, 0xff, 0xc3, 0xff, 0xfe,
-    0x0, 0x1, 0xd0, 0x0, 0x0, 0x3d, 0x0, 0x0,
-    0x7, 0x40, 0x0, 0x0, 0xf0, 0x6, 0xaa, 0xbf,
-    0xaa, 0xa8, 0x7, 0x80, 0x2f, 0xff, 0xff, 0xff,
-    0xf0, 0x2d, 0x0, 0xb0, 0x1, 0xd0, 0x3, 0xc0,
-    0xf0, 0x2, 0xc0, 0x7, 0x40, 0xf, 0x7, 0xc0,
-    0xb, 0x3f, 0xdd, 0xbf, 0x7c, 0x2f, 0xa9, 0x2c,
-    0x0, 0x74, 0x0, 0xf0, 0xff, 0xfc, 0x11, 0x55,
-    0xd1, 0x51, 0x47, 0xfa, 0xf0, 0xf, 0xf7, 0x6f,
-    0xd0, 0x3f, 0x83, 0xc0, 0x0, 0x1c, 0x0, 0x2,
-    0xfe, 0xf, 0x0, 0x0, 0x0, 0x0, 0xb, 0xb8,
-    0x3c, 0x2f, 0xff, 0xff, 0xfe, 0x5, 0xe0, 0xf0,
-    0xbf, 0xff, 0xff, 0xf8, 0x7, 0x83, 0xc2, 0xc0,
-    0x1d, 0x1, 0xe0, 0x1e, 0xf, 0xb, 0x0, 0x74,
-    0x7, 0x80, 0x78, 0x3c, 0x2f, 0xff, 0xff, 0xfe,
-    0x1, 0xe0, 0xf0, 0xbf, 0xff, 0xff, 0xf8, 0x7,
-    0x83, 0xc2, 0xc0, 0x1d, 0x1, 0xe0, 0x1e, 0xf,
-    0xb, 0x0, 0x74, 0x7, 0x80, 0x7f, 0xfc, 0x2c,
-    0x1, 0xd0, 0x1e, 0x1, 0xff, 0xf0, 0xbf, 0xff,
-    0xff, 0xf8, 0x0, 0x0, 0x2, 0xff, 0xff, 0xff,
-    0xe0, 0x0, 0x0, 0xb, 0x0, 0x0, 0x7, 0x80,
-
     /* U+7913 "礓" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0xbf, 0xff, 0xff, 0xff, 0x40, 0xff,
@@ -99035,35 +103864,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xc0, 0x7f, 0x40, 0x7, 0x40, 0x0, 0x0, 0x40,
     0xe, 0x40, 0x0, 0x0,
 
-    /* U+7933 "礳" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x1, 0xe0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x2a, 0xaa,
-    0x80, 0x0, 0xf, 0x40, 0x0, 0xf, 0xff, 0xf2,
-    0xff, 0xff, 0xff, 0xff, 0x0, 0xf, 0x40, 0xbf,
-    0xff, 0xff, 0xff, 0x80, 0x3, 0xc0, 0x2c, 0x7,
-    0x0, 0x34, 0x0, 0x1, 0xd0, 0xb, 0x1, 0xc0,
-    0xe, 0x0, 0x0, 0xb0, 0x2, 0xca, 0xfa, 0x6b,
-    0xe9, 0x0, 0x3c, 0x0, 0xb3, 0xff, 0xdf, 0xff,
-    0x80, 0x1d, 0x0, 0x2c, 0xf, 0x40, 0x7c, 0x0,
-    0xb, 0xff, 0x8b, 0xb, 0xfc, 0x3f, 0xc0, 0x3,
-    0xff, 0xe2, 0xc7, 0xb7, 0x7b, 0xbc, 0x2, 0xf4,
-    0x78, 0xbb, 0x9c, 0x3c, 0xe3, 0xc0, 0xfd, 0xe,
-    0x2e, 0xc7, 0x2d, 0x38, 0x30, 0xbf, 0x43, 0x8b,
-    0x1, 0xc1, 0xe, 0x0, 0x3d, 0xd0, 0xe3, 0xc0,
-    0x60, 0x1, 0x0, 0xd, 0x74, 0x38, 0xfb, 0xff,
-    0xff, 0xff, 0x80, 0x1d, 0xe, 0x3d, 0xab, 0xfa,
-    0xaa, 0x90, 0x7, 0x43, 0x8f, 0x0, 0xf0, 0x0,
-    0x0, 0x1, 0xd0, 0xe3, 0x80, 0xf4, 0x0, 0x0,
-    0x0, 0x74, 0x39, 0xe0, 0xff, 0xff, 0xfd, 0x0,
-    0x1d, 0xe, 0xb4, 0xff, 0xaa, 0xaf, 0x40, 0x7,
-    0xeb, 0xbe, 0xfb, 0x40, 0x1, 0xd0, 0x1, 0xff,
-    0xef, 0xb1, 0xd0, 0x0, 0x74, 0x0, 0x0, 0xb,
-    0x80, 0x7f, 0xff, 0xfd, 0x0, 0x0, 0x3, 0xc0,
-    0x1f, 0xaa, 0xaf, 0x40, 0x0, 0x0, 0x60, 0x7,
-    0x40, 0x1, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0,
-
     /* U+7934 "礴" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0xb0, 0xb, 0x0, 0x0, 0x0,
@@ -99118,6 +103918,23 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x7f, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+793B "礻" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xe0, 0x0,
+    0x0, 0x0, 0x7c, 0x0, 0x0, 0x0, 0xf, 0x40,
+    0x0, 0x0, 0x2, 0xe0, 0x0, 0x0, 0x0, 0x7c,
+    0x0, 0x0, 0xff, 0xff, 0xfc, 0x0, 0x3f, 0xff,
+    0xff, 0x0, 0x0, 0x0, 0xf, 0xc0, 0x0, 0x0,
+    0x7, 0xd0, 0x0, 0x0, 0x3, 0xe0, 0x0, 0x0,
+    0x3, 0xf0, 0x0, 0x0, 0x2, 0xf4, 0x0, 0x0,
+    0x1, 0xfc, 0x0, 0x0, 0x1, 0xff, 0xd0, 0x0,
+    0x1, 0xff, 0xfe, 0x0, 0x1, 0xfa, 0xe7, 0xf4,
+    0x1, 0xf8, 0xb8, 0x3f, 0x82, 0xf8, 0x2e, 0x2,
+    0xf6, 0xf8, 0xb, 0x80, 0x2c, 0x34, 0x2, 0xe0,
+    0x0, 0x0, 0x0, 0xb8, 0x0, 0x0, 0x0, 0x2e,
+    0x0, 0x0, 0x0, 0xb, 0x80, 0x0, 0x0, 0x2,
+    0xe0, 0x0, 0x0, 0x0, 0xb8, 0x0, 0x0, 0x0,
+    0x2e, 0x0, 0x0, 0x0, 0xb, 0x80, 0x0,
+
     /* U+793C "礼" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x2e, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0x1f,
@@ -99310,34 +104127,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x55, 0x55, 0x55, 0x50, 0x0, 0x3c, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+794E "祎" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0xb0, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0xb4,
-    0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x78, 0x0,
-    0x0, 0x3c, 0x0, 0x0, 0x0, 0x3c, 0x1, 0x55,
-    0x7d, 0x55, 0x54, 0x0, 0x3c, 0x3, 0xff, 0xff,
-    0xff, 0xfd, 0x2f, 0xff, 0xc3, 0xff, 0xff, 0xff,
-    0xfc, 0x2f, 0xff, 0xc0, 0x0, 0x3c, 0x0, 0x0,
-    0x0, 0x7, 0xc0, 0x0, 0x3c, 0x0, 0x0, 0x0,
-    0xf, 0x80, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x1f,
-    0x0, 0xff, 0xff, 0xff, 0xf0, 0x0, 0x3d, 0x0,
-    0xff, 0xff, 0xff, 0xf0, 0x0, 0xbc, 0x0, 0x55,
-    0x7d, 0x55, 0x50, 0x1, 0xfe, 0x0, 0x0, 0x3c,
-    0x0, 0x0, 0x3, 0xff, 0xd0, 0x0, 0x3c, 0x0,
-    0x0, 0xf, 0xff, 0xf4, 0x0, 0x3c, 0x0, 0x0,
-    0x3f, 0x7c, 0xb3, 0xff, 0xff, 0xff, 0xf4, 0xbd,
-    0x3c, 0x3, 0xff, 0xff, 0xff, 0xf4, 0x34, 0x3c,
-    0x0, 0x0, 0x7c, 0x0, 0xf4, 0x0, 0x3c, 0x0,
-    0x0, 0x3c, 0x0, 0xf4, 0x0, 0x3c, 0x0, 0x0,
-    0x3c, 0x0, 0xf0, 0x0, 0x3c, 0x0, 0x0, 0x3c,
-    0x0, 0xf0, 0x0, 0x3c, 0x0, 0x0, 0x3c, 0x2,
-    0xf0, 0x0, 0x3c, 0x0, 0x0, 0x3c, 0xbf, 0xe0,
-    0x0, 0x3c, 0x0, 0x0, 0x3c, 0x3f, 0x80, 0x0,
-    0x3c, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x3c,
-    0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x3c, 0x0,
-    0x0, 0x3c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0,
-
     /* U+7953 "祓" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0xb, 0x0, 0x1, 0xf0, 0x1c, 0x0, 0x0, 0x2,
@@ -99562,6 +104351,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0xf0, 0x0, 0x0, 0xf4, 0x0, 0x0, 0x3,
     0xc0, 0x0, 0x3, 0xd0, 0x0,
 
+    /* U+795F "祟" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1,
+    0x40, 0x0, 0xf0, 0x0, 0x14, 0x0, 0xf, 0x0,
+    0x3, 0xc0, 0x1, 0xf0, 0x0, 0x3c, 0x0, 0xf,
+    0x0, 0x7, 0xc0, 0x0, 0xfa, 0xaa, 0xbe, 0xaa,
+    0xaf, 0x0, 0x3, 0xff, 0xff, 0xff, 0xff, 0xfc,
+    0x0, 0x0, 0x0, 0x7, 0xc0, 0x0, 0x0, 0x0,
+    0x50, 0x0, 0xf, 0x0, 0x0, 0x50, 0x3, 0xc0,
+    0x0, 0x3c, 0x0, 0x7, 0xc0, 0xf, 0x40, 0x1,
+    0xf0, 0x0, 0x1f, 0x0, 0x3f, 0xff, 0xff, 0xff,
+    0xff, 0xfc, 0x0, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
+    0xa0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f,
+    0xff, 0xff, 0xff, 0xff, 0xf0, 0x0, 0x3f, 0xff,
+    0xff, 0xff, 0xff, 0xc0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0x8f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0,
+    0x0, 0x0, 0x3d, 0x0, 0x0, 0x0, 0x0, 0xe,
+    0x0, 0xf4, 0x18, 0x0, 0x0, 0x1, 0xfc, 0x3,
+    0xd0, 0xfe, 0x0, 0x0, 0x7f, 0xc0, 0xf, 0x40,
+    0xbf, 0x80, 0x1f, 0xf4, 0x0, 0x3d, 0x0, 0x2f,
+    0xe1, 0xfe, 0x0, 0x6b, 0xf0, 0x0, 0xb, 0xf3,
+    0x80, 0x3, 0xff, 0x80, 0x0, 0x2, 0x40, 0x0,
+    0x6, 0x90, 0x0, 0x0, 0x0,
+
     /* U+7960 "祠" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xc0,
@@ -99645,6 +104460,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x3d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+7967 "祧" */
+    0x0, 0x2c, 0x0, 0x3, 0xc0, 0xf0, 0x0, 0x0,
+    0xf, 0x40, 0x0, 0xf0, 0x3c, 0x0, 0x0, 0x1,
+    0xe0, 0x0, 0x3c, 0xf, 0x0, 0x0, 0x0, 0x3c,
+    0x0, 0xf, 0x3, 0xc0, 0x0, 0x0, 0xf, 0x47,
+    0x83, 0xc0, 0xf0, 0x2c, 0x2, 0xff, 0xfc, 0xf0,
+    0xf0, 0x3c, 0xf, 0x0, 0xbf, 0xff, 0x2e, 0x3c,
+    0xf, 0xb, 0x80, 0x0, 0x7, 0xc3, 0xcf, 0x3,
+    0xc3, 0xc0, 0x0, 0x3, 0xd0, 0xf7, 0xc0, 0xf1,
+    0xe0, 0x0, 0x1, 0xf0, 0x1e, 0xf0, 0x3c, 0xf0,
+    0x0, 0x0, 0xf4, 0x3, 0x7c, 0xf, 0x78, 0x0,
+    0x0, 0xbc, 0x0, 0xf, 0x3, 0xc0, 0x0, 0x0,
+    0x7f, 0x80, 0x3, 0xc0, 0xf8, 0x0, 0x0, 0x3f,
+    0xfc, 0x3, 0xf0, 0x3f, 0xd0, 0x0, 0x3f, 0xfb,
+    0x87, 0xfc, 0xf, 0x7d, 0x0, 0x3f, 0x7c, 0x9f,
+    0xef, 0x3, 0xc7, 0xc0, 0x3f, 0x1f, 0xf, 0xd3,
+    0xc0, 0xf0, 0xbc, 0x7, 0x7, 0xc3, 0xc0, 0xf0,
+    0x3c, 0xb, 0x40, 0x1, 0xf0, 0x0, 0x7c, 0xf,
+    0x0, 0x40, 0x0, 0x7c, 0x0, 0x2e, 0x3, 0xc0,
+    0x0, 0x0, 0x1f, 0x0, 0xf, 0x40, 0xf0, 0x5,
+    0x0, 0x7, 0xc0, 0xb, 0xc0, 0x3c, 0x2, 0xc0,
+    0x1, 0xf0, 0x7, 0xd0, 0xf, 0x0, 0xb0, 0x0,
+    0x7c, 0x7, 0xf0, 0x3, 0xd0, 0x3c, 0x0, 0x1f,
+    0x7, 0xf0, 0x0, 0xff, 0xff, 0x0, 0x7, 0xc7,
+    0xf0, 0x0, 0xf, 0xfe, 0x0, 0x1, 0xf0, 0x70,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+7968 "票" */
     0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x7f,
     0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x0, 0x1,
@@ -99808,63 +104651,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+797C "祼" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x1e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3,
-    0xc0, 0xf, 0xff, 0xff, 0xff, 0x0, 0x0, 0xf0,
-    0x3, 0xff, 0xff, 0xff, 0xc0, 0x0, 0x2d, 0x0,
-    0xf0, 0xf, 0x0, 0xf0, 0x2, 0xaf, 0xe4, 0x3c,
-    0x3, 0xc0, 0x3c, 0x0, 0xff, 0xfd, 0xf, 0x0,
-    0xf0, 0xf, 0x0, 0x2a, 0xaf, 0x43, 0xff, 0xff,
-    0xff, 0xc0, 0x0, 0x7, 0xc0, 0xff, 0xff, 0xff,
-    0xf0, 0x0, 0x2, 0xe0, 0x3c, 0x3, 0xc0, 0x3c,
-    0x0, 0x1, 0xf0, 0xf, 0x0, 0xf0, 0xf, 0x0,
-    0x0, 0xf4, 0x3, 0xc0, 0x3c, 0x3, 0xc0, 0x0,
-    0xbc, 0x0, 0xff, 0xff, 0xff, 0xf0, 0x0, 0x7f,
-    0xc0, 0x3f, 0xff, 0xff, 0xfc, 0x0, 0x3f, 0xfc,
-    0x0, 0x0, 0xf0, 0x0, 0x0, 0x3f, 0xff, 0xc0,
-    0x0, 0x3c, 0x0, 0x0, 0x2f, 0x3c, 0xf7, 0xff,
-    0xff, 0xff, 0xfe, 0xf, 0xf, 0x4, 0xff, 0xff,
-    0xff, 0xff, 0x82, 0x43, 0xc0, 0x0, 0x7, 0xfd,
-    0x0, 0x0, 0x0, 0xf0, 0x0, 0x3, 0xff, 0xc0,
-    0x0, 0x0, 0x3c, 0x0, 0x2, 0xff, 0xf8, 0x0,
-    0x0, 0xf, 0x0, 0x3, 0xf3, 0xcf, 0xc0, 0x0,
-    0x3, 0xc0, 0x3, 0xf0, 0xf0, 0xfd, 0x0, 0x0,
-    0xf0, 0xb, 0xf0, 0x3c, 0xf, 0xe0, 0x0, 0x3c,
-    0x1f, 0xe0, 0xf, 0x0, 0xbf, 0x40, 0xf, 0xf,
-    0xd0, 0x3, 0xc0, 0x7, 0xc0, 0x3, 0xc0, 0x80,
-    0x0, 0xf0, 0x0, 0x10, 0x0, 0xf0, 0x0, 0x0,
-    0x3c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0,
-
-    /* U+797E "祾" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0xb0, 0x0, 0x0, 0x2d, 0x0, 0x0, 0x0, 0xf4,
-    0x0, 0x0, 0x2d, 0x0, 0x0, 0x0, 0xb8, 0x0,
-    0x0, 0x2d, 0x0, 0x0, 0x0, 0x7c, 0x3, 0xff,
-    0xff, 0xff, 0xf0, 0x0, 0x3c, 0x3, 0xff, 0xff,
-    0xff, 0xf0, 0x2f, 0xff, 0xc0, 0x0, 0x2d, 0x0,
-    0x0, 0x1f, 0xff, 0xc0, 0x0, 0x2d, 0x0, 0x0,
-    0x0, 0x7, 0xc0, 0x0, 0x2d, 0x0, 0x0, 0x0,
-    0xf, 0x4f, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x1f,
-    0xf, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x3d, 0x0,
-    0x7, 0x0, 0xa0, 0x0, 0x0, 0x7c, 0x0, 0x2f,
-    0x40, 0xfd, 0x0, 0x0, 0xfc, 0x1, 0xfd, 0x0,
-    0x2f, 0xd0, 0x3, 0xff, 0xb, 0xf2, 0x80, 0x3,
-    0xf8, 0xb, 0xff, 0xcf, 0x87, 0xc0, 0x0, 0x7c,
-    0x2f, 0x7e, 0xf4, 0xf, 0xff, 0xff, 0x40, 0xbd,
-    0x7c, 0xb4, 0x3f, 0xff, 0xff, 0x80, 0x34, 0x7c,
-    0x10, 0xbd, 0x0, 0xf, 0x40, 0x0, 0x7c, 0x2,
-    0xff, 0x0, 0x3e, 0x0, 0x0, 0x7c, 0xb, 0xdf,
-    0x80, 0xbc, 0x0, 0x0, 0x7c, 0x2f, 0x3, 0xe2,
-    0xf0, 0x0, 0x0, 0x7c, 0xc, 0x0, 0xff, 0xc0,
-    0x0, 0x0, 0x7c, 0x0, 0x0, 0xbf, 0x80, 0x0,
-    0x0, 0x7c, 0x0, 0x1b, 0xfb, 0xf8, 0x0, 0x0,
-    0x7c, 0x6, 0xff, 0x80, 0xbf, 0xe4, 0x0, 0x7c,
-    0x3f, 0xf8, 0x0, 0xb, 0xfd, 0x0, 0x7c, 0x3e,
-    0x40, 0x0, 0x0, 0x6c, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0,
-
     /* U+7980 "禀" */
     0x0, 0x0, 0x0, 0x60, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0xf4, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -99977,34 +104763,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x1, 0xe0, 0x0, 0x0, 0x0, 0xb4, 0x0, 0x0,
     0x78, 0x0, 0x0,
 
-    /* U+7987 "禇" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x74, 0x0, 0x0, 0xb4, 0x0, 0x0, 0x0, 0x78,
-    0x0, 0x0, 0xb4, 0x0, 0x0, 0x0, 0x3c, 0x0,
-    0x0, 0xb4, 0x0, 0x78, 0x0, 0x3c, 0x0, 0xaa,
-    0xfe, 0xa8, 0xf4, 0x0, 0x3d, 0x0, 0xbf, 0xff,
-    0xf9, 0xf0, 0xf, 0xff, 0xe0, 0x0, 0xb8, 0x3,
-    0xd0, 0xf, 0xff, 0xe0, 0x0, 0xb4, 0xb, 0xc0,
-    0x0, 0x3, 0xe0, 0x0, 0xb4, 0x1f, 0x0, 0x0,
-    0x7, 0xc0, 0x0, 0xb4, 0x3d, 0x0, 0x0, 0xf,
-    0x83, 0xff, 0xff, 0xff, 0xff, 0x0, 0x1f, 0x3,
-    0xff, 0xff, 0xff, 0xff, 0x0, 0x3e, 0x0, 0x0,
-    0xf, 0xc0, 0x0, 0x0, 0xff, 0x40, 0x0, 0x3f,
-    0x0, 0x0, 0x2, 0xff, 0xd0, 0x1, 0xfc, 0x0,
-    0x0, 0xb, 0xfe, 0xf4, 0xb, 0xff, 0xff, 0xd0,
-    0x1f, 0x6d, 0x7c, 0x7f, 0xff, 0xff, 0xd0, 0x7e,
-    0x2d, 0x26, 0xfd, 0x0, 0x2, 0xd0, 0x38, 0x2d,
-    0x1f, 0xfd, 0x0, 0x2, 0xd0, 0x0, 0x2d, 0xf,
-    0x2d, 0x0, 0x2, 0xd0, 0x0, 0x2d, 0x0, 0x2f,
-    0xff, 0xff, 0xd0, 0x0, 0x2d, 0x0, 0x2f, 0xff,
-    0xff, 0xd0, 0x0, 0x2d, 0x0, 0x2d, 0x0, 0x2,
-    0xd0, 0x0, 0x2d, 0x0, 0x2d, 0x0, 0x2, 0xd0,
-    0x0, 0x2d, 0x0, 0x2f, 0xaa, 0xab, 0xd0, 0x0,
-    0x2d, 0x0, 0x2f, 0xff, 0xff, 0xd0, 0x0, 0x2d,
-    0x0, 0x2d, 0x0, 0x3, 0xd0, 0x0, 0x2d, 0x0,
-    0x2d, 0x0, 0x2, 0xd0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0,
-
     /* U+798A "禊" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x60, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x0, 0xb4,
@@ -100088,32 +104846,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0xa0, 0x10, 0xd, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+79A4 "禤" */
-    0x0, 0x24, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1,
-    0xf0, 0xf, 0xff, 0xff, 0xff, 0xe0, 0x3, 0xc0,
-    0x3f, 0xff, 0xff, 0xff, 0xc0, 0xb, 0x40, 0xe0,
-    0xb0, 0x3c, 0xf, 0x5, 0x6e, 0x53, 0x82, 0xc0,
-    0xf0, 0x3c, 0x3f, 0xff, 0xce, 0xb, 0x3, 0xc0,
-    0xf0, 0xaa, 0xaf, 0x38, 0x2c, 0xf, 0x3, 0xc0,
-    0x0, 0xb8, 0xfa, 0xfe, 0xbe, 0xaf, 0x0, 0x3,
-    0xc3, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x2e, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x1, 0xf0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0xf, 0x80, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0xfd, 0x3, 0xff, 0xf2, 0xff, 0xfc,
-    0xb, 0xfc, 0xf, 0xff, 0xcb, 0xff, 0xf0, 0xbf,
-    0xfc, 0x0, 0xf, 0x0, 0x3, 0xcb, 0xeb, 0xfc,
-    0x60, 0x3c, 0x24, 0xf, 0x3e, 0x2d, 0xb6, 0xe0,
-    0xf0, 0xf4, 0x3c, 0x60, 0xb4, 0x43, 0xd3, 0xc0,
-    0xf0, 0xf0, 0x2, 0xd0, 0x3, 0x4f, 0x1, 0xc3,
-    0xc0, 0xb, 0x40, 0x1, 0x7c, 0x0, 0x5f, 0x0,
-    0x2d, 0x0, 0x3f, 0xf0, 0x1f, 0xfc, 0x0, 0xb4,
-    0xb, 0xe3, 0xc7, 0xf8, 0xf0, 0x2, 0xd1, 0xfd,
-    0xf, 0x3e, 0x3, 0xc0, 0xb, 0x43, 0x40, 0x3c,
-    0x40, 0xf, 0x0, 0x2d, 0x0, 0x1, 0xf0, 0x0,
-    0x7c, 0x0, 0xb4, 0x0, 0xff, 0xc0, 0x7f, 0xe0,
-    0x2, 0xd0, 0x3, 0xf8, 0x0, 0xf9, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x0,
-
     /* U+79A7 "禧" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x60, 0x0, 0x0, 0x1e, 0x0, 0x0, 0x0, 0xb4,
@@ -100194,6 +104926,27 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x1f, 0xe0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0,
 
+    /* U+79BA "禺" */
+    0x1f, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x7f, 0xff,
+    0xff, 0xff, 0xff, 0x1, 0xf0, 0x0, 0xf0, 0x0,
+    0x3c, 0x7, 0xc0, 0x3, 0xc0, 0x0, 0xf0, 0x1f,
+    0x0, 0xf, 0x0, 0x3, 0xc0, 0x7f, 0xff, 0xff,
+    0xff, 0xff, 0x1, 0xff, 0xff, 0xff, 0xff, 0xfc,
+    0x7, 0xc0, 0x3, 0xc0, 0x0, 0xf0, 0x1f, 0x0,
+    0xf, 0x0, 0x3, 0xc0, 0x7c, 0x0, 0x3d, 0x0,
+    0x1f, 0x1, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x6,
+    0xaa, 0xab, 0xea, 0xaa, 0xa0, 0x0, 0x0, 0xf,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x3d, 0x0, 0x0,
+    0xf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbf, 0xff,
+    0xff, 0xff, 0xff, 0xfe, 0xf4, 0x0, 0xf, 0x0,
+    0x0, 0xbb, 0xd0, 0x0, 0x3c, 0xa, 0x2, 0xef,
+    0x40, 0x0, 0xf0, 0x3d, 0xb, 0xbd, 0x0, 0x3,
+    0xe6, 0xfc, 0x2e, 0xf4, 0xff, 0xff, 0xff, 0xf4,
+    0xbb, 0xd3, 0xff, 0xfa, 0x51, 0xf2, 0xef, 0x40,
+    0x0, 0x0, 0x2, 0x8f, 0xbd, 0x0, 0x0, 0x0,
+    0x1a, 0xfc, 0xf4, 0x0, 0x0, 0x0, 0x3f, 0x90,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+79BB "离" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x2, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -100573,34 +105326,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x2f, 0xff, 0x80, 0x0, 0x1, 0xe0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
-    /* U+79DD "秝" */
-    0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x10, 0x0,
-    0x0, 0x1b, 0xf0, 0x0, 0x16, 0xbf, 0x40, 0xa,
-    0xff, 0xff, 0x1b, 0xff, 0xff, 0xf4, 0x0, 0xff,
-    0xf9, 0x2, 0xff, 0xfe, 0x40, 0x0, 0x5, 0xf,
-    0x0, 0x15, 0x43, 0xc0, 0x0, 0x0, 0x0, 0xf0,
-    0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0xf, 0x0,
-    0x0, 0x3, 0xc0, 0x0, 0x0, 0x0, 0xf0, 0x0,
-    0x0, 0x3c, 0x0, 0x0, 0xf, 0xff, 0xff, 0x0,
-    0x3, 0xc0, 0x0, 0x0, 0xff, 0xff, 0xf7, 0xff,
-    0xff, 0xff, 0xe0, 0x0, 0x1f, 0x40, 0x7f, 0xff,
-    0xff, 0xfe, 0x0, 0x2, 0xf0, 0x0, 0x0, 0xfe,
-    0x0, 0x0, 0x0, 0x3f, 0x90, 0x0, 0x1f, 0xf0,
-    0x0, 0x0, 0x7, 0xff, 0x40, 0x3, 0xff, 0x80,
-    0x0, 0x0, 0xff, 0xbc, 0x0, 0xbf, 0xfd, 0x0,
-    0x0, 0x1e, 0xf2, 0xf0, 0xf, 0x7d, 0xf0, 0x0,
-    0x3, 0xcf, 0xf, 0x3, 0xe3, 0xcb, 0x80, 0x0,
-    0xb8, 0xf0, 0x0, 0xfc, 0x3c, 0x3e, 0x0, 0x1f,
-    0xf, 0x0, 0x2f, 0x3, 0xc1, 0xf8, 0x3, 0xd0,
-    0xf0, 0xb, 0xd0, 0x3c, 0x7, 0xe0, 0x18, 0xf,
-    0x3, 0xf4, 0x3, 0xc0, 0x2f, 0x80, 0x0, 0xf0,
-    0x3d, 0x0, 0x3c, 0x0, 0xbc, 0x0, 0xf, 0x1,
-    0x40, 0x3, 0xc0, 0x2, 0x0, 0x0, 0xf0, 0x0,
-    0x0, 0x3c, 0x0, 0x0, 0x0, 0xf, 0x0, 0x0,
-    0x3, 0xc0, 0x0, 0x0, 0x0, 0xf0, 0x0, 0x0,
-    0x3c, 0x0, 0x0, 0x0, 0xb, 0x0, 0x0, 0x3,
-    0xc0, 0x0, 0x0,
-
     /* U+79DF "租" */
     0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x6f, 0xc7, 0xff, 0xff, 0xf4, 0x0, 0xaf,
@@ -100959,34 +105684,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xd0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+79FE "秾" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x3, 0xd0, 0x0, 0x0, 0x0,
-    0x0, 0x40, 0x0, 0xf0, 0x0, 0x0, 0x0, 0x6f,
-    0xf0, 0x0, 0x3c, 0x0, 0x0, 0xf, 0xff, 0xf8,
-    0x0, 0xf, 0x0, 0x0, 0x3, 0xff, 0x80, 0x3f,
-    0xff, 0xff, 0xfe, 0x0, 0x0, 0xe0, 0xf, 0xff,
-    0xff, 0xff, 0x80, 0x0, 0x38, 0x3, 0xc0, 0xb4,
-    0x0, 0xe0, 0x0, 0xe, 0x0, 0xf0, 0x3d, 0x0,
-    0x38, 0x0, 0x7, 0x80, 0x3c, 0x1f, 0x80, 0xe,
-    0x0, 0xff, 0xff, 0xcf, 0xb, 0xf0, 0x2, 0x40,
-    0x3f, 0xff, 0xf0, 0x3, 0xfc, 0x0, 0x40, 0x0,
-    0x3e, 0x0, 0x2, 0xeb, 0x40, 0xb4, 0x0, 0x1f,
-    0x90, 0x0, 0xf1, 0xe0, 0xbd, 0x0, 0xb, 0xfd,
-    0x0, 0xb8, 0x3c, 0xfd, 0x0, 0x3, 0xff, 0xc0,
-    0x7d, 0xb, 0xfd, 0x0, 0x2, 0xee, 0x7c, 0x3f,
-    0x41, 0xfd, 0x0, 0x0, 0xf7, 0x8b, 0x3f, 0xd0,
-    0x3e, 0x0, 0x0, 0xf4, 0xe0, 0x3f, 0x74, 0x7,
-    0xc0, 0x0, 0x7c, 0x38, 0x3f, 0x1d, 0x0, 0xf8,
-    0x0, 0x3d, 0xe, 0xf, 0x7, 0x40, 0x1f, 0x40,
-    0x1f, 0x3, 0x81, 0x1, 0xd0, 0x2, 0xf4, 0x1,
-    0x0, 0xe0, 0x0, 0x74, 0x0, 0x3f, 0x40, 0x0,
-    0x38, 0x0, 0x1d, 0x2e, 0x3, 0xf4, 0x0, 0xe,
-    0x0, 0x7, 0xff, 0xc0, 0x3f, 0x40, 0x3, 0x80,
-    0x3, 0xff, 0x40, 0x3, 0xc0, 0x0, 0xe0, 0x0,
-    0xfd, 0x0, 0x0, 0x0, 0x0, 0x38, 0x0, 0x24,
-    0x0, 0x0, 0x0,
-
     /* U+7A00 "稀" */
     0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x80, 0x0,
     0x0, 0x1b, 0x3e, 0x40, 0x1, 0xfc, 0x0, 0x1b,
@@ -101172,6 +105869,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xf0, 0x0, 0xf, 0xff, 0x40, 0x1, 0xe0, 0x90,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+7A14 "稔" */
+    0x0, 0x0, 0x0, 0x0, 0xf, 0x0, 0x0, 0x0,
+    0x0, 0x1b, 0x40, 0xb, 0xf0, 0x0, 0x0, 0x5b,
+    0xff, 0xd0, 0x7, 0xfe, 0x0, 0x0, 0x3f, 0xff,
+    0x90, 0x3, 0xd3, 0xd0, 0x0, 0xa, 0x9f, 0x0,
+    0x3, 0xe0, 0x7d, 0x0, 0x0, 0x3, 0xc0, 0x3,
+    0xf0, 0xb, 0xd0, 0x0, 0x0, 0xf0, 0x3, 0xf2,
+    0xc0, 0xbe, 0x0, 0x0, 0x3c, 0x7, 0xf0, 0xb8,
+    0xb, 0xf0, 0xa, 0xaf, 0xa7, 0xf0, 0xf, 0x0,
+    0x7f, 0x43, 0xff, 0xfe, 0x60, 0x1, 0xd0, 0x7,
+    0xd0, 0x56, 0xf5, 0x0, 0x0, 0x10, 0x0, 0x10,
+    0x0, 0xbc, 0x1, 0xff, 0xff, 0xff, 0x0, 0x0,
+    0x3f, 0x40, 0x7f, 0xff, 0xff, 0xc0, 0x0, 0x2f,
+    0xf4, 0x0, 0x0, 0x2, 0xe0, 0x0, 0xf, 0xff,
+    0x40, 0x0, 0x0, 0xf0, 0x0, 0xb, 0x7d, 0xf4,
+    0x0, 0x74, 0xb4, 0x0, 0x7, 0xcf, 0x1e, 0x2,
+    0x4f, 0x2c, 0x0, 0x3, 0xd3, 0xc2, 0x39, 0xe2,
+    0xd0, 0x2c, 0x2, 0xf0, 0xf0, 0x1e, 0x78, 0x3c,
+    0xf, 0x40, 0xf0, 0x3c, 0xb, 0x5e, 0xb, 0x41,
+    0xf0, 0x4, 0xf, 0x3, 0xc7, 0x80, 0x49, 0x3d,
+    0x0, 0x3, 0xc1, 0xe1, 0xe0, 0x3, 0xc7, 0x80,
+    0x0, 0xf0, 0xf0, 0x78, 0x0, 0xe0, 0xf0, 0x0,
+    0x3c, 0x7c, 0x1f, 0x0, 0xb8, 0x2c, 0x0, 0xf,
+    0xd, 0x3, 0xff, 0xfc, 0x0, 0x0, 0x3, 0xc0,
+    0x0, 0x7f, 0xfd, 0x0, 0x0, 0x0, 0xf0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+7A17 "稗" */
     0x0, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x7, 0xc0, 0x0, 0x0, 0x0,
@@ -101366,6 +106090,35 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x1, 0xa0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+7A39 "稹" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x0,
+    0x1b, 0x40, 0x0, 0xf0, 0x0, 0x0, 0x2b, 0xff,
+    0xea, 0xaa, 0xbe, 0xaa, 0xa0, 0xf, 0xfe, 0x43,
+    0xff, 0xff, 0xff, 0xfc, 0x1, 0x47, 0x40, 0x0,
+    0x3, 0xc0, 0x0, 0x0, 0x1, 0xd0, 0x0, 0x0,
+    0xf0, 0x0, 0x0, 0x0, 0x74, 0x2, 0xaa, 0xbe,
+    0xaa, 0x0, 0x0, 0x1d, 0x0, 0xff, 0xff, 0xff,
+    0xc0, 0x2, 0xaf, 0xea, 0x3c, 0x0, 0x0, 0xf0,
+    0x0, 0xff, 0xff, 0xcf, 0xaa, 0xaa, 0xbc, 0x0,
+    0x0, 0xf8, 0x3, 0xff, 0xff, 0xff, 0x0, 0x0,
+    0x3d, 0x0, 0xf0, 0x0, 0x3, 0xc0, 0x0, 0x2f,
+    0x40, 0x3c, 0x0, 0x0, 0xf0, 0x0, 0xf, 0xfc,
+    0xf, 0xff, 0xff, 0xfc, 0x0, 0x7, 0xff, 0xc3,
+    0xea, 0xaa, 0xaf, 0x0, 0x3, 0xdd, 0x7c, 0xf0,
+    0x0, 0x3, 0xc0, 0x2, 0xe7, 0x4b, 0x3e, 0xaa,
+    0xaa, 0xf0, 0x0, 0xf1, 0xd0, 0xf, 0xff, 0xff,
+    0xfc, 0x0, 0xb8, 0x74, 0x3, 0xc0, 0x0, 0xf,
+    0x0, 0x3c, 0x1d, 0x0, 0xf0, 0x0, 0x3, 0xc0,
+    0x9, 0x7, 0x4b, 0xff, 0xff, 0xff, 0xff, 0xc0,
+    0x1, 0xd1, 0xaa, 0xaa, 0xaa, 0xaa, 0xa0, 0x0,
+    0x74, 0x0, 0xa, 0x0, 0x90, 0x0, 0x0, 0x1d,
+    0x0, 0x1f, 0xc0, 0xbf, 0x40, 0x0, 0x7, 0x40,
+    0xbf, 0x80, 0x7, 0xfd, 0x0, 0x1, 0xd2, 0xfe,
+    0x0, 0x0, 0xb, 0xe0, 0x0, 0x74, 0x78, 0x0,
+    0x0, 0x0, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+7A3B "稻" */
     0x0, 0x0, 0x4, 0x0, 0x0, 0x1, 0x64, 0x0,
     0x6b, 0xf0, 0x56, 0xaf, 0xff, 0xe1, 0xff, 0xff,
@@ -101475,34 +106228,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x2, 0xe0, 0x0, 0x7, 0xf4, 0x0, 0x1e, 0x1,
     0xd0, 0x0, 0x2, 0x40,
 
-    /* U+7A42 "穂" */
-    0x0, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x1,
-    0xbf, 0x80, 0x0, 0xf0, 0x0, 0x0, 0x3f, 0xff,
-    0xdb, 0xff, 0xff, 0xff, 0xf4, 0xf, 0xfe, 0x3,
-    0xff, 0xff, 0xff, 0xfe, 0x0, 0x7, 0x80, 0x0,
-    0x3, 0xc0, 0x0, 0x0, 0x1, 0xe0, 0x0, 0x0,
-    0xf0, 0x0, 0x0, 0x0, 0x78, 0x2, 0xaa, 0xbe,
-    0xaa, 0x80, 0x0, 0x1e, 0x0, 0xff, 0xff, 0xff,
-    0xf0, 0x3, 0xff, 0xff, 0x38, 0x3, 0xc0, 0x3c,
-    0x0, 0xff, 0xff, 0xce, 0x0, 0xf0, 0xf, 0x0,
-    0x15, 0xf9, 0x53, 0x80, 0x3c, 0x3, 0xc0, 0x0,
-    0x3e, 0x0, 0xff, 0xff, 0xff, 0xf0, 0x0, 0x1f,
-    0x90, 0x3f, 0xff, 0xff, 0xfc, 0x0, 0xf, 0xfe,
-    0xe, 0x0, 0xf0, 0xf, 0x0, 0x7, 0xfb, 0xe3,
-    0x80, 0x3c, 0x3, 0xc0, 0x3, 0xde, 0x3d, 0xfa,
-    0xaf, 0xaa, 0xf0, 0x1, 0xe7, 0x87, 0x3f, 0xff,
-    0xff, 0xfc, 0x0, 0xf1, 0xe0, 0x0, 0x0, 0x40,
-    0x0, 0x0, 0xb8, 0x78, 0x0, 0x0, 0x78, 0x0,
-    0x0, 0x3c, 0x1e, 0x1, 0x8f, 0xf, 0x40, 0xd0,
-    0x1, 0x7, 0x80, 0xf3, 0xc0, 0xf0, 0x3c, 0x0,
-    0x1, 0xe0, 0x78, 0xf0, 0x18, 0x47, 0xc0, 0x0,
-    0x78, 0x3c, 0x3c, 0x0, 0x38, 0xf4, 0x0, 0x1e,
-    0x1e, 0xf, 0x40, 0x2d, 0x1f, 0x0, 0x7, 0x8f,
-    0x2, 0xff, 0xff, 0x3, 0x80, 0x1, 0xe0, 0x40,
-    0x2f, 0xff, 0x40, 0x0, 0x0, 0x78, 0x0, 0x0,
-    0x0, 0x0, 0x0,
-
     /* U+7A46 "穆" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x0,
@@ -101559,32 +106284,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xaa, 0xaa, 0xaf, 0x0, 0x0, 0x78, 0x3, 0xc0,
     0x0, 0x3, 0xc0,
 
-    /* U+7A6D "穭" */
-    0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0xf, 0x40, 0x0, 0x0, 0x0, 0x1b,
-    0xd0, 0x3f, 0xaa, 0xa8, 0x0, 0x2f, 0xff, 0xd0,
-    0xbf, 0xff, 0xfc, 0x0, 0x3f, 0xf9, 0x2, 0xf0,
-    0x0, 0xb8, 0x0, 0x14, 0xb4, 0xf, 0xc0, 0x2,
-    0xe0, 0x0, 0x0, 0xb4, 0x1f, 0xff, 0xff, 0xff,
-    0xd0, 0x0, 0xb4, 0xb, 0xff, 0xff, 0xff, 0xd0,
-    0x15, 0xb5, 0x43, 0xc0, 0x2c, 0x2, 0xd0, 0x3f,
-    0xff, 0xe3, 0xea, 0xbe, 0xab, 0xd0, 0x3f, 0xff,
-    0xd3, 0xff, 0xff, 0xff, 0xd0, 0x0, 0xf4, 0x3,
-    0xc0, 0x2c, 0x2, 0xd0, 0x0, 0xf4, 0x3, 0xc0,
-    0x2c, 0x2, 0xd0, 0x2, 0xf4, 0x3, 0xff, 0xff,
-    0xff, 0xd0, 0x3, 0xff, 0x2, 0xaa, 0xaa, 0xaa,
-    0x90, 0xb, 0xff, 0x8b, 0x7, 0x2, 0xc0, 0xf0,
-    0xf, 0xb7, 0xdf, 0x3, 0x81, 0xd0, 0x78, 0x3e,
-    0xb5, 0xed, 0x3, 0x80, 0xe0, 0x3c, 0x7c, 0xb4,
-    0x3e, 0xaa, 0xaa, 0xaa, 0x9d, 0xb4, 0xb4, 0x13,
-    0xff, 0xff, 0xff, 0xc0, 0x10, 0xb4, 0x3, 0xc0,
-    0x0, 0x3, 0xc0, 0x0, 0xb4, 0x3, 0xc0, 0x0,
-    0x3, 0xc0, 0x0, 0xb4, 0x3, 0xff, 0xff, 0xff,
-    0xc0, 0x0, 0xb4, 0x3, 0xea, 0xaa, 0xab, 0xc0,
-    0x0, 0xb4, 0x3, 0xc0, 0x0, 0x3, 0xc0, 0x0,
-    0xb4, 0x3, 0xff, 0xff, 0xff, 0xc0, 0x0, 0xb4,
-    0x3, 0xff, 0xff, 0xff, 0xc0, 0x0, 0xb4, 0x3,
-    0xc0, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x0, 0x0,
+    /* U+7A57 "穗" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x0,
+    0x6b, 0x80, 0x0, 0xf0, 0x0, 0x0, 0x2f, 0xff,
+    0xea, 0xaa, 0xbe, 0xaa, 0xa8, 0xf, 0xff, 0x43,
+    0xff, 0xff, 0xff, 0xff, 0x1, 0x47, 0x80, 0x0,
+    0x3, 0xc0, 0x0, 0x0, 0x1, 0xe0, 0x0, 0x0,
+    0xf0, 0x0, 0x0, 0x0, 0x78, 0x7, 0xff, 0xff,
+    0xff, 0xc0, 0x0, 0x1e, 0x1, 0xea, 0xaf, 0xaa,
+    0xf0, 0x2, 0xaf, 0xea, 0x74, 0x3, 0xc0, 0x2c,
+    0x0, 0xff, 0xff, 0xde, 0xaa, 0xfa, 0xaf, 0x0,
+    0x15, 0xf9, 0x57, 0xff, 0xff, 0xff, 0xc0, 0x0,
+    0x3e, 0x1, 0xd0, 0xf, 0x0, 0xb0, 0x0, 0x1f,
+    0x90, 0x74, 0x3, 0xc0, 0x2c, 0x0, 0xf, 0xfd,
+    0x1f, 0xff, 0xff, 0xff, 0x0, 0x7, 0xff, 0xc2,
+    0xaa, 0xbe, 0xab, 0x80, 0x3, 0xde, 0x7c, 0x0,
+    0xf, 0x2, 0xd0, 0x1, 0xe7, 0x8b, 0x0, 0x3,
+    0xd5, 0xbc, 0x0, 0xf1, 0xe0, 0xbf, 0xff, 0xff,
+    0xff, 0xc0, 0xb8, 0x78, 0xf, 0xaa, 0xb9, 0x55,
+    0xb4, 0x3c, 0x1e, 0x1, 0x8a, 0x1f, 0x0, 0x98,
+    0x0, 0x7, 0x80, 0xf3, 0xc1, 0xe0, 0x3c, 0x0,
+    0x1, 0xe0, 0x78, 0xf0, 0x2c, 0x8b, 0x80, 0x0,
+    0x78, 0x3c, 0x3c, 0x1, 0x38, 0xf0, 0x0, 0x1e,
+    0x1e, 0xf, 0x40, 0x1e, 0x1e, 0x0, 0x7, 0x8f,
+    0x2, 0xff, 0xff, 0x43, 0xc0, 0x1, 0xe0, 0x40,
+    0x2f, 0xff, 0x40, 0x40, 0x0, 0x78, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
     /* U+7A70 "穰" */
@@ -101906,6 +106631,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x3, 0xc0, 0x0, 0x0, 0x0,
 
+    /* U+7A86 "窆" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x1, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xf4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xb8, 0x0, 0x0, 0x0, 0xf, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xd0, 0xf, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xd0, 0xf, 0x40, 0x0, 0x0, 0x0, 0x3,
+    0xd0, 0xf, 0x40, 0x6e, 0x2, 0xf9, 0x3, 0xd0,
+    0x5, 0x1b, 0xfd, 0x1, 0xbf, 0xf5, 0x40, 0x6,
+    0xff, 0x90, 0x0, 0x2, 0xff, 0xd0, 0x3f, 0xe4,
+    0x0, 0x0, 0x55, 0xbf, 0xf4, 0x15, 0xaa, 0xbf,
+    0xff, 0xff, 0xf8, 0x20, 0x2, 0xff, 0xff, 0xea,
+    0x54, 0x0, 0x0, 0x0, 0x50, 0x0, 0x78, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x7c, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x0,
+    0x2, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x0, 0x2,
+    0xff, 0xff, 0xff, 0xff, 0xfd, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xb, 0xf8, 0x0, 0x0, 0x0, 0x0,
+    0x1, 0xbf, 0x80, 0x0, 0x0, 0x0, 0x0, 0x6f,
+    0xf4, 0x0, 0x0, 0x0, 0x0, 0xb, 0xfe, 0x0,
+    0x0, 0x0, 0x0, 0xa6, 0xff, 0x90, 0x0, 0x0,
+    0x0, 0x7, 0xff, 0xe4, 0x0, 0x0, 0x0, 0x0,
+    0x2f, 0xef, 0x90, 0x0, 0x0, 0x0, 0x0, 0xbe,
+    0x7, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x38, 0x0,
+    0x6f, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+7A88 "窈" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x7, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -102220,33 +106972,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x78, 0x0, 0xb, 0xfc, 0x20, 0x0, 0x0,
     0x78, 0x0, 0x0, 0x14,
 
-    /* U+7AA3 "窣" */
-    0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0xb8, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x7c, 0x0, 0x0, 0x0, 0xf, 0xff, 0xff,
-    0xff, 0xff, 0xff, 0xd0, 0xf, 0xff, 0xff, 0xff,
-    0xff, 0xff, 0xe0, 0xf, 0x0, 0x0, 0x0, 0x0,
-    0x2, 0xe0, 0xf, 0x0, 0x6d, 0x0, 0xf9, 0x2,
-    0xe0, 0x5, 0x7, 0xfd, 0x0, 0xff, 0xe0, 0x40,
-    0x2, 0xff, 0xe0, 0x0, 0xb, 0xff, 0x40, 0xb,
-    0xfd, 0x0, 0x78, 0x0, 0x6f, 0xc0, 0x7, 0x40,
-    0x0, 0x7c, 0x0, 0x2, 0x80, 0x0, 0x0, 0x0,
-    0x3d, 0x0, 0x0, 0x0, 0xf, 0xff, 0xff, 0xff,
-    0xff, 0xff, 0xd0, 0xb, 0xff, 0xff, 0xff, 0xff,
-    0xff, 0xc0, 0x0, 0x1, 0xf0, 0x0, 0xf, 0x0,
-    0x0, 0x0, 0x3, 0xe0, 0x0, 0x2f, 0x0, 0x0,
-    0x0, 0xb, 0xf4, 0x0, 0x7f, 0x0, 0x0, 0x0,
-    0x2f, 0xbe, 0x1, 0xff, 0xe0, 0x0, 0x0, 0xfd,
-    0x1f, 0x87, 0xe1, 0xfd, 0x0, 0x7, 0xf4, 0x3,
-    0x83, 0x80, 0x2f, 0x80, 0x3, 0xc0, 0x0, 0x78,
-    0x0, 0x7, 0x40, 0x1, 0x0, 0x0, 0x7c, 0x0,
-    0x0, 0x0, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff,
-    0xfc, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc,
-    0x0, 0x0, 0x0, 0x7c, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x7c, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x7c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x7c, 0x0, 0x0, 0x0,
-
     /* U+7AA5 "窥" */
     0x0, 0x0, 0x0, 0x78, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x1, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -102324,6 +107049,60 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x7, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x0, 0x1f,
     0x0, 0x0, 0x0, 0xf, 0x0,
 
+    /* U+7AAC "窬" */
+    0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x7c, 0x0, 0x0, 0x0, 0xa, 0xaa, 0xaa,
+    0xff, 0xaa, 0xaa, 0x90, 0xf, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xe0, 0xf, 0x0, 0x0, 0x0, 0x0,
+    0x2, 0xe0, 0xf, 0x0, 0x18, 0x0, 0x64, 0x2,
+    0xe0, 0xa, 0x2, 0xfc, 0x0, 0xbf, 0x91, 0x90,
+    0x0, 0x7f, 0xe0, 0xfe, 0x1b, 0xfe, 0x40, 0xf,
+    0xfd, 0xb, 0xef, 0xc0, 0x6f, 0xe0, 0xf, 0x80,
+    0x7f, 0x42, 0xf8, 0x1, 0xe0, 0x0, 0x7, 0xf8,
+    0x0, 0x7f, 0x90, 0x0, 0x1, 0xbf, 0xd0, 0x0,
+    0x7, 0xfe, 0x0, 0x2f, 0xf8, 0xff, 0xff, 0xfd,
+    0x7f, 0xf8, 0xbf, 0x40, 0xaa, 0xaa, 0xa8, 0x2,
+    0xfd, 0x20, 0x0, 0x0, 0x0, 0x0, 0x9, 0x18,
+    0x0, 0xff, 0xff, 0xf0, 0xb0, 0xf, 0x0, 0x0,
+    0xfa, 0xaa, 0xf0, 0xb0, 0xf, 0x0, 0x0, 0xe0,
+    0x0, 0xf0, 0xb0, 0xf, 0x0, 0x0, 0xff, 0xff,
+    0xf0, 0xb0, 0xf, 0x0, 0x0, 0xfa, 0xaa, 0xf0,
+    0xb0, 0xf, 0x0, 0x0, 0xe0, 0x0, 0xf0, 0xb0,
+    0xf, 0x0, 0x0, 0xfa, 0xaa, 0xf0, 0xb0, 0xf,
+    0x0, 0x0, 0xff, 0xff, 0xf0, 0xb0, 0xf, 0x0,
+    0x0, 0xe0, 0x0, 0xf0, 0x0, 0x1e, 0x0, 0x0,
+    0xe0, 0x16, 0xe0, 0xa, 0xbd, 0x0, 0x0, 0xe0,
+    0x1f, 0x80, 0xf, 0xe4, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
+    /* U+7AAD "窭" */
+    0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x3, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xb, 0x80, 0x0, 0x0, 0x2, 0xaa, 0xaa, 0xbf,
+    0xaa, 0xaa, 0xa0, 0xf, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xc0, 0x3d, 0x0, 0x0, 0x0, 0x0, 0xf,
+    0x0, 0xf0, 0x1, 0xe0, 0x1d, 0x0, 0x3c, 0x1,
+    0x40, 0xbf, 0x80, 0xbf, 0xe4, 0x60, 0x1, 0xbf,
+    0xf4, 0x0, 0x2f, 0xfe, 0x40, 0x7f, 0xfd, 0x2,
+    0xe0, 0xf, 0xff, 0x40, 0xe4, 0x7e, 0xb, 0x81,
+    0xfc, 0x1c, 0x0, 0x0, 0x7d, 0x2e, 0xf, 0x80,
+    0x0, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0,
+    0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x0,
+    0x2, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x1, 0xff,
+    0x6e, 0x7f, 0xd0, 0x0, 0x6, 0xff, 0xd0, 0xb8,
+    0x1b, 0xfe, 0x41, 0xff, 0xd0, 0x11, 0xe0, 0x1,
+    0xbf, 0xe3, 0x90, 0x2, 0xe0, 0x0, 0x0, 0x6,
+    0xb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x3f,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x0, 0x2f,
+    0x0, 0x0, 0x7d, 0x0, 0x0, 0x2, 0xfe, 0x90,
+    0x7, 0xd0, 0x0, 0x0, 0x1, 0x6f, 0xfe, 0xfd,
+    0x0, 0x0, 0x0, 0x0, 0x6, 0xff, 0xfe, 0x40,
+    0x0, 0x0, 0x5b, 0xff, 0xe5, 0xbf, 0xf8, 0x3,
+    0xff, 0xff, 0xa4, 0x0, 0x1b, 0xfd, 0xb, 0xe9,
+    0x40, 0x0, 0x0, 0x0, 0x70, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+7AB3 "窳" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0xb, 0x80, 0x0, 0x0, 0x0, 0x0,
@@ -102403,34 +107182,29 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf1,
     0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x0,
 
-    /* U+7AD1 "竑" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0xf, 0x0, 0x0, 0x7, 0x80, 0x0, 0x0, 0x3,
-    0xc0, 0x0, 0x2, 0xd0, 0x0, 0x0, 0x0, 0xb4,
-    0x0, 0x0, 0xf4, 0x0, 0x0, 0x0, 0x1e, 0x0,
-    0x0, 0x3c, 0x0, 0x0, 0x0, 0x7, 0xc0, 0x15,
-    0x5f, 0x95, 0x55, 0x40, 0xff, 0xff, 0xeb, 0xff,
-    0xff, 0xff, 0xf0, 0x3f, 0xff, 0xfa, 0xab, 0xfa,
-    0xaa, 0xa8, 0x0, 0x0, 0x0, 0x0, 0xb4, 0x0,
-    0x0, 0x0, 0x40, 0x19, 0x0, 0x3d, 0x0, 0x0,
-    0x0, 0xb4, 0xb, 0x40, 0xf, 0x0, 0x0, 0x0,
-    0x1d, 0x2, 0xd0, 0x3, 0xc0, 0xb4, 0x0, 0x3,
-    0x80, 0xf0, 0x1, 0xe0, 0x3c, 0x0, 0x0, 0xf0,
-    0x3c, 0x0, 0xb4, 0x1f, 0x0, 0x0, 0x3c, 0xf,
-    0x0, 0x3c, 0xf, 0x40, 0x0, 0xb, 0x7, 0x80,
-    0xf, 0x3, 0xc0, 0x0, 0x2, 0xd1, 0xe0, 0xb,
-    0x82, 0xe0, 0x0, 0x0, 0x78, 0xb4, 0x3, 0xc0,
-    0xf0, 0x80, 0x0, 0xe, 0x3c, 0x1, 0xf0, 0x7c,
-    0xf4, 0x0, 0x3, 0xcf, 0x0, 0xb8, 0x3d, 0x1f,
-    0x0, 0x0, 0x47, 0x84, 0x3c, 0x1f, 0x3, 0xd0,
-    0x0, 0x2, 0xff, 0x6e, 0xf, 0x40, 0x7c, 0x2,
-    0xbf, 0xff, 0xdf, 0xb, 0xc0, 0xf, 0x0, 0xff,
-    0xe5, 0xb, 0x83, 0xc0, 0x2, 0xe0, 0x15, 0x0,
-    0x7, 0xc7, 0xfb, 0xff, 0xfc, 0x0, 0x0, 0x3,
-    0xe2, 0xff, 0xff, 0xff, 0x40, 0x0, 0x2, 0xf0,
-    0x29, 0x50, 0x2, 0xe0, 0x0, 0x0, 0x20, 0x0,
-    0x0, 0x0, 0x60, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0,
+    /* U+7AD6 "竖" */
+    0x0, 0x0, 0xb0, 0x0, 0x0, 0x0, 0x0, 0x1e,
+    0x3, 0xd1, 0x55, 0x55, 0x55, 0x0, 0x7c, 0xf,
+    0x5f, 0xff, 0xff, 0xfc, 0x1, 0xf0, 0x3d, 0x2a,
+    0xaa, 0xab, 0xf0, 0x7, 0xc0, 0xf4, 0x28, 0x0,
+    0xf, 0x40, 0x1f, 0x3, 0xd0, 0xf4, 0x0, 0xbc,
+    0x0, 0x7c, 0xf, 0x41, 0xf4, 0xb, 0xc0, 0x1,
+    0xf0, 0x3d, 0x1, 0xf8, 0xfc, 0x0, 0x7, 0xc0,
+    0xf4, 0x1, 0xff, 0xc0, 0x0, 0x1f, 0x3, 0xd0,
+    0x7, 0xfe, 0x0, 0x0, 0x7c, 0xf, 0x42, 0xff,
+    0xbf, 0x80, 0x1, 0xf0, 0x3e, 0xff, 0xd0, 0x7f,
+    0xe4, 0x7, 0xc0, 0xf7, 0xe4, 0x0, 0x1b, 0xf8,
+    0x5, 0x3, 0xd2, 0x90, 0x0, 0x1, 0xd0, 0x0,
+    0x0, 0xb, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xf, 0x0, 0x0, 0x0, 0x3, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0x80, 0xf, 0xff, 0xff, 0xff, 0xff,
+    0xfe, 0x0, 0x0, 0x18, 0x0, 0x0, 0x20, 0x0,
+    0x0, 0x1, 0xf4, 0x0, 0x2, 0xf0, 0x0, 0x0,
+    0x2, 0xf0, 0x0, 0xf, 0x40, 0x0, 0x0, 0x3,
+    0xe0, 0x0, 0xf8, 0x0, 0x0, 0x0, 0x7, 0xc0,
+    0x7, 0xc0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x3d,
+    0x0, 0x0, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
 
     /* U+7AD9 "站" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -102617,6 +107391,30 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x14, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x3c, 0x0, 0x0,
 
+    /* U+7AED "竭" */
+    0x0, 0xb0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf,
+    0x40, 0xa, 0xaa, 0xaa, 0xa0, 0x0, 0xb8, 0x1,
+    0xff, 0xff, 0xff, 0x0, 0x7, 0xc0, 0x1e, 0x0,
+    0x0, 0xb0, 0x0, 0x3c, 0x1, 0xe0, 0x0, 0xb,
+    0x3, 0xff, 0xff, 0x1f, 0xaa, 0xaa, 0xf0, 0x3f,
+    0xff, 0xf1, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0,
+    0x1e, 0x0, 0x0, 0xb0, 0x4, 0x0, 0x91, 0xe0,
+    0x0, 0xb, 0x1, 0xe0, 0x1e, 0x1f, 0xaa, 0xaa,
+    0xf0, 0xf, 0x2, 0xe1, 0xff, 0xff, 0xff, 0x0,
+    0xf0, 0x2d, 0x3, 0xc0, 0x0, 0x0, 0xf, 0x3,
+    0xc0, 0xb8, 0x0, 0x0, 0x0, 0xb4, 0x3c, 0x1f,
+    0xff, 0xff, 0xfd, 0x7, 0x83, 0xc3, 0xff, 0xff,
+    0xff, 0xd0, 0x38, 0x79, 0xf8, 0x2, 0xc0, 0x2d,
+    0x3, 0xcb, 0x7f, 0x80, 0x3c, 0x2, 0xd0, 0x3c,
+    0xb1, 0xbc, 0xf, 0xd0, 0x2d, 0x3, 0xcf, 0x3,
+    0xc2, 0xef, 0x82, 0xd0, 0x0, 0xe0, 0x3d, 0xf8,
+    0x2f, 0x3c, 0x0, 0x1e, 0xb3, 0xde, 0x0, 0xb3,
+    0xc1, 0x6f, 0xff, 0x3c, 0x0, 0x1, 0x3c, 0xbf,
+    0xfe, 0x53, 0xff, 0xff, 0xd3, 0xc6, 0x90, 0x0,
+    0x3f, 0xff, 0xfd, 0x3c, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x5f, 0xc0, 0x0, 0x0, 0x0, 0x0, 0xf,
+    0xf4, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa4, 0x0,
+
     /* U+7AEF "端" */
     0x0, 0x70, 0x0, 0x0, 0x2c, 0x0, 0x0, 0x0,
     0xb8, 0x1, 0x40, 0x2c, 0x0, 0x40, 0x0, 0x78,
@@ -102697,6 +107495,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xf4, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd1,
     0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x0,
 
+    /* U+7AFD "竽" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x7c, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x3, 0xd0,
+    0x0, 0x7, 0xc0, 0x0, 0x0, 0x1f, 0x0, 0x0,
+    0x3d, 0x0, 0x0, 0x0, 0xff, 0xff, 0xf5, 0xff,
+    0xff, 0xf8, 0x7, 0xff, 0xff, 0xdf, 0xff, 0xff,
+    0xe0, 0x3d, 0x2f, 0x0, 0xbc, 0x2f, 0x0, 0x3,
+    0xe0, 0x3d, 0x3, 0xd0, 0x3d, 0x0, 0x2f, 0x0,
+    0x7c, 0x3e, 0x0, 0x7c, 0x0, 0xf0, 0x0, 0xe0,
+    0xb0, 0x0, 0xe0, 0x0, 0x40, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xe0, 0x2, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80,
+    0x0, 0x0, 0x0, 0xf8, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x3, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xf, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3e,
+    0x0, 0x0, 0x0, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xe3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xc5, 0x55, 0x55, 0x5f, 0x95, 0x55, 0x54, 0x0,
+    0x0, 0x0, 0x3e, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3,
+    0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0x40,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x7d, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0xff, 0xf0, 0x0, 0x0, 0x0,
+    0x0, 0x2, 0xff, 0x40, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+7AFF "竿" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x3d, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x1, 0xf0,
@@ -102723,6 +107547,60 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x7, 0xc0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x1f, 0x0, 0x0, 0x0,
 
+    /* U+7B03 "笃" */
+    0x0, 0x9, 0x0, 0x0, 0x24, 0x0, 0x0, 0x0,
+    0xb8, 0x0, 0x1, 0xe0, 0x0, 0x0, 0x3, 0xc0,
+    0x0, 0xf, 0x40, 0x0, 0x0, 0x2f, 0xaa, 0xa8,
+    0x7e, 0xaa, 0xaa, 0x1, 0xff, 0xff, 0xf3, 0xff,
+    0xff, 0xfc, 0xf, 0x5f, 0x40, 0x1f, 0xb, 0xc0,
+    0x0, 0xb8, 0x2e, 0x0, 0xf4, 0xf, 0x40, 0x7,
+    0xc0, 0x3c, 0xb, 0xc0, 0x1f, 0x0, 0x3d, 0x0,
+    0xb4, 0x2c, 0x0, 0x3c, 0x0, 0x20, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x2f, 0xff, 0xff, 0xff,
+    0xfe, 0x0, 0x0, 0xff, 0xff, 0xff, 0xff, 0xf8,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xd0, 0x0,
+    0x0, 0x3c, 0x0, 0x0, 0xf, 0x40, 0x0, 0x1,
+    0xf0, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x7, 0xc0,
+    0x0, 0x0, 0xf0, 0x0, 0x0, 0x2e, 0x0, 0x0,
+    0x7, 0xc0, 0x0, 0x0, 0xbf, 0xff, 0xff, 0xff,
+    0xff, 0x0, 0x2, 0xff, 0xff, 0xff, 0xff, 0xfc,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x3, 0xc0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x1f, 0x3, 0xff, 0xff, 0xff,
+    0xff, 0xf0, 0x7c, 0xf, 0xff, 0xff, 0xff, 0xff,
+    0xc2, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f,
+    0x80, 0x0, 0x0, 0x0, 0x0, 0xff, 0xfc, 0x0,
+    0x0, 0x0, 0x0, 0x3, 0xff, 0x80, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0,
+
+    /* U+7B04 "笄" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x1f, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x2e,
+    0x0, 0x0, 0xb8, 0x0, 0x0, 0x0, 0x7d, 0x0,
+    0x0, 0xf4, 0x0, 0x0, 0x0, 0xff, 0xff, 0xf5,
+    0xff, 0xff, 0xf8, 0x1, 0xff, 0xff, 0xf7, 0xff,
+    0xff, 0xf8, 0x3, 0xd3, 0xd0, 0xb, 0xc2, 0xe0,
+    0x0, 0xb, 0xc1, 0xf0, 0xf, 0x40, 0xf0, 0x0,
+    0x1f, 0x0, 0xf4, 0x3e, 0x0, 0xb8, 0x0, 0x3d,
+    0x0, 0x74, 0x1c, 0x0, 0x38, 0x0, 0x4, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xc0, 0x7, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xc0, 0x0, 0x1, 0xf0, 0x0, 0x1f,
+    0x0, 0x0, 0x0, 0x1, 0xf0, 0x0, 0xf, 0x0,
+    0x0, 0x0, 0x1, 0xf0, 0x0, 0xf, 0x0, 0x0,
+    0x0, 0x1, 0xf0, 0x0, 0xf, 0x0, 0x0, 0x0,
+    0x1, 0xf0, 0x0, 0xf, 0x0, 0x0, 0xbf, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xfc, 0xbf, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xfc, 0x0, 0x2, 0xe0, 0x0,
+    0xf, 0x0, 0x0, 0x0, 0x3, 0xd0, 0x0, 0xf,
+    0x0, 0x0, 0x0, 0x7, 0xc0, 0x0, 0xf, 0x0,
+    0x0, 0x0, 0xf, 0x80, 0x0, 0xf, 0x0, 0x0,
+    0x0, 0x3f, 0x0, 0x0, 0xf, 0x0, 0x0, 0x1,
+    0xfc, 0x0, 0x0, 0xf, 0x0, 0x0, 0xf, 0xf0,
+    0x0, 0x0, 0xf, 0x0, 0x0, 0xf, 0x80, 0x0,
+    0x0, 0xf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+7B06 "笆" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0xf8, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x7, 0xc0,
@@ -102888,6 +107766,59 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0x0, 0xbd, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+7B14 "笔" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x38, 0x0, 0x0, 0xd0, 0x0, 0x0, 0x2, 0xf0,
+    0x0, 0xb, 0xc0, 0x0, 0x0, 0xf, 0x40, 0x0,
+    0x3d, 0x0, 0x0, 0x0, 0xff, 0xff, 0xe2, 0xff,
+    0xff, 0xf0, 0x7, 0xff, 0xff, 0x8f, 0xff, 0xff,
+    0xc0, 0x3e, 0x3d, 0x0, 0xbc, 0x3e, 0x0, 0x3,
+    0xf0, 0x7c, 0x7, 0xd0, 0x3c, 0x0, 0x3f, 0x0,
+    0xf4, 0x3e, 0x0, 0x74, 0x0, 0xf0, 0x1, 0x40,
+    0x60, 0x1, 0x60, 0x0, 0x0, 0x1, 0x5a, 0xbf,
+    0xff, 0xd0, 0x1, 0xff, 0xff, 0xff, 0xff, 0xa5,
+    0x0, 0x3, 0xfe, 0xab, 0xe0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xf, 0x40, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x3e, 0x55, 0x6a, 0x80, 0x0, 0xaf, 0xff,
+    0xff, 0xff, 0xff, 0x0, 0x3, 0xff, 0xff, 0xfa,
+    0xa5, 0x50, 0x0, 0x0, 0x0, 0xf, 0x40, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x3d, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x1, 0xfa, 0xaa, 0xff, 0xfc, 0x3f,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xff,
+    0xaf, 0x95, 0x40, 0x0, 0x0, 0x0, 0x0, 0x3d,
+    0x0, 0x0, 0x38, 0x0, 0x0, 0x0, 0xf4, 0x0,
+    0x0, 0xf0, 0x0, 0x0, 0x3, 0xf0, 0x0, 0xb,
+    0xc0, 0x0, 0x0, 0xb, 0xff, 0xff, 0xfe, 0x0,
+    0x0, 0x0, 0xb, 0xff, 0xff, 0xe0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0,
+
+    /* U+7B15 "笕" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x7c, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x3, 0xd0,
+    0x0, 0x7, 0xc0, 0x0, 0x0, 0x1f, 0x0, 0x0,
+    0x3d, 0x0, 0x0, 0x0, 0xff, 0xff, 0xf5, 0xff,
+    0xff, 0xfc, 0xb, 0xff, 0xff, 0xdf, 0xff, 0xff,
+    0xe0, 0x3c, 0x2e, 0x0, 0x7c, 0x1f, 0x0, 0x3,
+    0xe0, 0x3c, 0x3, 0xd0, 0x3d, 0x0, 0x2f, 0x0,
+    0xb8, 0x2e, 0x0, 0x7c, 0x0, 0xf0, 0x0, 0xd0,
+    0x70, 0x0, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x1, 0x0, 0x0, 0x1f, 0xff, 0xff, 0xff, 0xff,
+    0x0, 0x0, 0x7f, 0xff, 0xff, 0xff, 0xfc, 0x0,
+    0x1, 0xf0, 0x0, 0x0, 0x0, 0xf0, 0x0, 0x7,
+    0xc0, 0x7, 0x80, 0x3, 0xc0, 0x0, 0x1f, 0x0,
+    0x1f, 0x0, 0xf, 0x0, 0x0, 0x7c, 0x0, 0x7c,
+    0x0, 0x3c, 0x0, 0x1, 0xf0, 0x2, 0xe0, 0x0,
+    0xf0, 0x0, 0x7, 0xc0, 0xf, 0xd0, 0x3, 0xc0,
+    0x0, 0x1f, 0x0, 0x7f, 0xc0, 0xf, 0x0, 0x0,
+    0x7c, 0x3, 0xff, 0x0, 0x3c, 0x0, 0x0, 0x50,
+    0x3f, 0x7c, 0x0, 0x51, 0xe0, 0x0, 0x3, 0xf4,
+    0xf0, 0x0, 0x7, 0x80, 0x0, 0xbf, 0x43, 0xd0,
+    0x0, 0x2e, 0x0, 0x6f, 0xf0, 0xf, 0xd0, 0x1,
+    0xf4, 0x6f, 0xfd, 0x0, 0x2f, 0xff, 0xff, 0xc3,
+    0xff, 0x40, 0x0, 0x2f, 0xff, 0xf8, 0xb, 0x80,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+7B19 "笙" */
     0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x1f, 0x0, 0x0, 0x3d, 0x0, 0x0, 0x0, 0x3e,
@@ -103205,6 +108136,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x3, 0xc0, 0x0, 0x0, 0x0,
 
+    /* U+7B31 "笱" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xb4, 0x0, 0x0, 0xe0, 0x0, 0x0, 0x3, 0xc0,
+    0x0, 0xb, 0x80, 0x0, 0x0, 0x3e, 0x0, 0x0,
+    0x3d, 0x0, 0x0, 0x1, 0xff, 0xff, 0xf2, 0xff,
+    0xff, 0xf4, 0xf, 0xff, 0xff, 0xdf, 0xff, 0xff,
+    0xd0, 0xb8, 0x2e, 0x0, 0xf8, 0xf, 0x0, 0x7,
+    0xc0, 0x3c, 0x7, 0xc0, 0x2e, 0x0, 0x7d, 0x4,
+    0xb4, 0x3d, 0x0, 0x3c, 0x1, 0xe0, 0x3d, 0x0,
+    0x60, 0x0, 0x40, 0x0, 0x2, 0xf0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x1f, 0xff, 0xff, 0xff, 0xff,
+    0xc0, 0x0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0,
+    0xf, 0x80, 0x0, 0x0, 0x0, 0x3c, 0x0, 0xfc,
+    0x0, 0x0, 0x0, 0x0, 0xf0, 0xf, 0xd0, 0x0,
+    0x0, 0x0, 0x3, 0xc0, 0xfc, 0xff, 0xff, 0xff,
+    0xc0, 0xf, 0x1, 0xc3, 0xff, 0xff, 0xff, 0x0,
+    0x3c, 0x0, 0xf, 0x40, 0x0, 0x3c, 0x0, 0xf0,
+    0x0, 0x3d, 0x0, 0x0, 0xf0, 0x3, 0xc0, 0x0,
+    0xf4, 0x0, 0x3, 0xc0, 0x1f, 0x0, 0x3, 0xd0,
+    0x0, 0xf, 0x0, 0x7c, 0x0, 0xf, 0xff, 0xff,
+    0xfc, 0x1, 0xf0, 0x0, 0x3f, 0xff, 0xff, 0xf0,
+    0xb, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xbe,
+    0x0, 0x0, 0x0, 0x0, 0x2, 0xff, 0xf0, 0x0,
+    0x0, 0x0, 0x0, 0x7, 0xfe, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+7B33 "笳" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0xb8, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x3, 0xd0,
@@ -103231,6 +108188,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xc0, 0x29, 0x0, 0xf, 0x0, 0x3c, 0x1, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+7B38 "笸" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xf, 0x40, 0x0, 0x3d, 0x0, 0x0, 0x0, 0x1f,
+    0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x3e, 0x55,
+    0x50, 0xbd, 0x55, 0x54, 0x0, 0xbf, 0xff, 0xfc,
+    0xff, 0xff, 0xfe, 0x1, 0xff, 0xff, 0xfa, 0xff,
+    0xff, 0xfd, 0x3, 0xe0, 0xb4, 0x3, 0xd0, 0xb8,
+    0x0, 0xb, 0xc0, 0x3c, 0xf, 0x80, 0x3d, 0x0,
+    0x2f, 0x0, 0x2d, 0x1f, 0x0, 0x2e, 0x0, 0x2d,
+    0x0, 0x10, 0x1, 0x0, 0x4, 0x0, 0x4, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xf4, 0x0, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xf4, 0x0, 0xf4, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0xf4, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0xf4, 0xb, 0xff, 0xff, 0xf8,
+    0x0, 0x0, 0xf4, 0xf, 0xff, 0xff, 0xfc, 0x0,
+    0x0, 0xf4, 0xf, 0x40, 0x0, 0x7c, 0x0, 0x0,
+    0xf4, 0xf, 0x40, 0x0, 0x3c, 0x0, 0x0, 0xf4,
+    0xf, 0x40, 0x0, 0x3c, 0x0, 0x0, 0xf4, 0xf,
+    0x40, 0x0, 0x3c, 0x0, 0x0, 0xf4, 0xf, 0xff,
+    0xff, 0xfc, 0x0, 0x0, 0xf4, 0xf, 0xff, 0xff,
+    0xfc, 0x0, 0x0, 0xf4, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xf4, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xf4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xfc,
+
     /* U+7B3A "笺" */
     0x0, 0xa, 0x0, 0x0, 0x64, 0x0, 0x0, 0x0,
     0xb8, 0x0, 0x2, 0xe0, 0x0, 0x0, 0x3, 0xc0,
@@ -103337,6 +108320,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xfe, 0x0, 0x0, 0x7, 0xff, 0xf8, 0x3, 0x40,
     0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+7B47 "筇" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xb8, 0x0, 0x2, 0xe0, 0x0, 0x0, 0x3, 0xd0,
+    0x0, 0xf, 0x40, 0x0, 0x0, 0x2f, 0x0, 0x0,
+    0x7c, 0x0, 0x0, 0x0, 0xff, 0xff, 0xf3, 0xff,
+    0xff, 0xfc, 0xf, 0xff, 0xff, 0xdf, 0xff, 0xff,
+    0xe0, 0x7c, 0x2e, 0x0, 0xb4, 0xf, 0x40, 0x3,
+    0xd0, 0x3d, 0x7, 0xc0, 0x1f, 0x0, 0x3e, 0x0,
+    0x7c, 0x3d, 0x0, 0x3d, 0x0, 0xb0, 0x0, 0x90,
+    0x60, 0x0, 0x60, 0x0, 0x0, 0x0, 0x0, 0x55,
+    0x55, 0x54, 0x7, 0xff, 0xff, 0xc3, 0xff, 0xff,
+    0xf0, 0x1f, 0xff, 0xff, 0xf, 0xea, 0xab, 0xc0,
+    0x0, 0x7c, 0x0, 0x3d, 0x0, 0x2e, 0x0, 0x1,
+    0xf0, 0x0, 0xf4, 0x1, 0xf0, 0x0, 0x7, 0xc0,
+    0x3, 0xd0, 0xf, 0x0, 0x0, 0x1f, 0x0, 0xf,
+    0x40, 0xb8, 0x0, 0x0, 0x7c, 0x0, 0x3d, 0x3,
+    0xe0, 0x0, 0x1, 0xf0, 0x0, 0xf4, 0x2, 0xe0,
+    0x0, 0x7, 0xc0, 0x3, 0xd0, 0x2, 0xe0, 0x0,
+    0x1f, 0x0, 0xf, 0x40, 0x3, 0xc0, 0x0, 0x7e,
+    0xbe, 0x3d, 0x0, 0xf, 0x86, 0xbf, 0xff, 0xf8,
+    0xf4, 0x0, 0x7e, 0x2f, 0xff, 0xa4, 0x3, 0xd2,
+    0xbf, 0xf4, 0x65, 0x0, 0x0, 0xf, 0x4b, 0xff,
+    0x40, 0x0, 0x0, 0x0, 0x3d, 0x5, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0xf4, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x3, 0xd0, 0x0, 0x0,
+
     /* U+7B49 "等" */
     0x0, 0x5, 0x0, 0x0, 0x24, 0x0, 0x0, 0x0,
     0x7c, 0x0, 0x2, 0xf0, 0x0, 0x0, 0x3, 0xe0,
@@ -103416,32 +108425,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xf, 0xff,
     0xff, 0xff, 0xff, 0xff, 0xc0,
 
-    /* U+7B4D "筍" */
-    0x0, 0x18, 0x0, 0x0, 0x24, 0x0, 0x0, 0x0,
-    0xf4, 0x0, 0x2, 0xe0, 0x0, 0x0, 0x7, 0xc0,
-    0x0, 0xf, 0x40, 0x0, 0x0, 0x3f, 0xaa, 0xa8,
-    0x7e, 0xaa, 0xa9, 0x1, 0xff, 0xff, 0xf3, 0xff,
-    0xff, 0xf4, 0xf, 0x47, 0xc0, 0x2e, 0xb, 0xc0,
-    0x0, 0xf8, 0xb, 0x40, 0xf0, 0xf, 0x0, 0xb,
-    0xc0, 0x1f, 0xf, 0x80, 0x2e, 0x0, 0x2c, 0xb,
-    0x60, 0x8, 0x0, 0x34, 0x0, 0x0, 0x7d, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x3, 0xff, 0xff, 0xff,
-    0xff, 0xf4, 0x0, 0x3f, 0xff, 0xff, 0xff, 0xff,
-    0xd0, 0x3, 0xf0, 0x0, 0x0, 0x0, 0xf, 0x40,
-    0x3f, 0x0, 0x0, 0x0, 0x0, 0x3d, 0x3, 0xff,
-    0xff, 0xff, 0xfc, 0x0, 0xf4, 0xf, 0x3f, 0xff,
-    0xff, 0xf0, 0x3, 0xc0, 0x0, 0xf0, 0x0, 0x3,
-    0xc0, 0xf, 0x0, 0x3, 0xc0, 0x0, 0xf, 0x0,
-    0x3c, 0x0, 0xf, 0xff, 0xff, 0xfc, 0x0, 0xf0,
-    0x0, 0x3f, 0xff, 0xff, 0xf0, 0x3, 0xc0, 0x0,
-    0xf0, 0x0, 0x3, 0xc0, 0xf, 0x0, 0x3, 0xc0,
-    0x0, 0xf, 0x0, 0x3c, 0x0, 0xf, 0xaa, 0xaa,
-    0xbc, 0x0, 0xf0, 0x0, 0x3f, 0xff, 0xff, 0xf0,
-    0x7, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f,
-    0x0, 0x0, 0x0, 0x0, 0x1, 0xff, 0xf0, 0x0,
-    0x0, 0x0, 0x0, 0x3, 0xfa, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x0,
-
     /* U+7B4F "筏" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x3c, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x2, 0xe0,
@@ -103682,32 +108665,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x1e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+7B5C "筜" */
-    0x0, 0x19, 0x0, 0x0, 0x64, 0x0, 0x0, 0x0,
-    0xf4, 0x0, 0x3, 0xd0, 0x0, 0x0, 0x7, 0xc0,
-    0x0, 0xf, 0x0, 0x0, 0x0, 0x3f, 0xff, 0xfc,
-    0xbf, 0xff, 0xfe, 0x2, 0xff, 0xff, 0xf3, 0xff,
-    0xff, 0xf8, 0xf, 0x4b, 0x80, 0x2e, 0xf, 0x80,
-    0x0, 0xf8, 0xf, 0x0, 0xf0, 0x1f, 0x0, 0xb,
-    0xc0, 0x3d, 0xf, 0x80, 0x3e, 0x0, 0x7d, 0x0,
-    0x74, 0x2c, 0x0, 0x78, 0x0, 0xe0, 0x50, 0x0,
-    0xa0, 0x0, 0x80, 0x0, 0x3, 0xe0, 0x3, 0xc0,
-    0x7, 0xc0, 0x0, 0x7, 0xe0, 0xf, 0x0, 0x7e,
-    0x0, 0x0, 0x7, 0xe0, 0x3c, 0xb, 0xf0, 0x0,
-    0x0, 0x7, 0x80, 0xf0, 0x3e, 0x0, 0x0, 0x0,
-    0x4, 0x3, 0xc0, 0x60, 0x0, 0x1, 0xff, 0xff,
-    0xff, 0xff, 0xff, 0xf0, 0x7, 0xff, 0xff, 0xff,
-    0xff, 0xff, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0xf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xf0, 0x1,
-    0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x7, 0xff,
-    0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7,
-    0xc0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0,
-    0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0xf0,
-
     /* U+7B5D "筝" */
     0x0, 0x4, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0,
     0x3d, 0x0, 0x0, 0xf4, 0x0, 0x0, 0x0, 0x7c,
@@ -103787,6 +108744,31 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xbf, 0x0, 0xb, 0xff, 0xff, 0xf9, 0x0, 0x40,
     0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+7B6E "筮" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x78, 0x0, 0x0, 0xe0, 0x0, 0x0, 0x3, 0xe0,
+    0x0, 0xb, 0xc0, 0x0, 0x0, 0x1f, 0x40, 0x0,
+    0x3d, 0x0, 0x0, 0x0, 0xff, 0xff, 0xf5, 0xff,
+    0xff, 0xfc, 0xb, 0xff, 0xff, 0xdf, 0xff, 0xff,
+    0xf0, 0x3d, 0xf, 0x0, 0xbc, 0xb, 0x80, 0x3,
+    0xf0, 0x2e, 0x3, 0xd0, 0xf, 0x0, 0x2f, 0x0,
+    0x3c, 0x2f, 0x0, 0x2e, 0x0, 0x74, 0x0, 0x90,
+    0xb0, 0x0, 0x34, 0x0, 0x40, 0x0, 0x0, 0x40,
+    0x0, 0x0, 0x3, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xf8, 0xb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd0,
+    0x0, 0x0, 0x0, 0xf0, 0x1, 0x0, 0x0, 0x0,
+    0xf8, 0x3, 0xc0, 0x1f, 0x0, 0x0, 0x3, 0xd0,
+    0xf, 0x0, 0xb8, 0x0, 0x0, 0x1f, 0x0, 0x3c,
+    0x3, 0xd0, 0x0, 0x0, 0xfd, 0x0, 0xf0, 0x2f,
+    0xd0, 0x0, 0x7, 0xfd, 0x3, 0xc0, 0xff, 0xd0,
+    0x0, 0x3d, 0x7d, 0xf, 0xb, 0xcb, 0xc0, 0x3,
+    0xf0, 0x7c, 0x3c, 0x7d, 0xb, 0xc0, 0x2f, 0x0,
+    0xbc, 0xf3, 0xe0, 0xb, 0xc0, 0xf4, 0x0, 0x83,
+    0xcb, 0x0, 0xd, 0x0, 0x40, 0x0, 0xf, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x7c, 0x0, 0x0,
+    0x0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+
     /* U+7B71 "筱" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x2, 0xd0, 0x0, 0x7, 0x80, 0x0, 0x0, 0x0,
@@ -103816,6 +108798,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+7B72 "筲" */
+    0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x2f, 0x0, 0x0, 0x7c, 0x0, 0x0, 0x0, 0x3d,
+    0x0, 0x0, 0xb8, 0x0, 0x0, 0x0, 0xff, 0xff,
+    0xf5, 0xff, 0xff, 0xfd, 0x2, 0xff, 0xff, 0xf7,
+    0xff, 0xff, 0xfd, 0x7, 0xd1, 0xf0, 0xb, 0xc0,
+    0xf8, 0x0, 0x1f, 0x80, 0xbc, 0xf, 0x40, 0x3e,
+    0x0, 0x3e, 0x4, 0x3c, 0x19, 0x0, 0xe, 0x0,
+    0x2c, 0x1f, 0x0, 0x3c, 0x1, 0xe0, 0x0, 0x0,
+    0xf, 0xd0, 0x3c, 0xb, 0xd0, 0x0, 0x0, 0x2,
+    0xf0, 0x3c, 0x2f, 0x40, 0x0, 0x0, 0x0, 0x80,
+    0x3c, 0x8, 0x0, 0x0, 0x0, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0x0, 0x1, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0x0, 0x1, 0xf0, 0x0, 0x0, 0x0, 0x1f,
+    0x0, 0x1, 0xf0, 0x0, 0x0, 0x0, 0xf, 0x0,
+    0x1, 0xf0, 0x0, 0x0, 0x0, 0x1f, 0x0, 0x1,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x1, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0x0, 0x1, 0xf0, 0x0,
+    0x0, 0x0, 0xf, 0x0, 0x1, 0xf0, 0x0, 0x0,
+    0x0, 0xf, 0x0, 0x1, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0x0, 0x1, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0x0, 0x1, 0xf0, 0x0, 0x0, 0x0, 0xf, 0x0,
+    0x1, 0xf0, 0x0, 0x0, 0x0, 0x2f, 0x0, 0x1,
+    0xf0, 0x0, 0x0, 0x3f, 0xfe, 0x0, 0x1, 0xf0,
+    0x0, 0x0, 0x2f, 0xf8, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+7B75 "筵" */
     0x0, 0x5, 0x0, 0x0, 0x9, 0x0, 0x0, 0x0,
     0xf, 0x40, 0x0, 0x2e, 0x0, 0x0, 0x0, 0x2f,
@@ -103899,6 +108908,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0xff, 0x80, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+7B7B "筻" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x2e, 0x0, 0x0, 0xb8, 0x0, 0x0, 0x0, 0x3c,
+    0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0xff, 0xff,
+    0xf2, 0xff, 0xff, 0xf8, 0x1, 0xff, 0xff, 0xf7,
+    0xff, 0xff, 0xf8, 0x3, 0xd0, 0xf0, 0xf, 0x80,
+    0xf4, 0x0, 0xf, 0x80, 0xb8, 0x2f, 0x0, 0x7c,
+    0x0, 0x3e, 0x0, 0x20, 0x9, 0x0, 0x24, 0x0,
+    0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x7,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x0, 0x0,
+    0x0, 0x3c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x3c, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0x0, 0x0, 0xfa, 0xaa, 0xbe, 0xaa,
+    0xaf, 0x0, 0x0, 0xf0, 0x0, 0x3c, 0x0, 0xf,
+    0x0, 0x0, 0xfa, 0xaa, 0xbe, 0xaa, 0xaf, 0x0,
+    0x0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0,
+    0xf0, 0x0, 0x3c, 0x0, 0xf, 0x0, 0x0, 0xf0,
+    0x0, 0x3c, 0x0, 0xf, 0x0, 0x0, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0x0, 0x0, 0xaf, 0xaa, 0xfe,
+    0xaa, 0xaa, 0x0, 0x0, 0xf, 0x80, 0x78, 0x0,
+    0x0, 0x0, 0x0, 0x3, 0xf9, 0xf4, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x7f, 0xf4, 0x0, 0x0, 0x0,
+    0x0, 0x1, 0xbf, 0xff, 0xf9, 0x40, 0x0, 0x16,
+    0xff, 0xf8, 0x1b, 0xff, 0xff, 0xfc, 0x3f, 0xfe,
+    0x40, 0x0, 0x5, 0xaf, 0xfc, 0x29, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+7B7E "签" */
     0x0, 0x1, 0x40, 0x0, 0x5, 0x0, 0x0, 0x0,
     0x1, 0xf0, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x0,
@@ -103981,6 +109017,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0xf, 0x0, 0x0, 0x2, 0x40, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+7B8D "箍" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xf0, 0x0, 0x3, 0xc0, 0x0, 0x0, 0xb, 0x80,
+    0x0, 0x1e, 0x0, 0x0, 0x0, 0x7f, 0xff, 0xf8,
+    0xff, 0xff, 0xfd, 0x3, 0xff, 0xff, 0xe7, 0xff,
+    0xff, 0xf4, 0x2e, 0xf, 0x40, 0x3c, 0xb, 0x80,
+    0x2, 0xf0, 0x1f, 0x2, 0xe0, 0xf, 0x40, 0x1f,
+    0x18, 0x38, 0x7, 0x0, 0x1d, 0x0, 0x14, 0xb0,
+    0xa, 0xaa, 0xaa, 0xaa, 0xa0, 0x2, 0xc0, 0x3f,
+    0xff, 0xff, 0xff, 0xc0, 0xf, 0x40, 0xf5, 0x55,
+    0x55, 0x55, 0xf, 0xff, 0xf7, 0xc0, 0x2, 0xc0,
+    0x0, 0x3f, 0xff, 0xdf, 0x0, 0xf, 0x0, 0x0,
+    0x2, 0xc0, 0x3c, 0x2a, 0xbe, 0xaa, 0x0, 0xb,
+    0x0, 0xf0, 0xff, 0xff, 0xfc, 0x0, 0x2c, 0x3,
+    0xc3, 0xc3, 0xc0, 0xf0, 0x0, 0xb0, 0x4f, 0xf,
+    0xf, 0x3, 0xc0, 0x7, 0xff, 0x7c, 0x3c, 0x3c,
+    0xf, 0xb, 0xff, 0xf9, 0xf0, 0xf0, 0xf0, 0x3c,
+    0x3f, 0xbc, 0x3, 0xc3, 0xc3, 0xc0, 0xe0, 0x0,
+    0xb0, 0xf, 0xf, 0xf, 0x2f, 0x80, 0x2, 0xc0,
+    0x3c, 0x3c, 0x3c, 0xfc, 0x0, 0xb, 0x0, 0xf0,
+    0x0, 0xf0, 0x0, 0x0, 0x2c, 0x3, 0xc0, 0x3,
+    0xc0, 0x0, 0x0, 0xf0, 0xf, 0x0, 0x0, 0x0,
+    0x0, 0x6f, 0xc0, 0x3f, 0xff, 0xff, 0xff, 0xe2,
+    0xfe, 0x0, 0xff, 0xff, 0xff, 0xff, 0xc6, 0x40,
+    0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+7B90 "箐" */
     0x0, 0x4, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0,
     0x2e, 0x0, 0x0, 0x78, 0x0, 0x0, 0x0, 0x7c,
@@ -104008,33 +109070,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x1f, 0xfc, 0x0, 0x0, 0xf4, 0x0,
     0x0, 0xf, 0xa0, 0x0,
 
-    /* U+7B93 "箓" */
-    0x0, 0x4, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0,
-    0x2f, 0x0, 0x0, 0xb8, 0x0, 0x0, 0x0, 0x3c,
-    0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0xff, 0xff,
-    0xf2, 0xff, 0xff, 0xf8, 0x2, 0xff, 0xff, 0xfb,
-    0xff, 0xff, 0xf8, 0x7, 0xc1, 0xe0, 0xf, 0x40,
-    0xf0, 0x0, 0x1f, 0x40, 0xf0, 0x3e, 0x0, 0xb8,
-    0x0, 0x3d, 0x0, 0xb4, 0x4, 0x0, 0x34, 0x0,
-    0x4, 0x6a, 0xaa, 0xaa, 0xaa, 0xa9, 0x0, 0x0,
-    0xff, 0xff, 0xff, 0xff, 0xfd, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x2d, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x2d, 0x0, 0x0, 0x3f, 0xff, 0xff,
-    0xff, 0xfd, 0x0, 0x0, 0x3f, 0xff, 0xff, 0xff,
-    0xfd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2d,
-    0x0, 0xa, 0xaa, 0xaa, 0xaa, 0xaa, 0xbf, 0xa4,
-    0xf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x0,
-    0x34, 0x0, 0x2f, 0x0, 0x6, 0x0, 0x0, 0xbe,
-    0x0, 0x2f, 0x80, 0x2f, 0x40, 0x0, 0x1f, 0xd0,
-    0x2f, 0xd1, 0xfd, 0x0, 0x0, 0x2, 0xe1, 0x6f,
-    0xff, 0xe0, 0x0, 0x0, 0x0, 0xaf, 0xee, 0x3f,
-    0x40, 0x0, 0x0, 0xb, 0xfe, 0x6e, 0xf, 0xe0,
-    0x0, 0x1, 0xff, 0xd0, 0x2e, 0x2, 0xff, 0x40,
-    0xf, 0xf8, 0x0, 0x2e, 0x0, 0x2f, 0xf8, 0xe,
-    0x40, 0x6, 0xbe, 0x0, 0x1, 0xf8, 0x0, 0x0,
-    0x2f, 0xfc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x9,
-    0x40, 0x0, 0x0, 0x0,
-
     /* U+7B94 "箔" */
     0x0, 0x9, 0x0, 0x0, 0x24, 0x0, 0x0, 0x0,
     0xbc, 0x0, 0x1, 0xf0, 0x0, 0x0, 0x3, 0xd0,
@@ -104143,6 +109178,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc2,
     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0,
 
+    /* U+7B9D "箝" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xf0, 0x0, 0x2, 0xd0, 0x0, 0x0, 0x7, 0xc0,
+    0x0, 0xf, 0x40, 0x0, 0x0, 0x3e, 0x0, 0x0,
+    0x7c, 0x0, 0x0, 0x1, 0xff, 0xff, 0xf3, 0xff,
+    0xff, 0xf8, 0xf, 0xff, 0xff, 0xef, 0xff, 0xff,
+    0xe0, 0xfc, 0x1f, 0x0, 0xf4, 0x1f, 0x0, 0xb,
+    0xc0, 0x3d, 0xb, 0xc0, 0x2e, 0x0, 0x3d, 0x3c,
+    0x60, 0x58, 0x0, 0x29, 0x0, 0x10, 0xf0, 0x3,
+    0xc0, 0x0, 0x3c, 0x0, 0x3, 0xc0, 0xf, 0x0,
+    0x0, 0xf0, 0x0, 0xf, 0x41, 0xbd, 0x55, 0x5b,
+    0xd5, 0x3f, 0xff, 0xef, 0xff, 0xff, 0xff, 0xfc,
+    0xff, 0xff, 0x6b, 0xea, 0xaa, 0xbe, 0xa0, 0x3,
+    0xc0, 0xf, 0x0, 0x0, 0xf0, 0x0, 0xf, 0x0,
+    0x3c, 0x0, 0x3, 0xc0, 0x0, 0x3c, 0x0, 0xf0,
+    0x0, 0xf, 0x0, 0x0, 0xfb, 0x83, 0xc0, 0x0,
+    0x7c, 0x0, 0x6f, 0xff, 0xf, 0xff, 0xff, 0xf0,
+    0x2f, 0xff, 0x90, 0x3f, 0xff, 0xff, 0xc0, 0x7e,
+    0x7c, 0x0, 0xf0, 0x0, 0xf, 0x0, 0x0, 0xf0,
+    0x3, 0xc0, 0x0, 0x3c, 0x0, 0x3, 0xc0, 0xf,
+    0x0, 0x0, 0xf0, 0x0, 0xf, 0x0, 0x3c, 0x0,
+    0x3, 0xc0, 0x0, 0x3c, 0x0, 0xff, 0xff, 0xff,
+    0x0, 0x2b, 0xf0, 0x3, 0xff, 0xff, 0xfc, 0x0,
+    0xff, 0x80, 0xf, 0x0, 0x0, 0xf0, 0x1, 0x90,
+    0x0, 0x3c, 0x0, 0x3, 0xc0,
+
     /* U+7BA1 "管" */
     0x0, 0x4, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0,
     0xf8, 0x0, 0x3, 0xe0, 0x0, 0x0, 0x7, 0xc0,
@@ -104197,6 +109258,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+7BA6 "箦" */
+    0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0,
+    0x2d, 0x0, 0x0, 0xb8, 0x0, 0x0, 0x0, 0x7c,
+    0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0xff, 0xff,
+    0xe2, 0xff, 0xff, 0xf8, 0x2, 0xff, 0xff, 0xf3,
+    0xff, 0xff, 0xfc, 0x7, 0xc1, 0xf0, 0xf, 0x41,
+    0xf0, 0x0, 0x1f, 0x0, 0xf4, 0xb, 0x0, 0xb8,
+    0x0, 0x2c, 0x0, 0x74, 0x7c, 0x0, 0x38, 0x0,
+    0x5, 0x55, 0xa5, 0xbd, 0x55, 0x65, 0x40, 0xf,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xd0, 0x0, 0x0,
+    0x0, 0x7c, 0x0, 0x0, 0x0, 0x1, 0x55, 0x55,
+    0xbd, 0x55, 0x55, 0x0, 0x2, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0x7c, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x7c, 0x0, 0x0,
+    0x0, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc,
+    0x6a, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xa8, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f,
+    0xff, 0xff, 0xff, 0xfc, 0x0, 0x0, 0x7e, 0xaa,
+    0xaa, 0xaa, 0xfc, 0x0, 0x0, 0x7c, 0x0, 0x14,
+    0x0, 0x3c, 0x0, 0x0, 0x7c, 0x0, 0x7c, 0x0,
+    0x3c, 0x0, 0x0, 0x7c, 0x0, 0xf4, 0x0, 0x3c,
+    0x0, 0x0, 0x7c, 0x2, 0xf2, 0x90, 0x3c, 0x0,
+    0x0, 0x0, 0x2f, 0xd7, 0xff, 0x80, 0x0, 0x0,
+    0x5b, 0xfe, 0x0, 0x6f, 0xfe, 0x40, 0x1f, 0xff,
+    0xe0, 0x0, 0x0, 0x7f, 0xe0, 0x1f, 0xe4, 0x0,
+    0x0, 0x0, 0x2, 0xd0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+7BA7 "箧" */
     0x0, 0x14, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0,
     0x3d, 0x0, 0x0, 0x78, 0x0, 0x0, 0x0, 0xbc,
@@ -104495,6 +109584,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0xaa, 0xaa, 0xab, 0xfa, 0xaa, 0xaa, 0xa7,
     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
 
+    /* U+7BC6 "篆" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x3d, 0x0, 0x0, 0xb8, 0x0, 0x0, 0x0, 0x7c,
+    0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0xff, 0xff,
+    0xf2, 0xff, 0xff, 0xf8, 0x3, 0xfa, 0xfe, 0xa7,
+    0xeb, 0xfa, 0xa4, 0xf, 0x80, 0x7c, 0xf, 0x40,
+    0xf4, 0x0, 0x3f, 0x9, 0x3d, 0xe, 0x0, 0x3c,
+    0x0, 0x2c, 0xf, 0x69, 0x55, 0x55, 0x60, 0x0,
+    0x0, 0x1f, 0xff, 0xff, 0xff, 0xf0, 0x0, 0x0,
+    0x2d, 0x0, 0x0, 0x1, 0xe0, 0x0, 0x0, 0x3d,
+    0x55, 0x55, 0x56, 0xe0, 0x0, 0x0, 0x3f, 0xff,
+    0xff, 0xff, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x3, 0xc0, 0x0, 0x2a, 0xaa, 0xaa, 0xaa, 0xab,
+    0xea, 0xa4, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xf8, 0x0, 0x0, 0x1b, 0xf4, 0x0, 0x1, 0x0,
+    0x0, 0x6, 0xff, 0xf0, 0x0, 0x2f, 0x0, 0x6,
+    0xff, 0x90, 0xf8, 0x7, 0xfe, 0x0, 0x2f, 0xe4,
+    0xb, 0xfe, 0xbf, 0xd0, 0x0, 0x14, 0x1, 0xff,
+    0x5f, 0xff, 0x0, 0x0, 0x0, 0x7f, 0xe4, 0x2f,
+    0x4f, 0x80, 0x0, 0x1f, 0xf9, 0x2, 0xff, 0x43,
+    0xd0, 0x0, 0x1e, 0x40, 0x7f, 0xdb, 0x41, 0xf8,
+    0x0, 0x0, 0x1b, 0xf9, 0xb, 0x80, 0x3f, 0x40,
+    0x6, 0xff, 0x80, 0xf, 0x40, 0xb, 0xf4, 0x7f,
+    0xe4, 0x5, 0xbf, 0x0, 0x0, 0xbc, 0x79, 0x0,
+    0x1f, 0xfd, 0x0, 0x0, 0x10, 0x0, 0x0, 0x9,
+    0x40, 0x0, 0x0, 0x0,
+
     /* U+7BC7 "篇" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0xb8, 0x0, 0x1, 0xf0, 0x0, 0x0, 0x3, 0xd0,
@@ -104629,6 +109745,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0xbf, 0x40, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+7BDA "篚" */
+    0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x2f, 0x0, 0x0, 0x7c, 0x0, 0x0, 0x0, 0x3d,
+    0x0, 0x0, 0xf4, 0x0, 0x0, 0x0, 0xff, 0xff,
+    0xf5, 0xff, 0xff, 0xfc, 0x2, 0xff, 0xff, 0xf7,
+    0xff, 0xff, 0xfc, 0xb, 0xc0, 0xf4, 0xb, 0x80,
+    0xf4, 0x0, 0x2f, 0x40, 0x7c, 0x1f, 0x0, 0x3c,
+    0x0, 0x3d, 0x0, 0x38, 0x9, 0x0, 0x2c, 0x0,
+    0x6, 0xaa, 0xba, 0xaa, 0xaa, 0xba, 0xa0, 0x3,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x3, 0xd0,
+    0x0, 0x0, 0x10, 0x0, 0x0, 0x3, 0xc0, 0x0,
+    0xf0, 0x3c, 0x0, 0x0, 0x3, 0xc1, 0x55, 0xf0,
+    0x3d, 0x55, 0x40, 0x3, 0xcb, 0xff, 0xf0, 0x3f,
+    0xff, 0xd0, 0x3, 0xc1, 0x55, 0xf0, 0x3d, 0x55,
+    0x40, 0x3, 0xc0, 0x0, 0xf0, 0x3c, 0x0, 0x0,
+    0x3, 0xc1, 0x55, 0xf0, 0x3d, 0x55, 0x40, 0x3,
+    0xc3, 0xff, 0xf0, 0x3f, 0xff, 0xc0, 0x3, 0xc1,
+    0x55, 0xf0, 0x3d, 0x55, 0x0, 0x3, 0xc0, 0x0,
+    0xf0, 0x3c, 0x0, 0x0, 0x3, 0xc5, 0x55, 0xf0,
+    0x3d, 0x55, 0x50, 0x3, 0xcf, 0xff, 0xf0, 0x3f,
+    0xff, 0xe0, 0x3, 0xc0, 0x1, 0xf0, 0x3c, 0x0,
+    0x0, 0x3, 0xc0, 0x0, 0xf0, 0x3c, 0x0, 0x0,
+    0x3, 0xc0, 0x0, 0x50, 0x24, 0x0, 0x0, 0x3,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x3, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xf4,
+
     /* U+7BDD "篝" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x3d, 0x0, 0x0, 0x78, 0x0, 0x0, 0x0, 0x7c,
@@ -104657,32 +109799,60 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x1f, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+7BE2 "篢" */
+    /* U+7BE1 "篡" */
+    0x0, 0x4, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0,
+    0x3e, 0x0, 0x0, 0xbc, 0x0, 0x0, 0x0, 0xbc,
+    0x0, 0x0, 0xf4, 0x0, 0x0, 0x1, 0xff, 0xff,
+    0xf2, 0xff, 0xff, 0xf8, 0x3, 0xfb, 0xfa, 0xa7,
+    0xeb, 0xfa, 0xa4, 0xf, 0x80, 0xf4, 0xf, 0x41,
+    0xf0, 0x0, 0x3f, 0x0, 0x34, 0xa, 0x0, 0xb0,
+    0x0, 0x2c, 0x7f, 0xff, 0xff, 0xff, 0xfc, 0x0,
+    0x0, 0x7d, 0x55, 0x55, 0x55, 0xbc, 0x0, 0x0,
+    0x7d, 0x55, 0x55, 0x55, 0x7c, 0x0, 0x0, 0x7f,
+    0xff, 0xff, 0xff, 0xfc, 0x0, 0x0, 0x78, 0x0,
+    0x0, 0x0, 0x3c, 0x0, 0x0, 0x7f, 0xff, 0xff,
+    0xff, 0xfc, 0x0, 0x0, 0x7d, 0x55, 0x55, 0x55,
+    0x7c, 0x0, 0x0, 0x7d, 0x55, 0x55, 0x55, 0xbc,
+    0x0, 0x0, 0x7f, 0xff, 0xff, 0xff, 0xfc, 0x0,
+    0x0, 0x0, 0xb, 0xc0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x1f, 0x0, 0x0, 0x0, 0x0, 0x2f, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xf0, 0x1f, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xf0, 0x0, 0xb, 0xd0, 0x40,
+    0x1f, 0x0, 0x0, 0x0, 0x7f, 0x1, 0xf0, 0x7,
+    0xe0, 0x0, 0x2, 0xf8, 0x7, 0xc0, 0x80, 0xbe,
+    0x0, 0x2f, 0xc0, 0x2f, 0x1, 0xf0, 0x1f, 0xf4,
+    0xbd, 0x0, 0xf8, 0x0, 0xbd, 0x1, 0xfc, 0x10,
+    0xf, 0xff, 0xff, 0xff, 0x40, 0x4, 0x0, 0xf,
+    0xff, 0xaa, 0xab, 0xe0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x1, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x40, 0x0,
+
+    /* U+7BE5 "篥" */
+    0x0, 0x4, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0,
+    0x3e, 0x0, 0x0, 0xf8, 0x0, 0x0, 0x0, 0x7c,
+    0x0, 0x1, 0xf0, 0x0, 0x0, 0x0, 0xff, 0xff,
+    0xf2, 0xff, 0xff, 0xf8, 0x2, 0xfb, 0xfa, 0xa7,
+    0xeb, 0xfa, 0xa4, 0xb, 0xc0, 0xf0, 0xf, 0x40,
+    0xf4, 0x0, 0x1f, 0x0, 0xb8, 0x1f, 0x0, 0x3c,
+    0x0, 0x1d, 0x0, 0x60, 0x4, 0x0, 0x20, 0x0,
+    0xf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0xa,
+    0xaa, 0xbf, 0xaa, 0xfa, 0xaa, 0x90, 0x0, 0x0,
+    0x2d, 0x0, 0xf0, 0x0, 0x0, 0x2, 0xaa, 0xbf,
+    0xaa, 0xfa, 0xaa, 0x40, 0x7, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0x80, 0x7, 0xc0, 0x2d, 0x0, 0xf0,
+    0xb, 0x80, 0x7, 0xc0, 0x2d, 0x0, 0xf0, 0xb,
+    0x80, 0x7, 0xea, 0xbe, 0xaa, 0xfa, 0xaf, 0x80,
+    0x7, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0xb4, 0x0, 0x2, 0xd0, 0x0, 0x0, 0x7, 0xc0,
-    0x0, 0xf, 0x40, 0x0, 0x0, 0x3f, 0xff, 0xfd,
-    0xff, 0xff, 0xfe, 0x3, 0xfb, 0xfa, 0xaf, 0xea,
-    0xfa, 0xa4, 0x3e, 0x3, 0xc0, 0x3c, 0x3, 0xc0,
-    0x2, 0xe0, 0xb, 0x0, 0x0, 0x3, 0x80, 0x1,
-    0x6a, 0xae, 0xaa, 0xaa, 0xae, 0x80, 0x2, 0xff,
-    0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x1,
-    0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0xc0,
-    0x0, 0x0, 0xf, 0xff, 0xff, 0xff, 0xff, 0xff,
-    0xfe, 0x2a, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xa4,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf,
-    0xff, 0xff, 0xff, 0xff, 0xe0, 0x0, 0x3e, 0xaa,
-    0xaa, 0xaa, 0xab, 0x80, 0x0, 0xf5, 0x55, 0x55,
-    0x55, 0x6e, 0x0, 0x3, 0xff, 0xff, 0xff, 0xff,
-    0xf8, 0x0, 0xf, 0x0, 0x0, 0x0, 0x1, 0xe0,
-    0x0, 0x3d, 0x55, 0x55, 0x55, 0x5b, 0x80, 0x0,
-    0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x3, 0xc0,
-    0x0, 0x0, 0x0, 0x78, 0x0, 0xf, 0xaa, 0xaa,
-    0xaa, 0xab, 0xe0, 0x0, 0x3f, 0xff, 0xff, 0xff,
-    0xff, 0x80, 0x0, 0x0, 0x18, 0x0, 0x64, 0x0,
-    0x0, 0x0, 0x6f, 0xf4, 0x3, 0xff, 0xe4, 0x2,
-    0xff, 0xfe, 0x40, 0x1, 0xbf, 0xff, 0x4b, 0xf9,
-    0x0, 0x0, 0x0, 0x5, 0xbc, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0,
+    0x0, 0x78, 0x0, 0x0, 0x0, 0x1a, 0xaa, 0xaa,
+    0xfe, 0xaa, 0xaa, 0xa0, 0x2f, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xf0, 0x0, 0x0, 0x3, 0xff, 0x40,
+    0x0, 0x0, 0x0, 0x0, 0x2f, 0xff, 0xe4, 0x0,
+    0x0, 0x0, 0x6, 0xfd, 0x78, 0xff, 0x80, 0x0,
+    0x1, 0xbf, 0xd0, 0x78, 0x1b, 0xfe, 0x40, 0xbf,
+    0xf9, 0x0, 0x78, 0x0, 0xbf, 0xfc, 0x7e, 0x40,
+    0x0, 0x78, 0x0, 0x2, 0xfc, 0x10, 0x0, 0x0,
+    0x78, 0x0, 0x0, 0x0,
 
     /* U+7BE6 "篦" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -104871,32 +110041,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x1f, 0xd0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+7C03 "簃" */
-    0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0,
-    0xf4, 0x0, 0x3, 0xe0, 0x0, 0x0, 0x7, 0xc0,
-    0x0, 0x1f, 0x0, 0x0, 0x0, 0x3f, 0xff, 0xfc,
-    0xff, 0xff, 0xfe, 0x2, 0xff, 0xff, 0xfb, 0xff,
-    0xff, 0xf8, 0x2f, 0x3, 0xc0, 0x3d, 0xb, 0x40,
-    0x1, 0xf4, 0x7, 0x82, 0xe0, 0xf, 0x0, 0xb,
-    0x40, 0xd, 0x1, 0x8, 0x10, 0x0, 0x4, 0x0,
-    0x4, 0x0, 0xbc, 0x0, 0x0, 0x5, 0xaf, 0xf0,
-    0xb, 0xea, 0xaa, 0x41, 0xff, 0xfe, 0x40, 0xff,
-    0xff, 0xfe, 0x6, 0x9b, 0x40, 0x1f, 0xc0, 0x1,
-    0xf4, 0x0, 0x1d, 0x3, 0xff, 0x40, 0x2f, 0x40,
-    0x0, 0x74, 0xf, 0x6f, 0x47, 0xf0, 0x2, 0xff,
-    0xff, 0xc0, 0x19, 0xfe, 0x0, 0xb, 0xff, 0xff,
-    0x0, 0xbf, 0xc0, 0x0, 0x0, 0x3d, 0x1, 0xbf,
-    0xef, 0x0, 0x0, 0x3, 0xfe, 0x1f, 0xe4, 0xbc,
-    0x0, 0x0, 0x1f, 0xff, 0x24, 0xf, 0xff, 0xff,
-    0x40, 0xfb, 0x6f, 0x1, 0xfe, 0xaa, 0xfd, 0xf,
-    0x5d, 0x1d, 0x2f, 0x80, 0x3, 0xe0, 0xbc, 0x74,
-    0x17, 0xff, 0x40, 0x3f, 0x7, 0xc1, 0xd0, 0x7e,
-    0x2f, 0x47, 0xe0, 0xd, 0x7, 0x40, 0x80, 0x19,
-    0xfd, 0x0, 0x0, 0x1d, 0x0, 0x0, 0x7f, 0xc0,
-    0x0, 0x0, 0x74, 0x0, 0x7f, 0xf4, 0x0, 0x0,
-    0x1, 0xd0, 0xbf, 0xf8, 0x0, 0x0, 0x0, 0x7,
-    0x43, 0xf9, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4,
-    0x0, 0x0, 0x0, 0x0,
+    /* U+7C07 "簇" */
+    0x0, 0x1, 0x0, 0x0, 0x9, 0x0, 0x0, 0x0,
+    0x2, 0xe0, 0x0, 0xb, 0xc0, 0x0, 0x0, 0x1,
+    0xf0, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x0, 0xff,
+    0xff, 0xe2, 0xff, 0xff, 0xf4, 0x0, 0xbf, 0xff,
+    0xfd, 0xff, 0xff, 0xfd, 0x0, 0xbc, 0x2d, 0x0,
+    0xf4, 0x1f, 0x0, 0x0, 0xbc, 0x3, 0xc0, 0xf8,
+    0x2, 0xd0, 0x0, 0x7d, 0x18, 0xb4, 0x2e, 0x80,
+    0x3c, 0x0, 0x5, 0xb, 0x44, 0x0, 0xf0, 0x4,
+    0x0, 0x0, 0x1, 0xe0, 0x0, 0xff, 0xff, 0xff,
+    0x40, 0xbf, 0xff, 0xf8, 0x7f, 0xff, 0xff, 0xd0,
+    0x3f, 0xff, 0xfe, 0x7d, 0x0, 0x0, 0x0, 0x0,
+    0x3c, 0x0, 0x7c, 0xf0, 0x0, 0x0, 0x0, 0xf,
+    0x0, 0x3d, 0x7c, 0x0, 0x0, 0x0, 0x3, 0xc0,
+    0x1, 0x3f, 0xff, 0xff, 0x40, 0x0, 0xff, 0xf4,
+    0x2e, 0xaf, 0xaa, 0x80, 0x0, 0x7f, 0xfe, 0x1f,
+    0x3, 0xc0, 0x0, 0x0, 0x1e, 0x7, 0x8b, 0x0,
+    0xf0, 0x0, 0x0, 0x7, 0x41, 0xd0, 0x0, 0x3c,
+    0x0, 0x0, 0x2, 0xd0, 0x75, 0xff, 0xff, 0xff,
+    0xf4, 0x0, 0xf0, 0x1d, 0x7f, 0xff, 0xff, 0xfd,
+    0x0, 0x3c, 0xb, 0x40, 0x3, 0xf8, 0x0, 0x0,
+    0x1e, 0x2, 0xd0, 0x2, 0xff, 0x40, 0x0, 0xf,
+    0x0, 0xb4, 0x2, 0xf1, 0xf4, 0x0, 0x7, 0x80,
+    0x3c, 0x7, 0xf0, 0x1f, 0xd0, 0x3, 0xc2, 0xff,
+    0x6f, 0xe0, 0x0, 0xff, 0x82, 0xe0, 0x7f, 0x4f,
+    0x80, 0x0, 0x7, 0xf0, 0x60, 0x0, 0x1, 0x0,
+    0x0, 0x0, 0x10,
 
     /* U+7C0B "簋" */
     0x0, 0x4, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0,
@@ -104978,31 +110149,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xc0, 0x3e, 0x50, 0x2, 0xff, 0xfd, 0x8, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0,
 
-    /* U+7C15 "簕" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7,
-    0x80, 0x0, 0xf, 0x0, 0x0, 0x0, 0xf4, 0x0,
-    0x2, 0xe0, 0x0, 0x0, 0x2f, 0xff, 0xfe, 0x3f,
-    0xff, 0xff, 0x3, 0xff, 0xff, 0xfb, 0xff, 0xff,
-    0xf0, 0xf8, 0x3c, 0x0, 0xf4, 0x3c, 0x0, 0x3f,
-    0x2, 0xd0, 0x2e, 0x1, 0xe0, 0x2, 0xc0, 0xd,
-    0x1, 0xc0, 0xf, 0x0, 0x0, 0xe0, 0x7, 0x40,
-    0x0, 0x0, 0x1, 0xaf, 0xaa, 0xfe, 0x40, 0xf0,
-    0x0, 0x3f, 0xff, 0xff, 0xf8, 0xf, 0x0, 0x0,
-    0xf, 0x0, 0x78, 0x2a, 0xfa, 0xa8, 0x0, 0xfa,
-    0xaf, 0x43, 0xff, 0xff, 0xd0, 0xf, 0xff, 0xf4,
-    0x2a, 0xfa, 0xbd, 0x0, 0x2, 0xc0, 0x0, 0xf,
-    0x2, 0xd0, 0x0, 0x2c, 0x0, 0x0, 0xf0, 0x3c,
-    0xb, 0xff, 0xff, 0xf0, 0xe, 0x3, 0xc0, 0xba,
-    0xbe, 0xaf, 0x1, 0xe0, 0x3c, 0xb, 0x2, 0xc0,
-    0xf0, 0x1d, 0x3, 0xc0, 0xb0, 0x2c, 0xf, 0x2,
-    0xd0, 0x3c, 0xb, 0xff, 0xff, 0xf0, 0x3c, 0x3,
-    0xc0, 0x6a, 0xbe, 0xa9, 0x7, 0x80, 0x3c, 0x0,
-    0x2, 0xc0, 0x0, 0xf4, 0x3, 0xc3, 0xff, 0xff,
-    0xff, 0x9f, 0x0, 0x3c, 0x2a, 0xab, 0xea, 0xab,
-    0xd0, 0xb, 0xc0, 0x0, 0x2c, 0x0, 0xf8, 0x1f,
-    0xf4, 0x0, 0x2, 0xc0, 0x3e, 0x0, 0xf9, 0x0,
-    0x0, 0x2c, 0x0, 0x80, 0x0, 0x0,
-
     /* U+7C16 "簖" */
     0x0, 0x4, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0,
     0x2f, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x3d,
@@ -105058,57 +110204,112 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x7c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x7c, 0x0, 0x0, 0x0,
 
-    /* U+7C2E "簮" */
+    /* U+7C26 "簦" */
+    0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0,
+    0x2d, 0x0, 0x0, 0xb8, 0x0, 0x0, 0x0, 0x7c,
+    0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0xfe, 0xaa,
+    0xa2, 0xfa, 0xaa, 0xa4, 0x2, 0xff, 0xff, 0xf7,
+    0xff, 0xff, 0xf8, 0xb, 0xc0, 0xf4, 0x1f, 0x40,
+    0xb8, 0x0, 0x1f, 0x0, 0x7c, 0x1e, 0x0, 0x3c,
+    0x0, 0x3d, 0x0, 0x38, 0x6, 0x0, 0x5c, 0x0,
+    0x7, 0xff, 0xff, 0xcf, 0x47, 0xc0, 0x0, 0x3,
+    0xff, 0xff, 0xc7, 0xff, 0x40, 0x0, 0x1, 0x40,
+    0xf, 0x82, 0xf8, 0x2, 0xc0, 0x3, 0xf0, 0x3e,
+    0x0, 0xf8, 0x1f, 0x80, 0x0, 0xbe, 0xf8, 0x0,
+    0x3f, 0xfd, 0x0, 0x0, 0xf, 0xff, 0xff, 0xff,
+    0xe0, 0x0, 0x0, 0x7f, 0x5f, 0xff, 0xf6, 0xf8,
+    0x0, 0x7, 0xfc, 0x0, 0x0, 0x0, 0x7f, 0x80,
+    0x7f, 0xd0, 0x0, 0x0, 0x0, 0xb, 0xf8, 0x7d,
+    0x3f, 0xff, 0xff, 0xff, 0xf8, 0xbc, 0x10, 0x3e,
+    0xaa, 0xaa, 0xaa, 0xf8, 0x4, 0x0, 0x3c, 0x0,
+    0x0, 0x0, 0x78, 0x0, 0x0, 0x3e, 0xaa, 0xaa,
+    0xaa, 0xf8, 0x0, 0x0, 0x3f, 0xff, 0xff, 0xff,
+    0xf8, 0x0, 0x0, 0x1, 0xf0, 0x0, 0x1d, 0x0,
+    0x0, 0x0, 0x0, 0xf8, 0x0, 0x3e, 0x0, 0x0,
+    0x0, 0x0, 0x7c, 0x0, 0xfc, 0x0, 0x0, 0x1f,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x1f, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xf0,
+
+    /* U+7C27 "簧" */
+    0x0, 0x4, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0,
+    0xbc, 0x0, 0x2, 0xe0, 0x0, 0x0, 0x3, 0xd0,
+    0x0, 0xf, 0x0, 0x0, 0x0, 0x2f, 0xff, 0xfc,
+    0xbf, 0xff, 0xfe, 0x1, 0xff, 0xff, 0xfb, 0xff,
+    0xff, 0xf8, 0x1f, 0x43, 0xc0, 0x3d, 0x3, 0xc0,
+    0x0, 0xf8, 0xb, 0x2, 0xf0, 0xb, 0x40, 0x2,
+    0x80, 0x19, 0x2, 0xa, 0x4, 0x0, 0x6, 0xaa,
+    0xfe, 0xaa, 0xbe, 0xaa, 0x80, 0x2f, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0x0, 0x0, 0xb, 0x40, 0x3,
+    0xd0, 0x0, 0x0, 0x0, 0x2d, 0x0, 0xf, 0x0,
+    0x0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc,
+    0xaa, 0xaa, 0xab, 0xfa, 0xaa, 0xaa, 0xa0, 0x0,
+    0x0, 0x3, 0xc0, 0x0, 0x0, 0x0, 0x1a, 0xaa,
+    0xaf, 0xaa, 0xaa, 0x40, 0x0, 0xbf, 0xff, 0xff,
+    0xff, 0xfd, 0x0, 0x2, 0xd0, 0x0, 0xf0, 0x0,
+    0xb4, 0x0, 0xb, 0xaa, 0xab, 0xea, 0xab, 0xd0,
+    0x0, 0x2f, 0xff, 0xff, 0xff, 0xff, 0x40, 0x0,
+    0xb4, 0x0, 0x3c, 0x0, 0x2d, 0x0, 0x2, 0xd0,
+    0x0, 0xf0, 0x0, 0xb4, 0x0, 0xb, 0xff, 0xff,
+    0xff, 0xff, 0xd0, 0x0, 0x1a, 0xab, 0xaa, 0xaa,
+    0xaa, 0x0, 0x0, 0x0, 0x7c, 0x0, 0x7e, 0x40,
+    0x0, 0x0, 0xbf, 0xf0, 0x1, 0xbf, 0xe4, 0x0,
+    0xbf, 0xf4, 0x0, 0x0, 0x1b, 0xff, 0x3, 0xf4,
+    0x0, 0x0, 0x0, 0x1, 0xbc, 0x4, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
+    /* U+7C2A "簪" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0xf4, 0x0, 0x3, 0xc0, 0x0, 0x0, 0xb, 0xc0,
+    0xf0, 0x0, 0x3, 0xc0, 0x0, 0x0, 0xb, 0xc0,
     0x0, 0x2f, 0x0, 0x0, 0x0, 0x7f, 0xff, 0xfc,
-    0xff, 0xff, 0xfd, 0x7, 0xeb, 0xfa, 0xaf, 0xeb,
-    0xfa, 0xa4, 0x7d, 0x3, 0xc0, 0xbc, 0x3, 0xc0,
-    0x3, 0xd0, 0xf, 0x1, 0xc0, 0x7, 0x40, 0x1,
-    0x1, 0xe0, 0x0, 0x2, 0xc0, 0x0, 0xa, 0xab,
-    0xea, 0x46, 0xaf, 0xaa, 0x90, 0x3f, 0xff, 0xff,
-    0x2f, 0xff, 0xff, 0x80, 0x0, 0x78, 0x0, 0x0,
-    0xb0, 0x0, 0x0, 0x1, 0xe0, 0x0, 0x3, 0xc0,
-    0x0, 0x2f, 0xff, 0xff, 0xcf, 0xff, 0xff, 0xf0,
-    0x6a, 0xbe, 0xaa, 0x2a, 0xbf, 0xaa, 0x80, 0x1,
-    0xfe, 0x0, 0x3, 0xfd, 0x0, 0x0, 0x1f, 0xbf,
-    0x40, 0x3e, 0x3e, 0x0, 0x2, 0xf4, 0x1f, 0xcb,
-    0xe0, 0x3f, 0x40, 0xbf, 0x40, 0xa, 0x3c, 0x0,
-    0x1f, 0xe3, 0xe6, 0xaa, 0xaa, 0xaa, 0xaa, 0x8b,
-    0x44, 0x2f, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0,
-    0xb4, 0x0, 0x0, 0x0, 0x3c, 0x0, 0x2, 0xe0,
-    0x0, 0x0, 0x0, 0xf0, 0x0, 0xb, 0xff, 0xff,
-    0xff, 0xff, 0xc0, 0x0, 0x2f, 0xaa, 0xaa, 0xaa,
-    0xaf, 0x0, 0x0, 0xb4, 0x0, 0x0, 0x0, 0x3c,
+    0xff, 0xff, 0xfd, 0x7, 0xea, 0xfa, 0xaf, 0xaa,
+    0xfa, 0xa0, 0x7d, 0x3, 0xd0, 0xbc, 0x1, 0xf0,
+    0x3, 0xd0, 0x7, 0x40, 0xc0, 0x3, 0x80, 0x2,
+    0xff, 0xff, 0xf3, 0xff, 0xff, 0xfc, 0x6, 0xab,
+    0xea, 0x8a, 0xab, 0xea, 0xa0, 0x1c, 0xf, 0x0,
+    0x1c, 0xb, 0x0, 0x0, 0xb0, 0x38, 0x0, 0xb0,
+    0x3c, 0x0, 0x3, 0xff, 0xff, 0xf7, 0xff, 0xff,
+    0xfc, 0x6, 0xaf, 0xba, 0x86, 0xaf, 0xfa, 0xa0,
+    0x0, 0xf5, 0xd0, 0x0, 0xbb, 0x80, 0x40, 0xf,
+    0x87, 0x5f, 0xb, 0xce, 0x3, 0x81, 0xf8, 0x1f,
+    0xf5, 0xfc, 0x3e, 0xbd, 0x3f, 0x80, 0xf9, 0x1f,
+    0x80, 0x7f, 0xe0, 0xf0, 0x0, 0x0, 0x20, 0x0,
+    0x0, 0x0, 0xb, 0xff, 0xff, 0xff, 0xff, 0xc0,
+    0x0, 0x2f, 0xaa, 0xaa, 0xaa, 0xaf, 0x0, 0x0,
+    0xb8, 0x0, 0x0, 0x0, 0x3c, 0x0, 0x2, 0xf5,
+    0x55, 0x55, 0x56, 0xf0, 0x0, 0xb, 0xff, 0xff,
+    0xff, 0xff, 0xc0, 0x0, 0x2e, 0x0, 0x0, 0x0,
+    0xf, 0x0, 0x0, 0xb8, 0x0, 0x0, 0x0, 0x3c,
     0x0, 0x2, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x0,
-    0xb, 0xea, 0xaa, 0xaa, 0xab, 0xc0, 0x0, 0x2d,
+    0xb, 0xea, 0xaa, 0xaa, 0xab, 0xc0, 0x0, 0x2e,
     0x0, 0x0, 0x0, 0xf, 0x0,
 
-    /* U+7C39 "簹" */
-    0x0, 0x18, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0,
-    0xf0, 0x0, 0x2, 0xd0, 0x0, 0x0, 0xb, 0xea,
-    0xaa, 0xf, 0xaa, 0xaa, 0x0, 0x7f, 0xff, 0xfd,
-    0xff, 0xff, 0xfc, 0x3, 0xd1, 0xf0, 0xb, 0xc0,
-    0xf4, 0x0, 0x3d, 0x3, 0xc0, 0x1c, 0x1, 0xf0,
-    0x3, 0xe0, 0x27, 0x83, 0xc0, 0x6, 0x0, 0x6,
-    0x3, 0xf4, 0xf, 0x0, 0xf0, 0x0, 0x0, 0x3,
-    0xd0, 0x3c, 0xf, 0x40, 0x0, 0x2a, 0xab, 0xaa,
-    0xfa, 0xbe, 0xaa, 0x0, 0xff, 0xff, 0xff, 0xff,
-    0xff, 0xfc, 0x3, 0xc0, 0x0, 0x0, 0x0, 0x0,
-    0xf0, 0xf, 0x0, 0x0, 0x0, 0x0, 0x3, 0xc0,
-    0x3c, 0x3f, 0xff, 0xff, 0xff, 0xf, 0x0, 0xf0,
-    0xfa, 0xaa, 0xaa, 0xbc, 0x2c, 0x0, 0x3, 0xc0,
-    0x0, 0x0, 0xf0, 0x0, 0x0, 0xf, 0xff, 0xff,
-    0xff, 0xc0, 0x0, 0x0, 0x2a, 0xaa, 0xaa, 0xaa,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0x40, 0x0,
-    0xfa, 0xaa, 0xbe, 0xaa, 0xbd, 0x0, 0x3, 0xc0,
-    0x0, 0xf0, 0x0, 0xf4, 0x0, 0xf, 0xff, 0xff,
-    0xff, 0xff, 0xd0, 0x0, 0x3e, 0xaa, 0xaf, 0xaa,
-    0xaf, 0x40, 0x0, 0xf0, 0x0, 0x3c, 0x0, 0x3d,
-    0x0, 0x3, 0xea, 0xaa, 0xfa, 0xaa, 0xf4, 0x0,
-    0xf, 0xff, 0xff, 0xff, 0xff, 0xd0, 0x0, 0x3c,
-    0x0, 0x0, 0x0, 0xf, 0x40,
+    /* U+7C38 "簸" */
+    0x0, 0x4, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0,
+    0x3e, 0x0, 0x0, 0x7c, 0x0, 0x0, 0x0, 0x7c,
+    0x0, 0x0, 0xf8, 0x0, 0x0, 0x0, 0xff, 0xff,
+    0xf5, 0xff, 0xff, 0xfc, 0x2, 0xff, 0xff, 0xf7,
+    0xff, 0xff, 0xfc, 0xb, 0xc0, 0xf0, 0xb, 0xc0,
+    0xb8, 0x0, 0x1f, 0x0, 0xb8, 0x1f, 0x0, 0x3c,
+    0x0, 0x2d, 0x0, 0x34, 0x1d, 0x1, 0x5d, 0x0,
+    0x2, 0xc0, 0xe, 0x0, 0x2, 0xc0, 0x0, 0xb,
+    0xea, 0xaf, 0x8a, 0xab, 0xea, 0xa0, 0x1f, 0xff,
+    0xff, 0xdf, 0xff, 0xff, 0xf4, 0x2, 0xc0, 0xe,
+    0xf, 0x2, 0xc0, 0xb0, 0x2, 0xc0, 0xe, 0xf,
+    0x2, 0xc0, 0xf0, 0x2, 0xea, 0xae, 0xf, 0x2,
+    0xc1, 0xd0, 0x2, 0xff, 0xfe, 0xf, 0x2, 0xc0,
+    0x0, 0x2, 0xc0, 0xe, 0xf, 0xab, 0xea, 0x80,
+    0x2, 0xc0, 0xe, 0xf, 0xff, 0xff, 0xc0, 0x2,
+    0xff, 0xfe, 0xf, 0x24, 0x3, 0xc0, 0x2, 0xd5,
+    0x6e, 0xf, 0x78, 0x7, 0x80, 0x2, 0xc0, 0xe,
+    0xf, 0x3c, 0xb, 0x0, 0x2b, 0xea, 0xaf, 0x9e,
+    0x1e, 0x1e, 0x0, 0x3f, 0xff, 0xff, 0xfe, 0xb,
+    0xbc, 0x0, 0x0, 0x10, 0x10, 0x2d, 0x3, 0xf4,
+    0x0, 0x0, 0xf4, 0x74, 0x3c, 0x7, 0xf8, 0x0,
+    0x2, 0xe0, 0x3d, 0x78, 0x2f, 0xaf, 0x40, 0xb,
+    0xc0, 0xe, 0xf6, 0xfd, 0x7, 0xf4, 0x2f, 0x0,
+    0x1, 0xeb, 0xe0, 0x0, 0xbc, 0x1c, 0x0, 0x1,
+    0xc2, 0x0, 0x0, 0x14, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
 
     /* U+7C3F "簿" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -105164,6 +110365,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xf, 0xaa, 0xaa, 0xab, 0xc0, 0xa, 0x40, 0xf,
     0x0, 0x0, 0x3, 0xc0,
 
+    /* U+7C41 "籁" */
+    0x0, 0x14, 0x0, 0x0, 0x14, 0x0, 0x0, 0x0,
+    0xf0, 0x0, 0x3, 0xe0, 0x0, 0x0, 0xb, 0x80,
+    0x0, 0x1f, 0x0, 0x0, 0x0, 0x7f, 0xff, 0xfc,
+    0xff, 0xff, 0xfe, 0x3, 0xff, 0xff, 0xeb, 0xff,
+    0xff, 0xf4, 0x3e, 0x3, 0xd0, 0x7c, 0x1, 0xe0,
+    0x2, 0xf0, 0x7, 0xc3, 0xd1, 0x3, 0xd0, 0xf,
+    0x3, 0xcd, 0xa, 0x1f, 0x6, 0x0, 0x0, 0xf,
+    0x0, 0x0, 0xf4, 0x0, 0x0, 0x6a, 0xbe, 0xaa,
+    0x7, 0xff, 0xfd, 0x2, 0xff, 0xff, 0xfc, 0x3e,
+    0xaa, 0xf4, 0x0, 0x3, 0xc0, 0x3, 0xd0, 0x7,
+    0x80, 0x0, 0xf, 0x0, 0x2e, 0x0, 0x7c, 0x0,
+    0x2a, 0xbe, 0xa9, 0xff, 0xff, 0xff, 0x0, 0xff,
+    0xff, 0xf1, 0xff, 0xff, 0xfc, 0x3, 0xc3, 0xc2,
+    0xc3, 0xc0, 0x0, 0xf0, 0xf, 0xf, 0xb, 0xf,
+    0x2, 0x43, 0xc0, 0x3c, 0x3c, 0x2c, 0x3c, 0xe,
+    0xf, 0x0, 0xff, 0xff, 0xf0, 0xf0, 0x38, 0x3c,
+    0x1, 0xab, 0xea, 0x83, 0xc0, 0xe0, 0xf0, 0x0,
+    0x3f, 0x60, 0xf, 0x7, 0x83, 0xc0, 0x3, 0xfe,
+    0xe0, 0x3c, 0x1e, 0xf, 0x0, 0x3d, 0xf2, 0xf0,
+    0xa0, 0xf0, 0x28, 0x7, 0xd3, 0xc2, 0xf0, 0xb,
+    0x9d, 0x0, 0xbd, 0xf, 0x1, 0x40, 0xfc, 0x3f,
+    0x2, 0xd0, 0x3c, 0x0, 0x7f, 0x80, 0x2f, 0x80,
+    0x0, 0xf0, 0xf, 0xf0, 0x0, 0x1f, 0x80, 0x3,
+    0xc0, 0x38, 0x0, 0x0, 0x8, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+7C4D "籍" */
     0x0, 0x1, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0,
     0x3, 0xe0, 0x0, 0xb, 0x80, 0x0, 0x0, 0x1,
@@ -105599,6 +110827,59 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0xf, 0x0, 0x0, 0x6f, 0x1, 0x0, 0x0,
     0x3, 0xc0, 0x0, 0x0, 0x0,
 
+    /* U+7CA2 "粢" */
+    0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x6,
+    0x0, 0x0, 0xf4, 0x0, 0x0, 0x0, 0xf, 0xd0,
+    0x2, 0xf0, 0x0, 0x0, 0x0, 0x3, 0xf8, 0x3,
+    0xff, 0xff, 0xff, 0xd0, 0x0, 0xbe, 0xf, 0xff,
+    0xff, 0xff, 0xd0, 0x0, 0x1c, 0x2f, 0x0, 0x0,
+    0x3, 0xc0, 0x0, 0x0, 0x7d, 0x1, 0xf0, 0xf,
+    0x40, 0x0, 0x4, 0xf8, 0x2, 0xe0, 0x1f, 0x0,
+    0x0, 0x2f, 0x10, 0x3, 0xf4, 0x4, 0x0, 0x0,
+    0xfd, 0x0, 0xf, 0xff, 0x80, 0x0, 0x3, 0xf0,
+    0x0, 0xbf, 0xb, 0xf8, 0x0, 0x1f, 0x80, 0x6f,
+    0xf8, 0x0, 0xbf, 0x80, 0x3e, 0x1, 0xff, 0x80,
+    0x0, 0xb, 0xf0, 0x14, 0x28, 0xe4, 0x38, 0x0,
+    0x30, 0xb0, 0x0, 0x3f, 0x0, 0x7c, 0x0, 0xf8,
+    0x0, 0x0, 0xf, 0xc0, 0x7c, 0x3, 0xe0, 0x0,
+    0x0, 0x3, 0xe0, 0x7c, 0xf, 0x80, 0x0, 0x0,
+    0x0, 0xd0, 0x7c, 0xe, 0x0, 0x0, 0x1f, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xf0, 0x1f, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xf0, 0x0, 0x0, 0x7, 0xff,
+    0x80, 0x0, 0x0, 0x0, 0x0, 0x7f, 0xbf, 0xf4,
+    0x0, 0x0, 0x0, 0x7, 0xfc, 0x7c, 0xbf, 0x40,
+    0x0, 0x0, 0x7f, 0xd0, 0x7c, 0x1f, 0xf9, 0x0,
+    0x1b, 0xfd, 0x0, 0x7c, 0x1, 0xff, 0xe4, 0xbf,
+    0xd0, 0x0, 0x7c, 0x0, 0xb, 0xfc, 0x38, 0x0,
+    0x0, 0x7c, 0x0, 0x0, 0x78, 0x0, 0x0, 0x0,
+    0x7c, 0x0, 0x0, 0x0,
+
+    /* U+7CA4 "粤" */
+    0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xb, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x3e, 0x0, 0x0, 0x0, 0x0, 0xbf, 0xff, 0xff,
+    0xff, 0xff, 0xd0, 0x2, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0x40, 0xb, 0x4b, 0x0, 0xa0, 0x1c, 0x3d,
+    0x0, 0x2d, 0xf, 0x43, 0x82, 0xf0, 0xf4, 0x0,
+    0xb4, 0xb, 0x4e, 0x3e, 0x3, 0xd0, 0x2, 0xd5,
+    0x5d, 0xbd, 0xa5, 0x4f, 0x40, 0xb, 0x6f, 0xff,
+    0xff, 0xff, 0x3d, 0x0, 0x2d, 0x0, 0x6f, 0x98,
+    0x0, 0xf4, 0x0, 0xb4, 0x1f, 0xee, 0xbf, 0x43,
+    0xd0, 0x2, 0xdb, 0xf4, 0x38, 0x1f, 0xcf, 0x40,
+    0xb, 0x58, 0x0, 0xe0, 0x5, 0x3d, 0x0, 0x2f,
+    0xaa, 0xaa, 0xaa, 0xaa, 0xf4, 0x0, 0xbf, 0xff,
+    0xff, 0xff, 0xff, 0xd0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0,
+    0xf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f,
+    0xff, 0xff, 0xff, 0xf0, 0x0, 0x2, 0xff, 0xff,
+    0xff, 0xff, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x78,
+    0x0, 0x0, 0x0, 0x0, 0x5, 0xab, 0xd0, 0x0,
+    0x0, 0x0, 0x0, 0x7f, 0xfe, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xa5, 0x40, 0x0,
+
     /* U+7CA5 "粥" */
     0x0, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x3c, 0x0, 0x0, 0xf, 0xff, 0xd0, 0xf,
@@ -105707,6 +110988,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x78, 0x0, 0x1, 0xfc, 0x10, 0x0, 0x0,
     0x78, 0x0, 0x0, 0x0,
 
+    /* U+7CB2 "粲" */
+    0x0, 0x2, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x3, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3,
+    0xff, 0xf3, 0xff, 0xff, 0xd0, 0x0, 0x3, 0xea,
+    0xa3, 0xff, 0xff, 0xd0, 0x0, 0xd3, 0xc0, 0x0,
+    0x0, 0x3, 0xc0, 0x2, 0xe3, 0xc0, 0x2, 0x40,
+    0xb, 0x40, 0x3, 0xff, 0xff, 0xe7, 0xe0, 0x1f,
+    0x0, 0xf, 0xea, 0xab, 0xe1, 0xfd, 0x7c, 0x0,
+    0x3f, 0xe0, 0x7, 0xc0, 0x2f, 0xf4, 0x0, 0x78,
+    0xbd, 0x1f, 0x0, 0x1f, 0xf8, 0x0, 0x20, 0x1c,
+    0xbd, 0x2, 0xfe, 0x7f, 0x40, 0x0, 0x7, 0xf0,
+    0x7f, 0xe0, 0xb, 0xe0, 0x1, 0xbf, 0x80, 0x3d,
+    0x0, 0x1, 0xf8, 0x2f, 0xf9, 0x0, 0x24, 0x0,
+    0xa0, 0x20, 0x3f, 0x4b, 0x40, 0x7c, 0x2, 0xf0,
+    0x0, 0x10, 0x3, 0xd0, 0x7c, 0x7, 0xc0, 0x0,
+    0x0, 0x0, 0xf0, 0x7c, 0x1f, 0x0, 0x0, 0x0,
+    0x0, 0x60, 0x7c, 0xc, 0x0, 0x0, 0x1f, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xf0, 0x1f, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xe0, 0x0, 0x0, 0xb, 0xff,
+    0xd0, 0x0, 0x0, 0x0, 0x0, 0xbe, 0x7d, 0xfd,
+    0x0, 0x0, 0x0, 0x1b, 0xf4, 0x7c, 0x2f, 0xe0,
+    0x0, 0x6, 0xff, 0x40, 0x7c, 0x2, 0xff, 0x40,
+    0x7f, 0xf4, 0x0, 0x7c, 0x0, 0x2f, 0xfc, 0x3e,
+    0x0, 0x0, 0x7c, 0x0, 0x1, 0xbc, 0x0, 0x0,
+    0x0, 0x7c, 0x0, 0x0, 0x0,
+
     /* U+7CB3 "粳" */
     0x0, 0x1d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0xb, 0x40, 0x2f, 0xff, 0xff, 0xff, 0x81, 0xc2,
@@ -105735,32 +111042,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x1, 0xa0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+7CB5 "粵" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x7, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x3e, 0x0, 0x0, 0x0, 0x0, 0xaa, 0xaa, 0xfe,
-    0xaa, 0xaa, 0x80, 0x3, 0xff, 0xff, 0xff, 0xff,
-    0xff, 0x40, 0xf, 0x0, 0x0, 0x1, 0x54, 0x2d,
-    0x0, 0x3c, 0x3f, 0xff, 0xff, 0xe0, 0xb4, 0x0,
-    0xf0, 0xbe, 0xaf, 0x57, 0x2, 0xd0, 0x3, 0xc0,
-    0x7c, 0x38, 0xbc, 0xb, 0x40, 0xf, 0x1a, 0xfa,
-    0xfb, 0xea, 0x2d, 0x0, 0x3c, 0xbf, 0xff, 0xff,
-    0xfc, 0xb4, 0x0, 0xf0, 0x1, 0xfe, 0x50, 0x2,
-    0xd0, 0x3, 0xc1, 0xbf, 0xbb, 0xf8, 0xb, 0x40,
-    0xf, 0x2f, 0xd0, 0xe1, 0xff, 0x2d, 0x0, 0x3c,
-    0x64, 0x3, 0x80, 0x24, 0xb4, 0x0, 0xff, 0xff,
-    0xff, 0xff, 0xff, 0xd0, 0x2, 0xaa, 0xaa, 0xaa,
-    0xaa, 0xaa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x6, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
-    0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0,
-    0xf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7c,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0xff, 0xff,
-    0xff, 0xff, 0xc0, 0x0, 0x6, 0xaa, 0xaa, 0xaa,
-    0xaf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb8,
-    0x0, 0x0, 0x0, 0x0, 0x2f, 0xff, 0xd0, 0x0,
-    0x0, 0x0, 0x0, 0xff, 0xf9, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x0,
-
     /* U+7CB9 "粹" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x2, 0xd0, 0x0, 0x2, 0xd0, 0x0, 0x0, 0x0,
@@ -106264,6 +111545,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x7, 0xf0, 0x0, 0x0, 0x0, 0x78, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+7CE8 "糨" */
+    0x0, 0x38, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xf, 0x0, 0x55, 0x40, 0x0, 0x0, 0x0, 0x3,
+    0xc0, 0x3f, 0xf0, 0xff, 0xff, 0x0, 0xb0, 0xf1,
+    0xdf, 0xfc, 0x3e, 0xab, 0xc0, 0x2d, 0x3c, 0xb4,
+    0xb, 0xe, 0x0, 0xb0, 0x3, 0xcf, 0x3c, 0x2,
+    0xc3, 0x80, 0x2c, 0x0, 0xf3, 0xde, 0x0, 0xb0,
+    0xe0, 0xb, 0x0, 0x2d, 0xfb, 0x0, 0x2c, 0x3f,
+    0xff, 0xc0, 0x6, 0x3f, 0xc2, 0xff, 0xf, 0xff,
+    0xf0, 0x0, 0xf, 0x0, 0xff, 0xc0, 0xf, 0x0,
+    0x1, 0xff, 0xfe, 0x3c, 0x0, 0x3, 0xc0, 0x0,
+    0x7f, 0xff, 0xcf, 0x0, 0x0, 0xf0, 0x0, 0xa,
+    0xbe, 0x93, 0xc0, 0x3f, 0xff, 0xfc, 0x0, 0xf,
+    0x0, 0xf0, 0xf, 0xaf, 0xaf, 0x0, 0x7, 0xc0,
+    0x3c, 0x3, 0x83, 0xc3, 0xc0, 0x3, 0xf9, 0xf,
+    0xfc, 0xe0, 0xf0, 0xf0, 0x2, 0xff, 0xc2, 0xaf,
+    0x38, 0x3c, 0x3c, 0x0, 0xff, 0x7c, 0x3, 0xcf,
+    0xff, 0xff, 0x0, 0xb7, 0xcb, 0xc0, 0xe3, 0xff,
+    0xff, 0xc0, 0x7c, 0xf0, 0xe0, 0x38, 0x0, 0xf0,
+    0x0, 0x3c, 0x3c, 0x0, 0xe, 0x0, 0x3c, 0x74,
+    0xd, 0xf, 0x0, 0x3, 0x80, 0xf, 0xf, 0x0,
+    0x3, 0xc0, 0x0, 0xe0, 0x3, 0xc2, 0xc0, 0x0,
+    0xf0, 0x0, 0xb9, 0x6a, 0xff, 0xf4, 0x0, 0x3c,
+    0x3, 0xfd, 0xff, 0xff, 0xff, 0x0, 0xf, 0x0,
+    0xfe, 0x2a, 0x54, 0x2, 0xc0, 0x3, 0xc0, 0x0,
+    0x0, 0x0, 0x0, 0x70, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+7CEF "糯" */
     0x0, 0x2c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x3c, 0x1, 0xff, 0xff, 0xff, 0xe0, 0x1c, 0x3c,
@@ -106290,6 +111599,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x3c, 0x3, 0xc0, 0xe0, 0xe7, 0xf0, 0x0, 0x3c,
     0x2, 0xc0, 0x0, 0x3, 0xd0,
 
+    /* U+7CF8 "糸" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x3, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x3f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0xf0,
+    0x0, 0x38, 0x0, 0x0, 0x0, 0x7e, 0x0, 0x3,
+    0xf0, 0x0, 0x0, 0x7, 0xe0, 0x0, 0x3f, 0x40,
+    0x0, 0x0, 0xbe, 0x0, 0x3, 0xf4, 0x0, 0x0,
+    0x1f, 0xd0, 0x0, 0x7f, 0x0, 0x0, 0x3, 0xff,
+    0xff, 0xff, 0xf0, 0x0, 0x0, 0xf, 0xff, 0xff,
+    0xfe, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xe0,
+    0x10, 0x0, 0x0, 0x0, 0x1, 0xfd, 0x2, 0xf0,
+    0x0, 0x0, 0x0, 0x2f, 0xc0, 0x3, 0xf0, 0x0,
+    0x0, 0x3, 0xf4, 0x0, 0x3, 0xf0, 0x0, 0x0,
+    0xbf, 0x0, 0x0, 0x3, 0xf0, 0x0, 0xaf, 0xfa,
+    0xab, 0xff, 0xff, 0xe0, 0x7, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xe0, 0xa, 0x95, 0x55, 0xf0, 0x0,
+    0xb, 0xc0, 0x0, 0x0, 0x3, 0xc0, 0x0, 0x8,
+    0x0, 0x0, 0x90, 0xf, 0x2, 0x80, 0x0, 0x0,
+    0x7, 0xd0, 0x3c, 0xf, 0xc0, 0x0, 0x0, 0x7e,
+    0x0, 0xf0, 0xb, 0xd0, 0x0, 0x7, 0xe0, 0x3,
+    0xc0, 0xb, 0xe0, 0x0, 0xbe, 0x0, 0xf, 0x0,
+    0x7, 0xe0, 0xf, 0xe0, 0x0, 0x7c, 0x0, 0x7,
+    0xf0, 0xfd, 0x0, 0x6f, 0xf0, 0x0, 0x7, 0xd2,
+    0xc0, 0x2, 0xff, 0x40, 0x0, 0x2, 0x0, 0x0,
+    0x2, 0x50, 0x0, 0x0, 0x0,
+
     /* U+7CFB "系" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x15, 0xab, 0xc0, 0x6, 0xaa,
@@ -106501,6 +111836,60 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xd0, 0x0, 0xff, 0x40, 0x0, 0xb, 0x0, 0x0,
     0x1, 0x40, 0x0, 0x0, 0x0,
 
+    /* U+7D77 "絷" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xf, 0x0, 0x2, 0xc0, 0x0, 0x0, 0x0, 0xf,
+    0x0, 0x3, 0xc0, 0x0, 0x0, 0x2a, 0xaf, 0xa8,
+    0xab, 0xea, 0xa8, 0x0, 0x3f, 0xff, 0xfd, 0xff,
+    0xff, 0xfc, 0x0, 0x0, 0xf, 0x0, 0x3, 0xc0,
+    0x3c, 0x0, 0x0, 0xf, 0x4, 0x3, 0xc0, 0x3c,
+    0x0, 0x0, 0x1f, 0xfe, 0x93, 0xc0, 0x3c, 0x0,
+    0xbf, 0xff, 0xe6, 0xff, 0xc0, 0x3c, 0x14, 0xbe,
+    0x5f, 0x0, 0x2f, 0xfd, 0x2c, 0x2c, 0x0, 0xf,
+    0x0, 0x3e, 0x7f, 0x2c, 0x38, 0x0, 0x1f, 0x2,
+    0xf8, 0x2, 0x1e, 0x34, 0x2, 0xbe, 0x1, 0xd0,
+    0x0, 0xf, 0xf0, 0x2, 0xf8, 0xb, 0x0, 0x6,
+    0x7, 0xe0, 0x0, 0x0, 0x7e, 0x0, 0x2f, 0x40,
+    0x0, 0x0, 0x7, 0xf4, 0x1, 0xfd, 0x0, 0x0,
+    0x1, 0xff, 0xff, 0xff, 0xe0, 0x0, 0x0, 0x1,
+    0xea, 0xab, 0xfe, 0x7, 0x40, 0x0, 0x0, 0x0,
+    0x6f, 0xd0, 0x7, 0xf0, 0x0, 0x0, 0x1b, 0xfd,
+    0x0, 0x15, 0xfd, 0x0, 0xf, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0x80, 0xa, 0xa9, 0x55, 0x7d, 0x0,
+    0x3, 0xc0, 0x0, 0x0, 0x80, 0x3c, 0x14, 0x0,
+    0x0, 0x0, 0x1b, 0xc0, 0x3c, 0x3f, 0x90, 0x0,
+    0x1, 0xff, 0x0, 0x7c, 0xb, 0xfe, 0x0, 0x2f,
+    0xf4, 0x5, 0xfc, 0x0, 0x6f, 0xf0, 0x3e, 0x0,
+    0xf, 0xf4, 0x0, 0x1, 0xf4, 0x10, 0x0, 0x6,
+    0x40, 0x0, 0x0, 0x10,
+
+    /* U+7DA6 "綦" */
+    0x0, 0x4, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0,
+    0xf, 0x0, 0x0, 0x1, 0xf0, 0x0, 0x0, 0xf,
+    0x0, 0x0, 0x1, 0xf0, 0x0, 0x1f, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xf0, 0x1f, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xf0, 0x0, 0xf, 0x0, 0x0, 0x1,
+    0xf0, 0x0, 0x0, 0xf, 0xaa, 0xaa, 0xab, 0xf0,
+    0x0, 0x0, 0xf, 0xff, 0xff, 0xff, 0xf0, 0x0,
+    0x0, 0xf, 0x0, 0x0, 0x1, 0xf0, 0x0, 0x0,
+    0xf, 0xaa, 0xaa, 0xab, 0xf0, 0x0, 0x0, 0xf,
+    0xff, 0xff, 0xff, 0xf0, 0x0, 0x0, 0xf, 0x0,
+    0x0, 0x1, 0xf0, 0x0, 0x2a, 0xaf, 0xaa, 0xaa,
+    0xab, 0xfa, 0xa8, 0x3f, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xfc, 0x0, 0x3, 0xe0, 0x70, 0xb, 0xc0,
+    0x0, 0x0, 0xf, 0x82, 0xf0, 0x3, 0xf0, 0x0,
+    0x0, 0x7e, 0xf, 0x80, 0xb4, 0xfd, 0x0, 0x2,
+    0xf8, 0xff, 0xff, 0xe0, 0x2f, 0x80, 0x1f, 0xd0,
+    0x95, 0xff, 0x9, 0x7, 0xf8, 0xbf, 0x0, 0x7,
+    0xf4, 0xf, 0x40, 0xfd, 0x74, 0x1, 0xbf, 0x9a,
+    0xaf, 0xe0, 0x1c, 0x0, 0x3f, 0xff, 0xff, 0xff,
+    0xfc, 0x0, 0x0, 0x15, 0x54, 0x7c, 0x0, 0x2c,
+    0x0, 0x0, 0x2, 0xd0, 0x3c, 0x2e, 0x40, 0x0,
+    0x0, 0x6f, 0xd0, 0x3c, 0x1f, 0xf8, 0x0, 0xb,
+    0xfd, 0x1, 0xbc, 0x0, 0x7f, 0xd0, 0x2f, 0x90,
+    0x7, 0xf4, 0x0, 0x6, 0xf0, 0x4, 0x0, 0x2,
+    0x40, 0x0, 0x0, 0x10,
+
     /* U+7DAE "綮" */
     0x0, 0x5, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0,
     0xf, 0x0, 0x0, 0x78, 0x0, 0x0, 0x0, 0xb,
@@ -106528,34 +111917,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xf, 0xf4, 0x0, 0x0, 0xb0, 0x0, 0x0, 0x5,
     0x0, 0x0, 0x0, 0x0,
 
-    /* U+7DDA "線" */
-    0x0, 0x4, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0,
-    0x3, 0xc0, 0x0, 0x3, 0xd0, 0x0, 0x0, 0x1,
-    0xe0, 0x0, 0x1, 0xf0, 0x0, 0x0, 0x0, 0xf4,
-    0x0, 0xaa, 0xfe, 0xaa, 0x80, 0x0, 0x7c, 0x0,
-    0x3f, 0xff, 0xff, 0xf0, 0x0, 0x3d, 0x8, 0xf,
-    0x0, 0x0, 0x3c, 0x0, 0x2e, 0x7, 0x83, 0xc0,
-    0x0, 0xf, 0x0, 0xf, 0x3, 0xc0, 0xf0, 0x0,
-    0x3, 0xc0, 0xb, 0x82, 0xe0, 0x3f, 0xff, 0xff,
-    0xf0, 0xb, 0xff, 0xf0, 0xf, 0xaa, 0xaa, 0xfc,
-    0x1, 0xff, 0xf4, 0x3, 0xc0, 0x0, 0xf, 0x0,
-    0x0, 0x7c, 0x0, 0xf0, 0x0, 0x3, 0xc0, 0x0,
-    0x3c, 0x70, 0x3e, 0xaa, 0xab, 0xf0, 0x0, 0x2d,
-    0xe, 0xf, 0xff, 0xff, 0xfc, 0x0, 0x1f, 0x3,
-    0xc0, 0x0, 0x78, 0x0, 0x0, 0xf, 0x56, 0xf4,
-    0x0, 0xf, 0x0, 0x40, 0xf, 0xff, 0xfe, 0x0,
-    0x3, 0xc0, 0x7c, 0x3, 0xff, 0xa7, 0xff, 0xf0,
-    0xf8, 0x7e, 0x0, 0x40, 0x0, 0x6f, 0xfc, 0x3f,
-    0xbd, 0x0, 0x4, 0x0, 0x90, 0xf, 0xf, 0xfc,
-    0x0, 0x7, 0x2c, 0x38, 0x7, 0x83, 0xbd, 0x0,
-    0x2, 0xc7, 0x4b, 0x3, 0xc0, 0xe3, 0xc0, 0x0,
-    0xf1, 0xd1, 0xc2, 0xe0, 0x38, 0x7c, 0x0, 0x38,
-    0x38, 0x75, 0xf0, 0xe, 0xb, 0xd0, 0x1d, 0xe,
-    0xe, 0xf4, 0x7, 0x80, 0xbe, 0xb, 0x3, 0xc0,
-    0xf8, 0x1b, 0xe0, 0xb, 0xc3, 0xc0, 0xf0, 0x28,
-    0xf, 0xf4, 0x0, 0x60, 0x0, 0x0, 0x0, 0x1,
-    0xa0, 0x0, 0x0,
-
     /* U+7E3B "縻" */
     0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x2, 0xe0, 0x0, 0x0, 0x0, 0x0,
@@ -106584,6 +111945,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xf8, 0x0, 0x1, 0x90, 0x20, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+7E41 "繁" */
+    0x0, 0x10, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0,
+    0xb4, 0x0, 0x0, 0x1f, 0x0, 0x0, 0x1, 0xf5,
+    0x55, 0x54, 0x3d, 0x0, 0x0, 0x3, 0xff, 0xff,
+    0xfc, 0x7e, 0xaa, 0xa4, 0xf, 0x40, 0x0, 0x0,
+    0xff, 0xff, 0xf8, 0x3f, 0x55, 0x55, 0x52, 0xf0,
+    0xb, 0x80, 0x1a, 0xff, 0xff, 0xeb, 0xf0, 0xf,
+    0x0, 0x3, 0xc3, 0xc0, 0xeb, 0x38, 0x1e, 0x0,
+    0x3, 0xc0, 0xf1, 0xe0, 0x2d, 0x3c, 0x0, 0xbf,
+    0xff, 0xff, 0xff, 0xf, 0xf4, 0x0, 0x7, 0x87,
+    0x81, 0xe0, 0x7, 0xf0, 0x0, 0x7, 0x41, 0xe1,
+    0xd0, 0x1f, 0xfd, 0x0, 0xb, 0xff, 0xff, 0xf5,
+    0xfd, 0x2f, 0xd0, 0x5, 0x55, 0x5f, 0xeb, 0xe1,
+    0x3, 0xfd, 0x0, 0x0, 0x3e, 0x2, 0xb, 0x80,
+    0x7c, 0x0, 0x2, 0xf8, 0x0, 0x7f, 0x40, 0x0,
+    0x0, 0x6f, 0xfa, 0xab, 0xf4, 0x0, 0x0, 0x0,
+    0xff, 0xff, 0xff, 0x42, 0x0, 0x0, 0x0, 0x0,
+    0xb, 0xf4, 0x7, 0xe0, 0x0, 0x0, 0x6, 0xfe,
+    0x0, 0x1, 0xfc, 0x0, 0x2, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0x40, 0x3, 0xff, 0xfa, 0xbe, 0xaa,
+    0x57, 0xc0, 0x0, 0x0, 0x40, 0x3c, 0x9, 0x0,
+    0x80, 0x0, 0x1b, 0xc0, 0x3c, 0xf, 0xf4, 0x0,
+    0x2, 0xfe, 0x40, 0x7c, 0x1, 0xbf, 0x80, 0x7f,
+    0xe0, 0x2b, 0xf8, 0x0, 0x7, 0xfc, 0x39, 0x0,
+    0x1f, 0xe0, 0x0, 0x0, 0x28, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+7E47 "繇" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x15, 0xaf, 0xe0, 0x1, 0x6b, 0xf8, 0x3f, 0xff,
@@ -106665,6 +112053,73 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xc0, 0xbc, 0x1b, 0xc0, 0x38, 0x0, 0x1a, 0x0,
     0x10, 0xa, 0x40, 0x0,
 
+    /* U+7E9F "纟" */
+    0x0, 0x0, 0x40, 0x0, 0x0, 0x1, 0xf0, 0x0,
+    0x0, 0x3, 0xf0, 0x0, 0x0, 0x7, 0xc0, 0x0,
+    0x0, 0xf, 0x80, 0x0, 0x0, 0x3f, 0x0, 0xb0,
+    0x0, 0xbc, 0x0, 0xf4, 0x1, 0xf4, 0x3, 0xe0,
+    0x3, 0xe0, 0xb, 0xc0, 0x1f, 0xff, 0xff, 0x40,
+    0x1f, 0xff, 0xfe, 0x0, 0x4, 0x0, 0xbc, 0x0,
+    0x0, 0x2, 0xf0, 0x0, 0x0, 0x7, 0xd0, 0x0,
+    0x0, 0xf, 0x80, 0x0, 0x0, 0x3e, 0x0, 0x0,
+    0x1, 0xfe, 0xab, 0xf0, 0x7, 0xff, 0xff, 0xf0,
+    0x7, 0xff, 0xa5, 0x40, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x5, 0xbd, 0x1, 0x6b, 0xff, 0xfd,
+    0x3f, 0xff, 0xfe, 0x94, 0x3f, 0xe9, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
+    /* U+7EA0 "纠" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xd0, 0x0, 0x0, 0x2, 0x80, 0x0, 0xb8, 0x0,
+    0x0, 0x0, 0xf4, 0x0, 0x3c, 0x0, 0x0, 0x0,
+    0x3d, 0x0, 0x3e, 0x0, 0xf, 0x40, 0xf, 0x40,
+    0x1f, 0x0, 0x3, 0xd0, 0x3, 0xd0, 0xf, 0x40,
+    0x74, 0xf4, 0x0, 0xf4, 0xf, 0x80, 0x3d, 0x3d,
+    0x0, 0x3d, 0xb, 0xc0, 0x2f, 0xf, 0x40, 0xf,
+    0x4f, 0xfb, 0xff, 0x3, 0xd0, 0x3, 0xd3, 0xff,
+    0xff, 0x40, 0xf4, 0x0, 0xf4, 0x54, 0xf, 0xc0,
+    0x3d, 0x0, 0x3d, 0x0, 0xb, 0xc0, 0xf, 0x40,
+    0xf, 0x40, 0x7, 0xd0, 0x3, 0xd0, 0x3, 0xd0,
+    0x3, 0xe0, 0x0, 0xf4, 0x0, 0xf4, 0x3, 0xf0,
+    0x0, 0x3d, 0x0, 0x3d, 0x2, 0xf5, 0xaf, 0xf,
+    0x40, 0xbf, 0x43, 0xff, 0xff, 0xc3, 0xd6, 0xff,
+    0xd0, 0xff, 0xf9, 0x40, 0xff, 0xfe, 0xf4, 0x24,
+    0x0, 0x0, 0xbf, 0xe4, 0x3d, 0x0, 0x0, 0x0,
+    0x1f, 0x80, 0xf, 0x40, 0x0, 0x0, 0x1, 0x0,
+    0x3, 0xd0, 0x0, 0x6, 0xfc, 0x0, 0x0, 0xf4,
+    0x1a, 0xff, 0xff, 0x0, 0x0, 0x3d, 0x7f, 0xff,
+    0xf9, 0x0, 0x0, 0xf, 0x4f, 0xe9, 0x0, 0x0,
+    0x0, 0x3, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xf4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3d,
+
+    /* U+7EA1 "纡" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f,
+    0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3e, 0x0,
+    0xff, 0xff, 0xff, 0xe0, 0x0, 0x7c, 0x0, 0xff,
+    0xff, 0xff, 0xe0, 0x0, 0xf8, 0x0, 0x0, 0xf,
+    0x80, 0x0, 0x2, 0xf0, 0xe, 0x0, 0xb, 0x40,
+    0x0, 0x3, 0xd0, 0x3f, 0x0, 0xb, 0x40, 0x0,
+    0xf, 0x80, 0x7c, 0x0, 0xb, 0x40, 0x0, 0x3f,
+    0xff, 0xf8, 0x0, 0xb, 0x40, 0x0, 0x7f, 0xff,
+    0xf0, 0x0, 0xb, 0x40, 0x0, 0x39, 0x5b, 0xd0,
+    0x0, 0xb, 0x40, 0x0, 0x0, 0xf, 0x80, 0x0,
+    0xf, 0x80, 0x0, 0x0, 0x2f, 0x3, 0xff, 0xff,
+    0xff, 0xfc, 0x0, 0x7d, 0x3, 0xff, 0xff, 0xff,
+    0xfc, 0x0, 0xf8, 0x0, 0x0, 0xb, 0x40, 0x0,
+    0x3, 0xf0, 0x14, 0x0, 0xb, 0x40, 0x0, 0x1f,
+    0xff, 0xfc, 0x0, 0xb, 0x40, 0x0, 0x2f, 0xff,
+    0xf8, 0x0, 0xb, 0x40, 0x0, 0x1e, 0x50, 0x0,
+    0x0, 0xb, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xb, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb,
+    0x40, 0x0, 0x0, 0x0, 0x6, 0x0, 0xb, 0x40,
+    0x0, 0x0, 0x5b, 0xff, 0x0, 0xf, 0x40, 0x0,
+    0xbf, 0xff, 0xf9, 0x0, 0xf, 0x40, 0x0, 0xbf,
+    0xe5, 0x0, 0xa, 0xff, 0x0, 0x0, 0x10, 0x0,
+    0x0, 0xb, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x6, 0x50, 0x0, 0x0,
+
     /* U+7EA2 "红" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x7, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf,
@@ -107114,32 +112569,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xfc, 0x0, 0x0, 0x3, 0xc0, 0x0, 0xfe, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
 
-    /* U+7EB4 "纴" */
-    0x0, 0x6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x2, 0xd0, 0x0, 0x0, 0x0, 0x59, 0x0, 0x0,
-    0xf0, 0x0, 0x5, 0xaf, 0xff, 0x80, 0x0, 0xb8,
-    0x1, 0xff, 0xff, 0xfe, 0x80, 0x0, 0x3c, 0x0,
-    0x7f, 0xff, 0xc0, 0x0, 0x0, 0x3e, 0x1, 0x0,
-    0x1, 0xe0, 0x0, 0x0, 0x1f, 0x2, 0xd0, 0x0,
-    0x78, 0x0, 0x0, 0xf, 0x40, 0xf0, 0x0, 0x1e,
-    0x0, 0x0, 0xb, 0xc0, 0xb4, 0x0, 0x7, 0x80,
-    0x0, 0x7, 0xff, 0xfc, 0x0, 0x1, 0xe0, 0x0,
-    0x1, 0xff, 0xfd, 0x0, 0x0, 0x78, 0x0, 0x0,
-    0x0, 0x1e, 0x0, 0x0, 0x1f, 0x0, 0x0, 0x0,
-    0xf, 0x1, 0xff, 0xff, 0xff, 0xff, 0x0, 0xf,
-    0x40, 0x7f, 0xff, 0xff, 0xff, 0xc0, 0xb, 0xc0,
-    0x0, 0x0, 0x7c, 0x0, 0x0, 0x7, 0xc0, 0x50,
-    0x0, 0x1e, 0x0, 0x0, 0x7, 0xff, 0xfc, 0x0,
-    0x7, 0x80, 0x0, 0x3, 0xff, 0xfa, 0x0, 0x1,
-    0xe0, 0x0, 0x0, 0x65, 0x0, 0x0, 0x0, 0x78,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1e, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0x80, 0x0,
-    0x0, 0x0, 0x6b, 0x0, 0x1, 0xe0, 0x0, 0x1,
-    0x6f, 0xff, 0xc0, 0x0, 0x78, 0x0, 0x0, 0xff,
-    0xfe, 0x53, 0xff, 0xff, 0xff, 0xf0, 0x2a, 0x40,
-    0x0, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x0,
-
     /* U+7EB5 "纵" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0xe, 0x0, 0x3c, 0x0, 0xf0, 0x0, 0x0, 0x2f,
@@ -107307,32 +112736,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0xa, 0x40, 0x0, 0x0, 0x0, 0x4, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+7EBB "纻" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x6, 0x0, 0x0, 0xf, 0x40, 0x0, 0x0, 0xf,
-    0x40, 0x0, 0x7, 0x80, 0x0, 0x0, 0xf, 0x0,
-    0x0, 0x3, 0xc0, 0x0, 0x0, 0x2d, 0x0, 0x0,
-    0x3, 0xd0, 0x0, 0x0, 0x7c, 0x0, 0x0, 0x2,
-    0xe0, 0x0, 0x0, 0xf4, 0x4, 0x3f, 0xff, 0xff,
-    0xfc, 0x1, 0xf0, 0x2d, 0x3f, 0xff, 0xff, 0xfc,
-    0x3, 0xd0, 0x3c, 0x3c, 0x0, 0x0, 0x7c, 0xb,
-    0xc0, 0xb4, 0x3c, 0x0, 0x0, 0x3c, 0x1f, 0xff,
-    0xf0, 0x3c, 0x0, 0x0, 0x3c, 0x1f, 0xff, 0xd0,
-    0x3c, 0x0, 0x0, 0x3c, 0x0, 0x7, 0x80, 0x3c,
-    0x0, 0x0, 0x38, 0x0, 0xf, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x3d, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0xbc, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x1, 0xf0, 0x14, 0x0, 0x0, 0x0, 0x0, 0x7,
-    0xff, 0xfc, 0x0, 0x0, 0x0, 0x0, 0xb, 0xff,
-    0xe4, 0x0, 0x0, 0x0, 0x0, 0x6, 0x50, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x1, 0xac, 0x0, 0x0, 0x0,
-    0x0, 0x16, 0xff, 0xfc, 0x0, 0x0, 0x0, 0x0,
-    0x3f, 0xff, 0x90, 0x3f, 0xff, 0xff, 0xfe, 0x2a,
-    0x40, 0x0, 0x3f, 0xff, 0xff, 0xfe, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x0,
-
     /* U+7EBD "纽" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f,
@@ -107545,6 +112948,31 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xb, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x2,
     0xff, 0xff, 0xff, 0xff, 0xc0,
 
+    /* U+7EC5 "绅" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1,
+    0x80, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x2d, 0x0,
+    0x0, 0x3c, 0x0, 0x0, 0x3, 0xc0, 0x0, 0x3,
+    0xc0, 0x0, 0x0, 0xb8, 0x0, 0x0, 0x3c, 0x0,
+    0x0, 0xf, 0x0, 0x3f, 0xff, 0xff, 0xfe, 0x2,
+    0xe0, 0x63, 0xff, 0xff, 0xff, 0xf0, 0x3c, 0xf,
+    0x7c, 0x3, 0xc0, 0x1f, 0xf, 0x41, 0xf3, 0xc0,
+    0x3c, 0x1, 0xf2, 0xf5, 0xbd, 0x3c, 0x3, 0xc0,
+    0x1f, 0x3f, 0xff, 0x83, 0xc0, 0x3c, 0x1, 0xf2,
+    0xaa, 0xf0, 0x3c, 0x3, 0xc0, 0x1f, 0x0, 0x2e,
+    0x3, 0xff, 0xff, 0xff, 0xf0, 0x7, 0xc0, 0x3f,
+    0xff, 0xff, 0xff, 0x0, 0xf4, 0x3, 0xd0, 0x3d,
+    0x1, 0xf0, 0x2f, 0x0, 0x3c, 0x3, 0xc0, 0x1f,
+    0x7, 0xc5, 0xa3, 0xc0, 0x3c, 0x1, 0xf1, 0xff,
+    0xfe, 0x3c, 0x3, 0xc0, 0x1f, 0x2f, 0xff, 0x93,
+    0xc0, 0x3c, 0x1, 0xf1, 0xa4, 0x0, 0x3d, 0x3,
+    0xd0, 0x1f, 0x0, 0x0, 0x3, 0xff, 0xff, 0xff,
+    0xf0, 0x0, 0x0, 0x3f, 0xff, 0xff, 0xfe, 0x0,
+    0x0, 0x64, 0x0, 0x3c, 0x0, 0x0, 0x6b, 0xff,
+    0x80, 0x3, 0xc0, 0x0, 0xbf, 0xff, 0x90, 0x0,
+    0x3c, 0x0, 0xb, 0x94, 0x0, 0x0, 0x3, 0xc0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x3c, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x3, 0xc0, 0x0,
+
     /* U+7EC6 "细" */
     0x0, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3,
     0xd0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7c, 0x3,
@@ -107807,6 +113235,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x3, 0xff, 0xff, 0xff, 0xfd, 0x0, 0x0, 0x0,
     0xbf, 0xff, 0xff, 0xff, 0x40,
 
+    /* U+7ED0 "绐" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x34, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x2, 0xe0,
+    0x0, 0x7, 0xc0, 0x0, 0x0, 0xf, 0x0, 0x0,
+    0x3d, 0x0, 0x0, 0x0, 0xb8, 0x0, 0x1, 0xf0,
+    0x24, 0x0, 0x3, 0xc0, 0x0, 0xf, 0x41, 0xf0,
+    0x0, 0x2e, 0x3, 0xd0, 0xbc, 0x3, 0xe0, 0x0,
+    0xf0, 0x1f, 0x3, 0xd0, 0x3, 0xc0, 0xf, 0x40,
+    0xf4, 0x3e, 0x0, 0xb, 0x80, 0xbd, 0xab, 0x81,
+    0xf0, 0x0, 0xf, 0x43, 0xff, 0xfc, 0x2f, 0xff,
+    0xff, 0xff, 0xe, 0xab, 0xe0, 0xff, 0xff, 0xff,
+    0xfd, 0x0, 0x1f, 0x1, 0x95, 0x40, 0x0, 0x78,
+    0x0, 0xf4, 0x0, 0x0, 0x0, 0x0, 0x40, 0xb,
+    0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7c, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x7, 0xd5, 0xb4, 0x7f,
+    0xff, 0xff, 0xc0, 0x7f, 0xff, 0xd1, 0xff, 0xff,
+    0xff, 0x1, 0xff, 0xe5, 0x7, 0xc0, 0x0, 0x3c,
+    0x1, 0x0, 0x0, 0x1f, 0x0, 0x0, 0xf0, 0x0,
+    0x0, 0x0, 0x7c, 0x0, 0x3, 0xc0, 0x0, 0x0,
+    0x11, 0xf0, 0x0, 0xf, 0x0, 0x0, 0x6f, 0xc7,
+    0xc0, 0x0, 0x3c, 0xa, 0xff, 0xff, 0x1f, 0x0,
+    0x0, 0xf0, 0x7f, 0xfa, 0x40, 0x7f, 0xff, 0xff,
+    0xc0, 0x94, 0x0, 0x1, 0xff, 0xff, 0xff, 0x0,
+    0x0, 0x0, 0x7, 0xc0, 0x0, 0x3c, 0x0, 0x0,
+    0x0, 0x1f, 0x0, 0x0, 0xf0,
+
     /* U+7ED1 "绑" */
     0x0, 0x9, 0x0, 0xe, 0x0, 0x0, 0x0, 0x0,
     0xf, 0x0, 0xf, 0x0, 0x0, 0x0, 0x0, 0x2e,
@@ -108538,6 +113992,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x3, 0xfd, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x1, 0x90, 0x0,
 
+    /* U+7EEF "绯" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xa0, 0x0, 0x28, 0xf, 0x0, 0x0, 0x3, 0xc0,
+    0x0, 0xf0, 0x3c, 0x0, 0x0, 0x2e, 0x0, 0x3,
+    0xc0, 0xf0, 0x0, 0x0, 0xf0, 0x0, 0xf, 0x3,
+    0xc0, 0x0, 0x7, 0x80, 0x5, 0x7c, 0xf, 0x55,
+    0x40, 0x3c, 0xa, 0xbf, 0xf0, 0x3f, 0xff, 0x1,
+    0xe0, 0x3e, 0xff, 0xc0, 0xff, 0xfc, 0xf, 0x2,
+    0xd0, 0xf, 0x3, 0xc0, 0x0, 0xf8, 0xf, 0x0,
+    0x3c, 0xf, 0x0, 0xb, 0xff, 0xf4, 0x0, 0xf0,
+    0x3c, 0x0, 0x1f, 0xff, 0xc0, 0x3, 0xc0, 0xf0,
+    0x0, 0x0, 0x2d, 0x5, 0x5f, 0x3, 0xd5, 0x40,
+    0x1, 0xf0, 0x3f, 0xfc, 0xf, 0xff, 0xc0, 0xf,
+    0x40, 0xff, 0xf0, 0x3f, 0xfe, 0x0, 0xb8, 0x0,
+    0x3, 0xc0, 0xf0, 0x0, 0x7, 0xc0, 0x40, 0xf,
+    0x3, 0xc0, 0x0, 0x7f, 0xff, 0x40, 0x3c, 0xf,
+    0x0, 0x2, 0xff, 0xf9, 0x0, 0xf0, 0x3c, 0x0,
+    0x2, 0x50, 0x1, 0x57, 0xc0, 0xf5, 0x55, 0x0,
+    0x0, 0x2f, 0xff, 0x3, 0xff, 0xfc, 0x0, 0x0,
+    0xbf, 0xfc, 0xf, 0xff, 0xf0, 0x0, 0x19, 0x0,
+    0xf0, 0x3c, 0x0, 0x1, 0xaf, 0xf8, 0x3, 0xc0,
+    0xf0, 0x0, 0xbf, 0xff, 0x90, 0xf, 0x3, 0xc0,
+    0x2, 0xf9, 0x40, 0x0, 0x3c, 0xf, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0xf0, 0x3c, 0x0, 0x0, 0x0,
+    0x0, 0x3, 0xc0, 0xf0, 0x0,
+
     /* U+7EF0 "绰" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x9, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x2e,
@@ -108565,6 +114045,30 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x3c, 0x0, 0x0,
 
+    /* U+7EF1 "绱" */
+    0x0, 0x34, 0x0, 0x0, 0x78, 0x0, 0x0, 0x7,
+    0xc0, 0x20, 0x7, 0x80, 0x14, 0x0, 0xf4, 0xf,
+    0x40, 0x78, 0x3, 0xd0, 0x1f, 0x0, 0x7c, 0x7,
+    0x80, 0xbc, 0x2, 0xd0, 0x2, 0xf0, 0x78, 0x1f,
+    0x0, 0x3c, 0xd, 0xf, 0x87, 0x83, 0xd0, 0xb,
+    0x42, 0xe0, 0x38, 0x78, 0x78, 0x0, 0xf0, 0x3c,
+    0x0, 0x7, 0x81, 0x0, 0x3d, 0xb, 0x85, 0x55,
+    0xbd, 0x55, 0x4b, 0xff, 0xf0, 0xff, 0xff, 0xff,
+    0xfc, 0x7f, 0xfe, 0xf, 0xaa, 0xaa, 0xab, 0xc0,
+    0x3, 0xc0, 0xf0, 0x0, 0x0, 0x3c, 0x0, 0xb4,
+    0xf, 0x0, 0x0, 0x3, 0xc0, 0x1f, 0x0, 0xf0,
+    0xbf, 0xfc, 0x3c, 0x3, 0xc0, 0xf, 0xb, 0xff,
+    0xc3, 0xc0, 0xb8, 0x64, 0xf0, 0xb0, 0x3c, 0x3c,
+    0x2f, 0xff, 0x8f, 0xb, 0x3, 0xc3, 0xc2, 0xff,
+    0xa4, 0xf0, 0xb0, 0x3c, 0x3c, 0x14, 0x0, 0xf,
+    0xb, 0x3, 0xc3, 0xc0, 0x0, 0x0, 0xf0, 0xb0,
+    0x3c, 0x3c, 0x0, 0x0, 0xf, 0xb, 0xff, 0xc3,
+    0xc0, 0x1, 0xbc, 0xf0, 0xbf, 0xfc, 0x3c, 0x6f,
+    0xff, 0xcf, 0x0, 0x0, 0x3, 0xcf, 0xfa, 0x40,
+    0xf0, 0x0, 0x0, 0x3c, 0x50, 0x0, 0xf, 0x0,
+    0x0, 0xbf, 0xc0, 0x0, 0x0, 0xf0, 0x0, 0x7,
+    0xe0,
+
     /* U+7EF2 "绲" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0xb, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf,
@@ -109182,6 +114686,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0x0, 0xf, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0xf, 0x0,
 
+    /* U+7F0B "缋" */
+    0x0, 0x0, 0x0, 0x0, 0x14, 0x0, 0x0, 0x0,
+    0x38, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x78,
+    0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0xf4, 0x7,
+    0xff, 0xff, 0xff, 0xc0, 0x1, 0xf0, 0x7, 0xff,
+    0xff, 0xff, 0xc0, 0x3, 0xd0, 0x7, 0x40, 0x3c,
+    0x3, 0xc0, 0x7, 0xc0, 0xe7, 0x40, 0x3c, 0x3,
+    0xc0, 0xf, 0x42, 0xe7, 0x80, 0x3c, 0x3, 0xc0,
+    0x1f, 0x3, 0xc7, 0xff, 0xff, 0xff, 0xc0, 0x7e,
+    0xb, 0x86, 0xaa, 0xbe, 0xaa, 0x80, 0x7f, 0xff,
+    0x0, 0x0, 0x3c, 0x0, 0x0, 0x29, 0x7e, 0x2a,
+    0xaa, 0xfe, 0xaa, 0xa8, 0x0, 0x7c, 0x7f, 0xff,
+    0xff, 0xff, 0xfc, 0x0, 0xf4, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x1, 0xf0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x3, 0xd0, 0x2, 0xff, 0xff, 0xff, 0x40,
+    0xf, 0xda, 0xc3, 0xff, 0xff, 0xff, 0x80, 0x3f,
+    0xff, 0xc3, 0xc0, 0x0, 0xb, 0x80, 0x2f, 0xe9,
+    0x3, 0xc0, 0x3c, 0x7, 0x80, 0x0, 0x0, 0x3,
+    0xc0, 0x3c, 0x7, 0x80, 0x0, 0x0, 0x3, 0xc0,
+    0x78, 0x7, 0x80, 0x0, 0x0, 0x3, 0xc0, 0xf4,
+    0x7, 0x80, 0x0, 0x6b, 0xe2, 0x82, 0xf3, 0x42,
+    0x40, 0xbf, 0xff, 0xd0, 0x1f, 0xd7, 0xf4, 0x0,
+    0xff, 0xe4, 0x1, 0xff, 0x41, 0xff, 0x80, 0x50,
+    0x0, 0xbf, 0xf8, 0x0, 0x1f, 0xf4, 0x0, 0x0,
+    0xff, 0x80, 0x0, 0x1, 0xf8, 0x0, 0x0, 0x60,
+    0x0, 0x0, 0x0, 0x10,
+
     /* U+7F0C "缌" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x3c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7c,
@@ -109209,6 +114740,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x7, 0xff, 0xe0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+7F0D "缍" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xb, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3,
+    0xc0, 0x0, 0x0, 0x56, 0xbf, 0x0, 0x1, 0xe0,
+    0x1f, 0xff, 0xff, 0xff, 0xc0, 0x0, 0xf0, 0x7,
+    0xff, 0xfe, 0x54, 0x0, 0x0, 0x7c, 0x10, 0x0,
+    0xb, 0x40, 0x0, 0x0, 0x3d, 0xf, 0x0, 0x2,
+    0xd0, 0x0, 0x0, 0xf, 0x7, 0x85, 0x55, 0xb9,
+    0x55, 0x50, 0xf, 0x3, 0xdf, 0xff, 0xff, 0xff,
+    0xfd, 0xb, 0xff, 0xf1, 0xbe, 0xaf, 0xaa, 0xfa,
+    0x2, 0xff, 0xf4, 0xf, 0x2, 0xd0, 0x38, 0x0,
+    0x10, 0x7c, 0x3, 0xc0, 0xb4, 0xe, 0x0, 0x0,
+    0x3d, 0x0, 0xf0, 0x2d, 0x3, 0x80, 0x0, 0x1f,
+    0x0, 0x3c, 0xb, 0x81, 0xe0, 0x0, 0xf, 0x43,
+    0xff, 0xff, 0xff, 0xff, 0xf0, 0xb, 0xc0, 0xbf,
+    0xff, 0xff, 0xff, 0xfc, 0x7, 0xd5, 0x80, 0xf0,
+    0x2d, 0x3, 0x80, 0x3, 0xff, 0xf4, 0x3c, 0xb,
+    0x40, 0xe0, 0x0, 0xfe, 0x94, 0xf, 0x2, 0xd0,
+    0x38, 0x0, 0x0, 0x0, 0x3f, 0xff, 0xff, 0xff,
+    0xf0, 0x0, 0x0, 0xf, 0xff, 0xff, 0xff, 0xfd,
+    0x0, 0x0, 0x0, 0x0, 0xb, 0x40, 0x0, 0x0,
+    0x0, 0x6f, 0x0, 0x2, 0xd0, 0x0, 0x0, 0x6f,
+    0xff, 0xc0, 0x0, 0xb4, 0x0, 0x0, 0x3f, 0xfe,
+    0x40, 0x0, 0x2d, 0x0, 0x0, 0xe, 0x90, 0x1,
+    0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x7f,
+    0xff, 0xff, 0xff, 0x40,
+
     /* U+7F0E "缎" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x3c, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0xb8,
@@ -110003,6 +115561,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0xa0, 0x0, 0x18, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+7F2D "缭" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x7, 0x40, 0x0, 0xb, 0x40, 0x0, 0x0, 0x2,
+    0xd0, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x0, 0xf0,
+    0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0xb8, 0xf,
+    0xff, 0xff, 0xff, 0xfc, 0x0, 0x3c, 0x3, 0xff,
+    0xff, 0xff, 0xff, 0x0, 0x1e, 0x5, 0x0, 0xf,
+    0xb8, 0x0, 0x0, 0xf, 0x3, 0xdd, 0xf, 0x8f,
+    0x2, 0xd0, 0xb, 0x81, 0xe3, 0xdb, 0xc0, 0xf2,
+    0xf0, 0x7, 0xea, 0xf0, 0x3f, 0xd0, 0x1f, 0xe0,
+    0x2, 0xff, 0xf8, 0xb, 0xd0, 0x1, 0xf4, 0x0,
+    0x6a, 0xbc, 0xf, 0xff, 0xff, 0xff, 0x80, 0x0,
+    0x2d, 0x1f, 0xff, 0xff, 0xff, 0xfe, 0x0, 0xf,
+    0x1f, 0xbc, 0x0, 0x0, 0xff, 0xc0, 0xb, 0x42,
+    0x4f, 0x0, 0x0, 0x3c, 0x60, 0x7, 0xc0, 0x3,
+    0xff, 0xff, 0xff, 0x0, 0x3, 0xea, 0xe0, 0xfa,
+    0xaa, 0xab, 0xc0, 0x3, 0xff, 0xf8, 0x3c, 0x0,
+    0x0, 0xf0, 0x0, 0xff, 0x94, 0xf, 0x0, 0x0,
+    0x3c, 0x0, 0x10, 0x0, 0x3, 0xff, 0xff, 0xff,
+    0x0, 0x0, 0x0, 0x0, 0xaa, 0xbf, 0xaa, 0x80,
+    0x0, 0x0, 0x0, 0x4, 0xb, 0x41, 0x0, 0x0,
+    0x1, 0xaf, 0x4b, 0x42, 0xd2, 0xf0, 0x0, 0xaf,
+    0xff, 0xdb, 0xc0, 0xb4, 0x3f, 0x0, 0x3f, 0xf9,
+    0xb, 0xc0, 0x2d, 0x2, 0xf4, 0x5, 0x0, 0xf,
+    0xc0, 0x6f, 0x40, 0x2f, 0x40, 0x0, 0x7, 0xc0,
+    0x3f, 0xc0, 0x2, 0xc0, 0x0, 0x0, 0x40, 0xa,
+    0x80, 0x0, 0x0,
+
     /* U+7F2E "缮" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x2, 0x40, 0x2, 0xc0, 0x3, 0xc0, 0x0, 0x1,
@@ -110377,31 +115963,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x1e, 0x0, 0x3f, 0x80, 0x0, 0x0, 0x0, 0x8,
     0x0, 0x14, 0x0, 0x0,
 
-    /* U+7F4D "罍" */
-    0x1, 0x55, 0x55, 0x55, 0x55, 0x55, 0x0, 0xb,
-    0xff, 0xff, 0xff, 0xff, 0xfd, 0x0, 0x2e, 0x0,
-    0x7, 0xc0, 0x0, 0xf4, 0x0, 0xbf, 0xff, 0xff,
-    0xff, 0xff, 0xd0, 0x2, 0xfa, 0xaa, 0xbe, 0xaa,
-    0xaf, 0x40, 0xb, 0x80, 0x1, 0xf0, 0x0, 0x3d,
-    0x0, 0x2f, 0xff, 0xff, 0xff, 0xff, 0xf4, 0x0,
-    0x15, 0x55, 0x55, 0x55, 0x55, 0x40, 0xa, 0xaa,
-    0xaa, 0x86, 0xaa, 0xaa, 0x90, 0x7f, 0xff, 0xff,
-    0x1f, 0xff, 0xff, 0x81, 0xd0, 0xb0, 0x2c, 0x74,
-    0x2c, 0xe, 0x7, 0xff, 0xff, 0xf1, 0xff, 0xff,
-    0xf8, 0x1e, 0xaf, 0xab, 0xc7, 0xab, 0xea, 0xe0,
-    0x74, 0x2c, 0xb, 0x1d, 0xb, 0x3, 0x81, 0xff,
-    0xff, 0xfc, 0x7f, 0xff, 0xfe, 0x1, 0x5f, 0x55,
-    0x50, 0x55, 0x55, 0x54, 0x0, 0x7c, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x3, 0xfa, 0xaa, 0xaa, 0xaa,
-    0xa9, 0x0, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xf4,
-    0x1, 0xd0, 0x0, 0xf, 0x0, 0x0, 0x0, 0x6a,
-    0xaa, 0xaa, 0xbe, 0xaa, 0xaa, 0xa9, 0xff, 0xff,
-    0xff, 0xff, 0xff, 0xff, 0xf0, 0x14, 0x0, 0x3,
-    0xc0, 0x0, 0x50, 0x0, 0xb4, 0x0, 0xf, 0x0,
-    0x3, 0xc0, 0x2, 0xfa, 0xaa, 0xfe, 0xaa, 0xaf,
-    0x0, 0xb, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0xf0, 0x0,
-
     /* U+7F50 "罐" */
     0x0, 0x0, 0x0, 0x1, 0x0, 0x10, 0x0, 0x2,
     0xd0, 0x0, 0xb, 0x0, 0x78, 0x0, 0x3, 0xc0,
@@ -110614,6 +116175,31 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc,
     0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc,
 
+    /* U+7F62 "罢" */
+    0x3, 0xff, 0xff, 0xff, 0xff, 0xff, 0x40, 0xf,
+    0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x3c, 0x1,
+    0xe0, 0xf, 0x0, 0xb8, 0x0, 0xf0, 0x7, 0x80,
+    0x3c, 0x2, 0xe0, 0x3, 0xc0, 0x1e, 0x0, 0xf0,
+    0xb, 0x80, 0xf, 0x0, 0x78, 0x3, 0xc0, 0x2e,
+    0x0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x0,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x0, 0x0,
+    0x0, 0x7c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1,
+    0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0xc0,
+    0x0, 0x0, 0x0, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xe0, 0x3, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80,
+    0x0, 0x0, 0x1, 0xf0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x7, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x1f, 0x0, 0x0, 0x0, 0xbf, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xf0, 0x0, 0x0, 0xfd, 0x1, 0x40, 0x0,
+    0x0, 0x0, 0x1f, 0xc0, 0xf, 0x80, 0x0, 0x0,
+    0x2, 0xf8, 0x0, 0x2f, 0xc0, 0x0, 0x0, 0x7f,
+    0x0, 0x0, 0x1f, 0xc0, 0x0, 0x1f, 0xfa, 0xab,
+    0xff, 0xff, 0xd0, 0x1, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xd0, 0x3, 0xea, 0x95, 0x40, 0x0, 0xf,
+    0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+7F68 "罨" */
     0x2, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x80, 0x7,
     0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x7, 0xc0,
@@ -110639,6 +116225,30 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0x1f, 0xff, 0xff, 0xd0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+7F69 "罩" */
+    0x3, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x1f,
+    0xaa, 0xfe, 0xab, 0xea, 0xbe, 0x0, 0x7c, 0x1,
+    0xe0, 0xf, 0x0, 0x78, 0x1, 0xf0, 0x7, 0x80,
+    0x3c, 0x1, 0xe0, 0x7, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0x80, 0xa, 0xaa, 0xab, 0xfa, 0xaa, 0xa9,
+    0x0, 0x0, 0x0, 0xb, 0x40, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x2f, 0xaa, 0xaa, 0xa8, 0x0, 0x0,
+    0x0, 0xbf, 0xff, 0xff, 0xf0, 0x0, 0x0, 0x2,
+    0xd0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb, 0x40,
+    0x0, 0x0, 0x0, 0x3f, 0xff, 0xff, 0xff, 0xff,
+    0x80, 0x0, 0xfa, 0xaa, 0xaa, 0xaa, 0xbe, 0x0,
+    0x3, 0xc0, 0x0, 0x0, 0x0, 0xb8, 0x0, 0xf,
+    0xff, 0xff, 0xff, 0xff, 0xe0, 0x0, 0x3e, 0xaa,
+    0xaa, 0xaa, 0xaf, 0x80, 0x0, 0xf0, 0x0, 0x0,
+    0x0, 0x2e, 0x0, 0x3, 0xea, 0xaa, 0xaa, 0xaa,
+    0xf8, 0x0, 0xf, 0xff, 0xff, 0xff, 0xff, 0xe0,
+    0x0, 0x0, 0x0, 0x1f, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x7c, 0x0, 0x0, 0x2, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xf6, 0xaa, 0xaa, 0xaf,
+    0xea, 0xaa, 0xaa, 0x80, 0x0, 0x0, 0x1f, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x7c, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x1, 0xf0, 0x0, 0x0, 0x0,
+
     /* U+7F6A "罪" */
     0x3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x3,
     0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x3, 0xc0,
@@ -110789,31 +116399,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0xf0, 0xf, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
 
-    /* U+7F7D "罽" */
-    0x3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xf,
-    0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x3c, 0x0,
-    0xe0, 0xf, 0x0, 0x3c, 0x0, 0xf0, 0x3, 0x80,
-    0x3c, 0x0, 0xf0, 0x3, 0xea, 0xaf, 0xaa, 0xfa,
-    0xab, 0xc0, 0xf, 0xff, 0xff, 0xff, 0xff, 0xff,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0xff,
-    0xff, 0xff, 0xff, 0xff, 0xf0, 0x1f, 0xaa, 0xaa,
-    0xaa, 0xaa, 0xaa, 0x80, 0x78, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x1, 0xe2, 0x0, 0xf0, 0x10, 0x0,
-    0x74, 0x7, 0x9f, 0x43, 0xc2, 0xf2, 0xc1, 0xd0,
-    0x1e, 0x1f, 0x5e, 0x2f, 0xb, 0x7, 0x40, 0x78,
-    0x18, 0xfd, 0x10, 0x2c, 0x1d, 0x1, 0xe0, 0xf,
-    0xff, 0x80, 0xb0, 0x74, 0x7, 0x8b, 0xf8, 0x1f,
-    0xe2, 0xc1, 0xd0, 0x1e, 0x7e, 0x5, 0x7, 0x8b,
-    0x7, 0x40, 0xb4, 0x40, 0x3c, 0x0, 0x2c, 0x1d,
-    0x2, 0xd3, 0xc0, 0xf0, 0xb0, 0xb0, 0x74, 0xf,
-    0xb, 0xdb, 0x8f, 0xc2, 0xc1, 0xd0, 0x3c, 0xb,
-    0x3e, 0x24, 0xb, 0x7, 0x42, 0xe0, 0x3, 0xff,
-    0x80, 0x0, 0x1d, 0xf, 0x0, 0xbe, 0x1f, 0xe0,
-    0x0, 0xb0, 0x7c, 0x3f, 0xd0, 0x7, 0xf0, 0x2f,
-    0xc2, 0xd0, 0xf4, 0x0, 0x1, 0x80, 0xf8, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
     /* U+7F7E "罾" */
     0x3f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x3e, 0xaa,
     0xfa, 0xaf, 0xaa, 0xbc, 0x3c, 0x0, 0xf0, 0xf,
@@ -110943,34 +116528,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0xb, 0xfc, 0x10, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x10,
 
-    /* U+7F91 "羑" */
-    0x0, 0x0, 0x80, 0x0, 0x2, 0x0, 0x0, 0x0,
-    0x3, 0xf0, 0x0, 0xb, 0xc0, 0x0, 0x0, 0x1,
-    0xfc, 0x0, 0x2f, 0x40, 0x0, 0x0, 0x0, 0x7c,
-    0x0, 0xbd, 0x0, 0x0, 0xf, 0xff, 0xff, 0xff,
-    0xff, 0xff, 0xf0, 0xf, 0xff, 0xff, 0xff, 0xff,
-    0xff, 0xe0, 0x0, 0x0, 0x0, 0x3c, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x0,
-    0x1, 0xaa, 0xaa, 0xfe, 0xaa, 0xaa, 0x0, 0x2,
-    0xff, 0xff, 0xff, 0xff, 0xff, 0x40, 0x0, 0x0,
-    0x0, 0x3c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x3c, 0x0, 0x0, 0x0, 0x3f, 0xff, 0xff, 0xff,
-    0xff, 0xff, 0xf8, 0x3f, 0xff, 0xff, 0xff, 0xff,
-    0xff, 0xfc, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x1f, 0x40, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x7f, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x1, 0xff, 0xff, 0xff, 0xf0, 0x0, 0x0, 0xb,
-    0xff, 0xff, 0xff, 0xf0, 0x0, 0x0, 0x3f, 0x80,
-    0x0, 0xf, 0xd0, 0x0, 0x1, 0xfd, 0x0, 0x0,
-    0x7f, 0x40, 0x0, 0xf, 0xf0, 0x0, 0x2, 0xfc,
-    0x0, 0x0, 0x7, 0x80, 0x0, 0x2f, 0xf0, 0x0,
-    0x0, 0x0, 0x0, 0x6, 0xff, 0xfc, 0x0, 0x0,
-    0x0, 0x0, 0x7f, 0xf0, 0x3f, 0xd0, 0x0, 0x0,
-    0x1f, 0xfe, 0x0, 0x7, 0xff, 0x90, 0x1b, 0xff,
-    0xd0, 0x0, 0x0, 0x7f, 0xfc, 0x2f, 0xf4, 0x0,
-    0x0, 0x0, 0x1, 0xb8, 0x9, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0,
-
     /* U+7F94 "羔" */
     0x0, 0x0, 0x40, 0x0, 0x5, 0x0, 0x0, 0x0,
     0xf, 0x0, 0x0, 0x3e, 0x0, 0x0, 0x0, 0x2f,
@@ -111108,6 +116665,35 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+7FA1 "羡" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x1, 0xc0, 0x0, 0x7, 0x40, 0x0, 0x0, 0x2,
+    0xf0, 0x0, 0xf, 0x80, 0x0, 0x0, 0x0, 0xfc,
+    0x0, 0x3f, 0x0, 0x0, 0xa, 0xaa, 0xbe, 0xaa,
+    0xfe, 0xaa, 0xa0, 0xf, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xf0, 0x0, 0x0, 0x0, 0x7c, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x7c, 0x0, 0x0, 0x0,
+    0x1, 0xaa, 0xaa, 0xfe, 0xaa, 0xaa, 0x0, 0x2,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0,
+    0x0, 0x7c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x7c, 0x0, 0x0, 0x0, 0x7f, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xf8, 0x7f, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xfc, 0x0, 0x0, 0x0, 0x90, 0x0, 0x0,
+    0x0, 0x9, 0x0, 0x2, 0xf0, 0x0, 0x0, 0x0,
+    0x1f, 0x80, 0x3, 0xe0, 0x0, 0x0, 0x0, 0x7,
+    0xe0, 0xb, 0xff, 0xff, 0xff, 0xc0, 0x0, 0xfc,
+    0x1f, 0xaa, 0xaa, 0xaf, 0xc0, 0x0, 0x3c, 0x3e,
+    0x2, 0x80, 0xb, 0x80, 0x0, 0x0, 0xfc, 0x3,
+    0xc0, 0x1f, 0x0, 0x0, 0x0, 0xf0, 0x7, 0xd0,
+    0x3d, 0x0, 0x0, 0x38, 0x10, 0xf, 0xf0, 0x0,
+    0x0, 0x0, 0xbc, 0x0, 0x2f, 0xbc, 0x0, 0x0,
+    0x2, 0xf0, 0x0, 0xfd, 0x3f, 0x40, 0x0, 0xb,
+    0xc0, 0xb, 0xf4, 0xb, 0xf4, 0x0, 0x2f, 0x41,
+    0xbf, 0xc0, 0x1, 0xff, 0x90, 0x3d, 0x1f, 0xfd,
+    0x0, 0x0, 0x1f, 0xfc, 0x14, 0xf, 0x80, 0x0,
+    0x0, 0x0, 0xb8, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0,
+
     /* U+7FA4 "群" */
     0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x90, 0x0,
     0x0, 0x0, 0x0, 0x2e, 0x0, 0x7c, 0x0, 0xbf,
@@ -111219,6 +116805,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xe0, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+7FB2 "羲" */
+    0x0, 0x0, 0x80, 0x0, 0x5, 0x0, 0x0, 0x0,
+    0xb, 0xc0, 0x0, 0x3d, 0x0, 0x0, 0x0, 0xb,
+    0x80, 0x3, 0xe0, 0x0, 0x3, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xf8, 0xa, 0xaa, 0xaa, 0xbe, 0xaa,
+    0xaa, 0x90, 0x0, 0x0, 0x0, 0xe0, 0x0, 0x0,
+    0x0, 0x2a, 0xaa, 0xab, 0xea, 0xaa, 0xa4, 0x0,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xd0, 0x0, 0x0,
+    0x0, 0x38, 0x0, 0x0, 0x0, 0x6a, 0xaa, 0xaa,
+    0xfa, 0xaa, 0xaa, 0x83, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0x40, 0x0, 0x0, 0x0, 0x10, 0x28,
+    0x0, 0x6, 0xff, 0xff, 0xf4, 0xf0, 0xbd, 0x0,
+    0x1a, 0xab, 0xd4, 0x3, 0xc0, 0x7c, 0x0, 0x0,
+    0xf, 0x0, 0xf, 0x0, 0x50, 0xf, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0x15, 0x5f, 0xfa, 0x55,
+    0xb9, 0x56, 0x54, 0x1, 0xfb, 0xef, 0x41, 0xe0,
+    0xd, 0x0, 0xbf, 0xf, 0x1f, 0xd3, 0x80, 0xf0,
+    0x2f, 0xd0, 0x14, 0xb, 0xcf, 0xf, 0x40, 0x67,
+    0xff, 0xff, 0xf0, 0x2d, 0xf8, 0x0, 0x3, 0xc0,
+    0x0, 0x0, 0x3f, 0x40, 0x0, 0xf, 0x55, 0x54,
+    0x1, 0xf8, 0x7, 0x0, 0x3f, 0xff, 0xf0, 0x3f,
+    0xe0, 0x2c, 0x0, 0x0, 0x3, 0xcb, 0xe3, 0xc0,
+    0xf0, 0x0, 0x0, 0xf, 0xbd, 0x7, 0xc7, 0x80,
+    0x0, 0x5, 0xf8, 0x80, 0xb, 0xfc, 0x0, 0x0,
+    0x7f, 0x80, 0x0, 0xb, 0xd0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+7FB8 "羸" */
     0x0, 0x0, 0x0, 0x14, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x7c, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -111324,6 +116937,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x3, 0xff, 0x40, 0x0, 0x29, 0x0, 0x0, 0x29,
     0x40,
 
+    /* U+7FBF "羿" */
+    0xf, 0xff, 0xff, 0x4f, 0xff, 0xff, 0x0, 0x1f,
+    0xff, 0xff, 0x4f, 0xff, 0xff, 0x40, 0x0, 0x0,
+    0xf, 0x40, 0x0, 0xf, 0x40, 0x1, 0x80, 0xb,
+    0x42, 0x80, 0xf, 0x40, 0x3, 0xe0, 0xb, 0x43,
+    0xe0, 0xf, 0x40, 0x0, 0xf8, 0xb, 0x40, 0xf8,
+    0xf, 0x40, 0x0, 0x3d, 0xb, 0x40, 0x3d, 0xf,
+    0x40, 0x0, 0x8, 0x2f, 0x40, 0x4, 0x2f, 0x40,
+    0x0, 0x6, 0xff, 0x40, 0x7, 0xff, 0x40, 0x0,
+    0xbf, 0xef, 0x41, 0xff, 0xdf, 0x40, 0x1f, 0xf9,
+    0xb, 0x5f, 0xf8, 0xf, 0x40, 0x1f, 0x40, 0xb,
+    0x4e, 0x40, 0xf, 0x40, 0x4, 0x0, 0x6, 0x40,
+    0x0, 0xb, 0x0, 0x0, 0x0, 0xa0, 0x0, 0xa,
+    0x0, 0x0, 0x0, 0x0, 0xf4, 0x0, 0xf, 0x0,
+    0x0, 0x0, 0x0, 0xf0, 0x0, 0xf, 0x0, 0x0,
+    0x0, 0x0, 0xf4, 0x0, 0xf, 0x40, 0x0, 0xbf,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xbf, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x1, 0xf0,
+    0x0, 0xf, 0x0, 0x0, 0x0, 0x2, 0xf0, 0x0,
+    0xf, 0x0, 0x0, 0x0, 0x3, 0xd0, 0x0, 0xf,
+    0x0, 0x0, 0x0, 0xf, 0xc0, 0x0, 0xf, 0x0,
+    0x0, 0x0, 0x7f, 0x0, 0x0, 0xf, 0x0, 0x0,
+    0x3, 0xfc, 0x0, 0x0, 0xf, 0x0, 0x0, 0x7,
+    0xe0, 0x0, 0x0, 0xf, 0x0, 0x0, 0x2, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+7FC1 "翁" */
     0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0,
     0x0, 0xf4, 0x0, 0xb8, 0x0, 0x0, 0x0, 0x3,
@@ -111351,6 +116990,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xfd, 0x0, 0xb, 0xfc, 0x0, 0x0, 0x1, 0x40,
     0x0, 0x1, 0x40, 0x0,
 
+    /* U+7FC5 "翅" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x7, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1,
+    0xe0, 0xa, 0xaa, 0x1a, 0xaa, 0x0, 0x0, 0x78,
+    0x3, 0xff, 0xcb, 0xff, 0xc0, 0x0, 0x1e, 0x0,
+    0x55, 0xf1, 0x55, 0xf0, 0xf, 0xff, 0xff, 0x40,
+    0x3c, 0x0, 0x3c, 0x3, 0xff, 0xff, 0xd5, 0xf,
+    0x4, 0xf, 0x0, 0x0, 0x78, 0x3, 0x83, 0xc7,
+    0x43, 0xc0, 0x0, 0x1e, 0x0, 0xb0, 0xf0, 0xe0,
+    0xf0, 0x0, 0x7, 0x80, 0xe, 0x3c, 0x2c, 0x3c,
+    0x0, 0x1, 0xe0, 0x3, 0xcf, 0x7, 0x4f, 0x0,
+    0x7f, 0xff, 0xe0, 0xa3, 0xc0, 0xd3, 0xc0, 0x1f,
+    0xff, 0xfc, 0x0, 0xf0, 0x2, 0xf0, 0x0, 0x40,
+    0x1e, 0x1, 0xfc, 0x7, 0xfc, 0x0, 0x78, 0x7,
+    0x43, 0xff, 0xb, 0xef, 0x0, 0xf, 0x2, 0xdb,
+    0xf3, 0xef, 0xd3, 0xc0, 0x3, 0xc0, 0xf3, 0xe0,
+    0xfb, 0x80, 0xf0, 0x0, 0xb4, 0x78, 0x40, 0x3c,
+    0x0, 0x3c, 0x0, 0x1f, 0x2d, 0x0, 0xf, 0x0,
+    0xf, 0x0, 0x3, 0xef, 0x0, 0x3, 0xc0, 0x3,
+    0xc0, 0x0, 0x7f, 0x40, 0x1, 0xf0, 0x2, 0xe0,
+    0x0, 0xf, 0xc0, 0xf, 0xf8, 0x1f, 0xf4, 0x0,
+    0x7, 0xf8, 0x3, 0xf8, 0x3, 0xe4, 0x0, 0x7,
+    0xdf, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x7, 0xd0,
+    0xff, 0x94, 0x0, 0x0, 0x5, 0xb, 0xd0, 0xb,
+    0xff, 0xff, 0xff, 0xff, 0xc2, 0xc0, 0x0, 0x1b,
+    0xff, 0xff, 0xff, 0xe0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+7FCA "翊" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7,
     0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c, 0x0,
@@ -111376,6 +117043,29 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xff, 0x0, 0x0, 0x0, 0x2f, 0xc0, 0x3f, 0xc0,
     0x0, 0x0, 0x0, 0x40, 0x1, 0x40,
 
+    /* U+7FCC "翌" */
+    0x7f, 0xff, 0xfd, 0x3f, 0xff, 0xfd, 0x7, 0xff,
+    0xff, 0xd3, 0xff, 0xff, 0xe0, 0x5, 0x0, 0x2d,
+    0x9, 0x0, 0x2e, 0x0, 0xf0, 0x2, 0xd0, 0xf0,
+    0x1, 0xe0, 0x7, 0xc0, 0x2d, 0xb, 0xc0, 0x1e,
+    0x0, 0x1f, 0x2, 0xd0, 0x2f, 0x1, 0xe0, 0x0,
+    0xb4, 0x2d, 0x0, 0xf0, 0x1e, 0x0, 0x1, 0x6e,
+    0xd0, 0x1, 0x6d, 0xe0, 0x1, 0xbf, 0xed, 0x2,
+    0xff, 0xde, 0x6, 0xff, 0xd2, 0xd3, 0xff, 0x81,
+    0xe0, 0xbf, 0x40, 0x2d, 0x3d, 0x0, 0x1e, 0x1,
+    0x0, 0x1, 0x69, 0x0, 0x1, 0xd0, 0x0, 0x0,
+    0x2, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f,
+    0x0, 0x0, 0x0, 0x1f, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0x2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
+    0x5, 0x55, 0x55, 0x55, 0x55, 0x55, 0x0, 0x1,
+    0xe0, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x1f, 0x0,
+    0x0, 0x2f, 0x0, 0x0, 0x0, 0xf8, 0x0, 0x3,
+    0xd0, 0x0, 0x0, 0x7, 0xd0, 0x0, 0xf8, 0x0,
+    0x0, 0x0, 0x3e, 0x0, 0x1f, 0x0, 0x0, 0x0,
+    0x1, 0xc0, 0x3, 0xe0, 0x0, 0xf, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xe0,
+
     /* U+7FCE "翎" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x2d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf4,
@@ -111454,55 +117144,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x2, 0xff, 0x0, 0x3, 0xfe, 0x0, 0x0, 0x0,
     0x94, 0x0, 0x1, 0x90, 0x0,
 
-    /* U+7FD9 "翙" */
-    0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0xe0, 0x0, 0x0, 0x0, 0x0, 0x4, 0xe, 0x4,
-    0x0, 0x0, 0x0, 0x0, 0xe0, 0xe0, 0xe3, 0xff,
-    0x8f, 0xfe, 0xe, 0xe, 0xe, 0x3f, 0xf8, 0xff,
-    0xe0, 0xe0, 0xe0, 0xe0, 0x3, 0x80, 0xe, 0xe,
-    0xe, 0xe, 0x0, 0x38, 0x0, 0xe0, 0xfa, 0xfa,
-    0xe1, 0x3, 0x8e, 0xe, 0xf, 0xff, 0xfe, 0x78,
-    0x38, 0xf0, 0xe0, 0x5, 0x0, 0x3, 0xc3, 0x87,
-    0x4e, 0x0, 0xb4, 0x0, 0x2d, 0x38, 0x38, 0xe0,
-    0xf, 0x0, 0x0, 0xe3, 0x83, 0xce, 0x1, 0xf0,
-    0x0, 0xf, 0x38, 0x2d, 0xe0, 0x2f, 0xff, 0xe0,
-    0x77, 0x80, 0xde, 0x3, 0xff, 0xfe, 0x1, 0x38,
-    0x4, 0xe0, 0xb8, 0x2, 0xd0, 0x3, 0x80, 0xe,
-    0xf, 0x40, 0x3c, 0x0, 0xf8, 0x3, 0xe2, 0xfd,
-    0xb, 0x80, 0x7f, 0x81, 0xfe, 0x7d, 0xf4, 0xf0,
-    0x2f, 0xb8, 0xbe, 0xe7, 0x43, 0xee, 0x1f, 0xc3,
-    0x8f, 0x4e, 0x0, 0x17, 0xc0, 0xe0, 0x38, 0x40,
-    0xe0, 0x0, 0xf4, 0x0, 0x3, 0x80, 0xe, 0x0,
-    0x3f, 0x0, 0x0, 0x38, 0x0, 0xe0, 0xf, 0xc0,
-    0x0, 0x3, 0x80, 0xe, 0x3, 0xf0, 0x0, 0x0,
-    0x38, 0x0, 0xe1, 0xfc, 0x0, 0x0, 0x1f, 0x80,
-    0x7e, 0x7e, 0x0, 0x0, 0xf, 0xf4, 0x2f, 0xd3,
-    0x80, 0x0, 0x0, 0xa4, 0x1, 0x90, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x0,
-
-    /* U+7FDA "翚" */
-    0xa, 0xaa, 0xaa, 0x86, 0xaa, 0xaa, 0x90, 0x3f,
-    0xff, 0xff, 0x5f, 0xff, 0xff, 0x80, 0xa, 0x0,
-    0x3d, 0xb, 0x40, 0x2e, 0x0, 0x3f, 0x80, 0xf4,
-    0x2f, 0xc0, 0x78, 0x0, 0xf, 0x3, 0xd0, 0xb,
-    0x46, 0xe0, 0x0, 0x1e, 0xff, 0x40, 0x5f, 0xfb,
-    0x80, 0xbf, 0xff, 0xbd, 0x7f, 0xfe, 0x6e, 0x3,
-    0xf9, 0x0, 0xf5, 0xa5, 0x0, 0x78, 0x0, 0x0,
-    0x0, 0x40, 0x0, 0x0, 0x40, 0x2a, 0xaa, 0xaa,
-    0xaa, 0xaa, 0xaa, 0x40, 0xff, 0xff, 0xff, 0xff,
-    0xff, 0xfe, 0x3, 0xd0, 0x2, 0x80, 0x0, 0x0,
-    0xb8, 0xf, 0x40, 0x2f, 0x0, 0x0, 0x2, 0xe0,
-    0x19, 0xaa, 0xfe, 0xaa, 0xaa, 0xa6, 0x40, 0x7,
-    0xff, 0xff, 0xff, 0xff, 0xc0, 0x0, 0x2, 0xf4,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x2f, 0x0, 0x2e,
-    0x0, 0x0, 0x0, 0x1, 0xfe, 0xaa, 0xfe, 0xaa,
-    0xa8, 0x0, 0xb, 0xff, 0xff, 0xff, 0xff, 0xf0,
-    0x0, 0x0, 0x0, 0xb, 0x80, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x2e, 0x0, 0x0, 0x0, 0xaa, 0xaa,
-    0xaa, 0xfe, 0xaa, 0xaa, 0x93, 0xff, 0xff, 0xff,
-    0xff, 0xff, 0xff, 0xc0, 0x0, 0x0, 0xb, 0x80,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x2e, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0xb8, 0x0, 0x0, 0x0,
+    /* U+7FD8 "翘" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x78, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1e,
+    0x0, 0x3, 0xff, 0x8f, 0xfd, 0x0, 0x3, 0xc0,
+    0x18, 0xff, 0xf3, 0xff, 0x80, 0x0, 0xfb, 0xff,
+    0x0, 0x3c, 0x1, 0xe0, 0xb, 0xff, 0xfe, 0x40,
+    0xf, 0x0, 0x38, 0x3, 0xff, 0x90, 0x1, 0xc3,
+    0xce, 0xe, 0x0, 0x51, 0xe0, 0x34, 0x74, 0xf3,
+    0xc3, 0x80, 0x0, 0x3c, 0x7d, 0xe, 0x3c, 0x74,
+    0xe0, 0x0, 0xf, 0xbd, 0x2, 0xcf, 0xe, 0x38,
+    0x0, 0x2, 0xfd, 0x4, 0x77, 0xc2, 0xce, 0x0,
+    0x7, 0xfc, 0x7, 0x48, 0xf0, 0x53, 0x80, 0x2f,
+    0xeb, 0xc2, 0xc0, 0x3c, 0x1, 0xe0, 0xf, 0x80,
+    0xfe, 0xe0, 0x1f, 0x2, 0xf8, 0x1, 0x0, 0xb,
+    0xf0, 0x2f, 0xc3, 0xfe, 0x0, 0x0, 0x0, 0x10,
+    0x7f, 0xf7, 0xf3, 0x80, 0x3f, 0xff, 0xff, 0x7e,
+    0x3d, 0xe0, 0xe0, 0xf, 0xff, 0xff, 0xd9, 0xf,
+    0x0, 0x38, 0x0, 0xf, 0xb, 0x80, 0x3, 0xc0,
+    0xe, 0x0, 0x3, 0xc2, 0xd0, 0x0, 0xf0, 0x3,
+    0x80, 0x0, 0xf0, 0xb4, 0x0, 0x3c, 0x1, 0xe0,
+    0x0, 0x38, 0x2d, 0x2, 0xfe, 0xf, 0xf4, 0x0,
+    0x2d, 0xb, 0x40, 0xbf, 0x3, 0xf8, 0xf0, 0xf,
+    0x2, 0xe0, 0x0, 0x0, 0x0, 0x3c, 0xb, 0x80,
+    0x7c, 0x0, 0x0, 0x0, 0x2e, 0x7, 0xc0, 0xf,
+    0xff, 0xff, 0xff, 0xff, 0x47, 0xd0, 0x1, 0xbf,
+    0xff, 0xff, 0xfe, 0x40, 0x90, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
 
     /* U+7FDF "翟" */
     0x7, 0xff, 0xff, 0xc7, 0xff, 0xff, 0x0, 0x1f,
@@ -111603,6 +117271,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xfe, 0x0, 0x3, 0xfe, 0x0, 0x0, 0x0, 0x40,
     0x0, 0x0, 0x40, 0x0,
 
+    /* U+7FE6 "翦" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xa, 0x0, 0x0, 0x18, 0x0, 0x0, 0x0, 0x3e,
+    0x0, 0x1, 0xf4, 0x0, 0x0, 0x0, 0x3d, 0x0,
+    0xf, 0x80, 0x0, 0x2a, 0xaa, 0xfa, 0xaa, 0xfe,
+    0xaa, 0xa4, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x55, 0x55, 0x50, 0x0, 0x1, 0x80, 0x3, 0xff,
+    0xff, 0xe0, 0x78, 0xf, 0x40, 0xf, 0x0, 0xb,
+    0x81, 0xe0, 0x3d, 0x0, 0x3d, 0x55, 0x6e, 0x7,
+    0x80, 0xf4, 0x0, 0xff, 0xff, 0xf8, 0x1e, 0x3,
+    0xd0, 0x3, 0xc0, 0x2, 0xe0, 0x78, 0xf, 0x40,
+    0xf, 0xff, 0xff, 0x81, 0xe0, 0x3d, 0x0, 0x3c,
+    0x0, 0x2e, 0x0, 0x1, 0xf4, 0x0, 0xf0, 0x15,
+    0xf4, 0x1, 0xff, 0xc0, 0x3, 0xc0, 0xbf, 0x40,
+    0x3, 0xe8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xff, 0xff, 0xf4, 0xff, 0xff, 0xf4,
+    0x3, 0xff, 0xff, 0xd3, 0xff, 0xff, 0xd0, 0x7,
+    0x40, 0xb, 0x43, 0xc0, 0xb, 0x40, 0x1f, 0x40,
+    0x2d, 0xb, 0xc0, 0x2d, 0x0, 0xf, 0x44, 0xb4,
+    0xb, 0xc0, 0xb4, 0x0, 0x1d, 0xba, 0xd0, 0xe,
+    0x7e, 0xd0, 0x0, 0x2f, 0xdb, 0x40, 0x1f, 0xeb,
+    0x40, 0xb, 0xf4, 0x2d, 0x7, 0xf8, 0x2d, 0x2,
+    0xfe, 0x0, 0xf5, 0xff, 0x0, 0xf4, 0xf, 0x80,
+    0xbf, 0xc7, 0xd0, 0xbf, 0xc0, 0x0, 0x2, 0xfd,
+    0x0, 0x2, 0xfd, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+7FE9 "翩" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0xf, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f,
@@ -111652,6 +117348,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x78, 0x1f, 0x80, 0xbe, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+7FF0 "翰" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x3c, 0x0, 0x0, 0x2e, 0x0, 0x0, 0x0, 0x3c,
+    0x0, 0x0, 0x7f, 0x40, 0x0, 0x0, 0x3c, 0x0,
+    0x0, 0xfb, 0xd0, 0x0, 0x3f, 0xff, 0xfd, 0x3,
+    0xe2, 0xf4, 0x0, 0x3f, 0xff, 0xfd, 0x1f, 0x80,
+    0xbd, 0x0, 0x0, 0x3c, 0x0, 0x7e, 0x0, 0x2f,
+    0x80, 0x0, 0x3c, 0x7, 0xf4, 0x0, 0x7, 0xf8,
+    0x5, 0x7d, 0x5b, 0xc0, 0x0, 0x0, 0xbc, 0xf,
+    0xff, 0xf5, 0xff, 0xe7, 0xff, 0x94, 0xe, 0x0,
+    0x74, 0xff, 0xe7, 0xff, 0xc0, 0xe, 0x0, 0x74,
+    0x0, 0xe0, 0x3, 0xc0, 0xe, 0x0, 0x74, 0x40,
+    0xe0, 0x3, 0xc0, 0xf, 0xff, 0xf5, 0xd0, 0xe7,
+    0x3, 0xc0, 0xf, 0xaa, 0xf4, 0xf0, 0xe3, 0xc3,
+    0xc0, 0xe, 0x0, 0x74, 0x74, 0xe1, 0xc3, 0xc0,
+    0xe, 0x0, 0x74, 0x3c, 0xe0, 0xe3, 0xc0, 0xf,
+    0xff, 0xf4, 0x24, 0xe0, 0x93, 0xc0, 0xa, 0xbe,
+    0xa4, 0x1, 0xe0, 0xb, 0xc0, 0x0, 0x3c, 0x0,
+    0x1f, 0xe0, 0xbf, 0xc0, 0x0, 0x3c, 0x1, 0xfe,
+    0xeb, 0xf7, 0xc0, 0xff, 0xff, 0xfd, 0xf4, 0xeb,
+    0x83, 0xc0, 0xff, 0xff, 0xfc, 0x40, 0xe0, 0x3,
+    0xc0, 0x0, 0x3c, 0x0, 0x0, 0xe0, 0x3, 0xc0,
+    0x0, 0x3c, 0x0, 0x0, 0xe0, 0x3, 0x80, 0x0,
+    0x3c, 0x0, 0x2, 0xe0, 0xb, 0x80, 0x0, 0x3c,
+    0x0, 0xbf, 0xd1, 0xff, 0x40, 0x0, 0x3c, 0x0,
+    0x3f, 0x40, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+7FF1 "翱" */
     0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x2, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3,
@@ -111679,6 +117403,31 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xd0, 0x1, 0xff, 0xf, 0xf4, 0x0, 0x2, 0xd0,
     0x0, 0x94, 0x6, 0x40,
 
+    /* U+7FF3 "翳" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xbf,
+    0xff, 0xff, 0xc7, 0xff, 0xf0, 0x2, 0xea, 0xea,
+    0xa9, 0x1f, 0xab, 0xc0, 0xb, 0x7, 0x0, 0x0,
+    0x74, 0xf, 0x0, 0x2c, 0x3f, 0xff, 0x83, 0xc0,
+    0x2f, 0xd0, 0xb1, 0xeb, 0xe9, 0x3d, 0x0, 0x15,
+    0x2, 0xce, 0xe, 0x0, 0xa5, 0x55, 0x50, 0xb,
+    0x29, 0x7d, 0x53, 0xff, 0xff, 0xc0, 0x2d, 0xff,
+    0xff, 0xd6, 0xd5, 0x6f, 0x0, 0xb0, 0xb, 0xd0,
+    0x7, 0x80, 0xf0, 0x2, 0xc1, 0xf6, 0xf0, 0x7,
+    0xdf, 0x0, 0xb, 0x2f, 0x0, 0xf0, 0xb, 0xf4,
+    0x0, 0x2e, 0xba, 0xaa, 0x96, 0xfe, 0xfe, 0x40,
+    0xbf, 0xff, 0xff, 0xff, 0x40, 0x7f, 0xc0, 0x0,
+    0x0, 0x0, 0x90, 0x0, 0x6, 0xa, 0xaa, 0xaa,
+    0x4a, 0xaa, 0xaa, 0x40, 0x3f, 0xff, 0xfe, 0x3f,
+    0xff, 0xfe, 0x0, 0x2c, 0x0, 0x78, 0x1c, 0x0,
+    0x78, 0x0, 0xfc, 0x0, 0xe0, 0xbc, 0x1, 0xe0,
+    0x0, 0xb8, 0x3, 0x80, 0xbc, 0x7, 0x80, 0x0,
+    0xe7, 0xce, 0x0, 0xf6, 0xee, 0x0, 0x1, 0xbf,
+    0x78, 0x0, 0xff, 0xb8, 0x0, 0x2f, 0xd0, 0xe0,
+    0x2f, 0xd1, 0xe0, 0xb, 0xf4, 0x7, 0x8b, 0xf8,
+    0x7, 0x80, 0xbe, 0x1, 0x7e, 0x3e, 0x5, 0x7d,
+    0x0, 0x80, 0x2f, 0xf0, 0x0, 0x3f, 0xe0, 0x0,
+    0x0, 0x14, 0x0, 0x0, 0x50, 0x0, 0x0,
+
     /* U+7FFB "翻" */
     0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0,
     0x15, 0xaf, 0xd5, 0x54, 0x55, 0x50, 0xff, 0xff,
@@ -111812,6 +117561,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0xf, 0xfe, 0x40, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+8004 "耄" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x3, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x3, 0xc0, 0x0, 0x3, 0x80, 0x1, 0xff, 0xff,
+    0xff, 0xff, 0x2f, 0x40, 0x0, 0xaa, 0xab, 0xea,
+    0xab, 0xfc, 0x0, 0x0, 0x0, 0x3, 0xc0, 0xf,
+    0xd0, 0x0, 0x0, 0x0, 0x3, 0xc0, 0xbf, 0x0,
+    0x0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc,
+    0x1a, 0xaa, 0xab, 0xff, 0xaa, 0xaa, 0xa8, 0x0,
+    0x0, 0x2f, 0xe0, 0x5, 0x80, 0x0, 0x0, 0x7,
+    0xff, 0xab, 0xff, 0xd2, 0x80, 0x1, 0xff, 0xff,
+    0xfe, 0x94, 0x3, 0xc0, 0x3f, 0xe0, 0xf4, 0x0,
+    0x0, 0x7, 0xc0, 0x38, 0x0, 0xff, 0xff, 0xff,
+    0xff, 0x40, 0x0, 0x0, 0x15, 0x55, 0x55, 0x55,
+    0x0, 0x0, 0x0, 0x0, 0x15, 0xab, 0xfe, 0x0,
+    0x6, 0xbf, 0xff, 0xff, 0xff, 0xe9, 0x0, 0xb,
+    0xff, 0xab, 0xd4, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x3, 0xc0, 0x55, 0x6a, 0x80, 0x2, 0xab, 0xff,
+    0xff, 0xff, 0xff, 0xc0, 0x3, 0xff, 0xfb, 0xe9,
+    0x55, 0x0, 0x0, 0x0, 0x0, 0x3, 0xc0, 0x5,
+    0x56, 0xa8, 0x16, 0xaa, 0xff, 0xff, 0xff, 0xff,
+    0xfc, 0x3f, 0xff, 0xff, 0xea, 0x55, 0x41, 0x0,
+    0x10, 0x0, 0x3, 0xd0, 0x0, 0x3, 0xc0, 0x0,
+    0x0, 0x2, 0xff, 0xfb, 0xff, 0xc0, 0x0, 0x0,
+    0x0, 0xbf, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+8005 "者" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x3, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -111866,33 +117642,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xff, 0xff, 0xff, 0xfc, 0x0, 0x0, 0x7c, 0x0,
     0x0, 0x0, 0x7c, 0x0,
 
-    /* U+8008 "耈" */
-    0x0, 0x0, 0x2, 0x40, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0xe, 0x0, 0x0, 0x0, 0x0, 0x2f, 0xff,
-    0xff, 0xff, 0xc0, 0xbc, 0x0, 0xbf, 0xff, 0xff,
-    0xff, 0x1f, 0xc0, 0x0, 0x0, 0x3, 0x80, 0x6,
-    0xf4, 0x0, 0x0, 0x0, 0xe, 0x0, 0xbe, 0x0,
-    0x2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb,
-    0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x0,
-    0x6f, 0xf4, 0x0, 0x0, 0x0, 0x0, 0x6f, 0xf8,
-    0x0, 0x5b, 0x80, 0x1, 0xbf, 0xf9, 0x1a, 0xff,
-    0xfe, 0x74, 0x1f, 0xe7, 0xff, 0xff, 0xe9, 0x1,
-    0xd0, 0x24, 0xb, 0xf9, 0x40, 0x0, 0x1f, 0x40,
-    0x0, 0x1f, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x0,
-    0x1a, 0xaa, 0xfa, 0xaa, 0x40, 0x0, 0x3, 0xc0,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x3f, 0xaa, 0xaa,
-    0xaa, 0xaa, 0x40, 0x3, 0xff, 0xff, 0xff, 0xff,
-    0xfe, 0x0, 0x7d, 0x0, 0x0, 0x0, 0x0, 0xb4,
-    0xf, 0xd0, 0x0, 0x0, 0x0, 0x2, 0xd0, 0x3c,
-    0x3f, 0xff, 0xff, 0xfc, 0xb, 0x40, 0x0, 0xfa,
-    0xaa, 0xaa, 0xf0, 0x2d, 0x0, 0x3, 0xc0, 0x0,
-    0x2, 0xc0, 0xf0, 0x0, 0xf, 0x0, 0x0, 0xb,
-    0x3, 0xc0, 0x0, 0x3f, 0xff, 0xff, 0xfc, 0xf,
-    0x0, 0x0, 0xaa, 0xaa, 0xaa, 0xa0, 0x7c, 0x0,
-    0x0, 0x0, 0x0, 0x6, 0xbf, 0xe0, 0x0, 0x0,
-    0x0, 0x0, 0xf, 0xfe, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x14, 0x0, 0x0,
-
     /* U+800B "耋" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x1e, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0,
@@ -111942,6 +117691,31 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xb, 0xf4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0,
 
+    /* U+800D "耍" */
+    0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xbf,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x0, 0x0,
+    0xf, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3d,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xf0, 0x0,
+    0x0, 0x0, 0xb, 0xff, 0xff, 0xff, 0xff, 0xfd,
+    0x0, 0x2f, 0xff, 0xff, 0xff, 0xff, 0xf4, 0x0,
+    0xb4, 0x7, 0xc0, 0x3c, 0x3, 0xd0, 0x2, 0xd0,
+    0x1f, 0x0, 0xf0, 0xf, 0x40, 0xb, 0x40, 0x7c,
+    0x3, 0xc0, 0x3d, 0x0, 0x2d, 0x1, 0xf0, 0xf,
+    0x0, 0xf4, 0x0, 0xb4, 0x7, 0xc0, 0x3c, 0x7f,
+    0xc0, 0x2, 0xd0, 0x5, 0x0, 0xa1, 0xfe, 0x0,
+    0x0, 0x0, 0x3c, 0x0, 0x1, 0x0, 0x0, 0x0,
+    0x3, 0xf0, 0x0, 0x0, 0x0, 0x1f, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xf8, 0x0, 0xf, 0x80, 0x0, 0x1f,
+    0x0, 0x0, 0x0, 0xfc, 0x0, 0x1, 0xf8, 0x0,
+    0x0, 0x7, 0xfe, 0x40, 0x1f, 0x80, 0x0, 0x0,
+    0x1, 0xbf, 0xfb, 0xf8, 0x0, 0x0, 0x0, 0x0,
+    0xb, 0xff, 0xd0, 0x0, 0x0, 0x0, 0x6, 0xff,
+    0xef, 0xfe, 0x0, 0x5, 0xaf, 0xff, 0xe0, 0x6,
+    0xff, 0xe0, 0x3f, 0xff, 0x90, 0x0, 0x0, 0x6f,
+    0xe0, 0x69, 0x0, 0x0, 0x0, 0x0, 0x7, 0x40,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+8010 "耐" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x6, 0x80, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x7, 0xc0, 0x3f, 0xff,
@@ -112357,6 +118131,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x2f, 0xf0, 0x0, 0x0, 0x74, 0x10, 0x0,
     0x2, 0x50, 0x0,
 
+    /* U+8029 "耩" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x7, 0x80, 0x0, 0xf0, 0xf, 0x0, 0x0, 0x1,
+    0xe0, 0x0, 0x3c, 0x3, 0xc0, 0x0, 0x0, 0x78,
+    0x6, 0xaf, 0xaa, 0xfa, 0xa4, 0xb, 0xff, 0xfa,
+    0xff, 0xff, 0xff, 0xfe, 0x3, 0xff, 0xff, 0x0,
+    0xf0, 0xf, 0x0, 0x0, 0x1, 0xe0, 0x0, 0x3c,
+    0x3, 0xc0, 0x0, 0x0, 0x78, 0x7, 0xff, 0xff,
+    0xff, 0xf0, 0x0, 0x1e, 0x0, 0xab, 0xea, 0xbe,
+    0xa8, 0x1, 0xff, 0xfd, 0x0, 0xf0, 0xf, 0x0,
+    0x0, 0xbf, 0xff, 0x40, 0x3c, 0x3, 0xc0, 0x0,
+    0x0, 0x78, 0xf, 0xff, 0xff, 0xff, 0xfd, 0x0,
+    0x1e, 0x2, 0xaa, 0xaf, 0xaa, 0xaa, 0x0, 0x7,
+    0x80, 0x0, 0x3, 0xc0, 0x0, 0x0, 0xff, 0xff,
+    0xca, 0xaa, 0xfa, 0xa9, 0x0, 0x3f, 0xff, 0xf3,
+    0xff, 0xff, 0xff, 0x80, 0x0, 0x3e, 0x0, 0xf0,
+    0xf, 0x0, 0xe0, 0x0, 0x1f, 0xf0, 0x3c, 0x3,
+    0xc0, 0x38, 0x0, 0xf, 0xff, 0xf, 0xff, 0xff,
+    0xfe, 0x0, 0xf, 0xfa, 0xf3, 0xea, 0xbe, 0xab,
+    0x80, 0xb, 0xde, 0x3d, 0xf0, 0xf, 0x0, 0xe0,
+    0x7, 0xc7, 0x83, 0x3c, 0x3, 0xc0, 0x38, 0x7,
+    0xd1, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xe0,
+    0x78, 0x1b, 0xea, 0xaa, 0xab, 0xe8, 0x0, 0x1e,
+    0x0, 0xf0, 0x0, 0x0, 0xe0, 0x0, 0x7, 0x80,
+    0x3c, 0x0, 0x0, 0x78, 0x0, 0x1, 0xe0, 0xf,
+    0x0, 0x7, 0xfd, 0x0, 0x0, 0x78, 0x3, 0xc0,
+    0x0, 0xf9, 0x0,
+
     /* U+802A "耪" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x2d, 0x0, 0x0, 0xf, 0x0, 0x0, 0x0, 0x3d,
@@ -112488,6 +118290,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0x2e, 0x3, 0xd0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+8037 "耷" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xf4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2,
+    0xf0, 0x0, 0x0, 0x0, 0x1f, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xf0, 0x1f, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xf0, 0x0, 0x0, 0x2f, 0x43, 0xe0, 0x0,
+    0x0, 0x0, 0x0, 0xbd, 0x0, 0xfc, 0x0, 0x0,
+    0x0, 0x7, 0xf4, 0x0, 0x3f, 0x40, 0x0, 0x0,
+    0x7f, 0xc0, 0x0, 0xb, 0xf8, 0x0, 0x1b, 0xfe,
+    0x0, 0x0, 0x1, 0xff, 0xe4, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xfd, 0xb4, 0x7f, 0xff, 0xff,
+    0xff, 0xf8, 0x6c, 0x0, 0x1f, 0x0, 0x0, 0x2,
+    0xe0, 0x0, 0x0, 0x1f, 0x0, 0x0, 0x2, 0xe0,
+    0x0, 0x0, 0x1f, 0xff, 0xff, 0xff, 0xe0, 0x0,
+    0x0, 0x1f, 0xff, 0xff, 0xff, 0xe0, 0x0, 0x0,
+    0x1f, 0x0, 0x0, 0x2, 0xe0, 0x0, 0x0, 0x1f,
+    0x0, 0x0, 0x2, 0xe0, 0x0, 0x0, 0x1f, 0xff,
+    0xff, 0xff, 0xe0, 0x0, 0x0, 0x1f, 0xff, 0xff,
+    0xff, 0xe0, 0x0, 0x0, 0x1f, 0x0, 0x0, 0x2,
+    0xe0, 0x0, 0x0, 0x1f, 0x0, 0x0, 0x2, 0xe5,
+    0x64, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8,
+    0x3f, 0xff, 0xff, 0xff, 0xff, 0xfa, 0x50, 0x0,
+    0x0, 0x0, 0x0, 0x2, 0xe0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x2, 0xe0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x2, 0xe0, 0x0,
+
     /* U+8038 "耸" */
     0x0, 0x1, 0x40, 0x0, 0x4, 0x0, 0x0, 0x0,
     0x3, 0xe0, 0x0, 0x2e, 0x0, 0x0, 0x0, 0x7,
@@ -112831,6 +118660,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0xfb, 0xe0, 0x0, 0x0, 0xfd, 0x0, 0x0,
     0xf2, 0x40, 0x0, 0x0, 0x18,
 
+    /* U+8058 "聘" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0xf, 0x0, 0x0, 0x15, 0x55,
+    0x54, 0x0, 0xf, 0x0, 0x0, 0x3f, 0xff, 0xfd,
+    0x6a, 0xaf, 0xaa, 0x90, 0x1f, 0x96, 0xf4, 0xbf,
+    0xff, 0xff, 0xe0, 0xb, 0x40, 0xe0, 0xb4, 0xf,
+    0x1, 0xe0, 0xb, 0x40, 0xe0, 0xb4, 0xf, 0x0,
+    0xe0, 0xb, 0x40, 0xe0, 0xb5, 0x5f, 0x55, 0xe0,
+    0xb, 0x40, 0xe0, 0xbf, 0xff, 0xff, 0xe0, 0xb,
+    0xff, 0xe0, 0xba, 0xaf, 0xaa, 0xe0, 0xb, 0xff,
+    0xe0, 0xb4, 0xf, 0x0, 0xe0, 0xb, 0x40, 0xe0,
+    0xb4, 0xf, 0x0, 0xe0, 0xb, 0x40, 0xe0, 0xbf,
+    0xff, 0xff, 0xe0, 0xb, 0x40, 0xe0, 0x7f, 0xff,
+    0xff, 0xe0, 0xb, 0x40, 0xe0, 0x0, 0x0, 0x0,
+    0x0, 0xb, 0xff, 0xe0, 0x0, 0x0, 0x0, 0x0,
+    0xb, 0xff, 0xe3, 0xff, 0xff, 0xff, 0xfe, 0xb,
+    0x40, 0xe3, 0xff, 0xff, 0xff, 0xfd, 0xb, 0x40,
+    0xe0, 0xf, 0x0, 0x0, 0x0, 0xb, 0x40, 0xe0,
+    0xf, 0x0, 0x0, 0x0, 0xb, 0x40, 0xf6, 0xf,
+    0xff, 0xff, 0xc0, 0xb, 0xaf, 0xff, 0xa, 0xaa,
+    0xaf, 0xc0, 0xff, 0xff, 0xf9, 0x0, 0x0, 0x3,
+    0xc0, 0xbe, 0x90, 0xe0, 0x0, 0x0, 0x7, 0x80,
+    0x0, 0x0, 0xe0, 0x0, 0x0, 0xb, 0x80, 0x0,
+    0x0, 0xe0, 0x0, 0x5, 0x6f, 0x40, 0x0, 0x0,
+    0xe0, 0x0, 0x3f, 0xff, 0x0, 0x0, 0x0, 0xe0,
+    0x0, 0x1f, 0xa4, 0x0,
+
     /* U+805A "聚" */
     0x3f, 0xff, 0xff, 0xf4, 0x0, 0x0, 0x0, 0x2b,
     0xea, 0xaf, 0xeb, 0xff, 0xff, 0xc0, 0x3, 0xc0,
@@ -112967,6 +118823,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0xb4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0xb4, 0x0, 0x0, 0x0,
 
+    /* U+8080 "肀" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xf4, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xf4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xf4, 0x0, 0x0, 0x0, 0x1, 0xff, 0xff, 0xff,
+    0xff, 0xfd, 0x0, 0x1, 0xff, 0xff, 0xff, 0xff,
+    0xfd, 0x0, 0x0, 0x0, 0x0, 0xf8, 0x0, 0x3d,
+    0x0, 0x0, 0x0, 0x0, 0xf4, 0x0, 0x3d, 0x0,
+    0x0, 0x0, 0x0, 0xf4, 0x0, 0x3d, 0x0, 0x0,
+    0x0, 0x0, 0xf4, 0x0, 0x3d, 0x0, 0xbf, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xfc, 0x15, 0x55, 0x55, 0xf9,
+    0x55, 0x7d, 0x54, 0x0, 0x0, 0x0, 0xf4, 0x0,
+    0x3d, 0x0, 0x0, 0x0, 0x0, 0xf4, 0x0, 0x3d,
+    0x0, 0x0, 0x0, 0x0, 0xf4, 0x0, 0x3d, 0x0,
+    0x0, 0x0, 0x0, 0xf8, 0x0, 0x3d, 0x0, 0x3,
+    0xff, 0xff, 0xff, 0xff, 0xfd, 0x0, 0x3, 0xff,
+    0xff, 0xff, 0xff, 0xfd, 0x0, 0x0, 0x0, 0x0,
+    0xf4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf4,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf4, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0xf4, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0xf4, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0xf4, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xf4, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xf4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xf4, 0x0, 0x0, 0x0,
+
     /* U+8083 "肃" */
     0x0, 0x0, 0x0, 0x64, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x78, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -113147,6 +119030,55 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xb8, 0xf, 0xe3, 0xd0, 0x0, 0x1f, 0xf0, 0x10,
     0x0, 0x1, 0x40, 0x0, 0x0, 0x0,
 
+    /* U+8093 "肓" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x2, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x7, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f,
+    0x40, 0x0, 0x0, 0x7f, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xfd, 0xab, 0xfa, 0xaa, 0xaa, 0xaa, 0xaa,
+    0xa0, 0xb, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x2e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xbf,
+    0xff, 0xff, 0xff, 0xff, 0x0, 0x2, 0xff, 0xff,
+    0xff, 0xff, 0xfc, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x2, 0xff, 0xff, 0xff, 0xff, 0xf4, 0x0, 0xb,
+    0xff, 0xff, 0xff, 0xff, 0xd0, 0x0, 0x2d, 0x0,
+    0x0, 0x0, 0xf, 0x40, 0x0, 0xb4, 0x0, 0x0,
+    0x0, 0x3d, 0x0, 0x2, 0xff, 0xff, 0xff, 0xff,
+    0xf4, 0x0, 0xb, 0xff, 0xff, 0xff, 0xff, 0xd0,
+    0x0, 0x2d, 0x0, 0x0, 0x0, 0xf, 0x40, 0x0,
+    0xb4, 0x0, 0x0, 0x0, 0x3d, 0x0, 0x2, 0xff,
+    0xff, 0xff, 0xff, 0xf4, 0x0, 0xb, 0xff, 0xff,
+    0xff, 0xff, 0xd0, 0x0, 0x2d, 0x0, 0x0, 0x0,
+    0xf, 0x40, 0x0, 0xb4, 0x0, 0x0, 0x0, 0x3c,
+    0x0, 0x2, 0xd0, 0x0, 0x0, 0x16, 0xf0, 0x0,
+    0xb, 0x40, 0x0, 0x3, 0xff, 0x80, 0x0, 0x2d,
+    0x0, 0x0, 0xb, 0xe4, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
+    /* U+8096 "肖" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1,
+    0xf0, 0x0, 0x0, 0x38, 0x0, 0x1f, 0x0, 0x3,
+    0xc7, 0xf0, 0x1, 0xf0, 0x0, 0xfc, 0x1f, 0xc0,
+    0x1f, 0x0, 0x3f, 0x0, 0x3f, 0x1, 0xf0, 0xf,
+    0xc0, 0x0, 0xf8, 0x1f, 0x3, 0xf4, 0x0, 0x7,
+    0x1, 0xf0, 0x1c, 0x0, 0x0, 0x0, 0x1f, 0x0,
+    0x0, 0x3, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x3f,
+    0xff, 0xff, 0xff, 0xff, 0xc3, 0xc0, 0x0, 0x0,
+    0x0, 0x7c, 0x3c, 0x0, 0x0, 0x0, 0x7, 0xc3,
+    0xc0, 0x0, 0x0, 0x0, 0x7c, 0x3f, 0xff, 0xff,
+    0xff, 0xff, 0xc3, 0xff, 0xff, 0xff, 0xff, 0xfc,
+    0x3c, 0x0, 0x0, 0x0, 0x7, 0xc3, 0xc0, 0x0,
+    0x0, 0x0, 0x7c, 0x3c, 0x0, 0x0, 0x0, 0x7,
+    0xc3, 0xc0, 0x0, 0x0, 0x0, 0x7c, 0x3f, 0xff,
+    0xff, 0xff, 0xff, 0xc3, 0xff, 0xff, 0xff, 0xff,
+    0xfc, 0x3c, 0x0, 0x0, 0x0, 0x7, 0xc3, 0xc0,
+    0x0, 0x0, 0x0, 0x7c, 0x3c, 0x0, 0x0, 0x0,
+    0xb, 0xc3, 0xc0, 0x0, 0x0, 0xbf, 0xf8, 0x3c,
+    0x0, 0x0, 0x7, 0xf9, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0,
+
     /* U+8098 "肘" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x3d, 0x0, 0x1,
     0x55, 0x54, 0x0, 0x0, 0x3d, 0x0, 0x3, 0xff,
@@ -113225,6 +119157,31 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xb8, 0x7, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+809C "肜" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0x0, 0x5,
+    0x55, 0x54, 0x0, 0x0, 0x7c, 0x0, 0x3f, 0xff,
+    0xf0, 0x0, 0xb, 0xe0, 0x0, 0xff, 0xff, 0xc0,
+    0x0, 0xfe, 0x0, 0x3, 0xc0, 0xf, 0x0, 0x1f,
+    0xd0, 0x0, 0xf, 0x0, 0x3c, 0x2, 0xfc, 0x0,
+    0x0, 0x3c, 0x0, 0xf0, 0xbf, 0x80, 0x0, 0x0,
+    0xf0, 0x3, 0xc7, 0xf0, 0x0, 0x0, 0x3, 0xd5,
+    0x5f, 0x9, 0x0, 0x2, 0x0, 0xf, 0xff, 0xfc,
+    0x0, 0x0, 0x3f, 0x0, 0x3f, 0xff, 0xf0, 0x0,
+    0x7, 0xf0, 0x0, 0xf0, 0x3, 0xc0, 0x0, 0x7f,
+    0x0, 0x3, 0xc0, 0xf, 0x0, 0xf, 0xe0, 0x0,
+    0xf, 0x0, 0x3c, 0x1, 0xfd, 0x0, 0x0, 0x3c,
+    0x0, 0xf0, 0x7f, 0xc0, 0x0, 0x0, 0xff, 0xff,
+    0xc3, 0xf4, 0x0, 0x0, 0x3, 0xff, 0xff, 0xa,
+    0x0, 0x0, 0x70, 0xf, 0x0, 0x3c, 0x0, 0x0,
+    0x7, 0xd0, 0x7c, 0x0, 0xf0, 0x0, 0x0, 0xbe,
+    0x1, 0xe0, 0x3, 0xc0, 0x0, 0xb, 0xe0, 0xb,
+    0x80, 0xf, 0x0, 0x0, 0xfd, 0x0, 0x3d, 0x0,
+    0x3c, 0x0, 0x2f, 0xd0, 0x0, 0xf0, 0x0, 0xf0,
+    0x7, 0xf8, 0x0, 0xb, 0xc0, 0x7, 0xc1, 0xff,
+    0x40, 0x0, 0x3d, 0x2, 0xff, 0x3f, 0xe0, 0x0,
+    0x2, 0xf0, 0x7, 0xf4, 0xb8, 0x0, 0x0, 0x2,
+    0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+809D "肝" */
     0x2, 0xaa, 0xa8, 0x0, 0x0, 0x0, 0x0, 0x3,
     0xff, 0xfc, 0x2f, 0xff, 0xff, 0xf0, 0x3, 0xea,
@@ -113625,6 +119582,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0xb, 0xf8, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+80B4 "肴" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xe4, 0x0, 0x0, 0x0, 0x6d, 0x0, 0x0, 0xff,
+    0xe4, 0x0, 0xb, 0xfd, 0x0, 0x0, 0x1b, 0xff,
+    0x91, 0xff, 0xd0, 0x0, 0x0, 0x0, 0x2f, 0xff,
+    0xf9, 0x0, 0x0, 0x0, 0x0, 0x6f, 0xff, 0xf9,
+    0x0, 0x0, 0x0, 0x6f, 0xff, 0x91, 0xbf, 0xe4,
+    0x0, 0xb, 0xff, 0x95, 0x0, 0x6, 0xff, 0x40,
+    0x7, 0x90, 0xb, 0x80, 0x0, 0x1b, 0x0, 0x0,
+    0x0, 0x1f, 0x40, 0x0, 0x0, 0x0, 0x3f, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xfc, 0x2f, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xfc, 0x0, 0x2, 0xf0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0xb, 0xd0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x2f, 0xff, 0xff, 0xff, 0xfd,
+    0x0, 0x0, 0xbf, 0xff, 0xff, 0xff, 0xfd, 0x0,
+    0x3, 0xff, 0x0, 0x0, 0x0, 0x3d, 0x0, 0x1f,
+    0xef, 0x0, 0x0, 0x0, 0x3d, 0x0, 0xbf, 0x1f,
+    0xff, 0xff, 0xff, 0xfd, 0x0, 0xb8, 0x1f, 0xff,
+    0xff, 0xff, 0xfd, 0x0, 0x10, 0x1f, 0x0, 0x0,
+    0x0, 0x3d, 0x0, 0x0, 0x1f, 0x0, 0x0, 0x0,
+    0x3d, 0x0, 0x0, 0x1f, 0xff, 0xff, 0xff, 0xfd,
+    0x0, 0x0, 0x1f, 0xaa, 0xaa, 0xaa, 0xbd, 0x0,
+    0x0, 0x1f, 0x0, 0x0, 0x0, 0x3d, 0x0, 0x0,
+    0x1f, 0x0, 0x0, 0x0, 0x7d, 0x0, 0x0, 0x1f,
+    0x0, 0x0, 0xf, 0xfc, 0x0, 0x0, 0x1f, 0x0,
+    0x0, 0xf, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+80B7 "肷" */
     0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x2, 0xd0, 0x0, 0x0, 0x2, 0xaa,
@@ -113870,6 +119855,29 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+80C3 "胃" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xc7, 0xea, 0xaa, 0xfe, 0xaa,
+    0xaf, 0x1f, 0x0, 0x3, 0xd0, 0x0, 0x3c, 0x7c,
+    0x0, 0xf, 0x40, 0x0, 0xf1, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xc7, 0xea, 0xaa, 0xfe, 0xaa, 0xaf,
+    0x1f, 0x0, 0x3, 0xd0, 0x0, 0x3c, 0x7c, 0x0,
+    0xf, 0x40, 0x0, 0xf1, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xc6, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0xa, 0xaa, 0xaa,
+    0xaa, 0xaa, 0x80, 0x3f, 0xff, 0xff, 0xff, 0xff,
+    0x0, 0xf4, 0x0, 0x0, 0x0, 0xbc, 0x3, 0xd0,
+    0x0, 0x0, 0x1, 0xf0, 0xf, 0xea, 0xaa, 0xaa,
+    0xaf, 0xc0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0x0,
+    0xf4, 0x0, 0x0, 0x0, 0x7c, 0x3, 0xd0, 0x0,
+    0x0, 0x1, 0xf0, 0xf, 0xff, 0xff, 0xff, 0xff,
+    0xc0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0x0, 0xf4,
+    0x0, 0x0, 0x0, 0x7c, 0x3, 0xd0, 0x0, 0x0,
+    0x1, 0xf0, 0xf, 0x40, 0x0, 0x0, 0xf, 0xc0,
+    0x3d, 0x0, 0x0, 0x3f, 0xfe, 0x0, 0xf0, 0x0,
+    0x0, 0xbf, 0x90, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0,
+
     /* U+80C4 "胄" */
     0x0, 0x0, 0x1, 0x40, 0x0, 0x0, 0x0, 0x0,
     0x1f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7c, 0x0,
@@ -113918,6 +119926,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xb8, 0xf, 0xe0, 0xff, 0xff, 0xff, 0xfc, 0x20,
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+80CC "背" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xf4, 0x7, 0xc0, 0x0, 0x0, 0x0, 0x3,
+    0xd0, 0x1f, 0x0, 0x1a, 0x1, 0x55, 0x5f, 0x40,
+    0x7c, 0xb, 0xfc, 0xf, 0xff, 0xfd, 0x1, 0xfb,
+    0xff, 0x40, 0x15, 0x55, 0xf4, 0x7, 0xff, 0x80,
+    0x0, 0x0, 0x3, 0xd0, 0x1f, 0x40, 0x1, 0x0,
+    0x0, 0xf, 0x40, 0x7c, 0x0, 0x1f, 0x0, 0x6b,
+    0xfd, 0x1, 0xf0, 0x0, 0xb9, 0xff, 0xff, 0xf4,
+    0x3, 0xfa, 0xaf, 0xd7, 0xf9, 0x43, 0xd0, 0xf,
+    0xff, 0xff, 0x4, 0x0, 0xa, 0x0, 0x1, 0x55,
+    0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x1, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x0, 0x7,
+    0xff, 0xff, 0xff, 0xff, 0xc0, 0x0, 0x1f, 0x0,
+    0x0, 0x0, 0x1f, 0x0, 0x0, 0x7c, 0x0, 0x0,
+    0x0, 0x7c, 0x0, 0x1, 0xff, 0xff, 0xff, 0xff,
+    0xf0, 0x0, 0x7, 0xff, 0xff, 0xff, 0xff, 0xc0,
+    0x0, 0x1f, 0x0, 0x0, 0x0, 0x1f, 0x0, 0x0,
+    0x7c, 0x0, 0x0, 0x0, 0x7c, 0x0, 0x1, 0xff,
+    0xff, 0xff, 0xff, 0xf0, 0x0, 0x7, 0xff, 0xff,
+    0xff, 0xff, 0xc0, 0x0, 0x1f, 0x0, 0x0, 0x0,
+    0x1f, 0x0, 0x0, 0x7c, 0x0, 0x0, 0x0, 0x7c,
+    0x0, 0x1, 0xf0, 0x0, 0x0, 0x7, 0xf0, 0x0,
+    0x7, 0xc0, 0x0, 0xf, 0xff, 0x40, 0x0, 0x1f,
+    0x0, 0x0, 0x3f, 0xe4, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+80CD "胍" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x15, 0x54, 0x0, 0x0, 0x1, 0x6c, 0x0, 0x3f,
@@ -114321,6 +120356,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xb, 0xf4, 0x0, 0x0, 0x60, 0x0, 0x0, 0x0,
     0x40, 0x0, 0x0,
 
+    /* U+80E9 "胩" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x1, 0xaa,
+    0xa8, 0x0, 0x3c, 0x0, 0x0, 0x2, 0xff, 0xfc,
+    0x0, 0x3c, 0x0, 0x0, 0x2, 0xe5, 0x7c, 0x0,
+    0x3c, 0x0, 0x0, 0x2, 0xd0, 0x3c, 0x0, 0x3f,
+    0xff, 0xf8, 0x2, 0xd0, 0x3c, 0x0, 0x3f, 0xff,
+    0xf8, 0x2, 0xd0, 0x3c, 0x0, 0x3d, 0x55, 0x50,
+    0x2, 0xd0, 0x3c, 0x0, 0x3c, 0x0, 0x0, 0x2,
+    0xff, 0xfc, 0x0, 0x3c, 0x0, 0x0, 0x2, 0xff,
+    0xfc, 0x0, 0x3c, 0x0, 0x0, 0x2, 0xe5, 0x7c,
+    0x0, 0x3c, 0x0, 0x0, 0x2, 0xd0, 0x3c, 0xff,
+    0xff, 0xff, 0xfe, 0x2, 0xd0, 0x3c, 0xff, 0xff,
+    0xff, 0xfe, 0x2, 0xd0, 0x3c, 0x0, 0x0, 0x0,
+    0x0, 0x2, 0xd0, 0x3c, 0x0, 0x3c, 0x0, 0x0,
+    0x2, 0xff, 0xfc, 0x0, 0x3d, 0x80, 0x0, 0x2,
+    0xff, 0xfc, 0x0, 0x3f, 0xf4, 0x0, 0x3, 0xd0,
+    0x3c, 0x0, 0x3d, 0xfe, 0x0, 0x3, 0xc0, 0x3c,
+    0x0, 0x3c, 0x1f, 0xd0, 0x3, 0xc0, 0x3c, 0x0,
+    0x3c, 0x3, 0xf4, 0x3, 0xc0, 0x3c, 0x0, 0x3c,
+    0x0, 0xbc, 0x7, 0x80, 0x3c, 0x0, 0x3c, 0x0,
+    0x28, 0xb, 0x80, 0x3c, 0x0, 0x3c, 0x0, 0x0,
+    0xf, 0x0, 0x3c, 0x0, 0x3c, 0x0, 0x0, 0x1f,
+    0x2, 0xfc, 0x0, 0x3c, 0x0, 0x0, 0x2e, 0x3,
+    0xf8, 0x0, 0x3c, 0x0, 0x0, 0x2c, 0x2, 0x90,
+    0x0, 0x3c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+80EA "胪" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0xf, 0x0, 0x0, 0x1, 0x55,
@@ -115153,32 +121216,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0xf0, 0x7f, 0x0, 0x0, 0x3, 0xc0, 0x1,
     0x40, 0x40, 0x0, 0x0, 0xf, 0x0, 0x0,
 
-    /* U+8127 "脧" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x38, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0xf8, 0x0, 0x0, 0xb, 0xff, 0xe0,
-    0x2, 0xf0, 0x70, 0x0, 0xb, 0xff, 0xe0, 0x7,
-    0xc0, 0xbc, 0x0, 0xb, 0x0, 0xe0, 0x1f, 0x0,
-    0x2f, 0x0, 0xb, 0x0, 0xe0, 0x7d, 0x0, 0xf,
-    0x80, 0xb, 0x50, 0xe2, 0xff, 0xff, 0xff, 0xe0,
-    0xb, 0xf0, 0xe2, 0xff, 0xff, 0xfa, 0xf0, 0xb,
-    0xb8, 0xe0, 0x40, 0x0, 0x0, 0x60, 0xb, 0x7c,
-    0xe0, 0x3, 0x80, 0xf4, 0x0, 0xb, 0x2e, 0xe0,
-    0x1f, 0x80, 0xbe, 0x0, 0xb, 0xf, 0xe0, 0xbd,
-    0x0, 0x1f, 0xd0, 0xb, 0x0, 0xe3, 0xf5, 0x80,
-    0x2, 0xf8, 0xb, 0x0, 0xef, 0xc3, 0xc0, 0x0,
-    0x7c, 0xb, 0x7, 0xe5, 0xb, 0xff, 0xff, 0x4,
-    0xb, 0x6f, 0xe0, 0x1f, 0xff, 0xff, 0x0, 0xb,
-    0xfe, 0xe0, 0x3d, 0x0, 0x1f, 0x0, 0xf, 0xb0,
-    0xe0, 0xff, 0x0, 0x2d, 0x0, 0xf, 0x0, 0xe2,
-    0xeb, 0x80, 0x7c, 0x0, 0xf, 0x0, 0xeb, 0xc3,
-    0xe1, 0xf0, 0x0, 0xf, 0x0, 0xef, 0x0, 0xfb,
-    0xd0, 0x0, 0x1e, 0x0, 0xe0, 0x0, 0x7f, 0x80,
-    0x0, 0x2d, 0x0, 0xe0, 0x1, 0xff, 0xe0, 0x0,
-    0x3c, 0x1, 0xe0, 0x2f, 0xe2, 0xfe, 0x40, 0x7c,
-    0x1f, 0xe7, 0xff, 0x40, 0x2f, 0xf8, 0xb4, 0x1f,
-    0xdf, 0xe4, 0x0, 0x2, 0xfc, 0x20, 0x4, 0xa,
-    0x0, 0x0, 0x0, 0x14,
+    /* U+811E "脞" */
+    0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0,
+    0x55, 0x50, 0x0, 0xf, 0x0, 0x0, 0x2, 0xff,
+    0xf0, 0xd, 0xf, 0x1, 0xc0, 0x2, 0xff, 0xf0,
+    0x1e, 0xf, 0x2, 0xc0, 0x2, 0xc0, 0xf0, 0x1d,
+    0xf, 0x3, 0xc0, 0x2, 0xc0, 0xf0, 0x2c, 0xf,
+    0x3, 0xc0, 0x2, 0xc0, 0xf0, 0x3c, 0xf, 0x3,
+    0x80, 0x2, 0xc0, 0xf0, 0x3d, 0xf, 0x7, 0xc0,
+    0x2, 0xd0, 0xf0, 0x7f, 0xf, 0xf, 0xd0, 0x2,
+    0xff, 0xf0, 0xff, 0x4f, 0xf, 0xf0, 0x2, 0xff,
+    0xf0, 0xf3, 0xcf, 0x1d, 0x78, 0x2, 0xc0, 0xf2,
+    0xe2, 0xdf, 0x3c, 0x3c, 0x2, 0xc0, 0xf7, 0xc0,
+    0xef, 0x78, 0x1e, 0x2, 0xc0, 0xfb, 0x80, 0x9f,
+    0x74, 0xd, 0x2, 0xc0, 0xf1, 0x0, 0xf, 0x0,
+    0x0, 0x2, 0xe5, 0xf0, 0x0, 0xf, 0x0, 0x0,
+    0x2, 0xff, 0xf0, 0x0, 0xf, 0x40, 0x0, 0x3,
+    0xea, 0xf0, 0xff, 0xff, 0xff, 0xf4, 0x3, 0xc0,
+    0xf0, 0xff, 0xff, 0xff, 0xf4, 0x3, 0xc0, 0xf0,
+    0x0, 0xf, 0x0, 0x0, 0x3, 0xc0, 0xf0, 0x0,
+    0xf, 0x0, 0x0, 0x7, 0x80, 0xf0, 0x0, 0xf,
+    0x0, 0x0, 0xb, 0x40, 0xf0, 0x0, 0xf, 0x0,
+    0x0, 0xf, 0x0, 0xf1, 0x55, 0x5f, 0x55, 0x54,
+    0x1f, 0x6, 0xf3, 0xff, 0xff, 0xff, 0xfe, 0x3e,
+    0xb, 0xe3, 0xff, 0xff, 0xff, 0xfe, 0x2c, 0x6,
+    0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
 
     /* U+812C "脬" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x14, 0x2,
@@ -115313,6 +121376,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xf0, 0xf0, 0x19, 0x0, 0xf0, 0x0, 0x2a, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+8138 "脸" */
+    0x0, 0x0, 0x0, 0x0, 0xf, 0x0, 0x0, 0x0,
+    0xbf, 0xfe, 0x0, 0xb, 0xf0, 0x0, 0x0, 0x2f,
+    0xff, 0xc0, 0x3, 0xed, 0x0, 0x0, 0xb, 0x95,
+    0xf0, 0x2, 0xd3, 0xc0, 0x0, 0x2, 0xd0, 0x3c,
+    0x1, 0xe0, 0xbc, 0x0, 0x0, 0xb4, 0xf, 0x0,
+    0xf0, 0xf, 0x80, 0x0, 0x2d, 0x3, 0xc0, 0xf4,
+    0x0, 0xf8, 0x0, 0xb, 0x40, 0xf0, 0xf8, 0x0,
+    0x1f, 0x80, 0x2, 0xe5, 0x7c, 0xf8, 0x0, 0x1,
+    0xf8, 0x0, 0xbf, 0xff, 0xfd, 0x55, 0x55, 0x6f,
+    0xc0, 0x2f, 0xab, 0xf8, 0xff, 0xff, 0xfd, 0xf8,
+    0xb, 0x40, 0xf4, 0x3f, 0xff, 0xfe, 0x8, 0x2,
+    0xd0, 0x3c, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb4,
+    0xf, 0x1c, 0xf, 0x0, 0x38, 0x0, 0x2c, 0x3,
+    0xc7, 0x42, 0xd0, 0x1e, 0x0, 0xb, 0xff, 0xf0,
+    0xf0, 0x78, 0xb, 0x40, 0x2, 0xff, 0xfc, 0x3c,
+    0xf, 0x3, 0xc0, 0x0, 0xf0, 0xf, 0xb, 0x42,
+    0xc1, 0xe0, 0x0, 0x3c, 0x3, 0xc1, 0xe0, 0x74,
+    0xb4, 0x0, 0xf, 0x0, 0xf0, 0x3c, 0x1e, 0x3c,
+    0x0, 0x3, 0x80, 0x3c, 0xf, 0x2, 0x1e, 0x0,
+    0x1, 0xd0, 0xf, 0x1, 0x40, 0xf, 0x40, 0x0,
+    0xf0, 0x3, 0xc0, 0x0, 0x3, 0xc0, 0x0, 0x3c,
+    0x2, 0xf7, 0xff, 0xff, 0xff, 0xf8, 0x2e, 0xf,
+    0xfa, 0xff, 0xff, 0xff, 0xfe, 0xf, 0x3, 0xf8,
+    0x15, 0x55, 0x55, 0x55, 0x0, 0x40, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+813E "脾" */
     0x0, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x3, 0xe0, 0x0, 0x0, 0x0,
@@ -115539,33 +121629,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xc0, 0xfd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+8152 "腒" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2,
-    0xff, 0xf0, 0x3f, 0xff, 0xff, 0xf0, 0x2, 0xff,
-    0xf0, 0x3f, 0xff, 0xff, 0xf4, 0x2, 0xc0, 0xb0,
-    0x3c, 0x0, 0x0, 0xf4, 0x2, 0xc0, 0xb0, 0x3c,
-    0x0, 0x0, 0xb4, 0x2, 0xc0, 0xb0, 0x3c, 0x0,
-    0x0, 0xb4, 0x2, 0xc0, 0xb0, 0x3d, 0x55, 0x55,
-    0xf4, 0x2, 0xc0, 0xb0, 0x3f, 0xff, 0xff, 0xf4,
-    0x2, 0xff, 0xf0, 0x3e, 0xaa, 0xaa, 0xa0, 0x2,
-    0xff, 0xf0, 0x3c, 0x0, 0x50, 0x0, 0x2, 0xd0,
-    0xf0, 0x3c, 0x0, 0xf0, 0x0, 0x2, 0xc0, 0xb0,
-    0x3c, 0x0, 0xf0, 0x0, 0x2, 0xc0, 0xb0, 0x3f,
-    0xff, 0xff, 0xfe, 0x2, 0xc0, 0xb0, 0x3f, 0xff,
-    0xff, 0xff, 0x2, 0xc0, 0xb0, 0x3c, 0x0, 0xf0,
-    0x0, 0x3, 0xd5, 0xf0, 0x3c, 0x0, 0xf0, 0x0,
-    0x3, 0xff, 0xf0, 0x3c, 0x0, 0xf0, 0x0, 0x3,
-    0xea, 0xf0, 0x7c, 0xff, 0xff, 0xf0, 0x3, 0xc0,
-    0xb0, 0x78, 0xff, 0xff, 0xf0, 0x3, 0xc0, 0xb0,
-    0xb4, 0xe0, 0x0, 0xf0, 0x3, 0x80, 0xb0, 0xf4,
-    0xe0, 0x0, 0xf0, 0x7, 0x80, 0xb0, 0xf0, 0xe0,
-    0x0, 0xf0, 0xb, 0x40, 0xb1, 0xf0, 0xe0, 0x0,
-    0xf0, 0xf, 0x0, 0xf3, 0xe0, 0xff, 0xff, 0xf0,
-    0x1f, 0xb, 0xf7, 0xc0, 0xff, 0xff, 0xf0, 0x2d,
-    0xb, 0xef, 0xc0, 0xe0, 0x0, 0xf0, 0x2c, 0x6,
-    0x43, 0x40, 0xe0, 0x0, 0xf0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0,
-
     /* U+8153 "腓" */
     0x0, 0x0, 0x0, 0x2, 0x80, 0xb4, 0x0, 0x0,
     0x55, 0x50, 0x3, 0xd0, 0xf4, 0x0, 0x2, 0xff,
@@ -116170,6 +122233,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x40, 0x7, 0xfd, 0x0, 0x10, 0x0, 0x4, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+8182 "膂" */
+    0x0, 0x18, 0x0, 0x2, 0x40, 0x0, 0x0, 0x0,
+    0x3d, 0x0, 0x7, 0xc0, 0x0, 0x0, 0x0, 0x1e,
+    0x0, 0xf, 0x95, 0x55, 0x50, 0x2a, 0xbf, 0xaa,
+    0x1f, 0xff, 0xff, 0xf8, 0x3f, 0xff, 0xff, 0x3d,
+    0x55, 0x55, 0x54, 0x1, 0xf0, 0x0, 0xf4, 0x0,
+    0x6, 0x80, 0x1, 0xf0, 0x1, 0xf0, 0x5b, 0xff,
+    0xc0, 0x1, 0xfa, 0xa8, 0xbf, 0xff, 0xe4, 0x0,
+    0x2, 0xff, 0xfc, 0x3e, 0x9f, 0x0, 0x90, 0x3,
+    0xd0, 0x3c, 0x3c, 0x7, 0x87, 0xe0, 0x3, 0xc0,
+    0x3c, 0x3c, 0x2, 0xff, 0x40, 0xb, 0x80, 0x3c,
+    0x3c, 0x2d, 0xfc, 0x0, 0x1f, 0x6, 0xf8, 0x3f,
+    0xfc, 0x3f, 0x40, 0x3e, 0x3, 0xe0, 0x7f, 0x80,
+    0xb, 0xf8, 0xbc, 0x0, 0x0, 0x20, 0x0, 0x0,
+    0xb8, 0x20, 0x6a, 0xaa, 0xaa, 0xaa, 0xa8, 0x0,
+    0x0, 0xbf, 0xff, 0xff, 0xff, 0xfd, 0x0, 0x0,
+    0xb8, 0x0, 0x0, 0x0, 0x3d, 0x0, 0x0, 0xb8,
+    0x0, 0x0, 0x0, 0x3d, 0x0, 0x0, 0xbf, 0xff,
+    0xff, 0xff, 0xfd, 0x0, 0x0, 0xbe, 0xaa, 0xaa,
+    0xaa, 0xbd, 0x0, 0x0, 0xb8, 0x0, 0x0, 0x0,
+    0x3d, 0x0, 0x0, 0xbe, 0xaa, 0xaa, 0xaa, 0xbd,
+    0x0, 0x0, 0xbf, 0xff, 0xff, 0xff, 0xfd, 0x0,
+    0x0, 0xb8, 0x0, 0x0, 0x0, 0x3d, 0x0, 0x0,
+    0xb8, 0x0, 0x0, 0x0, 0x7c, 0x0, 0x0, 0xb8,
+    0x0, 0x0, 0x3f, 0xfc, 0x0, 0x0, 0xb8, 0x0,
+    0x0, 0x3f, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+8188 "膈" */
     0x0, 0x0, 0x0, 0x55, 0x55, 0x55, 0x54, 0x3,
     0xff, 0xe2, 0xff, 0xff, 0xff, 0xfc, 0x3, 0xff,
@@ -116305,33 +122396,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x3, 0xf8, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0,
 
-    /* U+8199 "膙" */
-    0x1, 0x55, 0x50, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0xff, 0xf8, 0xff, 0xe0, 0xff, 0xfe, 0x0, 0x3e,
-    0xae, 0x3f, 0xf8, 0x3f, 0xff, 0x80, 0xf, 0x3,
-    0x80, 0xe, 0xe, 0x0, 0xe0, 0x3, 0xc0, 0xe0,
-    0x3, 0x83, 0x80, 0x38, 0x0, 0xf0, 0x38, 0x0,
-    0xe0, 0xe0, 0xe, 0x0, 0x3c, 0xe, 0x0, 0x38,
-    0x3d, 0x5b, 0x80, 0xf, 0x3, 0x81, 0x5e, 0xf,
-    0xff, 0xe0, 0x3, 0xff, 0xe0, 0xff, 0x81, 0x5e,
-    0x50, 0x0, 0xff, 0xf8, 0x3e, 0x90, 0x3, 0x80,
-    0x0, 0x3c, 0xe, 0xf, 0x0, 0x0, 0xe0, 0x0,
-    0xf, 0x3, 0x83, 0x80, 0x3f, 0xff, 0xf4, 0x3,
-    0xc0, 0xe0, 0xe0, 0xf, 0xff, 0xfd, 0x0, 0xf0,
-    0x38, 0x38, 0x3, 0x83, 0x83, 0x40, 0x3e, 0xae,
-    0x1f, 0xf8, 0xe0, 0xe0, 0xd0, 0xf, 0xff, 0x82,
-    0xae, 0x38, 0x38, 0x34, 0x3, 0x81, 0xe0, 0x3,
-    0x8f, 0xaf, 0xad, 0x0, 0xe0, 0x38, 0x0, 0xe3,
-    0xff, 0xff, 0x40, 0x34, 0xe, 0x0, 0x74, 0x1,
-    0xe0, 0x0, 0x1d, 0x3, 0x80, 0x1d, 0x0, 0x38,
-    0x90, 0xb, 0x0, 0xe0, 0x7, 0x40, 0xe, 0x3c,
-    0x3, 0xc0, 0x38, 0x1, 0xd0, 0x3, 0x8b, 0x40,
-    0xe0, 0x1e, 0x0, 0xb4, 0x1, 0xfa, 0xe0, 0xb4,
-    0x3f, 0x82, 0xbd, 0xff, 0xff, 0xfc, 0x3c, 0xf,
-    0xc0, 0xfe, 0x3f, 0xea, 0x5b, 0x46, 0x0, 0x0,
-    0x14, 0x0, 0x0, 0x1, 0xd0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0,
-
     /* U+819B "膛" */
     0x0, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0xf, 0x0, 0x40, 0x0, 0x0,
@@ -116416,6 +122480,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x3f, 0xc0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+81A3 "膣" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x1f, 0x0, 0x0, 0x1, 0x55,
+    0x50, 0x0, 0xf, 0x0, 0x0, 0x3, 0xff, 0xf0,
+    0x0, 0xf, 0x80, 0x0, 0x3, 0xff, 0xf3, 0xff,
+    0xff, 0xff, 0xfc, 0x3, 0xc0, 0xf3, 0xea, 0xaa,
+    0xaa, 0xbc, 0x3, 0xc0, 0xf3, 0xc0, 0x0, 0x0,
+    0x3c, 0x3, 0xc0, 0xf3, 0xc1, 0xf0, 0xf8, 0x3c,
+    0x3, 0xc0, 0xf2, 0x8b, 0xe0, 0x7f, 0x68, 0x3,
+    0xd5, 0xf0, 0xbf, 0x0, 0x7, 0xe0, 0x3, 0xff,
+    0xf0, 0x64, 0x0, 0x0, 0x90, 0x3, 0xeb, 0xf3,
+    0xff, 0xff, 0xff, 0xfc, 0x3, 0xc0, 0xf2, 0xff,
+    0xff, 0xff, 0xfc, 0x3, 0xc0, 0xf0, 0x3, 0xe0,
+    0x2c, 0x0, 0x3, 0xc0, 0xf0, 0xb, 0x80, 0x2f,
+    0x0, 0x3, 0xc0, 0xf0, 0x2e, 0x0, 0xb, 0xc0,
+    0x3, 0xd5, 0xf0, 0xbf, 0xff, 0xff, 0xe0, 0x3,
+    0xff, 0xf0, 0xff, 0xff, 0xfa, 0xf4, 0x3, 0xff,
+    0xf0, 0x0, 0xf, 0x0, 0x20, 0x3, 0x80, 0xf0,
+    0x0, 0xf, 0x0, 0x0, 0x7, 0x80, 0xf0, 0xaa,
+    0xaf, 0xaa, 0xa0, 0x7, 0x40, 0xf0, 0xff, 0xff,
+    0xff, 0xf0, 0xb, 0x40, 0xf0, 0x0, 0xf, 0x0,
+    0x0, 0xf, 0x0, 0xf0, 0x0, 0xf, 0x0, 0x0,
+    0xf, 0x0, 0xf0, 0x0, 0xf, 0x0, 0x0, 0x2e,
+    0xb, 0xe7, 0xff, 0xff, 0xff, 0xff, 0x3c, 0xf,
+    0xd7, 0xff, 0xff, 0xff, 0xff, 0x28, 0x5, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+81A6 "膦" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x80, 0x3c, 0x0, 0x40, 0xb, 0xff,
@@ -116585,6 +122677,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+81C0 "臀" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xbf, 0xff, 0xff, 0x47, 0xff, 0xf0, 0x0, 0x2d,
+    0x55, 0x56, 0xd1, 0xea, 0xbc, 0x0, 0xb, 0x0,
+    0x0, 0x74, 0x70, 0xf, 0x0, 0x2, 0xff, 0xff,
+    0xfd, 0x3c, 0x2, 0xe8, 0x0, 0xb5, 0x55, 0x55,
+    0x3d, 0x0, 0x7f, 0x0, 0x2c, 0x1c, 0xd, 0x5,
+    0x0, 0x0, 0x0, 0xb, 0x1b, 0x57, 0x93, 0xff,
+    0xff, 0xc0, 0x3, 0xdf, 0xff, 0xfd, 0xbe, 0xaa,
+    0xf0, 0x0, 0xf0, 0x70, 0x34, 0xf, 0x0, 0x78,
+    0x0, 0x79, 0x6d, 0x5e, 0x50, 0xf4, 0x7c, 0x0,
+    0x2d, 0xbf, 0xff, 0xfc, 0xf, 0xfc, 0x0, 0xf,
+    0x0, 0x40, 0x80, 0x2, 0xfd, 0x0, 0xb, 0x81,
+    0xf0, 0x7c, 0x1b, 0xe7, 0xf4, 0x3, 0xc2, 0xf0,
+    0x7, 0xcf, 0x80, 0x1f, 0xe0, 0xe0, 0xa0, 0x0,
+    0x11, 0x0, 0x0, 0x68, 0x0, 0x3f, 0xff, 0xff,
+    0xff, 0xff, 0x0, 0x0, 0xf, 0xaa, 0xaa, 0xaa,
+    0xab, 0xc0, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x0,
+    0xf0, 0x0, 0x0, 0xff, 0xff, 0xff, 0xff, 0xfc,
+    0x0, 0x0, 0x3e, 0xaa, 0xaa, 0xaa, 0xaf, 0x0,
+    0x0, 0xf, 0x0, 0x0, 0x0, 0x3, 0xc0, 0x0,
+    0x3, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x0, 0x0,
+    0xfa, 0xaa, 0xaa, 0xaa, 0xbc, 0x0, 0x0, 0x3c,
+    0x0, 0x0, 0x1a, 0xbf, 0x0, 0x0, 0xf, 0x0,
+    0x0, 0x7, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+81C1 "臁" */
     0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x2, 0xd0, 0x0, 0x0, 0x15,
@@ -116754,35 +122873,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x70, 0x0, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+81DC "臜" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x1, 0xc0, 0x1, 0xd0, 0x0, 0x1a,
-    0xa9, 0xd, 0x70, 0x1d, 0x74, 0x0, 0xf, 0xff,
-    0x87, 0x1c, 0xb, 0x1d, 0x0, 0x3, 0xd6, 0xe2,
-    0xff, 0xfb, 0xff, 0xfe, 0x0, 0xf0, 0x38, 0xfb,
-    0xea, 0xfb, 0xea, 0x40, 0x3c, 0xe, 0x74, 0x70,
-    0x74, 0x74, 0x0, 0xf, 0x3, 0x88, 0x1c, 0x8,
-    0x1d, 0x0, 0x3, 0xc0, 0xe7, 0xff, 0xfb, 0xff,
-    0xff, 0x0, 0xfa, 0xf8, 0xbe, 0xf9, 0x7e, 0xfa,
-    0x40, 0x3f, 0xfe, 0xb, 0x2c, 0xb, 0x2c, 0x0,
-    0xf, 0x3, 0x83, 0x8b, 0x23, 0x8b, 0xd, 0x3,
-    0xc0, 0xe1, 0xd2, 0xfd, 0xd2, 0xc3, 0x40, 0xf0,
-    0x38, 0xf0, 0xf8, 0xf0, 0x7f, 0xc0, 0x3c, 0xe,
-    0xb4, 0x10, 0xb0, 0x5, 0x40, 0xf, 0x3, 0x84,
-    0x0, 0x4, 0x0, 0x0, 0x3, 0xff, 0xe0, 0xbf,
-    0xff, 0xff, 0xe0, 0x0, 0xff, 0xf8, 0x2e, 0xaa,
-    0xaa, 0xb8, 0x0, 0x3c, 0xe, 0xb, 0x40, 0x50,
-    0xe, 0x0, 0xf, 0x3, 0x82, 0xd0, 0x3c, 0x3,
-    0x80, 0x3, 0x80, 0xe0, 0xb4, 0xf, 0x0, 0xe0,
-    0x1, 0xe0, 0x38, 0x2d, 0x7, 0x80, 0x38, 0x0,
-    0x74, 0xe, 0xb, 0x43, 0xd0, 0xe, 0x0, 0x2c,
-    0x3, 0x80, 0x3, 0xf3, 0xe4, 0x0, 0xf, 0x0,
-    0xe0, 0xb, 0xf0, 0xbf, 0xc0, 0x7, 0x82, 0xf8,
-    0x7f, 0xe0, 0x2, 0xfe, 0x3, 0xc0, 0xfd, 0xff,
-    0x80, 0x0, 0xb, 0xe0, 0xb0, 0x14, 0x39, 0x0,
-    0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0,
-
     /* U+81E3 "臣" */
     0x55, 0x55, 0x55, 0x55, 0x55, 0x50, 0xff, 0xff,
     0xff, 0xff, 0xff, 0xf8, 0xff, 0xff, 0xff, 0xff,
@@ -116959,30 +123049,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xf0, 0x0, 0x0, 0x34, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+81FA "臺" */
-    0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x1f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1,
-    0xf0, 0x0, 0x0, 0x7, 0xff, 0xff, 0xff, 0xff,
-    0xff, 0xfc, 0x15, 0x55, 0x56, 0xf5, 0x55, 0x55,
-    0x40, 0x55, 0x55, 0x6f, 0x55, 0x55, 0x40, 0xf,
-    0xff, 0xff, 0xff, 0xff, 0xfd, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x55, 0x55, 0x55,
-    0x55, 0x40, 0x0, 0x1f, 0xff, 0xff, 0xff, 0xff,
-    0x0, 0x1, 0xf0, 0x0, 0x0, 0x1, 0xf0, 0x0,
-    0x1f, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x55,
-    0x55, 0x55, 0x55, 0x40, 0x1, 0x55, 0x55, 0x55,
-    0x55, 0x55, 0x50, 0x3f, 0xff, 0xff, 0xff, 0xff,
-    0xff, 0x83, 0xc0, 0x0, 0x0, 0x0, 0x0, 0xb8,
-    0x3c, 0xaa, 0xaa, 0xaa, 0xaa, 0x97, 0x83, 0xcf,
-    0xff, 0xff, 0xff, 0xfd, 0x78, 0x0, 0x2, 0xf4,
-    0x1, 0xf8, 0x0, 0x0, 0x6, 0xf8, 0x0, 0xb,
-    0xf8, 0x0, 0x3, 0xff, 0xff, 0xff, 0xff, 0xf4,
-    0x0, 0x14, 0x0, 0x1f, 0x0, 0x2, 0x0, 0x1,
-    0x55, 0x56, 0xf5, 0x55, 0x54, 0x0, 0x3f, 0xff,
-    0xff, 0xff, 0xff, 0x80, 0x0, 0x0, 0x1, 0xf0,
-    0x0, 0x0, 0x6, 0xaa, 0xaa, 0xaf, 0xaa, 0xaa,
-    0xa8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd0,
-
     /* U+81FB "臻" */
     0x0, 0x0, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x2a, 0xaa,
@@ -117082,6 +123148,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0xf, 0x40, 0x7c, 0x0, 0x0, 0x0, 0x3,
     0xd0,
 
+    /* U+8201 "舁" */
+    0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x6f, 0xc0, 0x0, 0x0, 0x0, 0x0, 0xaf,
+    0xff, 0xc3, 0xff, 0xff, 0x0, 0x2, 0xff, 0xe4,
+    0x7, 0xff, 0xff, 0x0, 0x2, 0xf4, 0x0, 0x0,
+    0x0, 0xf, 0x0, 0x2, 0xe0, 0x0, 0x0, 0x0,
+    0xf, 0x0, 0x2, 0xe0, 0x0, 0x0, 0x0, 0xf,
+    0x0, 0x2, 0xfa, 0xaa, 0x42, 0xaa, 0xaf, 0x0,
+    0x2, 0xff, 0xff, 0x83, 0xff, 0xff, 0x0, 0x2,
+    0xe0, 0x0, 0x0, 0x0, 0xf, 0x0, 0x2, 0xe0,
+    0x0, 0x0, 0x0, 0xf, 0x0, 0x2, 0xe0, 0x0,
+    0x0, 0x0, 0xf, 0x0, 0x2, 0xe0, 0x0, 0x0,
+    0x0, 0xf, 0x0, 0x2, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0x0, 0x1, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0x0, 0x0, 0x0, 0xa0, 0x0, 0xa, 0x0, 0x0,
+    0x0, 0x0, 0xf0, 0x0, 0x1f, 0x0, 0x0, 0x0,
+    0x0, 0xf0, 0x0, 0x1f, 0x0, 0x0, 0x0, 0x1,
+    0xf0, 0x0, 0x1f, 0x0, 0x0, 0xbf, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xfc, 0xbf, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xfc, 0x0, 0x2, 0xf0, 0x0, 0x1f,
+    0x0, 0x0, 0x0, 0x3, 0xe0, 0x0, 0x1f, 0x0,
+    0x0, 0x0, 0xb, 0xc0, 0x0, 0x1f, 0x0, 0x0,
+    0x0, 0x7f, 0x40, 0x0, 0x1f, 0x0, 0x0, 0x7,
+    0xfd, 0x0, 0x0, 0x1f, 0x0, 0x0, 0xf, 0xd0,
+    0x0, 0x0, 0x1f, 0x0, 0x0, 0x5, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+8202 "舂" */
     0x0, 0x0, 0x0, 0x14, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0xf, 0x40, 0x0, 0x0, 0x0, 0x0,
@@ -117426,6 +123519,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x25, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+8221 "舡" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x7, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb,
+    0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0x0,
+    0x5, 0x55, 0x55, 0x50, 0x3, 0xff, 0xff, 0xf,
+    0xff, 0xff, 0xf0, 0x3, 0xff, 0xff, 0xb, 0xff,
+    0xff, 0xf0, 0x3, 0xc0, 0xf, 0x0, 0x7, 0xc0,
+    0x0, 0x3, 0xc0, 0xf, 0x0, 0x7, 0xc0, 0x0,
+    0x3, 0xcf, 0xf, 0x0, 0x7, 0xc0, 0x0, 0x3,
+    0xcb, 0x4f, 0x0, 0x7, 0xc0, 0x0, 0x3, 0xc3,
+    0x8f, 0x0, 0x7, 0xc0, 0x0, 0x3, 0xc3, 0xcf,
+    0x0, 0x7, 0xc0, 0x0, 0x3, 0xc1, 0xf, 0x0,
+    0x7, 0xc0, 0x0, 0x17, 0xd5, 0x5f, 0x0, 0x7,
+    0xc0, 0x0, 0xff, 0xff, 0xff, 0x0, 0x7, 0xc0,
+    0x0, 0xbf, 0xff, 0xff, 0x0, 0x7, 0xc0, 0x0,
+    0x3, 0xc0, 0xf, 0x0, 0x7, 0xc0, 0x0, 0x3,
+    0xca, 0xf, 0x0, 0x7, 0xc0, 0x0, 0x3, 0xcf,
+    0xf, 0x0, 0x7, 0xc0, 0x0, 0x3, 0xc7, 0x4f,
+    0x0, 0x7, 0xc0, 0x0, 0x3, 0xc3, 0xcf, 0x0,
+    0x7, 0xc0, 0x0, 0x7, 0x82, 0x8f, 0x0, 0x7,
+    0xc0, 0x0, 0xb, 0x80, 0xf, 0x0, 0x7, 0xc0,
+    0x0, 0xf, 0x40, 0xf, 0x0, 0x7, 0xc0, 0x0,
+    0x1f, 0x0, 0xf, 0x3f, 0xff, 0xff, 0xfc, 0x3e,
+    0x2, 0xff, 0x3f, 0xff, 0xff, 0xfc, 0x7c, 0x2,
+    0xfd, 0x0, 0x0, 0x0, 0x0, 0x38, 0x0, 0x50,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+8222 "舢" */
     0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0xf0, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x1e, 0x0,
@@ -117592,6 +123713,60 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+822D "舭" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xf, 0x0, 0x28, 0x3, 0xc0, 0x0, 0x0, 0x1e,
+    0x0, 0x3c, 0x3, 0xc0, 0x0, 0x0, 0x2e, 0x0,
+    0x3c, 0x3, 0xc0, 0x0, 0x3, 0xff, 0xf8, 0x3c,
+    0x3, 0xc0, 0x0, 0x3, 0xff, 0xf8, 0x3c, 0x3,
+    0xc0, 0x0, 0x3, 0x80, 0x38, 0x3c, 0x3, 0xc0,
+    0x20, 0x3, 0x94, 0x38, 0x3c, 0x3, 0xc0, 0xb8,
+    0x3, 0xbc, 0x38, 0x3c, 0x3, 0xc1, 0xf0, 0x3,
+    0x9e, 0x38, 0x3d, 0x53, 0xc7, 0xd0, 0x3, 0x8f,
+    0x38, 0x3f, 0xf7, 0xdf, 0x80, 0x3, 0x87, 0x78,
+    0x3f, 0xf7, 0xfe, 0x0, 0x3, 0x80, 0x38, 0x3c,
+    0x3, 0xfc, 0x0, 0x7, 0x80, 0x78, 0x3c, 0x3,
+    0xf0, 0x0, 0x3f, 0xff, 0xf8, 0x3c, 0x3, 0xc0,
+    0x0, 0x3f, 0xff, 0xf8, 0x3c, 0x3, 0xc0, 0x0,
+    0x3, 0x80, 0x38, 0x3c, 0x3, 0xc0, 0x0, 0x7,
+    0xa8, 0x38, 0x3c, 0x3, 0xc0, 0x0, 0x7, 0xad,
+    0x38, 0x3c, 0x3, 0xc0, 0x0, 0x7, 0x4e, 0x38,
+    0x3c, 0x3, 0xc0, 0x0, 0x7, 0x4b, 0x38, 0x3c,
+    0x3, 0xc0, 0x38, 0xb, 0x47, 0x38, 0x3c, 0x3,
+    0xc0, 0x3c, 0xf, 0x0, 0x38, 0x3c, 0x3b, 0xc0,
+    0x3c, 0xf, 0x0, 0x38, 0x3d, 0xfb, 0xc0, 0x3c,
+    0x1e, 0x0, 0x38, 0x3f, 0xd3, 0xe5, 0xb8, 0x3d,
+    0xb, 0xf8, 0xbf, 0x2, 0xff, 0xf4, 0x7c, 0xb,
+    0xf0, 0x38, 0x0, 0xbf, 0xe0, 0x24, 0x1, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
+    /* U+822F "舯" */
+    0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xf0, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x1e, 0x0,
+    0x0, 0xf, 0x0, 0x0, 0x17, 0xe5, 0x40, 0x0,
+    0xf0, 0x0, 0x3, 0xff, 0xfc, 0x0, 0xf, 0x0,
+    0x0, 0x3e, 0xab, 0xc0, 0x0, 0xf0, 0x0, 0x3,
+    0x80, 0x3c, 0x3f, 0xff, 0xff, 0xf0, 0x39, 0xc3,
+    0xc3, 0xff, 0xff, 0xff, 0x3, 0x9d, 0x3c, 0x3c,
+    0xf, 0x40, 0xf0, 0x38, 0xf3, 0xc3, 0xc0, 0xf0,
+    0xf, 0x3, 0x8b, 0x3c, 0x3c, 0xf, 0x0, 0xf0,
+    0x38, 0x33, 0xc3, 0xc0, 0xf0, 0xf, 0x3, 0x80,
+    0x3c, 0x3c, 0xf, 0x0, 0xf1, 0x7d, 0x57, 0xc3,
+    0xc0, 0xf0, 0xf, 0xbf, 0xff, 0xfc, 0x3c, 0xf,
+    0x0, 0xf7, 0xff, 0xff, 0xc3, 0xc0, 0xf0, 0xf,
+    0x3, 0x80, 0x3c, 0x3c, 0xf, 0x0, 0xf0, 0x7a,
+    0xc3, 0xc3, 0xff, 0xff, 0xff, 0x7, 0x8e, 0x3c,
+    0x3f, 0xff, 0xff, 0xf0, 0x78, 0xf3, 0xc0, 0x0,
+    0xf4, 0x0, 0xb, 0x47, 0x7c, 0x0, 0xf, 0x0,
+    0x0, 0xb4, 0x13, 0xc0, 0x0, 0xf0, 0x0, 0xf,
+    0x0, 0x3c, 0x0, 0xf, 0x0, 0x0, 0xf0, 0x3,
+    0xc0, 0x0, 0xf0, 0x0, 0x1e, 0x0, 0x3c, 0x0,
+    0xf, 0x0, 0x3, 0xd0, 0xaf, 0xc0, 0x0, 0xf0,
+    0x0, 0x7c, 0xb, 0xf4, 0x0, 0xf, 0x0, 0x3,
+    0x40, 0x14, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+8230 "舰" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0xf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf,
@@ -117649,6 +123824,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+8233 "舳" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xf0, 0x0, 0x0, 0xf0, 0x0, 0x0, 0xf, 0x0,
+    0x0, 0xf, 0x0, 0x0, 0x2, 0xe0, 0x0, 0x0,
+    0xf0, 0x0, 0x3, 0xff, 0xf8, 0x0, 0xf, 0x0,
+    0x0, 0x3f, 0xff, 0x80, 0x0, 0xf0, 0x0, 0x3,
+    0x80, 0x78, 0x3f, 0xff, 0xff, 0xf0, 0x38, 0x3,
+    0x83, 0xff, 0xff, 0xff, 0x3, 0xbc, 0x38, 0x3c,
+    0xf, 0x0, 0xf0, 0x39, 0xd3, 0x83, 0xc0, 0xf0,
+    0xf, 0x3, 0x8f, 0x38, 0x3c, 0xf, 0x0, 0xf0,
+    0x38, 0xb3, 0x83, 0xc0, 0xf0, 0xf, 0x3, 0x80,
+    0x38, 0x3c, 0xf, 0x0, 0xf1, 0x79, 0x57, 0x83,
+    0xc0, 0xf0, 0xf, 0x7f, 0xff, 0xf8, 0x3c, 0xf,
+    0x41, 0xf7, 0xff, 0xff, 0x83, 0xff, 0xff, 0xff,
+    0x3, 0x80, 0x38, 0x3f, 0xff, 0xff, 0xf0, 0x75,
+    0x83, 0x83, 0xc0, 0xf0, 0xf, 0x7, 0x6c, 0x38,
+    0x3c, 0xf, 0x0, 0xf0, 0x74, 0xe3, 0x83, 0xc0,
+    0xf0, 0xf, 0xb, 0x4f, 0x38, 0x3c, 0xf, 0x0,
+    0xf0, 0xb0, 0xa3, 0x83, 0xc0, 0xf0, 0xf, 0xf,
+    0x0, 0x38, 0x3c, 0xf, 0x0, 0xf0, 0xf0, 0x3,
+    0x83, 0xc0, 0xf0, 0xf, 0x1d, 0x0, 0x38, 0x3f,
+    0xff, 0xff, 0xf3, 0xc0, 0x6f, 0x83, 0xff, 0xff,
+    0xff, 0x78, 0xf, 0xf0, 0x3c, 0x0, 0x0, 0xf7,
+    0x40, 0x54, 0x3, 0xc0, 0x0, 0xf, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+8234 "舴" */
     0x0, 0x1, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0,
     0xb, 0x80, 0x0, 0xf0, 0x0, 0x0, 0x0, 0xf,
@@ -117811,32 +124012,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xfd, 0x3, 0xc0, 0x0, 0xf0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
-    /* U+823A "舺" */
-    0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0x0,
-    0x15, 0x55, 0x55, 0x50, 0x1, 0xe0, 0x3, 0xff,
-    0xff, 0xff, 0x3, 0xff, 0xfc, 0x3e, 0xaf, 0xaa,
-    0xf0, 0x3f, 0xff, 0xc3, 0xc0, 0xf0, 0xf, 0x3,
-    0x80, 0x3c, 0x3c, 0xf, 0x0, 0xf0, 0x38, 0x3,
-    0xc3, 0xc0, 0xf0, 0xf, 0x3, 0xac, 0x3c, 0x3c,
-    0xf, 0x0, 0xf0, 0x39, 0xd3, 0xc3, 0xc0, 0xf0,
-    0xf, 0x3, 0x8f, 0x3c, 0x3c, 0xf, 0x0, 0xf0,
-    0x38, 0xb3, 0xc3, 0xff, 0xff, 0xff, 0x3, 0x81,
-    0x3c, 0x3f, 0xff, 0xff, 0xf0, 0x3c, 0x3, 0xc3,
-    0xc0, 0xf0, 0xf, 0xbf, 0xff, 0xfc, 0x3c, 0xf,
-    0x0, 0xfb, 0xff, 0xff, 0xc3, 0xc0, 0xf0, 0xf,
-    0x3, 0x80, 0x3c, 0x3c, 0xf, 0x0, 0xf0, 0x39,
-    0xc3, 0xc3, 0xc0, 0xf0, 0xf, 0x3, 0x9d, 0x3c,
-    0x3f, 0xff, 0xff, 0xf0, 0x38, 0xf3, 0xc3, 0xff,
-    0xff, 0xff, 0x7, 0x4b, 0x3c, 0x0, 0xf, 0x0,
-    0x0, 0xb4, 0x13, 0xc0, 0x0, 0xf0, 0x0, 0xb,
-    0x0, 0x3c, 0x0, 0xf, 0x0, 0x0, 0xf0, 0x3,
-    0xc0, 0x0, 0xf0, 0x0, 0x1e, 0x0, 0x3c, 0x0,
-    0xf, 0x0, 0x3, 0xd0, 0x6f, 0x80, 0x0, 0xf0,
-    0x0, 0x7c, 0xb, 0xf0, 0x0, 0xf, 0x0, 0x3,
-    0x40, 0x10, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x0,
-
     /* U+823B "舻" */
     0x0, 0x2, 0x40, 0x0, 0x4, 0x0, 0x0, 0x0,
     0x2f, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0xf4,
@@ -117946,6 +124121,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x1b, 0xff, 0xf0, 0x40, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+8249 "艉" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x74, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0xc0,
+    0x5, 0x55, 0x55, 0x55, 0x0, 0xf, 0x0, 0x2f,
+    0xff, 0xff, 0xfc, 0xb, 0xff, 0xf0, 0xb9, 0x55,
+    0x55, 0xf0, 0x2f, 0xff, 0xc2, 0xc0, 0x0, 0x3,
+    0xc0, 0xb4, 0xb, 0xb, 0x0, 0x0, 0xf, 0x2,
+    0xd9, 0x2c, 0x2f, 0xff, 0xff, 0xfc, 0xb, 0x7c,
+    0xb0, 0xbf, 0xff, 0xff, 0xf0, 0x2d, 0xb2, 0xc2,
+    0xd0, 0x0, 0x0, 0x0, 0xb4, 0xeb, 0xb, 0x0,
+    0x0, 0x18, 0x2, 0xd3, 0xac, 0x2c, 0x0, 0x6f,
+    0xf4, 0xb, 0x40, 0xb0, 0xb7, 0xff, 0xfe, 0x40,
+    0x2d, 0x3, 0xc2, 0xcf, 0xfd, 0x0, 0xb, 0xff,
+    0xff, 0xf, 0x0, 0xf0, 0x0, 0x1b, 0xfa, 0xbc,
+    0x3c, 0x3, 0xd1, 0x50, 0xb, 0x0, 0xb0, 0xf2,
+    0xff, 0xff, 0xd0, 0x2d, 0xd2, 0xc3, 0xcf, 0xfe,
+    0x54, 0x0, 0xb3, 0xcb, 0xf, 0x0, 0xf0, 0x0,
+    0x2, 0xc7, 0x6c, 0x3c, 0x3, 0xd5, 0x68, 0xf,
+    0xe, 0xb0, 0xea, 0xff, 0xff, 0xf4, 0x3c, 0x12,
+    0xc7, 0xbf, 0xfe, 0x54, 0x0, 0xe0, 0xb, 0x2d,
+    0x0, 0xf0, 0x1, 0xb, 0x40, 0x2c, 0xf0, 0x3,
+    0xc0, 0xe, 0x3c, 0x0, 0xf7, 0xc0, 0xf, 0x40,
+    0x79, 0xf0, 0x3f, 0xed, 0x0, 0x2f, 0xff, 0xdf,
+    0x40, 0xf8, 0xf0, 0x0, 0x2f, 0xfe, 0x4, 0x0,
+    0x0, 0x80, 0x0, 0x0, 0x0,
+
     /* U+824B "艋" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x2e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c,
@@ -117974,6 +124175,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+824F "艏" */
+    0x0, 0x2, 0x40, 0x1, 0x80, 0x2, 0x0, 0x0,
+    0xb, 0x40, 0x3, 0xd0, 0x7, 0x80, 0x0, 0xf,
+    0x0, 0x0, 0xf0, 0xf, 0x0, 0x0, 0x5f, 0x54,
+    0x0, 0xb4, 0x2e, 0x0, 0x2, 0xff, 0xfc, 0x7f,
+    0xff, 0xff, 0xff, 0x2, 0xea, 0xbc, 0x7f, 0xff,
+    0xff, 0xff, 0x2, 0xd0, 0x2c, 0x0, 0xb, 0xc0,
+    0x0, 0x2, 0xdd, 0x2c, 0x0, 0xb, 0x80, 0x0,
+    0x2, 0xdf, 0x2c, 0x0, 0xf, 0x40, 0x0, 0x2,
+    0xd7, 0x2c, 0xf, 0xff, 0xff, 0xe0, 0x2, 0xd3,
+    0xac, 0xf, 0xff, 0xff, 0xf0, 0x2, 0xd2, 0x2c,
+    0xf, 0x0, 0x1, 0xf0, 0x2, 0xd0, 0x2c, 0xf,
+    0x0, 0x0, 0xf0, 0x1b, 0xea, 0xbc, 0xf, 0x0,
+    0x0, 0xf0, 0x3f, 0xff, 0xfc, 0xf, 0xff, 0xff,
+    0xf0, 0x17, 0xe5, 0x7c, 0xf, 0xff, 0xff, 0xf0,
+    0x2, 0xc0, 0x2c, 0xf, 0x0, 0x1, 0xf0, 0x2,
+    0xde, 0x2c, 0xf, 0x0, 0x0, 0xf0, 0x2, 0xcb,
+    0x2c, 0xf, 0x0, 0x0, 0xf0, 0x3, 0xc7, 0x6c,
+    0xf, 0xff, 0xff, 0xf0, 0x3, 0xc3, 0xec, 0xf,
+    0xff, 0xff, 0xf0, 0x3, 0xc1, 0x6c, 0xf, 0x0,
+    0x1, 0xf0, 0x7, 0x80, 0x2c, 0xf, 0x0, 0x0,
+    0xf0, 0xb, 0x80, 0x2c, 0xf, 0x0, 0x0, 0xf0,
+    0xf, 0x0, 0x2c, 0xf, 0xff, 0xff, 0xf0, 0x1f,
+    0x2, 0xfc, 0xf, 0xff, 0xff, 0xf0, 0x3d, 0x3,
+    0xf8, 0xf, 0x0, 0x0, 0xf0, 0x2c, 0x2, 0x50,
+    0xf, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+8258 "艘" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x3, 0xc0, 0x0, 0x2, 0xc0, 0x0, 0x0, 0x0,
@@ -118030,6 +124259,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x2d, 0x0, 0x0, 0xe0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+825F "艟" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xb, 0x40, 0x0, 0xf, 0x0, 0x0, 0x0, 0xf,
+    0x0, 0x0, 0xb, 0x80, 0x0, 0x0, 0x1f, 0x0,
+    0x55, 0x5b, 0xd5, 0x54, 0x2, 0xff, 0xf8, 0xbf,
+    0xff, 0xff, 0xfc, 0x2, 0xff, 0xf8, 0x2, 0xd0,
+    0xb, 0x40, 0x2, 0xc0, 0x38, 0x2, 0xd0, 0xf,
+    0x0, 0x2, 0xd4, 0x38, 0x1, 0xe0, 0xf, 0x0,
+    0x2, 0xed, 0x3a, 0xff, 0xff, 0xff, 0xff, 0x2,
+    0xcf, 0x39, 0xff, 0xff, 0xff, 0xfe, 0x2, 0xc7,
+    0x78, 0x0, 0x0, 0x0, 0x0, 0x2, 0xc3, 0x78,
+    0x2a, 0xaa, 0xaa, 0xa0, 0x2, 0xc0, 0x38, 0x3f,
+    0xff, 0xff, 0xf0, 0x6, 0xd5, 0x78, 0x3c, 0x7,
+    0x40, 0xf0, 0x2f, 0xff, 0xf8, 0x3c, 0x7, 0x40,
+    0xf0, 0x1b, 0xfa, 0xf8, 0x3f, 0xff, 0xff, 0xf0,
+    0x2, 0xc0, 0x38, 0x3d, 0x5b, 0x95, 0xf0, 0x2,
+    0xdc, 0x38, 0x3c, 0x7, 0x40, 0xf0, 0x2, 0xce,
+    0x38, 0x3f, 0xff, 0xff, 0xf0, 0x3, 0xcb, 0x38,
+    0x2a, 0xaf, 0xea, 0xa0, 0x3, 0xc7, 0x78, 0x0,
+    0x7, 0x40, 0x0, 0x3, 0xc1, 0x38, 0x0, 0x7,
+    0x40, 0x0, 0x3, 0x80, 0x38, 0xbf, 0xff, 0xff,
+    0xf8, 0xb, 0x40, 0x38, 0x6a, 0xab, 0xaa, 0xa4,
+    0xf, 0x0, 0x38, 0x0, 0x7, 0x40, 0x0, 0xf,
+    0x1, 0xf9, 0xaa, 0xaf, 0xea, 0xaa, 0x2d, 0x7,
+    0xf6, 0xff, 0xff, 0xff, 0xff, 0x2c, 0x2, 0x40,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+8268 "艨" */
     0x0, 0x4, 0x0, 0x1, 0x0, 0x10, 0x0, 0x0,
     0x3d, 0x0, 0x7, 0x40, 0xb0, 0x0, 0x0, 0x3c,
@@ -118212,6 +124469,19 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x3c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+8279 "艹" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xf0, 0x0, 0x3e, 0x0, 0x0, 0x0, 0x0,
+    0xf0, 0x0, 0x3e, 0x0, 0x0, 0x0, 0x0, 0xf0,
+    0x0, 0x3e, 0x0, 0x0, 0x0, 0x0, 0xf0, 0x0,
+    0x3e, 0x0, 0x0, 0xbf, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xfc, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xfc, 0x55, 0x55, 0xf5, 0x55, 0x7e, 0x55, 0x54,
+    0x0, 0x0, 0xf0, 0x0, 0x3e, 0x0, 0x0, 0x0,
+    0x0, 0xf0, 0x0, 0x3e, 0x0, 0x0, 0x0, 0x0,
+    0xf0, 0x0, 0x3e, 0x0, 0x0, 0x0, 0x0, 0xa0,
+    0x0, 0x29, 0x0, 0x0,
+
     /* U+827A "艺" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x3, 0xd0, 0x0, 0xf4, 0x0, 0x0, 0x0, 0xf,
@@ -118238,6 +124508,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xb, 0xff, 0xff, 0xff, 0xff, 0x90, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+827D "艽" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x3, 0xd0, 0x0, 0xf4, 0x0, 0x0, 0x0, 0xf,
+    0x40, 0x3, 0xd0, 0x0, 0x0, 0x0, 0x3d, 0x0,
+    0xf, 0x40, 0x0, 0x2a, 0xaa, 0xfe, 0xaa, 0xbf,
+    0xaa, 0xa0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xd1, 0x55, 0x5f, 0x95, 0x57, 0xe5, 0x55, 0x0,
+    0x0, 0x3d, 0x0, 0xf, 0x40, 0x0, 0x0, 0x0,
+    0xf4, 0x0, 0x3d, 0x0, 0x0, 0x0, 0x1, 0x40,
+    0x0, 0x50, 0x0, 0x0, 0x0, 0x3, 0xd0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0xf, 0x40, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x3d, 0x0, 0x0, 0x0, 0x0,
+    0x3f, 0xff, 0xff, 0xff, 0xf4, 0x0, 0x0, 0xff,
+    0xff, 0xff, 0xff, 0xd0, 0x0, 0x0, 0x0, 0xf,
+    0x0, 0xf, 0x40, 0x0, 0x0, 0x0, 0x3c, 0x0,
+    0x3d, 0x0, 0x0, 0x0, 0x1, 0xf0, 0x0, 0xf4,
+    0x0, 0x0, 0x0, 0x7, 0xc0, 0x3, 0xd0, 0x0,
+    0x0, 0x0, 0x3e, 0x0, 0xf, 0x40, 0x0, 0x0,
+    0x1, 0xf4, 0x0, 0x3d, 0x0, 0x64, 0x0, 0xf,
+    0xc0, 0x0, 0xf4, 0x1, 0xf0, 0x0, 0xfd, 0x0,
+    0x3, 0xd0, 0x7, 0x80, 0xf, 0xd0, 0x0, 0xf,
+    0x80, 0x2e, 0x1, 0xfd, 0x0, 0x0, 0x3f, 0x55,
+    0xf4, 0x7f, 0xd0, 0x0, 0x0, 0xbf, 0xff, 0xc3,
+    0xf8, 0x0, 0x0, 0x0, 0xbf, 0xfd, 0x3, 0x40,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+827E "艾" */
     0x0, 0x0, 0xa4, 0x0, 0x28, 0x0, 0x0, 0x0,
     0x0, 0xf4, 0x0, 0x3d, 0x0, 0x0, 0x0, 0x0,
@@ -118400,6 +124697,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x7c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x7c, 0x0, 0x0, 0x0,
 
+    /* U+828B "芋" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x2, 0xe0, 0x0, 0xf4, 0x0, 0x0, 0x0, 0xb,
+    0x80, 0x3, 0xd0, 0x0, 0x0, 0x0, 0x2e, 0x0,
+    0xf, 0x40, 0x0, 0x3f, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xe0, 0x0, 0xb, 0x80, 0x3, 0xd0, 0x0, 0x0,
+    0x0, 0x2e, 0x0, 0xf, 0x40, 0x0, 0x0, 0x0,
+    0x64, 0x0, 0x28, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x2f, 0xff, 0xff, 0xff,
+    0xff, 0xf0, 0x0, 0xbf, 0xff, 0xff, 0xff, 0xff,
+    0xc0, 0x0, 0x0, 0x0, 0x3d, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0xf4, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x3, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xf, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3e,
+    0x0, 0x0, 0x0, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xd3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0x40, 0x0, 0x0, 0xf, 0x40, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x3d, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xf4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3,
+    0xd0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0x40,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x7d, 0x0, 0x0,
+    0x0, 0x0, 0x1, 0xaf, 0xf0, 0x0, 0x0, 0x0,
+    0x0, 0x3, 0xff, 0x40, 0x0, 0x0, 0x0, 0x0,
+    0xa, 0x50, 0x0, 0x0, 0x0,
+
     /* U+828D "芍" */
     0x0, 0x0, 0x50, 0x0, 0x14, 0x0, 0x0, 0x0,
     0x3, 0xd0, 0x0, 0xb8, 0x0, 0x0, 0x0, 0xf,
@@ -118453,6 +124776,31 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0xb, 0xff, 0xe0, 0x0, 0x0, 0x0, 0x0,
     0x1, 0x0, 0x0, 0x0,
 
+    /* U+828F "芏" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x7, 0xc0, 0x0, 0x7c, 0x0, 0x0, 0x0, 0x1f,
+    0x0, 0x1, 0xf0, 0x0, 0x0, 0x0, 0x7c, 0x0,
+    0x7, 0xc0, 0x0, 0x15, 0x56, 0xf5, 0x55, 0x5f,
+    0x55, 0x50, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xe3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x40,
+    0x0, 0x7c, 0x0, 0x7, 0xc0, 0x0, 0x0, 0x1,
+    0xf0, 0x0, 0x1f, 0x0, 0x0, 0x0, 0x7, 0xc0,
+    0xa0, 0x7c, 0x0, 0x0, 0x0, 0x0, 0x7, 0xc0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x1f, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x7c, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x1, 0xf0, 0x0, 0x0, 0x0, 0x3f,
+    0xff, 0xff, 0xff, 0xff, 0xf4, 0x0, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xd0, 0x0, 0x55, 0x55, 0xbd,
+    0x55, 0x55, 0x0, 0x0, 0x0, 0x1, 0xf0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x7, 0xc0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x1f, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x7c, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x1, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7,
+    0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f, 0x0,
+    0x0, 0x0, 0x15, 0x55, 0x55, 0xbd, 0x55, 0x55,
+    0x50, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80,
+
     /* U+8291 "芑" */
     0x0, 0x0, 0xf0, 0x0, 0x3d, 0x0, 0x0, 0x0,
     0x0, 0xf4, 0x0, 0x3d, 0x0, 0x0, 0x0, 0x0,
@@ -118529,6 +124877,31 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0xbf, 0xfe, 0x40, 0x0, 0x0, 0x0, 0x1,
     0xe5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+8298 "芘" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x3d, 0x0, 0xf, 0x40, 0x0, 0x0, 0x3, 0xd0,
+    0x0, 0xf4, 0x0, 0x0, 0x0, 0x3d, 0x0, 0xf,
+    0x40, 0x0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x0,
+    0x3, 0xd0, 0x0, 0xf8, 0x0, 0x0, 0x0, 0x3d,
+    0x0, 0xf, 0x40, 0x0, 0x0, 0x2, 0x80, 0x0,
+    0xa4, 0x0, 0x0, 0x3c, 0x0, 0x3, 0xd0, 0x0,
+    0x0, 0x3, 0xc0, 0x0, 0x3d, 0x0, 0x0, 0x0,
+    0x3c, 0x0, 0x3, 0xd0, 0x0, 0x70, 0x3, 0xc0,
+    0x0, 0x3d, 0x0, 0x3f, 0x80, 0x3c, 0x0, 0x3,
+    0xd0, 0x2f, 0xf0, 0x3, 0xff, 0xff, 0x3d, 0x1f,
+    0xf4, 0x0, 0x3f, 0xff, 0xf3, 0xef, 0xf8, 0x0,
+    0x3, 0xd0, 0x0, 0x3f, 0xf8, 0x0, 0x0, 0x3c,
+    0x0, 0x3, 0xf8, 0x0, 0x0, 0x3, 0xc0, 0x0,
+    0x3e, 0x0, 0x0, 0x0, 0x3c, 0x0, 0x3, 0xd0,
+    0x0, 0x0, 0x3, 0xc0, 0x0, 0x3d, 0x0, 0x1,
+    0x40, 0x3c, 0x0, 0x3, 0xd0, 0x0, 0x2e, 0x3,
+    0xc0, 0x1f, 0x7d, 0x0, 0x2, 0xd0, 0x3d, 0x6f,
+    0xf7, 0xe0, 0x0, 0x3d, 0x7, 0xff, 0xf9, 0x2f,
+    0x40, 0xb, 0xc0, 0xff, 0xe4, 0x1, 0xff, 0xff,
+    0xf8, 0x7, 0x90, 0x0, 0x7, 0xff, 0xfe, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+8299 "芙" */
     0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0xf0, 0x0, 0x2e, 0x0, 0x0, 0x0, 0x0,
@@ -118610,6 +124983,35 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x1a, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+829F "芟" */
+    0x0, 0x0, 0x14, 0x0, 0x5, 0x0, 0x0, 0x0,
+    0x0, 0xf, 0x0, 0x3, 0xd0, 0x0, 0x0, 0x0,
+    0x3, 0xc0, 0x0, 0xf4, 0x0, 0x0, 0x3f, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xf0, 0xf, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xfc, 0x0, 0x0, 0xf, 0x0,
+    0x3, 0xd0, 0x0, 0x0, 0x0, 0x3, 0xc0, 0x0,
+    0xf4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0xff, 0xff, 0xff, 0xd0,
+    0x0, 0x0, 0x0, 0x3f, 0xff, 0xff, 0xf4, 0x0,
+    0x0, 0x0, 0xf, 0x0, 0x0, 0x3d, 0x0, 0x0,
+    0x0, 0xb, 0xc0, 0x0, 0xf, 0x80, 0x0, 0x0,
+    0x1f, 0xe0, 0x0, 0x3, 0xff, 0xfc, 0x1, 0xff,
+    0xe0, 0x0, 0x0, 0x7f, 0xff, 0x0, 0x7f, 0xd0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0xe, 0x40, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x3f, 0xff, 0xff,
+    0xff, 0xff, 0x0, 0x0, 0xf, 0xff, 0xff, 0xff,
+    0xff, 0xc0, 0x0, 0x0, 0x2c, 0x0, 0x0, 0xf,
+    0xc0, 0x0, 0x0, 0xf, 0xc0, 0x0, 0xf, 0xd0,
+    0x0, 0x0, 0x0, 0xfd, 0x0, 0x1f, 0xc0, 0x0,
+    0x0, 0x0, 0xb, 0xe0, 0x7f, 0x80, 0x0, 0x0,
+    0x0, 0x0, 0x7f, 0xff, 0x40, 0x0, 0x0, 0x0,
+    0x0, 0x1b, 0xff, 0x80, 0x0, 0x0, 0x0, 0x1,
+    0xff, 0xeb, 0xff, 0x90, 0x0, 0x1, 0xaf, 0xff,
+    0x40, 0x1b, 0xff, 0xe5, 0x3, 0xff, 0xe4, 0x0,
+    0x0, 0xb, 0xff, 0xf0, 0xb9, 0x0, 0x0, 0x0,
+    0x0, 0x6, 0xfc, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+82A1 "芡" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x3, 0xd0, 0x0, 0xf4, 0x0, 0x0, 0x0, 0xf,
@@ -118636,6 +125038,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xf8, 0x0, 0x0, 0x0, 0x0, 0x7f, 0x49, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x4,
 
+    /* U+82A4 "芤" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xb8, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x0,
+    0xb8, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x0, 0xb8,
+    0x0, 0x3d, 0x0, 0x0, 0x3f, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xfc, 0x3f, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xfc, 0x0, 0x0, 0xb8, 0x0, 0x3c, 0x0,
+    0x0, 0x0, 0x0, 0xb8, 0x0, 0x3c, 0x0, 0x0,
+    0x0, 0x0, 0x10, 0x0, 0x14, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0xb4, 0x0, 0x0, 0xf, 0xff,
+    0xff, 0xf0, 0xf4, 0x0, 0x0, 0xf, 0xff, 0xff,
+    0xf0, 0xf4, 0x0, 0x0, 0x0, 0x0, 0xb, 0xd0,
+    0xf4, 0x0, 0x0, 0x0, 0x0, 0x2f, 0x40, 0xf4,
+    0x0, 0x0, 0x0, 0x0, 0xfc, 0x0, 0xf4, 0x0,
+    0x0, 0x0, 0x2, 0xf0, 0x0, 0xf4, 0x0, 0x0,
+    0x0, 0x2, 0xe1, 0x6c, 0xf4, 0x0, 0x0, 0x0,
+    0x17, 0xff, 0xfc, 0xf4, 0x0, 0x0, 0x2f, 0xff,
+    0xfe, 0x90, 0xf4, 0x0, 0x0, 0x7f, 0xea, 0xe0,
+    0x0, 0xf4, 0x0, 0x10, 0x10, 0x2, 0xe0, 0x0,
+    0xf4, 0x0, 0x3c, 0x0, 0x2, 0xe0, 0x0, 0xf4,
+    0x0, 0x3c, 0x0, 0x2, 0xe0, 0x0, 0xf4, 0x0,
+    0x7c, 0x0, 0x2, 0xe0, 0x0, 0xf8, 0x0, 0x7c,
+    0x0, 0x3, 0xe0, 0x0, 0xbd, 0x1, 0xf8, 0x0,
+    0xff, 0xd0, 0x0, 0x7f, 0xff, 0xf4, 0x0, 0xff,
+    0x80, 0x0, 0x1f, 0xff, 0xd0, 0x0, 0x50, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+82A5 "芥" */
     0x0, 0x0, 0x78, 0x0, 0xb, 0x80, 0x0, 0x0,
     0x0, 0x1f, 0x0, 0x2, 0xe0, 0x0, 0x0, 0x0,
@@ -118876,6 +125305,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0xb, 0x40, 0x0, 0x0, 0x3f, 0xf8, 0x0,
     0x2d, 0x0, 0x0, 0x0, 0xfe, 0x40, 0x0,
 
+    /* U+82AF "芯" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xf0, 0x0, 0x1f, 0x0, 0x0, 0x0, 0x0,
+    0xf0, 0x0, 0x1f, 0x0, 0x0, 0x0, 0x0, 0xf0,
+    0x0, 0x1f, 0x0, 0x0, 0x2a, 0xaa, 0xfa, 0xaa,
+    0xaf, 0xaa, 0xa8, 0x3f, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xfc, 0x2a, 0xaa, 0xfa, 0xaa, 0xbf, 0xaa,
+    0xa8, 0x0, 0x0, 0xf0, 0x0, 0x1f, 0x0, 0x0,
+    0x0, 0x0, 0xf0, 0x0, 0x1f, 0x0, 0x0, 0x0,
+    0x0, 0xf0, 0x60, 0x1f, 0x0, 0x0, 0x0, 0x0,
+    0x50, 0xf4, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x7c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x3d,
+    0x0, 0x0, 0x0, 0x0, 0xd0, 0xf0, 0x1f, 0x0,
+    0x2c, 0x0, 0x2, 0xe0, 0xf0, 0xf, 0x80, 0x2f,
+    0x0, 0x3, 0xd0, 0xf0, 0x7, 0xc0, 0xf, 0x40,
+    0x3, 0xc0, 0xf0, 0x3, 0xe0, 0xb, 0xc0, 0x7,
+    0xc0, 0xf0, 0x1, 0xc0, 0x3, 0xd0, 0xf, 0x40,
+    0xf0, 0x0, 0x0, 0x2, 0xf0, 0xf, 0x0, 0xf0,
+    0x0, 0x0, 0x0, 0xf4, 0x2f, 0x0, 0xf0, 0x0,
+    0x3, 0x80, 0xbc, 0x3d, 0x0, 0xf0, 0x0, 0x3,
+    0xc0, 0x7c, 0x7c, 0x0, 0xf0, 0x0, 0x7, 0xc0,
+    0x3c, 0x78, 0x0, 0xf0, 0x0, 0x7, 0xc0, 0x10,
+    0x0, 0x0, 0xf9, 0x0, 0x5f, 0x80, 0x0, 0x0,
+    0x0, 0xff, 0xff, 0xff, 0x40, 0x0, 0x0, 0x0,
+    0x2f, 0xff, 0xf9, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+82B0 "芰" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x1, 0xe0, 0x0, 0x1f, 0x0, 0x0, 0x0, 0x1,
@@ -119327,6 +125783,31 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xff, 0xff, 0xfe, 0x80, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+82CE "苎" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x7, 0xc0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x1f,
+    0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0x7c, 0x0,
+    0x3, 0xc0, 0x0, 0x3f, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xf0, 0x0, 0x1f, 0x0, 0x0, 0xf0, 0x0, 0x0,
+    0x0, 0x7c, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x1,
+    0xf0, 0xf8, 0xf, 0x0, 0x0, 0x0, 0x0, 0x2,
+    0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xc0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0x40, 0x0,
+    0x0, 0x3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+    0xf, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x3c,
+    0x0, 0x0, 0x0, 0x0, 0x7c, 0x0, 0xf0, 0x0,
+    0x0, 0x0, 0x1, 0xf0, 0x3, 0xc0, 0x0, 0x0,
+    0x0, 0x7, 0xc0, 0xf, 0x0, 0x0, 0x0, 0x0,
+    0x1f, 0x0, 0x28, 0x0, 0x0, 0x0, 0x0, 0x24,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0,
+    0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x0,
+
     /* U+82CF "苏" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0xf0, 0x0, 0x1f, 0x0, 0x0, 0x0, 0x0,
@@ -119408,6 +125889,35 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x1f, 0xe4, 0x0, 0x0, 0xf0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+82D3 "苓" */
+    0x0, 0x0, 0x14, 0x0, 0x1, 0x40, 0x0, 0x0,
+    0x0, 0xf, 0x0, 0x1, 0xf0, 0x0, 0x0, 0x0,
+    0x3, 0xc0, 0x0, 0x7c, 0x0, 0x0, 0x3f, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xf4, 0xf, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x1f, 0x0,
+    0x2, 0xf0, 0x0, 0x0, 0x0, 0x3, 0xc0, 0x0,
+    0x7c, 0x0, 0x0, 0x0, 0x0, 0xa0, 0x68, 0x1a,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0xbf, 0xc0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0xfc, 0xbd, 0x0, 0x0,
+    0x0, 0x0, 0x1, 0xfc, 0xb, 0xe0, 0x0, 0x0,
+    0x0, 0x7, 0xf8, 0x0, 0x7f, 0x40, 0x0, 0x0,
+    0x1f, 0xf4, 0x2c, 0x3, 0xfd, 0x0, 0x0, 0x7f,
+    0xe0, 0xf, 0xc0, 0x1f, 0xf4, 0x2, 0xff, 0xc0,
+    0x0, 0xf8, 0x0, 0xbf, 0xe0, 0xff, 0x40, 0x0,
+    0x1f, 0x0, 0x2, 0xfd, 0x18, 0x0, 0x0, 0x2,
+    0x0, 0x0, 0x7, 0x0, 0xf, 0xff, 0xff, 0xff,
+    0xff, 0xc0, 0x0, 0x3, 0xff, 0xff, 0xff, 0xff,
+    0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xf4,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0xf0, 0x0,
+    0x0, 0x0, 0xe4, 0x0, 0xb, 0xf0, 0x0, 0x0,
+    0x0, 0x7f, 0xe4, 0xb, 0xe0, 0x0, 0x0, 0x0,
+    0x2, 0xff, 0xef, 0xd0, 0x0, 0x0, 0x0, 0x0,
+    0x2, 0xff, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x7, 0xff, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xb, 0xfc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x1f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+82D4 "苔" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x1, 0xe0, 0x0, 0xf, 0x0, 0x0, 0x0, 0x1,
@@ -119568,6 +126078,86 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xf, 0x40, 0x0, 0x0, 0x3, 0xd0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+82DE "苞" */
+    0x0, 0x0, 0x2d, 0x0, 0xf, 0x0, 0x0, 0x0,
+    0x0, 0x2d, 0x0, 0xf, 0x0, 0x0, 0x0, 0x0,
+    0x2e, 0x0, 0xf, 0x0, 0x0, 0x1f, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0x1f, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0x0, 0x0, 0x2d, 0x0, 0xf,
+    0x0, 0x0, 0x0, 0x3, 0x59, 0x0, 0xf, 0x0,
+    0x0, 0x0, 0xb, 0xd5, 0x55, 0x55, 0x55, 0x0,
+    0x0, 0xf, 0xff, 0xff, 0xff, 0xff, 0x80, 0x0,
+    0x3f, 0xff, 0xff, 0xff, 0xff, 0x80, 0x0, 0xbc,
+    0x0, 0x0, 0x0, 0xb, 0x80, 0x2, 0xf4, 0x0,
+    0x0, 0x0, 0xb, 0x80, 0x7, 0xff, 0xff, 0xff,
+    0xf0, 0xb, 0x80, 0x2f, 0xaf, 0xff, 0xff, 0xf0,
+    0xb, 0x80, 0x2e, 0x2e, 0x0, 0x0, 0xf0, 0xb,
+    0x80, 0x4, 0x2d, 0x0, 0x0, 0xf0, 0xb, 0x40,
+    0x0, 0x2d, 0x0, 0x0, 0xf0, 0xb, 0x40, 0x0,
+    0x2f, 0xff, 0xff, 0xf0, 0xf, 0x40, 0x0, 0x2f,
+    0xff, 0xff, 0xf0, 0xf, 0x40, 0x0, 0x2e, 0x55,
+    0x55, 0x55, 0x7f, 0x0, 0x0, 0x2d, 0x0, 0x0,
+    0x1f, 0xfe, 0x29, 0x0, 0x2d, 0x0, 0x0, 0xf,
+    0xe4, 0x3e, 0x0, 0x2e, 0x0, 0x0, 0x0, 0x0,
+    0x3d, 0x0, 0x1f, 0x40, 0x0, 0x0, 0x1, 0xbc,
+    0x0, 0xf, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0,
+    0x2, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0,
+
+    /* U+82DF "苟" */
+    0x0, 0x0, 0x2d, 0x0, 0xb, 0x40, 0x0, 0x0,
+    0x0, 0x3d, 0x0, 0xb, 0x80, 0x0, 0x0, 0x0,
+    0x3d, 0x0, 0xb, 0x80, 0x0, 0xf, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xf, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0x0, 0x0, 0x3d, 0x0, 0xb,
+    0x80, 0x0, 0x0, 0x0, 0x3d, 0x0, 0xb, 0x80,
+    0x0, 0x0, 0x3, 0xd0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xb, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x0,
+    0x1f, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x0, 0x3d,
+    0x0, 0x0, 0x0, 0x3, 0xe0, 0x0, 0xf8, 0x0,
+    0x0, 0x0, 0x3, 0xe0, 0x3, 0xf0, 0x0, 0x0,
+    0x0, 0x3, 0xd0, 0xf, 0xc0, 0x0, 0x0, 0x0,
+    0x3, 0xd0, 0x3f, 0xf, 0xff, 0xff, 0xf0, 0x3,
+    0xd0, 0x1c, 0xf, 0xff, 0xff, 0xf0, 0x3, 0xd0,
+    0x0, 0xf, 0x0, 0x0, 0xf0, 0x3, 0xd0, 0x0,
+    0xf, 0x0, 0x0, 0xf0, 0x3, 0xd0, 0x0, 0xf,
+    0x0, 0x0, 0xf0, 0x3, 0xd0, 0x0, 0xf, 0x0,
+    0x0, 0xf0, 0x3, 0xd0, 0x0, 0xf, 0x0, 0x0,
+    0xf0, 0x3, 0xd0, 0x0, 0xf, 0xff, 0xff, 0xf0,
+    0x3, 0xd0, 0x0, 0xf, 0xff, 0xff, 0xf0, 0x7,
+    0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb, 0xc0,
+    0x0, 0x0, 0x0, 0x0, 0x15, 0xbf, 0xc0, 0x0,
+    0x0, 0x0, 0x0, 0x3f, 0xff, 0x40, 0x0, 0x0,
+    0x0, 0x0, 0x3f, 0xe8, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
+    /* U+82E0 "苠" */
+    0x0, 0x0, 0x50, 0x0, 0x14, 0x0, 0x0, 0x0,
+    0x3, 0xd0, 0x0, 0xf4, 0x0, 0x0, 0x0, 0xf,
+    0x40, 0x3, 0xd0, 0x0, 0x1f, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xfc, 0x0, 0x3, 0xd0, 0x0, 0xf4, 0x0,
+    0x0, 0x0, 0xf, 0x40, 0x3, 0xd0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xff,
+    0xff, 0xff, 0xff, 0xfe, 0x0, 0x7, 0xff, 0xff,
+    0xff, 0xff, 0xfc, 0x0, 0x1f, 0x0, 0x0, 0x0,
+    0x2, 0xf0, 0x0, 0x7c, 0x0, 0x0, 0x0, 0xb,
+    0xc0, 0x1, 0xf0, 0x0, 0x0, 0x0, 0x2f, 0x0,
+    0x7, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x1f,
+    0xff, 0xff, 0xff, 0xff, 0xf0, 0x0, 0x7c, 0x0,
+    0x3, 0xd0, 0x0, 0x0, 0x1, 0xf0, 0x0, 0xf,
+    0x80, 0x0, 0x0, 0x7, 0xc0, 0x0, 0x2f, 0x0,
+    0x0, 0x0, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0x40, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x1,
+    0xf0, 0x0, 0x3, 0xe0, 0x0, 0x0, 0x7, 0xc0,
+    0x0, 0xb, 0xc0, 0x1, 0x0, 0x1f, 0x0, 0x0,
+    0xf, 0x40, 0xf, 0x0, 0x7c, 0x0, 0x18, 0x2f,
+    0x0, 0x3c, 0x1, 0xf0, 0x6f, 0xf0, 0x3f, 0x1,
+    0xf0, 0xb, 0xff, 0xff, 0x80, 0x7f, 0x5f, 0x40,
+    0x3f, 0xfe, 0x40, 0x0, 0x7f, 0xfc, 0x0, 0xb9,
+    0x0, 0x0, 0x0, 0x2f, 0x80, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+82E1 "苡" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0xf4, 0x0, 0x2d, 0x0, 0x0, 0x0, 0x0,
@@ -119778,6 +126368,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0x1, 0xb4, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+82F4 "苴" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xf0, 0x0, 0x2d, 0x0, 0x0, 0x0, 0x0,
+    0xf0, 0x0, 0x2d, 0x0, 0x0, 0x15, 0x55, 0xf5,
+    0x55, 0x7e, 0x55, 0x50, 0x3f, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xf8, 0x3f, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xf8, 0x0, 0x0, 0xf0, 0x0, 0x2d, 0x0,
+    0x0, 0x0, 0x0, 0xa0, 0x0, 0x18, 0x0, 0x0,
+    0x0, 0x15, 0x55, 0x55, 0x55, 0x50, 0x0, 0x0,
+    0x3f, 0xff, 0xff, 0xff, 0xf4, 0x0, 0x0, 0x3f,
+    0xff, 0xff, 0xff, 0xf4, 0x0, 0x0, 0x3d, 0x0,
+    0x0, 0x0, 0xf4, 0x0, 0x0, 0x3d, 0x0, 0x0,
+    0x0, 0xf4, 0x0, 0x0, 0x3d, 0x0, 0x0, 0x0,
+    0xf4, 0x0, 0x0, 0x3f, 0xff, 0xff, 0xff, 0xf4,
+    0x0, 0x0, 0x3f, 0xff, 0xff, 0xff, 0xf4, 0x0,
+    0x0, 0x3d, 0x0, 0x0, 0x0, 0xf4, 0x0, 0x0,
+    0x3d, 0x0, 0x0, 0x0, 0xf4, 0x0, 0x0, 0x3d,
+    0x0, 0x0, 0x0, 0xf4, 0x0, 0x0, 0x3f, 0xff,
+    0xff, 0xff, 0xf4, 0x0, 0x0, 0x3f, 0xff, 0xff,
+    0xff, 0xf4, 0x0, 0x0, 0x3d, 0x0, 0x0, 0x0,
+    0xf4, 0x0, 0x0, 0x3d, 0x0, 0x0, 0x0, 0xf4,
+    0x0, 0x0, 0x3d, 0x0, 0x0, 0x0, 0xf4, 0x0,
+    0x0, 0x3d, 0x0, 0x0, 0x0, 0xf4, 0x0, 0xbf,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xbf, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xfc,
+
     /* U+82F7 "苷" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0xf0, 0x0, 0x3d, 0x0, 0x0, 0x0, 0x0,
@@ -119858,30 +126474,31 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0xff, 0xf0, 0x0, 0x0, 0x3d, 0x0,
     0x0, 0xbe, 0x40, 0x0,
 
-    /* U+8300 "茀" */
-    0x0, 0x3, 0xc0, 0x0, 0x78, 0x0, 0x0, 0x0,
-    0x3c, 0x0, 0x7, 0x80, 0x0, 0xff, 0xff, 0xff,
-    0xff, 0xff, 0xff, 0xcf, 0xff, 0xff, 0xff, 0xff,
-    0xff, 0xfd, 0x0, 0x3, 0xc0, 0x0, 0x78, 0x0,
-    0x0, 0x0, 0x38, 0x0, 0x7, 0x40, 0x0, 0x0,
-    0x0, 0xa0, 0x2, 0x40, 0x0, 0x0, 0x0, 0xf,
-    0x0, 0x3c, 0x0, 0x0, 0x3f, 0xff, 0xff, 0xff,
-    0xff, 0xfe, 0x3, 0xff, 0xff, 0xff, 0xff, 0xff,
-    0xe0, 0x0, 0x0, 0xf0, 0x3, 0xc0, 0x1e, 0x0,
-    0x0, 0xf, 0x0, 0x3c, 0x1, 0xe0, 0x0, 0x0,
-    0xf0, 0x3, 0xc0, 0x1e, 0x0, 0xff, 0xff, 0xff,
-    0xff, 0xff, 0xe0, 0xf, 0xff, 0xff, 0xff, 0xff,
-    0xfe, 0x0, 0xf0, 0xf, 0x0, 0x3c, 0x0, 0x0,
-    0xf, 0x0, 0xf0, 0x3, 0xc0, 0x0, 0x1, 0xe0,
-    0xf, 0x0, 0x3c, 0x0, 0x0, 0x1f, 0xff, 0xff,
-    0xff, 0xff, 0xff, 0x2, 0xff, 0xff, 0xff, 0xff,
-    0xff, 0xf0, 0x0, 0x2, 0xe0, 0x3, 0xc0, 0xf,
-    0x0, 0x0, 0x3c, 0x0, 0x3c, 0x0, 0xf0, 0x0,
-    0xf, 0x80, 0x3, 0xc0, 0x1e, 0x0, 0x7, 0xf0,
-    0x0, 0x3c, 0x2b, 0xd0, 0x7, 0xf8, 0x0, 0x3,
-    0xc2, 0xfc, 0x3, 0xfd, 0x0, 0x0, 0x3c, 0x4,
-    0x0, 0x1e, 0x0, 0x0, 0x3, 0xc0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    /* U+8301 "茁" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x7, 0xc0, 0x0, 0x7c, 0x0, 0x0, 0x0, 0x1f,
+    0x0, 0x1, 0xf0, 0x0, 0x0, 0x0, 0x7c, 0x0,
+    0x7, 0xc0, 0x0, 0x7f, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xf0, 0x0, 0x1f, 0x0, 0x1, 0xf0, 0x0, 0x0,
+    0x0, 0x7c, 0x0, 0x7, 0xc0, 0x0, 0x0, 0x0,
+    0xa0, 0x7c, 0xa, 0x0, 0x0, 0x2, 0x80, 0x1,
+    0xf0, 0x0, 0xa4, 0x0, 0xf, 0x40, 0x7, 0xc0,
+    0x3, 0xd0, 0x0, 0x3d, 0x0, 0x1f, 0x0, 0xf,
+    0x40, 0x0, 0xf4, 0x0, 0x7c, 0x0, 0x3d, 0x0,
+    0x3, 0xd0, 0x1, 0xf0, 0x0, 0xf4, 0x0, 0xf,
+    0x95, 0x5b, 0xd5, 0x57, 0xd0, 0x0, 0x3f, 0xff,
+    0xff, 0xff, 0xff, 0x40, 0x0, 0xbf, 0xff, 0xff,
+    0xff, 0xfd, 0x0, 0x0, 0x0, 0x1, 0xf0, 0x0,
+    0x0, 0x0, 0x28, 0x0, 0x7, 0xc0, 0x0, 0x60,
+    0x0, 0xf4, 0x0, 0x1f, 0x0, 0x3, 0xd0, 0x3,
+    0xd0, 0x0, 0x7c, 0x0, 0xf, 0x40, 0xf, 0x40,
+    0x1, 0xf0, 0x0, 0x3d, 0x0, 0x3d, 0x0, 0x7,
+    0xc0, 0x0, 0xf4, 0x0, 0xf4, 0x0, 0x1f, 0x0,
+    0x3, 0xd0, 0x3, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0x40, 0xf, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0xf4, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x3, 0xd0,
 
     /* U+8302 "茂" */
     0x0, 0x0, 0x3c, 0x0, 0xf, 0x0, 0x0, 0x0,
@@ -120017,6 +126634,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xfc, 0x0, 0x0, 0xb4, 0x0, 0x0, 0x8, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+8307 "茇" */
+    0x0, 0x0, 0x3d, 0x0, 0x7, 0x80, 0x0, 0x0,
+    0x0, 0xf, 0x40, 0x1, 0xe0, 0x0, 0x0, 0x0,
+    0x3, 0xd0, 0x0, 0xb8, 0x0, 0x0, 0x3f, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xfc, 0xf, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0xf, 0x40,
+    0x1, 0xe0, 0x0, 0x0, 0x0, 0x2, 0xd0, 0x6,
+    0xa4, 0x0, 0x0, 0x0, 0x0, 0x2e, 0x2, 0xfc,
+    0x0, 0x0, 0x0, 0x0, 0xf, 0x40, 0xb, 0xd0,
+    0x0, 0x1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0x40, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0,
+    0x0, 0x0, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x3d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x1f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf,
+    0xff, 0xff, 0xff, 0xf4, 0x0, 0x0, 0x7, 0xff,
+    0xff, 0xff, 0xfd, 0x0, 0x0, 0x3, 0xff, 0x40,
+    0x0, 0x3f, 0x0, 0x0, 0x1, 0xf1, 0xf4, 0x0,
+    0x2f, 0x40, 0x0, 0x0, 0xf8, 0x2f, 0x40, 0x1f,
+    0x80, 0x0, 0x0, 0xbc, 0x2, 0xf4, 0x1f, 0x80,
+    0x0, 0x0, 0x7d, 0x0, 0x2f, 0xef, 0x80, 0x0,
+    0x0, 0x3e, 0x0, 0x1, 0xff, 0x80, 0x0, 0x0,
+    0x3f, 0x0, 0x2, 0xff, 0xf9, 0x0, 0x0, 0x3f,
+    0x0, 0x1f, 0xfd, 0x7f, 0xf9, 0x0, 0x3f, 0x2,
+    0xff, 0xf4, 0x1, 0xbf, 0xfa, 0x7, 0x7, 0xff,
+    0x80, 0x0, 0x1, 0xff, 0xc0, 0x0, 0xf8, 0x0,
+    0x0, 0x0, 0x1, 0x90, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+8308 "茈" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x3, 0xc0, 0x0, 0xb4, 0x0, 0x0, 0x0, 0xf,
@@ -120173,33 +126818,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0x2, 0xff, 0xf0, 0x0, 0x0,
     0x0, 0x0, 0x7, 0xe9, 0x0,
 
-    /* U+8313 "茓" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x1, 0xe0, 0x0, 0xf, 0x0, 0x0, 0x0, 0x1,
-    0xe0, 0x0, 0xf, 0x0, 0x0, 0x0, 0x2, 0xe0,
-    0x0, 0xf, 0x0, 0x0, 0x3f, 0xff, 0xff, 0xff,
-    0xff, 0xff, 0xf4, 0x3f, 0xff, 0xff, 0xff, 0xff,
-    0xff, 0xf4, 0x0, 0x1, 0xe0, 0x0, 0xf, 0x0,
-    0x0, 0x0, 0x1, 0xe0, 0xb4, 0xf, 0x0, 0x0,
-    0x0, 0x1, 0x90, 0x7c, 0xa, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x7, 0xff,
-    0xff, 0xff, 0xff, 0xff, 0xc0, 0xb, 0xff, 0xff,
-    0xff, 0xff, 0xff, 0xc0, 0xb, 0x80, 0x0, 0x0,
-    0x0, 0x7, 0xc0, 0xb, 0x80, 0x0, 0x0, 0x0,
-    0x3, 0xc0, 0xb, 0x80, 0x0, 0x0, 0x0, 0x3,
-    0xc0, 0x6, 0x40, 0x14, 0x0, 0x70, 0x2, 0x80,
-    0x0, 0x0, 0x3d, 0x0, 0xfc, 0x0, 0x0, 0x0,
-    0x0, 0xbc, 0x0, 0x3d, 0x0, 0x0, 0x0, 0x1,
-    0xf8, 0x0, 0x2f, 0x0, 0x0, 0x0, 0x3, 0xf0,
-    0x0, 0xf, 0xc0, 0x0, 0x0, 0xb, 0xc0, 0x0,
-    0x7, 0xe0, 0x0, 0x0, 0x2f, 0x40, 0x0, 0x2,
-    0xf4, 0x0, 0x0, 0xbe, 0x0, 0x0, 0x0, 0xbd,
-    0x0, 0x2, 0xf8, 0x0, 0x0, 0x0, 0x3f, 0x40,
-    0xb, 0xe0, 0x0, 0x0, 0x0, 0xf, 0xd0, 0x3f,
-    0x80, 0x0, 0x0, 0x0, 0x3, 0xf8, 0x2e, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0xf8, 0x4, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x20,
-
     /* U+8314 "茔" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x2, 0xd0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0xb,
@@ -120277,33 +126895,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x1, 0xf0, 0x0, 0x0, 0x2, 0xf0, 0x0, 0x7,
     0xc0, 0x0, 0x0, 0xb, 0xc0,
 
-    /* U+8318 "茘" */
-    0x0, 0x0, 0x40, 0x0, 0x4, 0x0, 0x0, 0x0,
-    0x3, 0xc0, 0x0, 0xb4, 0x0, 0x0, 0x0, 0xf,
-    0x0, 0x2, 0xd0, 0x0, 0x1a, 0xaa, 0xbf, 0xaa,
-    0xaf, 0xea, 0xaa, 0x7f, 0xff, 0xff, 0xff, 0xff,
-    0xff, 0xfc, 0x0, 0x3, 0xc0, 0x0, 0xb4, 0x0,
-    0x0, 0x0, 0xf, 0x0, 0x2, 0xd0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa, 0xaa,
-    0xaa, 0xaa, 0xaa, 0xaa, 0x0, 0x2f, 0xff, 0xff,
-    0xff, 0xff, 0xfc, 0x0, 0x0, 0x7, 0xc0, 0x0,
-    0x0, 0xf0, 0x0, 0x0, 0x2e, 0x0, 0x0, 0x3,
-    0xc0, 0x0, 0x1, 0xf0, 0x0, 0x0, 0x1f, 0x0,
-    0x0, 0x1f, 0x80, 0x0, 0x0, 0xb8, 0x0, 0x7,
-    0xf8, 0x0, 0x5, 0xaf, 0xd0, 0x2, 0xff, 0x40,
-    0x0, 0x1f, 0xfd, 0x0, 0xf, 0xd0, 0x0, 0x0,
-    0x14, 0x0, 0x0, 0x14, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0xff, 0xff, 0xfc, 0xbf, 0xff, 0xfd,
-    0x2, 0xff, 0xff, 0xf2, 0xaf, 0xea, 0xf4, 0x0,
-    0x3c, 0x3, 0xc0, 0x3c, 0x2, 0xd0, 0x0, 0xf0,
-    0x1f, 0x1, 0xf0, 0xf, 0x40, 0x7, 0x80, 0x78,
-    0xb, 0x80, 0x3c, 0x0, 0x3d, 0x1, 0xe0, 0x3c,
-    0x0, 0xf0, 0x2, 0xe0, 0xb, 0x83, 0xe0, 0x3,
-    0xc0, 0x2f, 0x1, 0x7d, 0x3e, 0x1, 0x7f, 0x3,
-    0xf0, 0x2f, 0xe7, 0xe0, 0x1f, 0xf4, 0xe, 0x0,
-    0x10, 0x1e, 0x0, 0x14, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0,
-
     /* U+831A "茚" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x3, 0xd0, 0x0, 0xf4, 0x0, 0x0, 0x0, 0xf,
@@ -120330,6 +126921,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0xf4, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x3, 0xd0, 0x0, 0x0,
 
+    /* U+831B "茛" */
+    0x0, 0x0, 0x50, 0x0, 0x14, 0x0, 0x0, 0x0,
+    0x0, 0xf0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x0,
+    0xf0, 0x0, 0x3c, 0x0, 0x0, 0xbf, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xf4, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xf4, 0x0, 0x1, 0xf0, 0x0, 0x3c,
+    0x0, 0x0, 0x0, 0x0, 0xf0, 0x0, 0x3c, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x0, 0x0,
+    0xff, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x0, 0xf0,
+    0x0, 0x0, 0x0, 0x7c, 0x0, 0x0, 0xf0, 0x0,
+    0x0, 0x0, 0x7c, 0x0, 0x0, 0xff, 0xff, 0xff,
+    0xff, 0xfc, 0x0, 0x0, 0xff, 0xff, 0xff, 0xff,
+    0xfc, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0x7c,
+    0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0x7c, 0x0,
+    0x0, 0xf4, 0x0, 0x0, 0x0, 0x7c, 0x0, 0x0,
+    0xff, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x0, 0xfa,
+    0xaf, 0xea, 0xaa, 0xa9, 0x0, 0x0, 0xf0, 0xb,
+    0xc0, 0x0, 0x1f, 0x0, 0x0, 0xf0, 0x3, 0xf0,
+    0x0, 0xbf, 0x40, 0x0, 0xf0, 0x0, 0xfc, 0x1f,
+    0xf4, 0x0, 0x0, 0xf0, 0x0, 0x3f, 0xff, 0x40,
+    0x0, 0x0, 0xf0, 0x0, 0x4b, 0xf8, 0x0, 0x0,
+    0x0, 0xf0, 0x1b, 0xc0, 0xff, 0x90, 0x0, 0x1,
+    0xfb, 0xff, 0xc0, 0x1b, 0xff, 0xa4, 0x3, 0xff,
+    0xe4, 0x0, 0x0, 0x6f, 0xf8, 0x3, 0xf8, 0x0,
+    0x0, 0x0, 0x0, 0x60, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+831C "茜" */
     0x0, 0x1, 0x40, 0x0, 0x50, 0x0, 0x0, 0x0,
     0x2d, 0x0, 0xf, 0x0, 0x0, 0x0, 0x2, 0xd0,
@@ -120355,6 +126974,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xe0, 0xf, 0x0, 0x0, 0x0, 0x0, 0x2e, 0x0,
     0xf0, 0x0, 0x0, 0x0, 0x2, 0xe0,
 
+    /* U+8327 "茧" */
+    0x0, 0x0, 0xa0, 0x0, 0x19, 0x0, 0x0, 0x0,
+    0x7, 0xc0, 0x0, 0x78, 0x0, 0x0, 0x0, 0x1f,
+    0x0, 0x1, 0xe0, 0x0, 0x1f, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xfc, 0x55, 0x5b, 0xd5, 0x55, 0xbd, 0x55,
+    0x50, 0x0, 0x1f, 0x0, 0x1, 0xe0, 0x0, 0x0,
+    0x0, 0x7c, 0x1a, 0x7, 0x80, 0x0, 0x0, 0x0,
+    0x40, 0x7c, 0x4, 0x0, 0x0, 0x0, 0x0, 0x1,
+    0xf0, 0x0, 0x0, 0x0, 0xf, 0xff, 0xff, 0xff,
+    0xff, 0xd0, 0x0, 0x3f, 0xff, 0xff, 0xff, 0xff,
+    0x40, 0x0, 0xf0, 0x0, 0xbc, 0x0, 0x2d, 0x0,
+    0x3, 0xc0, 0x1, 0xf0, 0x0, 0xb4, 0x0, 0xf,
+    0x0, 0x7, 0xc0, 0x2, 0xd0, 0x0, 0x3c, 0x0,
+    0x1f, 0x0, 0xb, 0x40, 0x0, 0xf0, 0x0, 0x7c,
+    0x0, 0x2d, 0x0, 0x3, 0xff, 0xff, 0xff, 0xff,
+    0xf4, 0x0, 0xf, 0xff, 0xff, 0xff, 0xff, 0xd0,
+    0x0, 0x0, 0x0, 0x1f, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x7c, 0x0, 0x34, 0x0, 0x0, 0x0,
+    0x1, 0xf0, 0x1, 0xf0, 0x0, 0x0, 0x0, 0x7,
+    0xc0, 0x2, 0xf0, 0x0, 0x0, 0x0, 0x2f, 0x56,
+    0xab, 0xe0, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xd0, 0xff, 0xff, 0xff, 0xfe, 0xa9, 0x5b, 0xc1,
+    0x54, 0x0, 0x0, 0x0, 0x0, 0xf, 0x40, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x28, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+8328 "茨" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0xf0, 0x0, 0x2d, 0x0, 0x0, 0x0, 0x0,
@@ -120437,6 +127083,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb, 0x80,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+832D "茭" */
+    0x0, 0x1, 0xf0, 0x0, 0x1e, 0x0, 0x0, 0x0,
+    0x1, 0xf0, 0x0, 0x1f, 0x0, 0x0, 0x0, 0x1,
+    0xf0, 0x0, 0x1f, 0x0, 0x0, 0x3f, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xf4, 0x3f, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xf4, 0x0, 0x1, 0xf0, 0x0, 0x1f,
+    0x0, 0x0, 0x0, 0x1, 0xf0, 0xb8, 0x1f, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x7c, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x3d, 0x0, 0x0, 0x0, 0x1f,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x1f, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xf0, 0x0, 0x0, 0x4,
+    0x0, 0x40, 0x0, 0x0, 0x0, 0x0, 0x3c, 0x0,
+    0xf8, 0x0, 0x0, 0x0, 0x1, 0xfc, 0x0, 0xbf,
+    0x80, 0x0, 0x0, 0xf, 0xe0, 0x0, 0xb, 0xf4,
+    0x0, 0x0, 0xbf, 0xc0, 0x0, 0x7, 0xff, 0x0,
+    0xb, 0xfb, 0xe0, 0x0, 0x1f, 0x5f, 0xd0, 0xf,
+    0xc0, 0xf8, 0x0, 0x3e, 0x2, 0xd0, 0x5, 0x0,
+    0x7e, 0x1, 0xfc, 0x0, 0x40, 0x0, 0x0, 0x1f,
+    0xcb, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xff,
+    0x80, 0x0, 0x0, 0x0, 0x0, 0x2, 0xff, 0x40,
+    0x0, 0x0, 0x0, 0x0, 0x6f, 0xff, 0xf8, 0x0,
+    0x0, 0x0, 0xb, 0xff, 0x42, 0xff, 0xd0, 0x0,
+    0x6, 0xff, 0xe4, 0x0, 0x1f, 0xff, 0x90, 0xbf,
+    0xfd, 0x0, 0x0, 0x0, 0xbf, 0xfc, 0x7e, 0x40,
+    0x0, 0x0, 0x0, 0x1, 0xbc, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+832F "茯" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0xb8, 0x0, 0x3d, 0x0, 0x0, 0x0, 0x0,
@@ -120518,6 +127191,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+8334 "茴" */
+    0x0, 0x0, 0x50, 0x0, 0x14, 0x0, 0x0, 0x0,
+    0x3, 0xc0, 0x0, 0xf4, 0x0, 0x0, 0x0, 0xf,
+    0x0, 0x3, 0xd0, 0x0, 0x2f, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xfc, 0x0, 0x3, 0xc0, 0x0, 0xf4, 0x0,
+    0x0, 0x0, 0xf, 0x0, 0x3, 0xd0, 0x0, 0x0,
+    0x0, 0x14, 0x0, 0x5, 0x0, 0x0, 0x3, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0x40, 0xf, 0xff, 0xff,
+    0xff, 0xff, 0xfd, 0x0, 0x3d, 0x55, 0x55, 0x55,
+    0x55, 0xf4, 0x0, 0xf0, 0x0, 0x0, 0x0, 0x3,
+    0xd0, 0x3, 0xc0, 0x0, 0x0, 0x0, 0xf, 0x40,
+    0xf, 0x1, 0xff, 0xff, 0xe0, 0x3d, 0x0, 0x3c,
+    0x7, 0xff, 0xff, 0x80, 0xf4, 0x0, 0xf0, 0x1e,
+    0x0, 0x1e, 0x3, 0xd0, 0x3, 0xc0, 0x78, 0x0,
+    0x78, 0xf, 0x40, 0xf, 0x1, 0xe0, 0x1, 0xe0,
+    0x3d, 0x0, 0x3c, 0x7, 0x80, 0x7, 0x80, 0xf4,
+    0x0, 0xf0, 0x1f, 0xaa, 0xae, 0x3, 0xd0, 0x3,
+    0xc0, 0x7f, 0xff, 0xf8, 0xf, 0x40, 0xf, 0x0,
+    0x0, 0x0, 0x0, 0x3d, 0x0, 0x3c, 0x0, 0x0,
+    0x0, 0x0, 0xf4, 0x0, 0xf0, 0x0, 0x0, 0x0,
+    0x3, 0xd0, 0x3, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0x40, 0xf, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x0,
+    0x3c, 0x0, 0x0, 0x0, 0x0, 0xf4, 0x0, 0xf0,
+    0x0, 0x0, 0x0, 0x3, 0xd0,
+
     /* U+8335 "茵" */
     0x0, 0x0, 0x50, 0x0, 0x14, 0x0, 0x0, 0x0,
     0x3, 0xd0, 0x0, 0xf4, 0x0, 0x0, 0x0, 0xf,
@@ -120624,6 +127323,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0xf0, 0x1, 0xf0, 0x10, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+833A "茺" */
+    0x0, 0x1, 0xe0, 0x0, 0xf, 0x0, 0x0, 0x0,
+    0x7, 0xc0, 0x0, 0x7c, 0x0, 0x0, 0x0, 0x1f,
+    0x0, 0x1, 0xf0, 0x0, 0xf, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xf8, 0x0, 0x7, 0xc0, 0x40, 0x7c, 0x0,
+    0x0, 0x0, 0x1f, 0xb, 0x81, 0xf0, 0x0, 0x0,
+    0x0, 0x14, 0x1f, 0x1, 0x40, 0x0, 0x0, 0x0,
+    0x0, 0x3d, 0x0, 0x0, 0x0, 0xbf, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xd2, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0x0, 0x0, 0xf, 0xc0, 0x2, 0x0,
+    0x0, 0x0, 0x0, 0xfc, 0x0, 0x2f, 0x40, 0x0,
+    0x0, 0x1f, 0x80, 0x0, 0x2f, 0x40, 0x0, 0x2,
+    0xf4, 0x0, 0x0, 0x2f, 0x40, 0x0, 0xbf, 0xff,
+    0xff, 0xff, 0xff, 0x40, 0x3, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0x40, 0xf, 0xe5, 0xf4, 0xb, 0x80,
+    0x2c, 0x0, 0x0, 0x7, 0xc0, 0x2e, 0x0, 0x10,
+    0x0, 0x0, 0x2f, 0x0, 0xb8, 0x0, 0x0, 0x0,
+    0x0, 0xf8, 0x2, 0xe0, 0x0, 0x60, 0x0, 0xb,
+    0xc0, 0xb, 0x80, 0x1, 0xf0, 0x0, 0xbe, 0x0,
+    0x2f, 0x0, 0xb, 0x80, 0x1f, 0xe0, 0x0, 0xbd,
+    0x0, 0x3d, 0x1b, 0xfd, 0x0, 0x1, 0xff, 0xff,
+    0xf0, 0xff, 0x80, 0x0, 0x1, 0xff, 0xfe, 0x41,
+    0xd0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+833C "茼" */
     0x0, 0x0, 0x50, 0x0, 0x14, 0x0, 0x0, 0x0,
     0x3, 0xd0, 0x0, 0xf4, 0x0, 0x0, 0x0, 0xf,
@@ -120889,6 +127614,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0xb8, 0x1, 0xff, 0xe0, 0x18, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+8354 "荔" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x2, 0xd0, 0x0, 0xb0, 0x0, 0x0, 0x0, 0xb,
+    0x40, 0x2, 0xc0, 0x0, 0x1f, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xfc, 0x0, 0x2, 0xd0, 0x0, 0xb4, 0x0,
+    0x0, 0x0, 0xb, 0x40, 0x2, 0xc0, 0x0, 0x0,
+    0x0, 0x5, 0xf0, 0x1, 0x0, 0x0, 0x0, 0x0,
+    0x7, 0xc0, 0x0, 0x0, 0x0, 0x2f, 0xff, 0xff,
+    0xff, 0xff, 0xf8, 0x0, 0x7f, 0xff, 0xff, 0xff,
+    0xff, 0xe0, 0x0, 0x0, 0xb, 0xc0, 0x0, 0xb,
+    0x40, 0x0, 0x0, 0xbd, 0x0, 0x0, 0x3d, 0x0,
+    0x0, 0x6f, 0xe0, 0x1, 0x6b, 0xf0, 0x1, 0xbf,
+    0xfc, 0x0, 0xb, 0xff, 0x40, 0x7, 0xfd, 0x0,
+    0x0, 0x5, 0x40, 0x0, 0x4, 0x18, 0x0, 0x0,
+    0x3c, 0x0, 0x0, 0x0, 0xb4, 0x0, 0x0, 0xf0,
+    0x0, 0x3, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xfc,
+    0xf, 0xff, 0xff, 0xf3, 0xff, 0xff, 0xf0, 0x0,
+    0x3c, 0x3, 0xc0, 0x78, 0x3, 0xc0, 0x1, 0xe0,
+    0x1e, 0x2, 0xd0, 0x1f, 0x0, 0xb, 0x40, 0x78,
+    0xf, 0x0, 0x78, 0x0, 0x7c, 0x2, 0xe0, 0xb8,
+    0x1, 0xe0, 0x7, 0xd0, 0xb, 0x47, 0xc0, 0xb,
+    0x80, 0x7d, 0x6, 0xfc, 0xbd, 0x5, 0xbd, 0xb,
+    0xe0, 0x2f, 0xdb, 0xd0, 0x2f, 0xe0, 0xd, 0x0,
+    0x10, 0xd, 0x0, 0x14, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+835A "荚" */
     0x0, 0x0, 0xf0, 0x0, 0x2d, 0x0, 0x0, 0x0,
     0x0, 0xf0, 0x0, 0x3d, 0x0, 0x0, 0x0, 0x0,
@@ -121375,6 +128127,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xfa, 0xfa, 0x40, 0x7, 0xff, 0xff, 0xff, 0xe0,
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+836E "荮" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x1, 0xf0, 0x0, 0xf4, 0x0, 0x0, 0x0, 0x7,
+    0xc0, 0x3, 0xd0, 0x0, 0x0, 0x0, 0x1f, 0x0,
+    0xf, 0x40, 0x0, 0x2f, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xf4, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xd0, 0x0, 0x7, 0xc0, 0x3, 0xd0, 0x0, 0x0,
+    0x0, 0x1f, 0x0, 0xf, 0x40, 0x0, 0x0, 0xe,
+    0x28, 0x0, 0x28, 0x3c, 0x0, 0x0, 0xf8, 0x0,
+    0x0, 0x0, 0xf0, 0x0, 0xb, 0xc0, 0x80, 0x0,
+    0x3, 0xc0, 0x0, 0x7c, 0x7, 0xd5, 0x55, 0x5f,
+    0x55, 0x3, 0xd0, 0x3d, 0xbf, 0xff, 0xff, 0xfc,
+    0x7f, 0xff, 0xe1, 0xaa, 0xaa, 0xfe, 0xa1, 0xff,
+    0xff, 0x0, 0x0, 0x3, 0xc0, 0x0, 0x1, 0xf0,
+    0x7, 0x40, 0xf, 0x0, 0x0, 0x1f, 0x40, 0x1f,
+    0x0, 0x3c, 0x0, 0x0, 0xf4, 0x0, 0x2f, 0x0,
+    0xf0, 0x0, 0xf, 0x96, 0xa0, 0x3e, 0x3, 0xc0,
+    0x1, 0xff, 0xff, 0xc0, 0x3d, 0xf, 0x0, 0x7,
+    0xfa, 0x50, 0x0, 0x70, 0x3c, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x3, 0xc0, 0x0, 0x0, 0x5a, 0xf0, 0x0,
+    0xf, 0x0, 0x3f, 0xff, 0xff, 0xc0, 0x0, 0xbc,
+    0x1, 0xff, 0xfe, 0x94, 0x0, 0xff, 0xf0, 0x1,
+    0x0, 0x0, 0x0, 0x3, 0xfe, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+836F "药" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x2, 0xe0, 0x0, 0xf4, 0x0, 0x0, 0x0, 0xb,
@@ -121723,34 +128501,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x7c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x7c, 0x0, 0x0, 0x0,
 
-    /* U+8399 "莙" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0xf, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x0,
-    0x3, 0xc0, 0x0, 0xf0, 0x0, 0x0, 0x3f, 0xff,
-    0xff, 0xff, 0xff, 0xff, 0xf8, 0xf, 0xff, 0xff,
-    0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0xf, 0x0,
-    0x3, 0xc0, 0x0, 0x0, 0x0, 0x2, 0xc0, 0x0,
-    0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x1, 0xff, 0xff, 0xff, 0xff, 0xff,
-    0x0, 0x0, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xc0,
-    0x0, 0x0, 0x3, 0xc0, 0x0, 0x0, 0xf0, 0x0,
-    0x0, 0x0, 0xf0, 0x0, 0x0, 0x3c, 0x0, 0x1f,
-    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7, 0xff,
-    0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x0, 0x7,
-    0x80, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x2, 0xe0,
-    0x0, 0x0, 0x3c, 0x0, 0x3, 0xff, 0xff, 0xff,
-    0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0xff, 0xff,
-    0xff, 0xc0, 0x0, 0x0, 0x3d, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x2f, 0xaa, 0xaa, 0xaa, 0xa8,
-    0x0, 0x0, 0x2f, 0xff, 0xff, 0xff, 0xff, 0x0,
-    0x0, 0x2f, 0xf0, 0x0, 0x0, 0x3, 0xc0, 0x0,
-    0x3f, 0x7c, 0x0, 0x0, 0x0, 0xf0, 0x0, 0xbf,
-    0xf, 0x0, 0x0, 0x0, 0x3c, 0x0, 0x3e, 0x3,
-    0xc0, 0x0, 0x0, 0xf, 0x0, 0x1, 0x0, 0xff,
-    0xff, 0xff, 0xff, 0xc0, 0x0, 0x0, 0x3f, 0xff,
-    0xff, 0xff, 0xf0, 0x0, 0x0, 0xf, 0x0, 0x0,
-    0x0, 0x3c, 0x0,
-
     /* U+839B "莛" */
     0x0, 0x0, 0xf0, 0x0, 0x3c, 0x0, 0x0, 0x0,
     0x3, 0xc0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0xf,
@@ -122340,33 +129090,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0xb, 0xfc, 0x0, 0x0, 0xf4, 0x0,
     0x0, 0xb, 0xe0, 0x0,
 
-    /* U+83C2 "菂" */
-    0x0, 0x0, 0x10, 0x0, 0x14, 0x0, 0x0, 0x0,
-    0x0, 0xb8, 0x0, 0x2d, 0x0, 0x0, 0x0, 0x0,
-    0xb8, 0x0, 0x2d, 0x0, 0x0, 0x3f, 0xff, 0xff,
-    0xff, 0xff, 0xff, 0xfc, 0x3f, 0xff, 0xff, 0xff,
-    0xff, 0xff, 0xfc, 0x0, 0x0, 0xb8, 0x0, 0x2e,
-    0x0, 0x0, 0x0, 0x0, 0xb8, 0x0, 0x2d, 0x0,
-    0x0, 0x0, 0xe, 0x10, 0x0, 0x54, 0x0, 0x0,
-    0x0, 0xf, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x0,
-    0x1e, 0x0, 0x1, 0xe0, 0x0, 0x0, 0x0, 0x2e,
-    0x0, 0x3, 0xe0, 0x0, 0x0, 0x7, 0xff, 0xff,
-    0x3, 0xff, 0xff, 0xe0, 0x7, 0xea, 0xaf, 0xb,
-    0xff, 0xff, 0xd0, 0x7, 0x80, 0xf, 0xf, 0x0,
-    0x2, 0xd0, 0x7, 0x80, 0xf, 0x2e, 0x0, 0x2,
-    0xd0, 0x7, 0x80, 0xf, 0x7c, 0x40, 0x2, 0xd0,
-    0x7, 0x80, 0xf, 0x75, 0xe0, 0x2, 0xd0, 0x7,
-    0x80, 0xf, 0x0, 0xf8, 0x2, 0xd0, 0x7, 0xff,
-    0xff, 0x0, 0x3e, 0x3, 0xd0, 0x7, 0xff, 0xff,
-    0x0, 0xf, 0x43, 0xd0, 0x7, 0x80, 0xf, 0x0,
-    0x7, 0x43, 0xc0, 0x7, 0x80, 0xf, 0x0, 0x0,
-    0x3, 0xc0, 0x7, 0x80, 0xf, 0x0, 0x0, 0x3,
-    0xc0, 0x7, 0x80, 0xf, 0x0, 0x0, 0x3, 0xc0,
-    0x7, 0x80, 0xf, 0x0, 0x0, 0x7, 0xc0, 0x7,
-    0xff, 0xff, 0x0, 0x5, 0xaf, 0xc0, 0x7, 0xff,
-    0xff, 0x0, 0xf, 0xff, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x6, 0x90, 0x0,
-
     /* U+83C5 "菅" */
     0x0, 0x0, 0x50, 0x0, 0x5, 0x0, 0x0, 0x0,
     0x7, 0xc0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x1f,
@@ -122421,32 +129144,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x3, 0xc0, 0x0, 0xf0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
-    /* U+83C9 "菉" */
-    0x0, 0x0, 0x50, 0x0, 0x14, 0x0, 0x0, 0x0,
-    0x3, 0xd0, 0x0, 0xf4, 0x0, 0x0, 0x0, 0xf,
-    0x40, 0x3, 0xd0, 0x0, 0xb, 0xff, 0xff, 0xff,
-    0xff, 0xff, 0xfd, 0x3f, 0xff, 0xff, 0xff, 0xff,
-    0xff, 0xf4, 0x0, 0x3, 0xd0, 0x0, 0xf4, 0x0,
-    0x0, 0x0, 0xb, 0x40, 0x2, 0xd0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0xff,
-    0xff, 0xff, 0xff, 0xf8, 0x0, 0x6, 0xaa, 0xaa,
-    0xaa, 0xab, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0xb, 0x80, 0x0, 0x2a, 0xaa, 0xaa, 0xaa, 0xbe,
-    0x0, 0x0, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x2, 0xe0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0xb, 0x80, 0xf, 0xff, 0xff,
-    0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff,
-    0xff, 0xff, 0xfc, 0x2, 0x40, 0x1, 0xf0, 0x0,
-    0x14, 0x0, 0x2f, 0x80, 0x7, 0xe0, 0x2, 0xf0,
-    0x0, 0x1f, 0xd0, 0x1f, 0xd0, 0x7f, 0x40, 0x0,
-    0xb, 0x81, 0x7f, 0xef, 0xe0, 0x0, 0x0, 0x5,
-    0xbd, 0xe3, 0xf8, 0x0, 0x0, 0x0, 0x7f, 0xe7,
-    0x83, 0xf4, 0x0, 0x0, 0x6f, 0xf4, 0x1e, 0x2,
-    0xfe, 0x0, 0x3f, 0xf8, 0x0, 0x78, 0x1, 0xff,
-    0xd0, 0xf8, 0x0, 0x17, 0xe0, 0x0, 0x6f, 0xd0,
-    0x0, 0x3, 0xff, 0x40, 0x0, 0x6, 0x0, 0x0,
-    0x6, 0x90, 0x0, 0x0, 0x0,
-
     /* U+83CA "菊" */
     0x0, 0x0, 0x50, 0x0, 0x14, 0x0, 0x0, 0x0,
     0x3, 0xd0, 0x0, 0xf4, 0x0, 0x0, 0x0, 0xf,
@@ -122666,6 +129363,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x90, 0x0, 0x0, 0x28, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+83DF "菟" */
+    0x0, 0x0, 0x50, 0x0, 0x14, 0x0, 0x0, 0x0,
+    0x3, 0xc0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0xf,
+    0x0, 0x3, 0xc0, 0x0, 0xf, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xfc, 0x3f, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xf0, 0x0, 0x3, 0xd0, 0x0, 0xf4, 0x0,
+    0x0, 0x0, 0xa, 0x0, 0x3, 0xc0, 0x0, 0x0,
+    0x0, 0x3d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3,
+    0xff, 0xff, 0xff, 0xc0, 0x0, 0x0, 0x3f, 0xff,
+    0xff, 0xff, 0x0, 0x0, 0x3, 0xf0, 0x0, 0x3,
+    0xf4, 0x0, 0x0, 0x3f, 0x0, 0x0, 0x2f, 0x40,
+    0x0, 0x7, 0xf4, 0x0, 0x2, 0xf4, 0x0, 0x0,
+    0xbf, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x3, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xf0, 0x1, 0x3c, 0x0,
+    0x1f, 0x0, 0x3, 0xc0, 0x0, 0xf0, 0x0, 0x78,
+    0x0, 0xf, 0x0, 0x3, 0xc0, 0x2, 0xe0, 0x0,
+    0x3c, 0x0, 0xf, 0xff, 0xff, 0xff, 0xff, 0xf0,
+    0x0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x0,
+    0x0, 0x3, 0xff, 0xf, 0x0, 0x0, 0x0, 0x0,
+    0x3f, 0x7c, 0x2f, 0x41, 0x80, 0x0, 0x7, 0xf0,
+    0xf0, 0x1f, 0x47, 0x80, 0x1, 0xbf, 0x3, 0xc0,
+    0x1c, 0x2e, 0x0, 0xbf, 0xe0, 0xf, 0x40, 0x0,
+    0xf4, 0xbf, 0xf8, 0x0, 0x3f, 0xff, 0xff, 0xc7,
+    0xfe, 0x0, 0x0, 0x2f, 0xff, 0xf9, 0xe, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+83E0 "菠" */
     0x0, 0x0, 0x74, 0x0, 0x2c, 0x0, 0x0, 0x0,
     0x0, 0xb8, 0x0, 0x3d, 0x0, 0x0, 0x15, 0x55,
@@ -122829,6 +129552,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xf8, 0xfc, 0x19, 0x40, 0xf0, 0x7c, 0x2, 0x40,
     0x20, 0x0, 0x0, 0x40, 0x20,
 
+    /* U+83F1 "菱" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x3, 0xc0, 0x0, 0x78, 0x0, 0x0, 0x0, 0xf,
+    0x0, 0x1, 0xe0, 0x0, 0x6, 0xaa, 0xfe, 0xaa,
+    0xaf, 0xea, 0xa8, 0x2f, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xf0, 0x0, 0x3, 0xc0, 0x0, 0x78, 0x0,
+    0x0, 0x0, 0xf, 0x2, 0x81, 0xe0, 0x0, 0x0,
+    0x0, 0x0, 0xf, 0x0, 0x0, 0x0, 0x1, 0xff,
+    0xff, 0xff, 0xff, 0xfe, 0x0, 0x7, 0xff, 0xff,
+    0xff, 0xff, 0xfc, 0x0, 0x0, 0x0, 0x7, 0xc0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0x0, 0x0,
+    0x0, 0x2a, 0xaa, 0xaa, 0xfe, 0xaa, 0xaa, 0xa4,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd0, 0x0,
+    0x1d, 0x0, 0x0, 0xe4, 0x0, 0x0, 0x2, 0xf8,
+    0x0, 0x3, 0xfd, 0x0, 0x0, 0xbf, 0x8b, 0x40,
+    0x1, 0xff, 0x40, 0x2f, 0xe0, 0xbd, 0x0, 0x0,
+    0x7f, 0xc3, 0xfd, 0xb, 0xff, 0xff, 0xff, 0x1f,
+    0x7, 0x41, 0xfe, 0xaa, 0xab, 0xf8, 0x4, 0x0,
+    0x2f, 0xf0, 0x0, 0x1f, 0x80, 0x0, 0x7, 0xf6,
+    0xf4, 0x2, 0xf4, 0x0, 0x0, 0xfe, 0x1, 0xfd,
+    0x7f, 0x40, 0x0, 0x1, 0x80, 0x0, 0xff, 0xe0,
+    0x0, 0x0, 0x0, 0x0, 0x6f, 0xff, 0xf4, 0x0,
+    0x0, 0x1, 0xbf, 0xfd, 0x7, 0xff, 0xe5, 0x7,
+    0xff, 0xf9, 0x0, 0x0, 0x6f, 0xff, 0x8f, 0xe4,
+    0x0, 0x0, 0x0, 0x1, 0x6d, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+83F2 "菲" */
     0x0, 0x0, 0xf4, 0x0, 0x3d, 0x0, 0x0, 0x0,
     0x3, 0xd0, 0x0, 0xf4, 0x0, 0x0, 0x0, 0xf,
@@ -122854,6 +129604,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0x3c, 0xb, 0xc0, 0x0, 0x0,
     0x0, 0x0, 0xf0, 0x2f, 0x0, 0x0, 0x0,
 
+    /* U+83F8 "菸" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x7c, 0x0, 0x78, 0x0, 0x0, 0x0, 0x0,
+    0x7c, 0x0, 0x78, 0x0, 0x0, 0x0, 0x0, 0x7c,
+    0x0, 0xbc, 0x0, 0x0, 0x3f, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xf4, 0x2f, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xf4, 0x0, 0x0, 0x7c, 0x0, 0x78, 0x0,
+    0x0, 0x0, 0xa, 0x28, 0x0, 0x68, 0x0, 0x0,
+    0x0, 0xf, 0x0, 0x0, 0xf, 0xc0, 0x0, 0x0,
+    0xb, 0x80, 0x0, 0x2f, 0xd0, 0x0, 0x2f, 0xff,
+    0xff, 0xe0, 0x3c, 0xf0, 0x0, 0x2f, 0xff, 0xff,
+    0xe0, 0xb4, 0xbc, 0x0, 0x0, 0xf4, 0x0, 0x1,
+    0xf0, 0x3e, 0x0, 0x0, 0xf0, 0x0, 0x7, 0xc0,
+    0xf, 0x80, 0x0, 0xf0, 0x0, 0x1f, 0x40, 0x7,
+    0xe0, 0x0, 0xf0, 0x0, 0x7e, 0x0, 0x1, 0xfc,
+    0x0, 0xff, 0xff, 0x78, 0xa4, 0x0, 0x7e, 0x0,
+    0xff, 0xff, 0x10, 0xff, 0x40, 0x8, 0x0, 0xf0,
+    0xf, 0x0, 0x1f, 0xf4, 0x0, 0x1, 0xf0, 0x1f,
+    0x0, 0x1, 0xfc, 0x0, 0x2, 0xe0, 0x1e, 0x0,
+    0x0, 0x14, 0x0, 0x3, 0xd0, 0x1e, 0x0, 0x0,
+    0x0, 0x0, 0x3, 0xc0, 0x1e, 0xf, 0x80, 0x0,
+    0x0, 0xb, 0xc0, 0x1e, 0xf, 0xf9, 0x0, 0x0,
+    0xf, 0x40, 0x2e, 0x0, 0xbf, 0xd0, 0x0, 0x2f,
+    0x2, 0xbd, 0x0, 0xb, 0xfd, 0x0, 0x7d, 0x7,
+    0xfc, 0x0, 0x0, 0x7f, 0x0, 0x78, 0x2, 0x50,
+    0x0, 0x0, 0x9, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+83F9 "菹" */
     0x0, 0x0, 0x50, 0x0, 0x14, 0x0, 0x0, 0x0,
     0x0, 0xf4, 0x0, 0x2d, 0x0, 0x0, 0x0, 0x0,
@@ -122909,6 +129687,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xe0, 0x0, 0x0, 0x24, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+8401 "萁" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xf4, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x0,
+    0xf4, 0x0, 0x3c, 0x0, 0x0, 0x3f, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xf0, 0x3f, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xf4, 0x0, 0x0, 0xf4, 0x0, 0x3c,
+    0x0, 0x0, 0x0, 0x4, 0xb0, 0x0, 0x3d, 0x40,
+    0x0, 0x0, 0x1f, 0x0, 0x0, 0x2, 0xe0, 0x0,
+    0x1a, 0xbf, 0xaa, 0xaa, 0xab, 0xfa, 0x90, 0x1f,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x0, 0x1f,
+    0x0, 0x0, 0x3, 0xe0, 0x0, 0x0, 0x1f, 0x0,
+    0x0, 0x2, 0xe0, 0x0, 0x0, 0x1f, 0xaa, 0xaa,
+    0xab, 0xe0, 0x0, 0x0, 0x1f, 0xff, 0xff, 0xff,
+    0xe0, 0x0, 0x0, 0x1f, 0x0, 0x0, 0x2, 0xe0,
+    0x0, 0x0, 0x1f, 0x0, 0x0, 0x2, 0xe0, 0x0,
+    0x0, 0x1f, 0xaa, 0xaa, 0xab, 0xe0, 0x0, 0x0,
+    0x1f, 0xff, 0xff, 0xff, 0xe0, 0x0, 0x0, 0x1f,
+    0x0, 0x0, 0x2, 0xe0, 0x0, 0x0, 0x1f, 0x0,
+    0x0, 0x2, 0xe0, 0x0, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xfc, 0x0, 0x0, 0x14, 0x0, 0x50, 0x0,
+    0x0, 0x0, 0x1, 0xf8, 0x0, 0xbe, 0x40, 0x0,
+    0x0, 0x2f, 0xf8, 0x0, 0x6f, 0xf8, 0x0, 0x7,
+    0xff, 0x80, 0x0, 0x2, 0xff, 0x90, 0x3f, 0xf4,
+    0x0, 0x0, 0x0, 0x1f, 0xe0, 0x1e, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x90, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+8403 "萃" */
     0x0, 0x0, 0x50, 0x0, 0x4, 0x0, 0x0, 0x0,
     0x0, 0xf0, 0x0, 0x1e, 0x0, 0x0, 0x0, 0x0,
@@ -122963,6 +129769,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x1f, 0xfd, 0x0, 0x0, 0x0, 0x0,
     0x0, 0xa, 0x50, 0x0,
 
+    /* U+8406 "萆" */
+    0x0, 0x0, 0x40, 0x0, 0x5, 0x0, 0x0, 0x0,
+    0x7, 0x80, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x1e,
+    0x0, 0x0, 0xf0, 0x0, 0xa, 0xaa, 0xfe, 0xaa,
+    0xab, 0xea, 0xa9, 0x3f, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xf8, 0x0, 0x7, 0xc0, 0x0, 0x3c, 0x0,
+    0x0, 0x0, 0x1e, 0x3, 0xc0, 0xf0, 0x0, 0x0,
+    0x0, 0x10, 0x2e, 0x0, 0x0, 0x0, 0x0, 0xaa,
+    0xaa, 0xfa, 0xaa, 0xaa, 0x0, 0x3, 0xff, 0xff,
+    0xff, 0xff, 0xfc, 0x0, 0xf, 0x0, 0x7, 0xc0,
+    0x1, 0xf0, 0x0, 0x3c, 0x0, 0xf, 0x0, 0x7,
+    0xc0, 0x0, 0xf0, 0x0, 0x3c, 0x0, 0x1f, 0x0,
+    0x3, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0, 0xf,
+    0xaa, 0xaf, 0xea, 0xab, 0xf0, 0x0, 0x3c, 0x0,
+    0x2e, 0x0, 0x7, 0xc0, 0x0, 0xf0, 0x0, 0xf4,
+    0x0, 0x1f, 0x0, 0x3, 0xff, 0xff, 0xff, 0xff,
+    0xfc, 0x0, 0xf, 0xff, 0xff, 0xff, 0xff, 0xf0,
+    0x0, 0x0, 0x1f, 0xd2, 0x80, 0x0, 0x0, 0x0,
+    0x1b, 0xf8, 0xf, 0x40, 0x0, 0x0, 0x0, 0x7e,
+    0x0, 0x3d, 0x0, 0x0, 0x7, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0x0, 0x0, 0x0, 0xf, 0x40, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x3d, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0xf4, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x3, 0xd0, 0x0, 0x0,
+
     /* U+840B "萋" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0xf0, 0x0, 0x1f, 0x0, 0x0, 0x0, 0x0,
@@ -123336,33 +130168,30 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xb, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
-    /* U+8429 "萩" */
-    0x0, 0x0, 0x50, 0x0, 0x14, 0x0, 0x0, 0x0,
-    0x0, 0xb4, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x0,
-    0xb4, 0x0, 0x3c, 0x0, 0x0, 0x3f, 0xff, 0xff,
-    0xff, 0xff, 0xff, 0xf8, 0x3f, 0xff, 0xff, 0xff,
-    0xff, 0xff, 0xf8, 0x0, 0x0, 0xb4, 0x0, 0x3d,
-    0x0, 0x0, 0x0, 0x0, 0xb4, 0x0, 0x3c, 0x0,
-    0x0, 0x0, 0x0, 0x10, 0x0, 0x14, 0x0, 0x0,
-    0x0, 0x5, 0xbd, 0x0, 0x1e, 0x0, 0x0, 0x1f,
-    0xff, 0xfe, 0x0, 0x1e, 0x0, 0x0, 0x1f, 0xff,
-    0x50, 0x40, 0x1e, 0x0, 0x40, 0x0, 0x1e, 0x1,
-    0xf0, 0x1e, 0x0, 0xf0, 0x0, 0x1e, 0x0, 0xf4,
-    0x1e, 0x2, 0xe0, 0x0, 0x1e, 0x0, 0x7c, 0x1e,
-    0x3, 0xc0, 0x3f, 0xff, 0xff, 0x3e, 0x1e, 0xb,
-    0x40, 0x3f, 0xff, 0xff, 0xf, 0x1f, 0x1f, 0x0,
-    0x0, 0x3e, 0x0, 0xb, 0x6f, 0x3c, 0x0, 0x0,
-    0x7e, 0x0, 0x1, 0x2f, 0x44, 0x0, 0x0, 0xfe,
-    0xd0, 0x0, 0x3f, 0x80, 0x0, 0x2, 0xfe, 0xf4,
-    0x0, 0x7f, 0xc0, 0x0, 0x7, 0xde, 0x7c, 0x0,
-    0xf5, 0xe0, 0x0, 0xf, 0x5e, 0x1f, 0x1, 0xf0,
-    0xf4, 0x0, 0x3e, 0x1e, 0xb, 0x43, 0xd0, 0x7c,
-    0x0, 0xbc, 0x1e, 0x1, 0xf, 0x80, 0x2f, 0x0,
-    0x30, 0x1e, 0x0, 0x3f, 0x0, 0xf, 0xd0, 0x0,
-    0x1e, 0x1, 0xfc, 0x0, 0x3, 0xf8, 0x0, 0x1e,
-    0x7, 0xf0, 0x0, 0x0, 0xfc, 0x0, 0x1e, 0x3,
-    0x80, 0x0, 0x0, 0x24, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0,
+    /* U+8431 "萱" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x3, 0xc0, 0x0, 0x7c, 0x0, 0x0, 0x0, 0xf,
+    0x0, 0x1, 0xf0, 0x0, 0xa, 0xaa, 0xfe, 0xaa,
+    0xaf, 0xea, 0xaa, 0x3f, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xfc, 0x0, 0x3, 0xc0, 0x50, 0x7c, 0x0,
+    0x0, 0x0, 0xf, 0x7, 0xc1, 0xf0, 0x0, 0x0,
+    0x0, 0x0, 0xf, 0x0, 0x0, 0x0, 0xf, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xd0, 0x3f, 0xaa, 0xaa,
+    0xaa, 0xaa, 0xaf, 0x40, 0xf4, 0x0, 0x0, 0x0,
+    0x0, 0x2d, 0x3, 0xda, 0xaa, 0xaa, 0xaa, 0xaa,
+    0xb4, 0xb, 0x7f, 0xff, 0xff, 0xff, 0xfe, 0xd0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xff,
+    0xff, 0xff, 0xfe, 0x0, 0x0, 0x3e, 0xaa, 0xaa,
+    0xaa, 0xb8, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x1,
+    0xe0, 0x0, 0x3, 0xea, 0xaa, 0xaa, 0xab, 0x80,
+    0x0, 0xf, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0,
+    0x3c, 0x0, 0x0, 0x0, 0x78, 0x0, 0x0, 0xfa,
+    0xaa, 0xaa, 0xaa, 0xe0, 0x0, 0x3, 0xff, 0xff,
+    0xff, 0xff, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
 
     /* U+8438 "萸" */
     0x0, 0x0, 0x50, 0x0, 0x4, 0x0, 0x0, 0x0,
@@ -123525,6 +130354,111 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xaa, 0xaa, 0xaa, 0xfc, 0x0, 0x0, 0xf, 0x0,
     0x0, 0x0, 0x7c, 0x0,
 
+    /* U+8459 "葙" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x3, 0xd0, 0x0, 0xb4, 0x0, 0x0, 0x0, 0xf,
+    0x40, 0x2, 0xd0, 0x0, 0x0, 0x0, 0x3d, 0x0,
+    0xb, 0x40, 0x0, 0x3f, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xe0, 0x0, 0xf, 0x40, 0x2, 0xd0, 0x0, 0x0,
+    0x5, 0x3d, 0x0, 0xb, 0x40, 0x0, 0x0, 0x3d,
+    0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf4, 0x3,
+    0xff, 0xff, 0xfe, 0x0, 0x3, 0xd0, 0xf, 0xff,
+    0xff, 0xf8, 0x6, 0xaf, 0xa9, 0x3c, 0x0, 0x2,
+    0xe0, 0x3f, 0xff, 0xfc, 0xf0, 0x0, 0xb, 0x80,
+    0x6a, 0xfa, 0x93, 0xc0, 0x0, 0x2e, 0x0, 0x7,
+    0xd0, 0xf, 0xff, 0xff, 0xf8, 0x0, 0x3f, 0x40,
+    0x3f, 0xff, 0xff, 0xe0, 0x1, 0xff, 0xc0, 0xf0,
+    0x0, 0xb, 0x80, 0xf, 0xff, 0x83, 0xc0, 0x0,
+    0x2e, 0x0, 0xbb, 0xdf, 0x8f, 0x0, 0x0, 0xb8,
+    0x7, 0xcf, 0x5f, 0x7f, 0xff, 0xff, 0xe0, 0x7d,
+    0x3d, 0x28, 0xff, 0xff, 0xff, 0x82, 0xe0, 0xf4,
+    0x3, 0xc0, 0x0, 0x2e, 0x2, 0x3, 0xd0, 0xf,
+    0x0, 0x0, 0xb8, 0x0, 0xf, 0x40, 0x3c, 0x0,
+    0x2, 0xe0, 0x0, 0x3d, 0x0, 0xff, 0xff, 0xff,
+    0x80, 0x0, 0xf4, 0x3, 0xff, 0xff, 0xfe, 0x0,
+    0x3, 0xd0, 0xf, 0x0, 0x0, 0xb8, 0x0, 0xf,
+    0x40, 0x3c, 0x0, 0x1, 0xe0,
+
+    /* U+845A "葚" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x3, 0xd0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0xf,
+    0x40, 0x3, 0xc0, 0x0, 0xf, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xfc, 0x3f, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xf4, 0x0, 0x3, 0xd0, 0x0, 0xf0, 0x0,
+    0x0, 0x1, 0x9b, 0x0, 0x3, 0xd9, 0x0, 0x0,
+    0xb, 0x80, 0x0, 0x0, 0xb8, 0x0, 0x1f, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xe0, 0x6a, 0xfe, 0xaa,
+    0xaa, 0xaf, 0xea, 0x80, 0x1, 0xe0, 0x0, 0x0,
+    0x1e, 0x0, 0x0, 0x7, 0xea, 0xaa, 0xaa, 0xf8,
+    0x0, 0x0, 0x1f, 0xff, 0xff, 0xff, 0xe0, 0x0,
+    0x0, 0x78, 0x0, 0x0, 0xb, 0x80, 0x0, 0x1,
+    0xe0, 0x0, 0x0, 0x2e, 0x0, 0x0, 0x7, 0xff,
+    0xff, 0xff, 0xf8, 0x0, 0x0, 0x1f, 0xaa, 0xaa,
+    0xab, 0xe0, 0x0, 0x0, 0x78, 0x0, 0x0, 0x7,
+    0x80, 0xa, 0xab, 0xfa, 0xaa, 0xaa, 0xbf, 0xaa,
+    0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1,
+    0xe0, 0x1, 0xc0, 0x34, 0x0, 0x0, 0x7, 0x80,
+    0x2f, 0x42, 0xfc, 0x0, 0x0, 0x1e, 0x7, 0xf4,
+    0x1, 0xfd, 0x0, 0x0, 0x78, 0xff, 0x0, 0x0,
+    0xbe, 0x0, 0x1, 0xe2, 0xd0, 0x0, 0x0, 0x34,
+    0x0, 0x7, 0xff, 0xff, 0xff, 0xff, 0xff, 0x40,
+    0x1f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0,
+
+    /* U+845B "葛" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x2, 0xd0, 0x0, 0xf4, 0x0, 0x0, 0x0, 0xb,
+    0x40, 0x3, 0xd0, 0x0, 0xf, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xf8, 0x0, 0x2, 0xd0, 0x0, 0xf4, 0x0,
+    0x0, 0x1, 0x5a, 0x95, 0x56, 0xe5, 0x40, 0x0,
+    0x1f, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x7c,
+    0x0, 0x0, 0x0, 0x7c, 0x0, 0x1, 0xf0, 0x0,
+    0x0, 0x1, 0xf0, 0x0, 0x7, 0xff, 0xff, 0xff,
+    0xff, 0xc0, 0x0, 0x1f, 0x55, 0x55, 0x55, 0x5f,
+    0x0, 0x0, 0x7c, 0x0, 0x0, 0x0, 0x7c, 0x0,
+    0x1, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x0, 0x2,
+    0xbe, 0xaa, 0xaa, 0xaa, 0x40, 0x0, 0x2, 0xf0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x2f, 0xff, 0xff,
+    0xff, 0xff, 0x80, 0x3, 0xff, 0xff, 0xff, 0xff,
+    0xfe, 0x0, 0xbf, 0x0, 0x3, 0x80, 0x0, 0xb8,
+    0x1f, 0xfc, 0x0, 0x3f, 0x40, 0x2, 0xe0, 0x38,
+    0xb4, 0xb, 0xff, 0xe0, 0xb, 0x40, 0x2, 0xd7,
+    0xfe, 0x7, 0xfc, 0x2d, 0x0, 0xb, 0x6f, 0x80,
+    0x1, 0xf4, 0xb4, 0x0, 0x2d, 0x10, 0x0, 0x0,
+    0x43, 0xd0, 0x0, 0xbf, 0xff, 0xff, 0xff, 0xf,
+    0x0, 0x2, 0xff, 0xff, 0xff, 0xf8, 0xbc, 0x0,
+    0x0, 0x0, 0x0, 0x1, 0xbf, 0xe0, 0x0, 0x0,
+    0x0, 0x0, 0x3, 0xfe, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x4, 0x0, 0x0,
+
+    /* U+845C "葜" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x2, 0xe0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0xb,
+    0x80, 0x3, 0xc0, 0x0, 0xf, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xfc, 0x3f, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xf0, 0x0, 0x2, 0xe0, 0x0, 0xf0, 0x0,
+    0x0, 0x0, 0x6f, 0x40, 0x3, 0xc0, 0x0, 0x0,
+    0x1, 0xe0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xff,
+    0xff, 0xdf, 0xff, 0xff, 0x80, 0x2a, 0xbf, 0xaa,
+    0x1b, 0xd5, 0x7d, 0x0, 0x0, 0x78, 0x0, 0xf,
+    0x0, 0xb4, 0x1, 0xaa, 0xfa, 0x90, 0x78, 0x3,
+    0xc0, 0xb, 0xff, 0xff, 0x81, 0xd0, 0xf, 0x0,
+    0x0, 0x1e, 0x0, 0xf, 0x0, 0x3c, 0x0, 0x0,
+    0xb8, 0x0, 0x7c, 0x0, 0xf0, 0xb, 0xff, 0xff,
+    0xf3, 0xd0, 0x5f, 0x80, 0x5, 0x5b, 0x95, 0x7e,
+    0x7, 0xfc, 0x0, 0x0, 0x1e, 0x0, 0x20, 0x5,
+    0x40, 0x0, 0x0, 0x0, 0xb, 0x80, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x2e, 0x0, 0x0, 0x0, 0x3f,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xc0, 0x0, 0x0, 0x2f,
+    0xf0, 0x0, 0x0, 0x0, 0x0, 0x7, 0xf7, 0xf4,
+    0x0, 0x0, 0x0, 0x2, 0xff, 0x2, 0xfe, 0x0,
+    0x0, 0x16, 0xff, 0xd0, 0x1, 0xff, 0xe4, 0xb,
+    0xff, 0xe0, 0x0, 0x0, 0x6f, 0xff, 0x8f, 0x90,
+    0x0, 0x0, 0x0, 0x6, 0xfd, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+8461 "葡" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0xf4, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x0,
@@ -123628,6 +130562,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x2e, 0x0, 0xf, 0x90, 0x0, 0x0,
     0x0, 0x10, 0x0, 0x0, 0x0,
 
+    /* U+846C "葬" */
+    0x0, 0x0, 0x10, 0x0, 0x14, 0x0, 0x0, 0x0,
+    0x3, 0xd0, 0x0, 0xf4, 0x0, 0x0, 0x0, 0xf,
+    0x40, 0x3, 0xd0, 0x0, 0x1f, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xf8, 0x0, 0x3, 0xd0, 0x0, 0xf4, 0x0,
+    0x0, 0x0, 0x5, 0x0, 0x1, 0x40, 0x0, 0x3,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xf, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xe0, 0x0, 0x2e, 0x0,
+    0xf, 0x40, 0x0, 0x0, 0x2, 0xf0, 0x0, 0x3d,
+    0x0, 0x7c, 0x0, 0x2f, 0xff, 0xfd, 0xf4, 0x7f,
+    0xf0, 0x7, 0xea, 0xaa, 0xf7, 0xff, 0xf9, 0x0,
+    0xbf, 0xd0, 0xf, 0x8f, 0xe4, 0x1, 0x83, 0x83,
+    0xe0, 0xf8, 0x3d, 0x0, 0x7, 0x40, 0x1, 0x2f,
+    0x80, 0xb8, 0x0, 0x3d, 0x0, 0x1b, 0xf0, 0x1,
+    0xff, 0xff, 0xf0, 0x1b, 0xfd, 0x0, 0x0, 0xaa,
+    0xa9, 0x2, 0xfe, 0x1, 0x40, 0x0, 0x50, 0x0,
+    0x2, 0x0, 0x1f, 0x0, 0x7, 0xc0, 0x0, 0x0,
+    0x0, 0xbc, 0x0, 0x1f, 0x0, 0x0, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xe2, 0xaa, 0xaf, 0xea,
+    0xab, 0xfa, 0xaa, 0x40, 0x0, 0x3d, 0x0, 0x7,
+    0xc0, 0x0, 0x0, 0x3, 0xf0, 0x0, 0x1f, 0x0,
+    0x0, 0x0, 0xbf, 0x40, 0x0, 0x7c, 0x0, 0x0,
+    0x2f, 0xf0, 0x0, 0x1, 0xf0, 0x0, 0x0, 0x7e,
+    0x0, 0x0, 0x7, 0xc0, 0x0, 0x0, 0x40, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+846D "葭" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0xf4, 0x0, 0x2d, 0x0, 0x0, 0x0, 0x0,
@@ -123655,6 +130616,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x3, 0xfd, 0x0, 0x6, 0xfc, 0x3, 0xc0, 0x2,
     0x80, 0x0, 0x0, 0x14,
 
+    /* U+8471 "葱" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x7c, 0x0, 0x3d, 0x0, 0x0, 0x0, 0x0,
+    0x7c, 0x0, 0x3d, 0x0, 0x0, 0x3f, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xf4, 0x3f, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xf4, 0x0, 0x0, 0x7c, 0x0, 0x3d,
+    0x0, 0x0, 0x0, 0xb, 0xbc, 0x0, 0x2d, 0x0,
+    0x0, 0x0, 0xf, 0x40, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0x80, 0x0,
+    0xbf, 0xff, 0xff, 0xff, 0xff, 0x80, 0x1, 0xf4,
+    0x7, 0xc0, 0x3c, 0xb, 0x80, 0x7, 0xd0, 0xf,
+    0x40, 0x78, 0xb, 0x40, 0x2f, 0x7f, 0xff, 0x0,
+    0xf0, 0xf, 0x40, 0xd, 0x2b, 0xff, 0xff, 0xf4,
+    0xf, 0x0, 0x0, 0x2, 0xf5, 0xbf, 0xff, 0x4f,
+    0x0, 0x0, 0xf, 0xc0, 0x1f, 0x6f, 0x4f, 0x0,
+    0x0, 0xbe, 0x0, 0x7d, 0x0, 0x2f, 0x0, 0xb,
+    0xf4, 0x2, 0xf4, 0x2f, 0xfe, 0x0, 0xf, 0x80,
+    0x3, 0xe0, 0x2f, 0xf8, 0x0, 0x0, 0x41, 0xf0,
+    0x78, 0x4, 0x1, 0x0, 0x2, 0xf1, 0xf0, 0x3e,
+    0x0, 0xf, 0x0, 0x3, 0xd1, 0xf0, 0xf, 0x80,
+    0xb, 0xc0, 0xb, 0xc1, 0xf0, 0x7, 0x87, 0x83,
+    0xd0, 0xf, 0x41, 0xf0, 0x1, 0x7, 0xc1, 0xf0,
+    0x2f, 0x0, 0xf4, 0x0, 0xf, 0x80, 0xf8, 0x7d,
+    0x0, 0xff, 0xff, 0xff, 0x40, 0x7c, 0x18, 0x0,
+    0x2f, 0xff, 0xfd, 0x0, 0x10, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+8473 "葳" */
     0x0, 0x0, 0x14, 0x0, 0x5, 0x0, 0x0, 0x0,
     0x0, 0xf, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x0,
@@ -123713,6 +130701,60 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x7, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+8476 "葶" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x2, 0xe0, 0x0, 0xf, 0x0, 0x0, 0x0, 0x2,
+    0xe0, 0x0, 0xf, 0x0, 0x0, 0xbf, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xfc, 0x0, 0x2, 0xe0, 0x64, 0xf,
+    0x0, 0x0, 0x0, 0x1, 0x90, 0x7c, 0xa, 0x0,
+    0x0, 0xa, 0xaa, 0xaa, 0xbe, 0xaa, 0xaa, 0x90,
+    0xf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f, 0xff,
+    0xff, 0xff, 0xf4, 0x0, 0x0, 0x3d, 0x55, 0x55,
+    0x55, 0xb4, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x0,
+    0xb4, 0x0, 0x0, 0x3f, 0xff, 0xff, 0xff, 0xf4,
+    0x0, 0x0, 0x15, 0x55, 0x55, 0x55, 0x50, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0xf, 0xaa,
+    0xaa, 0xaa, 0xaa, 0xab, 0xe0, 0xf, 0x0, 0x0,
+    0x0, 0x0, 0x1, 0xe0, 0xf, 0x6a, 0xaa, 0xaa,
+    0xaa, 0xa9, 0xe0, 0xf, 0xbf, 0xff, 0xff, 0xff,
+    0xfd, 0xe0, 0x0, 0x0, 0x0, 0x2e, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x2e, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x3e, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x1a, 0xfd, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xf, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5,
+    0x0, 0x0, 0x0, 0x0,
+
+    /* U+8478 "葸" */
+    0x0, 0x0, 0x50, 0x0, 0x14, 0x0, 0x0, 0x0,
+    0x0, 0xf4, 0x0, 0x3d, 0x0, 0x0, 0x0, 0x0,
+    0xf4, 0x0, 0x3d, 0x0, 0x0, 0x3f, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xf8, 0x3f, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xf8, 0x0, 0x0, 0xf4, 0x0, 0x3d,
+    0x0, 0x0, 0x0, 0x0, 0xb4, 0x0, 0x2d, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0,
+    0xfe, 0xaa, 0xfe, 0xaa, 0xbe, 0x0, 0x0, 0xf4,
+    0x0, 0x7c, 0x0, 0x2e, 0x0, 0x0, 0xf4, 0x0,
+    0x7c, 0x0, 0x2e, 0x0, 0x0, 0xff, 0xff, 0xff,
+    0xff, 0xfe, 0x0, 0x0, 0xfe, 0xaa, 0xfe, 0xaa,
+    0xbe, 0x0, 0x0, 0xf4, 0x0, 0x7c, 0x0, 0x2e,
+    0x0, 0x0, 0xf4, 0x0, 0x7c, 0x0, 0x2e, 0x0,
+    0x0, 0xfe, 0xaa, 0xfe, 0xaa, 0xbe, 0x0, 0x0,
+    0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0,
+    0x0, 0x34, 0x0, 0x0, 0x0, 0x0, 0x40, 0xe0,
+    0x7d, 0x0, 0xa, 0x0, 0x2, 0xe0, 0xf0, 0x2f,
+    0x0, 0xf, 0x40, 0x3, 0xc0, 0xf0, 0xb, 0xc0,
+    0x7, 0xc0, 0xb, 0x80, 0xf0, 0x3, 0x87, 0x43,
+    0xf0, 0x1f, 0x0, 0xf0, 0x0, 0xb, 0x80, 0xf4,
+    0x3e, 0x0, 0xf0, 0x0, 0xf, 0x40, 0xbc, 0x7c,
+    0x0, 0xff, 0xaa, 0xff, 0x0, 0x34, 0x4, 0x0,
+    0x7f, 0xff, 0xfd, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x14, 0x0, 0x0, 0x0,
+
     /* U+847A "葺" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0xf4, 0x0, 0x2d, 0x0, 0x0, 0x0, 0x0,
@@ -123794,6 +130836,87 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x90, 0x2, 0xf0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+8488 "蒈" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x3, 0xc0, 0x0, 0xf4, 0x0, 0x0, 0x0, 0xf,
+    0x0, 0x3, 0xd0, 0x0, 0xf, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xfc, 0x0, 0x3, 0xc0, 0x0, 0xf4, 0x0,
+    0x0, 0x9, 0xf, 0x0, 0x63, 0xd0, 0x0, 0x0,
+    0x74, 0x0, 0x2, 0xd0, 0x0, 0x90, 0x1, 0xe0,
+    0x0, 0xb, 0x40, 0xbf, 0xc0, 0x7, 0xff, 0xfe,
+    0x2e, 0xbf, 0xe4, 0x0, 0x1f, 0xaa, 0xa4, 0xbf,
+    0x90, 0x5, 0x0, 0x74, 0x0, 0x2, 0xd0, 0x0,
+    0x3c, 0x1, 0xd0, 0x1a, 0xcb, 0x40, 0x0, 0xf0,
+    0xb, 0xef, 0xff, 0x1f, 0xaa, 0xaf, 0x80, 0x3f,
+    0xfe, 0x50, 0x2f, 0xff, 0xfc, 0x0, 0xe4, 0x0,
+    0xb8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xd0,
+    0x0, 0x0, 0x0, 0x2, 0xff, 0xff, 0xff, 0xff,
+    0xf0, 0x0, 0xb, 0xff, 0xff, 0xff, 0xff, 0xd0,
+    0x0, 0x2d, 0x0, 0x0, 0x0, 0xb, 0x40, 0x0,
+    0xb4, 0x0, 0x0, 0x0, 0x2d, 0x0, 0x2, 0xff,
+    0xff, 0xff, 0xff, 0xf4, 0x0, 0xb, 0xff, 0xff,
+    0xff, 0xff, 0xd0, 0x0, 0x2d, 0x0, 0x0, 0x0,
+    0xb, 0x40, 0x0, 0xb4, 0x0, 0x0, 0x0, 0x2d,
+    0x0, 0x2, 0xff, 0xff, 0xff, 0xff, 0xf4, 0x0,
+    0xb, 0xea, 0xaa, 0xaa, 0xab, 0xd0, 0x0, 0x2d,
+    0x0, 0x0, 0x0, 0xb, 0x40, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
+    /* U+8489 "蒉" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xb, 0x80, 0x0, 0x7c, 0x0, 0x0, 0x0, 0x2e,
+    0x0, 0x1, 0xf0, 0x0, 0xf, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xfd, 0x2a, 0xab, 0xfa, 0xaa, 0xbf,
+    0xaa, 0xa0, 0x0, 0xb, 0x80, 0x40, 0x7c, 0x0,
+    0x0, 0x0, 0x15, 0xb, 0x80, 0x50, 0x0, 0x0,
+    0x2a, 0xaa, 0xbf, 0xaa, 0xaa, 0x0, 0x0, 0xff,
+    0xff, 0xff, 0xff, 0xfd, 0x0, 0x3, 0xc0, 0x2,
+    0xe0, 0x0, 0xf4, 0x0, 0xf, 0x0, 0xb, 0x80,
+    0x3, 0xd0, 0x0, 0x3f, 0xff, 0xff, 0xff, 0xff,
+    0x40, 0x0, 0xaa, 0xaa, 0xfe, 0xaa, 0xa8, 0x0,
+    0x0, 0x0, 0x2, 0xe0, 0x0, 0x0, 0xa, 0xaa,
+    0xaa, 0xaf, 0xea, 0xaa, 0xaa, 0xaf, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x7, 0xff, 0xff, 0xff, 0xff, 0x80,
+    0x0, 0x1f, 0xaa, 0xaa, 0xaa, 0xbe, 0x0, 0x0,
+    0x78, 0x0, 0x14, 0x0, 0xb8, 0x0, 0x1, 0xe0,
+    0x2, 0xf0, 0x2, 0xe0, 0x0, 0x7, 0x80, 0xf,
+    0x80, 0xb, 0x80, 0x0, 0x1e, 0x0, 0xbd, 0x90,
+    0x1e, 0x0, 0x0, 0x0, 0x1f, 0xdb, 0xfe, 0x40,
+    0x0, 0x0, 0x6f, 0xfd, 0x6, 0xff, 0xe4, 0x1,
+    0xff, 0xff, 0x40, 0x0, 0x6f, 0xfd, 0x3, 0xfe,
+    0x40, 0x0, 0x0, 0x2, 0xf4, 0x4, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
+    /* U+848B "蒋" */
+    0x0, 0x0, 0x14, 0x0, 0x5, 0x0, 0x0, 0x0,
+    0x0, 0x2d, 0x0, 0xf, 0x40, 0x0, 0x0, 0x0,
+    0x2d, 0x0, 0xf, 0x40, 0x0, 0xf, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xfd, 0xf, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xfe, 0x0, 0x0, 0x3e, 0x0, 0xf,
+    0x40, 0x0, 0x0, 0x0, 0x2d, 0x1, 0x8f, 0x40,
+    0x0, 0x0, 0x2, 0x80, 0x3, 0xd0, 0x0, 0x0,
+    0x0, 0x3, 0xc0, 0xf, 0xea, 0xaa, 0xa0, 0xf,
+    0x3, 0xc0, 0x3f, 0xff, 0xff, 0xf0, 0xf, 0x3,
+    0xc0, 0xfc, 0x0, 0x7, 0xf0, 0xb, 0x83, 0xc7,
+    0xfe, 0x0, 0x1f, 0xc0, 0x3, 0xc3, 0xdf, 0x9f,
+    0xc0, 0xbe, 0x0, 0x3, 0xd3, 0xcd, 0x2, 0xcb,
+    0xf4, 0x0, 0x1, 0xe3, 0xc0, 0x1, 0xff, 0x80,
+    0x0, 0x0, 0xe3, 0xc0, 0x6f, 0xf8, 0x2e, 0x0,
+    0x0, 0x43, 0xcb, 0xfe, 0x40, 0x2e, 0x0, 0x0,
+    0xf, 0xc7, 0x90, 0x0, 0x2e, 0x0, 0x0, 0xbf,
+    0xdf, 0xff, 0xff, 0xff, 0xff, 0x7, 0xff, 0xdf,
+    0xff, 0xff, 0xff, 0xff, 0x2f, 0xd3, 0xc0, 0x78,
+    0x0, 0x2e, 0x0, 0x7e, 0x3, 0xc0, 0x7e, 0x0,
+    0x2e, 0x0, 0x10, 0x3, 0xc0, 0xf, 0xc0, 0x2e,
+    0x0, 0x0, 0x3, 0xc0, 0x3, 0xd0, 0x2e, 0x0,
+    0x0, 0x3, 0xc0, 0x0, 0x40, 0x3e, 0x0, 0x0,
+    0x3, 0xc0, 0x0, 0x2f, 0xfd, 0x0, 0x0, 0x3,
+    0xc0, 0x0, 0x1f, 0xf4, 0x0, 0x0, 0x3, 0xc0,
+    0x0, 0x4, 0x0, 0x0,
+
     /* U+848C "蒌" */
     0x0, 0x0, 0x50, 0x0, 0x10, 0x0, 0x0, 0x0,
     0x3, 0xd0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0xf,
@@ -123849,6 +130972,62 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x24, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+8497 "蒗" */
+    0x0, 0x0, 0x50, 0x0, 0x4, 0x0, 0x0, 0x0,
+    0x0, 0xf0, 0x0, 0x1e, 0x0, 0x0, 0x0, 0x0,
+    0xf0, 0x0, 0x1e, 0x0, 0x0, 0x3f, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xf8, 0x3f, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xf8, 0x0, 0x0, 0xf0, 0x0, 0x1e,
+    0x0, 0x0, 0x0, 0x0, 0xf0, 0x7, 0x9e, 0x0,
+    0x0, 0x3, 0x40, 0x0, 0x3, 0xc0, 0x0, 0x0,
+    0x7, 0xe0, 0x2a, 0xab, 0xfa, 0xaa, 0x0, 0x1,
+    0xfd, 0x3f, 0xff, 0xff, 0xff, 0x0, 0x0, 0x2f,
+    0x3d, 0x0, 0x0, 0xf, 0x0, 0x0, 0x6, 0x3d,
+    0x0, 0x0, 0xf, 0x0, 0x24, 0x0, 0x3e, 0xaa,
+    0xaa, 0xaf, 0x0, 0x3f, 0x0, 0x3f, 0xff, 0xff,
+    0xff, 0x0, 0x1f, 0xe0, 0x3d, 0x0, 0x0, 0xf,
+    0x0, 0x2, 0xf8, 0x3d, 0x0, 0x0, 0xf, 0x0,
+    0x0, 0x70, 0x3d, 0x0, 0x0, 0xf, 0x0, 0x0,
+    0x0, 0x3f, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0,
+    0x3f, 0xaf, 0xea, 0xaa, 0x0, 0x0, 0x34, 0x3d,
+    0xb, 0x80, 0x2, 0xc0, 0x0, 0x7c, 0x3d, 0x3,
+    0xd0, 0x2f, 0xc0, 0x0, 0xf8, 0x3d, 0x1, 0xf6,
+    0xfd, 0x0, 0x0, 0xf0, 0x3d, 0x0, 0xbf, 0xe0,
+    0x0, 0x2, 0xe0, 0x3d, 0x0, 0x6f, 0xd0, 0x0,
+    0x3, 0xd0, 0x3d, 0x2f, 0x87, 0xfd, 0x0, 0xb,
+    0xc0, 0x3f, 0xff, 0x40, 0xbf, 0xf8, 0xf, 0x40,
+    0xbf, 0xe0, 0x0, 0x6, 0xfc, 0x6, 0x0, 0x39,
+    0x0, 0x0, 0x0, 0x14, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
+    /* U+8499 "蒙" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xb4, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x0,
+    0xb4, 0x0, 0x3c, 0x0, 0x0, 0x2f, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xf0, 0x2f, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xf0, 0x0, 0x0, 0xb4, 0x0, 0x3c,
+    0x0, 0x0, 0x0, 0x0, 0x60, 0x0, 0x28, 0x0,
+    0x0, 0xf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd0,
+    0xf, 0xaa, 0xaa, 0xaa, 0xaa, 0xab, 0xd0, 0xf,
+    0x0, 0x0, 0x0, 0x0, 0x2, 0xd0, 0xf, 0x6,
+    0xaa, 0xaa, 0xaa, 0x82, 0xd0, 0xf, 0xb, 0xff,
+    0xff, 0xff, 0xc2, 0xd0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x1a, 0xaa, 0xaa, 0xaa, 0xaa,
+    0xaa, 0xa0, 0x2f, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xf0, 0x0, 0x0, 0x7, 0xf8, 0x0, 0x5, 0x0,
+    0x0, 0x1, 0xbf, 0xf0, 0x0, 0x7f, 0x0, 0x1,
+    0xbf, 0xe0, 0xf8, 0x7, 0xfd, 0x0, 0x1f, 0xf9,
+    0x7, 0xfd, 0xbf, 0xd0, 0x0, 0x9, 0x0, 0xbf,
+    0x2f, 0xfe, 0x0, 0x0, 0x0, 0x1b, 0xe4, 0x3f,
+    0x5f, 0x0, 0x0, 0x6, 0xfe, 0x2, 0xff, 0xb,
+    0xd0, 0x0, 0x1f, 0xd0, 0x2f, 0x8f, 0x42, 0xf4,
+    0x0, 0x4, 0x2, 0xfd, 0xf, 0x40, 0xbf, 0x40,
+    0x0, 0x7f, 0x90, 0xf, 0x40, 0x1f, 0xf4, 0x2f,
+    0xf8, 0x0, 0x2f, 0x0, 0x2, 0xf8, 0xbe, 0x40,
+    0x1f, 0xfe, 0x0, 0x0, 0x20, 0x10, 0x0, 0xf,
+    0xf4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+849C "蒜" */
     0x0, 0x0, 0x18, 0x0, 0xa, 0x0, 0x0, 0x0,
     0x0, 0xf, 0x40, 0x3, 0xc0, 0x0, 0x0, 0x0,
@@ -123877,31 +131056,112 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x3, 0xf4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+849F "蒟" */
+    /* U+84A1 "蒡" */
+    0x0, 0x0, 0x40, 0x0, 0x4, 0x0, 0x0, 0x0,
+    0xb, 0x40, 0x0, 0xb8, 0x0, 0x0, 0x0, 0x2d,
+    0x0, 0x2, 0xe0, 0x0, 0x1f, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xfc, 0x7f, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xf0, 0x0, 0xb, 0x40, 0x40, 0xb8, 0x0,
+    0x0, 0x0, 0x2d, 0xf, 0x42, 0xe0, 0x0, 0x0,
+    0x0, 0x0, 0x2e, 0x0, 0x0, 0x0, 0x1f, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xc0, 0x7f, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0x0, 0x0, 0x2e, 0x0, 0x2,
+    0xe0, 0x0, 0x0, 0x0, 0x7c, 0x0, 0xf, 0x40,
+    0x0, 0x0, 0x1, 0xf0, 0x0, 0x3c, 0x0, 0x0,
+    0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0xfa,
+    0xaa, 0xaa, 0xaa, 0xaa, 0xbc, 0x3, 0xc0, 0x0,
+    0x2d, 0x0, 0x1, 0xf0, 0xa, 0x0, 0x0, 0xbc,
+    0x0, 0x2, 0x40, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xc3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0x0, 0x0, 0xb8, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x3, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf,
+    0xff, 0xff, 0xff, 0xc0, 0x0, 0x0, 0xbe, 0xaa,
+    0xaa, 0xbf, 0x0, 0x0, 0x7, 0xd0, 0x0, 0x0,
+    0xb8, 0x0, 0x0, 0xbe, 0x0, 0x0, 0x2, 0xe0,
+    0x0, 0x2f, 0xe0, 0x0, 0x0, 0x5f, 0x40, 0xb,
+    0xfd, 0x0, 0x0, 0x3f, 0xfc, 0x0, 0x1f, 0x40,
+    0x0, 0x0, 0xaa, 0x40, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
+    /* U+84AF "蒯" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x2, 0xe0, 0x0, 0xb4, 0x0, 0x0, 0x0, 0xb,
-    0x80, 0x2, 0xd0, 0x0, 0x0, 0x0, 0x2e, 0x0,
-    0xb, 0x40, 0x0, 0x7f, 0xff, 0xff, 0xff, 0xff,
-    0xff, 0xfc, 0xaa, 0xab, 0xfa, 0xaa, 0xfe, 0xaa,
-    0xa0, 0x0, 0xb, 0x80, 0x2, 0xd0, 0x0, 0x0,
-    0x3c, 0x2e, 0x2, 0x4b, 0x40, 0x0, 0x0, 0xf0,
-    0x0, 0x1f, 0x0, 0x0, 0x0, 0x1, 0xe0, 0x0,
-    0xf8, 0x0, 0x0, 0x0, 0x3, 0xc0, 0x7, 0xff,
-    0xff, 0xfc, 0xf, 0xff, 0xff, 0x3f, 0xff, 0xff,
-    0xf0, 0x3f, 0xff, 0xfe, 0xf0, 0x0, 0x3, 0xc0,
-    0x0, 0x0, 0xf, 0x0, 0x0, 0xf, 0x0, 0xb0,
-    0x1d, 0xba, 0xaa, 0xa4, 0x3c, 0x2, 0xc0, 0xb4,
-    0x4f, 0xff, 0xe0, 0xf0, 0xb, 0x42, 0xc0, 0x3c,
-    0x7, 0x83, 0xc0, 0x1e, 0xf, 0x0, 0xf0, 0x1e,
-    0xf, 0x0, 0x3c, 0x3c, 0x3, 0xc0, 0x78, 0x7c,
-    0x0, 0xf1, 0xe0, 0xf, 0x1, 0xe1, 0xf0, 0x3,
-    0xcb, 0x40, 0x3c, 0x7, 0x87, 0xc0, 0xb, 0x3c,
-    0x0, 0xff, 0xfe, 0x1f, 0x0, 0x0, 0xf0, 0x3,
-    0xff, 0xf4, 0x7c, 0x0, 0x3, 0xdb, 0x0, 0x0,
-    0x2, 0xe0, 0x16, 0xbf, 0xfc, 0x0, 0x0, 0xf,
-    0x82, 0xff, 0xfe, 0x40, 0x0, 0x6b, 0xfd, 0x7,
-    0xe4, 0x0, 0x0, 0x2, 0xff, 0xd0, 0x0, 0x0,
-    0x0, 0x0, 0x1, 0x50, 0x0,
+    0x2d, 0x1, 0xe0, 0x0, 0x0, 0xf0, 0x0, 0xb4,
+    0x7, 0x80, 0x0, 0x3, 0xc2, 0xab, 0xea, 0xaf,
+    0xaa, 0x14, 0xf, 0x1f, 0xff, 0xff, 0xff, 0xfc,
+    0xf0, 0x3c, 0x15, 0x6d, 0x56, 0xe5, 0x43, 0xc0,
+    0xf0, 0x0, 0xb4, 0x7, 0x80, 0xf, 0x3, 0xc0,
+    0x0, 0x0, 0x0, 0x0, 0x3c, 0xf, 0x3, 0xff,
+    0xd3, 0xff, 0xf0, 0xf0, 0x3c, 0xf, 0xff, 0x4f,
+    0xff, 0xc3, 0xc0, 0xf0, 0x3c, 0x1d, 0x3c, 0xf,
+    0xf, 0x3, 0xc0, 0xf0, 0x74, 0xf0, 0x3c, 0x3c,
+    0xf, 0x3, 0xc1, 0xd3, 0xc0, 0xf0, 0xf0, 0x3c,
+    0xf, 0xaf, 0x4f, 0xab, 0xc3, 0xc0, 0xf0, 0x3f,
+    0xfd, 0x3f, 0xff, 0xf, 0x3, 0xc0, 0xf0, 0x74,
+    0xf0, 0x3c, 0x3c, 0xf, 0x3, 0xc1, 0xd3, 0xc0,
+    0xf0, 0xf0, 0x3c, 0xf, 0x7, 0x4f, 0x3, 0xc3,
+    0xc0, 0xf0, 0x3e, 0xad, 0x3e, 0xaf, 0xf, 0x3,
+    0xc0, 0xff, 0xf4, 0xff, 0xfc, 0x3c, 0xf, 0x3,
+    0xc1, 0xd3, 0xc1, 0xf0, 0xf0, 0x3c, 0x1e, 0x7,
+    0x4f, 0x3, 0xc0, 0x0, 0xf0, 0x78, 0x1d, 0x38,
+    0xf, 0x0, 0x3, 0xc3, 0xd0, 0x75, 0xd0, 0x3c,
+    0x0, 0xf, 0xf, 0x1, 0xdb, 0x0, 0xe0, 0x0,
+    0x3c, 0x78, 0x3f, 0x7c, 0x2f, 0x80, 0x17, 0xf3,
+    0xc0, 0xfa, 0xd0, 0xfc, 0x0, 0xff, 0x46, 0x0,
+    0x2, 0x0, 0x0, 0x2, 0x50,
+
+    /* U+84B2 "蒲" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xb8, 0x0, 0x2e, 0x0, 0x0, 0x0, 0x0,
+    0xb8, 0x0, 0x2e, 0x0, 0x0, 0x2f, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xfc, 0x3f, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xfc, 0x0, 0x0, 0xb8, 0x0, 0x2e,
+    0x0, 0x0, 0x0, 0x0, 0x78, 0x0, 0x19, 0x38,
+    0x0, 0xf, 0x40, 0x0, 0x0, 0xe0, 0x2e, 0x0,
+    0xf, 0xe0, 0x0, 0x0, 0xf0, 0xf, 0x40, 0x2,
+    0xf9, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x7d,
+    0xaa, 0xab, 0xfa, 0xaa, 0xa8, 0x0, 0x18, 0x0,
+    0x0, 0xf0, 0x0, 0x0, 0x24, 0x0, 0x0, 0x1,
+    0xf0, 0x0, 0x0, 0x7e, 0x0, 0x7f, 0xff, 0xff,
+    0xff, 0xc0, 0x1f, 0xc0, 0x7e, 0xaa, 0xfa, 0xab,
+    0xc0, 0x3, 0xf0, 0x78, 0x0, 0xf0, 0x3, 0xc0,
+    0x0, 0xb0, 0x78, 0x1, 0xf0, 0x3, 0xc0, 0x0,
+    0x10, 0x7f, 0xff, 0xff, 0xff, 0xc0, 0x0, 0x0,
+    0x7e, 0xab, 0xfa, 0xaf, 0xc0, 0x0, 0xf0, 0x78,
+    0x0, 0xf0, 0x3, 0xc0, 0x0, 0xf0, 0x78, 0x0,
+    0xf0, 0x3, 0xc0, 0x2, 0xf0, 0x7f, 0xff, 0xff,
+    0xff, 0xc0, 0x3, 0xd0, 0x7f, 0xff, 0xff, 0xff,
+    0xc0, 0x3, 0xc0, 0x78, 0x0, 0xf0, 0x3, 0xc0,
+    0xb, 0x80, 0x78, 0x0, 0xf0, 0x3, 0xc0, 0xf,
+    0x40, 0x78, 0x0, 0xf0, 0x6f, 0xc0, 0x1f, 0x0,
+    0x78, 0x0, 0xf0, 0xff, 0x40, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
+    /* U+84B4 "蒴" */
+    0x0, 0x0, 0x50, 0x0, 0x14, 0x0, 0x0, 0x0,
+    0x3, 0xc0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0xf,
+    0x0, 0x3, 0xc0, 0x0, 0xf, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xfd, 0x3f, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xf4, 0x0, 0x3, 0xc0, 0x0, 0xf4, 0x0,
+    0x0, 0x4, 0xf, 0x0, 0x3, 0xc0, 0x0, 0x0,
+    0xf0, 0x15, 0xd0, 0x1, 0x0, 0x0, 0x2, 0xe0,
+    0xf, 0x0, 0x55, 0x55, 0x40, 0x3, 0xc0, 0xb8,
+    0x7, 0xff, 0xfe, 0x0, 0x7, 0x3, 0xc0, 0x1f,
+    0xaa, 0xf8, 0xf, 0xff, 0xff, 0xfd, 0x74, 0x0,
+    0xe0, 0x3f, 0xff, 0xff, 0xf5, 0xd0, 0x3, 0x80,
+    0x0, 0x1e, 0x0, 0x7, 0x40, 0x1e, 0x0, 0x60,
+    0x78, 0x28, 0x1f, 0xff, 0xf8, 0x3, 0xc1, 0xe0,
+    0xf0, 0x7f, 0xff, 0xe0, 0xf, 0x7, 0x83, 0xc1,
+    0xd0, 0x3, 0x80, 0x3c, 0x1e, 0xf, 0x7, 0x40,
+    0xe, 0x0, 0xf0, 0x78, 0x3c, 0x2e, 0x0, 0x78,
+    0x3, 0xff, 0xff, 0xf0, 0xbf, 0xff, 0xe0, 0xb,
+    0xff, 0xff, 0xc2, 0xff, 0xff, 0x80, 0x0, 0x2d,
+    0x0, 0xf, 0x0, 0xe, 0x0, 0x0, 0xf0, 0x0,
+    0x3c, 0x0, 0x38, 0x0, 0x7, 0xc0, 0x2, 0xe0,
+    0x0, 0xe0, 0x0, 0x7c, 0x0, 0x1f, 0x0, 0x7,
+    0x80, 0x7, 0xd0, 0x1, 0xf8, 0x1, 0xbe, 0x0,
+    0xfd, 0x0, 0x1f, 0x80, 0x1f, 0xf0, 0x3, 0xd0,
+    0x0, 0x38, 0x0, 0x29, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
 
     /* U+84B8 "蒸" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -123932,6 +131192,61 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x60, 0x1, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+84B9 "蒹" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x3c, 0x0, 0x78, 0x0, 0x0, 0x0, 0x0,
+    0x3c, 0x0, 0xb8, 0x0, 0x0, 0x3f, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xf8, 0x3f, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xf4, 0x0, 0x2, 0x3c, 0x0, 0x79,
+    0x40, 0x0, 0x0, 0xf, 0xd4, 0x0, 0x17, 0xd0,
+    0x0, 0x0, 0x3, 0xd0, 0x0, 0xf, 0xc0, 0x0,
+    0x2f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x1f,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x0, 0x0,
+    0x2d, 0x2, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x2d,
+    0x2, 0xd0, 0x0, 0x0, 0x3, 0xff, 0xff, 0xff,
+    0xff, 0xfe, 0x0, 0x2, 0xaa, 0xbf, 0xab, 0xfa,
+    0xbe, 0x0, 0x0, 0x0, 0x2d, 0x2, 0xd0, 0x1e,
+    0x0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8,
+    0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0,
+    0x0, 0x2d, 0x2, 0xd0, 0x1e, 0x0, 0x0, 0x0,
+    0x2d, 0x2, 0xd0, 0x1e, 0x0, 0x7, 0xff, 0xff,
+    0xff, 0xff, 0xfe, 0x0, 0x7, 0xff, 0xff, 0xff,
+    0xff, 0xfe, 0x0, 0x0, 0x1, 0xfd, 0x2, 0xfd,
+    0x0, 0x0, 0x0, 0xb, 0xfd, 0x2, 0xff, 0x80,
+    0x0, 0x0, 0x7f, 0x6d, 0x2, 0xd7, 0xf8, 0x0,
+    0x7, 0xf8, 0x2d, 0x2, 0xd0, 0xbf, 0x90, 0x7f,
+    0xd0, 0x2d, 0x2, 0xd0, 0xb, 0xfc, 0x7d, 0x0,
+    0x2d, 0x2, 0xd0, 0x0, 0xbc, 0x10, 0x0, 0x2d,
+    0x2, 0xd0, 0x0, 0x0,
+
+    /* U+84BA "蒺" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x3c, 0x0, 0xf, 0x0, 0x0, 0x0, 0x0,
+    0x3c, 0x0, 0xf, 0x0, 0x0, 0x1f, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xf8, 0x1f, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xfc, 0x0, 0x0, 0x3c, 0x0, 0xf,
+    0x0, 0x0, 0x0, 0x0, 0x3c, 0xf, 0x8f, 0x0,
+    0x0, 0x0, 0x0, 0x14, 0x7, 0xc5, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x7, 0xc0, 0x0, 0x0, 0x18,
+    0x2f, 0xff, 0xff, 0xff, 0xff, 0xf4, 0x2d, 0x2f,
+    0xff, 0xff, 0xff, 0xff, 0xf4, 0xf, 0x2e, 0x0,
+    0xd0, 0x0, 0x0, 0x0, 0xb, 0x6e, 0x2, 0xe0,
+    0x0, 0x0, 0x0, 0x3, 0xee, 0x3, 0xea, 0xaa,
+    0xaa, 0x80, 0x2, 0xae, 0xb, 0xff, 0xff, 0xff,
+    0xc0, 0x0, 0x2e, 0x1f, 0x0, 0xf4, 0x0, 0x0,
+    0x0, 0xbe, 0x3d, 0x0, 0xf0, 0x0, 0x0, 0x7,
+    0xfe, 0x3c, 0x0, 0xf0, 0x0, 0x0, 0x3f, 0xfe,
+    0x0, 0x0, 0xf0, 0x0, 0x0, 0xbe, 0x2d, 0xff,
+    0xff, 0xff, 0xff, 0xf0, 0x20, 0x3d, 0xbf, 0xff,
+    0xff, 0xff, 0xe0, 0x0, 0x3c, 0x0, 0x3, 0xf8,
+    0x0, 0x0, 0x0, 0xb8, 0x0, 0x7, 0xfe, 0x0,
+    0x0, 0x0, 0xf4, 0x0, 0x2f, 0x4f, 0x80, 0x0,
+    0x2, 0xf0, 0x1, 0xfd, 0x7, 0xf4, 0x0, 0xb,
+    0xd0, 0x2f, 0xf4, 0x0, 0xff, 0x90, 0x1f, 0x83,
+    0xff, 0x40, 0x0, 0x1f, 0xfc, 0x2e, 0x3, 0xe4,
+    0x0, 0x0, 0x1, 0xfc, 0x4, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+84BD "蒽" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x3c, 0x0, 0xf, 0x0, 0x0, 0x0, 0x0,
@@ -123959,6 +131274,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x1f, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+84BF "蒿" */
+    0x0, 0x0, 0x40, 0x0, 0x4, 0x0, 0x0, 0x0,
+    0x7, 0xc0, 0x0, 0x7c, 0x0, 0x0, 0x0, 0x1f,
+    0x0, 0x1, 0xf0, 0x0, 0x1f, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xf8, 0x0, 0x7, 0xc0, 0x50, 0x7c, 0x0,
+    0x0, 0x0, 0xa, 0xb, 0xc0, 0xa0, 0x0, 0x0,
+    0x0, 0x0, 0xf, 0x0, 0x0, 0x0, 0x2f, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xf0, 0x6a, 0xaa, 0xaa,
+    0xaa, 0xaa, 0xaa, 0x80, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0xf, 0xff, 0xff, 0xff, 0xfd,
+    0x0, 0x0, 0x3e, 0x55, 0x55, 0x55, 0xf4, 0x0,
+    0x0, 0xf4, 0x0, 0x0, 0x3, 0xd0, 0x0, 0x3,
+    0xff, 0xff, 0xff, 0xff, 0x40, 0x0, 0x6, 0xaa,
+    0xaa, 0xaa, 0xa8, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0xf, 0xff, 0xff, 0xff, 0xff,
+    0xfe, 0x0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfc,
+    0x0, 0xf0, 0x0, 0x0, 0x0, 0x1, 0xf0, 0x3,
+    0xc0, 0x6a, 0xaa, 0xa8, 0x7, 0xc0, 0xf, 0x3,
+    0xff, 0xff, 0xf4, 0x1f, 0x0, 0x3c, 0xf, 0x40,
+    0x3, 0xd0, 0x7c, 0x0, 0xf0, 0x3d, 0x0, 0xf,
+    0x41, 0xf0, 0x3, 0xc0, 0xff, 0xff, 0xfd, 0x7,
+    0xc0, 0xf, 0x1, 0x55, 0x55, 0x50, 0x7e, 0x0,
+    0x3c, 0x0, 0x0, 0x0, 0xf, 0xf4, 0x0, 0xf0,
+    0x0, 0x0, 0x0, 0x3e, 0x40, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+84C1 "蓁" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0xf0, 0x0, 0x1e, 0x0, 0x0, 0x0, 0x0,
@@ -123986,6 +131328,60 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x7c, 0x0, 0x1b, 0xc0, 0x9, 0x0, 0x0,
     0x7c, 0x0, 0x0, 0x40,
 
+    /* U+84C4 "蓄" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x3, 0xc0, 0x0, 0x7c, 0x0, 0x0, 0x0, 0xf,
+    0x0, 0x1, 0xf0, 0x0, 0x1f, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0x2a, 0xaa, 0xfa, 0xaa, 0xaf,
+    0xaa, 0xa4, 0x0, 0x3, 0xc0, 0xa0, 0x7c, 0x0,
+    0x0, 0x0, 0x5, 0x3, 0xc0, 0x50, 0x0, 0xb,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x1a, 0xaa,
+    0xaf, 0xea, 0xaa, 0xea, 0xa0, 0x0, 0x2, 0xf8,
+    0x0, 0x1f, 0x80, 0x0, 0x1, 0xfe, 0x0, 0x7,
+    0xf8, 0x0, 0x0, 0xff, 0xff, 0xff, 0xfe, 0x40,
+    0x0, 0x2, 0xaa, 0x9b, 0xff, 0x83, 0xd0, 0x0,
+    0x0, 0x1, 0xbf, 0x90, 0xb, 0xe0, 0x0, 0x1,
+    0xbf, 0xd0, 0x0, 0xb, 0xf0, 0x1, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xf0, 0x3, 0xff, 0xaa, 0xaa,
+    0x95, 0x56, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x1, 0x0, 0xf, 0xff, 0xff, 0xff, 0xff, 0xe0,
+    0x0, 0x3e, 0xaa, 0xbf, 0xaa, 0xaf, 0x80, 0x0,
+    0xf0, 0x0, 0x7c, 0x0, 0x1e, 0x0, 0x3, 0xd5,
+    0x56, 0xf5, 0x55, 0xb8, 0x0, 0xf, 0xff, 0xff,
+    0xff, 0xff, 0xe0, 0x0, 0x3c, 0x0, 0x1f, 0x0,
+    0x7, 0x80, 0x0, 0xf0, 0x0, 0x7c, 0x0, 0x1e,
+    0x0, 0x3, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x0,
+    0xf, 0xaa, 0xaa, 0xaa, 0xab, 0xe0, 0x0, 0x3c,
+    0x0, 0x0, 0x0, 0x7, 0x80,
+
+    /* U+84C9 "蓉" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x1f, 0x0, 0x1, 0xf0, 0x0, 0x0, 0x0,
+    0x7, 0xc0, 0x0, 0x7c, 0x0, 0x0, 0x3f, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xf4, 0xf, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xfd, 0x0, 0x0, 0x1f, 0x0,
+    0x1, 0xf0, 0x0, 0x0, 0x0, 0x7, 0xc2, 0xe0,
+    0x7c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7c, 0x0,
+    0x0, 0x0, 0x3, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xf4, 0x0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd,
+    0x0, 0x3d, 0x0, 0x0, 0x0, 0x0, 0xf, 0x40,
+    0xf, 0x40, 0x2c, 0x0, 0xf4, 0x3, 0xd0, 0x2,
+    0x80, 0x7f, 0x0, 0x2f, 0xe0, 0xa0, 0x0, 0x1,
+    0xfe, 0x0, 0x0, 0xbf, 0x80, 0x0, 0x7, 0xfd,
+    0x3, 0xf4, 0x7, 0xfd, 0x0, 0xb, 0xf4, 0x3,
+    0xff, 0x80, 0x1f, 0xd0, 0x1, 0xd0, 0xb, 0xe0,
+    0xfd, 0x0, 0x70, 0x0, 0x0, 0x1f, 0xd0, 0xb,
+    0xe0, 0x0, 0x0, 0x0, 0xbf, 0x80, 0x0, 0x7f,
+    0x90, 0x0, 0x7, 0xff, 0x40, 0x0, 0x2, 0xff,
+    0x80, 0x2f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0x47, 0x93, 0xff, 0xff, 0xff, 0xff, 0x4b, 0xc0,
+    0x0, 0xf4, 0x0, 0x0, 0x3, 0xd0, 0x0, 0x0,
+    0x3d, 0x0, 0x0, 0x0, 0xf4, 0x0, 0x0, 0xf,
+    0x40, 0x0, 0x0, 0x3d, 0x0, 0x0, 0x3, 0xff,
+    0xff, 0xff, 0xff, 0x40, 0x0, 0x0, 0xff, 0xff,
+    0xff, 0xff, 0xd0, 0x0, 0x0, 0x3d, 0x0, 0x0,
+    0x0, 0xf4, 0x0,
+
     /* U+84CA "蓊" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x2, 0xe0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0xb,
@@ -124012,6 +131408,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x2f, 0xd0, 0x0, 0x3f, 0xd0, 0x0, 0x0,
     0x10, 0x0, 0x0, 0x50, 0x0,
 
+    /* U+84CD "蓍" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xf0, 0x0, 0x2d, 0x0, 0x0, 0x0, 0x0,
+    0xf0, 0x0, 0x2d, 0x0, 0x0, 0x3f, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xf4, 0x2a, 0xaa, 0xfa, 0xaa,
+    0xbf, 0xaa, 0xa4, 0x0, 0x0, 0xf1, 0x0, 0x2d,
+    0x0, 0x0, 0x0, 0x0, 0x3, 0xc0, 0x0, 0xf,
+    0x0, 0x1, 0xaa, 0xab, 0xea, 0xa8, 0x7e, 0x0,
+    0x1, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x0, 0x0,
+    0x0, 0x3, 0xc0, 0x2f, 0x80, 0x0, 0x2a, 0xaa,
+    0xab, 0xeb, 0xfe, 0xaa, 0xa8, 0x3f, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xfc, 0x0, 0x0, 0x1f, 0xf8,
+    0x0, 0x0, 0x0, 0x0, 0xb, 0xfe, 0x40, 0x5a,
+    0xf8, 0x0, 0x16, 0xff, 0xfb, 0xff, 0xff, 0x97,
+    0x80, 0xff, 0x9b, 0xfe, 0xa5, 0x0, 0x3, 0xc0,
+    0x50, 0x3, 0xea, 0xa9, 0x6a, 0xaf, 0x80, 0x0,
+    0x1, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f, 0xff,
+    0xff, 0xff, 0xfc, 0x0, 0x0, 0x7e, 0xaa, 0xaa,
+    0xaa, 0xbc, 0x0, 0x0, 0x7c, 0x0, 0x0, 0x0,
+    0x7c, 0x0, 0x0, 0x7e, 0xaa, 0xaa, 0xaa, 0xbc,
+    0x0, 0x0, 0x7f, 0xff, 0xff, 0xff, 0xfc, 0x0,
+    0x0, 0x7c, 0x0, 0x0, 0x0, 0x7c, 0x0, 0x0,
+    0x7e, 0xaa, 0xaa, 0xaa, 0xbc, 0x0, 0x0, 0x7f,
+    0xff, 0xff, 0xff, 0xfc, 0x0, 0x0, 0x7c, 0x0,
+    0x0, 0x0, 0x7c, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+84D0 "蓐" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x3d, 0x0, 0xf, 0x40, 0x0, 0x0, 0x0,
@@ -124040,6 +131464,62 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x15, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+84D1 "蓑" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x1e, 0x0, 0x1, 0xe0, 0x0, 0x0, 0x0,
+    0x7, 0x80, 0x0, 0x78, 0x0, 0x0, 0x3f, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xf0, 0xa, 0xaa, 0xfe,
+    0xaa, 0xaf, 0xea, 0xa8, 0x0, 0x0, 0x1e, 0x6,
+    0x81, 0xe0, 0x0, 0x0, 0x0, 0x2, 0x41, 0xf0,
+    0x14, 0x0, 0x0, 0xa, 0xaa, 0xaa, 0xbe, 0xaa,
+    0xaa, 0x90, 0x3, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xf4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x1, 0xaa, 0xaa, 0xaa, 0xaa, 0x90, 0x0,
+    0x0, 0xbf, 0xff, 0xff, 0xff, 0xf8, 0x0, 0x0,
+    0x2e, 0x0, 0x0, 0x0, 0x1e, 0x0, 0x0, 0xb,
+    0x80, 0x0, 0x0, 0x7, 0x80, 0x3, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xf0, 0xaa, 0xfe, 0xaa,
+    0xaa, 0xaa, 0xfe, 0xa8, 0x0, 0x2e, 0x0, 0x0,
+    0x0, 0x1e, 0x0, 0x0, 0xb, 0xea, 0xaa, 0xaa,
+    0xaf, 0x80, 0x0, 0x2, 0xff, 0xff, 0xff, 0xff,
+    0xe0, 0x0, 0x0, 0x0, 0xb, 0xfc, 0x0, 0x6,
+    0x0, 0x0, 0x0, 0x1f, 0xdb, 0xc0, 0xb, 0xd0,
+    0x0, 0x0, 0xbf, 0x80, 0xbd, 0x7f, 0xd0, 0x0,
+    0x7, 0xff, 0x80, 0xb, 0xfe, 0x40, 0x0, 0xbf,
+    0xf6, 0xd0, 0x0, 0x7f, 0x90, 0x0, 0x3f, 0x80,
+    0xb4, 0x6, 0xc2, 0xff, 0x80, 0x1, 0x0, 0x2f,
+    0xbf, 0xf0, 0x7, 0xff, 0x80, 0x0, 0x1f, 0xfe,
+    0x40, 0x0, 0xb, 0xf0, 0x0, 0x7, 0x90, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
+    /* U+84D3 "蓓" */
+    0x0, 0x0, 0x14, 0x0, 0x1, 0x40, 0x0, 0x0,
+    0x0, 0x3c, 0x0, 0x7, 0xc0, 0x0, 0x0, 0x0,
+    0x3c, 0x0, 0x7, 0xc0, 0x0, 0xa, 0xaa, 0xbf,
+    0xaa, 0xaf, 0xea, 0xa9, 0xf, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xfd, 0x0, 0x0, 0x3d, 0x0, 0x7,
+    0xc0, 0x0, 0x0, 0x1, 0x3c, 0x0, 0x57, 0xc0,
+    0x0, 0x0, 0x3, 0xc0, 0x0, 0xf8, 0x0, 0x0,
+    0x0, 0xb, 0x80, 0x0, 0x7c, 0x0, 0x0, 0x0,
+    0xf, 0x1f, 0xff, 0xff, 0xff, 0xf4, 0x0, 0x2f,
+    0x1f, 0xff, 0xff, 0xff, 0xf8, 0x0, 0x7d, 0x0,
+    0x3c, 0x0, 0x3c, 0x0, 0x0, 0xfc, 0x0, 0x3c,
+    0x0, 0x78, 0x0, 0x2, 0xfc, 0x0, 0x3c, 0x0,
+    0x78, 0x0, 0x7, 0xfc, 0x0, 0x2d, 0x0, 0xb4,
+    0x0, 0xf, 0xfc, 0xbf, 0xff, 0xff, 0xff, 0xff,
+    0x3f, 0x7c, 0x7f, 0xff, 0xff, 0xff, 0xff, 0x3c,
+    0x3c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x3c,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c, 0x3,
+    0xff, 0xff, 0xff, 0xc0, 0x0, 0x3c, 0x3, 0xff,
+    0xff, 0xff, 0xc0, 0x0, 0x3c, 0x3, 0xc0, 0x0,
+    0x7, 0xc0, 0x0, 0x3c, 0x3, 0xc0, 0x0, 0x7,
+    0xc0, 0x0, 0x3c, 0x3, 0xc0, 0x0, 0x7, 0xc0,
+    0x0, 0x3c, 0x3, 0xc0, 0x0, 0x7, 0xc0, 0x0,
+    0x3c, 0x3, 0xff, 0xff, 0xff, 0xc0, 0x0, 0x3c,
+    0x3, 0xea, 0xaa, 0xaf, 0xc0, 0x0, 0x3c, 0x3,
+    0xc0, 0x0, 0x7, 0x80,
+
     /* U+84D6 "蓖" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x3, 0xc0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0xf,
@@ -124066,6 +131546,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x3e, 0x90, 0x0, 0x2f, 0xff, 0xfd, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+84DD "蓝" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xf4, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x0,
+    0xf4, 0x0, 0x3c, 0x0, 0x0, 0x2f, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xf0, 0x3f, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xf0, 0x0, 0x0, 0xf4, 0x0, 0x3d,
+    0x0, 0x0, 0x0, 0x0, 0xf4, 0x0, 0x3c, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0,
+    0x1, 0x90, 0x7c, 0x1, 0xf0, 0x0, 0x0, 0x3,
+    0xd0, 0x7c, 0x2, 0xe0, 0x0, 0x0, 0x3, 0xd0,
+    0x7c, 0x3, 0xff, 0xff, 0xf0, 0x3, 0xd0, 0x7c,
+    0x7, 0xff, 0xff, 0xf0, 0x3, 0xd0, 0x7c, 0xf,
+    0x81, 0x0, 0x0, 0x3, 0xd0, 0x7c, 0x2f, 0xb,
+    0xc0, 0x0, 0x3, 0xd0, 0x7c, 0x3d, 0x7, 0xf4,
+    0x0, 0x3, 0xd0, 0x7c, 0xfc, 0x0, 0xbe, 0x0,
+    0x2, 0xd0, 0x7c, 0x20, 0x0, 0x1f, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x4, 0x0, 0x1, 0xff,
+    0xff, 0xff, 0xff, 0xfe, 0x0, 0x1, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0x0, 0x1, 0xf0, 0x1f, 0x1,
+    0xe0, 0x1f, 0x0, 0x1, 0xf0, 0x1f, 0x1, 0xe0,
+    0x1f, 0x0, 0x1, 0xf0, 0x1f, 0x1, 0xe0, 0x1f,
+    0x0, 0x1, 0xf0, 0x1f, 0x1, 0xe0, 0x1f, 0x0,
+    0x1, 0xf0, 0x1f, 0x1, 0xe0, 0x1f, 0x0, 0xbf,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xbf, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xfc,
+
     /* U+84DF "蓟" */
     0x0, 0x0, 0x10, 0x0, 0x14, 0x0, 0x0, 0x0,
     0x2, 0xe0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0xb,
@@ -124092,6 +131598,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x55, 0x40, 0x0, 0x0, 0x2f, 0xf0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x10, 0x0,
 
+    /* U+84E0 "蓠" */
+    0x0, 0x0, 0x40, 0x0, 0x5, 0x0, 0x0, 0x0,
+    0x3, 0xc0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0xf,
+    0x0, 0x0, 0xf0, 0x0, 0xf, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xf8, 0x0, 0x3, 0xc0, 0x50, 0x3c, 0x0,
+    0x0, 0x0, 0xe, 0x7, 0xc0, 0xa0, 0x0, 0x0,
+    0x0, 0x0, 0xf, 0x40, 0x0, 0x0, 0x2f, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xf4, 0x6a, 0xaa, 0xaa,
+    0xaa, 0xaa, 0xaa, 0x80, 0x5, 0xe, 0x40, 0x1,
+    0xd0, 0x50, 0x0, 0x3c, 0x1b, 0xf9, 0xff, 0x43,
+    0xc0, 0x0, 0xf0, 0x2, 0xff, 0xd0, 0xf, 0x0,
+    0x3, 0xc2, 0xff, 0x9b, 0xf8, 0x3c, 0x0, 0xf,
+    0xf, 0x90, 0x1, 0xf0, 0xf0, 0x0, 0x3e, 0xaa,
+    0xaa, 0xaa, 0xab, 0xc0, 0x0, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0x0, 0x0, 0x0, 0x3, 0xe0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x1f, 0x0, 0x0, 0x0,
+    0x0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x3,
+    0xea, 0xaf, 0xea, 0xaa, 0xab, 0xc0, 0xf, 0x0,
+    0x3c, 0x3, 0xc0, 0xf, 0x0, 0x3c, 0x3, 0xd0,
+    0xb, 0xc0, 0x3c, 0x0, 0xf0, 0x7f, 0xff, 0xff,
+    0xc0, 0xf0, 0x3, 0xc0, 0xff, 0xfa, 0xab, 0x83,
+    0xc0, 0xf, 0x0, 0x0, 0x0, 0x5, 0x7e, 0x0,
+    0x3c, 0x0, 0x0, 0x0, 0xf, 0xe0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+84E3 "蓣" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0xb4, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x0,
@@ -124120,6 +131652,61 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x80, 0x0, 0x0, 0x24, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+84E5 "蓥" */
+    0x0, 0x0, 0x10, 0x0, 0x4, 0x0, 0x0, 0x0,
+    0x0, 0xb8, 0x0, 0x3d, 0x0, 0x0, 0x0, 0x0,
+    0xb8, 0x0, 0x3d, 0x0, 0x0, 0x3f, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xf8, 0x3f, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xfc, 0x0, 0x0, 0xb8, 0x0, 0x3d,
+    0x0, 0x0, 0x0, 0x0, 0xb4, 0x0, 0x2d, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd0, 0xf,
+    0xea, 0xaa, 0xaa, 0xaa, 0xab, 0xd0, 0xf, 0x40,
+    0x0, 0xfe, 0x0, 0x2, 0xd0, 0xf, 0x40, 0x7,
+    0xff, 0xc0, 0x2, 0xd0, 0xb, 0x40, 0x3f, 0x83,
+    0xf8, 0x2, 0xd0, 0x0, 0x2, 0xfd, 0x0, 0x7f,
+    0x80, 0x0, 0x0, 0x6f, 0xe0, 0x0, 0xb, 0xf9,
+    0x0, 0xb, 0xff, 0xff, 0xff, 0xff, 0xbf, 0xe4,
+    0xbf, 0xd2, 0xff, 0xff, 0xff, 0x6, 0xfd, 0x78,
+    0x0, 0x0, 0x7c, 0x0, 0x0, 0x18, 0x0, 0x0,
+    0x0, 0x7c, 0x0, 0x0, 0x0, 0x2, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0x40, 0x2, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0x40, 0x0, 0x1d, 0x0, 0x7c, 0x0,
+    0xb0, 0x0, 0x0, 0x1f, 0x0, 0x7c, 0x0, 0xf0,
+    0x0, 0x0, 0x7, 0xc0, 0x7c, 0x3, 0xd0, 0x0,
+    0x0, 0x2, 0xd0, 0x7c, 0xb, 0x80, 0x0, 0x1f,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x2f, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xf0,
+
+    /* U+84E6 "蓦" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xf, 0x40, 0x3, 0xd0, 0x0, 0x0, 0x0,
+    0x3, 0xd0, 0x0, 0xf4, 0x0, 0x0, 0x3f, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xf8, 0xa, 0xaa, 0xbe,
+    0xaa, 0xaf, 0xaa, 0xa9, 0x0, 0x0, 0xb, 0x40,
+    0x2, 0xd0, 0x0, 0x0, 0x3, 0xff, 0xff, 0xff,
+    0xff, 0xf4, 0x0, 0x0, 0xf9, 0x55, 0x55, 0x55,
+    0x7d, 0x0, 0x0, 0x3e, 0x0, 0x0, 0x0, 0xf,
+    0x40, 0x0, 0xf, 0xff, 0xff, 0xff, 0xff, 0xd0,
+    0x0, 0x3, 0xe0, 0x0, 0x0, 0x0, 0xf4, 0x0,
+    0x0, 0xf9, 0x55, 0x55, 0x55, 0x7d, 0x0, 0x0,
+    0x3f, 0xff, 0xff, 0xff, 0xff, 0x40, 0x0, 0x0,
+    0x1, 0xf0, 0x0, 0x0, 0x0, 0x0, 0xaa, 0xaa,
+    0xfa, 0xaa, 0xaa, 0xaa, 0x90, 0x3f, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xf4, 0x0, 0x1, 0xf4, 0x0,
+    0x3, 0xe0, 0x0, 0x0, 0x2, 0xfd, 0x55, 0x55,
+    0xbe, 0x0, 0x0, 0x7, 0xff, 0xff, 0xff, 0xf2,
+    0xf8, 0x0, 0x1f, 0xe2, 0x40, 0x0, 0x3c, 0x1f,
+    0xe4, 0x3f, 0xd0, 0xf0, 0x0, 0xf, 0x0, 0xbf,
+    0x47, 0x40, 0x7f, 0xff, 0xff, 0xff, 0xe1, 0x80,
+    0x0, 0x5, 0x55, 0x55, 0x55, 0xb8, 0x0, 0x5,
+    0x55, 0x55, 0x55, 0x54, 0x1e, 0x0, 0x2, 0xff,
+    0xff, 0xff, 0xff, 0x4b, 0x40, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x3, 0xd0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xab, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x3f, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+84EC "蓬" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0xf4, 0x0, 0x2d, 0x0, 0x0, 0x0, 0x0,
@@ -124147,6 +131734,61 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x1b, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+84F0 "蓰" */
+    0x0, 0x0, 0x50, 0x0, 0x14, 0x0, 0x0, 0x0,
+    0x0, 0xf4, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x0,
+    0xf4, 0x0, 0x3c, 0x0, 0x0, 0x2f, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xf0, 0x3f, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xf0, 0x0, 0x0, 0xf4, 0x0, 0x3c,
+    0x0, 0x0, 0x0, 0x0, 0xf4, 0x0, 0x28, 0x0,
+    0x0, 0x0, 0xf, 0x40, 0x0, 0x38, 0x0, 0x0,
+    0x0, 0x3f, 0x1, 0x80, 0x3c, 0x0, 0x0, 0x0,
+    0xfd, 0x2, 0xd0, 0x3e, 0xaa, 0x90, 0x3, 0xf4,
+    0x2, 0xd0, 0x3f, 0xff, 0xd0, 0x1f, 0xd0, 0x2,
+    0xd0, 0x3c, 0x0, 0x0, 0x3f, 0x3, 0x82, 0xd0,
+    0x3c, 0x0, 0x0, 0x28, 0xb, 0xc2, 0xd0, 0x3c,
+    0x0, 0x0, 0x0, 0x2f, 0x3f, 0xff, 0xff, 0xff,
+    0xf4, 0x0, 0x7d, 0x3f, 0xff, 0xff, 0xff, 0xf8,
+    0x1, 0xf8, 0x0, 0x0, 0x2d, 0x0, 0x0, 0x7,
+    0xf8, 0x1, 0x40, 0x2d, 0x0, 0x0, 0x2f, 0xf8,
+    0x3, 0xd0, 0x2d, 0x0, 0x0, 0xbe, 0x78, 0x3,
+    0xc0, 0x2e, 0x0, 0x0, 0xb8, 0x78, 0x3, 0xc0,
+    0x2f, 0xff, 0xd0, 0x10, 0x78, 0xb, 0xc0, 0x2f,
+    0xaa, 0x80, 0x0, 0x78, 0xf, 0xe0, 0x2d, 0x0,
+    0x0, 0x0, 0x78, 0x2f, 0xf8, 0x2d, 0x0, 0x0,
+    0x0, 0x78, 0x7d, 0x3f, 0xbe, 0x0, 0x0, 0x0,
+    0x7a, 0xf8, 0xb, 0xff, 0xff, 0xfc, 0x0, 0x7a,
+    0xf0, 0x0, 0x6b, 0xff, 0xf8, 0x0, 0x78, 0x80,
+    0x0, 0x0, 0x0, 0x0,
+
+    /* U+84FC "蓼" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xf4, 0x0, 0x3d, 0x0, 0x0, 0x0, 0x0,
+    0xf4, 0x0, 0x3d, 0x0, 0x0, 0x3f, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xf4, 0x3f, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xf4, 0x0, 0x0, 0xf4, 0x0, 0x3d,
+    0x0, 0x0, 0x0, 0x0, 0x60, 0x0, 0x18, 0x0,
+    0x0, 0xf, 0xff, 0xff, 0xcf, 0xff, 0xff, 0x40,
+    0xa, 0xaa, 0xab, 0xca, 0xaa, 0xaf, 0x40, 0x0,
+    0xe0, 0x7, 0xc2, 0x90, 0xb, 0x40, 0x0, 0xfe,
+    0x7, 0xc2, 0xfd, 0xb, 0x40, 0x0, 0xa, 0x6b,
+    0xc0, 0x1e, 0xbb, 0x40, 0x0, 0x1b, 0xfb, 0xc1,
+    0xbf, 0xff, 0x40, 0x6, 0xff, 0x42, 0xeb, 0xf9,
+    0xb, 0x40, 0xb, 0xd0, 0x7, 0xff, 0x80, 0xb,
+    0x40, 0x0, 0x0, 0x7f, 0x82, 0xf8, 0x0, 0x0,
+    0x0, 0x1b, 0xf9, 0x1, 0x7f, 0x90, 0x0, 0x6,
+    0xff, 0x80, 0x1f, 0x47, 0xfe, 0x40, 0xbf, 0xe4,
+    0x7, 0xfe, 0x0, 0x2f, 0xfd, 0x79, 0x6, 0xff,
+    0xd0, 0x2f, 0x1, 0xbc, 0x0, 0x2f, 0xe4, 0x7,
+    0xfe, 0x0, 0x0, 0x0, 0x4, 0x1, 0xbf, 0xd0,
+    0x1c, 0x0, 0x0, 0x6, 0xbf, 0xf4, 0x2, 0xfe,
+    0x0, 0x0, 0xff, 0xf9, 0x0, 0x7f, 0xe0, 0x0,
+    0x0, 0x65, 0x0, 0x6f, 0xfd, 0x0, 0x0, 0x0,
+    0x1, 0x6f, 0xff, 0x40, 0x0, 0x0, 0x6, 0xff,
+    0xff, 0x90, 0x0, 0x0, 0x0, 0x7, 0xfe, 0x50,
+    0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+84FF "蓿" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x7, 0xc0, 0x0, 0x7c, 0x0, 0x0, 0x0, 0x1f,
@@ -124258,6 +131900,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x1, 0x6b, 0xfc, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+8517 "蔗" */
+    0x0, 0x0, 0x10, 0x0, 0x1, 0x0, 0x0, 0x0,
+    0x0, 0x3c, 0x0, 0xb, 0x40, 0x0, 0x0, 0x0,
+    0x3c, 0x0, 0xb, 0x40, 0x0, 0xf, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xfc, 0xf, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xfc, 0x0, 0x0, 0x3c, 0x0, 0xb,
+    0x40, 0x0, 0x0, 0x0, 0x3c, 0xf, 0xb, 0x40,
+    0x0, 0x0, 0x0, 0x14, 0xf, 0x41, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0xf, 0x80, 0x0, 0x0, 0x0,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x0, 0xfe,
+    0xaa, 0xaa, 0xaa, 0xaa, 0xa4, 0x0, 0xf0, 0x1,
+    0x40, 0x0, 0x50, 0x0, 0x0, 0xf0, 0x3, 0xc0,
+    0x1, 0xf0, 0x0, 0x0, 0xf0, 0x3, 0xc0, 0x1,
+    0xf0, 0x0, 0x0, 0xf3, 0xff, 0xff, 0xff, 0xff,
+    0xfc, 0x0, 0xf2, 0xab, 0xea, 0xab, 0xfa, 0xa8,
+    0x0, 0xf0, 0x3, 0xc0, 0x1, 0xf0, 0x0, 0x0,
+    0xf0, 0x3, 0xc0, 0x1, 0xf0, 0x0, 0x0, 0xf0,
+    0x3, 0xc0, 0x1, 0xf0, 0x0, 0x0, 0xf0, 0x3,
+    0xff, 0xff, 0xf0, 0x0, 0x0, 0xf0, 0x2, 0xaa,
+    0xaa, 0xa0, 0x0, 0x1, 0xf0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x2, 0xe0, 0x78, 0x24, 0x1d, 0x7,
+    0x80, 0x3, 0xd0, 0xf4, 0x78, 0x1e, 0x3, 0xc0,
+    0xb, 0xc0, 0xf0, 0x3c, 0xf, 0x1, 0xf0, 0xf,
+    0x42, 0xe0, 0x3c, 0xb, 0x40, 0xf4, 0x2f, 0x7,
+    0xc0, 0x2d, 0x7, 0x80, 0xbc, 0x2c, 0xb, 0x80,
+    0x14, 0x2, 0x0, 0x34, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+851A "蔚" */
     0x0, 0x0, 0x4, 0x0, 0x1, 0x0, 0x0, 0x0,
     0x0, 0x7, 0xc0, 0x2, 0xd0, 0x0, 0x0, 0x0,
@@ -124286,6 +131956,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x1, 0xf, 0xf8, 0x0, 0x0, 0x0, 0x50, 0x0,
     0x1, 0x40, 0x0,
 
+    /* U+851F "蔟" */
+    0x0, 0x0, 0x10, 0x0, 0x14, 0x0, 0x0, 0x0,
+    0x0, 0xb8, 0x0, 0x2d, 0x0, 0x0, 0x0, 0x0,
+    0xb8, 0x0, 0x2d, 0x0, 0x0, 0x2a, 0xaa, 0xfe,
+    0xaa, 0xbf, 0xaa, 0xa8, 0x3f, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xf8, 0x0, 0x0, 0xb8, 0x0, 0x2d,
+    0x0, 0x0, 0x0, 0x3c, 0xb8, 0x6, 0x2d, 0x0,
+    0x0, 0x0, 0x3d, 0x0, 0xf, 0x0, 0x0, 0x0,
+    0x0, 0x2e, 0x0, 0x1f, 0x0, 0x0, 0x0, 0x0,
+    0x1f, 0x0, 0x3f, 0xff, 0xff, 0xf8, 0x3f, 0xff,
+    0xff, 0x7e, 0xaa, 0xaa, 0xa4, 0x2f, 0xff, 0xfe,
+    0xf5, 0x0, 0x0, 0x0, 0x1, 0xe0, 0x3, 0xe3,
+    0xc0, 0x0, 0x0, 0x1, 0xe0, 0x3, 0xcb, 0x95,
+    0x55, 0x40, 0x1, 0xe0, 0x0, 0xf, 0xff, 0xff,
+    0xe0, 0x1, 0xff, 0xf8, 0x3d, 0x5f, 0x55, 0x40,
+    0x1, 0xff, 0xf8, 0xb8, 0xf, 0x0, 0x0, 0x2,
+    0xd0, 0x78, 0x70, 0xf, 0x0, 0x0, 0x2, 0xd0,
+    0x78, 0x0, 0x1f, 0x0, 0x0, 0x2, 0xd0, 0x75,
+    0xff, 0xff, 0xff, 0xf4, 0x3, 0xc0, 0x75, 0xaa,
+    0xbf, 0xaa, 0xa4, 0x3, 0xc0, 0xb4, 0x0, 0x3f,
+    0x40, 0x0, 0x7, 0x80, 0xb4, 0x0, 0x7f, 0xc0,
+    0x0, 0xb, 0x40, 0xb4, 0x1, 0xf5, 0xf0, 0x0,
+    0xf, 0x0, 0xb4, 0xb, 0xe0, 0xbe, 0x0, 0x2e,
+    0x6, 0xf0, 0x7f, 0x80, 0x2f, 0xd0, 0x3c, 0xf,
+    0xf3, 0xfc, 0x0, 0x7, 0xfc, 0xb8, 0x5, 0x43,
+    0xd0, 0x0, 0x0, 0x78, 0x10, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+8521 "蔡" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0xb, 0x40, 0x3, 0xc0, 0x0, 0x0, 0x0,
@@ -124314,6 +132012,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xe0, 0x0, 0x3, 0x0, 0x0, 0x0, 0xe, 0x90,
     0x0, 0x0, 0x0,
 
+    /* U+852B "蔫" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x2, 0xd0, 0x0, 0xf4, 0x0, 0x0, 0x0, 0xb,
+    0x40, 0x3, 0xd0, 0x0, 0xb, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xfd, 0x3f, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xf8, 0x0, 0x2, 0xd0, 0x0, 0xf4, 0x0,
+    0x0, 0x0, 0x5, 0x0, 0x1, 0x40, 0x0, 0x1,
+    0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xa0, 0xb, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xc0, 0x0, 0x10, 0x1,
+    0xf0, 0x0, 0x0, 0x0, 0x3, 0xd0, 0x7, 0xea,
+    0xaa, 0x80, 0x0, 0xf, 0x40, 0x1f, 0xff, 0xff,
+    0x40, 0x0, 0x3d, 0x0, 0x7c, 0x0, 0x0, 0x0,
+    0xaa, 0xfe, 0xab, 0xfa, 0xaa, 0xaa, 0xa3, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xa, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x3e, 0xaa, 0xaa,
+    0xaa, 0xa9, 0x0, 0x0, 0xff, 0xff, 0xff, 0xff,
+    0xfc, 0x0, 0x7, 0xc0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x1f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xbf, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x1, 0xaa,
+    0xaa, 0xaa, 0xaa, 0xbf, 0x0, 0x1d, 0x8, 0x7,
+    0x2, 0xc0, 0x78, 0x0, 0xf4, 0x78, 0x1e, 0x7,
+    0x82, 0xe0, 0x3, 0xc0, 0xf0, 0x3c, 0xf, 0xb,
+    0x80, 0x2d, 0x3, 0xc0, 0x78, 0x14, 0x7d, 0x1,
+    0xf0, 0xa, 0x0, 0x40, 0xff, 0xf0, 0x2, 0x40,
+    0x0, 0x0, 0x3, 0xfe, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+852C "蔬" */
     0x0, 0x0, 0x50, 0x0, 0x5, 0x0, 0x0, 0x0,
     0x0, 0xf0, 0x0, 0x1e, 0x0, 0x0, 0x0, 0x0,
@@ -124395,6 +132120,35 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xff, 0x40, 0x0, 0xb, 0xff, 0xf8, 0xa, 0x40,
     0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+8539 "蔹" */
+    0x0, 0x0, 0x14, 0x0, 0x5, 0x0, 0x0, 0x0,
+    0x0, 0xf, 0x40, 0x3, 0xc0, 0x0, 0x0, 0x0,
+    0x3, 0xd0, 0x0, 0xf0, 0x0, 0x0, 0x3f, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xf0, 0xf, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xfc, 0x0, 0x0, 0xf, 0x40,
+    0x3, 0xc0, 0x0, 0x0, 0x0, 0x3, 0x40, 0x0,
+    0xa0, 0x0, 0x0, 0x0, 0x2, 0xf0, 0x0, 0x1d,
+    0x0, 0x0, 0x0, 0x2, 0xff, 0x0, 0xb, 0x40,
+    0x0, 0x0, 0x2, 0xf7, 0xf8, 0x3, 0xc0, 0x0,
+    0x0, 0x2, 0xf0, 0x2f, 0xd2, 0xff, 0xff, 0xe0,
+    0x3, 0xf0, 0x1, 0xfc, 0xff, 0xff, 0xf8, 0xb,
+    0xf0, 0x0, 0xa, 0xb8, 0x2, 0xd0, 0xf, 0xef,
+    0xff, 0xfc, 0x3d, 0x0, 0xb4, 0x2, 0xd3, 0xff,
+    0xff, 0x3f, 0x80, 0x3c, 0x0, 0x0, 0x1, 0x40,
+    0xf, 0xf0, 0xf, 0x0, 0x1, 0xd0, 0xe0, 0x2d,
+    0x3c, 0xb, 0x80, 0x0, 0x3c, 0x3c, 0xf, 0x7,
+    0x83, 0xc0, 0x0, 0xf, 0xb, 0x47, 0x80, 0xf1,
+    0xf0, 0x0, 0x1, 0xd1, 0xe2, 0xd0, 0x2e, 0xf4,
+    0x0, 0x0, 0x3c, 0x3c, 0xf0, 0x3, 0xf8, 0x0,
+    0x0, 0xf, 0xe, 0x78, 0x0, 0xbd, 0x0, 0x0,
+    0x2, 0x80, 0x2d, 0x0, 0xbf, 0xd0, 0x0, 0x0,
+    0x1, 0x6f, 0xfc, 0xbd, 0xbd, 0x0, 0xb, 0xff,
+    0xff, 0xff, 0xfd, 0xb, 0xe0, 0x3, 0xff, 0xa5,
+    0x1, 0xfc, 0x0, 0xbf, 0x0, 0x0, 0x0, 0x3,
+    0xf8, 0x0, 0x7, 0xf0, 0x0, 0x0, 0x0, 0xf4,
+    0x0, 0x0, 0x38, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+853A "蔺" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x2, 0xd0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0xb,
@@ -124614,31 +132368,57 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x2f, 0xf4, 0x0, 0x2f, 0xf8, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0,
 
-    /* U+8555 "蕕" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x3, 0xd0, 0x0, 0xb8, 0x0, 0x0, 0x0, 0xf,
-    0x40, 0x2, 0xe0, 0x0, 0xf, 0xff, 0xff, 0xff,
-    0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xff, 0xff,
-    0xff, 0xfc, 0x0, 0x3, 0xd0, 0x0, 0xb8, 0x0,
-    0x0, 0x10, 0xa, 0x7, 0x81, 0x93, 0x80, 0x3,
-    0xc0, 0x20, 0xf, 0x80, 0x3d, 0x0, 0xb, 0xc3,
-    0xd0, 0xe, 0x2, 0xe0, 0x0, 0xf, 0xbe, 0xbf,
-    0xff, 0xff, 0xff, 0xe0, 0x1f, 0xe1, 0xaa, 0xfa,
-    0xbe, 0xaa, 0x40, 0x7e, 0x0, 0x1, 0xd0, 0xe0,
-    0x0, 0xb, 0xfc, 0x0, 0x7, 0x43, 0x80, 0x0,
-    0xfd, 0xf0, 0x2f, 0xff, 0xff, 0xff, 0x3, 0xc2,
-    0xd0, 0xba, 0xfe, 0xbe, 0xbc, 0x4, 0x7, 0x82,
-    0xd1, 0xd0, 0xe0, 0xf0, 0x0, 0x3f, 0xb, 0x4b,
-    0x3, 0x83, 0xc0, 0x3, 0xfc, 0x2d, 0x3c, 0xe,
-    0xf, 0x0, 0x3e, 0xf0, 0xb6, 0xd0, 0x3f, 0xfc,
-    0x3, 0xe3, 0xc2, 0xee, 0x0, 0x6a, 0xf0, 0x7e,
-    0xf, 0xb, 0x40, 0x0, 0x3, 0xc2, 0xe0, 0x3c,
-    0x2f, 0xff, 0xff, 0xff, 0x1, 0x0, 0xf0, 0xbf,
-    0xff, 0xff, 0xfc, 0x0, 0x3, 0xc2, 0xd0, 0x0,
-    0x0, 0xf0, 0x0, 0xf, 0xb, 0x40, 0x0, 0x3,
-    0xc0, 0x16, 0xfc, 0x2f, 0xff, 0xff, 0xff, 0x0,
-    0xff, 0xc0, 0xbe, 0xaa, 0xaa, 0xbc, 0x1, 0x94,
-    0x2, 0xd0, 0x0, 0x0, 0xf0,
+    /* U+8556 "蕖" */
+    0x0, 0x0, 0x10, 0x0, 0x10, 0x0, 0x0, 0x0,
+    0x0, 0xb8, 0x0, 0x3d, 0x0, 0x0, 0x0, 0x0,
+    0xb8, 0x0, 0x3d, 0x0, 0x0, 0x3f, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xf8, 0x2a, 0xaa, 0xfe, 0xaa,
+    0xbf, 0xaa, 0xa4, 0x0, 0x0, 0xb8, 0x0, 0x3d,
+    0x0, 0x0, 0x0, 0xd0, 0x10, 0x0, 0x14, 0x0,
+    0x0, 0x1, 0xfd, 0xb, 0xff, 0xff, 0xff, 0xf0,
+    0x0, 0x2f, 0xcb, 0xaa, 0xaa, 0xaa, 0xa0, 0x4,
+    0x2, 0x8b, 0x40, 0x0, 0x0, 0x0, 0xf, 0x80,
+    0xb, 0xff, 0xff, 0xff, 0x0, 0xb, 0xfc, 0xb,
+    0xea, 0xaa, 0xaf, 0x0, 0x0, 0x7e, 0xb, 0x40,
+    0x0, 0xf, 0x0, 0x0, 0x4, 0xb, 0xea, 0xaa,
+    0xaf, 0x0, 0x0, 0x2, 0xcb, 0xff, 0xff, 0xff,
+    0x0, 0x0, 0xf, 0xcb, 0x40, 0x0, 0x0, 0x0,
+    0x0, 0xbe, 0xb, 0xea, 0xaa, 0xaa, 0xa0, 0x7,
+    0xf0, 0xb, 0xff, 0xff, 0xff, 0xf0, 0x7, 0x80,
+    0x0, 0x14, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x7c, 0x0, 0x0, 0x0, 0x2f, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xf0, 0x1f, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xf0, 0x0, 0x0, 0xb, 0xff, 0xd0, 0x0,
+    0x0, 0x0, 0x1, 0xbf, 0xbe, 0xfd, 0x0, 0x0,
+    0x0, 0x6f, 0xf4, 0x7c, 0x2f, 0xe4, 0x0, 0x6f,
+    0xfe, 0x0, 0x7c, 0x2, 0xff, 0xe8, 0x7f, 0x80,
+    0x0, 0x7c, 0x0, 0xb, 0xfc, 0x10, 0x0, 0x0,
+    0x7c, 0x0, 0x0, 0x14,
+
+    /* U+8559 "蕙" */
+    0x0, 0x0, 0xe0, 0x0, 0xe, 0x0, 0x0, 0x0,
+    0x7, 0xc0, 0x0, 0x7c, 0x0, 0x3, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0x8a, 0xaa, 0xbe, 0xaa,
+    0xab, 0xea, 0xa9, 0x0, 0x1, 0xf0, 0x38, 0x1f,
+    0x0, 0x0, 0x0, 0x1, 0x40, 0xe0, 0x10, 0x0,
+    0x0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x2,
+    0xaa, 0xaa, 0xaf, 0xaa, 0xaa, 0xa4, 0x0, 0x0,
+    0x0, 0x38, 0x0, 0x0, 0x0, 0x3, 0xff, 0xff,
+    0xff, 0xff, 0xf8, 0x0, 0xf, 0x55, 0x5b, 0xd5,
+    0x56, 0xe0, 0x0, 0x3c, 0x0, 0xe, 0x0, 0x7,
+    0x80, 0x0, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0,
+    0x3, 0xd5, 0x55, 0xf5, 0x55, 0xb8, 0x0, 0xf,
+    0x0, 0x3, 0x80, 0x1, 0xe0, 0x0, 0x3f, 0xff,
+    0xff, 0xff, 0xff, 0x80, 0x0, 0x55, 0x55, 0xbd,
+    0x55, 0x7d, 0x0, 0x0, 0x0, 0x0, 0xe0, 0x0,
+    0xfc, 0x2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc,
+    0x6, 0xaa, 0xaa, 0xae, 0x55, 0x55, 0x7c, 0x0,
+    0xd0, 0x90, 0x7c, 0x0, 0xd, 0x50, 0xb, 0x83,
+    0xc0, 0x7d, 0x4, 0x3d, 0x0, 0x7c, 0xf, 0x0,
+    0x74, 0x78, 0x3d, 0x3, 0xd0, 0x3c, 0x0, 0x3,
+    0xd0, 0x7c, 0x3e, 0x0, 0xff, 0xff, 0xff, 0x0,
+    0xb8, 0x60, 0x0, 0xff, 0xff, 0xf4, 0x0, 0x40,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
 
     /* U+855E "蕞" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -124722,32 +132502,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x3, 0x0, 0x0, 0x8, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+8570 "蕰" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x3, 0xc0, 0x0, 0xb4, 0x0, 0x0, 0x0, 0xf,
-    0x0, 0x2, 0xd0, 0x0, 0xf, 0xff, 0xff, 0xff,
-    0xff, 0xff, 0xfd, 0x3f, 0xff, 0xff, 0xff, 0xff,
-    0xff, 0xf4, 0x0, 0x3, 0xc0, 0x0, 0xb4, 0x0,
-    0x0, 0x0, 0xf, 0x0, 0x1, 0xd0, 0x0, 0x0,
-    0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb, 0xd0,
-    0xb, 0xff, 0xff, 0xff, 0x0, 0xb, 0xf4, 0x2f,
-    0xaa, 0xaa, 0xbc, 0x0, 0x7, 0xf4, 0xb4, 0x0,
-    0x0, 0xf0, 0x0, 0x2, 0xc2, 0xff, 0xff, 0xff,
-    0xc0, 0x14, 0x0, 0xb, 0xea, 0xaa, 0xaf, 0x0,
-    0xfd, 0x0, 0x2d, 0x0, 0x0, 0x3c, 0x1, 0xfe,
-    0x0, 0xbe, 0xaa, 0xaa, 0xf0, 0x0, 0xbf, 0x2,
-    0xff, 0xff, 0xff, 0xc0, 0x0, 0x3c, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x1, 0xff, 0xff, 0xff, 0xfc,
-    0x0, 0x4, 0x7, 0xff, 0xff, 0xff, 0xf0, 0x0,
-    0x3d, 0x1d, 0xf, 0x7, 0x43, 0xc0, 0x2, 0xf0,
-    0x74, 0x3c, 0x1d, 0xf, 0x0, 0xf, 0x41, 0xd0,
-    0xf0, 0x74, 0x3c, 0x0, 0xfc, 0x7, 0x43, 0xc1,
-    0xd0, 0xf0, 0x7, 0xc0, 0x1d, 0xf, 0x7, 0x43,
-    0xc0, 0x3e, 0x7, 0xff, 0xff, 0xff, 0xff, 0xe2,
-    0xf0, 0x2f, 0xff, 0xff, 0xff, 0xff, 0xc2, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x0,
-
     /* U+8572 "蕲" */
     0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0xf0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x0,
@@ -124992,32 +132746,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xe0, 0x0, 0x24, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+858A "薊" */
-    0x0, 0x0, 0x14, 0x0, 0x4, 0x0, 0x0, 0x0,
-    0x0, 0xf0, 0x0, 0xb4, 0x0, 0x0, 0x0, 0x3,
-    0xc0, 0x2, 0xd0, 0x0, 0xf, 0xff, 0xff, 0xff,
-    0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xff, 0xff,
-    0xff, 0xfc, 0x0, 0x0, 0xf0, 0x0, 0xb8, 0x0,
-    0x0, 0x0, 0xa7, 0xc0, 0x2, 0xd0, 0x0, 0x0,
-    0x3, 0xc0, 0x0, 0x0, 0x0, 0xf0, 0x0, 0x3f,
-    0xff, 0xf0, 0x0, 0x3, 0xc0, 0x2, 0xff, 0xff,
-    0xc0, 0x3c, 0xf, 0x0, 0x1f, 0x0, 0x3d, 0x0,
-    0xf0, 0x3c, 0x1, 0xf8, 0x2, 0xe0, 0x3, 0xc0,
-    0xf0, 0x1f, 0xff, 0xff, 0xfd, 0xf, 0x3, 0xc0,
-    0xff, 0x97, 0xe5, 0xf4, 0x3c, 0xf, 0x0, 0x6d,
-    0xb, 0x42, 0xd0, 0xf0, 0x3c, 0x0, 0xb9, 0x7e,
-    0x5f, 0x43, 0xc0, 0xf0, 0x2, 0xff, 0xff, 0xfd,
-    0xf, 0x3, 0xc0, 0xb, 0x96, 0xe5, 0xf4, 0x3c,
-    0xf, 0x0, 0x2d, 0xb, 0x42, 0xd0, 0xf0, 0x3c,
-    0x0, 0xbe, 0xbf, 0xaf, 0x43, 0xc0, 0xf0, 0x2,
-    0xff, 0xff, 0xfd, 0xf, 0x3, 0xc0, 0x0, 0x0,
-    0x0, 0x0, 0x3c, 0xf, 0x0, 0x3c, 0xb0, 0xf0,
-    0xe0, 0x0, 0x3c, 0x1, 0xe1, 0xd2, 0xc3, 0xc0,
-    0x0, 0xf0, 0xb, 0x47, 0x47, 0x47, 0x40, 0x7,
-    0xc0, 0x3c, 0xe, 0xe, 0xf, 0x6, 0xbe, 0x1,
-    0xe0, 0x38, 0x28, 0x14, 0x3f, 0xf0, 0x2, 0x0,
-    0x0, 0x0, 0x0, 0x55, 0x0,
-
     /* U+858F "薏" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x3, 0xc0, 0x0, 0x7c, 0x0, 0x0, 0x0, 0xf,
@@ -125044,32 +132772,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x40, 0x7, 0xff, 0xff, 0x80, 0x1, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0,
 
-    /* U+8591 "薑" */
-    0x0, 0x0, 0x50, 0x0, 0x14, 0x0, 0x0, 0x0,
-    0x0, 0xf0, 0x0, 0x3c, 0x0, 0x0, 0x3f, 0xff,
-    0xff, 0xff, 0xff, 0xff, 0xf4, 0x2a, 0xaa, 0xfa,
-    0xaa, 0xbe, 0xaa, 0xa0, 0x0, 0x0, 0xf0, 0x0,
-    0x3c, 0x0, 0x0, 0x5, 0x55, 0x55, 0x55, 0x55,
-    0x55, 0x50, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff,
-    0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x1, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x0, 0x1,
-    0xf5, 0x55, 0xbd, 0x55, 0x7d, 0x0, 0x1, 0xf5,
-    0x55, 0xb9, 0x55, 0x7d, 0x0, 0x1, 0xff, 0xff,
-    0xff, 0xff, 0xfd, 0x0, 0x1, 0xe0, 0x0, 0x78,
-    0x0, 0x2d, 0x0, 0x1, 0xff, 0xff, 0xff, 0xff,
-    0xfd, 0x0, 0x0, 0xaa, 0xaa, 0xaa, 0xaa, 0xa8,
-    0x0, 0xa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x90,
-    0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xff,
-    0xff, 0xff, 0xff, 0xfd, 0x0, 0x1, 0xf5, 0x55,
-    0xbd, 0x55, 0x6d, 0x0, 0x1, 0xe5, 0x55, 0xbd,
-    0x55, 0x6d, 0x0, 0x1, 0xff, 0xff, 0xff, 0xff,
-    0xfd, 0x0, 0x1, 0xe0, 0x0, 0x78, 0x0, 0x2d,
-    0x0, 0x1, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x0,
-    0x0, 0x55, 0x55, 0x55, 0x55, 0x54, 0x0, 0xaa,
-    0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xa8, 0xff, 0xff,
-    0xff, 0xff, 0xff, 0xff, 0xfc,
-
     /* U+859B "薛" */
     0x0, 0x0, 0x10, 0x0, 0x10, 0x0, 0x0, 0x0,
     0x0, 0x78, 0x0, 0x7c, 0x0, 0x0, 0x0, 0x0,
@@ -125124,33 +132826,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xff, 0xc0, 0x1, 0xe0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x1, 0xe0, 0x0,
 
-    /* U+85A1 "薡" */
-    0x0, 0x0, 0x10, 0x0, 0x14, 0x0, 0x0, 0x0,
-    0x1, 0xe0, 0x0, 0xf0, 0x0, 0x2, 0xaa, 0xaf,
-    0xea, 0xab, 0xea, 0xaa, 0x8f, 0xff, 0xff, 0xff,
-    0xff, 0xff, 0xff, 0x0, 0x0, 0xb8, 0x0, 0x3c,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x1f, 0xff, 0xff, 0xf0, 0x0, 0x0,
-    0x50, 0x7e, 0xaa, 0xab, 0xc0, 0x50, 0x3, 0xc1,
-    0xd0, 0x0, 0xf, 0x7, 0xc0, 0xf, 0x7, 0xff,
-    0xff, 0xfc, 0x1f, 0x0, 0x3c, 0x1f, 0xaa, 0xaa,
-    0xf0, 0x7c, 0x0, 0xf0, 0x74, 0x0, 0x3, 0xc1,
-    0xf0, 0x3, 0xc1, 0xff, 0xff, 0xff, 0x7, 0xc0,
-    0xf, 0x7, 0xea, 0xaa, 0xbc, 0x1f, 0x0, 0x3c,
-    0x1d, 0x0, 0x0, 0xf0, 0x7c, 0x0, 0xf0, 0x7f,
-    0xff, 0xff, 0xc1, 0xf0, 0x3, 0xc1, 0xaa, 0xaa,
-    0xaa, 0x7, 0xc0, 0xf, 0x0, 0x0, 0x0, 0x0,
-    0x1f, 0x0, 0x3f, 0xff, 0xf0, 0x1f, 0xff, 0xfc,
-    0x0, 0xff, 0xff, 0xc0, 0x7f, 0xff, 0xe0, 0x0,
-    0x0, 0xf, 0x1, 0xe0, 0x0, 0x0, 0xaa, 0xaa,
-    0xbc, 0x7, 0xea, 0xaa, 0x3, 0xff, 0xff, 0xf0,
-    0x1f, 0xff, 0xfc, 0x0, 0x2e, 0x3, 0xc0, 0x78,
-    0x0, 0xf0, 0x0, 0xf0, 0xf, 0x1, 0xe0, 0x3,
-    0xc0, 0xf, 0x80, 0x3c, 0x7, 0x80, 0xf, 0x1,
-    0xfc, 0x0, 0xf0, 0x1e, 0x0, 0x3c, 0xb, 0x80,
-    0x3, 0xc0, 0x78, 0x0, 0xf0, 0x4, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0,
-
     /* U+85A4 "薤" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0xf4, 0x0, 0x2d, 0x0, 0x0, 0x0, 0x0,
@@ -125179,6 +132854,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+85A8 "薨" */
+    0x0, 0x0, 0xb4, 0x0, 0x3c, 0x0, 0x0, 0x0,
+    0x2, 0xe0, 0x0, 0xf0, 0x0, 0x2, 0xaa, 0xaf,
+    0xea, 0xab, 0xfa, 0xaa, 0x4f, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xfe, 0x0, 0x0, 0xb8, 0x0, 0x3d,
+    0x0, 0x0, 0x0, 0x1, 0x50, 0x0, 0x50, 0x0,
+    0x0, 0x15, 0x55, 0x55, 0x55, 0x55, 0x50, 0x0,
+    0xbf, 0xff, 0xff, 0xff, 0xff, 0xd0, 0x2, 0xd0,
+    0xe, 0x0, 0xf0, 0xb, 0x40, 0xb, 0x80, 0x78,
+    0x3, 0xc0, 0x3d, 0x0, 0x2f, 0xff, 0xff, 0xff,
+    0xff, 0xf4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x90,
+    0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0xf0,
+    0x0, 0x0, 0x0, 0x0, 0x1e, 0x3, 0xc5, 0x55,
+    0x55, 0x55, 0x55, 0x78, 0xf, 0x3f, 0xff, 0xff,
+    0xff, 0xfd, 0xe0, 0x0, 0x6f, 0x55, 0x5f, 0x55,
+    0x40, 0x0, 0x1, 0xf0, 0x0, 0x3c, 0x0, 0x18,
+    0x0, 0x1f, 0xff, 0xfc, 0xf0, 0x1b, 0xf0, 0x2,
+    0xfa, 0xaa, 0xf3, 0xdb, 0xfe, 0x0, 0x7f, 0xd0,
+    0xf, 0x8f, 0xfe, 0x40, 0x3, 0xe7, 0xe1, 0xf8,
+    0x3e, 0x40, 0x7, 0x41, 0x1, 0x6f, 0x80, 0xf0,
+    0x0, 0x2e, 0x0, 0xb, 0xf4, 0x3, 0xd0, 0x0,
+    0xf4, 0x7, 0xfe, 0x0, 0xb, 0xfe, 0xff, 0xc3,
+    0xff, 0x40, 0x0, 0xb, 0xff, 0xfd, 0x7, 0x80,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+85AA "薪" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x3c, 0x0, 0x3d, 0x0, 0x0, 0x0, 0x0,
@@ -125342,6 +133044,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x55, 0x50, 0x5, 0x55, 0x55, 0x6f, 0x55, 0x55,
     0x54, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd0,
 
+    /* U+85C1 "藁" */
+    0x0, 0x0, 0x40, 0x0, 0x4, 0x0, 0x0, 0x0,
+    0x1, 0xf0, 0x0, 0x1f, 0x0, 0x0, 0x15, 0x56,
+    0xf5, 0x55, 0x6f, 0x55, 0x50, 0x3f, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xf4, 0x0, 0x1, 0xf0, 0x14,
+    0x1f, 0x0, 0x0, 0x0, 0x0, 0xa0, 0x7c, 0xa,
+    0x0, 0x0, 0x15, 0x55, 0x55, 0xbd, 0x55, 0x55,
+    0x50, 0x2f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x3f, 0xff, 0xff, 0xff, 0xf4, 0x0, 0x0, 0x3d,
+    0x0, 0x0, 0x0, 0xf4, 0x0, 0x0, 0x3f, 0xff,
+    0xff, 0xff, 0xf4, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x1, 0x55, 0x55, 0x55, 0x55,
+    0x55, 0x0, 0x3, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xc0, 0x3, 0xc0, 0x0, 0x0, 0x0, 0x7, 0xc0,
+    0x3, 0xc0, 0xff, 0xff, 0xfc, 0x7, 0xc0, 0x3,
+    0xc0, 0xf0, 0x0, 0x3c, 0xb, 0x80, 0x3, 0xc0,
+    0xff, 0xff, 0xfc, 0x7f, 0x80, 0x3, 0xc0, 0x0,
+    0x0, 0x0, 0x3f, 0x0, 0x0, 0x0, 0x0, 0x7c,
+    0x0, 0x0, 0x0, 0x2f, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xf0, 0x1a, 0xaa, 0xab, 0xff, 0xea, 0xaa,
+    0xa0, 0x0, 0x0, 0x2f, 0xff, 0xe4, 0x0, 0x0,
+    0x0, 0xb, 0xfd, 0x7c, 0xbf, 0x90, 0x0, 0x1a,
+    0xff, 0x80, 0x7c, 0x7, 0xff, 0x90, 0x7f, 0x90,
+    0x0, 0x7c, 0x0, 0x1b, 0xfc, 0x10, 0x0, 0x0,
+    0x7c, 0x0, 0x0, 0x14,
+
     /* U+85C9 "藉" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x7, 0xc0, 0x3, 0xc0, 0x0, 0x0, 0x0,
@@ -125506,32 +133235,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xf, 0xf8, 0x0, 0x0, 0xb0, 0x0, 0x0, 0x6,
     0x40, 0x0, 0x0, 0x0,
 
-    /* U+85E0 "藠" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x3, 0xd0, 0x0, 0xb4, 0x0, 0x0, 0x0, 0xf,
-    0x40, 0x2, 0xd0, 0x0, 0xf, 0xff, 0xff, 0xff,
-    0xff, 0xff, 0xfe, 0x2a, 0xaa, 0xfe, 0xaa, 0xbf,
-    0xaa, 0xa4, 0x0, 0x3, 0xd2, 0x80, 0xb4, 0x0,
-    0x0, 0x0, 0x0, 0xf, 0x0, 0x0, 0x0, 0x0,
-    0x2a, 0xaa, 0xfe, 0xaa, 0xaa, 0x40, 0x0, 0xff,
-    0xff, 0xff, 0xff, 0xfd, 0x0, 0x3, 0xc0, 0x0,
-    0x0, 0x0, 0xb4, 0x0, 0xf, 0x40, 0x0, 0x0,
-    0x2, 0xd0, 0x0, 0x3f, 0xff, 0xff, 0xff, 0xff,
-    0x40, 0x0, 0xfa, 0xaa, 0xaa, 0xaa, 0xbd, 0x0,
-    0x3, 0xc0, 0x0, 0x0, 0x0, 0xb4, 0x0, 0xf,
-    0xff, 0xff, 0xff, 0xff, 0xd0, 0x0, 0x2a, 0xaa,
-    0xaa, 0xaa, 0xaa, 0x40, 0x0, 0xb, 0x0, 0x0,
-    0x7, 0x80, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x2d,
-    0x0, 0x0, 0xff, 0xff, 0xf8, 0xbf, 0xff, 0xfd,
-    0x3, 0xea, 0xab, 0xe2, 0xea, 0xaa, 0xf4, 0xf,
-    0x0, 0x7, 0x8b, 0x40, 0x2, 0xd0, 0x3e, 0x55,
-    0x6e, 0x2e, 0xaa, 0xaf, 0x40, 0xff, 0xff, 0xf8,
-    0xbf, 0xff, 0xfd, 0x3, 0xc0, 0x1, 0xe2, 0xd0,
-    0x0, 0xb4, 0xf, 0x0, 0x7, 0x8b, 0x40, 0x2,
-    0xd0, 0x3f, 0xff, 0xfe, 0x2f, 0xff, 0xff, 0x40,
-    0xfa, 0xaa, 0xb8, 0xbe, 0xaa, 0xbd, 0x3, 0xc0,
-    0x1, 0xe2, 0xd0, 0x0, 0xb4,
-
     /* U+85E4 "藤" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0xb4, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x0,
@@ -125560,59 +133263,59 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x3, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+85EF "藯" */
-    0x0, 0x0, 0xb0, 0x0, 0x2c, 0x0, 0x0, 0x0,
-    0x3, 0xc0, 0x0, 0xf0, 0x0, 0x1, 0xff, 0xff,
-    0xff, 0xff, 0xff, 0xff, 0xb, 0xff, 0xff, 0xff,
-    0xff, 0xff, 0xfc, 0x0, 0x0, 0xf0, 0x0, 0x3d,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x18,
-    0x0, 0x3f, 0xff, 0xff, 0xc0, 0x0, 0xb0, 0x0,
-    0xfa, 0xaa, 0xaf, 0x0, 0x2, 0xc0, 0x3, 0xc0,
-    0x0, 0x3c, 0x55, 0x5f, 0x54, 0xf, 0xff, 0xff,
-    0xf3, 0xff, 0xff, 0xf0, 0x3e, 0xaa, 0xaa, 0x81,
-    0x55, 0xf5, 0x0, 0xf1, 0x55, 0x55, 0x4, 0x2,
-    0xc0, 0x3, 0xcf, 0xff, 0xf8, 0x3c, 0xb, 0x0,
-    0xe, 0x0, 0x0, 0x0, 0xb4, 0x2c, 0x0, 0x7b,
-    0xff, 0xff, 0xe0, 0xf0, 0xb0, 0x2, 0xda, 0xab,
-    0xea, 0x42, 0xd2, 0xc0, 0xf, 0xe, 0xe, 0x38,
-    0x2, 0xb, 0x0, 0x78, 0xb4, 0x38, 0xb8, 0x0,
-    0x3c, 0x3, 0xcb, 0x57, 0xd0, 0xb4, 0x7f, 0xf0,
-    0x9, 0x24, 0xbf, 0x8, 0x41, 0xfa, 0x0, 0x1,
-    0x0, 0x40, 0xf8, 0x0, 0x1, 0x0, 0xf, 0xb,
-    0x40, 0xfc, 0x0, 0x3c, 0x0, 0xb8, 0x2d, 0x0,
-    0xf0, 0x90, 0xbc, 0x3, 0xc0, 0xb4, 0x0, 0x3,
-    0xc0, 0xf8, 0x3e, 0x2, 0xe0, 0x0, 0xf, 0x0,
-    0xf5, 0xf0, 0x7, 0xff, 0xff, 0xf8, 0x1, 0xe3,
-    0x40, 0xb, 0xff, 0xff, 0x80, 0x2, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x0,
-
-    /* U+85F6 "藶" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x78, 0x0, 0x1e, 0x0, 0x0, 0x0, 0x0,
-    0x78, 0x0, 0x1e, 0x0, 0x0, 0x3f, 0xff, 0xff,
-    0xff, 0xff, 0xff, 0xfc, 0x3f, 0xff, 0xff, 0xff,
-    0xff, 0xff, 0xfc, 0x0, 0x0, 0x78, 0x0, 0x1e,
-    0x0, 0x0, 0x0, 0x0, 0x64, 0x0, 0x19, 0x0,
-    0x0, 0x2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
-    0x3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x3,
-    0xc0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x3, 0xc1,
-    0xab, 0xfc, 0xab, 0xff, 0x80, 0x3, 0xc7, 0xff,
-    0x50, 0xfb, 0xd4, 0x0, 0x3, 0xc0, 0xf, 0x0,
-    0x3, 0xc0, 0x0, 0x3, 0xc5, 0x5f, 0x54, 0x57,
-    0xd5, 0x40, 0x3, 0xcf, 0xff, 0xfd, 0xff, 0xff,
-    0xc0, 0x3, 0xc0, 0x2f, 0x40, 0xf, 0xf4, 0x0,
-    0x3, 0xc0, 0xbf, 0xf8, 0x3f, 0xfe, 0x0, 0x3,
-    0xc3, 0xdf, 0x29, 0xf3, 0xcb, 0xd0, 0x3, 0xdf,
-    0x4f, 0xf, 0x83, 0xc1, 0xf8, 0x3, 0xdc, 0xb,
-    0xa, 0x92, 0x80, 0x24, 0x3, 0xc0, 0x18, 0x1,
-    0xe0, 0x0, 0x0, 0x7, 0x80, 0x3d, 0x1, 0xfa,
-    0xaa, 0x0, 0xb, 0x40, 0x3d, 0x1, 0xff, 0xff,
-    0x40, 0xf, 0x0, 0x3d, 0x1, 0xe0, 0x0, 0x0,
-    0x1f, 0x0, 0x3d, 0x1, 0xe0, 0x0, 0x0, 0x3d,
-    0x3f, 0xff, 0xff, 0xff, 0xff, 0xf4, 0x7c, 0x2a,
-    0xaa, 0xaa, 0xaa, 0xaa, 0xa4, 0x24, 0x0, 0x0,
+    /* U+85E9 "藩" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0,
+    0x0, 0xf4, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x0,
+    0xf4, 0x0, 0x3c, 0x0, 0x0, 0x3f, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xf8, 0x3f, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xf4, 0x0, 0x0, 0xf4, 0x0, 0x3c,
+    0x0, 0x0, 0x6, 0x0, 0xa0, 0x0, 0x14, 0x5,
+    0x40, 0xf, 0xd1, 0xaa, 0xff, 0xff, 0xff, 0xc0,
+    0x2, 0xf5, 0xff, 0xff, 0xfa, 0x64, 0x0, 0x0,
+    0xbd, 0xb, 0x2, 0xd0, 0x3c, 0x0, 0x0, 0x1c,
+    0xb, 0x82, 0xd0, 0xf4, 0x0, 0x0, 0x0, 0x3,
+    0xc2, 0xd1, 0xf0, 0x0, 0x3c, 0xb, 0xff, 0xff,
+    0xff, 0xff, 0xf4, 0x3f, 0x46, 0xaa, 0xff, 0xff,
+    0xea, 0xa4, 0xb, 0xe0, 0x1, 0xfa, 0xdb, 0xd0,
+    0x0, 0x1, 0xf4, 0xb, 0xd2, 0xd1, 0xf8, 0x0,
+    0x0, 0x70, 0xbf, 0x1, 0x80, 0x2f, 0x90, 0x0,
+    0xf, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0, 0xb,
+    0xbf, 0xff, 0xff, 0xff, 0x6c, 0x0, 0xe0, 0x78,
+    0x2, 0xd0, 0xf, 0x0, 0x1, 0xf0, 0x78, 0x2,
+    0xd0, 0xf, 0x0, 0x2, 0xe0, 0x7f, 0xff, 0xff,
+    0xff, 0x0, 0x3, 0xc0, 0x7e, 0xab, 0xfa, 0xaf,
+    0x0, 0xb, 0xc0, 0x78, 0x2, 0xd0, 0xf, 0x0,
+    0xf, 0x40, 0x78, 0x2, 0xd0, 0xf, 0x0, 0x1f,
+    0x0, 0x7f, 0xff, 0xff, 0xff, 0x0, 0x3e, 0x0,
+    0x7f, 0xff, 0xff, 0xff, 0x0, 0x2c, 0x0, 0x78,
+    0x0, 0x0, 0xf, 0x0,
+
+    /* U+85FB "藻" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xf0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x0,
+    0xf4, 0x0, 0x3c, 0x0, 0x0, 0x3f, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xf8, 0x3f, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xf4, 0x0, 0x0, 0xf0, 0x0, 0x3c,
+    0x0, 0x0, 0x1, 0x0, 0x50, 0x0, 0x14, 0x0,
+    0x0, 0xf, 0x80, 0xf, 0xff, 0xff, 0xfd, 0x0,
+    0x7, 0xf8, 0xf, 0x95, 0x55, 0x7d, 0x0, 0x0,
+    0x7f, 0xf, 0x0, 0x0, 0x2d, 0x0, 0x0, 0xe,
+    0xf, 0xff, 0xff, 0xfd, 0x0, 0x0, 0x0, 0xa,
+    0xaa, 0xaa, 0xa8, 0x0, 0x38, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x7f, 0x40, 0xbf, 0xfe, 0x1f,
+    0xff, 0xc0, 0xb, 0xe0, 0xb9, 0x6e, 0x1e, 0x57,
+    0xc0, 0x1, 0xf4, 0xb0, 0xe, 0x1d, 0x3, 0xc0,
+    0x0, 0x30, 0xb5, 0x6e, 0x1e, 0x57, 0xc0, 0x0,
+    0x0, 0xbf, 0xfe, 0x1f, 0xff, 0xc0, 0x0, 0x0,
+    0x0, 0x1, 0x90, 0x0, 0x0, 0x0, 0xb4, 0x0,
+    0x2, 0xe0, 0x0, 0x0, 0x0, 0xf6, 0xff, 0xff,
+    0xff, 0xff, 0xf0, 0x1, 0xf1, 0xaa, 0xaf, 0xfe,
+    0xaa, 0xa0, 0x3, 0xd0, 0x0, 0x2f, 0xfe, 0x0,
+    0x0, 0x7, 0xc0, 0x1, 0xfe, 0xeb, 0xe0, 0x0,
+    0xf, 0x80, 0x2f, 0xe2, 0xe1, 0xfe, 0x40, 0x1f,
+    0xb, 0xfe, 0x2, 0xe0, 0x1f, 0xfc, 0x3e, 0xb,
+    0xd0, 0x2, 0xe0, 0x0, 0xbc, 0x8, 0x0, 0x0,
+    0x2, 0xe0, 0x0, 0x0,
 
     /* U+85FF "藿" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -125641,33 +133344,60 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xff, 0xff, 0xff, 0xff, 0xfd, 0x0, 0x2d, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
-    /* U+860B "蘋" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0xb4, 0x0, 0x2d, 0x0, 0x0, 0x0, 0x0,
-    0xb4, 0x0, 0x2d, 0x0, 0x0, 0x7f, 0xff, 0xff,
-    0xff, 0xff, 0xff, 0xf8, 0x7f, 0xff, 0xff, 0xff,
-    0xff, 0xff, 0xfc, 0x0, 0x0, 0xb4, 0x0, 0x2d,
-    0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x1d, 0x0,
-    0x0, 0x0, 0x2, 0xd0, 0x0, 0x0, 0x0, 0x0,
-    0x2, 0x82, 0xd0, 0x2f, 0xff, 0xff, 0xf0, 0x3,
-    0xc2, 0xea, 0x5a, 0xaf, 0xaa, 0xa0, 0x3, 0xc2,
-    0xff, 0xc0, 0xf, 0x0, 0x0, 0x3, 0xc2, 0xd0,
-    0x5, 0x6f, 0x55, 0x40, 0x3, 0xc2, 0xd0, 0xb,
-    0xff, 0xff, 0xc0, 0x3, 0xc2, 0xd0, 0xb, 0x0,
-    0x3, 0xc0, 0x3f, 0xff, 0xff, 0xdb, 0x95, 0x57,
-    0xc0, 0x2a, 0xab, 0xea, 0x8b, 0xff, 0xff, 0xc0,
-    0x0, 0x3, 0xc0, 0xb, 0x0, 0x3, 0xc0, 0x1,
-    0xd3, 0xc1, 0x4b, 0x0, 0x3, 0xc0, 0x3, 0xc3,
-    0xc3, 0xcb, 0xff, 0xff, 0xc0, 0x7, 0x83, 0xc7,
-    0x8b, 0x95, 0x57, 0xc0, 0xf, 0x3, 0xcf, 0xb,
-    0x0, 0x3, 0xc0, 0x2e, 0x2, 0xbd, 0xb, 0xff,
-    0xff, 0xc0, 0x8, 0x0, 0xf8, 0x6, 0xaa, 0xaa,
-    0x80, 0x0, 0x7, 0xe0, 0x0, 0xb0, 0x38, 0x0,
-    0x0, 0x2f, 0x40, 0x7, 0xf0, 0x3f, 0x40, 0x2,
-    0xfc, 0x0, 0x7f, 0x80, 0x7, 0xe0, 0x2f, 0xd0,
-    0x3, 0xfc, 0x0, 0x0, 0xfc, 0x1d, 0x0, 0x2,
-    0xd0, 0x0, 0x0, 0x24, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0,
+    /* U+8605 "蘅" */
+    0x0, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0,
+    0x0, 0xf, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x0,
+    0x3, 0xc0, 0x0, 0xf0, 0x0, 0x0, 0x3f, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xf0, 0xf, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xfc, 0x0, 0x0, 0xf, 0x0,
+    0x3, 0xc0, 0x0, 0x0, 0x0, 0xa2, 0x9f, 0x0,
+    0xa0, 0x0, 0x0, 0x0, 0x7c, 0xf, 0x95, 0x50,
+    0x0, 0x0, 0x0, 0x7d, 0xf, 0xff, 0xf8, 0xff,
+    0xfc, 0x0, 0x7e, 0xf, 0x80, 0x3d, 0x3f, 0xff,
+    0x0, 0x7e, 0xf, 0x80, 0x3d, 0x0, 0x0, 0x0,
+    0x7e, 0x12, 0xff, 0xff, 0xf4, 0x0, 0x0, 0xe,
+    0xf, 0x2e, 0xae, 0xad, 0x0, 0x0, 0x0, 0xb,
+    0xcb, 0x7, 0x7, 0x40, 0x0, 0x0, 0x7, 0xd2,
+    0xea, 0xea, 0xdf, 0xff, 0xf0, 0x3, 0xe0, 0xbf,
+    0xff, 0xf7, 0xff, 0xfc, 0x3, 0xf8, 0x2c, 0x1c,
+    0x1d, 0x3, 0xc0, 0x3, 0xfe, 0xb, 0x9b, 0x9b,
+    0x40, 0xf0, 0x3, 0xfb, 0x82, 0xff, 0xff, 0xd0,
+    0x3c, 0x0, 0xf1, 0xe0, 0x0, 0xb4, 0x0, 0xf,
+    0x0, 0x0, 0x78, 0x6a, 0xbf, 0xaa, 0x43, 0xc0,
+    0x0, 0x1e, 0x3f, 0xff, 0xff, 0xf0, 0xf0, 0x0,
+    0x7, 0x80, 0x3, 0xe0, 0x0, 0x3c, 0x0, 0x1,
+    0xe0, 0x2, 0xff, 0x40, 0xf, 0x0, 0x0, 0x78,
+    0x7, 0xf1, 0xfd, 0x3, 0xc0, 0x0, 0x1e, 0x1f,
+    0xf0, 0xb, 0x8b, 0xf0, 0x0, 0x7, 0x8f, 0xd0,
+    0x0, 0x43, 0xf8, 0x0, 0x1, 0xe0, 0x40, 0x0,
+    0x0, 0x54, 0x0,
+
+    /* U+8611 "蘑" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x78, 0x0, 0xf, 0x40, 0x0, 0x0, 0x0,
+    0x78, 0x0, 0xf, 0x40, 0x0, 0x1f, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xfc, 0x1a, 0xaa, 0xfe, 0xaa,
+    0xaf, 0xea, 0xa8, 0x0, 0x0, 0x78, 0x19, 0xf,
+    0x40, 0x0, 0x0, 0x0, 0x64, 0x1f, 0xa, 0x0,
+    0x0, 0x1, 0xaa, 0xaa, 0xaf, 0xaa, 0xaa, 0xa0,
+    0x2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf4, 0x2,
+    0xd0, 0x6, 0x0, 0x1, 0x80, 0x0, 0x2, 0xd0,
+    0xb, 0x0, 0x1, 0xd0, 0x0, 0x2, 0xdb, 0xff,
+    0xfe, 0xbf, 0xff, 0xf0, 0x2, 0xd6, 0xaf, 0xa9,
+    0x6b, 0xfa, 0xa0, 0x2, 0xd0, 0x3f, 0xe0, 0xb,
+    0xfc, 0x0, 0x2, 0xd1, 0xff, 0xbc, 0x3f, 0xdf,
+    0x80, 0x2, 0xeb, 0xcb, 0x1d, 0xf5, 0xd2, 0xf4,
+    0x2, 0xfe, 0xb, 0x3, 0xc1, 0xd0, 0x7d, 0x3,
+    0xd4, 0x6, 0x0, 0x1, 0x80, 0x4, 0x3, 0xda,
+    0xaa, 0xaa, 0xaa, 0xaa, 0xa0, 0x3, 0xcf, 0xff,
+    0xff, 0xff, 0xff, 0xf4, 0x3, 0xc0, 0xb, 0xc0,
+    0x0, 0x0, 0x0, 0x7, 0xc0, 0x3f, 0x95, 0x55,
+    0x55, 0x0, 0xb, 0x81, 0xff, 0xff, 0xff, 0xff,
+    0x0, 0xf, 0x1f, 0xfc, 0x0, 0x0, 0xf, 0x0,
+    0x1f, 0xbe, 0x3c, 0x0, 0x0, 0xf, 0x0, 0x3d,
+    0x74, 0x3e, 0xaa, 0xaa, 0xaf, 0x0, 0x7c, 0x0,
+    0x3f, 0xff, 0xff, 0xff, 0x0, 0x64, 0x0, 0x3c,
+    0x0, 0x0, 0xf, 0x0,
 
     /* U+8616 "蘖" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -125696,35 +133426,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x7c, 0x0, 0x6, 0xfc, 0x10, 0x0, 0x0,
     0x7c, 0x0, 0x0, 0x4,
 
-    /* U+8618 "蘘" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0xb, 0x40, 0x1, 0xe0, 0x0, 0x0, 0x0,
-    0x2, 0xd0, 0x0, 0x78, 0x0, 0x0, 0x1f, 0xff,
-    0xff, 0xff, 0xff, 0xff, 0xf4, 0x6, 0xaa, 0xbf,
-    0xaa, 0xaf, 0xea, 0xa9, 0x0, 0x0, 0xb, 0x42,
-    0x1, 0xe0, 0x0, 0x0, 0x0, 0x1, 0x81, 0xe0,
-    0x24, 0x0, 0x0, 0x5, 0x55, 0x55, 0x7d, 0x55,
-    0x55, 0x50, 0xb, 0xff, 0xff, 0xff, 0xff, 0xff,
-    0xfd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x7, 0xff, 0xfe, 0xf, 0xff, 0xfc, 0x0,
-    0x1, 0xe5, 0x5b, 0x83, 0xd5, 0x5f, 0x0, 0x0,
-    0x79, 0x55, 0xe0, 0xf5, 0x57, 0xc0, 0x0, 0x1f,
-    0xff, 0xf8, 0x3f, 0xff, 0xf0, 0x0, 0x0, 0x2,
-    0xe0, 0x0, 0xf0, 0x0, 0x0, 0xb, 0xff, 0xff,
-    0xff, 0xff, 0xff, 0xd0, 0x1, 0x55, 0x6e, 0x55,
-    0x5f, 0x95, 0x50, 0x0, 0x15, 0x5b, 0x95, 0x57,
-    0xe5, 0x54, 0x0, 0xf, 0xff, 0xff, 0xff, 0xff,
-    0xfe, 0x0, 0x0, 0x0, 0x74, 0x0, 0x3c, 0x0,
-    0x0, 0xf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe,
-    0x1, 0x55, 0x55, 0xff, 0xe5, 0x56, 0xf5, 0x40,
-    0x0, 0x2, 0xfe, 0xbd, 0x2, 0xfc, 0x0, 0x0,
-    0x6f, 0xf8, 0x7, 0xeb, 0xf4, 0x0, 0x2f, 0xff,
-    0xf8, 0x1, 0x6f, 0xf4, 0x0, 0xb, 0xe4, 0x2e,
-    0x6f, 0xe0, 0xbf, 0xfa, 0x40, 0x0, 0xf, 0xff,
-    0xa0, 0x0, 0x6f, 0xf0, 0x0, 0x3, 0x94, 0x0,
-    0x0, 0x0, 0x14, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0,
-
     /* U+8627 "蘧" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0xb, 0x0, 0x1, 0xe0, 0x0, 0x0, 0x0,
@@ -125833,6 +133534,31 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0xf0, 0x3c, 0x0, 0x0, 0x24, 0x0,
     0x0, 0xf0, 0x3c, 0x0, 0x0,
 
+    /* U+864D "虍" */
+    0x0, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x3, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f,
+    0xff, 0xff, 0xe0, 0x0, 0x0, 0x0, 0xff, 0xff,
+    0xff, 0x80, 0x0, 0x0, 0x3, 0xc0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0xf, 0x0, 0x0, 0x0, 0x0,
+    0x15, 0x55, 0x7d, 0x55, 0x55, 0x54, 0x0, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xf0, 0x3, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xc0, 0xf, 0x0, 0x0, 0x0,
+    0x0, 0x2e, 0x0, 0x3c, 0x0, 0x3c, 0x0, 0x0,
+    0xf0, 0x0, 0xf0, 0x0, 0xf0, 0x0, 0x7, 0xc0,
+    0x3, 0xc0, 0x3, 0xc0, 0x0, 0x0, 0x0, 0xf,
+    0x0, 0xf, 0x0, 0x0, 0x0, 0x0, 0x3c, 0x0,
+    0x3d, 0x6a, 0xff, 0xd0, 0x1, 0xf6, 0xff, 0xff,
+    0xff, 0xff, 0x40, 0x7, 0xaf, 0xff, 0xfa, 0x54,
+    0x0, 0x0, 0x2e, 0x54, 0xf, 0x0, 0x0, 0x0,
+    0x0, 0xf4, 0x0, 0x3c, 0x0, 0x0, 0x50, 0x3,
+    0xc0, 0x0, 0xf0, 0x0, 0x2, 0xe0, 0x1f, 0x0,
+    0x3, 0xc0, 0x0, 0xb, 0x40, 0xf8, 0x0, 0xf,
+    0x40, 0x0, 0x3d, 0x7, 0xc0, 0x0, 0x3f, 0x40,
+    0x6, 0xf0, 0x3e, 0x0, 0x0, 0xbf, 0xff, 0xff,
+    0xc1, 0xf0, 0x0, 0x0, 0x7f, 0xff, 0xf8, 0x2,
+    0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+864E "虎" */
     0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x3, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -126024,6 +133750,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x6, 0xbd, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+8662 "虢" */
+    0x0, 0x0, 0x0, 0x0, 0x14, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0xb4, 0x0, 0x0, 0x5, 0x6b,
+    0xf0, 0x2, 0xd0, 0x0, 0xf, 0xff, 0xff, 0xc0,
+    0xb, 0xff, 0xf8, 0x3f, 0xe9, 0x40, 0x0, 0x2f,
+    0xaa, 0x90, 0x0, 0x40, 0x24, 0x0, 0xb4, 0x0,
+    0x3, 0x83, 0x80, 0xd6, 0xab, 0xfa, 0xaa, 0xb,
+    0xb, 0xb, 0x2f, 0xff, 0xff, 0xfc, 0xd, 0x1d,
+    0x38, 0xb4, 0x0, 0x0, 0xb0, 0x3c, 0x39, 0xd2,
+    0xc0, 0xb0, 0x3, 0xc0, 0xb0, 0x4f, 0xb, 0x2,
+    0xc0, 0xe, 0x0, 0x40, 0x0, 0x2c, 0x5f, 0xff,
+    0x0, 0x0, 0x3, 0xc0, 0xb7, 0xff, 0xa4, 0x80,
+    0x0, 0xf, 0x2, 0xc4, 0xb0, 0x3, 0x4b, 0xff,
+    0xff, 0xdb, 0x2, 0xe0, 0x2c, 0x3f, 0xff, 0xff,
+    0xac, 0x3, 0xff, 0xf0, 0x0, 0x3, 0xc0, 0xb0,
+    0x1, 0x65, 0x0, 0x20, 0xf, 0x3, 0xc0, 0x0,
+    0x0, 0x1, 0xe0, 0x3c, 0xf, 0xb, 0xff, 0x80,
+    0x2, 0xd0, 0xf0, 0x3c, 0x3f, 0xff, 0x0, 0x3,
+    0xc3, 0xc0, 0xe0, 0xf0, 0x3c, 0x0, 0xb, 0x4f,
+    0x7, 0x83, 0xc0, 0xf0, 0x0, 0x4, 0x3c, 0x3c,
+    0xf, 0x3, 0xc2, 0xc0, 0x0, 0xf0, 0xf0, 0x38,
+    0xf, 0xb, 0x0, 0x3, 0xcb, 0x82, 0xd0, 0x3c,
+    0x3c, 0x6, 0xbe, 0x3c, 0x1e, 0x0, 0xff, 0xe0,
+    0x1f, 0xe2, 0xe1, 0xf0, 0x2, 0xff, 0x0, 0x10,
+    0x1, 0x2, 0x0, 0x0, 0x0,
+
     /* U+866B "虫" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x1f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1,
@@ -126050,6 +133802,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0x0, 0x0, 0xc, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+866C "虬" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x3c, 0x0, 0x3, 0xd0, 0x0, 0x0, 0x0, 0xf0,
+    0x0, 0xf, 0x40, 0x0, 0x0, 0x3, 0xc0, 0x0,
+    0x3d, 0x0, 0x0, 0x0, 0xf, 0x0, 0x0, 0xf4,
+    0x0, 0x0, 0x0, 0x3d, 0x0, 0x3, 0xd0, 0x0,
+    0x0, 0xff, 0xff, 0xfc, 0xf, 0x40, 0x0, 0x3,
+    0xff, 0xff, 0xf0, 0x3d, 0x0, 0x0, 0xf, 0xf,
+    0x3, 0xc0, 0xf4, 0x0, 0x0, 0x3c, 0x3c, 0xf,
+    0x3, 0xd0, 0x0, 0x0, 0xf0, 0xf0, 0x3c, 0xf,
+    0x40, 0x0, 0x3, 0xc3, 0xc0, 0xf0, 0x3d, 0x0,
+    0x0, 0xf, 0xf, 0x3, 0xc0, 0xf4, 0x0, 0x0,
+    0x3c, 0x3c, 0xf, 0x3, 0xd0, 0x0, 0x0, 0xf0,
+    0xf0, 0x3c, 0xf, 0x40, 0x0, 0x3, 0xff, 0xff,
+    0xf0, 0x3d, 0x0, 0x0, 0xf, 0xff, 0xff, 0xc0,
+    0xf4, 0x0, 0x0, 0x0, 0x3d, 0x0, 0x3, 0xd0,
+    0x0, 0x0, 0x0, 0xf0, 0x10, 0xf, 0x40, 0x0,
+    0x0, 0x3, 0xc1, 0xe0, 0x3d, 0x0, 0x9, 0x0,
+    0xf, 0x3, 0xc0, 0xf4, 0x0, 0x3c, 0x0, 0x3c,
+    0xf, 0x3, 0xd0, 0x0, 0xf0, 0x0, 0xf5, 0x7e,
+    0xf, 0x40, 0x7, 0xc5, 0xaf, 0xff, 0xfc, 0x3d,
+    0x0, 0x1e, 0xff, 0xff, 0xe9, 0xf0, 0xfd, 0x1,
+    0xfa, 0xe9, 0x0, 0x2, 0xd2, 0xff, 0xff, 0xc0,
+    0x0, 0x0, 0x7, 0x42, 0xff, 0xfd, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+866E "虮" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0xf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf,
@@ -126102,6 +133880,110 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xd0, 0x0, 0x0, 0x0, 0x0, 0x80, 0x7d, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+8679 "虹" */
+    0x0, 0xf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf,
+    0x0, 0x5, 0x55, 0x55, 0x50, 0x0, 0xf, 0x0,
+    0xf, 0xff, 0xff, 0xf4, 0x0, 0xf, 0x0, 0xf,
+    0xff, 0xff, 0xf4, 0xf, 0xff, 0xff, 0x0, 0x3,
+    0xc0, 0x0, 0xf, 0xff, 0xff, 0x0, 0x3, 0xc0,
+    0x0, 0xf, 0xf, 0xf, 0x0, 0x3, 0xc0, 0x0,
+    0xf, 0xf, 0xf, 0x0, 0x3, 0xc0, 0x0, 0xf,
+    0xf, 0xf, 0x0, 0x3, 0xc0, 0x0, 0xf, 0xf,
+    0xf, 0x0, 0x3, 0xc0, 0x0, 0xf, 0xf, 0xf,
+    0x0, 0x3, 0xc0, 0x0, 0xf, 0xf, 0xf, 0x0,
+    0x3, 0xc0, 0x0, 0xf, 0xf, 0xf, 0x0, 0x3,
+    0xc0, 0x0, 0xf, 0xff, 0xff, 0x0, 0x3, 0xc0,
+    0x0, 0xf, 0xff, 0xff, 0x0, 0x3, 0xc0, 0x0,
+    0x0, 0xf, 0x0, 0x0, 0x3, 0xc0, 0x0, 0x0,
+    0xf, 0x5, 0x0, 0x3, 0xc0, 0x0, 0x0, 0xf,
+    0x1e, 0x0, 0x3, 0xc0, 0x0, 0x0, 0xf, 0xf,
+    0x0, 0x3, 0xc0, 0x0, 0x0, 0xf, 0xb, 0x40,
+    0x3, 0xc0, 0x0, 0x0, 0x1f, 0xbf, 0x80, 0x3,
+    0xc0, 0x0, 0xbf, 0xff, 0xff, 0xc0, 0x3, 0xc0,
+    0x0, 0xff, 0xf9, 0x43, 0xdf, 0xff, 0xff, 0xfc,
+    0x50, 0x0, 0x2, 0xdf, 0xff, 0xff, 0xfc, 0x0,
+    0x0, 0x0, 0x1, 0x55, 0x55, 0x54,
+
+    /* U+867A "虺" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0xf, 0x0, 0x0, 0x15, 0x55,
+    0x55, 0x0, 0xf, 0x0, 0x0, 0x3f, 0xff, 0xff,
+    0x80, 0xf, 0x0, 0x0, 0x2b, 0xfa, 0xfa, 0x40,
+    0xf, 0x0, 0x0, 0x2, 0xd0, 0xf0, 0x3f, 0xff,
+    0xff, 0xc0, 0x2, 0xd0, 0xf0, 0x3f, 0xff, 0xff,
+    0xc0, 0x2, 0xd0, 0xf0, 0x3c, 0xf, 0x3, 0xc0,
+    0x2, 0xd0, 0xf0, 0x3c, 0xf, 0x3, 0xc0, 0x2,
+    0xd0, 0xf0, 0x3c, 0xf, 0x3, 0xc0, 0x2, 0xd0,
+    0xf0, 0x3c, 0xf, 0x3, 0xc0, 0x2, 0xd0, 0xf0,
+    0x3c, 0xf, 0x3, 0xc0, 0x2, 0xd0, 0xf0, 0x3f,
+    0xff, 0xff, 0xc0, 0x2, 0xd0, 0xf0, 0x3f, 0xff,
+    0xff, 0xc0, 0x2, 0xd0, 0xf0, 0x0, 0xf, 0x0,
+    0x0, 0x3, 0xd0, 0xf0, 0x0, 0xf, 0x6, 0x0,
+    0x3, 0xd0, 0xf0, 0x0, 0xf, 0x7, 0x80, 0x3,
+    0xc0, 0xf0, 0x0, 0xf, 0x3, 0xc0, 0x3, 0xc0,
+    0xf0, 0x0, 0xf, 0xab, 0xd0, 0x3, 0xc0, 0xf0,
+    0xaf, 0xff, 0xff, 0xe0, 0xb, 0x80, 0xf0, 0xff,
+    0xfe, 0x94, 0xf0, 0xf, 0x40, 0xf0, 0x50, 0x0,
+    0x0, 0xa0, 0xf, 0x0, 0xf4, 0x0, 0x0, 0x0,
+    0x18, 0x1f, 0x0, 0xf8, 0x0, 0x0, 0x0, 0x2e,
+    0x3d, 0x0, 0xbe, 0x55, 0x55, 0x55, 0xbd, 0x7c,
+    0x0, 0x3f, 0xff, 0xff, 0xff, 0xfc, 0x78, 0x0,
+    0xa, 0xbf, 0xff, 0xfa, 0x90, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
+    /* U+867B "虻" */
+    0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xf, 0x0, 0x0, 0x7, 0x40, 0x0, 0x0, 0xf,
+    0x0, 0x0, 0x7, 0x80, 0x0, 0x0, 0xf, 0x0,
+    0x0, 0x3, 0xc0, 0x0, 0x0, 0xf, 0x0, 0x0,
+    0x3, 0xd0, 0x0, 0x0, 0xf, 0x0, 0x0, 0x2,
+    0xe0, 0x0, 0xf, 0xff, 0xff, 0x3f, 0xff, 0xff,
+    0xfd, 0xf, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xfd,
+    0xf, 0xf, 0xf, 0x7, 0xd0, 0x0, 0x0, 0xf,
+    0xf, 0xf, 0x3, 0xc0, 0x0, 0x0, 0xf, 0xf,
+    0xf, 0x3, 0xc0, 0x0, 0x0, 0xf, 0xf, 0xf,
+    0x3, 0xc0, 0x0, 0x0, 0xf, 0xf, 0xf, 0x3,
+    0xc0, 0x0, 0x0, 0xf, 0xf, 0xf, 0x3, 0xc0,
+    0x0, 0x0, 0xf, 0xf, 0xf, 0x3, 0xc0, 0x0,
+    0x0, 0xf, 0xf, 0xf, 0x3, 0xc0, 0x0, 0x0,
+    0xf, 0xff, 0xff, 0x3, 0xc0, 0x0, 0x0, 0xf,
+    0xff, 0xff, 0x3, 0xc0, 0x0, 0x0, 0x0, 0xf,
+    0x0, 0x3, 0xc0, 0x0, 0x0, 0x0, 0xf, 0xe,
+    0x3, 0xc0, 0x0, 0x0, 0x0, 0xf, 0xf, 0x3,
+    0xc0, 0x0, 0x0, 0x0, 0xf, 0xb, 0x43, 0xc0,
+    0x0, 0x0, 0x0, 0xf, 0x1b, 0x83, 0xc0, 0x0,
+    0x0, 0x16, 0xbf, 0xff, 0xc3, 0xc0, 0x0, 0x0,
+    0xbf, 0xff, 0xa7, 0xd3, 0xff, 0xff, 0xf0, 0x69,
+    0x40, 0x1, 0xe3, 0xff, 0xff, 0xf4, 0x0, 0x0,
+    0x0, 0x81, 0x55, 0x55, 0x50,
+
+    /* U+867C "虼" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x3c, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0xf0,
+    0x0, 0xb, 0x80, 0x0, 0x0, 0x3, 0xc0, 0x0,
+    0x3d, 0x0, 0x0, 0x0, 0xf, 0x0, 0x2, 0xf5,
+    0x55, 0x54, 0x0, 0x3c, 0x0, 0xf, 0xff, 0xff,
+    0xf0, 0xff, 0xff, 0xf0, 0xbf, 0xff, 0xff, 0x83,
+    0xff, 0xff, 0xc3, 0xd0, 0x0, 0x0, 0xf, 0xf,
+    0xf, 0x3f, 0x0, 0x0, 0x0, 0x3c, 0x3c, 0x3d,
+    0xf4, 0x0, 0x0, 0x0, 0xf0, 0xf0, 0xfb, 0x80,
+    0x0, 0x0, 0x3, 0xc3, 0xc3, 0xc5, 0xff, 0xff,
+    0xc0, 0xf, 0xf, 0xf, 0x7, 0xff, 0xff, 0x0,
+    0x3c, 0x3c, 0x3c, 0x0, 0x1, 0xf4, 0x0, 0xf0,
+    0xf0, 0xf0, 0x0, 0x1f, 0x80, 0x3, 0xff, 0xff,
+    0xc0, 0x0, 0xf8, 0x0, 0xf, 0xff, 0xff, 0x0,
+    0xf, 0xc0, 0x0, 0x15, 0x7d, 0x50, 0x0, 0xfc,
+    0x0, 0x0, 0x0, 0xf0, 0x0, 0xb, 0xc0, 0x0,
+    0x0, 0x3, 0xc7, 0x40, 0x7d, 0x0, 0x0, 0x0,
+    0xf, 0xe, 0x3, 0xe0, 0x0, 0x20, 0x0, 0x3c,
+    0x3c, 0x2f, 0x0, 0x1, 0xe0, 0x0, 0xf6, 0xf4,
+    0xf4, 0x0, 0x7, 0x85, 0xaf, 0xff, 0xe7, 0xc0,
+    0x0, 0x2e, 0x7f, 0xff, 0xa7, 0xdf, 0x40, 0x1,
+    0xf4, 0xe9, 0x0, 0xf, 0x7f, 0xff, 0xff, 0xc0,
+    0x0, 0x0, 0x10, 0x7f, 0xff, 0xfc, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+867D "虽" */
     0x0, 0x3f, 0xff, 0xff, 0xff, 0xf0, 0x0, 0x1,
     0xff, 0xff, 0xff, 0xff, 0xc0, 0x0, 0x7, 0xc0,
@@ -126127,6 +134009,58 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xf4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x40,
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+867E "虾" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0x0,
+    0xbf, 0xff, 0xff, 0xfc, 0x0, 0xf, 0x0, 0xbf,
+    0xff, 0xff, 0xfc, 0x0, 0xf, 0x0, 0x0, 0x3d,
+    0x0, 0x0, 0xf, 0xff, 0xff, 0x0, 0x3c, 0x0,
+    0x0, 0xf, 0xff, 0xff, 0x0, 0x3c, 0x0, 0x0,
+    0xf, 0xf, 0xf, 0x0, 0x3c, 0x0, 0x0, 0xf,
+    0xf, 0xf, 0x0, 0x3c, 0x0, 0x0, 0xf, 0xf,
+    0xf, 0x0, 0x3c, 0x0, 0x0, 0xf, 0xf, 0xf,
+    0x0, 0x3f, 0xd0, 0x0, 0xf, 0xf, 0xf, 0x0,
+    0x3f, 0xf4, 0x0, 0xf, 0xf, 0xf, 0x0, 0x3c,
+    0xbd, 0x0, 0xf, 0xf, 0xf, 0x0, 0x3c, 0x3f,
+    0x40, 0xf, 0xf, 0xf, 0x0, 0x3c, 0xf, 0xd0,
+    0xf, 0xff, 0xff, 0x0, 0x3c, 0x3, 0xf0, 0xf,
+    0xff, 0xfe, 0x0, 0x3c, 0x0, 0xf4, 0x0, 0xf,
+    0x0, 0x0, 0x3c, 0x0, 0x60, 0x0, 0xf, 0xb,
+    0x0, 0x3c, 0x0, 0x0, 0x0, 0xf, 0xb, 0x40,
+    0x3c, 0x0, 0x0, 0x0, 0xf, 0x7, 0x80, 0x3c,
+    0x0, 0x0, 0x0, 0xf, 0x6b, 0xc0, 0x3c, 0x0,
+    0x0, 0x5a, 0xff, 0xff, 0xd0, 0x3c, 0x0, 0x0,
+    0xff, 0xfe, 0x51, 0xe0, 0x3c, 0x0, 0x0, 0xa5,
+    0x0, 0x0, 0xf0, 0x3c, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xe0, 0x3c, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x3c, 0x0, 0x0,
+
+    /* U+867F "虿" */
+    0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x0, 0x1f,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7c, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x2, 0xfa, 0xaa, 0xaa,
+    0xaa, 0x0, 0x0, 0xf, 0xff, 0xff, 0xff, 0xf8,
+    0x0, 0x0, 0xbc, 0x0, 0x0, 0x3, 0xe0, 0x0,
+    0xb, 0xc0, 0x0, 0x0, 0xf, 0x40, 0x0, 0xbd,
+    0x0, 0x64, 0x0, 0xbd, 0x0, 0x1f, 0xd0, 0x2,
+    0xe0, 0xbf, 0xf0, 0x7, 0xfd, 0x0, 0xb, 0x81,
+    0xfa, 0x0, 0x1f, 0x80, 0x0, 0x2e, 0x0, 0x0,
+    0x0, 0x10, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0,
+    0x3, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x0, 0xf,
+    0x40, 0xb, 0x80, 0x3, 0xc0, 0x0, 0x3d, 0x0,
+    0x2e, 0x0, 0xf, 0x0, 0x0, 0xf4, 0x0, 0xb8,
+    0x0, 0x3c, 0x0, 0x3, 0xff, 0xff, 0xff, 0xff,
+    0xf0, 0x0, 0xa, 0xaa, 0xaf, 0xea, 0xaa, 0x80,
+    0x0, 0x0, 0x0, 0x2e, 0x0, 0x18, 0x0, 0x0,
+    0x0, 0x0, 0xb8, 0x0, 0xf4, 0x0, 0x0, 0x0,
+    0x2, 0xe0, 0x1, 0xf4, 0x0, 0x5a, 0xaa, 0xaf,
+    0xff, 0xff, 0xf0, 0x3, 0xff, 0xff, 0xff, 0xff,
+    0xeb, 0xf0, 0xa, 0x55, 0x50, 0x0, 0x0, 0x3,
+    0xd0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+8680 "蚀" */
     0x0, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0,
     0xf, 0x40, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x3,
@@ -126155,6 +134089,58 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x10,
 
+    /* U+8681 "蚁" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xf, 0x0, 0x0, 0x18, 0x0, 0x0, 0x0, 0xf,
+    0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0xf, 0x0,
+    0x0, 0x2e, 0x0, 0x40, 0x0, 0xf, 0x0, 0x28,
+    0xf, 0x1, 0xf0, 0x0, 0xf, 0x0, 0x3c, 0xf,
+    0x42, 0xe0, 0xf, 0xff, 0xff, 0x3c, 0x7, 0xc2,
+    0xd0, 0xf, 0xff, 0xff, 0x2d, 0x3, 0xc3, 0xc0,
+    0xf, 0xf, 0xf, 0x1e, 0x2, 0x43, 0xc0, 0xf,
+    0xf, 0xf, 0xf, 0x0, 0x7, 0x80, 0xf, 0xf,
+    0xf, 0xb, 0x40, 0xb, 0x40, 0xf, 0xf, 0xf,
+    0x7, 0x80, 0xf, 0x0, 0xf, 0xf, 0xf, 0x3,
+    0xc0, 0x1f, 0x0, 0xf, 0xf, 0xf, 0x2, 0xd0,
+    0x2e, 0x0, 0xf, 0xf, 0xf, 0x0, 0xf0, 0x3c,
+    0x0, 0xf, 0xff, 0xff, 0x0, 0xf4, 0xbc, 0x0,
+    0xf, 0xff, 0xff, 0x0, 0x7c, 0xf4, 0x0, 0x0,
+    0xf, 0x0, 0x0, 0x2f, 0xf0, 0x0, 0x0, 0xf,
+    0xd, 0x0, 0xf, 0xd0, 0x0, 0x0, 0xf, 0xf,
+    0x0, 0xf, 0xc0, 0x0, 0x0, 0xf, 0xb, 0x0,
+    0x3f, 0xf0, 0x0, 0x0, 0xf, 0xb, 0x80, 0xfd,
+    0xf8, 0x0, 0x0, 0x5f, 0xff, 0xc3, 0xf4, 0x3f,
+    0x0, 0xbf, 0xff, 0xfb, 0xcf, 0xd0, 0x1f, 0xc0,
+    0xbf, 0xa4, 0x1, 0xbf, 0x40, 0x3, 0xf4, 0x0,
+    0x0, 0x2, 0xfc, 0x0, 0x0, 0xfe, 0x0, 0x0,
+    0x3, 0xe0, 0x0, 0x0, 0x2d, 0x0, 0x0, 0x0,
+    0x40, 0x0, 0x0, 0x4,
+
+    /* U+8682 "蚂" */
+    0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x3c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf0,
+    0x3, 0xff, 0xff, 0xf4, 0x0, 0x3, 0xc0, 0xb,
+    0xff, 0xff, 0xc0, 0x0, 0xf, 0x0, 0x0, 0x0,
+    0xf, 0x0, 0x3f, 0xff, 0xfc, 0xf, 0x0, 0x3c,
+    0x0, 0xff, 0xff, 0xf0, 0x3c, 0x0, 0xf0, 0x3,
+    0x83, 0xc3, 0xc0, 0xf0, 0x7, 0xc0, 0xe, 0xf,
+    0xf, 0x7, 0x80, 0x1f, 0x0, 0x38, 0x3c, 0x3c,
+    0x1e, 0x0, 0x78, 0x0, 0xe0, 0xf0, 0xf0, 0x78,
+    0x2, 0xe0, 0x3, 0x83, 0xc3, 0xc2, 0xd0, 0xb,
+    0x40, 0xe, 0xf, 0xf, 0xb, 0x95, 0x7e, 0x50,
+    0x38, 0x3c, 0x3c, 0x2f, 0xff, 0xff, 0xc0, 0xff,
+    0xff, 0xf0, 0xbf, 0xff, 0xff, 0x3, 0xff, 0xff,
+    0xc0, 0x0, 0x0, 0x3c, 0x0, 0xf, 0x0, 0x0,
+    0x0, 0x0, 0xf0, 0x0, 0x3c, 0x10, 0x0, 0x0,
+    0x3, 0xc0, 0x0, 0xf2, 0xd7, 0xff, 0xff, 0x4f,
+    0x0, 0x3, 0xc3, 0x9f, 0xff, 0xfe, 0x7c, 0x0,
+    0xf, 0xf, 0x15, 0x55, 0x51, 0xf0, 0x0, 0x3d,
+    0xbd, 0x0, 0x0, 0x7, 0x86, 0xff, 0xff, 0xf8,
+    0x0, 0x0, 0x2e, 0x2f, 0xfe, 0x95, 0xf0, 0x0,
+    0x1, 0xf4, 0x0, 0x0, 0x3, 0xc0, 0x7, 0xff,
+    0xc0, 0x0, 0x0, 0x4, 0x0, 0xf, 0xf8, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+868A "蚊" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x3, 0xc0, 0x0, 0x7, 0x80, 0x0, 0x0, 0x0,
@@ -126340,6 +134326,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x90, 0xf, 0xfd, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x6, 0x90, 0x0,
 
+    /* U+869D "蚝" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x3, 0xc0, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0,
+    0xf0, 0x0, 0x0, 0x1, 0xbf, 0x40, 0x0, 0x3c,
+    0x0, 0x1, 0xaf, 0xff, 0xd0, 0x0, 0xf, 0x0,
+    0x2f, 0xff, 0xfe, 0x40, 0x0, 0x3, 0xc0, 0x7,
+    0xff, 0xc0, 0x0, 0x0, 0xff, 0xff, 0xf0, 0x1,
+    0xf0, 0x0, 0x0, 0x3f, 0xff, 0xfc, 0x0, 0x7c,
+    0x0, 0x0, 0xf, 0xf, 0xf, 0x0, 0x1f, 0x0,
+    0x0, 0x3, 0xc3, 0xc3, 0xc0, 0x7, 0xc1, 0x58,
+    0x0, 0xf0, 0xf0, 0xf1, 0xab, 0xff, 0xff, 0x40,
+    0x3c, 0x3c, 0x3c, 0xbf, 0xff, 0xfe, 0x90, 0xf,
+    0xf, 0xf, 0x1a, 0x6f, 0x0, 0x0, 0x3, 0xc3,
+    0xc3, 0xc0, 0x7, 0xc0, 0x0, 0x0, 0xf0, 0xf0,
+    0xf0, 0x1, 0xf0, 0x0, 0x0, 0x3f, 0xff, 0xfc,
+    0x0, 0x7c, 0x0, 0x0, 0xf, 0xff, 0xff, 0x0,
+    0x1f, 0x6a, 0xff, 0x0, 0x3, 0xc0, 0x1f, 0xff,
+    0xff, 0xff, 0xd0, 0x0, 0xf0, 0xb, 0xff, 0xfe,
+    0xa5, 0x0, 0x0, 0x3c, 0x78, 0x50, 0x7c, 0x0,
+    0x0, 0x0, 0xf, 0xf, 0x0, 0x1f, 0x0, 0x0,
+    0x0, 0x3, 0xc2, 0xd0, 0x7, 0xc0, 0xe, 0x0,
+    0x0, 0xf5, 0xb8, 0x1, 0xf0, 0x3, 0xd0, 0x5a,
+    0xff, 0xff, 0x0, 0x7c, 0x0, 0xf0, 0x3f, 0xff,
+    0xa7, 0xd0, 0xf, 0x40, 0xbc, 0xa, 0x50, 0x0,
+    0x78, 0x3, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x8,
+    0x0, 0x2f, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+86A3 "蚣" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x3, 0x80, 0x0, 0x0, 0x2c, 0x0, 0x0, 0x0,
@@ -126368,6 +134382,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x40, 0x0, 0xf, 0x40, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x1, 0x40,
 
+    /* U+86A4 "蚤" */
+    0x3, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x3,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x1f,
+    0x0, 0x74, 0x0, 0x7e, 0x0, 0x0, 0xf, 0xc0,
+    0x3d, 0x2, 0xf8, 0x0, 0x0, 0x3, 0xf4, 0xf,
+    0xf, 0xe0, 0x0, 0x0, 0x0, 0xbe, 0x2, 0x7f,
+    0x40, 0x0, 0x0, 0x0, 0x1f, 0xe7, 0xfc, 0x0,
+    0x0, 0x0, 0x0, 0x3, 0xff, 0xd0, 0x0, 0x0,
+    0x0, 0x0, 0x6f, 0xff, 0xf9, 0x0, 0x0, 0x1,
+    0x6f, 0xff, 0x82, 0xff, 0xfa, 0x40, 0x3f, 0xff,
+    0x90, 0x14, 0x6, 0xff, 0xfe, 0x3f, 0x90, 0x0,
+    0x2d, 0x0, 0x6, 0xbe, 0x0, 0x0, 0x0, 0x2d,
+    0x0, 0x0, 0x0, 0x0, 0x3f, 0xff, 0xff, 0xff,
+    0xff, 0x0, 0x0, 0x3f, 0xff, 0xff, 0xff, 0xff,
+    0x0, 0x0, 0x3c, 0x0, 0x2d, 0x0, 0x1f, 0x0,
+    0x0, 0x3c, 0x0, 0x2d, 0x0, 0x1f, 0x0, 0x0,
+    0x3c, 0x0, 0x3e, 0x0, 0x1f, 0x0, 0x0, 0x3f,
+    0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x3f, 0xff,
+    0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x2d,
+    0x0, 0x1c, 0x0, 0x0, 0x0, 0x0, 0x2d, 0x0,
+    0x2f, 0x0, 0x0, 0x0, 0x0, 0x3e, 0x55, 0xaf,
+    0xc0, 0x7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0,
+    0x7, 0xff, 0xff, 0xaa, 0x95, 0x51, 0xf4, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0xb4, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+86A7 "蚧" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x3, 0xc0, 0x0, 0x3, 0xe0, 0x0, 0x0, 0x0,
@@ -126612,6 +134652,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x10, 0x0, 0x0,
 
+    /* U+86B5 "蚵" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x2c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2c,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2c, 0x0,
+    0xff, 0xff, 0xff, 0xfd, 0x0, 0x2c, 0x0, 0xff,
+    0xff, 0xff, 0xfe, 0x0, 0x2c, 0x0, 0x0, 0x0,
+    0x3, 0xc0, 0xf, 0xff, 0xfc, 0x0, 0x0, 0x3,
+    0xc0, 0xf, 0xff, 0xfc, 0x0, 0x0, 0x3, 0xc0,
+    0xf, 0x2c, 0x3c, 0x0, 0x0, 0x3, 0xc0, 0xf,
+    0x2c, 0x3c, 0x3f, 0xff, 0x3, 0xc0, 0xf, 0x2c,
+    0x3c, 0x3f, 0xff, 0x3, 0xc0, 0xf, 0x2c, 0x3c,
+    0x3c, 0xf, 0x3, 0xc0, 0xf, 0x2c, 0x3c, 0x3c,
+    0xf, 0x3, 0xc0, 0xf, 0x2c, 0x3c, 0x3c, 0xf,
+    0x3, 0xc0, 0xf, 0x2c, 0x3c, 0x3c, 0xf, 0x3,
+    0xc0, 0xf, 0xff, 0xfc, 0x3c, 0xf, 0x3, 0xc0,
+    0xf, 0xff, 0xfc, 0x3c, 0xf, 0x3, 0xc0, 0x0,
+    0x2c, 0x0, 0x3c, 0xf, 0x3, 0xc0, 0x0, 0x2c,
+    0x0, 0x3d, 0xf, 0x3, 0xc0, 0x0, 0x2c, 0x34,
+    0x3f, 0xff, 0x3, 0xc0, 0x0, 0x2c, 0x38, 0x2f,
+    0xff, 0x3, 0xc0, 0x0, 0x2c, 0x2c, 0x0, 0x0,
+    0x3, 0xc0, 0x0, 0x2d, 0x7d, 0x0, 0x0, 0x3,
+    0xc0, 0x1a, 0xff, 0xfe, 0x0, 0x0, 0x3, 0xc0,
+    0xbf, 0xfe, 0x9f, 0x0, 0x0, 0x7, 0xc0, 0x69,
+    0x0, 0xb, 0x0, 0x1, 0x6f, 0xc0, 0x0, 0x0,
+    0x6, 0x0, 0x7, 0xff, 0x40, 0x0, 0x0, 0x0,
+    0x0, 0x3, 0xa4, 0x0,
+
     /* U+86B6 "蚶" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0xe, 0x0, 0xa, 0x0, 0x2, 0x80, 0x0, 0xf,
@@ -127819,6 +135886,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0x0, 0x7c, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x80,
 
+    /* U+871C "蜜" */
+    0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x2, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x3, 0xc0, 0x0, 0x0, 0x2, 0xaa, 0xaa, 0xaf,
+    0xea, 0xaa, 0xa0, 0xf, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xc0, 0x3d, 0x0, 0xb, 0x0, 0x0, 0xf,
+    0x0, 0xf0, 0x0, 0x3f, 0x0, 0x20, 0x3c, 0x3,
+    0xc4, 0x38, 0x2f, 0x47, 0xd0, 0xf0, 0x5, 0xb8,
+    0xf0, 0x1d, 0xbd, 0x19, 0x40, 0x3, 0xc3, 0xc0,
+    0x2f, 0xc0, 0xf4, 0x0, 0x3d, 0xf, 0x7, 0xf4,
+    0x0, 0xf4, 0x3, 0xe0, 0x3e, 0xfe, 0x0, 0xf0,
+    0xf0, 0xa, 0x1, 0xff, 0x80, 0x7, 0x81, 0xf0,
+    0x1, 0xbf, 0xfe, 0xaa, 0xfd, 0x2, 0x82, 0xff,
+    0xe7, 0xff, 0xff, 0xd0, 0x0, 0x1f, 0xe4, 0x0,
+    0xa, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x3c,
+    0x0, 0x0, 0x0, 0x3, 0xff, 0xff, 0xff, 0xff,
+    0xf0, 0x0, 0xf, 0xaa, 0xab, 0xea, 0xab, 0xc0,
+    0x0, 0x3c, 0x0, 0xf, 0x0, 0xf, 0x0, 0x0,
+    0xf0, 0x0, 0x3c, 0x0, 0x3c, 0x0, 0x3, 0xff,
+    0xff, 0xff, 0xff, 0xf0, 0x0, 0xa, 0xaa, 0xab,
+    0xea, 0xab, 0x80, 0x0, 0x0, 0x0, 0xf, 0x0,
+    0xe, 0x0, 0x0, 0x0, 0x0, 0x3c, 0x15, 0x7e,
+    0x0, 0x2f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0,
+    0xff, 0xff, 0xfa, 0xaa, 0x55, 0x7d, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x78, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x40,
+
     /* U+871E "蜞" */
     0x0, 0x14, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x2c, 0x0, 0xf, 0x0, 0xf, 0x0, 0x0, 0x2c,
@@ -128872,6 +136966,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xc0, 0xb2, 0xf8, 0x0, 0x0, 0x7, 0x80, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x8,
 
+    /* U+8793 "螓" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xb, 0x0, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x2,
+    0xc0, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0xb0,
+    0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x2c, 0x0,
+    0xff, 0xff, 0xff, 0xfc, 0x0, 0xb, 0x0, 0x3f,
+    0xff, 0xff, 0xfe, 0x0, 0xbf, 0xff, 0x80, 0x2,
+    0xe0, 0x0, 0x0, 0x2f, 0xff, 0xe0, 0x0, 0xf8,
+    0x0, 0x0, 0xb, 0x2c, 0x38, 0xff, 0xff, 0xff,
+    0xf0, 0x2, 0xcb, 0xe, 0x2a, 0xbf, 0xaa, 0xa8,
+    0x0, 0xb2, 0xc3, 0x80, 0xb, 0x80, 0x0, 0x0,
+    0x2c, 0xb0, 0xe6, 0xab, 0xfa, 0xaa, 0xa4, 0xb,
+    0x2c, 0x3a, 0xff, 0xff, 0xff, 0xfd, 0x2, 0xcb,
+    0xe, 0x1, 0xf0, 0xf, 0x0, 0x0, 0xb2, 0xc3,
+    0x80, 0xf4, 0x1, 0xe0, 0x0, 0x2f, 0xff, 0xe0,
+    0xfc, 0x5a, 0xfe, 0x0, 0xb, 0xff, 0xf8, 0xff,
+    0xff, 0xf7, 0xe0, 0x0, 0xb, 0x0, 0xfc, 0xa7,
+    0xc0, 0x3f, 0x40, 0x2, 0xc0, 0x78, 0x0, 0xf0,
+    0x2, 0xf4, 0x0, 0xb2, 0xc6, 0xaa, 0xbe, 0xaa,
+    0x9c, 0x0, 0x2c, 0x74, 0xff, 0xff, 0xff, 0xf0,
+    0x0, 0xb, 0xe, 0x0, 0xb, 0xc0, 0x0, 0x0,
+    0x7, 0xff, 0xc0, 0xf, 0xfa, 0x0, 0x0, 0xff,
+    0xff, 0xf0, 0x1f, 0xbf, 0xf8, 0x0, 0x3f, 0x94,
+    0x1d, 0x2f, 0x4f, 0xf, 0xe0, 0x0, 0x0, 0x1,
+    0xbf, 0x3, 0xc0, 0x7f, 0x0, 0x0, 0x0, 0x7d,
+    0x0, 0xf0, 0x2, 0xc0, 0x0, 0x0, 0x4, 0x0,
+    0x3c, 0x0, 0x0,
+
     /* U+8797 "螗" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x3, 0x80, 0x0, 0x0, 0xb4, 0x0, 0x0, 0x0,
@@ -128900,32 +137022,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x1f, 0xff, 0xff, 0x0, 0x0, 0x0, 0x1c, 0x7,
     0x80, 0x3, 0xc0,
 
-    /* U+87A0 "螠" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x3, 0x80, 0x7, 0x80, 0x0, 0xe0, 0x0, 0x0,
-    0xe0, 0x0, 0xf0, 0x0, 0xb4, 0x0, 0x0, 0x38,
-    0x0, 0x1f, 0x0, 0x3c, 0x0, 0x0, 0xe, 0x0,
-    0x3, 0xd0, 0x3d, 0x0, 0x0, 0x7, 0x80, 0x0,
-    0x74, 0x1f, 0x0, 0x0, 0xbf, 0xff, 0xcf, 0xff,
-    0xff, 0xff, 0xc0, 0x2f, 0xff, 0xf3, 0xff, 0xff,
-    0xff, 0xf0, 0xb, 0xe, 0x2c, 0x0, 0x0, 0x0,
-    0x0, 0x2, 0xc3, 0x8b, 0x0, 0x10, 0x4, 0x0,
-    0x0, 0xb0, 0xe2, 0xc0, 0x1f, 0xb, 0x80, 0x0,
-    0x2c, 0x38, 0xb0, 0xf, 0x40, 0xfc, 0x0, 0xb,
-    0xe, 0x2c, 0xf, 0x40, 0xf, 0xc0, 0x2, 0xc3,
-    0x8b, 0xf, 0x80, 0x0, 0xbc, 0x0, 0xb0, 0xe2,
-    0xdf, 0x80, 0x0, 0xb, 0xc0, 0x2f, 0xff, 0xfb,
-    0x80, 0x0, 0x0, 0xf4, 0xb, 0xff, 0xfc, 0xbf,
-    0xff, 0xff, 0xe8, 0x0, 0x57, 0x95, 0xf, 0xff,
-    0xff, 0xf8, 0x0, 0x0, 0xe0, 0x3, 0x4b, 0xf,
-    0xe, 0x0, 0x0, 0x38, 0xe0, 0xd2, 0xc3, 0xc3,
-    0x80, 0x0, 0xe, 0x3c, 0x34, 0xb0, 0xf0, 0xe0,
-    0x0, 0x3, 0x8b, 0xd, 0x2c, 0x3c, 0x38, 0x0,
-    0x0, 0xf7, 0xc3, 0x4b, 0xf, 0xe, 0x0, 0xaf,
-    0xff, 0xf4, 0xd2, 0xc3, 0xc3, 0x80, 0x3f, 0xfa,
-    0x5e, 0x74, 0xb0, 0xf0, 0xe0, 0x5, 0x0, 0x1,
-    0xff, 0xff, 0xff, 0xff, 0xc0, 0x0, 0x0, 0x2f,
-    0xff, 0xff, 0xff, 0xf0,
+    /* U+879F "螟" */
+    0x0, 0x38, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x38, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x38,
+    0x2, 0xff, 0xff, 0xff, 0xf0, 0x0, 0x38, 0x2,
+    0xff, 0xff, 0xff, 0xf0, 0x0, 0x38, 0x2, 0xd0,
+    0x0, 0x0, 0xf0, 0x2f, 0xff, 0xf2, 0xd0, 0x0,
+    0x0, 0xf0, 0x2f, 0xff, 0xf0, 0x6a, 0xaa, 0xaa,
+    0x90, 0x2c, 0x38, 0xb0, 0x3f, 0xff, 0xff, 0x40,
+    0x2c, 0x38, 0xb0, 0x38, 0x0, 0x7, 0x40, 0x2c,
+    0x38, 0xb0, 0x38, 0x0, 0x7, 0x40, 0x2c, 0x38,
+    0xb0, 0x3e, 0xaa, 0xaf, 0x40, 0x2c, 0x38, 0xb0,
+    0x3f, 0xff, 0xff, 0x40, 0x2c, 0x38, 0xb0, 0x38,
+    0x0, 0x7, 0x40, 0x2c, 0x38, 0xb0, 0x38, 0x0,
+    0x7, 0x40, 0x2f, 0xff, 0xf0, 0x3f, 0xff, 0xff,
+    0x40, 0x2f, 0xff, 0xf0, 0x2a, 0xaa, 0xaa, 0x40,
+    0x0, 0x7c, 0x0, 0x0, 0x1d, 0x0, 0x0, 0x0,
+    0x38, 0x0, 0x0, 0xe, 0x0, 0x0, 0x0, 0x38,
+    0xf0, 0x0, 0xf, 0x0, 0x0, 0x0, 0x38, 0xb3,
+    0xff, 0xff, 0xff, 0xfc, 0x0, 0x38, 0x76, 0xff,
+    0xff, 0xff, 0xfc, 0x0, 0x39, 0xb8, 0x0, 0x40,
+    0x40, 0x0, 0x5, 0xbf, 0xfc, 0x2, 0xd0, 0xf8,
+    0x0, 0xff, 0xfe, 0x7c, 0x1f, 0xc0, 0x7f, 0x40,
+    0xb9, 0x40, 0x29, 0xfe, 0x0, 0xb, 0xe0, 0x0,
+    0x0, 0xb, 0xf4, 0x0, 0x1, 0xfc, 0x0, 0x0,
+    0x3, 0x40, 0x0, 0x0, 0x34, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
 
     /* U+87A8 "螨" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -129338,6 +137460,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+87D3 "蟓" */
+    0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0,
+    0x38, 0x0, 0x2, 0xd0, 0x0, 0x0, 0x0, 0x38,
+    0x0, 0x3, 0xc0, 0x0, 0x0, 0x0, 0x38, 0x0,
+    0xf, 0xff, 0xfd, 0x0, 0x0, 0x38, 0x0, 0x2f,
+    0xaa, 0xbd, 0x0, 0x0, 0x38, 0x0, 0x7c, 0x0,
+    0xb8, 0x0, 0x2f, 0xff, 0xf1, 0xf0, 0x1, 0xf0,
+    0x0, 0x2f, 0xff, 0xf7, 0xfa, 0xab, 0xfa, 0x80,
+    0x2c, 0x38, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x2c,
+    0x38, 0xb0, 0xf0, 0xe, 0x2, 0xc0, 0x2c, 0x38,
+    0xb0, 0xf0, 0xe, 0x2, 0xc0, 0x2c, 0x38, 0xb0,
+    0xfa, 0xae, 0xab, 0xc0, 0x2c, 0x38, 0xb0, 0xff,
+    0xff, 0xff, 0xc0, 0x2c, 0x38, 0xb0, 0x0, 0xf4,
+    0x0, 0x40, 0x2c, 0x38, 0xb0, 0x3, 0xf0, 0x2,
+    0xc0, 0x2f, 0xff, 0xf0, 0x2f, 0xb8, 0xf, 0xc0,
+    0x2f, 0xff, 0xf7, 0xf8, 0x3c, 0x7e, 0x0, 0x5,
+    0x7d, 0x5b, 0x80, 0xff, 0xfc, 0x0, 0x0, 0x38,
+    0x80, 0x7, 0xdf, 0xec, 0x0, 0x0, 0x38, 0xd0,
+    0x7f, 0xf, 0x4e, 0x0, 0x0, 0x38, 0xf3, 0xf4,
+    0x2f, 0x4f, 0x0, 0x0, 0x38, 0xb3, 0x80, 0xfb,
+    0x83, 0xc0, 0x0, 0x7f, 0xf4, 0x7, 0xd3, 0x82,
+    0xe0, 0xbf, 0xff, 0xf8, 0x7f, 0x7, 0x80, 0xf4,
+    0xbf, 0x94, 0x3a, 0xf8, 0xb, 0x80, 0x3d, 0x0,
+    0x0, 0x25, 0x81, 0x6f, 0x40, 0x18, 0x0, 0x0,
+    0x0, 0x3, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x1, 0x40, 0x0, 0x0,
+
     /* U+87DB "蟛" */
     0x0, 0x2c, 0x0, 0x3, 0x80, 0x0, 0x0, 0x0,
     0xb, 0x0, 0x0, 0xf0, 0x0, 0xb, 0x40, 0x2,
@@ -129477,6 +137626,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0xb4,
     0x0, 0x3, 0xc0,
 
+    /* U+87F9 "蟹" */
+    0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x2d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7d,
+    0x55, 0x6, 0xaa, 0xaa, 0xa0, 0x1, 0xff, 0xff,
+    0x47, 0xff, 0xff, 0xf0, 0x7, 0xc0, 0x1f, 0x0,
+    0x2c, 0x0, 0xe0, 0x2f, 0x40, 0x7d, 0x0, 0x3c,
+    0x1, 0xe0, 0x3f, 0xff, 0xff, 0xe0, 0xf4, 0x7f,
+    0xc0, 0x3, 0x97, 0xd5, 0xeb, 0xd0, 0x29, 0x0,
+    0x3, 0x82, 0xc0, 0xea, 0x90, 0xe0, 0x0, 0x3,
+    0xff, 0xff, 0xe0, 0xe0, 0xf0, 0x0, 0x3, 0xd7,
+    0xd5, 0xe1, 0xff, 0xff, 0xf4, 0x3, 0x82, 0xc0,
+    0xe3, 0xd5, 0xf5, 0x50, 0x3, 0xff, 0xff, 0xe7,
+    0x40, 0xf0, 0x0, 0x7, 0xab, 0xea, 0xe1, 0x55,
+    0xf5, 0x54, 0xb, 0x2, 0xc0, 0xeb, 0xff, 0xff,
+    0xfd, 0xf, 0x2, 0xc6, 0xe1, 0x55, 0xf5, 0x54,
+    0x2d, 0x2, 0xcf, 0x90, 0x0, 0xf0, 0x0, 0x38,
+    0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x0, 0x6a,
+    0xaa, 0xbe, 0xaa, 0xa9, 0x0, 0x0, 0xbf, 0xff,
+    0xff, 0xff, 0xfe, 0x0, 0x0, 0xb4, 0x0, 0x3c,
+    0x0, 0x1e, 0x0, 0x0, 0xb4, 0x0, 0x3c, 0x0,
+    0x1e, 0x0, 0x0, 0xbf, 0xff, 0xff, 0xff, 0xfe,
+    0x0, 0x0, 0x6a, 0xaa, 0xbe, 0xaa, 0xad, 0x0,
+    0x0, 0x0, 0x0, 0x3c, 0x0, 0x2e, 0x0, 0x5,
+    0x55, 0xaa, 0xbe, 0xbf, 0xff, 0xc0, 0xf, 0xff,
+    0xff, 0xff, 0xff, 0xab, 0xf0, 0x5, 0x50, 0x0,
+    0x0, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+87FE "蟾" */
     0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0,
     0x2c, 0x0, 0x1, 0xe0, 0x0, 0x0, 0x0, 0x2c,
@@ -129505,6 +137682,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x2, 0xc0, 0x0, 0xb0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+8803 "蠃" */
+    0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xb8, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x3c, 0x0, 0x0, 0x0, 0x3f, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xfc, 0x2a, 0xfa, 0xaa, 0xaa,
+    0xaa, 0xaa, 0xa8, 0x0, 0xf0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0xfa, 0xaa, 0xaa, 0xaa, 0xaa,
+    0x40, 0x0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0xf9,
+    0x55, 0x55, 0x55, 0x7e, 0x0, 0x0, 0xf0, 0x0,
+    0x0, 0x0, 0x2e, 0x0, 0x0, 0xff, 0xff, 0xff,
+    0xff, 0xfe, 0x0, 0x0, 0x55, 0x55, 0xa5, 0x55,
+    0x55, 0x0, 0x2, 0xaa, 0x40, 0x70, 0x6, 0xaa,
+    0x0, 0x7, 0xff, 0x80, 0x74, 0xf, 0xff, 0x40,
+    0x7, 0x3, 0x9f, 0xff, 0xcf, 0xb, 0x40, 0x7,
+    0x3, 0x9d, 0xb6, 0xcf, 0x7, 0x40, 0x7, 0xff,
+    0x9c, 0x71, 0xcf, 0x47, 0x40, 0x7, 0xab, 0x9c,
+    0x71, 0xcf, 0xd7, 0x40, 0x7, 0x3, 0x9f, 0xff,
+    0xcf, 0xb7, 0x40, 0x7, 0xab, 0x8a, 0xfe, 0x8f,
+    0x3f, 0x40, 0xb, 0xff, 0x80, 0x71, 0x4f, 0x17,
+    0x4d, 0xf, 0x3, 0x80, 0x72, 0xce, 0x7, 0x4e,
+    0x1e, 0x3, 0x9a, 0xff, 0xfd, 0x7, 0x4e, 0x3c,
+    0x2f, 0xaa, 0x50, 0xbc, 0x7, 0xfd, 0x78, 0x2e,
+    0x0, 0x0, 0xb4, 0x3, 0xfc, 0x20, 0x0, 0x0,
+    0x0, 0x10, 0x0, 0x0,
+
     /* U+880A "蠊" */
     0x0, 0x0, 0x0, 0x0, 0x6, 0x0, 0x0, 0x0,
     0xb, 0x0, 0x0, 0x1, 0xe0, 0x0, 0x0, 0x2,
@@ -129617,6 +137821,35 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x80, 0x0, 0x1, 0xac, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+881B "蠛" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xb, 0x0, 0x0, 0xf0, 0xf, 0x0, 0x0, 0x2,
+    0xc0, 0x0, 0x3c, 0x3, 0xc0, 0x0, 0x0, 0xb0,
+    0x6, 0xaf, 0xaa, 0xfa, 0xa8, 0x0, 0x2c, 0x2,
+    0xff, 0xff, 0xff, 0xff, 0x0, 0xb, 0x40, 0x0,
+    0xf0, 0xf, 0x0, 0x0, 0xbf, 0xff, 0x80, 0x28,
+    0x3, 0x80, 0x0, 0x2f, 0xff, 0xe1, 0x55, 0x55,
+    0x55, 0x40, 0xb, 0x2c, 0x38, 0xff, 0xff, 0xff,
+    0xf0, 0x2, 0xcb, 0xe, 0x3c, 0x38, 0x2c, 0x2c,
+    0x0, 0xb2, 0xc3, 0x8f, 0xe, 0xb, 0xb, 0x0,
+    0x2c, 0xb0, 0xe3, 0xc3, 0x82, 0xc2, 0xc0, 0xb,
+    0x2c, 0x38, 0xff, 0xff, 0xff, 0xf0, 0x2, 0xcb,
+    0xe, 0x1a, 0xaa, 0xaa, 0xa8, 0x0, 0xb2, 0xc3,
+    0x80, 0x0, 0xb4, 0x30, 0x0, 0x2e, 0xfa, 0xe0,
+    0x0, 0x1d, 0xe, 0x0, 0xb, 0xff, 0xf8, 0xaa,
+    0xaf, 0xeb, 0xe9, 0x0, 0xb, 0x40, 0x3f, 0xff,
+    0xff, 0xff, 0x80, 0x2, 0xc1, 0xf, 0x0, 0x3c,
+    0x5, 0x0, 0x0, 0xb1, 0xd3, 0xd0, 0xb, 0x43,
+    0xc0, 0x0, 0x2c, 0x38, 0xff, 0x41, 0xe2, 0xd0,
+    0x0, 0xb, 0xf, 0x3c, 0xf8, 0x3e, 0xe0, 0x0,
+    0x2, 0xef, 0xcf, 0xb, 0x4b, 0xe0, 0x0, 0xbf,
+    0xff, 0xf7, 0x80, 0x47, 0xf0, 0x38, 0x3f, 0xe9,
+    0x1f, 0xd0, 0xb, 0xfd, 0xe, 0x0, 0x0, 0x3,
+    0xf0, 0x7f, 0x83, 0xc7, 0x40, 0x0, 0x0, 0xb4,
+    0x3e, 0x0, 0x7f, 0xc0, 0x0, 0x0, 0x3c, 0x4,
+    0x0, 0x7, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+8821 "蠡" */
     0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0xf, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf,
@@ -129699,6 +137932,61 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x95, 0x0, 0x0, 0x0, 0x0, 0xff, 0x40, 0x0,
     0x0, 0x0, 0x0, 0x3, 0xe4,
 
+    /* U+8839 "蠹" */
+    0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xd0, 0x0, 0x0, 0x0, 0xaa, 0xaa,
+    0xab, 0xea, 0xaa, 0xa9, 0x7, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xf8, 0x0, 0x0, 0x0, 0x78, 0x0,
+    0x0, 0x0, 0x3, 0xff, 0xff, 0xff, 0xff, 0xf0,
+    0x0, 0xf, 0x0, 0x7, 0x80, 0x3, 0xc0, 0x0,
+    0x3f, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x55,
+    0x55, 0x79, 0x55, 0x54, 0x0, 0x55, 0x55, 0x56,
+    0xe5, 0x55, 0x55, 0x42, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xb, 0x40, 0x0, 0x0, 0x0, 0x0,
+    0x3c, 0x2d, 0x3f, 0xff, 0xff, 0xff, 0xf0, 0xf0,
+    0x60, 0x5b, 0xf5, 0x55, 0x55, 0x42, 0x80, 0x1,
+    0xbf, 0x55, 0x55, 0x55, 0x0, 0x0, 0xbf, 0xff,
+    0xff, 0xff, 0xfc, 0x0, 0x3f, 0xef, 0x0, 0x0,
+    0x0, 0xb0, 0x0, 0xe4, 0x3f, 0xff, 0xff, 0xff,
+    0xc0, 0x0, 0x0, 0xa4, 0x0, 0x0, 0x68, 0x0,
+    0x1, 0x57, 0xd5, 0x41, 0x55, 0xf5, 0x50, 0xf,
+    0xff, 0xff, 0x8f, 0xff, 0xff, 0xc0, 0x3c, 0x3c,
+    0xe, 0x3c, 0xf, 0xf, 0x0, 0xf5, 0xf5, 0x78,
+    0xf5, 0x7d, 0x7c, 0x3, 0xff, 0xff, 0xe3, 0xff,
+    0xff, 0xf0, 0x0, 0xf, 0xe, 0x0, 0x3, 0xc2,
+    0x81, 0x56, 0xbf, 0xbd, 0x16, 0xaf, 0xbf, 0x4b,
+    0xff, 0xfa, 0xbd, 0xff, 0xfa, 0xaf, 0x0, 0x0,
+    0x0, 0x20, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
+    /* U+883C "蠼" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xb0, 0x1, 0x55, 0x41, 0x55, 0x40, 0x0, 0xb0,
+    0x3, 0xff, 0xd3, 0xff, 0xe0, 0x0, 0xb0, 0x3,
+    0x40, 0xd3, 0xc0, 0xe0, 0x0, 0xb0, 0x3, 0xff,
+    0xd3, 0xff, 0xe0, 0x0, 0xb0, 0x3, 0x95, 0xd3,
+    0xd5, 0xe0, 0x2f, 0xff, 0xc3, 0xea, 0xd3, 0xea,
+    0xe0, 0x2f, 0xff, 0xc3, 0xea, 0xd3, 0xea, 0xe0,
+    0x2c, 0xb2, 0xc3, 0x95, 0xd3, 0xd5, 0xe0, 0x2c,
+    0xb2, 0xc3, 0xff, 0xd3, 0xff, 0xe0, 0x2c, 0xb2,
+    0xc0, 0x70, 0xb, 0x0, 0x0, 0x2c, 0xb2, 0xc0,
+    0xf5, 0x5b, 0x95, 0x50, 0x2c, 0xb2, 0xc2, 0xff,
+    0xff, 0xff, 0xf0, 0x2c, 0xb2, 0xcb, 0xf5, 0x5b,
+    0x55, 0x40, 0x2c, 0xb2, 0xee, 0xff, 0xff, 0xff,
+    0xd0, 0x2e, 0xfb, 0xc8, 0xf0, 0xb, 0x40, 0x0,
+    0x2f, 0xff, 0xc0, 0xff, 0xff, 0xff, 0xd0, 0x5,
+    0xb5, 0x40, 0xf5, 0x5b, 0x55, 0x40, 0x0, 0xb1,
+    0x40, 0xfa, 0xaf, 0xaa, 0xa4, 0x0, 0xb3, 0xc0,
+    0xaa, 0xaa, 0xaa, 0xa4, 0x0, 0xb2, 0xd1, 0x55,
+    0x55, 0x55, 0x40, 0x0, 0xb1, 0xe7, 0xff, 0xff,
+    0xff, 0xc0, 0x0, 0xb1, 0xf0, 0x7d, 0x0, 0x2f,
+    0x40, 0x5, 0xff, 0xf0, 0xf, 0x82, 0xf8, 0x0,
+    0xff, 0xfe, 0xf4, 0x2, 0xff, 0xc0, 0x0, 0x69,
+    0x0, 0x78, 0x1f, 0xff, 0xf9, 0x0, 0x0, 0x0,
+    0x2f, 0xfe, 0x40, 0xbf, 0xfd, 0x0, 0x0, 0x2e,
+    0x90, 0x0, 0x1, 0xbc, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+8840 "血" */
     0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -130001,6 +138289,23 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+8864 "衤" */
+    0x0, 0x2, 0xc0, 0x0, 0x0, 0x0, 0xf8, 0x0,
+    0x0, 0x0, 0x1f, 0x0, 0x0, 0x0, 0x3, 0xc0,
+    0x0, 0x0, 0x0, 0xf8, 0x0, 0x0, 0xff, 0xff,
+    0xf4, 0x0, 0x3f, 0xff, 0xfd, 0x0, 0x0, 0x0,
+    0x2f, 0x0, 0x0, 0x0, 0xf, 0x40, 0x0, 0x0,
+    0xf, 0xc0, 0x0, 0x0, 0xb, 0xc0, 0x20, 0x0,
+    0x7, 0xd0, 0x3d, 0x0, 0x7, 0xf0, 0x2f, 0x0,
+    0x3, 0xfe, 0x2f, 0x0, 0x3, 0xff, 0xff, 0x0,
+    0x3, 0xf7, 0xff, 0x80, 0x7, 0xf0, 0xf1, 0xfc,
+    0xb, 0xf0, 0x3c, 0x1f, 0xd7, 0xe0, 0xf, 0x0,
+    0xf4, 0xa0, 0x3, 0xc0, 0x8, 0x0, 0x0, 0xf0,
+    0x0, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0xf,
+    0x0, 0x0, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x0,
+    0xf0, 0x0, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x0,
+    0xf, 0x0, 0x0,
+
     /* U+8865 "补" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x3, 0xc0, 0x0, 0x7, 0xc0, 0x0, 0x0, 0x0,
@@ -130168,6 +138473,35 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+8870 "衰" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xf, 0x40, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x2, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x7c, 0x0, 0x0, 0x0, 0x7, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xf8, 0x0, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x2a, 0xaa, 0xaa, 0xaa,
+    0xa4, 0x0, 0x0, 0x1f, 0xff, 0xff, 0xff, 0xfe,
+    0x0, 0x0, 0x7, 0xc0, 0x0, 0x0, 0xb, 0x80,
+    0x0, 0x1, 0xf0, 0x0, 0x0, 0x1, 0xe0, 0x0,
+    0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x1f,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x7,
+    0xc0, 0x0, 0x0, 0xb, 0x80, 0x0, 0x1, 0xf0,
+    0x0, 0x0, 0x1, 0xe0, 0x0, 0x0, 0x7f, 0xff,
+    0xff, 0xff, 0xf8, 0x0, 0x0, 0x1f, 0xff, 0xff,
+    0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x7f, 0xc0,
+    0x0, 0x20, 0x0, 0x0, 0x0, 0xbe, 0xf8, 0x0,
+    0x7d, 0x0, 0x0, 0x2, 0xfd, 0xf, 0x41, 0xfe,
+    0x0, 0x0, 0xb, 0xfc, 0x1, 0xfb, 0xfd, 0x0,
+    0x0, 0x6f, 0xfe, 0x0, 0x1f, 0xf4, 0x0, 0x2,
+    0xff, 0xd7, 0x80, 0x0, 0xfe, 0x0, 0x0, 0xbe,
+    0x41, 0xe0, 0x1, 0xb, 0xfd, 0x0, 0x4, 0x0,
+    0x78, 0x1b, 0xc0, 0x2f, 0xf9, 0x0, 0x0, 0x1f,
+    0xff, 0xf0, 0x0, 0xbf, 0xd0, 0x0, 0x1f, 0xfe,
+    0x40, 0x0, 0x1, 0xb0, 0x0, 0x3, 0xd0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+8872 "衲" */
     0x0, 0x64, 0x0, 0x0, 0xf, 0x0, 0x0, 0x1,
     0xe0, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x3, 0xc0,
@@ -130194,6 +138528,35 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x3, 0xc0, 0xf, 0x0, 0x2, 0xf8, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+8877 "衷" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xf, 0x40, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x2, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x7d, 0x0, 0x0, 0x0, 0x3, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xfc, 0x0, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0xa0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c, 0x0,
+    0x0, 0x0, 0x0, 0x3f, 0xff, 0xff, 0xff, 0xff,
+    0x80, 0x0, 0xf, 0xff, 0xff, 0xff, 0xff, 0xe0,
+    0x0, 0x3, 0xd0, 0x0, 0xf0, 0x0, 0x78, 0x0,
+    0x0, 0xf4, 0x0, 0x3c, 0x0, 0x1e, 0x0, 0x0,
+    0x3d, 0x0, 0xf, 0x0, 0x7, 0x80, 0x0, 0xf,
+    0xff, 0xff, 0xff, 0xff, 0xe0, 0x0, 0x3, 0xff,
+    0xff, 0xff, 0xff, 0xf8, 0x0, 0x0, 0x0, 0x0,
+    0x7c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xbf,
+    0x0, 0x0, 0x80, 0x0, 0x0, 0x0, 0xff, 0xd0,
+    0x1, 0xf8, 0x0, 0x0, 0x2, 0xfc, 0x7c, 0x2,
+    0xfc, 0x0, 0x0, 0xb, 0xf4, 0xb, 0xd7, 0xf8,
+    0x0, 0x0, 0x7f, 0xfc, 0x0, 0xbf, 0xe0, 0x0,
+    0x2, 0xff, 0x8f, 0x0, 0xb, 0xf0, 0x0, 0x3,
+    0xfe, 0x3, 0xc0, 0x0, 0x7f, 0x80, 0x0, 0x74,
+    0x0, 0xf0, 0x7, 0x2, 0xfe, 0x40, 0x0, 0x0,
+    0x3d, 0x7f, 0xd0, 0x1f, 0xfe, 0x40, 0x0, 0xf,
+    0xff, 0xd0, 0x0, 0x2f, 0xc0, 0x0, 0xf, 0xf9,
+    0x0, 0x0, 0x0, 0x50, 0x0, 0x2, 0x90, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+887D "衽" */
     0x0, 0x2d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0xb, 0x80, 0x0, 0x0, 0x0, 0x1a, 0x0, 0x1,
@@ -130279,6 +138642,35 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x28, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+8881 "袁" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x7, 0xc0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x1, 0xf0, 0x0, 0x0, 0x0, 0x2, 0xaa,
+    0xaa, 0xfe, 0xaa, 0xaa, 0x0, 0x0, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xd0, 0x0, 0x0, 0x0, 0x7,
+    0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xf0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7c, 0x0,
+    0x0, 0x0, 0xf, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xfd, 0x3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x2f, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0xb,
+    0xff, 0xff, 0xff, 0xff, 0xc0, 0x0, 0x2, 0xe0,
+    0x0, 0x0, 0x0, 0xf0, 0x0, 0x0, 0xb8, 0x0,
+    0x0, 0x0, 0x3c, 0x0, 0x0, 0x2f, 0xff, 0xff,
+    0xff, 0xff, 0x0, 0x0, 0x7, 0xff, 0xff, 0xff,
+    0xff, 0xc0, 0x0, 0x0, 0x0, 0x2f, 0xf4, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x7f, 0x5f, 0x0, 0x7,
+    0xc0, 0x0, 0x1, 0xfe, 0x2, 0xf4, 0x1f, 0xe0,
+    0x0, 0x7, 0xff, 0x0, 0x2f, 0xbf, 0xc0, 0x0,
+    0x2f, 0xfb, 0xc0, 0x2, 0xff, 0x40, 0x0, 0xff,
+    0xd0, 0xf0, 0x1, 0x1f, 0xe0, 0x0, 0x3e, 0x40,
+    0x3c, 0x1b, 0xd0, 0xbf, 0xd0, 0x0, 0x0, 0x1f,
+    0xff, 0xf0, 0x2, 0xff, 0xd0, 0x0, 0xf, 0xfe,
+    0x40, 0x0, 0x7, 0xf0, 0x0, 0x3, 0xe4, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+8882 "袂" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x1e, 0x0, 0x0, 0x2e, 0x0, 0x0, 0x0, 0x3,
@@ -130337,6 +138729,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x74, 0x0, 0x18, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+8885 "袅" */
+    0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x1, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x2, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x3f, 0xff,
+    0xff, 0xff, 0xfd, 0x0, 0x0, 0x7f, 0xff, 0xff,
+    0xff, 0xfd, 0x0, 0x0, 0x7c, 0x4, 0x0, 0x0,
+    0x3d, 0x0, 0x0, 0x7c, 0xf, 0x80, 0x0, 0x3c,
+    0x0, 0x0, 0x7c, 0x3, 0xf4, 0x1a, 0xfc, 0x0,
+    0x0, 0x7c, 0x0, 0xbc, 0x2f, 0xf0, 0x0, 0x0,
+    0x7c, 0x0, 0x14, 0x4, 0x0, 0x0, 0x0, 0x7e,
+    0xaa, 0xaa, 0xaa, 0xaa, 0x90, 0x0, 0x7f, 0xff,
+    0xff, 0xff, 0xff, 0xd0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x3, 0xd0, 0x0, 0x0, 0x0, 0xb4, 0x0,
+    0x7, 0xc0, 0x0, 0x0, 0x0, 0xb8, 0x1, 0xff,
+    0xc0, 0x0, 0x0, 0x0, 0x7c, 0x0, 0xa9, 0x0,
+    0xf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x1f,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x0, 0x0,
+    0x7, 0xfc, 0x0, 0x1, 0x0, 0x0, 0x0, 0x2f,
+    0xaf, 0x0, 0x2f, 0x0, 0x0, 0x2, 0xfd, 0xb,
+    0xc1, 0xfe, 0x0, 0x0, 0x7f, 0xf4, 0x2, 0xff,
+    0xe0, 0x0, 0x1b, 0xfd, 0xf4, 0x0, 0xbf, 0x80,
+    0x0, 0xbf, 0xd0, 0xf4, 0x1, 0x1f, 0xf4, 0x0,
+    0x78, 0x0, 0xf4, 0x6f, 0x1, 0xff, 0x90, 0x0,
+    0x0, 0xff, 0xff, 0x0, 0x1f, 0xfc, 0x0, 0x2,
+    0xff, 0xd0, 0x0, 0x0, 0x68, 0x0, 0x2, 0xf4,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+8888 "袈" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -130531,6 +138951,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0xf, 0x40, 0x0, 0x0, 0x2d, 0x0,
     0x0, 0xf, 0x40, 0x0,
 
+    /* U+88A4 "袤" */
+    0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xb8, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x7c, 0x0, 0x0, 0x0, 0xf, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xf0, 0xf, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x2a, 0xaa, 0xaa, 0xaa, 0xa9,
+    0x0, 0x0, 0x3f, 0xff, 0xff, 0xff, 0xfe, 0x0,
+    0x0, 0x0, 0x14, 0x0, 0x7, 0xf8, 0x0, 0x0,
+    0x0, 0x3e, 0x0, 0x7f, 0x80, 0x0, 0x0, 0x0,
+    0x1f, 0xd2, 0xfd, 0x0, 0x0, 0x0, 0x0, 0x2,
+    0xff, 0xd0, 0x0, 0x0, 0xf, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xf0, 0xa, 0xaa, 0xaf, 0xfb, 0xea,
+    0xab, 0xf0, 0x0, 0x0, 0x2f, 0x83, 0xd0, 0x7,
+    0xc0, 0x0, 0x2, 0xfc, 0x3, 0xd0, 0x1f, 0x0,
+    0x0, 0x6f, 0xd1, 0xaf, 0xc0, 0x2d, 0x0, 0xb,
+    0xfd, 0x0, 0xff, 0x40, 0x0, 0x0, 0xf, 0x90,
+    0x0, 0xbd, 0x0, 0x8, 0x0, 0x4, 0x0, 0x7,
+    0xfe, 0x0, 0x7d, 0x0, 0x0, 0x0, 0x7f, 0x8f,
+    0x82, 0xf8, 0x0, 0x0, 0xb, 0xfc, 0x3, 0xff,
+    0xd0, 0x0, 0x2, 0xff, 0xf8, 0x0, 0xff, 0x0,
+    0x0, 0x7f, 0xf4, 0xb8, 0x0, 0x2f, 0xe0, 0x0,
+    0x7e, 0x40, 0xb8, 0xb, 0x43, 0xff, 0x90, 0x10,
+    0x0, 0xba, 0xff, 0x80, 0x2f, 0xfe, 0x0, 0x0,
+    0xff, 0xf8, 0x0, 0x0, 0x6c, 0x0, 0x0, 0xfe,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+88AB "被" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x1e, 0x0, 0x0, 0x3, 0xd0, 0x0, 0x0, 0x3,
@@ -130616,6 +139064,35 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x3d, 0xf0, 0x0, 0x3, 0xd0, 0x2, 0xc0, 0xf,
     0x4, 0x0, 0x0, 0x10,
 
+    /* U+88B7 "袷" */
+    0x0, 0x10, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0,
+    0x2e, 0x0, 0x0, 0xf, 0xc0, 0x0, 0x0, 0x7,
+    0x80, 0x0, 0x7, 0xf8, 0x0, 0x0, 0x0, 0xf0,
+    0x0, 0x3, 0xef, 0x0, 0x0, 0x0, 0x3c, 0x0,
+    0x2, 0xf2, 0xf0, 0x0, 0x1, 0x5f, 0x50, 0x1,
+    0xf0, 0x3e, 0x0, 0x0, 0xff, 0xff, 0x1, 0xf4,
+    0x7, 0xe0, 0x0, 0x3f, 0xff, 0xc1, 0xf8, 0x0,
+    0x7e, 0x0, 0x0, 0x3, 0xe1, 0xf8, 0x0, 0x7,
+    0xf0, 0x0, 0x1, 0xf2, 0xf8, 0x0, 0x0, 0x7f,
+    0x0, 0x0, 0xf5, 0xf9, 0xff, 0xff, 0xe7, 0xf0,
+    0x0, 0xbc, 0x34, 0x7f, 0xff, 0xf8, 0x3c, 0x0,
+    0x3d, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f,
+    0xb, 0x40, 0x0, 0x0, 0x0, 0x0, 0x2f, 0xc7,
+    0xc0, 0x0, 0x0, 0x0, 0x0, 0x2f, 0xf7, 0xc0,
+    0x0, 0x0, 0x0, 0x0, 0x2f, 0x7f, 0xd0, 0xff,
+    0xff, 0xff, 0xc0, 0x1f, 0x8f, 0xf0, 0x3f, 0xff,
+    0xff, 0xf0, 0x3, 0x83, 0xef, 0x4f, 0x0, 0x0,
+    0x3c, 0x0, 0x0, 0xf1, 0xf3, 0xc0, 0x0, 0xf,
+    0x0, 0x0, 0x3c, 0x18, 0xf0, 0x0, 0x3, 0xc0,
+    0x0, 0xf, 0x0, 0x3c, 0x0, 0x0, 0xf0, 0x0,
+    0x3, 0xc0, 0xf, 0x0, 0x0, 0x3c, 0x0, 0x0,
+    0xf0, 0x3, 0xc0, 0x0, 0xf, 0x0, 0x0, 0x3c,
+    0x0, 0xff, 0xff, 0xff, 0xc0, 0x0, 0xf, 0x0,
+    0x3f, 0xff, 0xff, 0xf0, 0x0, 0x3, 0xc0, 0xf,
+    0x0, 0x0, 0x3c, 0x0, 0x0, 0xf0, 0x3, 0xc0,
+    0x0, 0xf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+88BC "袼" */
     0x0, 0x10, 0x0, 0x0, 0x90, 0x0, 0x0, 0x0,
     0x2e, 0x0, 0x0, 0xbc, 0x0, 0x0, 0x0, 0x7,
@@ -130645,6 +139122,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0xf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+88C1 "裁" */
+    0x0, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0,
+    0x0, 0x3c, 0x0, 0x2e, 0x0, 0x0, 0x0, 0x0,
+    0x3c, 0x0, 0x1e, 0xd, 0x0, 0x0, 0x0, 0x3c,
+    0x0, 0x1e, 0x1f, 0x40, 0x2, 0xff, 0xff, 0xff,
+    0x5e, 0x7, 0xd0, 0x2, 0xff, 0xff, 0xff, 0x5e,
+    0x1, 0xf4, 0x0, 0x0, 0x3c, 0x0, 0x1f, 0x0,
+    0x74, 0x0, 0x0, 0x3c, 0x0, 0x1f, 0x0, 0x10,
+    0x0, 0x0, 0x3c, 0x0, 0x1f, 0x0, 0x0, 0xf,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x14,
+    0x0, 0xf, 0x0, 0x0, 0x0, 0x0, 0x7c, 0x0,
+    0xf, 0x0, 0xb4, 0x0, 0x0, 0x3c, 0x0, 0xf,
+    0x40, 0xf0, 0xb, 0xff, 0xff, 0xff, 0xcb, 0x42,
+    0xe0, 0xb, 0xff, 0xff, 0xff, 0xcb, 0x83, 0xc0,
+    0x0, 0x0, 0xf8, 0x0, 0x7, 0x8b, 0x80, 0x0,
+    0x3, 0xf0, 0x7, 0x3, 0xdf, 0x0, 0x0, 0x1f,
+    0xfc, 0x1f, 0x3, 0xfd, 0x0, 0x0, 0xbf, 0x5f,
+    0xbc, 0x2, 0xfc, 0x0, 0x7, 0xff, 0x47, 0xf0,
+    0x2, 0xf0, 0x4, 0x3f, 0xcb, 0x40, 0xfc, 0xb,
+    0xf0, 0xf, 0x2d, 0xb, 0x40, 0x3f, 0x2f, 0xf8,
+    0x1e, 0x0, 0xb, 0x4b, 0x8e, 0xbd, 0x7c, 0x2d,
+    0x0, 0xb, 0xff, 0x43, 0xf4, 0x3f, 0x7c, 0x0,
+    0xf, 0xe4, 0xb, 0xd0, 0x1f, 0xf4, 0x0, 0xd,
+    0x0, 0x3, 0x0, 0x7, 0xe0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+88C2 "裂" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe0, 0x0,
     0x7f, 0xff, 0xff, 0xf0, 0x40, 0x3c, 0x0, 0x1f,
@@ -130673,6 +139177,35 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+88C5 "装" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xb, 0x40, 0x2, 0xe0, 0x0, 0x0, 0x18,
+    0x2, 0xd0, 0x0, 0xb8, 0x0, 0x0, 0xb, 0xc0,
+    0xb4, 0x0, 0x2e, 0x0, 0x0, 0x0, 0xbc, 0x2d,
+    0x55, 0x5f, 0x95, 0x54, 0x0, 0xf, 0x8b, 0x6f,
+    0xff, 0xff, 0xff, 0x40, 0x0, 0xe2, 0xd5, 0x55,
+    0xf9, 0x55, 0x40, 0x0, 0x1, 0xf4, 0x0, 0x2e,
+    0x0, 0x0, 0x0, 0x7, 0xfd, 0x0, 0xb, 0x80,
+    0x0, 0x0, 0x1f, 0xff, 0x40, 0x2, 0xe0, 0x0,
+    0x0, 0x7f, 0xd2, 0xd3, 0xff, 0xff, 0xff, 0x40,
+    0x1f, 0x40, 0xb4, 0xff, 0xff, 0xff, 0xd0, 0x1,
+    0x0, 0x2d, 0x14, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x5, 0xb, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xf0, 0x0, 0x0, 0x0, 0x1f, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xf0, 0xb, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xfc, 0x0, 0x0, 0x0, 0x7f, 0xc0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0xbe, 0xb8, 0x0,
+    0x34, 0x0, 0x0, 0x1, 0xfd, 0xf, 0x40, 0x7f,
+    0x0, 0x0, 0x7, 0xfd, 0x1, 0xf4, 0xfe, 0x0,
+    0x0, 0x1f, 0xff, 0x0, 0x1f, 0xfc, 0x0, 0x0,
+    0xbf, 0xd3, 0xc0, 0x1, 0xfc, 0x0, 0x0, 0xff,
+    0x40, 0xf0, 0x1, 0x1f, 0xe0, 0x0, 0x1d, 0x0,
+    0x3c, 0x1f, 0xc0, 0xbf, 0x90, 0x0, 0x0, 0xf,
+    0xff, 0xe0, 0x7, 0xff, 0xc0, 0x0, 0xb, 0xfe,
+    0x40, 0x0, 0xb, 0xf0, 0x0, 0x2, 0xe0, 0x0,
+    0x0, 0x0, 0x14, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+88C6 "裆" */
     0x0, 0x78, 0x0, 0x0, 0xf, 0x0, 0x0, 0x0,
     0xf0, 0x0, 0x0, 0x3c, 0x0, 0x40, 0x3, 0xc0,
@@ -130897,35 +139430,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xe0, 0x0, 0x1f, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+88DD "裝" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x5, 0x0, 0xf0, 0x0, 0x78, 0x0, 0x0, 0x7,
-    0x80, 0x3c, 0x0, 0x1e, 0x0, 0x0, 0x1, 0xe0,
-    0xf, 0x0, 0x7, 0x80, 0x0, 0x0, 0x7d, 0x57,
-    0xc0, 0x1, 0xe0, 0x0, 0x0, 0x1f, 0xff, 0xf3,
-    0xff, 0xff, 0xff, 0x40, 0x1, 0x55, 0xbc, 0xff,
-    0xff, 0xff, 0xe0, 0x0, 0x0, 0xf, 0x0, 0x7,
-    0x80, 0x0, 0x5, 0x55, 0x57, 0xc0, 0x1, 0xe0,
-    0x0, 0x3, 0xff, 0xff, 0xf0, 0x0, 0x78, 0x0,
-    0x0, 0x56, 0xe5, 0xbc, 0x0, 0x1e, 0x0, 0x0,
-    0x0, 0xb4, 0xf, 0x1f, 0xff, 0xff, 0xd0, 0x0,
-    0x3c, 0x3, 0xc7, 0xff, 0xff, 0xf8, 0x0, 0x7d,
-    0x0, 0xf1, 0x0, 0x0, 0x0, 0x0, 0x3d, 0x0,
-    0x16, 0xe0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0,
-    0x3c, 0x0, 0x0, 0x0, 0xf, 0xff, 0xff, 0xff,
-    0xff, 0xff, 0xfc, 0x3, 0xff, 0xff, 0xff, 0xff,
-    0xff, 0xff, 0x0, 0x0, 0x0, 0x1f, 0xf0, 0x0,
-    0x10, 0x0, 0x0, 0x0, 0x2f, 0xaf, 0x0, 0x2e,
-    0x0, 0x0, 0x0, 0xbf, 0x43, 0xf0, 0x7f, 0x40,
-    0x0, 0x6, 0xff, 0x40, 0x3f, 0xbe, 0x0, 0x0,
-    0x2f, 0xfb, 0xd0, 0x3, 0xfd, 0x0, 0x0, 0xff,
-    0xd0, 0xf4, 0x0, 0x2f, 0xc0, 0x0, 0x3e, 0x40,
-    0x3d, 0xb, 0xc1, 0xff, 0x40, 0x0, 0x0, 0xf,
-    0xff, 0xf0, 0xb, 0xff, 0x80, 0x0, 0xf, 0xff,
-    0x40, 0x0, 0x1f, 0xf0, 0x0, 0x2, 0xe4, 0x0,
-    0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0,
-
     /* U+88DF "裟" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x8, 0x0, 0x0, 0x7, 0x80, 0x0, 0x0, 0x7,
@@ -131205,6 +139709,63 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+88F8 "裸" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x1d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7,
+    0x80, 0xf, 0xff, 0xff, 0xfe, 0x0, 0x0, 0xf0,
+    0x3, 0xff, 0xff, 0xff, 0xc0, 0x0, 0x3c, 0x0,
+    0xf0, 0xf, 0x0, 0xf0, 0x2, 0xaf, 0xa4, 0x3c,
+    0x3, 0xc0, 0x3c, 0x0, 0xff, 0xfd, 0xf, 0x0,
+    0xf0, 0xf, 0x0, 0x2f, 0xff, 0x43, 0xea, 0xfe,
+    0xab, 0xc0, 0x0, 0x3, 0xc0, 0xff, 0xff, 0xff,
+    0xf0, 0x0, 0x2, 0xe0, 0x3c, 0x3, 0xc0, 0x3c,
+    0x0, 0x1, 0xf0, 0xf, 0x0, 0xf0, 0xf, 0x0,
+    0x0, 0xf4, 0x3, 0xc0, 0x3c, 0x3, 0xc0, 0x0,
+    0xbc, 0x28, 0xff, 0xff, 0xff, 0xf0, 0x0, 0x7f,
+    0x1f, 0x3f, 0xff, 0xff, 0xf8, 0x0, 0x3f, 0xcf,
+    0x40, 0x0, 0xf0, 0x0, 0x0, 0x3f, 0xff, 0x40,
+    0x0, 0x3c, 0x0, 0x0, 0x3f, 0x3f, 0xc3, 0xff,
+    0xff, 0xff, 0xfd, 0x1f, 0xf, 0xf8, 0xff, 0xff,
+    0xff, 0xff, 0x82, 0x43, 0xcf, 0x80, 0xb, 0xfd,
+    0x0, 0x0, 0x0, 0xf0, 0xf0, 0x7, 0xff, 0xc0,
+    0x0, 0x0, 0x3c, 0x18, 0x7, 0xdf, 0xbc, 0x0,
+    0x0, 0xf, 0x0, 0x7, 0xe3, 0xcb, 0xc0, 0x0,
+    0x3, 0xc0, 0xb, 0xe0, 0xf0, 0xbe, 0x0, 0x0,
+    0xf0, 0xf, 0xd0, 0x3c, 0xb, 0xf0, 0x0, 0x3c,
+    0x2f, 0xd0, 0xf, 0x0, 0x7f, 0x40, 0xf, 0xf,
+    0xc0, 0x3, 0xc0, 0x3, 0xc0, 0x3, 0xc1, 0x80,
+    0x0, 0xf0, 0x0, 0x10, 0x0, 0xf0, 0x0, 0x0,
+    0x3c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
+    /* U+88F9 "裹" */
+    0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xf4, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xbc, 0x0, 0x0, 0x0, 0x1a, 0xaa, 0xaa,
+    0xfe, 0xaa, 0xaa, 0xa0, 0x2f, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x55, 0x55, 0x55, 0x55, 0x54,
+    0x0, 0x0, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0,
+    0x0, 0xf0, 0x0, 0x7c, 0x0, 0x3c, 0x0, 0x0,
+    0xff, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x0, 0xf9,
+    0x55, 0xbd, 0x55, 0x7c, 0x0, 0x0, 0xf4, 0x0,
+    0x7c, 0x0, 0x3c, 0x0, 0x0, 0xff, 0xff, 0xff,
+    0xff, 0xfc, 0x0, 0x0, 0x0, 0x0, 0x7c, 0x0,
+    0x0, 0x0, 0x1a, 0xaa, 0xaa, 0xbe, 0xaa, 0xaa,
+    0x90, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
+    0x0, 0x0, 0x1f, 0xfc, 0x50, 0x0, 0x0, 0x0,
+    0x1, 0xfe, 0x7c, 0xfe, 0x40, 0x0, 0x0, 0x6f,
+    0xe0, 0x38, 0x1b, 0xf8, 0x0, 0x1b, 0xfd, 0x0,
+    0x7c, 0x0, 0x7f, 0xd0, 0x2f, 0x80, 0x7, 0xfc,
+    0x0, 0x87, 0xe0, 0x4, 0x0, 0x7f, 0xae, 0x7,
+    0xe0, 0x50, 0x0, 0xb, 0xf8, 0xf, 0xff, 0x80,
+    0x0, 0x1, 0xff, 0xe0, 0x2, 0xfd, 0x0, 0x0,
+    0xbf, 0xf5, 0xe0, 0x4, 0x7f, 0xe0, 0x0, 0xbd,
+    0x1, 0xe1, 0xfd, 0x6, 0xff, 0xe4, 0x0, 0x2,
+    0xff, 0xf8, 0x0, 0x1b, 0xfc, 0x0, 0x3, 0xf9,
+    0x0, 0x0, 0x0, 0x14, 0x0, 0x2, 0x40, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+88FC "裼" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x78, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c,
@@ -131343,6 +139904,35 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xf4, 0x0, 0xf0, 0x0, 0x0, 0x0, 0xff, 0xc0,
     0x3, 0xc0, 0x0, 0x0, 0x2, 0xe4, 0x0,
 
+    /* U+8912 "褒" */
+    0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xf, 0x40, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x2, 0xf0, 0x0, 0x0, 0x0, 0x1f, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xf0, 0xb, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xfc, 0x0, 0x0, 0x40, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x3c, 0x15, 0x55,
+    0x55, 0x50, 0x0, 0x0, 0x2e, 0xb, 0xff, 0xff,
+    0xfe, 0x0, 0x0, 0x1f, 0x2, 0xd0, 0x0, 0xb,
+    0x80, 0x0, 0x1f, 0x40, 0xb9, 0x55, 0x56, 0xe0,
+    0x0, 0x1f, 0xd0, 0x2f, 0xff, 0xff, 0xf8, 0x0,
+    0x1f, 0xf4, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x1f,
+    0xbd, 0x2a, 0xaa, 0xbe, 0xaa, 0xa8, 0x3, 0x8f,
+    0x4f, 0xff, 0xff, 0xff, 0xff, 0x0, 0x3, 0xd0,
+    0x0, 0x7f, 0xc4, 0x0, 0x0, 0x0, 0xf4, 0x0,
+    0xbd, 0xf3, 0xe4, 0x0, 0x0, 0x3d, 0x7, 0xf8,
+    0x3c, 0x6f, 0xe0, 0x0, 0xf, 0x6f, 0xe0, 0x4f,
+    0x0, 0x7f, 0x80, 0x3, 0xdb, 0x81, 0xf7, 0xc0,
+    0x1, 0x90, 0x0, 0x50, 0x3, 0xfc, 0x40, 0x1c,
+    0x0, 0x0, 0x0, 0x1b, 0xff, 0x80, 0x3f, 0x40,
+    0x0, 0x0, 0x7f, 0xd0, 0xf8, 0xbf, 0x0, 0x0,
+    0x7, 0xff, 0xc0, 0xf, 0xfd, 0x0, 0x0, 0xbf,
+    0xf8, 0xf0, 0x0, 0xbf, 0x80, 0x0, 0x3f, 0x90,
+    0x3c, 0x1, 0xc2, 0xff, 0x90, 0x0, 0x0, 0xf,
+    0x6f, 0xf4, 0x7, 0xff, 0xc0, 0x0, 0x7, 0xff,
+    0x90, 0x0, 0x6, 0xf0, 0x0, 0x2, 0xf9, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+8913 "褓" */
     0x0, 0x74, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x1e, 0x0, 0xb, 0x40, 0x0, 0x0, 0x0, 0x3,
@@ -131398,6 +139988,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x7, 0xfe, 0x0, 0x0, 0xf0, 0x2, 0xc0,
     0x0, 0xf9, 0x0,
 
+    /* U+891A "褚" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x74, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0x78,
+    0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0x3c, 0x0,
+    0x0, 0xf0, 0x0, 0x78, 0x0, 0x3c, 0x0, 0xaa,
+    0xfa, 0xa4, 0xf4, 0x0, 0x3d, 0x0, 0xff, 0xff,
+    0xfa, 0xf0, 0xf, 0xff, 0xf0, 0x55, 0xf9, 0x5b,
+    0xd0, 0xf, 0xff, 0xf0, 0x0, 0xf0, 0xf, 0x80,
+    0x0, 0x2, 0xe0, 0x0, 0xf0, 0x3f, 0x0, 0x0,
+    0x3, 0xc0, 0x0, 0xf4, 0xbc, 0x0, 0x0, 0xf,
+    0x87, 0xff, 0xff, 0xff, 0xff, 0x0, 0x1f, 0x7,
+    0xff, 0xff, 0xff, 0xff, 0x0, 0x3d, 0x8, 0x0,
+    0x3f, 0x0, 0x0, 0x0, 0xfc, 0x3c, 0x1, 0xfc,
+    0x0, 0x0, 0x2, 0xfc, 0xb8, 0xb, 0xe0, 0x0,
+    0x0, 0xb, 0xfe, 0xf0, 0xbf, 0xff, 0xff, 0xc0,
+    0x1f, 0x7f, 0xc7, 0xff, 0xff, 0xff, 0xc0, 0x7e,
+    0x3f, 0xdb, 0xfd, 0x0, 0x3, 0xc0, 0x38, 0x3d,
+    0xf5, 0x3d, 0x0, 0x3, 0xc0, 0x0, 0x3c, 0x7c,
+    0x3d, 0x0, 0x3, 0xc0, 0x0, 0x3c, 0x18, 0x3f,
+    0xff, 0xff, 0xc0, 0x0, 0x3c, 0x0, 0x3f, 0xff,
+    0xff, 0xc0, 0x0, 0x3c, 0x0, 0x3d, 0x0, 0x3,
+    0xc0, 0x0, 0x3c, 0x0, 0x3d, 0x0, 0x3, 0xc0,
+    0x0, 0x3c, 0x0, 0x3e, 0xaa, 0xab, 0xc0, 0x0,
+    0x3c, 0x0, 0x3f, 0xff, 0xff, 0xc0, 0x0, 0x3c,
+    0x0, 0x3d, 0x0, 0x3, 0xc0, 0x0, 0x3c, 0x0,
+    0x3d, 0x0, 0x3, 0xc0,
+
     /* U+891B "褛" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x18, 0x0, 0x0, 0xb, 0x40, 0x0, 0x0, 0xb,
@@ -131862,6 +140479,31 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0x7c, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x7c, 0x0, 0x0, 0x0,
 
+    /* U+8986 "覆" */
+    0x1a, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xa0, 0x1f,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x0, 0x0,
+    0x1e, 0x0, 0xf0, 0x0, 0x0, 0x1, 0x55, 0x6e,
+    0x55, 0xf5, 0x55, 0x0, 0x3, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0x80, 0x3, 0xc0, 0x1e, 0x0, 0xf0,
+    0x7, 0x80, 0x3, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0x80, 0x1, 0x5d, 0x57, 0x95, 0x55, 0x55, 0x0,
+    0x0, 0x1e, 0x3, 0xc0, 0x0, 0x0, 0x0, 0x0,
+    0x7d, 0xf, 0xff, 0xff, 0xff, 0xf0, 0x1, 0xf4,
+    0x2e, 0x55, 0x55, 0x55, 0x50, 0xb, 0xd0, 0xbd,
+    0x55, 0x55, 0x55, 0x0, 0x3f, 0x40, 0xfb, 0xff,
+    0xff, 0xff, 0x0, 0x2c, 0xe, 0xb, 0x40, 0x0,
+    0xf, 0x0, 0x0, 0x3c, 0xb, 0xff, 0xff, 0xff,
+    0x0, 0x0, 0xf4, 0xb, 0x40, 0x0, 0xf, 0x0,
+    0x2, 0xf0, 0xb, 0xff, 0xff, 0xff, 0x0, 0xf,
+    0xf0, 0x5, 0xe5, 0x55, 0x55, 0x0, 0x3e, 0xf0,
+    0x2, 0xf0, 0x0, 0x0, 0x0, 0xb8, 0xf0, 0xb,
+    0xff, 0xff, 0xff, 0x0, 0x20, 0xf0, 0x3f, 0xf5,
+    0x55, 0x7f, 0x0, 0x0, 0xf2, 0xf4, 0xbd, 0x2,
+    0xf8, 0x0, 0x0, 0xf1, 0x80, 0xb, 0xff, 0x80,
+    0x0, 0x0, 0xf0, 0x1, 0x6f, 0xff, 0xe4, 0x0,
+    0x0, 0xf2, 0xff, 0xf9, 0x1, 0xbf, 0xfd, 0x0,
+    0xf1, 0xe4, 0x0, 0x0, 0x1, 0x6c,
+
     /* U+89C1 "见" */
     0x0, 0x15, 0x55, 0x55, 0x55, 0x50, 0x0, 0x0,
     0xff, 0xff, 0xff, 0xff, 0xd0, 0x0, 0x3, 0xff,
@@ -132018,6 +140660,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xe0, 0x0, 0x1, 0xfc, 0x0, 0x1f, 0xfe, 0x0,
     0x0, 0x1, 0x40, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+89C8 "览" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x1, 0xf0, 0x3, 0xc0, 0x0, 0x0, 0x3c, 0x7,
+    0xc0, 0x1f, 0x0, 0x0, 0x0, 0xf0, 0x1f, 0x0,
+    0xbc, 0x0, 0x0, 0x3, 0xc0, 0x7c, 0x3, 0xff,
+    0xff, 0xf8, 0xf, 0x1, 0xf0, 0x2f, 0xff, 0xff,
+    0xd0, 0x3c, 0x7, 0xc0, 0xf4, 0x40, 0x0, 0x0,
+    0xf0, 0x1f, 0xb, 0xc7, 0xd0, 0x0, 0x3, 0xc0,
+    0x7c, 0x7d, 0xb, 0xf0, 0x0, 0xf, 0x1, 0xf3,
+    0xe0, 0x7, 0xf4, 0x0, 0x3c, 0x7, 0xc3, 0x0,
+    0x3, 0xf0, 0x0, 0x50, 0xa, 0x0, 0x0, 0x2,
+    0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xff, 0xff, 0xff, 0xff, 0xd0, 0x0, 0x3,
+    0xff, 0xff, 0xff, 0xff, 0x40, 0x0, 0xf, 0x0,
+    0x0, 0x0, 0x3d, 0x0, 0x0, 0x3c, 0x0, 0x74,
+    0x0, 0xf4, 0x0, 0x0, 0xf0, 0x2, 0xe0, 0x3,
+    0xd0, 0x0, 0x3, 0xc0, 0xf, 0x40, 0xf, 0x40,
+    0x0, 0xf, 0x0, 0x3f, 0x80, 0x3d, 0x0, 0x0,
+    0x3c, 0x2, 0xff, 0x0, 0xf4, 0x0, 0x0, 0xf0,
+    0x1f, 0xfc, 0x3, 0xd2, 0x40, 0x0, 0x1, 0xfd,
+    0xf0, 0x0, 0xf, 0x40, 0x0, 0x2f, 0xd3, 0xc0,
+    0x0, 0x3d, 0x0, 0x1f, 0xfc, 0xf, 0x90, 0x6,
+    0xf0, 0x6f, 0xff, 0x40, 0x3f, 0xff, 0xff, 0xc7,
+    0xff, 0x90, 0x0, 0x2f, 0xff, 0xf8, 0xf, 0x80,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+89C9 "觉" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0xb0, 0x7, 0x80, 0x0, 0xe0, 0x0, 0x3, 0xe0,
@@ -132814,32 +141483,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0xf, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+8B39 "謹" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0xb0, 0x0, 0xe, 0x0, 0x2c, 0x0, 0x0, 0x78,
-    0x0, 0xf, 0x0, 0x2c, 0x0, 0x0, 0x3c, 0x2,
-    0xff, 0xff, 0xff, 0xf8, 0x0, 0x3d, 0x3, 0xff,
-    0xff, 0xff, 0xfc, 0x3f, 0xff, 0xf8, 0xf, 0x0,
-    0x2c, 0x0, 0x3f, 0xff, 0xf8, 0xf, 0x0, 0x2c,
-    0x0, 0x0, 0x0, 0x0, 0xf, 0xaa, 0xbc, 0x0,
-    0x0, 0x0, 0x0, 0xf, 0xff, 0xfc, 0x0, 0x6,
-    0xaa, 0x90, 0x0, 0xe, 0x0, 0x0, 0xf, 0xff,
-    0xe0, 0xaa, 0xaf, 0xaa, 0x80, 0x0, 0x0, 0x0,
-    0xff, 0xff, 0xff, 0xc0, 0x0, 0x0, 0x0, 0xf0,
-    0x1f, 0x2, 0xc0, 0x5, 0x55, 0x50, 0xf0, 0xe,
-    0x2, 0xc0, 0xf, 0xff, 0xe0, 0xfa, 0xaf, 0xab,
-    0xc0, 0x5, 0x55, 0x50, 0xff, 0xff, 0xff, 0xc0,
-    0x0, 0x0, 0x0, 0x0, 0xe, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0xe, 0x0, 0x0, 0xf, 0xff,
-    0xe3, 0xff, 0xff, 0xff, 0xf0, 0xf, 0xff, 0xe2,
-    0xaa, 0xbf, 0xaa, 0xa0, 0xf, 0x1, 0xe0, 0x0,
-    0xe, 0x0, 0x0, 0xf, 0x1, 0xe1, 0xaa, 0xaf,
-    0xaa, 0x80, 0xf, 0x1, 0xe1, 0xff, 0xff, 0xff,
-    0xd0, 0xf, 0x1, 0xe0, 0x0, 0xe, 0x0, 0x0,
-    0xf, 0x1, 0xe0, 0x0, 0xe, 0x0, 0x0, 0xf,
-    0xff, 0xea, 0xaa, 0xbf, 0xaa, 0xa8, 0xa, 0xaa,
-    0x9f, 0xff, 0xff, 0xff, 0xfc,
-
     /* U+8B66 "警" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x38, 0xf, 0x0, 0xf, 0x0, 0x0, 0x0, 0x3c,
@@ -132896,6 +141539,19 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x55, 0x56, 0xf0, 0x0, 0x0, 0xb8, 0x0, 0x0,
     0x0, 0x7c, 0x0,
 
+    /* U+8BA0 "讠" */
+    0x0, 0x80, 0x0, 0x0, 0xf8, 0x0, 0x0, 0x2f,
+    0x80, 0x0, 0x2, 0xf4, 0x0, 0x0, 0x3f, 0x0,
+    0x0, 0x3, 0xf0, 0x0, 0x0, 0xbc, 0x0, 0x0,
+    0x8, 0x0, 0x0, 0x0, 0x0, 0x15, 0x55, 0x0,
+    0xf, 0xff, 0xd0, 0x2, 0xff, 0xf4, 0x0, 0x0,
+    0x3d, 0x0, 0x0, 0xf, 0x40, 0x0, 0x3, 0xd0,
+    0x0, 0x0, 0xf4, 0x0, 0x0, 0x3d, 0x0, 0x0,
+    0xf, 0x40, 0x0, 0x3, 0xd0, 0x0, 0x0, 0xf4,
+    0x8, 0x0, 0x3d, 0xf, 0x80, 0xf, 0x5f, 0xd0,
+    0x3, 0xff, 0x80, 0x0, 0xff, 0x40, 0x0, 0xbf,
+    0x0, 0x0, 0x1e, 0x0, 0x0, 0x1, 0x0, 0x0,
+
     /* U+8BA1 "计" */
     0x0, 0x80, 0x0, 0x0, 0x28, 0x0, 0x0, 0x2,
     0xf0, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0xfc,
@@ -134964,6 +143620,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xb8, 0x6f, 0xc0, 0x8, 0x1, 0xf0, 0xb, 0x87,
     0xf4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+8BF6 "诶" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x2, 0x0,
+    0x0, 0xb, 0xc0, 0x0, 0x0, 0xb, 0xc0, 0x0,
+    0x1f, 0x1, 0xf0, 0x0, 0x2, 0xf0, 0x0, 0x7d,
+    0x0, 0xf8, 0x0, 0x0, 0xf8, 0x0, 0xf4, 0x0,
+    0x3e, 0x0, 0x0, 0x3d, 0x7, 0xe0, 0x0, 0x1f,
+    0x40, 0x0, 0x2d, 0x2f, 0xff, 0xff, 0xff, 0xc0,
+    0x0, 0x4, 0x2f, 0xff, 0xff, 0xff, 0xf0, 0x0,
+    0x0, 0x4, 0x90, 0x0, 0x0, 0xe0, 0x15, 0x50,
+    0x1, 0xf0, 0x0, 0x0, 0x0, 0x7f, 0xf0, 0x3,
+    0xe0, 0x0, 0x0, 0x0, 0x6a, 0xf0, 0x7, 0xff,
+    0xff, 0xff, 0xc0, 0x0, 0xf0, 0xf, 0xff, 0xff,
+    0xff, 0xc0, 0x0, 0xf0, 0x1f, 0x0, 0xb8, 0x0,
+    0x0, 0x0, 0xf0, 0x3d, 0x0, 0xb8, 0x0, 0x0,
+    0x0, 0xf0, 0x2c, 0x0, 0xb8, 0x0, 0x0, 0x0,
+    0xf0, 0x4, 0x0, 0xb8, 0x0, 0x0, 0x0, 0xf0,
+    0xff, 0xff, 0xff, 0xff, 0xf4, 0x0, 0xf0, 0xff,
+    0xff, 0xff, 0xff, 0xf4, 0x0, 0xf0, 0x0, 0x1,
+    0xfc, 0x0, 0x0, 0x0, 0xf1, 0x80, 0x3, 0xff,
+    0x0, 0x0, 0x0, 0xf7, 0xc0, 0xb, 0xdf, 0xc0,
+    0x0, 0x0, 0xff, 0x80, 0x2f, 0x87, 0xf0, 0x0,
+    0x1, 0xfd, 0x2, 0xfe, 0x1, 0xfe, 0x0, 0x3,
+    0xf0, 0x6f, 0xf4, 0x0, 0x3f, 0xe4, 0x1, 0xc2,
+    0xff, 0x40, 0x0, 0x7, 0xfc, 0x0, 0x0, 0xf4,
+    0x0, 0x0, 0x0, 0x78, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+8BF7 "请" */
     0x0, 0x0, 0x0, 0x0, 0x64, 0x0, 0x0, 0x2,
     0x80, 0x0, 0x0, 0xb4, 0x0, 0x0, 0x3, 0xd0,
@@ -135123,6 +143807,31 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xf, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1,
     0xa4, 0x0, 0x0, 0x0,
 
+    /* U+8BFD "诽" */
+    0x0, 0x0, 0x0, 0x14, 0xb, 0x40, 0x0, 0x1d,
+    0x0, 0x0, 0xf0, 0x3d, 0x0, 0x0, 0xbc, 0x0,
+    0x3, 0xc0, 0xf4, 0x0, 0x0, 0xf8, 0x0, 0xf,
+    0x3, 0xd0, 0x0, 0x1, 0xf4, 0x15, 0x7c, 0xf,
+    0x95, 0x50, 0x2, 0xf3, 0xff, 0xf0, 0x3f, 0xff,
+    0xc0, 0x3, 0x8f, 0xff, 0xc0, 0xff, 0xff, 0x0,
+    0x4, 0x0, 0xf, 0x3, 0xd0, 0x0, 0x0, 0x0,
+    0x0, 0x3c, 0xf, 0x40, 0x0, 0x0, 0x0, 0x0,
+    0xf0, 0x3d, 0x0, 0x7, 0xff, 0x0, 0x3, 0xc0,
+    0xf4, 0x0, 0x1f, 0xfc, 0x5, 0x5f, 0x3, 0xe5,
+    0x50, 0x0, 0xf0, 0xbf, 0xfc, 0xf, 0xff, 0xe0,
+    0x3, 0xc1, 0xff, 0xf0, 0x3f, 0xff, 0x40, 0xf,
+    0x0, 0x3, 0xc0, 0xf4, 0x0, 0x0, 0x3c, 0x0,
+    0xf, 0x3, 0xd0, 0x0, 0x0, 0xf0, 0x0, 0x3c,
+    0xf, 0x40, 0x0, 0x3, 0xc0, 0x0, 0xf0, 0x3d,
+    0x0, 0x0, 0xf, 0x5, 0x57, 0xc0, 0xf9, 0x55,
+    0x40, 0x3c, 0x7f, 0xff, 0x3, 0xff, 0xff, 0x0,
+    0xf1, 0xff, 0xfc, 0xf, 0xff, 0xfc, 0x3, 0xcc,
+    0x0, 0xf0, 0x3d, 0x0, 0x0, 0xf, 0xf8, 0x3,
+    0xc0, 0xf4, 0x0, 0x0, 0x3f, 0x80, 0xf, 0x3,
+    0xd0, 0x0, 0x1, 0xf8, 0x0, 0x3c, 0xf, 0x40,
+    0x0, 0x7, 0x80, 0x0, 0xf0, 0x3d, 0x0, 0x0,
+    0x4, 0x0, 0x3, 0xc0, 0xf4, 0x0, 0x0,
+
     /* U+8BFE "课" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7,
     0xc0, 0xf, 0xff, 0xff, 0xff, 0x40, 0x3, 0xe0,
@@ -135230,6 +143939,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x3, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3,
     0xc0, 0x0, 0x0, 0x0,
 
+    /* U+8C02 "谂" */
+    0x0, 0x0, 0x0, 0x0, 0xb8, 0x0, 0x0, 0x7,
+    0x40, 0x0, 0x1, 0xfd, 0x0, 0x0, 0xb, 0xc0,
+    0x0, 0x3, 0xef, 0x0, 0x0, 0x2, 0xf0, 0x0,
+    0xf, 0x8b, 0xc0, 0x0, 0x0, 0xf8, 0x0, 0x2f,
+    0x3, 0xf0, 0x0, 0x0, 0x3d, 0x0, 0xbc, 0x0,
+    0xfc, 0x0, 0x0, 0x2c, 0x2, 0xf5, 0xd0, 0x3f,
+    0x40, 0x0, 0x0, 0xb, 0xd0, 0xf0, 0xf, 0xe0,
+    0x0, 0x0, 0x3f, 0x40, 0x78, 0x2, 0xfd, 0x15,
+    0x50, 0xfc, 0x0, 0x3c, 0x0, 0x7d, 0x7f, 0xf0,
+    0xa0, 0x0, 0x10, 0x0, 0x8, 0x7f, 0xf0, 0x3,
+    0xff, 0xff, 0xff, 0x0, 0x0, 0xf0, 0x3, 0xff,
+    0xff, 0xff, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x0,
+    0x3d, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0xb8,
+    0x0, 0x0, 0xf0, 0x0, 0x0, 0xe0, 0xf0, 0x0,
+    0x0, 0xf0, 0x0, 0x14, 0xb5, 0xd0, 0x0, 0x0,
+    0xf0, 0x5, 0x3c, 0x3c, 0x2, 0x80, 0x0, 0xf0,
+    0xf, 0x3c, 0x2d, 0x3, 0xc0, 0x0, 0xf3, 0x5e,
+    0x3c, 0xf, 0x1, 0xf0, 0x0, 0xfb, 0x6c, 0x3c,
+    0x9, 0x10, 0xf4, 0x0, 0xfe, 0x3c, 0x3c, 0x0,
+    0x78, 0x7c, 0x0, 0xfc, 0xb4, 0x3c, 0x0, 0x74,
+    0x3d, 0x2, 0xf0, 0xf0, 0x3d, 0x0, 0xf4, 0x1e,
+    0x1, 0xc0, 0x90, 0x3f, 0xff, 0xf0, 0x4, 0x0,
+    0x0, 0x0, 0xf, 0xff, 0x80, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+8C03 "调" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x78,
     0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0xd0, 0x2f,
@@ -135758,6 +144493,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+8C18 "谘" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x10, 0x0, 0xf0, 0x0, 0x0, 0xa, 0x0,
+    0xb8, 0x1, 0xe0, 0x0, 0x0, 0x1f, 0x40, 0x3d,
+    0x3, 0xd0, 0x0, 0x0, 0x7, 0xc0, 0x1f, 0x3,
+    0xff, 0xff, 0xf0, 0x2, 0xf0, 0xf, 0x8b, 0xff,
+    0xff, 0xf0, 0x0, 0xf8, 0x3, 0x9f, 0x5, 0x1,
+    0xe0, 0x0, 0x78, 0x0, 0x3d, 0xb, 0x3, 0xc0,
+    0x0, 0x10, 0x0, 0x28, 0xf, 0x7, 0x40, 0x0,
+    0x0, 0x3, 0x80, 0xf, 0x40, 0x0, 0x7f, 0xf0,
+    0x7, 0xc0, 0x1f, 0xc0, 0x0, 0x7f, 0xf0, 0xf,
+    0x40, 0x7d, 0xf0, 0x0, 0x15, 0xf0, 0x3e, 0x1,
+    0xf4, 0xbc, 0x0, 0x1, 0xf0, 0xbc, 0xf, 0xd0,
+    0x2f, 0x80, 0x1, 0xf1, 0xf4, 0xff, 0x40, 0x7,
+    0xf8, 0x1, 0xf0, 0xe0, 0xf8, 0x0, 0x0, 0xbc,
+    0x1, 0xf0, 0x0, 0x50, 0x0, 0x0, 0x4, 0x1,
+    0xf0, 0x7, 0xff, 0xff, 0xff, 0x40, 0x1, 0xf0,
+    0x7, 0xff, 0xff, 0xff, 0x40, 0x1, 0xf0, 0x7,
+    0xc0, 0x0, 0xf, 0x40, 0x1, 0xf0, 0x87, 0xc0,
+    0x0, 0xf, 0x40, 0x1, 0xf3, 0xc7, 0xc0, 0x0,
+    0xf, 0x40, 0x1, 0xff, 0xc7, 0xc0, 0x0, 0xf,
+    0x40, 0x1, 0xff, 0x7, 0xc0, 0x0, 0xf, 0x40,
+    0x2, 0xf8, 0x7, 0xff, 0xff, 0xff, 0x40, 0x3,
+    0xe0, 0x7, 0xff, 0xff, 0xff, 0x40, 0x0, 0x80,
+    0x7, 0xc0, 0x0, 0xf, 0x40, 0x0, 0x0, 0x7,
+    0xc0, 0x0, 0xf, 0x40,
+
     /* U+8C19 "谙" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x1, 0xf0, 0x0, 0x0, 0xf, 0x0,
@@ -136211,6 +144973,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xc0, 0x3c, 0x0, 0x0, 0x6b, 0xd0, 0x0, 0x0,
     0x3c, 0x0, 0x0, 0xbe, 0x40,
 
+    /* U+8C2B "谫" */
+    0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xb, 0x80, 0x3, 0xc0, 0x2, 0xd0, 0x0,
+    0xf, 0x40, 0x2e, 0x0, 0xb, 0xc0, 0x0, 0x1e,
+    0x1, 0xf0, 0x0, 0xf, 0xc2, 0xff, 0xff, 0xff,
+    0xff, 0xfc, 0xf, 0x8b, 0xff, 0xff, 0xff, 0xff,
+    0xf0, 0x1f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x2c, 0x0, 0x0, 0x0, 0x0, 0x90, 0x0, 0x0,
+    0xbf, 0xff, 0x83, 0x83, 0xc0, 0x0, 0x2, 0xd0,
+    0x1e, 0xe, 0xf, 0x1, 0x54, 0xb, 0x55, 0x78,
+    0x38, 0x3c, 0x3f, 0xf0, 0x2f, 0xff, 0xe0, 0xe0,
+    0xf0, 0xbf, 0xc0, 0xb4, 0x7, 0x83, 0x83, 0xc0,
+    0xf, 0x2, 0xe5, 0x6e, 0xe, 0xf, 0x0, 0x3c,
+    0xb, 0xff, 0xf8, 0x38, 0x3c, 0x0, 0xf0, 0x2c,
+    0x0, 0xe0, 0x40, 0xf0, 0x3, 0xc0, 0xb0, 0x6f,
+    0x40, 0xbf, 0x80, 0xf, 0x2, 0xc2, 0xf8, 0x3,
+    0xf8, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xf0, 0x1a, 0xaa, 0xaa, 0xaa, 0x90, 0x3,
+    0xc1, 0xbf, 0xff, 0xff, 0xff, 0x40, 0xf, 0x3c,
+    0x0, 0xf4, 0x0, 0x2d, 0x0, 0x3f, 0xf0, 0x7,
+    0xc0, 0x0, 0xb4, 0x0, 0xff, 0x0, 0x3d, 0x0,
+    0x3, 0xc0, 0x7, 0xe0, 0x7, 0xf0, 0x0, 0x2f,
+    0x0, 0xd, 0x6, 0xfe, 0x0, 0x7f, 0xf8, 0x0,
+    0x0, 0x7f, 0xd0, 0x1, 0xff, 0x80, 0x0, 0x0,
+    0xa0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+8C2C "谬" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7,
     0x0, 0xff, 0xff, 0x2f, 0xff, 0xc0, 0xf, 0xc0,
@@ -136687,6 +145475,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x3f, 0xf8, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+8C5A "豚" */
+    0x1, 0xaa, 0xa0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xbf, 0xfc, 0x3f, 0xff, 0xff, 0xff, 0x0, 0x2e,
+    0xaf, 0xf, 0xff, 0xff, 0xff, 0xc0, 0xb, 0x3,
+    0xc0, 0x0, 0x3f, 0x0, 0x0, 0x2, 0xc0, 0xf0,
+    0x0, 0x7e, 0x0, 0x0, 0x0, 0xb0, 0x3c, 0x0,
+    0xbe, 0x0, 0x0, 0x0, 0x2c, 0xf, 0x1, 0xff,
+    0x0, 0x7, 0x0, 0xb, 0xff, 0xc2, 0xfe, 0xe0,
+    0x7, 0xd0, 0x2, 0xff, 0xf7, 0xf4, 0x3c, 0x7,
+    0xe0, 0x0, 0xb5, 0x7c, 0xe0, 0xf, 0x4b, 0xd0,
+    0x0, 0x2c, 0xf, 0x0, 0xf, 0xfb, 0xd0, 0x0,
+    0xb, 0x3, 0xc0, 0xf, 0xbf, 0xf4, 0x0, 0x2,
+    0xc0, 0xf0, 0x1f, 0x8b, 0xee, 0x0, 0x0, 0xb0,
+    0x3c, 0x2f, 0x42, 0xe3, 0xc0, 0x0, 0x3f, 0xff,
+    0x7f, 0x41, 0xf8, 0xf4, 0x0, 0xf, 0xff, 0xde,
+    0x0, 0xff, 0x1e, 0x0, 0x3, 0xc0, 0xf1, 0x0,
+    0xfb, 0xc3, 0xc0, 0x0, 0xf0, 0x3c, 0x0, 0xf8,
+    0xf0, 0xb8, 0x0, 0x3c, 0xf, 0x1, 0xfc, 0x3c,
+    0xf, 0x0, 0xf, 0x3, 0xc1, 0xfc, 0xf, 0x1,
+    0xf0, 0x7, 0x80, 0xf2, 0xf8, 0x3, 0xc0, 0x3e,
+    0x2, 0xd0, 0x3f, 0xf4, 0x0, 0xf0, 0x3, 0xd0,
+    0xf0, 0xf, 0x70, 0x0, 0xbc, 0x0, 0x50, 0xb8,
+    0x7f, 0xc0, 0x2f, 0xfe, 0x0, 0x0, 0x3c, 0x1f,
+    0xd0, 0xb, 0xfe, 0x0, 0x0, 0x6, 0x0, 0x0,
+    0x0, 0x50, 0x0, 0x0, 0x0,
+
     /* U+8C61 "象" */
     0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x3e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -136744,32 +145558,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+8C68 "豨" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0xf4, 0x0, 0x2, 0xf0, 0x1f, 0xff,
-    0xfc, 0xff, 0x80, 0x1f, 0xe0, 0x1f, 0xff, 0xfc,
-    0xb, 0xf9, 0xff, 0x0, 0x0, 0x1f, 0x0, 0x0,
-    0xbf, 0xf4, 0x0, 0x0, 0x3d, 0x0, 0x2, 0xff,
-    0xf9, 0x0, 0x0, 0xf8, 0x0, 0x6f, 0xe4, 0x7f,
-    0xd0, 0x7, 0xe0, 0x12, 0xfe, 0x50, 0x7, 0xf8,
-    0x2f, 0xe0, 0xb4, 0x90, 0x78, 0x0, 0x74, 0x3e,
-    0xf1, 0xf0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0xbb,
-    0xd2, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x7f, 0x83,
-    0xff, 0xff, 0xff, 0xfc, 0x2, 0xff, 0x40, 0x7,
-    0xc0, 0x0, 0x0, 0xf, 0xef, 0xd0, 0xf, 0xf,
-    0x0, 0x0, 0x3f, 0x1f, 0xf4, 0x2e, 0xf, 0x0,
-    0x0, 0x28, 0xf, 0x7c, 0x7c, 0xf, 0x0, 0x0,
-    0x0, 0x1f, 0x15, 0xff, 0xff, 0xff, 0xf0, 0x0,
-    0x7f, 0x7, 0xff, 0xff, 0xff, 0xf0, 0x1, 0xff,
-    0x1f, 0x7c, 0xf, 0x0, 0xf0, 0xb, 0xdb, 0xd,
-    0x3c, 0xf, 0x0, 0xf0, 0x3f, 0x4b, 0x0, 0x3c,
-    0xf, 0x0, 0xf0, 0x3c, 0xb, 0x0, 0x3c, 0xf,
-    0x0, 0xf0, 0x0, 0xf, 0x0, 0x3c, 0xf, 0x0,
-    0xf0, 0x0, 0xf, 0x0, 0x3c, 0xf, 0x1f, 0xf0,
-    0x5, 0xbe, 0x0, 0x3c, 0xf, 0xf, 0xd0, 0xf,
-    0xfc, 0x0, 0x14, 0xf, 0x4, 0x0, 0xa, 0x40,
-    0x0, 0x0, 0xf, 0x0, 0x0,
-
     /* U+8C6A "豪" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -136825,33 +145613,29 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x74, 0xf, 0xfd, 0x0, 0x0, 0x15, 0x0, 0x0,
     0x6, 0x50, 0x0, 0x0,
 
-    /* U+8C70 "豰" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x7, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7,
-    0x80, 0x0, 0x2a, 0xaa, 0x0, 0x3f, 0xff, 0xff,
-    0xf4, 0x3f, 0xff, 0x0, 0x2a, 0xaf, 0xea, 0xa4,
-    0x3d, 0x5f, 0x0, 0x0, 0x7, 0x80, 0x0, 0x3c,
-    0xf, 0x0, 0xf, 0xff, 0xff, 0xd0, 0x3c, 0xf,
-    0x0, 0xa, 0xaa, 0xaa, 0x80, 0x78, 0xf, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0xb8, 0xf, 0x0, 0x2f,
-    0xff, 0xff, 0xf0, 0xf0, 0xf, 0xf8, 0x2e, 0xaa,
-    0xaa, 0xf2, 0xe0, 0xb, 0xf8, 0x2c, 0x0, 0x0,
-    0xf7, 0xc0, 0x0, 0x0, 0x0, 0xff, 0xfe, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0xaa, 0xa9, 0x3, 0xff,
-    0xff, 0xc0, 0x6, 0xaa, 0xaa, 0x83, 0xff, 0xff,
-    0xc0, 0xf, 0xff, 0xff, 0xc0, 0xb0, 0x3, 0xc0,
-    0x0, 0x1f, 0x40, 0x0, 0xf0, 0x7, 0x80, 0x1,
-    0xff, 0x1, 0xe0, 0x78, 0xb, 0x0, 0x1f, 0xd7,
-    0x4b, 0xc0, 0x3c, 0xf, 0x0, 0x9, 0x2f, 0xfe,
-    0x0, 0x2d, 0x2d, 0x0, 0x1, 0xfa, 0xfc, 0x0,
-    0xf, 0x7c, 0x0, 0x1f, 0xc7, 0xef, 0x0, 0x7,
-    0xf4, 0x0, 0x1d, 0x2f, 0xd7, 0x80, 0x3, 0xf0,
-    0x0, 0x0, 0xb8, 0xe2, 0xe0, 0xf, 0xfc, 0x0,
-    0x7, 0xe0, 0xe0, 0xf0, 0x7f, 0x2f, 0x40, 0x3f,
-    0x6, 0xd0, 0x17, 0xf8, 0xb, 0xf4, 0x34, 0x3f,
-    0xc0, 0x1f, 0xd0, 0x1, 0xfc, 0x0, 0x29, 0x0,
-    0xd, 0x0, 0x0, 0x24, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0,
+    /* U+8C73 "豳" */
+    0x0, 0x0, 0x0, 0xe0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x3c, 0x0, 0x0, 0x0, 0xf, 0xff, 0xcf,
+    0x3f, 0xff, 0x0, 0xe2, 0xff, 0xf3, 0xca, 0xbe,
+    0x8f, 0x3c, 0x7, 0x80, 0xf0, 0x1e, 0x3, 0xcf,
+    0x3, 0xc0, 0x3c, 0xf, 0x0, 0xf3, 0xc2, 0xe0,
+    0xf, 0xf, 0x40, 0x3c, 0xf2, 0xf8, 0x37, 0xcb,
+    0xe0, 0xdf, 0x3d, 0xfb, 0x1c, 0xf7, 0xac, 0xb3,
+    0xcf, 0x21, 0xde, 0x3c, 0x4b, 0xb8, 0xf3, 0xc0,
+    0xff, 0xf, 0x3, 0xfc, 0x3c, 0xf0, 0xff, 0x3,
+    0xc3, 0xfc, 0xf, 0x3c, 0xf6, 0xa0, 0xf3, 0xcf,
+    0xc3, 0xcf, 0x74, 0xfd, 0x3d, 0xc7, 0xf4, 0xf3,
+    0xc4, 0xbe, 0xcf, 0x3, 0xfb, 0x3c, 0xf0, 0x7f,
+    0x3b, 0xc2, 0xfc, 0xef, 0x3c, 0x39, 0xcb, 0xf1,
+    0xe7, 0x2f, 0xcf, 0x3c, 0x70, 0x7d, 0xf1, 0xc0,
+    0xf3, 0xec, 0x1c, 0xf, 0xf0, 0x70, 0x3c, 0xf0,
+    0xb, 0x3, 0xc0, 0x2c, 0xf, 0x3c, 0x17, 0xc0,
+    0xf0, 0x6f, 0x3, 0xcf, 0x1f, 0xd0, 0x3c, 0xbf,
+    0x0, 0xf3, 0xc1, 0x0, 0xf, 0x0, 0x0, 0x3c,
+    0xf0, 0x0, 0x3, 0xc0, 0x0, 0xf, 0x3f, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xcf, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x3c,
 
     /* U+8C78 "豸" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -137119,114 +145903,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xf, 0xe0, 0x0, 0x2, 0xfd, 0x0, 0x0, 0x5,
     0x0, 0x0, 0x0, 0x8,
 
-    /* U+8CB4 "貴" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x3, 0xc0, 0x0, 0x0, 0x0, 0x3f, 0xff, 0xff,
-    0xff, 0xff, 0x80, 0x0, 0xfa, 0xaa, 0xfe, 0xaa,
-    0xbe, 0x0, 0x3, 0xc0, 0x0, 0xf0, 0x0, 0x78,
-    0x0, 0xf, 0xaa, 0xab, 0xea, 0xaa, 0xe0, 0x0,
-    0x3f, 0xff, 0xff, 0xff, 0xff, 0x80, 0x0, 0x0,
-    0x0, 0x7c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1,
-    0xf0, 0x0, 0x0, 0x7, 0xff, 0xff, 0xff, 0xff,
-    0xff, 0xff, 0xca, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
-    0xaa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x2, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x0, 0xb,
-    0xea, 0xaa, 0xaa, 0xab, 0xc0, 0x0, 0x2e, 0x0,
-    0x0, 0x0, 0xf, 0x0, 0x0, 0xbf, 0xff, 0xff,
-    0xff, 0xfc, 0x0, 0x2, 0xe5, 0x55, 0x55, 0x55,
-    0xf0, 0x0, 0xb, 0x80, 0x0, 0x0, 0x3, 0xc0,
-    0x0, 0x2f, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0,
-    0xb8, 0x0, 0x0, 0x0, 0x3c, 0x0, 0x2, 0xfa,
-    0xaa, 0xaa, 0xaa, 0xf0, 0x0, 0xb, 0xff, 0xff,
-    0xff, 0xff, 0xc0, 0x0, 0x0, 0x2, 0x40, 0x19,
-    0x0, 0x0, 0x0, 0x6, 0xfe, 0x0, 0xbf, 0xe4,
-    0x0, 0x1b, 0xff, 0xe4, 0x1, 0xaf, 0xff, 0x93,
-    0xff, 0xe4, 0x0, 0x0, 0x1, 0xff, 0x8f, 0x90,
-    0x0, 0x0, 0x0, 0x0, 0x19,
-
-    /* U+8CC0 "賀" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0xb4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0xd0,
-    0x0, 0x5, 0x55, 0x54, 0xb, 0xff, 0xff, 0xf4,
-    0x3f, 0xff, 0xf0, 0x2f, 0xff, 0xff, 0xd0, 0xf5,
-    0x57, 0xc0, 0x0, 0xf0, 0xb, 0x3, 0xc0, 0xf,
-    0x0, 0x7, 0xc0, 0x3c, 0xf, 0x0, 0x3c, 0x0,
-    0x3d, 0x0, 0xf0, 0x3c, 0x0, 0xf0, 0x2, 0xf0,
-    0x5b, 0xc0, 0xff, 0xff, 0xc0, 0x2f, 0x47, 0xfe,
-    0x3, 0xff, 0xff, 0x3, 0xf4, 0xa, 0x40, 0x0,
-    0x0, 0x0, 0xb, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x7f, 0xff, 0xff, 0xff, 0xfc, 0x0,
-    0x1, 0xfa, 0xaa, 0xaa, 0xaa, 0xf0, 0x0, 0x7,
-    0xc0, 0x0, 0x0, 0x3, 0xc0, 0x0, 0x1f, 0xff,
-    0xff, 0xff, 0xff, 0x0, 0x0, 0x7e, 0xaa, 0xaa,
-    0xaa, 0xbc, 0x0, 0x1, 0xf0, 0x0, 0x0, 0x0,
-    0xf0, 0x0, 0x7, 0xff, 0xff, 0xff, 0xff, 0xc0,
-    0x0, 0x1f, 0xaa, 0xaa, 0xaa, 0xaf, 0x0, 0x0,
-    0x7c, 0x0, 0x0, 0x0, 0x3c, 0x0, 0x1, 0xff,
-    0xff, 0xff, 0xff, 0xf0, 0x0, 0x6, 0xaa, 0xaa,
-    0xaa, 0xaa, 0x80, 0x0, 0x0, 0x5, 0x0, 0x5,
-    0x0, 0x0, 0x0, 0x2, 0xfc, 0x0, 0x7f, 0x90,
-    0x0, 0x6, 0xff, 0x80, 0x0, 0x6f, 0xfe, 0x43,
-    0xff, 0x90, 0x0, 0x0, 0x1, 0xff, 0xcf, 0x90,
-    0x0, 0x0, 0x0, 0x0, 0x1e, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0,
-
-    /* U+8D0F "贏" */
-    0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0xb8, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x3c, 0x0, 0x0, 0x0, 0x3f, 0xff, 0xff,
-    0xff, 0xff, 0xff, 0xfc, 0x2b, 0xfa, 0xaa, 0xaa,
-    0xaa, 0xaa, 0xa8, 0x1, 0xf0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x1, 0xfa, 0xaa, 0xaa, 0xaa, 0xaa,
-    0x40, 0x1, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0xf9,
-    0x55, 0x55, 0x55, 0x6e, 0x0, 0x0, 0xf4, 0x0,
-    0x0, 0x0, 0x1e, 0x0, 0x0, 0xff, 0xff, 0xff,
-    0xff, 0xfe, 0x0, 0x0, 0x55, 0x55, 0x55, 0x55,
-    0x54, 0x0, 0x1, 0x55, 0x45, 0x55, 0x45, 0x55,
-    0x0, 0x7, 0xff, 0xcf, 0xab, 0xcf, 0xff, 0x0,
-    0x7, 0x42, 0xce, 0x2, 0xcf, 0xb, 0x0, 0x7,
-    0x42, 0xcf, 0xff, 0xcf, 0x7, 0x0, 0x7, 0xff,
-    0xce, 0x57, 0xcf, 0x47, 0x0, 0x7, 0xab, 0xce,
-    0x2, 0xcf, 0xe7, 0x0, 0x7, 0x42, 0xcf, 0xff,
-    0xcf, 0xbb, 0x0, 0x7, 0x97, 0xce, 0x57, 0xcf,
-    0x3f, 0x4, 0xb, 0xff, 0xce, 0x57, 0xcf, 0x2b,
-    0xd, 0xf, 0x2, 0xcf, 0xff, 0xce, 0x7, 0xd,
-    0xf, 0x2, 0xc2, 0x8e, 0x1e, 0x7, 0x1c, 0x2d,
-    0x2f, 0xcb, 0x3, 0xfc, 0x7, 0xfc, 0x78, 0x3f,
-    0x7c, 0x0, 0xb8, 0x3, 0xf8, 0x10, 0x0, 0x0,
-    0x0, 0x10, 0x0, 0x0,
-
-    /* U+8D1B "贛" */
-    0x0, 0x10, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0,
-    0x7c, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0x3c,
-    0x0, 0x3, 0xff, 0xff, 0x80, 0x2a, 0xbf, 0xa9,
-    0xf, 0xff, 0xff, 0xc0, 0x3f, 0xff, 0xfd, 0x3f,
-    0x80, 0x1f, 0x40, 0x7, 0x40, 0xf0, 0xf6, 0xf4,
-    0xbd, 0x0, 0x7, 0x80, 0xf0, 0x40, 0x7f, 0xf0,
-    0x0, 0x3, 0x81, 0xe0, 0x0, 0xbf, 0xf8, 0x0,
-    0x3, 0xc2, 0xd0, 0x6f, 0xf4, 0xbf, 0xf8, 0xbf,
-    0xff, 0xfe, 0xfe, 0x40, 0x2, 0xfc, 0x6a, 0xaa,
-    0xa9, 0xf, 0xff, 0xff, 0x40, 0x0, 0x0, 0x0,
-    0x5, 0x5f, 0x55, 0x0, 0x1f, 0xff, 0xfc, 0x6a,
-    0xaf, 0xaa, 0xa0, 0x1f, 0xaa, 0xbc, 0xff, 0xff,
-    0xff, 0xf0, 0x1d, 0x0, 0x3c, 0x0, 0x0, 0x0,
-    0x0, 0x1f, 0xaa, 0xbc, 0x3f, 0xff, 0xff, 0xc0,
-    0x1f, 0xff, 0xfc, 0x3d, 0x55, 0x57, 0xc0, 0x1e,
-    0x0, 0x3c, 0x3d, 0x55, 0x57, 0xc0, 0x1d, 0x0,
-    0x3c, 0x3f, 0xff, 0xff, 0xc0, 0x1f, 0xff, 0xfc,
-    0x3c, 0x0, 0x3, 0xc0, 0x5, 0x7e, 0x54, 0x3f,
-    0xff, 0xff, 0xc0, 0x0, 0x2d, 0x0, 0x3c, 0x0,
-    0x3, 0xc0, 0xaa, 0xbf, 0xaa, 0x3f, 0xff, 0xff,
-    0xc0, 0xff, 0xff, 0xff, 0x15, 0x95, 0x65, 0x40,
-    0x0, 0x2d, 0x0, 0x2, 0xd0, 0x3d, 0x0, 0x0,
-    0x2d, 0x0, 0x7f, 0xd0, 0x2f, 0xe0, 0x0, 0x2d,
-    0xb, 0xfd, 0x0, 0x1, 0xfd, 0x0, 0x2d, 0x3,
-    0x90, 0x0, 0x0, 0x1c, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0,
-
     /* U+8D1D "贝" */
     0x0, 0x55, 0x55, 0x55, 0x55, 0x40, 0x0, 0x7f,
     0xff, 0xff, 0xff, 0xf8, 0x0, 0x1f, 0xff, 0xff,
@@ -137543,6 +146219,35 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0xb, 0xf, 0x0, 0x0, 0x1c, 0x0, 0x0,
     0x0, 0x4, 0x0, 0x0, 0x0,
 
+    /* U+8D2A "贪" */
+    0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x1f, 0xf0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x1f, 0xff, 0x40, 0x0, 0x0, 0x0, 0x0,
+    0x3f, 0x83, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x7f,
+    0x40, 0x2f, 0xd0, 0x0, 0x0, 0x1, 0xff, 0xb,
+    0x1, 0xff, 0x40, 0x0, 0x7, 0xfd, 0x2, 0xf0,
+    0xb, 0xf9, 0x0, 0x6f, 0xf8, 0x0, 0x3d, 0x0,
+    0x2f, 0xf8, 0x2f, 0xe0, 0x0, 0x7, 0x0, 0x0,
+    0xbf, 0x83, 0x40, 0xff, 0xff, 0xff, 0xfd, 0x1,
+    0xc0, 0x0, 0x3f, 0xff, 0xff, 0xff, 0x40, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0xb, 0xc0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x7, 0xd0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x7, 0xd0, 0x0, 0x0, 0x0, 0xff,
+    0xff, 0xff, 0xff, 0xf0, 0x0, 0x0, 0x7f, 0xff,
+    0xff, 0xff, 0xfc, 0x0, 0x0, 0x1f, 0x0, 0x0,
+    0x0, 0x1f, 0x0, 0x0, 0x7, 0xc0, 0x1, 0x0,
+    0x7, 0xc0, 0x0, 0x1, 0xf0, 0x1, 0xf0, 0x1,
+    0xf0, 0x0, 0x0, 0x7c, 0x0, 0x7c, 0x0, 0x7c,
+    0x0, 0x0, 0x1f, 0x0, 0x3e, 0x0, 0x1f, 0x0,
+    0x0, 0x7, 0xc0, 0x1f, 0x50, 0x7, 0xc0, 0x0,
+    0x0, 0x50, 0x2f, 0xaf, 0xd0, 0x50, 0x0, 0x0,
+    0x0, 0xbf, 0x86, 0xff, 0x80, 0x0, 0x0, 0x7,
+    0xff, 0x40, 0x7, 0xff, 0x40, 0x1, 0xbf, 0xfd,
+    0x0, 0x0, 0x1b, 0xfd, 0x0, 0xbf, 0xe0, 0x0,
+    0x0, 0x0, 0x2f, 0xd0, 0x9, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xb0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+8D2B "贫" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x1c, 0x1, 0xf0, 0x0, 0x0, 0x0, 0x0,
@@ -137806,6 +146511,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x43, 0xc0, 0x0, 0xf0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+8D35 "贵" */
+    0x0, 0x0, 0x0, 0x14, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x1, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x7, 0xc0, 0x0, 0x0, 0x0, 0x1f, 0xff, 0xff,
+    0xff, 0xff, 0x0, 0x0, 0xbf, 0xff, 0xff, 0xff,
+    0xfd, 0x0, 0x2, 0xd0, 0x1, 0xf0, 0x0, 0xf4,
+    0x0, 0xb, 0x40, 0x7, 0xc0, 0x3, 0xd0, 0x0,
+    0x2f, 0xaa, 0xaf, 0xaa, 0xaf, 0x40, 0x0, 0xbf,
+    0xff, 0xff, 0xff, 0xfd, 0x0, 0x0, 0x0, 0x1,
+    0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0xc0,
+    0x0, 0x0, 0xf, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xff,
+    0xff, 0xff, 0xff, 0x0, 0x0, 0x7f, 0xff, 0xff,
+    0xff, 0xfc, 0x0, 0x1, 0xf0, 0x0, 0x0, 0x1,
+    0xf0, 0x0, 0x7, 0xc0, 0x7, 0xc0, 0x7, 0xc0,
+    0x0, 0x1f, 0x0, 0x1f, 0x0, 0x1f, 0x0, 0x0,
+    0x7c, 0x0, 0xbc, 0x0, 0x7c, 0x0, 0x1, 0xf0,
+    0x3, 0xd0, 0x1, 0xf0, 0x0, 0x3, 0xc0, 0x3f,
+    0x7e, 0x2, 0x80, 0x0, 0x0, 0xb, 0xf1, 0xff,
+    0xd0, 0x0, 0x0, 0x1b, 0xfe, 0x0, 0x2f, 0xfd,
+    0x0, 0x6f, 0xff, 0x80, 0x0, 0x7, 0xff, 0x81,
+    0xff, 0xd0, 0x0, 0x0, 0x0, 0xbf, 0x3, 0x90,
+    0x0, 0x0, 0x0, 0x0, 0x18,
+
     /* U+8D36 "贶" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0xff, 0xff, 0xc3, 0xff, 0xff, 0xfc, 0x0, 0x3f,
@@ -137911,6 +146642,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0x0, 0xbc, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x10,
 
+    /* U+8D3A "贺" */
+    0x0, 0x1e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x78, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0xe0,
+    0x0, 0xf, 0xff, 0xfc, 0xb, 0xff, 0xff, 0xf4,
+    0x3f, 0xff, 0xf0, 0x2f, 0xff, 0xff, 0xd0, 0xf0,
+    0x3, 0xc0, 0x0, 0xf4, 0xb, 0x43, 0xc0, 0xf,
+    0x0, 0x3, 0xc0, 0x2d, 0xf, 0x0, 0x3c, 0x0,
+    0x2e, 0x0, 0xb4, 0x3c, 0x0, 0xf0, 0x0, 0xf0,
+    0x3, 0xc0, 0xf5, 0x57, 0xc0, 0xf, 0x83, 0xff,
+    0x3, 0xff, 0xff, 0x1, 0xf8, 0xf, 0xf4, 0xa,
+    0xaa, 0xa8, 0xf, 0x80, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x1, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x0, 0x7,
+    0xff, 0xff, 0xff, 0xff, 0xc0, 0x0, 0x1f, 0x0,
+    0x0, 0x0, 0x1f, 0x0, 0x0, 0x7c, 0x0, 0x28,
+    0x0, 0x3c, 0x0, 0x1, 0xf0, 0x0, 0xf0, 0x0,
+    0xf0, 0x0, 0x7, 0xc0, 0x7, 0xc0, 0x3, 0xc0,
+    0x0, 0x1f, 0x0, 0x2f, 0x0, 0xf, 0x0, 0x0,
+    0x7c, 0x0, 0xf9, 0x0, 0x3c, 0x0, 0x1, 0xf0,
+    0xf, 0xef, 0x80, 0xf0, 0x0, 0x0, 0x1, 0xfc,
+    0x7f, 0xf4, 0x0, 0x0, 0x0, 0x7f, 0xc0, 0xb,
+    0xfe, 0x0, 0x0, 0x7f, 0xf8, 0x0, 0x1, 0xff,
+    0x80, 0x7f, 0xfd, 0x0, 0x0, 0x0, 0x7f, 0xc0,
+    0xfe, 0x0, 0x0, 0x0, 0x0, 0x2e, 0x1, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+8D3B "贻" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x7, 0x80, 0x0, 0x0, 0x0,
@@ -137968,6 +146725,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x3, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+8D3D "贽" */
+    0x0, 0xa, 0x0, 0x2, 0x80, 0x0, 0x0, 0x0,
+    0xf, 0x0, 0x3, 0xd0, 0x0, 0x0, 0x0, 0xf,
+    0x0, 0x3, 0xd0, 0x0, 0x0, 0x3f, 0xff, 0xfd,
+    0xff, 0xff, 0xfc, 0x0, 0x3f, 0xff, 0xfd, 0xff,
+    0xff, 0xfc, 0x0, 0x0, 0xf, 0x0, 0x3, 0xc0,
+    0x3c, 0x0, 0x0, 0xf, 0x0, 0x3, 0xc0, 0x3c,
+    0x0, 0x0, 0x6f, 0xfd, 0xe7, 0xc0, 0x3c, 0x0,
+    0x7f, 0xff, 0xe5, 0xff, 0xc0, 0x3c, 0x0, 0xbf,
+    0x9f, 0x0, 0x1f, 0xf8, 0x2c, 0xc, 0x0, 0xf,
+    0x0, 0x3f, 0xbf, 0x6d, 0x1d, 0x0, 0x1f, 0x0,
+    0xfc, 0xb, 0x1e, 0x3c, 0x6, 0xbf, 0x7, 0xf0,
+    0x0, 0xf, 0xf8, 0x7, 0xfd, 0xf, 0x80, 0x0,
+    0x3, 0xf0, 0x1, 0x40, 0x1, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xbf, 0xff, 0xff, 0xff, 0xfc, 0x0,
+    0x0, 0xbf, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x0,
+    0xb8, 0x0, 0x0, 0x0, 0x7c, 0x0, 0x0, 0xb8,
+    0x0, 0xbc, 0x0, 0x7c, 0x0, 0x0, 0xb8, 0x0,
+    0xb8, 0x0, 0x7c, 0x0, 0x0, 0xb8, 0x0, 0xf8,
+    0x0, 0x7c, 0x0, 0x0, 0xb8, 0x2, 0xf5, 0x0,
+    0x7c, 0x0, 0x0, 0x54, 0xb, 0xef, 0xe4, 0x14,
+    0x0, 0x0, 0x1, 0xbf, 0x87, 0xff, 0x90, 0x0,
+    0x0, 0x6f, 0xfd, 0x0, 0x2f, 0xfe, 0x0, 0x2f,
+    0xff, 0x90, 0x0, 0x0, 0xbf, 0xe0, 0x1f, 0xe4,
+    0x0, 0x0, 0x0, 0x7, 0xe0, 0x4, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+8D3E "贾" */
     0x2a, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xa3, 0xff,
     0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x3d,
@@ -138020,6 +146804,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x3c, 0x2, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+8D40 "赀" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x3, 0xc0, 0xf, 0x40, 0x0, 0x0, 0x0, 0xf,
+    0x40, 0x3d, 0x0, 0x4, 0x0, 0xf0, 0x3d, 0x0,
+    0xf4, 0x1, 0xf0, 0x3, 0xc0, 0xff, 0xf7, 0xd0,
+    0xbf, 0x40, 0xf, 0x3, 0xff, 0xdf, 0xbf, 0xe0,
+    0x0, 0x3c, 0xf, 0x40, 0x3f, 0xf4, 0x0, 0x0,
+    0xf0, 0x3d, 0x0, 0xf9, 0x0, 0x24, 0x3, 0xc0,
+    0xf4, 0x3, 0xd0, 0x0, 0xf0, 0xf, 0x3, 0xd6,
+    0x8f, 0x40, 0x3, 0xc0, 0x3e, 0xaf, 0xff, 0x7f,
+    0x40, 0x6e, 0x1f, 0xff, 0xff, 0xe8, 0x7f, 0xff,
+    0xf0, 0x7f, 0xfa, 0x40, 0x0, 0x1a, 0xa9, 0x0,
+    0x50, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2f, 0xff,
+    0xff, 0xff, 0xff, 0x0, 0x0, 0xbf, 0xff, 0xff,
+    0xff, 0xfc, 0x0, 0x2, 0xe0, 0x0, 0x0, 0x1,
+    0xf0, 0x0, 0xb, 0x80, 0x7, 0x80, 0x7, 0xc0,
+    0x0, 0x2e, 0x0, 0x1e, 0x0, 0x1f, 0x0, 0x0,
+    0xb8, 0x0, 0xb4, 0x0, 0x7c, 0x0, 0x2, 0xe0,
+    0x3, 0xc0, 0x1, 0xf0, 0x0, 0xb, 0x80, 0x3e,
+    0xb4, 0x7, 0xc0, 0x0, 0x0, 0x7, 0xf3, 0xff,
+    0x40, 0x0, 0x0, 0x2, 0xff, 0x1, 0xff, 0xe0,
+    0x0, 0x6, 0xff, 0xe0, 0x0, 0x2f, 0xfd, 0x1,
+    0xff, 0xf4, 0x0, 0x0, 0x7, 0xff, 0x3, 0xf4,
+    0x0, 0x0, 0x0, 0x0, 0xb8, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+8D41 "赁" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x7, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf,
@@ -138404,6 +147215,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x90, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+8D4F "赏" */
+    0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0,
+    0xa0, 0x1, 0xf0, 0x0, 0xd0, 0x0, 0x3, 0xf0,
+    0x7, 0xc0, 0xf, 0xc0, 0x0, 0x3, 0xf0, 0x1f,
+    0x1, 0xfc, 0x0, 0x0, 0x3, 0xc0, 0x7c, 0x7,
+    0xc0, 0x0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0x40, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x3,
+    0xd0, 0x0, 0x0, 0x0, 0x0, 0xf4, 0xf, 0x40,
+    0x0, 0x0, 0x0, 0x3, 0xd0, 0x3d, 0x3f, 0xff,
+    0xff, 0xff, 0xcf, 0x40, 0xa0, 0xfa, 0xaa, 0xaa,
+    0xaf, 0x28, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x7c,
+    0x0, 0x0, 0xf, 0x0, 0x0, 0x1, 0xf0, 0x0,
+    0x0, 0x3f, 0xff, 0xff, 0xff, 0xc0, 0x0, 0x0,
+    0xaa, 0xaa, 0xaa, 0xa9, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x7f, 0xff, 0xff,
+    0xff, 0xfc, 0x0, 0x1, 0xff, 0xff, 0xff, 0xff,
+    0xf0, 0x0, 0x7, 0x80, 0x0, 0x0, 0x3, 0xc0,
+    0x0, 0x1e, 0x0, 0x1e, 0x0, 0xf, 0x0, 0x0,
+    0x78, 0x0, 0xf8, 0x0, 0x3c, 0x0, 0x1, 0xe0,
+    0x3, 0xd0, 0x0, 0xf0, 0x0, 0x7, 0x80, 0x3f,
+    0x64, 0x3, 0xc0, 0x0, 0x0, 0xb, 0xf3, 0xfe,
+    0x40, 0x0, 0x0, 0x6, 0xff, 0x1, 0xbf, 0xe4,
+    0x0, 0x1b, 0xff, 0xd0, 0x0, 0x1b, 0xfe, 0x43,
+    0xff, 0xd0, 0x0, 0x0, 0x1, 0xff, 0x7, 0x90,
+    0x0, 0x0, 0x0, 0x0, 0x2c, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+8D50 "赐" */
     0x0, 0x0, 0x0, 0x5, 0x55, 0x55, 0x40, 0x3f,
     0xff, 0xe0, 0xff, 0xff, 0xff, 0x0, 0xff, 0xff,
@@ -138429,30 +147267,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xc1, 0xd0, 0x0, 0x0, 0x7d, 0x3, 0xf8, 0x0,
     0x0, 0x0, 0x0, 0x90, 0x0, 0x0, 0x0,
 
-    /* U+8D51 "赑" */
-    0x0, 0xbf, 0xff, 0xff, 0xff, 0xfd, 0x0, 0x0,
-    0xbf, 0xff, 0xff, 0xff, 0xfd, 0x0, 0x0, 0xb4,
-    0x0, 0x0, 0x0, 0x3d, 0x0, 0x0, 0xb4, 0x0,
-    0x3c, 0x0, 0x3d, 0x0, 0x0, 0xb4, 0x0, 0x7c,
-    0x0, 0x3d, 0x0, 0x0, 0xb4, 0x0, 0xb8, 0x0,
-    0x3d, 0x0, 0x0, 0xb0, 0x1, 0xf7, 0x90, 0x29,
-    0x0, 0x0, 0x0, 0x1f, 0xd3, 0xfe, 0x40, 0x0,
-    0x0, 0x1b, 0xff, 0x40, 0x2f, 0xfe, 0x0, 0xf,
-    0xff, 0xe4, 0x0, 0x0, 0xbf, 0xf0, 0xf, 0xe5,
-    0x0, 0x0, 0x0, 0x2, 0xf0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0xf, 0xff, 0xff, 0xc3,
-    0xff, 0xff, 0xf0, 0xf, 0xff, 0xff, 0xc3, 0xff,
-    0xff, 0xf0, 0xf, 0x0, 0x3, 0xc3, 0xc0, 0x0,
-    0xf0, 0xf, 0x5, 0x3, 0xc3, 0xc1, 0x40, 0xf0,
-    0xf, 0xb, 0x3, 0xc3, 0xc2, 0xc0, 0xf0, 0xf,
-    0xb, 0x3, 0xc3, 0xc2, 0xc0, 0xf0, 0xf, 0xf,
-    0x3, 0xc3, 0xc3, 0xc0, 0xf0, 0xf, 0xf, 0x3,
-    0xc3, 0xc3, 0xc0, 0xf0, 0xf, 0xf, 0x3, 0xc3,
-    0xc3, 0xc0, 0xf0, 0x0, 0x2e, 0xf0, 0x0, 0xb,
-    0x7d, 0x0, 0x0, 0xfc, 0xbe, 0x0, 0x2f, 0x1f,
-    0xc0, 0xb, 0xf0, 0x1f, 0xc2, 0xfc, 0x2, 0xf8,
-    0xbf, 0x40, 0x2, 0xdf, 0xe0, 0x0, 0x7e, 0x74,
-    0x0, 0x0, 0xd, 0x0, 0x0, 0x8,
+    /* U+8D53 "赓" */
+    0x0, 0x0, 0x0, 0x6, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x2, 0xe0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x7c, 0x0, 0x0, 0x0, 0x2, 0xaa,
+    0xaa, 0xbf, 0xaa, 0xaa, 0xa4, 0x0, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xfd, 0x0, 0x3d, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0xf, 0x0, 0x0, 0x7c,
+    0x0, 0x0, 0x0, 0x3, 0xc2, 0xaa, 0xaf, 0xaa,
+    0xaa, 0x0, 0x0, 0xf1, 0xff, 0xff, 0xff, 0xff,
+    0xd0, 0x0, 0x3c, 0x0, 0x1, 0xf0, 0x0, 0xb4,
+    0x0, 0xf, 0xaa, 0xaa, 0xfe, 0xaa, 0xbf, 0xa0,
+    0x3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0,
+    0xf0, 0x0, 0xf, 0x0, 0x2, 0xd0, 0x0, 0x3c,
+    0x6a, 0xab, 0xea, 0xaa, 0xf4, 0x0, 0xf, 0x1f,
+    0xff, 0xff, 0xff, 0xfd, 0x0, 0x3, 0xc0, 0x3,
+    0xe0, 0xf, 0xc0, 0x0, 0x0, 0xf0, 0x7, 0xe0,
+    0x0, 0xfd, 0x0, 0x0, 0x3c, 0xb, 0xfa, 0xaa,
+    0xbf, 0xe0, 0x0, 0x1f, 0x2f, 0xff, 0xff, 0xff,
+    0xff, 0x90, 0x7, 0xff, 0xbc, 0x0, 0x0, 0x3d,
+    0xfd, 0x2, 0xe6, 0xf, 0x1, 0xf0, 0xf, 0x6,
+    0x0, 0xf4, 0x3, 0xc0, 0xbc, 0x3, 0xc0, 0x0,
+    0x3c, 0x0, 0xf0, 0x3e, 0x0, 0xf0, 0x0, 0x1f,
+    0x0, 0x14, 0x3f, 0x79, 0x10, 0x0, 0xf, 0x80,
+    0x1, 0xbf, 0x5f, 0xf8, 0x0, 0x3, 0xc0, 0x1b,
+    0xff, 0x0, 0x6f, 0xf4, 0x2, 0xe0, 0xff, 0xf8,
+    0x0, 0x0, 0x7f, 0xc0, 0xb0, 0x2f, 0x90, 0x0,
+    0x0, 0x1, 0xa0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
 
     /* U+8D54 "赔" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0,
@@ -138483,6 +147325,35 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x2, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+8D55 "赕" */
+    0x0, 0x0, 0x0, 0x0, 0x1, 0x40, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x2a,
+    0xaa, 0x90, 0x40, 0x3c, 0x0, 0x0, 0xf, 0xff,
+    0xf8, 0xb4, 0xf, 0x0, 0xf0, 0x3, 0xc0, 0x1e,
+    0xf, 0x3, 0xc0, 0xb8, 0x0, 0xe0, 0x3, 0x81,
+    0xf0, 0xf0, 0x7c, 0x0, 0x38, 0xb0, 0xe0, 0x2e,
+    0x3c, 0x7c, 0x0, 0xe, 0x3c, 0x38, 0x3, 0x1f,
+    0x1d, 0x0, 0x3, 0x8f, 0xe, 0x0, 0xf, 0xe0,
+    0x0, 0x0, 0xe3, 0xc3, 0x80, 0xb, 0xff, 0x40,
+    0x0, 0x38, 0xf0, 0xe0, 0xb, 0xd2, 0xfc, 0x0,
+    0xe, 0x3c, 0x38, 0x1f, 0xd0, 0x1f, 0xd0, 0x3,
+    0x8f, 0xe, 0x7f, 0xc2, 0x80, 0xbe, 0x0, 0xe3,
+    0xc3, 0x9f, 0x40, 0xf0, 0x7, 0x80, 0x38, 0xf0,
+    0xe1, 0x40, 0x3c, 0x1, 0x40, 0xe, 0x3c, 0x38,
+    0x74, 0xf, 0x0, 0xf0, 0x3, 0x8f, 0xe, 0xf,
+    0x3, 0xc0, 0xb8, 0x0, 0xe3, 0xc3, 0x81, 0xf0,
+    0xf0, 0x7c, 0x0, 0x38, 0xf0, 0xe0, 0x2e, 0x3d,
+    0x3d, 0x0, 0xe, 0x78, 0x24, 0x3, 0x6f, 0x8e,
+    0x0, 0x0, 0x2d, 0x40, 0x0, 0xf, 0xf4, 0x0,
+    0x0, 0xf, 0xb8, 0x0, 0xb, 0xdf, 0x0, 0x0,
+    0xb, 0x8f, 0x80, 0x7, 0xc3, 0xe0, 0x0, 0x7,
+    0xc0, 0xf8, 0x7, 0xd0, 0x3f, 0x0, 0x7, 0xd0,
+    0xf, 0xb, 0xe0, 0x3, 0xf0, 0x7, 0xe0, 0x0,
+    0x5f, 0xe0, 0x0, 0x3f, 0x83, 0xe0, 0x0, 0xf,
+    0xd0, 0x0, 0x2, 0xf4, 0x20, 0x0, 0x2, 0x80,
+    0x0, 0x0, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+8D56 "赖" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0xf0, 0x0, 0x3, 0xd0, 0x0, 0x0, 0x0,
@@ -138512,6 +147383,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x14, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+8D58 "赘" */
+    0x0, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0,
+    0x3, 0xc0, 0x0, 0x1e, 0x0, 0x0, 0x5, 0x57,
+    0xe5, 0x54, 0x3c, 0x0, 0x0, 0x1f, 0xff, 0xff,
+    0xf8, 0x7c, 0x0, 0x0, 0x0, 0x3, 0xc0, 0x0,
+    0xff, 0xff, 0xfc, 0x5, 0x57, 0xe5, 0x52, 0xff,
+    0xff, 0xf8, 0xb, 0xff, 0xff, 0xf7, 0xe0, 0xb,
+    0x40, 0x0, 0x3, 0xc0, 0xf, 0xf0, 0xf, 0x0,
+    0x2a, 0xab, 0xea, 0xad, 0x78, 0x2d, 0x0, 0x3f,
+    0xff, 0xff, 0xfc, 0x3d, 0x7c, 0x0, 0x0, 0x74,
+    0x0, 0x0, 0xf, 0xf0, 0x0, 0x0, 0xff, 0xff,
+    0xc0, 0xb, 0xf0, 0x0, 0x0, 0xfa, 0xab, 0xc0,
+    0x2f, 0xfc, 0x0, 0x3, 0xd0, 0x3, 0xc2, 0xfd,
+    0x3f, 0x80, 0xf, 0x81, 0xaf, 0xaf, 0xe0, 0xb,
+    0xfc, 0x3f, 0x2, 0xfe, 0xe, 0x0, 0x0, 0xbc,
+    0x7c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0x10,
+    0x7f, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x0, 0x7f,
+    0xff, 0xff, 0xff, 0xfc, 0x0, 0x0, 0x7c, 0x0,
+    0x10, 0x0, 0x3c, 0x0, 0x0, 0x7c, 0x0, 0x7c,
+    0x0, 0x3c, 0x0, 0x0, 0x7c, 0x0, 0xbc, 0x0,
+    0x3c, 0x0, 0x0, 0x7c, 0x0, 0xf4, 0x0, 0x3c,
+    0x0, 0x0, 0x78, 0x7, 0xfb, 0xe0, 0x3c, 0x0,
+    0x0, 0x0, 0x7f, 0xc6, 0xff, 0x40, 0x0, 0x0,
+    0x6f, 0xfd, 0x0, 0x1b, 0xfd, 0x0, 0x1f, 0xff,
+    0x90, 0x0, 0x0, 0xbf, 0xd0, 0xf, 0xe4, 0x0,
+    0x0, 0x0, 0x6, 0xd0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+8D59 "赙" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0xf, 0x1d, 0x0, 0x0, 0x0,
@@ -138568,6 +147467,35 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x1d, 0xe, 0x0, 0x60, 0x80, 0x0, 0x0, 0x7,
     0x43, 0x80, 0x0,
 
+    /* U+8D5B "赛" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xb, 0x40, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x1, 0xf0, 0x0, 0x0, 0x0, 0xa, 0xaa,
+    0xaa, 0xbe, 0xaa, 0xaa, 0x90, 0x3, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xf4, 0x0, 0xf0, 0x0, 0x0,
+    0x0, 0x0, 0x2d, 0x0, 0x3c, 0x0, 0xa0, 0x1,
+    0x90, 0xb, 0x40, 0xf, 0x6a, 0xbe, 0xaa, 0xfe,
+    0xa6, 0xd0, 0x0, 0x2f, 0xff, 0xff, 0xff, 0xff,
+    0x0, 0x0, 0x0, 0x7, 0xc0, 0xb, 0x80, 0x0,
+    0x0, 0x0, 0x1, 0xf0, 0x2, 0xe0, 0x0, 0x0,
+    0x0, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x0, 0x0,
+    0x2a, 0xaf, 0xaa, 0xbf, 0xaa, 0x0, 0x0, 0x0,
+    0x7, 0xc0, 0xb, 0x80, 0x0, 0x0, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xc0, 0x2a, 0xaa, 0xfe,
+    0xaa, 0xbe, 0xaa, 0xa0, 0x0, 0x0, 0xf8, 0x0,
+    0x7, 0xc0, 0x0, 0x0, 0x2, 0xfe, 0xaa, 0xaa,
+    0xfe, 0x0, 0x0, 0x7, 0xff, 0xff, 0xff, 0xff,
+    0xf9, 0x0, 0x2f, 0xef, 0x0, 0x0, 0x2, 0xef,
+    0xf8, 0x3f, 0x83, 0xc0, 0x1e, 0x0, 0xb4, 0x7f,
+    0x6, 0x0, 0xf0, 0xf, 0x80, 0x2d, 0x1, 0x40,
+    0x0, 0x3c, 0x7, 0xc0, 0xb, 0x40, 0x0, 0x0,
+    0x9, 0x7, 0xeb, 0x91, 0x80, 0x0, 0x0, 0x0,
+    0x1f, 0xe2, 0xff, 0x90, 0x0, 0x0, 0x6, 0xff,
+    0xd0, 0x2, 0xff, 0x90, 0x0, 0x3f, 0xfe, 0x40,
+    0x0, 0x6, 0xfe, 0x0, 0xb, 0x90, 0x0, 0x0,
+    0x0, 0xb, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+8D5C "赜" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0xb4, 0x0, 0x1, 0x55, 0x55,
@@ -138594,6 +147522,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x3f, 0x80, 0x0, 0x2f, 0x0, 0x0,
     0x0, 0x60, 0x0, 0x0, 0x14,
 
+    /* U+8D5D "赝" */
+    0x1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x1,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x1, 0xf0,
+    0x14, 0x4, 0x1, 0x40, 0x0, 0x1, 0xf0, 0x2d,
+    0xe, 0x3, 0xc0, 0x0, 0x1, 0xf0, 0x38, 0x2e,
+    0x56, 0xd5, 0x50, 0x1, 0xf0, 0xb0, 0x3f, 0xff,
+    0xff, 0xf4, 0x1, 0xf1, 0xf0, 0xfc, 0x3, 0xc0,
+    0x0, 0x1, 0xf3, 0xf2, 0xfd, 0x57, 0xd5, 0x50,
+    0x1, 0xff, 0xf7, 0xff, 0xff, 0xff, 0xe0, 0x1,
+    0xfd, 0xbb, 0x3c, 0x3, 0xc0, 0x0, 0x1, 0xf0,
+    0xb0, 0x3f, 0xff, 0xff, 0xe0, 0x1, 0xf0, 0xb0,
+    0x3d, 0x57, 0xd5, 0x40, 0x1, 0xe0, 0xb0, 0x3d,
+    0x57, 0xd5, 0x50, 0x1, 0xe0, 0xb0, 0x3f, 0xff,
+    0xff, 0xfc, 0x1, 0xe0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x2, 0xe0, 0x3f, 0xff, 0xff, 0xff, 0x80,
+    0x2, 0xe0, 0x3e, 0xaa, 0xaa, 0xab, 0xc0, 0x3,
+    0xd0, 0x3c, 0x0, 0xa0, 0x7, 0xc0, 0x3, 0xc0,
+    0x3c, 0x1, 0xf0, 0x7, 0xc0, 0x3, 0xc0, 0x3c,
+    0x2, 0xe0, 0x7, 0xc0, 0xb, 0x80, 0x3c, 0x3,
+    0xd0, 0x7, 0xc0, 0xf, 0x40, 0x28, 0xf, 0xdf,
+    0x82, 0x80, 0x1f, 0x0, 0x1, 0xbf, 0x1f, 0xfd,
+    0x0, 0x3e, 0x0, 0x6f, 0xf8, 0x0, 0x7f, 0xe4,
+    0x7c, 0xf, 0xff, 0x40, 0x0, 0x2, 0xfc, 0x14,
+    0xf, 0x90, 0x0, 0x0, 0x0, 0x18, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+8D5E "赞" */
     0x0, 0x83, 0xc0, 0x1, 0x47, 0x80, 0x0, 0x7,
     0x8f, 0x40, 0xf, 0x1e, 0x0, 0x0, 0x3c, 0x3d,
@@ -138620,33 +147574,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xfe, 0x40, 0x0, 0x0, 0x0, 0x2f, 0x84, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x4,
 
-    /* U+8D5F "赟" */
-    0x0, 0x0, 0x0, 0x0, 0x1, 0x40, 0x0, 0x3,
-    0xc0, 0x0, 0x0, 0xf, 0x28, 0x0, 0xb, 0x0,
-    0x2f, 0xff, 0x2c, 0xb8, 0x1, 0x6e, 0x54, 0x6a,
-    0xa8, 0xb0, 0xb0, 0x2f, 0xff, 0xf0, 0x0, 0x2,
-    0xc0, 0x40, 0x6a, 0xae, 0x5f, 0xff, 0xff, 0xff,
-    0xc0, 0x0, 0xb4, 0x7f, 0xff, 0xff, 0xff, 0x1,
-    0xc2, 0xc0, 0x0, 0x90, 0x74, 0x0, 0x7, 0xdf,
-    0x1, 0x83, 0x80, 0xe0, 0x0, 0x7, 0xf4, 0xb,
-    0xf, 0xf3, 0xc0, 0x0, 0x7, 0xd0, 0x2c, 0x3e,
-    0x8f, 0x2, 0x40, 0x2f, 0xd0, 0xb0, 0xe0, 0x2d,
-    0xe, 0x1, 0xf3, 0xd2, 0xc3, 0x95, 0x38, 0x74,
-    0x1f, 0x3, 0x7f, 0xff, 0xf8, 0xfb, 0xc2, 0xf0,
-    0x0, 0xfe, 0xa9, 0x40, 0xfe, 0xf, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x50, 0x0, 0x6a, 0xaa, 0xaa,
-    0xaa, 0xa8, 0x0, 0x1, 0xff, 0xff, 0xff, 0xff,
-    0xf0, 0x0, 0x7, 0xc0, 0x0, 0x0, 0x7, 0xc0,
-    0x0, 0x1f, 0x0, 0xf, 0x0, 0xf, 0x0, 0x0,
-    0x7c, 0x0, 0x7c, 0x0, 0x3c, 0x0, 0x1, 0xf0,
-    0x2, 0xe0, 0x0, 0xf0, 0x0, 0x7, 0xc0, 0xf,
-    0x54, 0x3, 0xc0, 0x0, 0x1a, 0x0, 0xfc, 0xfe,
-    0x4a, 0x0, 0x0, 0x0, 0x6f, 0xc1, 0xbf, 0xe4,
-    0x0, 0x5, 0xbf, 0xf4, 0x0, 0x1b, 0xfe, 0x41,
-    0xff, 0xf9, 0x0, 0x0, 0x1, 0xff, 0x43, 0xe9,
-    0x0, 0x0, 0x0, 0x0, 0x2c, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0,
-
     /* U+8D60 "赠" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x9, 0x0, 0x38, 0x0, 0x0, 0x0,
@@ -138702,6 +147629,61 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xc0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+8D62 "赢" */
+    0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xb8, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x7c, 0x0, 0x0, 0x0, 0x3f, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xfc, 0x2b, 0xfa, 0xaa, 0xaa,
+    0xaa, 0xaa, 0xa8, 0x1, 0xe0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x1, 0xfa, 0xaa, 0xaa, 0xaa, 0xaa,
+    0x40, 0x1, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0xfa,
+    0xaa, 0xaa, 0xaa, 0xbe, 0x0, 0x0, 0xf4, 0x0,
+    0x0, 0x0, 0x2e, 0x0, 0x0, 0xff, 0xff, 0xff,
+    0xff, 0xfe, 0x0, 0x0, 0x55, 0x55, 0x55, 0x55,
+    0x54, 0x0, 0x2, 0xaa, 0x4a, 0xaa, 0x46, 0xaa,
+    0x0, 0x7, 0xff, 0xcf, 0xff, 0xcf, 0xff, 0x0,
+    0x7, 0x43, 0xcd, 0x2, 0xcf, 0xb, 0x0, 0x7,
+    0x43, 0xcd, 0x72, 0xcf, 0xb, 0x0, 0x7, 0xff,
+    0xcd, 0x72, 0xcf, 0x4b, 0x0, 0x7, 0xeb, 0xcd,
+    0x72, 0xcf, 0xeb, 0x0, 0x7, 0x43, 0xcd, 0x72,
+    0xcf, 0xbb, 0x0, 0x7, 0xab, 0xcd, 0x72, 0xcf,
+    0x3f, 0x0, 0xb, 0xff, 0xcd, 0xb2, 0xcf, 0x1b,
+    0x4, 0xf, 0x3, 0xc0, 0xfd, 0xe, 0xb, 0xe,
+    0x1f, 0x3, 0x83, 0xcb, 0xae, 0xb, 0xd, 0x3d,
+    0x2f, 0x9f, 0x41, 0xbc, 0xb, 0xfd, 0x7c, 0x3e,
+    0x3c, 0x0, 0xb8, 0x3, 0xfc, 0x10, 0x0, 0x0,
+    0x0, 0x10, 0x0, 0x0,
+
+    /* U+8D63 "赣" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x18, 0x0, 0x0, 0xb4, 0x0, 0x0, 0x0, 0x2c,
+    0x0, 0x1, 0xf0, 0x0, 0x0, 0x0, 0x1d, 0x0,
+    0x3, 0xff, 0xff, 0xc0, 0x3f, 0xff, 0xfe, 0xf,
+    0xaa, 0xaf, 0xc0, 0x2b, 0xea, 0xf9, 0x7f, 0xc0,
+    0xf, 0x0, 0x3, 0xc0, 0xf0, 0xf1, 0xf4, 0x7c,
+    0x0, 0x2, 0xc0, 0xe0, 0x40, 0x7f, 0xf0, 0x0,
+    0x2, 0xd1, 0xd0, 0x0, 0x7f, 0xf4, 0x0, 0xbf,
+    0xff, 0xff, 0x1f, 0xf9, 0xbf, 0xe4, 0x6a, 0xaa,
+    0xa9, 0xbe, 0x40, 0x6, 0xf8, 0x0, 0x0, 0x0,
+    0x1a, 0xaa, 0xaa, 0x0, 0x5, 0x55, 0x54, 0xb,
+    0xff, 0xff, 0x0, 0xf, 0xff, 0xfc, 0x0, 0xf,
+    0x0, 0x0, 0xe, 0x0, 0x2c, 0x55, 0x5f, 0x95,
+    0x50, 0xe, 0x55, 0x7c, 0xff, 0xff, 0xff, 0xf0,
+    0xf, 0xff, 0xfc, 0x0, 0x0, 0x0, 0x0, 0xe,
+    0x0, 0x3c, 0x15, 0x55, 0x55, 0x40, 0xe, 0x0,
+    0x2c, 0x3f, 0xff, 0xff, 0xc0, 0xf, 0xff, 0xfc,
+    0x3d, 0x55, 0x57, 0xc0, 0x5, 0x6e, 0x54, 0x3c,
+    0xf, 0x3, 0xc0, 0x0, 0x1d, 0x0, 0x3c, 0xf,
+    0x3, 0xc0, 0x0, 0x1d, 0x0, 0x3c, 0x1e, 0x3,
+    0xc0, 0xff, 0xff, 0xff, 0x68, 0x3c, 0x42, 0xc0,
+    0xaa, 0xbf, 0xaa, 0x1, 0xf9, 0xf8, 0x0, 0x0,
+    0x1d, 0x0, 0x2f, 0xd0, 0x7f, 0x80, 0x0, 0x1d,
+    0x3, 0xfe, 0x0, 0x2, 0xf8, 0x0, 0x1d, 0x3,
+    0x90, 0x0, 0x0, 0x38, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+8D64 "赤" */
     0x0, 0x0, 0x0, 0x19, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0xb, 0xc0, 0x0, 0x0, 0x0, 0x0,
@@ -138786,35 +147768,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x80, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+8D6A "赪" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0xe0, 0x0, 0x0, 0xe0, 0x0, 0x0, 0x0,
-    0x78, 0x0, 0x0, 0x38, 0x0, 0x0, 0x0, 0x1e,
-    0x0, 0x0, 0xe, 0x0, 0x0, 0x5, 0x57, 0x95,
-    0x0, 0x3, 0xff, 0xfc, 0x3, 0xff, 0xff, 0xe0,
-    0x0, 0xff, 0xff, 0x0, 0xaa, 0xbe, 0xa4, 0x0,
-    0x38, 0x0, 0x0, 0x0, 0x1e, 0x0, 0x0, 0xe,
-    0x0, 0x0, 0x0, 0x7, 0x80, 0x0, 0x3, 0x80,
-    0x0, 0x0, 0x1, 0xe0, 0x1, 0xaa, 0xfa, 0xa4,
-    0x1, 0x55, 0xbd, 0x54, 0xff, 0xff, 0xff, 0x0,
-    0xff, 0xff, 0xff, 0x3d, 0x55, 0x57, 0xc0, 0x2a,
-    0xbe, 0xfa, 0x8f, 0x0, 0x0, 0xf0, 0x0, 0xe,
-    0x1d, 0x3, 0xc0, 0xb0, 0x3c, 0x0, 0x3, 0x87,
-    0x40, 0xf0, 0x2c, 0xf, 0x0, 0x2d, 0xe1, 0xed,
-    0x3c, 0xb, 0x3, 0xc0, 0xf, 0x38, 0x77, 0x8f,
-    0x2, 0xc0, 0xf0, 0x3, 0x8e, 0x1d, 0xb3, 0xc0,
-    0xb0, 0x3c, 0x1, 0xd3, 0x87, 0x5d, 0xf0, 0x3c,
-    0xf, 0x0, 0xb1, 0xe1, 0xd3, 0xbc, 0xf, 0x3,
-    0xc0, 0x3c, 0x74, 0x74, 0xff, 0x3, 0xc0, 0xf0,
-    0x2d, 0x2c, 0x1d, 0x1, 0x42, 0xee, 0x14, 0x2,
-    0xf, 0x7, 0x40, 0x1, 0xf7, 0xf0, 0x0, 0x7,
-    0x81, 0xd0, 0x1, 0xf4, 0x3f, 0x40, 0x3, 0xc0,
-    0xb4, 0x2, 0xf8, 0x2, 0xf4, 0x2, 0xe2, 0xfc,
-    0xb, 0xf4, 0x0, 0x2f, 0x81, 0xf0, 0xfd, 0xf,
-    0xe0, 0x0, 0x2, 0xf0, 0x70, 0x0, 0x2, 0x80,
-    0x0, 0x0, 0x28, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0,
-
     /* U+8D6B "赫" */
     0x0, 0x0, 0xa0, 0x0, 0x0, 0xa0, 0x0, 0x0,
     0x0, 0xf, 0x0, 0x0, 0x1f, 0x0, 0x0, 0x0,
@@ -139177,6 +148130,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xff, 0xff, 0xff, 0xff, 0xc1, 0x80, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+8D91 "趑" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xf, 0x0, 0x0, 0x2, 0xc0, 0x0, 0x0, 0xf,
+    0x0, 0x74, 0x3, 0xc0, 0x0, 0x0, 0xf, 0x0,
+    0x3c, 0x7, 0x80, 0x0, 0xf, 0xff, 0xff, 0x3c,
+    0xb, 0xea, 0xa0, 0xf, 0xff, 0xff, 0x1e, 0xf,
+    0xff, 0xf4, 0x0, 0xf, 0x40, 0xf, 0xe, 0x55,
+    0xf0, 0x0, 0xf, 0x0, 0xf, 0x2d, 0x0, 0xf0,
+    0x0, 0xf, 0x0, 0x5, 0x3c, 0xa1, 0xd0, 0x0,
+    0xf, 0x0, 0x0, 0x78, 0xf3, 0xc0, 0x0, 0xf,
+    0x40, 0x0, 0xf0, 0xf3, 0x80, 0x3f, 0xff, 0xff,
+    0x80, 0x10, 0xf0, 0x0, 0x3f, 0xff, 0xff, 0x80,
+    0x0, 0xf0, 0x0, 0x0, 0x7, 0x80, 0xf, 0x0,
+    0xe0, 0x0, 0x0, 0x7, 0x80, 0xf, 0x1, 0xf0,
+    0x0, 0x6, 0x7, 0x80, 0x1e, 0x2, 0xfc, 0x0,
+    0x7, 0x47, 0x80, 0x2d, 0x3, 0xfd, 0x0, 0x7,
+    0x47, 0xff, 0x3c, 0x7, 0x8f, 0x0, 0xb, 0x7,
+    0xff, 0x3c, 0xf, 0xb, 0x80, 0xb, 0x47, 0x80,
+    0x78, 0x2e, 0x3, 0xd0, 0xf, 0x87, 0x80, 0xb4,
+    0xbc, 0x1, 0xf0, 0xf, 0xd7, 0x80, 0xb2, 0xf0,
+    0x0, 0xf4, 0x1e, 0xfb, 0x80, 0x2, 0xd0, 0x0,
+    0x60, 0x2c, 0x7f, 0x80, 0x0, 0x0, 0x0, 0x0,
+    0x3c, 0x2f, 0xe4, 0x0, 0x0, 0x0, 0x0, 0x78,
+    0x7, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xf0, 0x0,
+    0x6f, 0xff, 0xff, 0xff, 0xfc, 0x10, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+8D94 "趔" */
     0x0, 0xb, 0x40, 0x0, 0x0, 0x0, 0x28, 0x0,
     0x2, 0xd0, 0x2a, 0xaa, 0x80, 0xf, 0x0, 0x0,
@@ -139314,6 +148294,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x6f, 0xff, 0xff, 0xff, 0x7, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+8DB4 "趴" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0,
+    0x0, 0x0, 0x3, 0xc0, 0xf0, 0x0, 0xb, 0xff,
+    0xfc, 0x3, 0xc0, 0xf0, 0x0, 0xb, 0xff, 0xfc,
+    0x3, 0xc0, 0xf0, 0x0, 0xb, 0x40, 0x2c, 0x3,
+    0xc0, 0xf0, 0x0, 0xb, 0x40, 0x2c, 0x3, 0xc0,
+    0xf0, 0x0, 0xb, 0x40, 0x2c, 0x7, 0xc0, 0xf0,
+    0x0, 0xb, 0x40, 0x2c, 0x7, 0xc0, 0xf0, 0x0,
+    0xb, 0x40, 0x2c, 0x7, 0x80, 0xf4, 0x0, 0xb,
+    0xff, 0xfc, 0x7, 0x80, 0xf4, 0x0, 0x7, 0xff,
+    0xfc, 0x7, 0x80, 0xb4, 0x0, 0x0, 0x3, 0x80,
+    0xb, 0x80, 0xb8, 0x0, 0x0, 0x3, 0x80, 0xb,
+    0x40, 0x7c, 0x0, 0xf, 0x3, 0x80, 0xf, 0x40,
+    0x7c, 0x0, 0xf, 0x3, 0xc0, 0xf, 0x0, 0x3c,
+    0x0, 0xf, 0x3, 0xff, 0xf, 0x0, 0x3d, 0x0,
+    0xf, 0x3, 0xff, 0x1f, 0x0, 0x3d, 0x0, 0xf,
+    0x3, 0x80, 0x2e, 0x0, 0x2e, 0x0, 0xf, 0x3,
+    0x80, 0x3d, 0x0, 0x1f, 0x0, 0xf, 0x3, 0x80,
+    0x3c, 0x0, 0xf, 0x40, 0xf, 0x3, 0x80, 0xbc,
+    0x0, 0xb, 0x80, 0xf, 0x3, 0xd9, 0xf4, 0x0,
+    0x7, 0xc0, 0xf, 0xbf, 0xff, 0xf0, 0x0, 0x3,
+    0xe0, 0xbf, 0xff, 0xeb, 0xd0, 0x0, 0x1, 0xf0,
+    0xbe, 0x50, 0xf, 0xc0, 0x0, 0x0, 0xf8, 0x0,
+    0x0, 0x1f, 0x0, 0x0, 0x0, 0x7d, 0x0, 0x0,
+    0x5, 0x0, 0x0, 0x0, 0x24,
+
     /* U+8DB5 "趵" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x1, 0xe0, 0x0, 0x0, 0x0, 0x0,
@@ -139340,6 +148346,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0x0, 0x7f, 0xe0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+8DB8 "趸" */
+    0xf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x3,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x40, 0x0,
+    0x7, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1,
+    0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xbf,
+    0xff, 0xff, 0xff, 0x40, 0x0, 0x0, 0x3f, 0xff,
+    0xff, 0xff, 0xd0, 0x0, 0x0, 0x2f, 0x0, 0x0,
+    0x0, 0xf0, 0x0, 0x0, 0x2f, 0x40, 0x0, 0x0,
+    0xbc, 0x0, 0x0, 0x7f, 0x40, 0x0, 0xff, 0xfd,
+    0x0, 0x1, 0xff, 0x40, 0x0, 0x19, 0x54, 0x0,
+    0x1, 0xff, 0xaa, 0xaa, 0xaa, 0xaa, 0xa4, 0x0,
+    0x28, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x0, 0x0,
+    0x3d, 0x0, 0x0, 0x0, 0xb, 0x40, 0x0, 0xf,
+    0x40, 0x0, 0x0, 0x2, 0xd0, 0x0, 0x3, 0xd0,
+    0x0, 0x0, 0x0, 0xb4, 0x0, 0x0, 0xff, 0xff,
+    0xff, 0xff, 0xfd, 0x0, 0x0, 0x2a, 0xaa, 0xaf,
+    0xaa, 0xaa, 0x40, 0x0, 0x6, 0x40, 0x3, 0xc0,
+    0x0, 0x0, 0x0, 0x2, 0xe0, 0x0, 0xf0, 0x0,
+    0x0, 0x0, 0x0, 0xf8, 0x0, 0x3f, 0xff, 0xff,
+    0xc0, 0x0, 0x7f, 0x40, 0xf, 0xaa, 0xaa, 0xa0,
+    0x0, 0x3f, 0xf4, 0x3, 0xc0, 0x0, 0x0, 0x0,
+    0x2f, 0x1f, 0x90, 0xf0, 0x0, 0x0, 0x0, 0x2f,
+    0x41, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x2f, 0x80,
+    0x6, 0xff, 0xff, 0xff, 0xff, 0xb, 0x40, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+8DBA "趺" */
     0x0, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x2f,
@@ -139638,33 +148671,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x3, 0xc2, 0xa4, 0xf, 0xf, 0x0, 0x0,
     0x5, 0x0, 0x0, 0x0, 0x0,
 
-    /* U+8DD0 "跐" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x2, 0x80, 0xf0, 0x0, 0xf, 0xff,
-    0xd0, 0x3, 0xc0, 0xf0, 0x0, 0xf, 0xff, 0xd0,
-    0x3, 0xc0, 0xf0, 0x0, 0xf, 0x1, 0xd0, 0x3,
-    0xc0, 0xf0, 0x0, 0xf, 0x1, 0xd0, 0xe3, 0xc0,
-    0xf0, 0x0, 0xf, 0x1, 0xd0, 0xf3, 0xc0, 0xf0,
-    0x0, 0xf, 0x1, 0xd0, 0xf3, 0xc0, 0xf0, 0x34,
-    0xf, 0x1, 0xd0, 0xf3, 0xc0, 0xf0, 0xbc, 0xf,
-    0xaa, 0xd0, 0xf3, 0xc0, 0xf2, 0xf0, 0xf, 0xff,
-    0xd0, 0xf3, 0xfc, 0xfb, 0xc0, 0x5, 0x7e, 0x40,
-    0xf3, 0xfc, 0xff, 0x0, 0x0, 0x2c, 0x0, 0xf3,
-    0xc0, 0xfc, 0x0, 0x9, 0x2c, 0x0, 0xf3, 0xc0,
-    0xf0, 0x0, 0xf, 0x2c, 0x0, 0xf3, 0xc0, 0xf0,
-    0x0, 0xf, 0x2c, 0x0, 0xf3, 0xc0, 0xf0, 0x0,
-    0xf, 0x2f, 0xf0, 0xf3, 0xc0, 0xf0, 0x0, 0xf,
-    0x2f, 0xf0, 0xf3, 0xc0, 0xf0, 0x0, 0xf, 0x2c,
-    0x0, 0xf3, 0xc0, 0xf0, 0x0, 0xf, 0x2c, 0x0,
-    0xf3, 0xc0, 0xf0, 0x14, 0xf, 0x2c, 0x0, 0xf3,
-    0xc0, 0xf0, 0x2c, 0xf, 0x2c, 0x0, 0xf3, 0xc0,
-    0xf0, 0x3c, 0xf, 0x2c, 0x0, 0xf3, 0xc0, 0xf0,
-    0x3c, 0xf, 0x7f, 0xe0, 0xf3, 0xec, 0xf0, 0x3c,
-    0x7f, 0xff, 0xd0, 0xfb, 0xfc, 0xf4, 0xb8, 0x7f,
-    0x94, 0x2f, 0xff, 0x90, 0xbf, 0xf4, 0x0, 0x0,
-    0x2f, 0xe4, 0x0, 0x3f, 0xe0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0,
-
     /* U+8DD1 "跑" */
     0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x7, 0xc0, 0x0, 0x0, 0x5, 0x55,
@@ -139994,6 +149000,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+8DEB "跫" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1,
+    0xff, 0xff, 0xc7, 0xff, 0xff, 0x40, 0x0, 0xbf,
+    0xff, 0xf1, 0xff, 0xff, 0xd0, 0x0, 0x0, 0x3d,
+    0x0, 0x78, 0x0, 0xf4, 0x0, 0x0, 0xf, 0x40,
+    0x1e, 0x0, 0x3d, 0x0, 0x0, 0x3, 0xd0, 0x7,
+    0xbd, 0xf, 0x41, 0x0, 0x0, 0xf4, 0x2, 0xe7,
+    0xd3, 0xd0, 0xe0, 0x0, 0x3e, 0xac, 0xf4, 0x7d,
+    0xf4, 0x38, 0xb, 0xff, 0xff, 0xbc, 0x7, 0xfe,
+    0x2e, 0x3, 0xff, 0xa4, 0xbd, 0x0, 0x5b, 0xff,
+    0x40, 0x50, 0x0, 0xbd, 0x0, 0x0, 0xbf, 0x80,
+    0x0, 0x0, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x2f, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0xf,
+    0xff, 0xff, 0xff, 0xff, 0xc0, 0x0, 0x3, 0xd0,
+    0x0, 0x0, 0x0, 0xf0, 0x0, 0x0, 0xf4, 0x0,
+    0x0, 0x0, 0x3c, 0x0, 0x0, 0x3f, 0xaa, 0xaa,
+    0xaa, 0xbf, 0x0, 0x0, 0xf, 0xff, 0xff, 0xff,
+    0xff, 0xc0, 0x0, 0x0, 0x0, 0x0, 0xf0, 0x0,
+    0x0, 0x0, 0x0, 0xb4, 0x0, 0x3c, 0x0, 0x0,
+    0x0, 0x0, 0x3d, 0x0, 0xf, 0xff, 0xff, 0xd0,
+    0x0, 0x1f, 0xc0, 0x3, 0xff, 0xff, 0xf8, 0x0,
+    0xf, 0xfd, 0x0, 0xf0, 0x0, 0x0, 0x0, 0xb,
+    0xcb, 0xf4, 0x3c, 0x0, 0x0, 0x0, 0xb, 0xc0,
+    0x7f, 0xff, 0xff, 0xff, 0xff, 0xb, 0xd0, 0x1,
+    0xbf, 0xff, 0xff, 0xff, 0xc0, 0x80, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+8DEC "跬" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x1a,
@@ -140101,33 +149134,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0x0, 0xff, 0xd0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x2f, 0x40,
 
-    /* U+8DF6 "跶" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x80, 0x0, 0x74, 0x0, 0x0, 0x0,
-    0x2, 0xe0, 0x0, 0x74, 0x0, 0xb, 0xff, 0xf0,
-    0xf0, 0x0, 0x74, 0x0, 0xb, 0xff, 0xf0, 0xb8,
-    0x0, 0x74, 0x0, 0xb, 0x40, 0xf0, 0x3c, 0x0,
-    0x74, 0x0, 0xb, 0x40, 0xf0, 0x2e, 0x0, 0x74,
-    0x0, 0xb, 0x40, 0xf0, 0x18, 0x7f, 0xff, 0xfc,
-    0xb, 0x40, 0xf0, 0x0, 0x7f, 0xff, 0xfc, 0xb,
-    0x80, 0xf0, 0x0, 0x0, 0xb8, 0x0, 0xb, 0xff,
-    0xf0, 0x0, 0x0, 0xb4, 0x0, 0x6, 0xaf, 0xa3,
-    0xfc, 0x0, 0xb4, 0x0, 0x0, 0xf, 0x3, 0xfc,
-    0x0, 0xf0, 0x0, 0x0, 0xf, 0x0, 0x3c, 0x0,
-    0xf4, 0x0, 0xf, 0xf, 0x0, 0x3c, 0x0, 0xfc,
-    0x0, 0xf, 0xf, 0x0, 0x3c, 0x2, 0xfe, 0x0,
-    0xf, 0xf, 0xf8, 0x3c, 0x3, 0xdf, 0x40, 0xf,
-    0xf, 0xf8, 0x3c, 0x7, 0xc7, 0xc0, 0xf, 0xf,
-    0x0, 0x3c, 0xf, 0x43, 0xd0, 0xf, 0xf, 0x0,
-    0x3c, 0x3e, 0x1, 0xf0, 0xf, 0xf, 0x0, 0x3c,
-    0xbc, 0x0, 0xf8, 0xf, 0xf, 0x0, 0x3c, 0xb4,
-    0x0, 0x74, 0xf, 0xf, 0x0, 0xfe, 0x10, 0x0,
-    0x0, 0xf, 0x5f, 0xf6, 0xff, 0x80, 0x0, 0x0,
-    0xbf, 0xff, 0xff, 0xc3, 0xf9, 0x54, 0x54, 0xbf,
-    0xe4, 0x1f, 0x40, 0xff, 0xff, 0xfd, 0x0, 0x0,
-    0x9, 0x0, 0x1a, 0xff, 0xe8, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0,
-
     /* U+8DF7 "跷" */
     0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0xb, 0x80, 0x0, 0x0, 0x7, 0xff,
@@ -140265,6 +149271,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x78, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+8DFD "跽" */
+    0x0, 0x0, 0x0, 0x15, 0x55, 0x55, 0x50, 0x0,
+    0xbf, 0xff, 0xf, 0xff, 0xff, 0xf8, 0x0, 0x2f,
+    0xff, 0xc2, 0xaa, 0xaa, 0xbe, 0x0, 0xb, 0x0,
+    0xb0, 0x0, 0x0, 0xb, 0x80, 0x2, 0xc0, 0x2c,
+    0x0, 0x0, 0x2, 0xe0, 0x0, 0xb0, 0xb, 0x0,
+    0x0, 0x0, 0xb8, 0x0, 0x2c, 0x2, 0xc2, 0xaa,
+    0xaa, 0xbe, 0x0, 0xb, 0x40, 0xf0, 0xff, 0xff,
+    0xff, 0x80, 0x2, 0xff, 0xfc, 0x3d, 0x55, 0x55,
+    0x40, 0x0, 0xbf, 0xff, 0xf, 0x0, 0x0, 0x4,
+    0x0, 0x0, 0x3c, 0x3, 0xc0, 0x0, 0x3, 0xc0,
+    0x4, 0xf, 0x0, 0xf4, 0x0, 0x0, 0xf0, 0x3,
+    0xc3, 0xc0, 0x3f, 0x95, 0x56, 0xfc, 0x0, 0xf0,
+    0xf0, 0x7, 0xff, 0xff, 0xfd, 0x0, 0x3c, 0x3f,
+    0xf4, 0x15, 0xe5, 0x54, 0x0, 0xf, 0xf, 0xfd,
+    0x0, 0x7c, 0x0, 0x0, 0x3, 0xc3, 0xc0, 0x36,
+    0xdb, 0xc0, 0xe0, 0x0, 0xf0, 0xf0, 0x1d, 0xb4,
+    0xbc, 0x3c, 0x0, 0x3c, 0x3c, 0xb, 0x2d, 0xa,
+    0x7, 0xc0, 0xf, 0xf, 0x3, 0xcb, 0x40, 0x14,
+    0xf4, 0x3, 0xc3, 0xed, 0xe2, 0xd0, 0xb, 0x1f,
+    0x1, 0xfb, 0xff, 0xb0, 0xb4, 0x3, 0xc3, 0xd3,
+    0xff, 0xf9, 0x7c, 0x2e, 0x0, 0xf0, 0x70, 0xf9,
+    0x40, 0x1, 0x7, 0xff, 0xf8, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xbf, 0xf8, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+8E05 "踅" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0xf0, 0x0, 0x0, 0x0, 0x14, 0x0, 0x0,
@@ -141128,31 +150160,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x1, 0xff, 0x40, 0x0, 0x0, 0x3, 0x80,
     0x0, 0x3e, 0x40,
 
-    /* U+8E53 "蹓" */
-    0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x2f, 0x0, 0x0, 0x0, 0xff, 0xfe,
-    0x2f, 0xfd, 0xff, 0xff, 0x3, 0xea, 0xb8, 0xfe,
-    0x3, 0xff, 0xfc, 0xf, 0x0, 0xe3, 0x80, 0x2,
-    0xd0, 0xb0, 0x3c, 0x3, 0x8e, 0xe, 0xb, 0x43,
-    0xc0, 0xf0, 0xe, 0x38, 0x2c, 0x3c, 0xf, 0x3,
-    0xc0, 0x38, 0xe0, 0x78, 0xf0, 0x3c, 0xf, 0xff,
-    0xe3, 0x8b, 0xfb, 0x80, 0xf0, 0x3f, 0xff, 0x8f,
-    0xf9, 0xbd, 0xb, 0x80, 0x0, 0xe0, 0xbf, 0x42,
-    0xf2, 0xfd, 0x0, 0x3, 0x81, 0xd0, 0x1f, 0x6,
-    0x80, 0x9, 0xe, 0x0, 0x0, 0x34, 0x0, 0x0,
-    0x3c, 0x38, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf0,
-    0xe0, 0x1f, 0xff, 0xff, 0xfc, 0x3, 0xc3, 0xfc,
-    0x7f, 0xff, 0xff, 0xf0, 0xf, 0xf, 0xf1, 0xd0,
-    0x3c, 0x3, 0xc0, 0x3c, 0x38, 0x7, 0x40, 0xf0,
-    0xf, 0x0, 0xf0, 0xe0, 0x1d, 0x3, 0xc0, 0x3c,
-    0x3, 0xc3, 0x80, 0x7f, 0xff, 0xff, 0xf0, 0xf,
-    0xe, 0x1, 0xff, 0xff, 0xff, 0xc0, 0x3c, 0x38,
-    0x7, 0x40, 0xf0, 0xf, 0x0, 0xf0, 0xfa, 0x1d,
-    0x3, 0xc0, 0x3c, 0x7, 0xff, 0xfc, 0x78, 0xf,
-    0x40, 0xf0, 0xbf, 0xfe, 0x41, 0xff, 0xff, 0xff,
-    0xc1, 0xa4, 0x0, 0x7, 0xea, 0xaa, 0xaf, 0x0,
-    0x0, 0x0, 0x1d, 0x0, 0x0, 0x3c, 0x0,
-
     /* U+8E59 "蹙" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x8, 0x0, 0x0,
     0x0, 0x0, 0x0, 0xf, 0x7, 0xc0, 0x0, 0x0,
@@ -141397,32 +150404,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0xbf, 0x0, 0x0, 0x0, 0x0, 0x1, 0x40,
     0x0, 0x0,
 
-    /* U+8E7B "蹻" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x55, 0x54, 0x0, 0x56, 0xaf, 0xfc, 0x0, 0x7f,
-    0xff, 0x1f, 0xff, 0xff, 0xfe, 0x0, 0x1e, 0xab,
-    0xc2, 0xa5, 0xf4, 0x0, 0x0, 0x7, 0x40, 0xf0,
-    0x0, 0x3c, 0x0, 0x0, 0x1, 0xd0, 0x3c, 0x0,
-    0x1e, 0x0, 0x0, 0x0, 0x74, 0xf, 0x2f, 0xff,
-    0xff, 0xff, 0xc0, 0x1d, 0x3, 0xca, 0xaf, 0xeb,
-    0xfa, 0xa0, 0x7, 0x95, 0xf0, 0x3, 0xc0, 0x38,
-    0x0, 0x1, 0xff, 0xfc, 0x3, 0xfa, 0xaf, 0x80,
-    0x0, 0x15, 0xf5, 0x7, 0xff, 0xff, 0xfd, 0x0,
-    0x0, 0x38, 0xf, 0xed, 0x0, 0xfb, 0xe0, 0x6,
-    0xe, 0xb, 0xc7, 0xaa, 0xbc, 0x7f, 0x2, 0xc3,
-    0x80, 0x41, 0xff, 0xff, 0x2, 0x40, 0xb0, 0xfa,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x2c, 0x3f, 0xc0,
-    0x0, 0x0, 0x0, 0x0, 0xb, 0xf, 0xf0, 0xff,
-    0xff, 0xff, 0xf0, 0x2, 0xc3, 0x80, 0x3e, 0xaa,
-    0xaa, 0xbc, 0x0, 0xb0, 0xe0, 0xe, 0x0, 0x0,
-    0xf, 0x0, 0x2c, 0x38, 0x3, 0x87, 0xff, 0xc3,
-    0xc0, 0xb, 0xe, 0x0, 0xe1, 0xea, 0xf0, 0xf0,
-    0x2, 0xc3, 0x84, 0x38, 0x70, 0x2c, 0x3c, 0x0,
-    0xb5, 0xff, 0x4e, 0x1e, 0xaf, 0xf, 0x0, 0xbf,
-    0xfe, 0x43, 0x87, 0xff, 0xc3, 0xc0, 0x3f, 0x90,
-    0x0, 0xe0, 0x0, 0x1, 0xf0, 0x4, 0x0, 0x0,
-    0x38, 0x0, 0xf, 0xf8, 0x0, 0x0, 0x0, 0xe,
-    0x0, 0x2, 0xe4, 0x0,
+    /* U+8E76 "蹶" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1,
+    0xff, 0xf1, 0xff, 0xff, 0xff, 0xff, 0x40, 0x7f,
+    0xfc, 0x7f, 0xff, 0xff, 0xff, 0xd0, 0x1c, 0x7,
+    0x1c, 0x10, 0x0, 0x0, 0x0, 0x7, 0x1, 0xc7,
+    0xe, 0xb, 0xb, 0x0, 0x1, 0xc0, 0x71, 0xc2,
+    0xc3, 0x83, 0x80, 0x0, 0x70, 0x1c, 0x70, 0x35,
+    0xd0, 0xd0, 0x0, 0x1d, 0xb, 0x1c, 0x4, 0xf0,
+    0x7f, 0xf0, 0x7, 0xff, 0xc7, 0x3f, 0xff, 0x6e,
+    0xbc, 0x1, 0xff, 0xf1, 0xca, 0xbe, 0x8e, 0xb,
+    0x0, 0x0, 0xd0, 0x70, 0xe, 0x7, 0x93, 0x80,
+    0x4, 0x34, 0x1c, 0x73, 0x9f, 0xec, 0xd0, 0xb,
+    0xd, 0x7, 0x1c, 0xe7, 0x5b, 0x70, 0x2, 0xc3,
+    0x81, 0xc7, 0x39, 0xc2, 0xd8, 0x0, 0xb0, 0xff,
+    0x71, 0xce, 0x70, 0xb0, 0x0, 0x2c, 0x3f, 0xec,
+    0x73, 0x9c, 0x2c, 0x0, 0xb, 0xd, 0xb, 0x1c,
+    0xe7, 0xf, 0x40, 0x2, 0xc3, 0x42, 0xc7, 0xff,
+    0xc3, 0xd0, 0x0, 0xb0, 0xd0, 0xb1, 0xaf, 0xa1,
+    0xfc, 0x0, 0x2c, 0x34, 0x3c, 0x7, 0x0, 0xbb,
+    0x0, 0xb, 0xe, 0x4e, 0x2, 0xc0, 0x38, 0xe0,
+    0x2, 0xdb, 0xfb, 0x40, 0xf0, 0x2c, 0x3c, 0x7,
+    0xff, 0xff, 0xc0, 0x74, 0x1e, 0x7, 0x80, 0xfe,
+    0x40, 0xf0, 0x3c, 0xf, 0x0, 0xf4, 0x0, 0x0,
+    0xb4, 0x3d, 0xf, 0x40, 0xf, 0x0, 0x0, 0x2c,
+    0xe, 0x2, 0x40, 0x1, 0x80, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
 
     /* U+8E7C "蹼" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -141452,62 +150459,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x40, 0x0, 0x0, 0xb8, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+8E7D "蹽" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x15,
-    0x55, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x1f, 0xff,
-    0xc0, 0x0, 0x7c, 0x0, 0x0, 0x7, 0xea, 0xf2,
-    0xff, 0xff, 0xff, 0xfc, 0x1, 0xd0, 0x3c, 0xbf,
-    0xff, 0xff, 0xff, 0x0, 0x74, 0xf, 0x0, 0x7,
-    0xec, 0x0, 0x0, 0x1d, 0x3, 0xc7, 0x83, 0xd3,
-    0xc1, 0xe0, 0x7, 0x40, 0xf0, 0xf5, 0xf0, 0xb9,
-    0xf4, 0x1, 0xfa, 0xbc, 0xf, 0xf0, 0xf, 0xf4,
-    0x0, 0x7f, 0xff, 0x2, 0xf4, 0x0, 0xf8, 0x0,
-    0x5, 0x7d, 0x42, 0xff, 0xff, 0xff, 0xc0, 0x0,
-    0xf, 0x7, 0xff, 0xff, 0xff, 0xfe, 0x1, 0x83,
-    0xc1, 0xff, 0x0, 0x0, 0xfb, 0xc0, 0xb0, 0xf0,
-    0x13, 0xd0, 0x0, 0x3c, 0x10, 0x2c, 0x3e, 0xa0,
-    0xff, 0xff, 0xff, 0x0, 0xb, 0xf, 0xf8, 0x3e,
-    0x55, 0x57, 0xc0, 0x2, 0xc3, 0xc0, 0xf, 0x0,
-    0x0, 0xf0, 0x0, 0xb0, 0xf0, 0x3, 0xc0, 0x0,
-    0x3c, 0x0, 0x2c, 0x3c, 0x0, 0xff, 0xff, 0xff,
-    0x0, 0xb, 0xf, 0x0, 0x2a, 0xaf, 0xaa, 0x80,
-    0x2, 0xc3, 0xc0, 0x0, 0x3, 0xc0, 0x40, 0x0,
-    0xb0, 0xf1, 0x0, 0xf0, 0xf0, 0xb8, 0x0, 0x2d,
-    0x7f, 0xc0, 0xf8, 0x3c, 0x1f, 0x80, 0x3f, 0xff,
-    0xe1, 0xf8, 0xf, 0x1, 0xf8, 0xf, 0xe5, 0x1,
-    0xf8, 0x7, 0xc0, 0xf, 0x80, 0x0, 0x0, 0xf8,
-    0x2f, 0xf0, 0x1, 0xf0, 0x0, 0x0, 0x4, 0x7,
-    0x90, 0x0, 0x10,
-
-    /* U+8E7E "蹾" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x7, 0x80, 0x3, 0xc0, 0x0, 0x1a,
-    0xa9, 0x0, 0xf0, 0x0, 0xe0, 0x0, 0xb, 0xff,
-    0x80, 0x3c, 0x0, 0x78, 0x0, 0x2, 0xd5, 0xe3,
-    0xff, 0xff, 0x2d, 0x0, 0x0, 0xb0, 0x38, 0xff,
-    0xff, 0x8f, 0x55, 0x40, 0x2c, 0xe, 0x0, 0x0,
-    0x3, 0xff, 0xf4, 0xb, 0x3, 0x86, 0xaa, 0x91,
-    0xea, 0xf8, 0x2, 0xc0, 0xe2, 0xff, 0xf4, 0xf0,
-    0x3c, 0x0, 0xbf, 0xf8, 0xb0, 0xd, 0x3c, 0xe,
-    0x0, 0x2f, 0xfe, 0x2c, 0x3, 0x6f, 0x7, 0x80,
-    0x0, 0x3c, 0xb, 0x0, 0xef, 0xd1, 0xd0, 0x0,
-    0xf, 0x2, 0xff, 0xfb, 0xf4, 0xb0, 0x0, 0x53,
-    0xc0, 0x55, 0x54, 0x1e, 0x3c, 0x0, 0x38, 0xf0,
-    0x0, 0x0, 0x3, 0xcf, 0x0, 0xe, 0x3e, 0x8f,
-    0xff, 0xf0, 0xb7, 0x80, 0x3, 0x8f, 0xf2, 0xaa,
-    0xfc, 0x1f, 0xd0, 0x0, 0xe3, 0xc0, 0x0, 0x7c,
-    0x3, 0xf0, 0x0, 0x38, 0xf0, 0x0, 0x7c, 0x0,
-    0xfc, 0x0, 0xe, 0x3c, 0x0, 0x3d, 0x64, 0x2e,
-    0x0, 0x3, 0x8f, 0x6, 0xbf, 0xfe, 0xf, 0xc0,
-    0x0, 0xe3, 0xc2, 0xff, 0xe4, 0xb, 0xf8, 0x0,
-    0x38, 0xfa, 0x10, 0xf0, 0x7, 0xcf, 0x0, 0xf,
-    0xbf, 0xc0, 0x3c, 0x3, 0xd1, 0xf0, 0x2f, 0xfe,
-    0x40, 0xf, 0x3, 0xe0, 0x2e, 0xf, 0x90, 0x0,
-    0x6f, 0xc3, 0xe0, 0x3, 0xd0, 0x0, 0x0, 0x2f,
-    0xd1, 0xf0, 0x0, 0x38, 0x0, 0x0, 0x1, 0x0,
-    0x10, 0x0, 0x4,
-
     /* U+8E7F "蹿" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x6a, 0xa9,
@@ -141668,6 +150619,35 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x4b, 0xf8, 0xf, 0xe0, 0x0, 0x0, 0x18, 0x0,
     0x90, 0x1, 0xf0,
 
+    /* U+8E94 "躔" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x1,
+    0xaa, 0x90, 0x0, 0x3, 0xd0, 0x0, 0x0, 0x3f,
+    0xfe, 0x1f, 0xff, 0xff, 0xff, 0xf0, 0x3, 0xd5,
+    0xe2, 0xff, 0xff, 0xff, 0xff, 0x0, 0x3c, 0xe,
+    0x2c, 0x0, 0x0, 0x0, 0x0, 0x3, 0xc0, 0xe2,
+    0xc0, 0x0, 0x0, 0x0, 0x0, 0x3c, 0xe, 0x2c,
+    0x3f, 0xff, 0xff, 0x80, 0x3, 0xc0, 0xe2, 0xc3,
+    0xc0, 0xf0, 0x38, 0x0, 0x3e, 0xae, 0x2c, 0x3e,
+    0xaf, 0xab, 0x80, 0x3, 0xff, 0xe2, 0xc3, 0xea,
+    0xfa, 0xb8, 0x0, 0x15, 0xf4, 0x2c, 0x3c, 0xe,
+    0x3, 0x80, 0x0, 0xb, 0x2, 0xc3, 0xff, 0xff,
+    0xf8, 0x0, 0x10, 0xb0, 0x2c, 0x15, 0x5f, 0x55,
+    0x0, 0x3, 0x8b, 0x2, 0xc1, 0x55, 0xf5, 0x54,
+    0x0, 0x38, 0xba, 0x6c, 0x3f, 0xff, 0xff, 0xc0,
+    0x3, 0x8b, 0xfa, 0xc0, 0x0, 0xe0, 0x0, 0x0,
+    0x38, 0xb5, 0x6c, 0x55, 0x5f, 0x55, 0x50, 0x3,
+    0x8b, 0x2, 0xdf, 0xff, 0xff, 0xff, 0x0, 0x38,
+    0xb0, 0x3c, 0x7, 0x0, 0x8, 0x0, 0x3, 0x8b,
+    0x3, 0xc2, 0xf0, 0xf1, 0xf8, 0x0, 0x38, 0xb0,
+    0x39, 0xf8, 0xf, 0x2, 0xf4, 0x3, 0x8b, 0x57,
+    0x7d, 0xbf, 0xff, 0xd7, 0x80, 0x3e, 0xfe, 0xb0,
+    0x6, 0xaf, 0xa8, 0x0, 0x3f, 0xff, 0x9f, 0x0,
+    0x0, 0xf0, 0x0, 0x3, 0xe5, 0x1, 0xe1, 0xaa,
+    0xaf, 0xaa, 0xa0, 0x0, 0x0, 0x3c, 0x1f, 0xff,
+    0xff, 0xff, 0x0, 0x0, 0x1, 0x80, 0x0, 0x0,
+    0x0, 0x0,
+
     /* U+8E9C "躜" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x1d, 0x0, 0x1d, 0x0, 0x6, 0xaa,
@@ -141863,58 +150843,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+8F1E "輞" */
+    /* U+8ECE "軎" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x78, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xe0,
-    0x1, 0x55, 0x55, 0x55, 0x0, 0x7, 0x80, 0x2f,
-    0xff, 0xff, 0xfc, 0x1f, 0xff, 0xfe, 0xba, 0xaa,
-    0xaa, 0xf0, 0x7f, 0xff, 0xfa, 0xd1, 0x0, 0x43,
-    0xc0, 0x1, 0xe0, 0xb, 0x4e, 0x3, 0x8f, 0x0,
-    0x7, 0x80, 0x2d, 0x1c, 0x2c, 0x3c, 0x6, 0xaf,
-    0xa8, 0xb4, 0x38, 0xf0, 0xf0, 0x2f, 0xff, 0xf2,
-    0xd0, 0x47, 0x43, 0xc0, 0xb1, 0xe2, 0xcb, 0x7f,
-    0xff, 0xdf, 0x2, 0xc7, 0x8b, 0x2d, 0xff, 0xff,
-    0xbc, 0xb, 0x1e, 0x2c, 0xb4, 0x0, 0x0, 0xf0,
-    0x2f, 0xff, 0xf2, 0xd0, 0x3c, 0x3, 0xc0, 0xba,
-    0xfb, 0xcb, 0x40, 0xb0, 0xf, 0x2, 0xc7, 0x8b,
-    0x2d, 0xab, 0xfa, 0x7c, 0xb, 0x1e, 0x2c, 0xb7,
-    0xff, 0xfe, 0xf0, 0x2f, 0xff, 0xf2, 0xd2, 0xd0,
-    0x3, 0xc0, 0x6a, 0xfa, 0x8b, 0x4b, 0x40, 0xf,
-    0x0, 0x7, 0x80, 0x2d, 0x2d, 0x0, 0x3c, 0x0,
-    0x1e, 0x0, 0xb4, 0xb4, 0x0, 0xf0, 0xff, 0xff,
-    0xfa, 0xd2, 0xff, 0xe3, 0xc7, 0xff, 0xff, 0xfb,
-    0x47, 0xff, 0x8f, 0x0, 0x7, 0x80, 0x2d, 0x0,
-    0x0, 0x3c, 0x0, 0x1e, 0x0, 0xb4, 0x0, 0x0,
-    0xf0, 0x0, 0x78, 0x2, 0xd0, 0x0, 0x6f, 0xc0,
-    0x1, 0xe0, 0xb, 0x40, 0x3, 0xfe, 0x0, 0x7,
-    0x80, 0x2d, 0x0, 0xa, 0x90,
-
-    /* U+8F38 "輸" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x38, 0x0, 0x0, 0x2f, 0x0, 0x0, 0x0, 0x38,
-    0x0, 0x0, 0x7f, 0xc0, 0x0, 0x0, 0x38, 0x0,
-    0x0, 0xf6, 0xe0, 0x0, 0x3f, 0xff, 0xf8, 0x3,
-    0xe0, 0xf8, 0x0, 0x3f, 0xff, 0xfc, 0xf, 0xc0,
-    0x3e, 0x0, 0x0, 0x38, 0x0, 0x3f, 0x0, 0xf,
-    0xc0, 0x0, 0x38, 0x1, 0xfd, 0x55, 0x5b, 0xf4,
-    0xa, 0xbe, 0xab, 0xe7, 0xff, 0xfc, 0xfd, 0x1f,
-    0xff, 0xf3, 0x41, 0x55, 0x54, 0x1c, 0x1d, 0x38,
-    0xb0, 0x0, 0x0, 0x0, 0x0, 0x1d, 0x38, 0xb0,
-    0x55, 0x50, 0x1, 0xd0, 0x1d, 0x38, 0xb1, 0xff,
-    0xf4, 0xf1, 0xd0, 0x1f, 0xff, 0xf1, 0xe5, 0xb4,
-    0xf1, 0xd0, 0x1e, 0xbe, 0xf1, 0xd0, 0x34, 0xf1,
-    0xd0, 0x1d, 0x38, 0xb1, 0xd0, 0x34, 0xf1, 0xd0,
-    0x1d, 0x38, 0xb1, 0xff, 0xf4, 0xf1, 0xd0, 0x1f,
-    0xff, 0xf1, 0xfa, 0xb4, 0xf1, 0xd0, 0x1f, 0xff,
-    0xf1, 0xd0, 0x34, 0xf1, 0xd0, 0x0, 0x38, 0x1,
-    0xd0, 0x34, 0xf1, 0xd0, 0x0, 0x38, 0x1, 0xfa,
-    0xf4, 0xf1, 0xd0, 0xbf, 0xff, 0xfd, 0xff, 0xf4,
-    0xf1, 0xd0, 0xff, 0xff, 0xfd, 0xd0, 0x34, 0x61,
-    0xd0, 0x0, 0x38, 0x1, 0xd0, 0x34, 0x1, 0xd0,
-    0x0, 0x38, 0x1, 0xd0, 0x34, 0x1, 0xd0, 0x0,
-    0x38, 0x1, 0xd0, 0xb4, 0x7, 0xd0, 0x0, 0x38,
-    0x1, 0xd3, 0xf0, 0x7f, 0xc0, 0x0, 0x38, 0x1,
-    0xd2, 0x90, 0x3e, 0x0,
+    0x0, 0x0, 0xb8, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xb8, 0x0, 0x0, 0x0, 0x2f, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xe0, 0x2f, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xf0, 0x0, 0x0, 0x0, 0xb8, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0xb8, 0x0, 0x0,
+    0x0, 0x2, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0,
+    0x2, 0xfa, 0xaa, 0xfe, 0xaa, 0xbe, 0x0, 0x2,
+    0xe0, 0x0, 0xb8, 0x0, 0x2e, 0x0, 0x2, 0xff,
+    0xff, 0xff, 0xff, 0xfe, 0x0, 0x2, 0xfa, 0xaa,
+    0xfe, 0xaa, 0xbe, 0x0, 0x2, 0xe0, 0x0, 0xb8,
+    0x0, 0x2e, 0x0, 0x2, 0xfa, 0xaa, 0xfe, 0xaa,
+    0xbe, 0x0, 0x1, 0xff, 0xff, 0xff, 0xff, 0xfe,
+    0x0, 0x0, 0x0, 0x0, 0xb8, 0x0, 0x0, 0x0,
+    0xaa, 0xaa, 0xaa, 0xfe, 0xaa, 0xaa, 0xa8, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x0,
+    0x0, 0xb8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x64, 0x0, 0x0, 0x0, 0x0, 0xaa, 0xaa, 0xaa,
+    0xaa, 0xa8, 0x0, 0x0, 0xff, 0xff, 0xff, 0xff,
+    0xfd, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0x3d,
+    0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0x3d, 0x0,
+    0x0, 0xf0, 0x0, 0x0, 0x0, 0x3d, 0x0, 0x0,
+    0xff, 0xff, 0xff, 0xff, 0xfd, 0x0, 0x0, 0xfa,
+    0xaa, 0xaa, 0xaa, 0xbd, 0x0, 0x0, 0xf0, 0x0,
+    0x0, 0x0, 0x3d, 0x0,
 
     /* U+8F66 "车" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -142216,6 +151170,63 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xb, 0x80, 0x3c, 0x0, 0x3, 0xc0, 0x0, 0xb,
     0x80, 0x3c, 0x0, 0x3, 0xc0,
 
+    /* U+8F72 "轲" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x3, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1,
+    0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb4,
+    0x0, 0xff, 0xff, 0xff, 0xfd, 0x0, 0x3d, 0x0,
+    0x3f, 0xff, 0xff, 0xff, 0x83, 0xff, 0xff, 0xc0,
+    0x0, 0x0, 0x7c, 0x0, 0xff, 0xff, 0xf0, 0x0,
+    0x0, 0xf, 0x0, 0x2, 0xd0, 0x0, 0x0, 0x0,
+    0x3, 0xc0, 0x0, 0xf2, 0x40, 0x0, 0x0, 0x0,
+    0xf0, 0x0, 0x3c, 0xf0, 0x3, 0xff, 0xf0, 0x3c,
+    0x0, 0x1e, 0x3c, 0x0, 0xff, 0xfc, 0xf, 0x0,
+    0xb, 0x4f, 0x0, 0x3c, 0xf, 0x3, 0xc0, 0x3,
+    0xc3, 0xc0, 0xf, 0x3, 0xc0, 0xf0, 0x1, 0xe0,
+    0xf0, 0x3, 0xc0, 0xf0, 0x3c, 0x0, 0xbf, 0xff,
+    0xf0, 0xf0, 0x3c, 0xf, 0x0, 0x2f, 0xff, 0xfc,
+    0x3c, 0xf, 0x3, 0xc0, 0x0, 0x3, 0xc0, 0xf,
+    0x3, 0xc0, 0xf0, 0x0, 0x0, 0xf0, 0x3, 0xc0,
+    0xf0, 0x3c, 0x0, 0x0, 0x3c, 0x0, 0xff, 0xfc,
+    0xf, 0x0, 0x0, 0xf, 0xbe, 0x3f, 0xff, 0x3,
+    0xc0, 0x1a, 0xff, 0xff, 0x45, 0x55, 0x40, 0xf0,
+    0xf, 0xff, 0xf4, 0x0, 0x0, 0x0, 0x3c, 0x1,
+    0x40, 0x3c, 0x0, 0x0, 0x0, 0xf, 0x0, 0x0,
+    0xf, 0x0, 0x0, 0x0, 0x7, 0xc0, 0x0, 0x3,
+    0xc0, 0x0, 0x0, 0x7, 0xf0, 0x0, 0x0, 0xf0,
+    0x0, 0x0, 0xff, 0xf4, 0x0, 0x0, 0x3c, 0x0,
+    0x0, 0x2f, 0xe4, 0x0, 0x0, 0xf, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
+    /* U+8F73 "轳" */
+    0x0, 0x5, 0x0, 0x0, 0x1, 0x40, 0x0, 0x0,
+    0x3, 0xd0, 0x0, 0x1, 0xf0, 0x0, 0x0, 0x0,
+    0xf0, 0x0, 0x0, 0x7c, 0x0, 0x0, 0x0, 0x3c,
+    0x0, 0x0, 0x1f, 0x0, 0x0, 0x0, 0x2e, 0x0,
+    0x0, 0x7, 0xff, 0xff, 0x43, 0xff, 0xff, 0xf4,
+    0x1, 0xff, 0xff, 0xd0, 0xff, 0xff, 0xfd, 0x0,
+    0x7c, 0x0, 0x0, 0x1, 0xf0, 0x0, 0x0, 0x1f,
+    0x0, 0x0, 0x0, 0xb9, 0x90, 0x0, 0x7, 0xc0,
+    0x0, 0x0, 0x3c, 0xb8, 0x3, 0xff, 0xff, 0xfc,
+    0x0, 0x1f, 0x2e, 0x0, 0xff, 0xff, 0xff, 0x0,
+    0xb, 0x8b, 0x80, 0x3d, 0x55, 0x57, 0xc0, 0x3,
+    0xc2, 0xe0, 0xf, 0x0, 0x0, 0xf0, 0x1, 0xff,
+    0xff, 0xe3, 0xc0, 0x0, 0x3c, 0x0, 0x7f, 0xff,
+    0xfc, 0xf0, 0x0, 0xf, 0x0, 0x0, 0xb, 0x80,
+    0x3c, 0x0, 0x3, 0xc0, 0x0, 0x2, 0xe0, 0xf,
+    0x40, 0x0, 0xf0, 0x0, 0x0, 0xb8, 0x3, 0xff,
+    0xff, 0xfc, 0x0, 0x0, 0x2e, 0x0, 0xff, 0xff,
+    0xff, 0x0, 0x0, 0xb, 0xff, 0x3c, 0x0, 0x0,
+    0x0, 0x1a, 0xff, 0xff, 0xdf, 0x0, 0x0, 0x0,
+    0xf, 0xff, 0xfd, 0x7, 0xc0, 0x0, 0x0, 0x2,
+    0xa4, 0x2e, 0x2, 0xe0, 0x0, 0x0, 0x0, 0x0,
+    0xb, 0x80, 0xf4, 0x0, 0x0, 0x0, 0x0, 0x2,
+    0xe0, 0x7c, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb8,
+    0x3d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2e, 0x1f,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0xb, 0x8b, 0x40,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+8F74 "轴" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x3c, 0x0, 0x0, 0xe, 0x0, 0x0, 0x1, 0xe0,
@@ -142271,6 +151282,61 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x2c, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+8F76 "轶" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0,
+    0x3, 0xc0, 0x0, 0x0, 0xf4, 0x0, 0x0, 0x0,
+    0xf0, 0x0, 0x10, 0x3d, 0x0, 0x0, 0x0, 0x78,
+    0x0, 0x1e, 0xf, 0x40, 0x0, 0x0, 0x2e, 0x0,
+    0x7, 0x83, 0xd0, 0x0, 0x3, 0xff, 0xff, 0xf2,
+    0xd0, 0xf4, 0x0, 0x0, 0xff, 0xff, 0xf8, 0xff,
+    0xff, 0xff, 0xc0, 0x1, 0xe0, 0x0, 0x3f, 0xff,
+    0xff, 0xf0, 0x0, 0xb5, 0x40, 0x1f, 0x57, 0xd5,
+    0x50, 0x0, 0x3c, 0xb4, 0xb, 0x80, 0xf0, 0x0,
+    0x0, 0x1f, 0x2d, 0x3, 0xc0, 0x3c, 0x0, 0x0,
+    0xb, 0x4b, 0x40, 0xf0, 0xf, 0x0, 0x0, 0x3,
+    0xc2, 0xd0, 0x14, 0x3, 0xc0, 0x0, 0x1, 0xf5,
+    0xf9, 0x40, 0x0, 0xf0, 0x0, 0x0, 0x7f, 0xff,
+    0xf7, 0xff, 0xff, 0xff, 0xf0, 0x1f, 0xff, 0xfd,
+    0xff, 0xff, 0xff, 0xfc, 0x0, 0x2, 0xd0, 0x0,
+    0x7, 0xd0, 0x0, 0x0, 0x0, 0xb4, 0x0, 0x2,
+    0xf8, 0x0, 0x0, 0x0, 0x2d, 0x0, 0x0, 0xff,
+    0x0, 0x0, 0x0, 0xb, 0x5a, 0x0, 0x7e, 0xe0,
+    0x0, 0x1, 0x6f, 0xff, 0xc0, 0x3d, 0x3c, 0x0,
+    0xf, 0xff, 0xfe, 0x90, 0x2f, 0xb, 0xc0, 0x3,
+    0xf9, 0x7d, 0x0, 0x2f, 0x40, 0xf8, 0x0, 0x0,
+    0xb, 0x40, 0x2f, 0x80, 0x1f, 0x80, 0x0, 0x2,
+    0xd0, 0x2f, 0x80, 0x1, 0xf8, 0x0, 0x0, 0xb4,
+    0x3f, 0x80, 0x0, 0x2f, 0xc0, 0x0, 0x2d, 0x3f,
+    0x40, 0x0, 0x1, 0xf4, 0x0, 0xb, 0x43, 0x0,
+    0x0, 0x0, 0x4,
+
+    /* U+8F77 "轷" */
+    0x0, 0xe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x7, 0x80, 0x0, 0x0, 0x1, 0xaf, 0x0, 0x2,
+    0xd0, 0x1, 0xab, 0xff, 0xff, 0xc0, 0x0, 0xf4,
+    0x0, 0xff, 0xff, 0xe9, 0x40, 0x1f, 0xff, 0xff,
+    0x65, 0x43, 0xc0, 0x0, 0x7, 0xff, 0xff, 0xc0,
+    0x0, 0xf0, 0x0, 0x0, 0xb, 0x40, 0x2, 0xc0,
+    0x3c, 0x3, 0xc0, 0x3, 0xca, 0x0, 0xb8, 0xf,
+    0x1, 0xf0, 0x0, 0xf3, 0xc0, 0xf, 0x3, 0xc0,
+    0xf4, 0x0, 0xb8, 0xf0, 0x2, 0xe0, 0xf0, 0x7c,
+    0x0, 0x3d, 0x3c, 0x0, 0x3c, 0x3c, 0x3e, 0x0,
+    0xf, 0xf, 0x0, 0xf, 0x4f, 0x1f, 0x0, 0xb,
+    0x87, 0xc0, 0x1, 0xd3, 0xc7, 0x80, 0x2, 0xff,
+    0xff, 0xc0, 0x0, 0xf0, 0x0, 0x0, 0xbf, 0xff,
+    0xf1, 0x55, 0x7d, 0x55, 0x50, 0x0, 0xf, 0x1,
+    0xff, 0xff, 0xff, 0xfd, 0x0, 0x3, 0xc0, 0x7f,
+    0xff, 0xff, 0xff, 0x40, 0x0, 0xf0, 0x0, 0x0,
+    0xf0, 0x0, 0x0, 0x0, 0x3c, 0x14, 0x0, 0x3c,
+    0x0, 0x0, 0x1, 0x6f, 0xfe, 0x0, 0xf, 0x0,
+    0x0, 0x3f, 0xff, 0xfa, 0x40, 0x3, 0xc0, 0x0,
+    0xf, 0xa5, 0xf0, 0x0, 0x0, 0xf0, 0x0, 0x0,
+    0x0, 0x3c, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x0,
+    0xf, 0x0, 0x0, 0x2f, 0x0, 0x0, 0x0, 0x3,
+    0xc0, 0xb, 0xff, 0x80, 0x0, 0x0, 0x0, 0xf0,
+    0x1, 0xff, 0x80, 0x0, 0x0, 0x0, 0x3c, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+8F78 "轸" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x3, 0xc0, 0x0, 0x2, 0xf0, 0x0, 0x0, 0x1,
@@ -142300,6 +151366,59 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+8F79 "轹" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x3c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c,
+    0x0, 0x0, 0x1, 0x6b, 0xd0, 0x0, 0x78, 0x0,
+    0x1b, 0xff, 0xff, 0xe0, 0x0, 0xb4, 0x0, 0x3f,
+    0xff, 0xe9, 0x0, 0x3f, 0xff, 0xfe, 0x3d, 0x40,
+    0x0, 0x0, 0x3f, 0xff, 0xfe, 0x3c, 0x5, 0x0,
+    0x0, 0x1, 0xe0, 0x0, 0x3c, 0xf, 0x40, 0x0,
+    0x2, 0xd1, 0x0, 0x3c, 0xf, 0x40, 0x0, 0x3,
+    0xcf, 0x0, 0x3c, 0xf, 0x40, 0x0, 0x7, 0x8f,
+    0x0, 0x38, 0xf, 0x40, 0x0, 0xb, 0x4f, 0x0,
+    0x78, 0xf, 0x40, 0x0, 0xf, 0xf, 0x0, 0x78,
+    0xf, 0x40, 0x0, 0x1f, 0x5f, 0x54, 0x7f, 0xff,
+    0xff, 0xf8, 0x1f, 0xff, 0xfd, 0xbf, 0xff, 0xff,
+    0xf8, 0x1f, 0xff, 0xfc, 0x0, 0xf, 0x40, 0x0,
+    0x0, 0xf, 0x0, 0x0, 0xf, 0x40, 0x0, 0x0,
+    0xf, 0x0, 0x9, 0xf, 0x4a, 0x0, 0x0, 0xf,
+    0x0, 0xf, 0xf, 0x4f, 0x0, 0x0, 0xf, 0xbd,
+    0x2e, 0xf, 0x47, 0xc0, 0x5a, 0xff, 0xfd, 0x3c,
+    0xf, 0x43, 0xd0, 0xff, 0xff, 0x90, 0x78, 0xf,
+    0x41, 0xf0, 0xb9, 0x4f, 0x0, 0xf0, 0xf, 0x40,
+    0xf4, 0x0, 0xf, 0x2, 0xe0, 0xf, 0x40, 0x7c,
+    0x0, 0xf, 0x3, 0xc0, 0xf, 0x40, 0x3d, 0x0,
+    0xf, 0x7, 0x82, 0xaf, 0x0, 0x1d, 0x0, 0xf,
+    0x0, 0x2, 0xfe, 0x0, 0x0, 0x0, 0xf, 0x0,
+    0x1, 0x94, 0x0, 0x0,
+
+    /* U+8F7A "轺" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x3c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0x80, 0xf,
+    0xff, 0xff, 0xfd, 0x0, 0x2d, 0x0, 0x2f, 0xff,
+    0xff, 0xf4, 0x3f, 0xff, 0xff, 0x1, 0xe0, 0x2,
+    0xd0, 0xff, 0xff, 0xfc, 0xb, 0x80, 0xf, 0x40,
+    0x2e, 0x0, 0x0, 0x3d, 0x0, 0x3d, 0x0, 0xf2,
+    0x80, 0x0, 0xf0, 0x0, 0xf0, 0x3, 0xcf, 0x40,
+    0xb, 0x80, 0x3, 0xc0, 0x1e, 0x3d, 0x0, 0x3d,
+    0x0, 0x1f, 0x0, 0xf4, 0xf4, 0x3, 0xf0, 0x2b,
+    0xfc, 0x3, 0xc3, 0xd0, 0x2f, 0x0, 0xbf, 0xc0,
+    0x2f, 0x5f, 0x95, 0xf4, 0x0, 0x40, 0x0, 0xbf,
+    0xff, 0xf4, 0x40, 0x0, 0x0, 0x1, 0xaa, 0xfe,
+    0x90, 0x0, 0x0, 0x0, 0x0, 0x3, 0xd0, 0xf,
+    0xff, 0xff, 0xf0, 0x0, 0xf, 0x40, 0x3f, 0xff,
+    0xff, 0xc0, 0x0, 0x3d, 0x0, 0xf0, 0x0, 0xf,
+    0x0, 0x0, 0xff, 0xf3, 0xc0, 0x0, 0x3c, 0x1b,
+    0xff, 0xff, 0x8f, 0x0, 0x0, 0xf0, 0xff, 0xff,
+    0x80, 0x3c, 0x0, 0x3, 0xc1, 0x40, 0x3d, 0x0,
+    0xf0, 0x0, 0xf, 0x0, 0x0, 0xf4, 0x3, 0xc0,
+    0x0, 0x3c, 0x0, 0x3, 0xd0, 0xf, 0xff, 0xff,
+    0xf0, 0x0, 0xf, 0x40, 0x3f, 0xff, 0xff, 0xc0,
+    0x0, 0x3d, 0x0, 0xf0, 0x0, 0xf, 0x0, 0x0,
+    0xf4, 0x3, 0xc0, 0x0, 0x3c,
+
     /* U+8F7B "轻" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x3c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c,
@@ -142355,6 +151474,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0xf, 0x40, 0x0, 0xb, 0x40, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+8F7D "载" */
+    0x0, 0x0, 0x10, 0x0, 0x28, 0x0, 0x0, 0x0,
+    0x0, 0x1e, 0x0, 0xf, 0x40, 0x0, 0x0, 0x0,
+    0x7, 0x80, 0x3, 0xd3, 0xc0, 0x0, 0x0, 0x1,
+    0xf0, 0x0, 0xf4, 0xfc, 0x0, 0x3, 0xff, 0xff,
+    0xff, 0x3d, 0xf, 0xc0, 0x0, 0xaa, 0xbf, 0xaa,
+    0x8f, 0x40, 0xfc, 0x0, 0x0, 0x7, 0x80, 0x2,
+    0xd0, 0xe, 0x0, 0x0, 0x1, 0xe0, 0x0, 0xb8,
+    0x0, 0x0, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0x7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xc0, 0x0, 0x14, 0x0, 0x2, 0xf0, 0x0, 0x0,
+    0x0, 0xf, 0x40, 0x0, 0x7c, 0x1, 0x0, 0x0,
+    0x7, 0xc0, 0x0, 0x1f, 0x0, 0xf0, 0x2, 0xff,
+    0xff, 0xff, 0xd3, 0xc0, 0x7c, 0x0, 0xbf, 0xff,
+    0xff, 0xf4, 0xf0, 0x3d, 0x0, 0x0, 0xf8, 0x0,
+    0x0, 0x3d, 0x1f, 0x0, 0x0, 0x7c, 0x3d, 0x0,
+    0xb, 0x4f, 0x40, 0x0, 0x3d, 0xf, 0x40, 0x2,
+    0xeb, 0xc0, 0x0, 0x1f, 0xff, 0xff, 0xf0, 0x7f,
+    0xd0, 0x0, 0x7, 0xff, 0xff, 0xfc, 0xf, 0xe0,
+    0x0, 0x0, 0x0, 0x3d, 0x0, 0x3, 0xf0, 0x10,
+    0x0, 0x0, 0xf, 0x96, 0x82, 0xf8, 0xb, 0x42,
+    0xbf, 0xff, 0xff, 0xf2, 0xff, 0x3, 0xd0, 0xff,
+    0xff, 0xf9, 0x52, 0xf7, 0xd0, 0xf0, 0x0, 0x0,
+    0x3d, 0x2, 0xf4, 0x7c, 0x3c, 0x0, 0x0, 0xf,
+    0x42, 0xf8, 0xf, 0xfe, 0x0, 0x0, 0x3, 0xd0,
+    0x74, 0x1, 0xff, 0x0, 0x0, 0x0, 0xf4, 0x0,
+    0x0, 0x1f, 0x40,
+
     /* U+8F7E "轾" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0xf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1e,
@@ -142579,6 +151726,60 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xb, 0x40, 0x0, 0x3f, 0xe0, 0x0, 0x2c, 0xb,
     0x40, 0x0, 0x2f, 0x40,
 
+    /* U+8F87 "辇" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x7c, 0x0, 0x0, 0xf4, 0x0, 0x0, 0x0,
+    0x1f, 0x0, 0x0, 0x3d, 0x0, 0x0, 0x1f, 0xff,
+    0xff, 0xcb, 0xff, 0xff, 0xf0, 0x2, 0xab, 0xfa,
+    0xa1, 0xab, 0xfa, 0xa8, 0x0, 0x0, 0x7c, 0x0,
+    0x0, 0xf4, 0x0, 0x0, 0x0, 0x1f, 0x0, 0x0,
+    0x3d, 0x0, 0x0, 0x3f, 0xff, 0xff, 0xcf, 0xff,
+    0xff, 0xf4, 0xa, 0xab, 0xfa, 0xa2, 0xaf, 0xfa,
+    0xa8, 0x0, 0x2, 0xfe, 0x0, 0x3, 0xfe, 0x0,
+    0x0, 0x2, 0xf6, 0xf4, 0x3, 0xf3, 0xf0, 0x0,
+    0x3, 0xf4, 0x1f, 0xc7, 0xf0, 0x3f, 0x80, 0xb,
+    0xf0, 0x5, 0xa3, 0xe0, 0x2, 0xfe, 0xf, 0xd0,
+    0x3, 0xc0, 0x0, 0x0, 0xb, 0xc0, 0x4a, 0xab,
+    0xfa, 0xaa, 0xaa, 0xa9, 0x10, 0x7, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0x80, 0x0, 0x1, 0xf4, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0xf8, 0x3, 0xe0,
+    0x0, 0x0, 0x0, 0x0, 0xfc, 0x0, 0xf8, 0x0,
+    0x0, 0x0, 0x0, 0x7f, 0xff, 0xff, 0xff, 0xfd,
+    0x0, 0x0, 0x1a, 0xaa, 0xaf, 0xea, 0xaa, 0x40,
+    0x0, 0x0, 0x0, 0x3, 0xe0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0xf8, 0x0, 0x0, 0x0, 0x3f,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xa, 0xaa,
+    0xaa, 0xaf, 0xea, 0xaa, 0xa8, 0x0, 0x0, 0x0,
+    0x3, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xf8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3e,
+    0x0, 0x0, 0x0,
+
+    /* U+8F88 "辈" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x3c, 0x7, 0x80, 0x0, 0x0, 0x0, 0x0,
+    0xf0, 0x1e, 0x0, 0x0, 0x3, 0xff, 0xff, 0xc0,
+    0x7f, 0xff, 0xf4, 0xa, 0xaa, 0xbf, 0x1, 0xfa,
+    0xaa, 0x90, 0x0, 0x0, 0x3c, 0x7, 0x80, 0x0,
+    0x0, 0x15, 0x55, 0xf0, 0x1f, 0x55, 0x54, 0x2,
+    0xff, 0xff, 0xc0, 0x7f, 0xff, 0xf0, 0x1, 0x55,
+    0x5f, 0x1, 0xf5, 0x55, 0x40, 0x0, 0x0, 0x3c,
+    0x7, 0x80, 0x0, 0x1, 0xaa, 0xab, 0xf0, 0x1f,
+    0xaa, 0xaa, 0x7, 0xff, 0xff, 0xc0, 0x7f, 0xff,
+    0xfc, 0x0, 0x0, 0x9, 0x1, 0xe0, 0x0, 0x0,
+    0x0, 0x0, 0xf0, 0x1, 0x40, 0x0, 0x0, 0xaa,
+    0xaf, 0xea, 0xaa, 0xaa, 0xa9, 0x3, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xf8, 0x0, 0xb, 0xd0, 0x14,
+    0x0, 0x0, 0x0, 0x0, 0x7d, 0x0, 0xb8, 0x0,
+    0x0, 0x0, 0x3, 0xe0, 0x2, 0xe0, 0x0, 0x0,
+    0x0, 0x2f, 0xff, 0xff, 0xff, 0xff, 0xd0, 0x0,
+    0xbf, 0xff, 0xff, 0xff, 0xff, 0x40, 0x0, 0x0,
+    0x0, 0xb8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2,
+    0xe0, 0x0, 0x0, 0xa, 0xaa, 0xaa, 0xaf, 0xea,
+    0xaa, 0xaa, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xfc, 0x0, 0x0, 0x0, 0xb8, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x2, 0xe0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xb, 0x80, 0x0, 0x0,
+
     /* U+8F89 "辉" */
     0x0, 0x1d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x2d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2d,
@@ -143286,33 +152487,31 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0xb, 0xf9, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0,
 
-    /* U+8FB2 "農" */
+    /* U+8FB6 "辶" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7,
+    0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0xe0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0xf4, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0xbd, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x3f, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0xf, 0x0, 0xf0, 0x0, 0x0, 0x0, 0x0,
-    0xf, 0x0, 0xf0, 0x0, 0x0, 0x0, 0xaa, 0xaf,
-    0xaa, 0xfa, 0xaa, 0x40, 0x0, 0xff, 0xff, 0xff,
-    0xff, 0xff, 0xc0, 0x0, 0xf0, 0xf, 0x0, 0xf0,
-    0x3, 0xc0, 0x0, 0xfa, 0xaf, 0xaa, 0xfa, 0xab,
-    0xc0, 0x0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
-    0x0, 0xf0, 0xf, 0x0, 0xf0, 0x3, 0xc0, 0x0,
-    0xfa, 0xaf, 0xaa, 0xfa, 0xab, 0xc0, 0x0, 0xff,
-    0xff, 0xff, 0xff, 0xff, 0xc0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x1, 0xff, 0xff, 0xff, 0xff,
-    0xff, 0xf0, 0x1, 0xfa, 0xaa, 0xaa, 0xaa, 0xaa,
-    0x90, 0x1, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x1, 0xe3, 0xff, 0xff, 0xff, 0xff, 0x80, 0x1,
-    0xe2, 0xaa, 0xaa, 0xaa, 0xaa, 0x40, 0x1, 0xe0,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xfa, 0xaa,
-    0xaa, 0xaa, 0xaa, 0xa4, 0x2, 0xff, 0xff, 0xff,
-    0xff, 0xff, 0xf8, 0x3, 0xd0, 0xf0, 0x3e, 0x0,
-    0xa, 0x0, 0x3, 0xc0, 0xf0, 0xf, 0x80, 0xbf,
-    0x0, 0x7, 0xc0, 0xf0, 0x3, 0xff, 0xf8, 0x0,
-    0xf, 0x40, 0xf0, 0x1, 0x7f, 0xd0, 0x0, 0x2f,
-    0x0, 0xf6, 0xff, 0xb, 0xff, 0xa4, 0x7d, 0x2,
-    0xff, 0xf9, 0x0, 0x6f, 0xfc, 0x78, 0x1, 0xe5,
-    0x0, 0x0, 0x0, 0x68, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f, 0xfc,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x2f, 0xfc, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x7c, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x7c, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x7c, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x7c, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x7c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x7c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7c,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7c, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0xbc, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x2, 0xff, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xb, 0xef, 0xd0, 0x0, 0x0, 0x0,
+    0x0, 0x2f, 0x87, 0xfe, 0x50, 0x0, 0x0, 0x14,
+    0x7e, 0x0, 0xbf, 0xff, 0xff, 0xff, 0xfd, 0x38,
+    0x0, 0x6, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0,
 
     /* U+8FB9 "边" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -143422,6 +152621,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x6, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+8FC2 "迂" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f,
+    0x0, 0x3f, 0xff, 0xff, 0xff, 0x40, 0x7, 0xe0,
+    0xf, 0xff, 0xff, 0xff, 0xd0, 0x0, 0x7d, 0x0,
+    0x0, 0xf, 0x40, 0x0, 0x0, 0xb, 0xc0, 0x0,
+    0x3, 0xd0, 0x0, 0x0, 0x0, 0xf0, 0x0, 0x0,
+    0xf4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3d,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0x40,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xd0, 0x0,
+    0x0, 0xff, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xd0,
+    0x3f, 0xf0, 0x3f, 0xff, 0xff, 0xff, 0xf8, 0x0,
+    0x3c, 0x0, 0x0, 0xf, 0x40, 0x0, 0x0, 0xf,
+    0x0, 0x0, 0x3, 0xd0, 0x0, 0x0, 0x3, 0xc0,
+    0x0, 0x0, 0xf4, 0x0, 0x0, 0x0, 0xf0, 0x0,
+    0x0, 0x3d, 0x0, 0x0, 0x0, 0x3c, 0x0, 0x0,
+    0xf, 0x40, 0x0, 0x0, 0xf, 0x0, 0x0, 0x3,
+    0xd0, 0x0, 0x0, 0x3, 0xc0, 0x0, 0x0, 0xf4,
+    0x0, 0x0, 0x0, 0xf0, 0x0, 0x1a, 0xfc, 0x0,
+    0x0, 0x0, 0x3d, 0x0, 0xb, 0xfd, 0x0, 0x0,
+    0x0, 0x3f, 0xc0, 0x1, 0xa4, 0x0, 0x0, 0x0,
+    0x3f, 0xfd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f,
+    0xf, 0xf9, 0x40, 0x0, 0x0, 0x0, 0x3f, 0x0,
+    0x7f, 0xff, 0xff, 0xff, 0xff, 0x47, 0x40, 0x1,
+    0xbf, 0xff, 0xff, 0xff, 0xc0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+8FC4 "迄" */
     0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0,
     0x20, 0x0, 0x3, 0xd0, 0x0, 0x0, 0x0, 0x3e,
@@ -143661,6 +152887,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xbf, 0xff, 0xff, 0xff, 0xc0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+8FD5 "迕" */
+    0x0, 0x0, 0x0, 0x9, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x7, 0xc0, 0x0, 0x0, 0x0, 0x3c,
+    0x0, 0x2, 0xe0, 0x0, 0x0, 0x0, 0xf, 0xc0,
+    0x0, 0xf4, 0x0, 0x0, 0x0, 0x0, 0xf8, 0x0,
+    0x7f, 0xff, 0xff, 0xf4, 0x0, 0x1f, 0x0, 0x3f,
+    0xff, 0xff, 0xfd, 0x0, 0x2, 0xf0, 0x1f, 0x56,
+    0xf5, 0x55, 0x0, 0x0, 0x38, 0xf, 0x80, 0x7c,
+    0x0, 0x0, 0x0, 0x4, 0x7, 0xc0, 0x1f, 0x0,
+    0x0, 0x0, 0x0, 0x3, 0xe0, 0x7, 0xc0, 0x0,
+    0x0, 0x0, 0x0, 0x70, 0x1, 0xf0, 0x0, 0x0,
+    0x3f, 0xf0, 0x0, 0x0, 0x7c, 0x0, 0x0, 0xf,
+    0xfd, 0x0, 0x0, 0x1f, 0x0, 0x0, 0x1, 0x5f,
+    0x45, 0x55, 0x5b, 0xd5, 0x55, 0x0, 0x3, 0xd3,
+    0xff, 0xff, 0xff, 0xff, 0xd0, 0x0, 0xf4, 0xff,
+    0xff, 0xff, 0xff, 0xf4, 0x0, 0x3d, 0x0, 0x0,
+    0x1f, 0x0, 0x0, 0x0, 0xf, 0x40, 0x0, 0x7,
+    0xc0, 0x0, 0x0, 0x3, 0xd0, 0x0, 0x1, 0xf0,
+    0x0, 0x0, 0x0, 0xf4, 0x0, 0x0, 0x7c, 0x0,
+    0x0, 0x0, 0x3d, 0x0, 0x0, 0x1f, 0x0, 0x0,
+    0x0, 0xf, 0x40, 0x0, 0x7, 0xc0, 0x0, 0x0,
+    0xf, 0xf4, 0x0, 0x1, 0xf0, 0x0, 0x0, 0xf,
+    0xaf, 0x80, 0x0, 0x7c, 0x0, 0x0, 0xf, 0xc2,
+    0xff, 0x90, 0x0, 0x0, 0x1, 0xf, 0xc0, 0x1f,
+    0xff, 0xff, 0xff, 0xff, 0xc1, 0xc0, 0x0, 0x1b,
+    0xff, 0xff, 0xff, 0xe0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+8FD8 "还" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7,
     0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xf0,
@@ -144084,6 +153338,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x6, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+8FEE "迮" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x1d, 0x0, 0x0, 0x0, 0x3, 0x40,
+    0x0, 0x3e, 0x0, 0x0, 0x0, 0xb, 0xc0, 0x0,
+    0x3c, 0x0, 0x0, 0x0, 0x2, 0xf0, 0x0, 0xbc,
+    0x0, 0x0, 0x0, 0x0, 0xfc, 0x1, 0xff, 0xff,
+    0xff, 0xfc, 0x0, 0x3f, 0x3, 0xff, 0xff, 0xff,
+    0xfc, 0x0, 0x1e, 0xb, 0xc3, 0xd0, 0x0, 0x0,
+    0x0, 0x4, 0xf, 0x43, 0xd0, 0x0, 0x0, 0x0,
+    0x0, 0x3f, 0x3, 0xd0, 0x0, 0x0, 0x0, 0x0,
+    0xbc, 0x3, 0xd0, 0x0, 0x0, 0xf, 0xfd, 0x74,
+    0x3, 0xff, 0xff, 0xc0, 0xf, 0xfd, 0x0, 0x3,
+    0xff, 0xff, 0xc0, 0x0, 0x3d, 0x0, 0x3, 0xd0,
+    0x0, 0x0, 0x0, 0x3d, 0x0, 0x3, 0xd0, 0x0,
+    0x0, 0x0, 0x3d, 0x0, 0x3, 0xd0, 0x0, 0x0,
+    0x0, 0x3d, 0x0, 0x3, 0xd0, 0x0, 0x0, 0x0,
+    0x3d, 0x0, 0x3, 0xff, 0xff, 0xf0, 0x0, 0x3d,
+    0x0, 0x3, 0xff, 0xff, 0xf0, 0x0, 0x3d, 0x0,
+    0x3, 0xd0, 0x0, 0x0, 0x0, 0x3d, 0x0, 0x3,
+    0xd0, 0x0, 0x0, 0x0, 0x7d, 0x0, 0x3, 0xd0,
+    0x0, 0x0, 0x0, 0xff, 0x40, 0x3, 0xd0, 0x0,
+    0x0, 0x3, 0xff, 0xe0, 0x3, 0xd0, 0x0, 0x0,
+    0xf, 0xc2, 0xfe, 0x50, 0x0, 0x0, 0x0, 0x3f,
+    0x0, 0x7f, 0xff, 0xff, 0xff, 0xfe, 0x1d, 0x0,
+    0x6, 0xff, 0xff, 0xff, 0xfd, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+8FF0 "述" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x3d, 0x4, 0x0, 0x0, 0x28,
@@ -144112,6 +153393,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xff, 0xff, 0xff, 0xe0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+8FF3 "迳" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xc0, 0x0, 0x55, 0x55, 0x55, 0x40, 0x0, 0xbc,
+    0x0, 0xbf, 0xff, 0xff, 0xf4, 0x0, 0xb, 0xc0,
+    0x2f, 0xff, 0xff, 0xfd, 0x0, 0x0, 0xfc, 0x0,
+    0x0, 0x0, 0xfd, 0x0, 0x0, 0xf, 0x80, 0x0,
+    0x1, 0xfc, 0x0, 0x0, 0x1, 0xe0, 0x0, 0x7,
+    0xf8, 0x0, 0x0, 0x0, 0x10, 0x0, 0x1f, 0xff,
+    0x80, 0x0, 0x0, 0x0, 0x0, 0x7f, 0xd2, 0xff,
+    0x40, 0x0, 0x0, 0x6, 0xff, 0x40, 0x7, 0xfe,
+    0x0, 0xff, 0xc7, 0xf9, 0x0, 0x0, 0xb, 0xd0,
+    0x3f, 0xf0, 0xd0, 0x0, 0x0, 0x0, 0x10, 0x0,
+    0x3c, 0x2, 0xaa, 0xaa, 0xaa, 0x80, 0x0, 0xf,
+    0x0, 0xff, 0xff, 0xff, 0xf0, 0x0, 0x3, 0xc0,
+    0x0, 0x7, 0xd0, 0x0, 0x0, 0x0, 0xf0, 0x0,
+    0x0, 0xf0, 0x0, 0x0, 0x0, 0x3c, 0x0, 0x0,
+    0x3c, 0x0, 0x0, 0x0, 0xf, 0x0, 0x0, 0xf,
+    0x0, 0x0, 0x0, 0x3, 0xc0, 0x0, 0x3, 0xc0,
+    0x0, 0x0, 0x0, 0xf0, 0xff, 0xff, 0xff, 0xff,
+    0xf0, 0x0, 0x3d, 0x3f, 0xff, 0xff, 0xff, 0xfc,
+    0x0, 0x3f, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x3f, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f,
+    0xb, 0xf9, 0x40, 0x0, 0x0, 0x0, 0x3f, 0x0,
+    0x7f, 0xff, 0xff, 0xff, 0xff, 0x7, 0x40, 0x1,
+    0xbf, 0xff, 0xff, 0xff, 0xc0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+8FF7 "迷" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x1f, 0x0, 0x0, 0x0, 0x3c,
@@ -144306,6 +153614,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xaf, 0xff, 0xff, 0xff, 0xc0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+9003 "逃" */
+    0x0, 0x0, 0x0, 0xf, 0x3, 0x80, 0x0, 0x0,
+    0xf0, 0x0, 0x3, 0xc0, 0xf0, 0x0, 0x0, 0x3f,
+    0x0, 0x0, 0xf0, 0x3c, 0x0, 0x0, 0x3, 0xd0,
+    0xf0, 0x3c, 0xf, 0x1, 0xc0, 0x0, 0xbc, 0x3d,
+    0xf, 0x3, 0xc0, 0xf4, 0x0, 0xf, 0x87, 0xc3,
+    0xc0, 0xf0, 0xf8, 0x0, 0x1, 0xf0, 0xb8, 0xf0,
+    0x3c, 0xbc, 0x0, 0x0, 0x20, 0xf, 0x7c, 0xf,
+    0x7c, 0x0, 0x0, 0x0, 0x2, 0xef, 0x3, 0xfd,
+    0x0, 0x0, 0x0, 0x0, 0x13, 0xc0, 0xf1, 0x0,
+    0x1, 0xff, 0xc0, 0x1, 0xf0, 0x3f, 0x40, 0x0,
+    0x7f, 0xf0, 0x2, 0xfc, 0xf, 0xf8, 0x0, 0x0,
+    0x3c, 0x7, 0xff, 0x3, 0xdf, 0xc0, 0x0, 0xf,
+    0x1f, 0xf7, 0xc0, 0xf0, 0xfd, 0x0, 0x3, 0xc7,
+    0xd1, 0xf0, 0x3c, 0xb, 0xc0, 0x0, 0xf0, 0x80,
+    0x78, 0xf, 0x0, 0x40, 0x0, 0x3c, 0x0, 0x2d,
+    0x3, 0xc0, 0x0, 0x0, 0xf, 0x0, 0xf, 0x0,
+    0xf0, 0x3, 0x40, 0x3, 0xc0, 0xf, 0x80, 0x3c,
+    0x1, 0xe0, 0x0, 0xf0, 0xb, 0xc0, 0xf, 0x40,
+    0xb4, 0x0, 0x3c, 0xf, 0xd0, 0x3, 0xff, 0xfc,
+    0x0, 0x3f, 0xc3, 0xd0, 0x0, 0x2f, 0xf9, 0x0,
+    0x3f, 0xfd, 0x50, 0x0, 0x0, 0x0, 0x0, 0x3f,
+    0xf, 0xf9, 0x0, 0x0, 0x0, 0x0, 0x3f, 0x0,
+    0xbf, 0xff, 0xff, 0xff, 0xff, 0x47, 0x0, 0x1,
+    0xbf, 0xff, 0xff, 0xff, 0xc0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+9004 "逄" */
     0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0x24,
@@ -144632,6 +153967,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xaf, 0xff, 0xff, 0xff, 0xc0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+9016 "逖" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0xf0, 0x0, 0x7, 0x0,
+    0x3c, 0x3, 0x0, 0xf0, 0x0, 0xb, 0xc0, 0x2e,
+    0xf, 0x40, 0xf0, 0x0, 0x3, 0xd0, 0xf, 0x7e,
+    0x0, 0xf0, 0x0, 0x1, 0xf0, 0x7, 0xf8, 0x80,
+    0xf0, 0x28, 0x0, 0xf8, 0x7, 0xe1, 0xe0, 0xf0,
+    0x3c, 0x0, 0x7c, 0x2f, 0xe0, 0xf0, 0xf0, 0x78,
+    0x0, 0x20, 0xfd, 0xf0, 0xb4, 0xf0, 0xf0, 0x0,
+    0x0, 0xf0, 0xb4, 0x3c, 0xf1, 0xe0, 0x0, 0x0,
+    0x40, 0x78, 0x2c, 0xf3, 0xc0, 0x1f, 0xfc, 0x0,
+    0xfc, 0x1d, 0xf7, 0x80, 0x1f, 0xfc, 0x2, 0xfc,
+    0x4, 0xf0, 0x0, 0x0, 0x7c, 0x7, 0xfc, 0x0,
+    0xf0, 0x0, 0x0, 0x3c, 0x1f, 0x2c, 0x1, 0xf4,
+    0x0, 0x0, 0x3c, 0x7c, 0x2c, 0x2, 0xfc, 0x0,
+    0x0, 0x3d, 0xf0, 0x2d, 0x3, 0xff, 0x0, 0x0,
+    0x3c, 0x80, 0x2d, 0xb, 0xcf, 0x40, 0x0, 0x3c,
+    0x0, 0x2d, 0xf, 0x47, 0xc0, 0x0, 0x3c, 0x0,
+    0x2c, 0x3f, 0x2, 0xe0, 0x0, 0x3c, 0x0, 0x7c,
+    0xbc, 0x0, 0xf4, 0x0, 0x7c, 0x1f, 0xfa, 0xf4,
+    0x0, 0xbc, 0x1, 0xff, 0xf, 0xe2, 0xd0, 0x0,
+    0x30, 0x7, 0xef, 0xd0, 0x0, 0x0, 0x0, 0x0,
+    0x1f, 0x83, 0xfe, 0x40, 0x0, 0x0, 0x0, 0x3f,
+    0x0, 0xbf, 0xff, 0xff, 0xff, 0xfd, 0x1c, 0x0,
+    0x6, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+9017 "逗" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f,
@@ -144686,6 +154048,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xbf, 0xff, 0xff, 0xff, 0xd0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+901B "逛" */
+    0x4, 0x0, 0x70, 0x4, 0x0, 0x0, 0x0, 0x2d,
+    0x0, 0xf8, 0x1d, 0x0, 0x0, 0x0, 0x2f, 0x0,
+    0x3d, 0x7d, 0xff, 0xff, 0xf0, 0xf, 0xc0, 0x2f,
+    0xf4, 0xff, 0xff, 0xf0, 0x3, 0xe0, 0xf, 0xd0,
+    0x1, 0xe0, 0x0, 0x1, 0xf4, 0x2f, 0xc0, 0x1,
+    0xe0, 0x0, 0x0, 0xe0, 0xff, 0xd0, 0x1, 0xe0,
+    0x0, 0x0, 0x3, 0xf1, 0xe0, 0x1, 0xe0, 0x0,
+    0x0, 0x2, 0x80, 0xf0, 0x1, 0xe0, 0x0, 0x0,
+    0x0, 0x0, 0xf0, 0x1, 0xe0, 0x0, 0x3f, 0xf0,
+    0x2, 0xf4, 0xff, 0xff, 0xe0, 0x7f, 0xf0, 0x7,
+    0xf8, 0xff, 0xff, 0xe0, 0x1, 0xf0, 0x1f, 0x78,
+    0x1, 0xe0, 0x0, 0x0, 0xf0, 0x7d, 0x78, 0x1,
+    0xe0, 0x0, 0x0, 0xf2, 0xf4, 0x38, 0x1, 0xe0,
+    0x0, 0x0, 0xf3, 0xd0, 0x38, 0x1, 0xe0, 0x0,
+    0x0, 0xf2, 0x40, 0x38, 0x1, 0xe0, 0x0, 0x0,
+    0xf0, 0x0, 0x78, 0x1, 0xe0, 0x0, 0x0, 0xf0,
+    0x0, 0x78, 0x56, 0xf5, 0x50, 0x0, 0xf0, 0x1,
+    0xfa, 0xff, 0xff, 0xf4, 0x0, 0xf0, 0x3f, 0xf2,
+    0xff, 0xff, 0xf4, 0x3, 0xf8, 0x2f, 0x90, 0x0,
+    0x0, 0x0, 0xf, 0xff, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x3f, 0x1f, 0xf9, 0x40, 0x0, 0x0, 0x0,
+    0xbd, 0x3, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x34,
+    0x0, 0x1b, 0xff, 0xff, 0xff, 0xfd, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+901D "逝" */
     0x0, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0x0,
     0x74, 0x0, 0x3c, 0x0, 0x0, 0x6f, 0x0, 0x2f,
@@ -144768,6 +154156,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xff, 0xff, 0xff, 0xe0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+9020 "造" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x10, 0x7, 0x80, 0x0, 0x0, 0x30,
+    0x0, 0xf, 0x1, 0xe0, 0x0, 0x0, 0x2f, 0x0,
+    0x3, 0xc0, 0x78, 0x0, 0x0, 0x3, 0xe0, 0x2,
+    0xe0, 0x1e, 0x0, 0x0, 0x0, 0x3e, 0x0, 0xff,
+    0xff, 0xff, 0xfe, 0x0, 0x7, 0xd0, 0x7f, 0xff,
+    0xff, 0xff, 0x40, 0x0, 0xb8, 0x3d, 0x0, 0x78,
+    0x0, 0x0, 0x0, 0x8, 0x1f, 0x0, 0x1e, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0x80, 0x0,
+    0x0, 0x0, 0x2, 0xff, 0xff, 0xff, 0xff, 0xd0,
+    0x7f, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x1f,
+    0xfc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xc0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf0, 0xf,
+    0xff, 0xff, 0xff, 0x0, 0x0, 0x3c, 0x3, 0xfa,
+    0xaa, 0xab, 0xc0, 0x0, 0xf, 0x0, 0xf4, 0x0,
+    0x0, 0xf0, 0x0, 0x3, 0xc0, 0x3d, 0x0, 0x0,
+    0x3c, 0x0, 0x0, 0xf0, 0xf, 0x40, 0x0, 0xf,
+    0x0, 0x0, 0x3c, 0x3, 0xff, 0xff, 0xff, 0xc0,
+    0x0, 0x1f, 0x40, 0xff, 0xff, 0xff, 0xf0, 0x0,
+    0x1f, 0xf4, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf,
+    0xbf, 0x80, 0x0, 0x0, 0x0, 0x0, 0xf, 0xc2,
+    0xfe, 0x50, 0x0, 0x0, 0x0, 0xf, 0xc0, 0x1f,
+    0xff, 0xff, 0xff, 0xff, 0xc1, 0xc0, 0x0, 0x6f,
+    0xff, 0xff, 0xff, 0xf0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+9021 "逡" */
     0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x3d, 0x0, 0x0, 0x0, 0x78,
@@ -144961,6 +154377,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xff, 0xff, 0xff, 0xf0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+9036 "逶" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xe0, 0x0, 0x0, 0x55, 0xab, 0xfc, 0x0, 0x7d,
+    0x0, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x7, 0xc0,
+    0x2f, 0xaa, 0xf4, 0x0, 0x0, 0x0, 0xfc, 0x0,
+    0x0, 0x3d, 0x0, 0x0, 0x0, 0xf, 0x80, 0x0,
+    0xf, 0x40, 0x0, 0x0, 0x1, 0xf1, 0xff, 0xff,
+    0xff, 0xff, 0xc0, 0x0, 0x20, 0x6a, 0xab, 0xfe,
+    0xaa, 0xa0, 0x0, 0x0, 0x0, 0x3, 0xfd, 0x90,
+    0x0, 0x0, 0x0, 0x0, 0xb, 0xdf, 0xbf, 0x80,
+    0x1, 0xff, 0xc0, 0x2f, 0xd3, 0xd1, 0xfe, 0x0,
+    0x7f, 0xf0, 0xff, 0x40, 0xf4, 0x7, 0xf0, 0x0,
+    0x7c, 0x2d, 0x3, 0x90, 0x0, 0x18, 0x0, 0xf,
+    0x0, 0x1, 0xf0, 0x0, 0x0, 0x0, 0x3, 0xc3,
+    0xff, 0xff, 0xff, 0xff, 0xe0, 0x0, 0xf0, 0xaa,
+    0xfe, 0xaa, 0xfe, 0xa4, 0x0, 0x3c, 0x0, 0x7c,
+    0x0, 0x3d, 0x0, 0x0, 0xf, 0x0, 0x7f, 0x40,
+    0x2f, 0x0, 0x0, 0x3, 0xc0, 0x6, 0xff, 0xaf,
+    0x0, 0x0, 0x0, 0xf0, 0x0, 0x7, 0xff, 0x80,
+    0x0, 0x0, 0x3c, 0x0, 0x7, 0xfe, 0xff, 0x80,
+    0x0, 0x3f, 0x82, 0xff, 0xf4, 0x7, 0xfe, 0x0,
+    0x3f, 0xf8, 0xfe, 0x40, 0x0, 0xb, 0x40, 0x3f,
+    0xf, 0xf4, 0x0, 0x0, 0x0, 0x0, 0x3f, 0x0,
+    0xbf, 0xff, 0xff, 0xff, 0xff, 0xcb, 0x40, 0x1,
+    0xbf, 0xff, 0xff, 0xff, 0xd0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+9038 "逸" */
     0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x7, 0xd0, 0x0, 0x0, 0x0, 0x38,
@@ -145179,6 +154622,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xbf, 0xff, 0xff, 0xff, 0xc0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+904D "遍" */
+    0x0, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0,
+    0x10, 0x0, 0x0, 0x1f, 0x0, 0x0, 0x0, 0x2d,
+    0x0, 0x0, 0x3, 0xd0, 0x0, 0x0, 0x7, 0xc0,
+    0x1a, 0xaa, 0xfe, 0xaa, 0x80, 0x0, 0xf8, 0xf,
+    0xff, 0xff, 0xff, 0xf0, 0x0, 0x1f, 0x3, 0xd0,
+    0x0, 0x0, 0x3c, 0x0, 0x3, 0xe0, 0xf0, 0x0,
+    0x0, 0xf, 0x0, 0x0, 0x7c, 0x3c, 0x0, 0x0,
+    0x3, 0xc0, 0x0, 0xc, 0xf, 0xff, 0xff, 0xff,
+    0xf0, 0x0, 0x0, 0x3, 0xff, 0xff, 0xff, 0xfc,
+    0x0, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0x0,
+    0x3f, 0xe0, 0x3c, 0x0, 0x0, 0x0, 0x0, 0x1f,
+    0xfc, 0xf, 0xaa, 0xaa, 0xaa, 0xa0, 0x1, 0x5f,
+    0x3, 0xff, 0xff, 0xff, 0xfd, 0x0, 0x3, 0xc1,
+    0xfd, 0xe, 0xb, 0xb, 0x40, 0x0, 0xf0, 0x7b,
+    0x43, 0x82, 0xc2, 0xd0, 0x0, 0x3c, 0x2d, 0xd0,
+    0xe0, 0xb0, 0xb4, 0x0, 0xf, 0xf, 0x7e, 0xbe,
+    0xbe, 0xbd, 0x0, 0x3, 0xc7, 0x5f, 0xff, 0xff,
+    0xff, 0x40, 0x0, 0xf3, 0xc7, 0x43, 0x82, 0xc2,
+    0xd0, 0x0, 0x3d, 0xe1, 0xd0, 0xe0, 0xb0, 0xb4,
+    0x0, 0xf, 0x30, 0x74, 0x38, 0x2c, 0x2d, 0x0,
+    0xf, 0xe0, 0x1d, 0xe, 0xb, 0x6f, 0x0, 0xf,
+    0xfe, 0x7, 0x40, 0x0, 0x1f, 0x80, 0xf, 0xc7,
+    0xf9, 0x50, 0x0, 0x1, 0x0, 0xf, 0xd0, 0x7f,
+    0xff, 0xff, 0xff, 0xff, 0xd1, 0xd0, 0x1, 0xaf,
+    0xff, 0xff, 0xff, 0xf4, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+904F "遏" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x70, 0x0, 0xaa, 0xaa, 0xaa, 0x90, 0x0, 0x3e,
@@ -145289,6 +154760,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xff, 0xff, 0xff, 0xf0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+9053 "道" */
+    0x0, 0x0, 0x0, 0x50, 0x0, 0x20, 0x0, 0x5,
+    0x0, 0x1, 0xf0, 0x0, 0xfc, 0x0, 0x1f, 0x0,
+    0x0, 0xf8, 0x2, 0xf0, 0x0, 0xf, 0xc0, 0x0,
+    0x3c, 0x7, 0xd0, 0x0, 0x3, 0xe0, 0xff, 0xff,
+    0xff, 0xff, 0xf8, 0x1, 0xf4, 0xff, 0xff, 0xff,
+    0xff, 0xf8, 0x0, 0xfc, 0x0, 0x1, 0xf0, 0x0,
+    0x0, 0x0, 0x78, 0x0, 0x2, 0xe0, 0x0, 0x0,
+    0x0, 0x10, 0xa, 0xab, 0xfa, 0xaa, 0x0, 0x0,
+    0x0, 0xf, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0,
+    0xf, 0x0, 0x0, 0xf, 0x0, 0x7f, 0xf0, 0xf,
+    0x0, 0x0, 0xf, 0x0, 0x7f, 0xf0, 0xf, 0xaa,
+    0xaa, 0xaf, 0x0, 0x0, 0xf0, 0xf, 0xff, 0xff,
+    0xff, 0x0, 0x0, 0xf0, 0xf, 0x0, 0x0, 0xf,
+    0x0, 0x0, 0xf0, 0xf, 0x0, 0x0, 0xf, 0x0,
+    0x0, 0xf0, 0xf, 0xaa, 0xaa, 0xaf, 0x0, 0x0,
+    0xf0, 0xf, 0xff, 0xff, 0xff, 0x0, 0x0, 0xf0,
+    0xf, 0x0, 0x0, 0xf, 0x0, 0x0, 0xf0, 0xf,
+    0x0, 0x0, 0xf, 0x0, 0x0, 0xf0, 0xf, 0xaa,
+    0xaa, 0xaf, 0x0, 0x1, 0xf8, 0xf, 0xff, 0xff,
+    0xff, 0x0, 0x7, 0xfd, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xf, 0xef, 0x40, 0x0, 0x0, 0x0, 0x0,
+    0x3f, 0xb, 0xf9, 0x40, 0x0, 0x0, 0x0, 0x7c,
+    0x2, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x20, 0x0,
+    0x1b, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+9057 "遗" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x2e, 0x0, 0x0, 0x0, 0x24,
@@ -145317,6 +154815,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xff, 0xff, 0xff, 0xe0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+9058 "遘" */
+    0x0, 0x0, 0x0, 0x5, 0x0, 0x10, 0x0, 0x0,
+    0x40, 0x0, 0x3, 0xc0, 0x2d, 0x0, 0x0, 0x7c,
+    0x0, 0x0, 0xf0, 0xb, 0x40, 0x0, 0xf, 0x80,
+    0xbf, 0xff, 0xff, 0xff, 0xf0, 0x1, 0xf4, 0x1a,
+    0xaf, 0xaa, 0xfe, 0xa8, 0x0, 0x2f, 0x0, 0x3,
+    0xc0, 0x2d, 0x0, 0x0, 0x3, 0xe0, 0xaa, 0xfa,
+    0xaf, 0xaa, 0x40, 0x0, 0x74, 0x3f, 0xff, 0xff,
+    0xff, 0xd0, 0x0, 0x0, 0x0, 0xf, 0x0, 0xb4,
+    0x0, 0x0, 0x0, 0xa, 0xab, 0xea, 0xbe, 0xaa,
+    0x40, 0x0, 0x3, 0xff, 0xff, 0xff, 0xff, 0xf0,
+    0xbf, 0xf0, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x2f,
+    0xfc, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x1, 0x5f,
+    0x0, 0xff, 0xff, 0xff, 0xf4, 0x0, 0x3, 0xc0,
+    0x3e, 0xab, 0xea, 0xbd, 0x0, 0x0, 0xf0, 0xf,
+    0x0, 0xf0, 0xb, 0x40, 0x0, 0x3c, 0x3, 0xff,
+    0xff, 0xff, 0xd0, 0x0, 0xf, 0x0, 0xfa, 0xaf,
+    0xaa, 0xf4, 0x0, 0x3, 0xc0, 0x3c, 0x3, 0xc0,
+    0x2d, 0x0, 0x0, 0xf1, 0xaf, 0xaa, 0xfa, 0xaf,
+    0xe8, 0x0, 0x3c, 0xbf, 0xff, 0xff, 0xff, 0xff,
+    0x0, 0x1f, 0x0, 0xf0, 0x0, 0x0, 0xf4, 0x0,
+    0xf, 0xe0, 0x3c, 0x0, 0x2, 0xfc, 0x0, 0x1f,
+    0xbf, 0xe, 0x0, 0x0, 0xfd, 0x0, 0x1f, 0x83,
+    0xf9, 0x0, 0x0, 0x0, 0x0, 0xf, 0x80, 0x2f,
+    0xff, 0xff, 0xff, 0xff, 0xc0, 0x80, 0x0, 0x6f,
+    0xff, 0xff, 0xff, 0xf0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+905B "遛" */
     0x0, 0x0, 0x0, 0x7, 0x0, 0x0, 0x0, 0x1e,
     0x0, 0x6, 0xff, 0xaa, 0xaa, 0xa0, 0x1f, 0x40,
@@ -145563,6 +155089,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xff, 0xff, 0xff, 0xf0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+907D "遽" */
+    0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x2e, 0x0, 0x0, 0x0, 0x3c,
+    0x0, 0x0, 0xb, 0xd5, 0x55, 0x0, 0xf, 0x80,
+    0x0, 0x2, 0xff, 0xff, 0xc0, 0x0, 0xf4, 0x0,
+    0x0, 0xb8, 0x0, 0x0, 0x0, 0x1f, 0x3, 0xff,
+    0xff, 0xff, 0xff, 0x0, 0x3, 0xe0, 0xfa, 0xaa,
+    0xaa, 0xab, 0xc0, 0x0, 0x34, 0x3c, 0x2, 0xc0,
+    0x0, 0xf0, 0x0, 0x0, 0xf, 0x2a, 0xff, 0xfc,
+    0x24, 0x0, 0x0, 0x3, 0xce, 0xbe, 0x50, 0x70,
+    0x0, 0x0, 0x0, 0xf0, 0xb, 0x95, 0x7c, 0x0,
+    0xbf, 0xf0, 0x3c, 0x0, 0xbf, 0xfd, 0x0, 0x2f,
+    0xfc, 0xf, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf,
+    0x3, 0xcf, 0xff, 0xff, 0xff, 0x0, 0x3, 0xc0,
+    0xf1, 0x56, 0xf9, 0x55, 0x40, 0x0, 0xf0, 0x3c,
+    0x1b, 0xfc, 0x1, 0xc0, 0x0, 0x3c, 0xe, 0xbe,
+    0x4f, 0x87, 0xf4, 0x0, 0xf, 0x7, 0x94, 0x2f,
+    0xff, 0xd0, 0x0, 0x3, 0xc2, 0xd1, 0xbd, 0x3f,
+    0xe0, 0x0, 0x0, 0xf0, 0xf3, 0xf4, 0x7f, 0xae,
+    0x0, 0x0, 0x3c, 0xb8, 0x41, 0xf4, 0xf1, 0xf0,
+    0x0, 0x1f, 0x3c, 0xb, 0xe0, 0x3c, 0x1f, 0x0,
+    0x1f, 0xe6, 0x2f, 0x81, 0x6e, 0x2, 0x80, 0x1f,
+    0xbe, 0x1, 0x1, 0xfe, 0x0, 0x0, 0x2f, 0x83,
+    0xf9, 0x0, 0x0, 0x0, 0x0, 0xf, 0x80, 0x2f,
+    0xff, 0xff, 0xff, 0xff, 0xd0, 0x80, 0x0, 0x6f,
+    0xff, 0xff, 0xff, 0xf0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+907F "避" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0xb, 0x0, 0x0, 0x78,
@@ -145619,34 +155173,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xff, 0xff, 0xff, 0xe0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+9081 "邁" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x10, 0x0, 0x7, 0x80, 0x2d, 0x0, 0x0, 0x3d,
-    0x0, 0x1, 0xe0, 0xb, 0x40, 0x0, 0x7, 0xc0,
-    0xff, 0xff, 0xff, 0xff, 0xf8, 0x0, 0xf8, 0x3f,
-    0xff, 0xff, 0xff, 0xfe, 0x0, 0x1f, 0x0, 0x7,
-    0x80, 0x2d, 0x0, 0x0, 0x3, 0xe0, 0x1, 0x50,
-    0x5, 0x40, 0x0, 0x0, 0x74, 0xf, 0xff, 0xff,
-    0xff, 0x0, 0x0, 0x0, 0x3, 0x95, 0x7d, 0x57,
-    0xc0, 0x0, 0x0, 0x0, 0xf5, 0x5f, 0x55, 0xf0,
-    0x0, 0x55, 0x40, 0x3f, 0xff, 0xff, 0xfc, 0x0,
-    0x3f, 0xf0, 0xe, 0x0, 0xf0, 0xb, 0x0, 0xf,
-    0xfc, 0x3, 0xd5, 0x7d, 0x57, 0xc0, 0x0, 0xf,
-    0x0, 0xff, 0xff, 0xff, 0xf0, 0x0, 0x3, 0xc0,
-    0x0, 0x3, 0xc0, 0x0, 0x0, 0x0, 0xf0, 0x2a,
-    0xaa, 0xfa, 0xaa, 0x80, 0x0, 0x3c, 0xf, 0xff,
-    0xff, 0xff, 0xf4, 0x0, 0xf, 0x3, 0x80, 0xf,
-    0x8, 0x2d, 0x0, 0x3, 0xc0, 0xe0, 0x3, 0xc7,
-    0x47, 0x40, 0x0, 0xf0, 0x38, 0x0, 0xf5, 0xf1,
-    0xd0, 0x0, 0x3c, 0xe, 0x7f, 0xff, 0xfd, 0x74,
-    0x0, 0x1f, 0x3, 0x8a, 0x95, 0x43, 0x6d, 0x0,
-    0xf, 0xf0, 0xe0, 0x0, 0x1, 0xaf, 0x0, 0xf,
-    0xae, 0x10, 0x0, 0x0, 0x7f, 0x40, 0xf, 0xc3,
-    0xf9, 0x0, 0x0, 0x0, 0x0, 0xf, 0xc0, 0x2f,
-    0xff, 0xff, 0xff, 0xff, 0xe0, 0xc0, 0x0, 0x6f,
-    0xff, 0xff, 0xff, 0xf4, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0,
-
     /* U+9082 "邂" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x3, 0xc0, 0x0, 0x0, 0x0, 0xe, 0x0,
@@ -145701,6 +155227,61 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x1b, 0xff, 0xff, 0xff, 0xfd, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+9088 "邈" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x18, 0x0, 0xf0, 0x0, 0xa, 0x0,
+    0x1, 0xfc, 0x1, 0xd0, 0x0, 0xf, 0x0, 0x1f,
+    0xe0, 0x3, 0xc0, 0x0, 0x7, 0x82, 0xff, 0xc0,
+    0xff, 0xff, 0xd0, 0x3, 0xc3, 0xf0, 0xe0, 0xff,
+    0xff, 0xd0, 0x2, 0xe1, 0x74, 0x56, 0xf0, 0x2,
+    0xd0, 0x0, 0xf0, 0x3c, 0x3f, 0xf0, 0x2, 0xd0,
+    0x0, 0x40, 0x16, 0xf8, 0xfa, 0xab, 0xd0, 0x0,
+    0x0, 0x2f, 0xc0, 0xff, 0xff, 0xd0, 0x0, 0x2,
+    0xff, 0xc0, 0xf0, 0x2, 0xd0, 0x7f, 0xe3, 0xd1,
+    0xe0, 0xf0, 0x2, 0xd0, 0x7f, 0xe0, 0x3, 0xf0,
+    0xf0, 0x2, 0xd0, 0x15, 0xe0, 0x1f, 0xf0, 0xff,
+    0xff, 0xd0, 0x0, 0xe1, 0xfc, 0x74, 0xbf, 0xff,
+    0xd0, 0x0, 0xe3, 0xe0, 0xf8, 0xe, 0x2c, 0x0,
+    0x0, 0xe1, 0x3, 0xf8, 0xe, 0x2c, 0x0, 0x0,
+    0xe0, 0x1f, 0x7c, 0xe, 0x2c, 0x0, 0x0, 0xe0,
+    0xbd, 0x3c, 0x1d, 0x2c, 0xe, 0x0, 0xe3, 0xf0,
+    0x3c, 0x2c, 0x2c, 0xe, 0x0, 0xe3, 0x80, 0x3c,
+    0x3c, 0x2c, 0x1d, 0x1, 0xf0, 0x5, 0xf8, 0xf0,
+    0x2f, 0xfd, 0x7, 0xf8, 0x1f, 0xe3, 0xd0, 0xf,
+    0xf8, 0x1f, 0xbf, 0x5, 0x2, 0x40, 0x0, 0x0,
+    0x7e, 0x1f, 0xe5, 0x0, 0x0, 0x0, 0x0, 0x78,
+    0x3, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x10, 0x0,
+    0x1b, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
+    /* U+908B "邋" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xb4, 0x7, 0x80, 0x78, 0x0, 0x20,
+    0x0, 0xf8, 0xf, 0x80, 0xbc, 0x0, 0x2f, 0x1,
+    0xf4, 0x1f, 0x41, 0xf4, 0x0, 0x3, 0xd0, 0x7e,
+    0x7, 0xe0, 0x3e, 0x0, 0x0, 0x7c, 0x2, 0xf0,
+    0x2f, 0x42, 0xf4, 0x0, 0xf, 0x80, 0x1c, 0x1,
+    0xd0, 0x1d, 0x0, 0x1, 0xf0, 0xff, 0xff, 0xff,
+    0xff, 0x0, 0x0, 0x20, 0x3c, 0xa4, 0x0, 0x93,
+    0xc0, 0x0, 0x0, 0xf, 0x1b, 0xe6, 0xf4, 0xf0,
+    0x0, 0x0, 0x3, 0xc0, 0x7f, 0xf0, 0x3c, 0x0,
+    0x6a, 0x80, 0xf2, 0xfd, 0x1f, 0xcf, 0x0, 0x2f,
+    0xf0, 0x3d, 0xa4, 0x0, 0x63, 0xc0, 0x5, 0x7c,
+    0xf, 0xff, 0xff, 0xff, 0xf0, 0x0, 0xf, 0x1,
+    0x80, 0x9, 0x0, 0x60, 0x0, 0x3, 0xc0, 0xf3,
+    0xd3, 0xde, 0x5c, 0x0, 0x0, 0xf0, 0x3c, 0x2c,
+    0xf1, 0xb7, 0x40, 0x0, 0x3c, 0xf, 0x10, 0x3c,
+    0x1, 0xd0, 0x0, 0xf, 0x3, 0xcf, 0x8f, 0x7d,
+    0x74, 0x0, 0x3, 0xc0, 0xf0, 0x73, 0xc6, 0xcd,
+    0x20, 0x0, 0xf0, 0x3c, 0x0, 0xf0, 0x3, 0x8e,
+    0x0, 0x3c, 0xf, 0x2e, 0x3d, 0xbc, 0xf7, 0x40,
+    0x2f, 0x83, 0xff, 0x9f, 0xfe, 0x2f, 0xc0, 0x2f,
+    0xf8, 0xf4, 0x7, 0x90, 0x3, 0xd0, 0x3f, 0x4f,
+    0xe4, 0x0, 0x0, 0x0, 0x0, 0xf, 0x0, 0xbf,
+    0xff, 0xff, 0xff, 0xff, 0xc0, 0x0, 0x1, 0xbf,
+    0xff, 0xff, 0xff, 0xf0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+9091 "邑" */
     0x1f, 0xff, 0xff, 0xff, 0xff, 0x40, 0x2f, 0xff,
     0xff, 0xff, 0xff, 0x40, 0x2e, 0x0, 0x0, 0x0,
@@ -146025,6 +155606,30 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0xff, 0xf4, 0x3, 0xc0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0xf, 0x0, 0x0,
 
+    /* U+90AE "邮" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xc0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0xf0, 0x0, 0xf, 0xff,
+    0xfc, 0x0, 0x3c, 0x0, 0x3, 0xff, 0xff, 0x15,
+    0x5f, 0x55, 0x40, 0xf5, 0x57, 0xcf, 0xff, 0xff,
+    0xf0, 0x3c, 0x1, 0xe3, 0xff, 0xff, 0xfc, 0xf,
+    0x0, 0xf4, 0xf0, 0x3c, 0xf, 0x3, 0xc0, 0x3c,
+    0x3c, 0xf, 0x3, 0xc0, 0xf0, 0x1e, 0xf, 0x3,
+    0xc0, 0xf0, 0x3c, 0xb, 0x43, 0xc0, 0xf0, 0x3c,
+    0xf, 0x3, 0xc0, 0xf0, 0x3c, 0xf, 0x3, 0xc1,
+    0xe0, 0x3c, 0xf, 0x3, 0xc0, 0xf0, 0x7c, 0xf,
+    0x57, 0xd5, 0xf0, 0x3c, 0xb, 0xc3, 0xff, 0xff,
+    0xfc, 0xf, 0x0, 0xf4, 0xff, 0xff, 0xff, 0x3,
+    0xc0, 0x1e, 0x3c, 0xf, 0x3, 0xc0, 0xf0, 0x3,
+    0xcf, 0x3, 0xc0, 0xf0, 0x3c, 0x0, 0xf3, 0xc0,
+    0xf0, 0x3c, 0xf, 0x0, 0x3d, 0xf0, 0x3c, 0xf,
+    0x3, 0xc0, 0xf, 0x7c, 0xf, 0x3, 0xc0, 0xf0,
+    0x7, 0xcf, 0x3, 0xc0, 0xf0, 0x3c, 0x7f, 0xf3,
+    0xd5, 0xf5, 0x7c, 0xf, 0x1f, 0xf0, 0xff, 0xff,
+    0xff, 0x3, 0xc1, 0x40, 0x3f, 0xff, 0xff, 0xc0,
+    0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0xf, 0x0, 0x0,
+
     /* U+90AF "邯" */
     0x3, 0xc0, 0x7, 0x80, 0x0, 0x0, 0x0, 0xf,
     0x0, 0x1f, 0x0, 0x0, 0x0, 0x0, 0x3c, 0x0,
@@ -146306,33 +155911,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x7, 0x80, 0x3c, 0x0, 0x0, 0x0, 0x0, 0x1,
     0x0, 0x3c, 0x0, 0x0,
 
-    /* U+90BD "邽" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0xf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf0, 0x0,
-    0xf, 0xff, 0xfd, 0x0, 0x3, 0xc0, 0x0, 0x3f,
-    0xff, 0xf4, 0x3f, 0xff, 0xff, 0x80, 0xf0, 0x7,
-    0xc0, 0xff, 0xff, 0xfe, 0x3, 0xc0, 0x2f, 0x0,
-    0x0, 0xf0, 0x0, 0xf, 0x0, 0xf4, 0x0, 0x3,
-    0xc0, 0x0, 0x3c, 0x7, 0xc0, 0x0, 0xf, 0x0,
-    0x0, 0xf0, 0x2e, 0x0, 0x0, 0x3c, 0x0, 0x3,
-    0xc0, 0xf4, 0xf, 0xff, 0xff, 0xfe, 0xf, 0x7,
-    0xc0, 0x3f, 0xff, 0xff, 0xf8, 0x3c, 0x3e, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0xf0, 0xbc, 0x0, 0x0,
-    0x3c, 0x0, 0x3, 0xc0, 0xbc, 0x0, 0x0, 0xf0,
-    0x0, 0xf, 0x0, 0xf4, 0x0, 0x3, 0xc0, 0x0,
-    0x3c, 0x2, 0xf0, 0x7f, 0xff, 0xff, 0xc0, 0xf0,
-    0x3, 0xc1, 0xff, 0xff, 0xff, 0x3, 0xc0, 0xf,
-    0x40, 0x0, 0xf0, 0x0, 0xf, 0x0, 0x3d, 0x0,
-    0x3, 0xc0, 0x0, 0x3c, 0x0, 0xf4, 0x0, 0xf,
-    0x0, 0x0, 0xf0, 0x7, 0xd0, 0x0, 0x3c, 0x0,
-    0x3, 0xc7, 0xff, 0x0, 0x0, 0xf6, 0xbe, 0xf,
-    0x1f, 0xf0, 0xbf, 0xff, 0xff, 0xfc, 0x3c, 0x24,
-    0x2, 0xff, 0xff, 0xa9, 0x0, 0xf0, 0x0, 0x5,
-    0x50, 0x0, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0xf, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x14, 0x0, 0x0,
-
     /* U+90BE "邾" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x3, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x4, 0xf,
@@ -146386,6 +155964,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xb, 0x90, 0x1f, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x1f, 0x0, 0x0,
 
+    /* U+90C4 "郄" */
+    0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0,
+    0xf4, 0x0, 0x2f, 0x0, 0x0, 0x0, 0x0, 0xbf,
+    0x40, 0xfd, 0xf, 0xff, 0xfc, 0x0, 0x1f, 0xe7,
+    0xf4, 0xf, 0xff, 0xfc, 0x0, 0x1, 0xff, 0x80,
+    0xf, 0x0, 0x3c, 0x0, 0x2, 0xff, 0xd0, 0xf,
+    0x0, 0x38, 0x0, 0x2f, 0xd3, 0xfc, 0xf, 0x0,
+    0xb4, 0x3, 0xfe, 0x0, 0x7f, 0x4f, 0x0, 0xf0,
+    0x3, 0xd0, 0xf0, 0xb, 0xf, 0x0, 0xe0, 0x0,
+    0x1, 0xe0, 0x0, 0xf, 0x2, 0xd0, 0x0, 0x3,
+    0xd0, 0x0, 0xf, 0x3, 0xc0, 0xf, 0xff, 0xff,
+    0xff, 0xcf, 0x3, 0xc0, 0xf, 0xff, 0xff, 0xff,
+    0xcf, 0x3, 0xd0, 0x0, 0x1f, 0x0, 0x0, 0xf,
+    0x0, 0xf0, 0x0, 0x3d, 0x9, 0x0, 0xf, 0x0,
+    0x78, 0x0, 0xb8, 0x2e, 0x0, 0xf, 0x0, 0x3c,
+    0x2, 0xf0, 0x3c, 0x0, 0xf, 0x0, 0x2d, 0x7,
+    0xc0, 0xb8, 0x40, 0xf, 0x0, 0x1e, 0x1f, 0x40,
+    0xf1, 0xe0, 0xf, 0x0, 0x1e, 0x7e, 0x3, 0xd0,
+    0xf4, 0xf, 0x0, 0x2e, 0x38, 0xb, 0xc0, 0x7c,
+    0xf, 0x1, 0xbe, 0x0, 0x1f, 0x0, 0x2e, 0xf,
+    0x2f, 0xfc, 0x0, 0x7f, 0xbf, 0xff, 0xf, 0x1f,
+    0xe0, 0x0, 0xbf, 0xff, 0xff, 0x8f, 0x0, 0x0,
+    0x0, 0x15, 0x0, 0x3, 0x8f, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x1, 0xf, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xf, 0x0, 0x0,
+
     /* U+90C5 "郅" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf,
     0xff, 0xff, 0xff, 0xf, 0xff, 0xfc, 0xf, 0xff,
@@ -146514,6 +156118,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xd0, 0x0, 0x0, 0x43, 0xc0, 0x0, 0x9, 0x0,
     0x0, 0x0, 0xf, 0x0, 0x0,
 
+    /* U+90D0 "郐" */
+    0x0, 0x0, 0x24, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x7c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xfc, 0x0, 0xf, 0xff, 0xfd, 0x0, 0x2, 0xff,
+    0x40, 0xf, 0xff, 0xfe, 0x0, 0x7, 0xd7, 0xd0,
+    0xf, 0x40, 0x3d, 0x0, 0xf, 0x81, 0xf4, 0xf,
+    0x0, 0x3c, 0x0, 0x3f, 0x0, 0x7d, 0xf, 0x0,
+    0x7c, 0x0, 0xfc, 0x0, 0x2f, 0x4f, 0x0, 0xb8,
+    0x3, 0xf0, 0x0, 0xb, 0xdf, 0x0, 0xf0, 0xf,
+    0xc0, 0x0, 0x2, 0xcf, 0x1, 0xf0, 0x3f, 0xbf,
+    0xff, 0xfc, 0x4f, 0x2, 0xd0, 0x1c, 0x7f, 0xff,
+    0xf8, 0xf, 0x3, 0xc0, 0x0, 0x0, 0x0, 0x0,
+    0xf, 0x7, 0xd0, 0x0, 0x0, 0x0, 0x0, 0xf,
+    0x3, 0xf0, 0x0, 0x0, 0x0, 0x0, 0xf, 0x0,
+    0xf4, 0x0, 0x0, 0x0, 0x0, 0xf, 0x0, 0x7c,
+    0xf, 0xff, 0xff, 0xff, 0xcf, 0x0, 0x3d, 0xf,
+    0xff, 0xff, 0xff, 0xcf, 0x0, 0x2e, 0x0, 0x7,
+    0xc0, 0x0, 0xf, 0x0, 0x1e, 0x0, 0xf, 0x1,
+    0xd0, 0xf, 0x0, 0x1e, 0x0, 0x2e, 0x1, 0xf0,
+    0xf, 0x0, 0x2e, 0x0, 0x3c, 0x0, 0xb8, 0xf,
+    0x5, 0xfd, 0x0, 0xf4, 0x0, 0x3c, 0xf, 0x2f,
+    0xf8, 0x2, 0xfa, 0xbf, 0xfe, 0xf, 0xe, 0x90,
+    0x3, 0xff, 0xff, 0xff, 0x4f, 0x0, 0x0, 0x2,
+    0x95, 0x40, 0xb, 0xcf, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x3, 0xf, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xf, 0x0, 0x0,
+
     /* U+90D1 "郑" */
     0x0, 0x80, 0x0, 0x60, 0x0, 0x0, 0x0, 0x2,
     0xe0, 0x0, 0xf4, 0x0, 0x0, 0x0, 0x0, 0xf0,
@@ -146591,31 +156222,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x2c, 0x0, 0x7, 0x80, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
-    /* U+90DA "郚" */
-    0x2a, 0xaa, 0xaa, 0xa8, 0x0, 0x0, 0x0, 0x3f,
-    0xff, 0xff, 0xfd, 0xf, 0xff, 0xfc, 0x15, 0x6f,
-    0x55, 0x54, 0xf, 0xff, 0xfc, 0x0, 0x2d, 0x0,
-    0x0, 0xf, 0x0, 0xbc, 0x0, 0x3d, 0x0, 0x0,
-    0xf, 0x0, 0xf4, 0x0, 0x3c, 0x0, 0x0, 0xf,
-    0x0, 0xf0, 0x1f, 0xff, 0xff, 0xd0, 0xf, 0x2,
-    0xf0, 0x1f, 0xff, 0xff, 0xd0, 0xf, 0x3, 0xd0,
-    0x0, 0xb8, 0x2, 0xd0, 0xf, 0x7, 0xc0, 0x0,
-    0xb4, 0x2, 0xd0, 0xf, 0xf, 0x80, 0x0, 0xf0,
-    0x3, 0xd0, 0xf, 0xf, 0x0, 0x3f, 0xff, 0xff,
-    0xfe, 0xf, 0xb, 0xc0, 0x7f, 0xff, 0xff, 0xff,
-    0xf, 0x3, 0xe0, 0x15, 0x55, 0x55, 0x54, 0xf,
-    0x1, 0xf0, 0x0, 0x0, 0x0, 0x0, 0xf, 0x0,
-    0xf8, 0x0, 0x0, 0x0, 0x0, 0xf, 0x0, 0x7c,
-    0xb, 0xff, 0xff, 0xf4, 0xf, 0x0, 0x3c, 0xb,
-    0xff, 0xff, 0xf4, 0xf, 0x0, 0x3c, 0xb, 0x40,
-    0x0, 0xb4, 0xf, 0x0, 0x3c, 0xb, 0x40, 0x0,
-    0xb4, 0xf, 0x0, 0xbc, 0xb, 0x40, 0x0, 0xb4,
-    0xf, 0x2f, 0xfc, 0xb, 0x40, 0x0, 0xb4, 0xf,
-    0x2f, 0xf0, 0xb, 0x40, 0x0, 0xb4, 0xf, 0x19,
-    0x40, 0xb, 0xff, 0xff, 0xf4, 0xf, 0x0, 0x0,
-    0xb, 0xff, 0xff, 0xf4, 0xf, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0xf, 0x0, 0x0,
-
     /* U+90DB "郛" */
     0x0, 0x0, 0x0, 0x14, 0x0, 0x0, 0x0, 0x1,
     0x5a, 0xbf, 0xf4, 0x55, 0x55, 0x43, 0xff, 0xff,
@@ -146718,6 +156324,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x3f, 0xff, 0xfc, 0xf, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0xf, 0x0, 0x0,
 
+    /* U+90E2 "郢" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf,
+    0xff, 0xff, 0xf0, 0x3f, 0xff, 0xf8, 0xf, 0xff,
+    0xff, 0xf0, 0x3f, 0xff, 0xf8, 0xf, 0x40, 0x0,
+    0xf0, 0x3d, 0x55, 0xb8, 0xf, 0x40, 0x0, 0xf0,
+    0x3c, 0x0, 0xb0, 0xf, 0x40, 0x0, 0xf0, 0x3c,
+    0x0, 0xf0, 0xf, 0x40, 0x0, 0xf0, 0x3c, 0x1,
+    0xe0, 0xf, 0xff, 0xff, 0xf0, 0x3c, 0x2, 0xd0,
+    0xb, 0xff, 0xff, 0xf0, 0x3c, 0x3, 0xc0, 0x0,
+    0x0, 0x0, 0x0, 0x3c, 0x7, 0x80, 0x0, 0x0,
+    0x0, 0x0, 0x3c, 0xb, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x3c, 0xf, 0x40, 0x3f, 0xff, 0xff, 0xfc,
+    0x3c, 0xb, 0xc0, 0x2f, 0xff, 0xff, 0xfc, 0x3c,
+    0x2, 0xe0, 0x0, 0x3, 0xc0, 0x0, 0x3c, 0x0,
+    0xf0, 0x0, 0x3, 0xc0, 0x0, 0x3c, 0x0, 0xb8,
+    0x0, 0x3, 0xc0, 0x0, 0x3c, 0x0, 0x7c, 0xf,
+    0xff, 0xff, 0xf4, 0x3c, 0x0, 0x3c, 0xf, 0xff,
+    0xff, 0xf4, 0x3c, 0x0, 0x3c, 0x0, 0x3, 0xc0,
+    0x0, 0x3c, 0x0, 0x7c, 0x0, 0x3, 0xc0, 0x0,
+    0x3c, 0x1, 0xfc, 0x0, 0x3, 0xc0, 0x0, 0x3c,
+    0xbf, 0xf0, 0x0, 0x3, 0xd6, 0xae, 0x3c, 0x7f,
+    0x80, 0xbf, 0xff, 0xff, 0xfe, 0x3c, 0x0, 0x0,
+    0xff, 0xff, 0xea, 0x50, 0x3c, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x3c, 0x0, 0x0,
+
     /* U+90E6 "郦" */
     0x2a, 0xaa, 0xaa, 0xaa, 0x8b, 0xff, 0xf0, 0xff,
     0xff, 0xff, 0xff, 0x2f, 0xff, 0xc1, 0x55, 0x55,
@@ -146974,31 +156606,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x3c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xc0,
     0x0,
 
-    /* U+90FF "郿" */
-    0x0, 0x55, 0x55, 0x55, 0x1, 0x55, 0x50, 0x2,
-    0xff, 0xff, 0xff, 0x4f, 0xff, 0xf8, 0x2, 0xea,
-    0xbe, 0xaf, 0x4f, 0xea, 0xf8, 0x2, 0xc0, 0x3c,
-    0x7, 0x4f, 0x0, 0x74, 0x2, 0xc0, 0x3c, 0x7,
-    0x4f, 0x0, 0xb0, 0x2, 0xc0, 0x3c, 0x7, 0x4f,
-    0x0, 0xf0, 0x2, 0xff, 0xff, 0xff, 0x4f, 0x0,
-    0xe0, 0x2, 0xff, 0xff, 0xff, 0x4f, 0x2, 0xd0,
-    0x2, 0xc0, 0x0, 0x0, 0xf, 0x3, 0xc0, 0x2,
-    0xc0, 0x0, 0x0, 0xf, 0x3, 0x80, 0x2, 0xcf,
-    0xff, 0xff, 0xf, 0x7, 0x80, 0x2, 0xcf, 0xff,
-    0xff, 0xf, 0x3, 0xc0, 0x3, 0xcf, 0x0, 0xb,
-    0xf, 0x1, 0xf0, 0x3, 0xcf, 0x0, 0xb, 0xf,
-    0x0, 0xb4, 0x3, 0xcf, 0xaa, 0xaf, 0xf, 0x0,
-    0x78, 0x3, 0xcf, 0xff, 0xff, 0xf, 0x0, 0x3c,
-    0x3, 0xcf, 0x0, 0xb, 0xf, 0x0, 0x3c, 0x7,
-    0x8f, 0x0, 0xb, 0xf, 0x0, 0x3c, 0xb, 0x4f,
-    0x0, 0xb, 0xf, 0x0, 0x3c, 0xf, 0xf, 0xff,
-    0xff, 0xf, 0x5, 0xfc, 0xf, 0xf, 0xff, 0xff,
-    0xf, 0x2f, 0xf0, 0x1e, 0xf, 0x0, 0xb, 0xf,
-    0xe, 0x40, 0x3d, 0xf, 0x0, 0xb, 0xf, 0x0,
-    0x0, 0x3c, 0xf, 0xff, 0xff, 0xf, 0x0, 0x0,
-    0x4, 0xf, 0xff, 0xff, 0xf, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0xf, 0x0, 0x0,
-
     /* U+9102 "鄂" */
     0x5, 0x55, 0x15, 0x54, 0x0, 0x0, 0x0, 0x7f,
     0xf8, 0xff, 0xf0, 0xff, 0xff, 0x41, 0xd0, 0xe3,
@@ -147048,34 +156655,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xc0, 0x0, 0x14, 0x0, 0x0, 0x0, 0xf, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0, 0x3c, 0x0, 0x0,
 
-    /* U+910C "鄌" */
-    0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x7, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x3d, 0x0, 0x2, 0xaa, 0xa8, 0x2, 0xff, 0xff,
-    0xff, 0xf0, 0xff, 0xff, 0x0, 0xbf, 0xff, 0xff,
-    0xfc, 0x3d, 0x5b, 0xc0, 0x2c, 0x0, 0xf0, 0x0,
-    0xf, 0x2, 0xe0, 0xb, 0x0, 0x3c, 0x0, 0x3,
-    0xc0, 0xf4, 0x2, 0xcb, 0xff, 0xff, 0xc0, 0xf0,
-    0x3c, 0x0, 0xb2, 0xff, 0xff, 0xf0, 0x3c, 0x1e,
-    0x0, 0x2c, 0x0, 0xf0, 0x3c, 0xf, 0xb, 0x40,
-    0xb, 0x40, 0x3c, 0xf, 0x3, 0xc3, 0xc0, 0x2,
-    0xff, 0xff, 0xff, 0xfc, 0xf1, 0xe0, 0x0, 0xbe,
-    0xab, 0xea, 0xfa, 0x3c, 0x7c, 0x0, 0x2c, 0x0,
-    0xf0, 0x3c, 0xf, 0xf, 0x80, 0xb, 0x2a, 0xbe,
-    0xaf, 0x3, 0xc0, 0xf0, 0x2, 0xcf, 0xff, 0xff,
-    0xc0, 0xf0, 0x2e, 0x0, 0xb0, 0x3, 0xc0, 0x0,
-    0x3c, 0x3, 0xc0, 0x2c, 0x0, 0xf0, 0x0, 0xf,
-    0x0, 0xf0, 0xf, 0x1a, 0xbe, 0xa9, 0x3, 0xc0,
-    0x3c, 0x3, 0xcf, 0xff, 0xff, 0x80, 0xf0, 0xf,
-    0x0, 0xe3, 0xc0, 0x0, 0xe0, 0x3c, 0xb, 0xc0,
-    0x78, 0xf0, 0x0, 0x38, 0xf, 0x7f, 0xe0, 0x2d,
-    0x3c, 0x0, 0xe, 0x3, 0xcf, 0xd0, 0xf, 0xf,
-    0x0, 0x3, 0x80, 0xf0, 0x0, 0x7, 0x83, 0xff,
-    0xff, 0xe0, 0x3c, 0x0, 0x3, 0xd0, 0xbf, 0xff,
-    0xf8, 0xf, 0x0, 0x0, 0x70, 0x0, 0x0, 0x0,
-    0x3, 0xc0, 0x0,
-
     /* U+9119 "鄙" */
     0x2, 0xaa, 0xaa, 0xa4, 0x0, 0x0, 0x0, 0xf,
     0xff, 0xff, 0xe0, 0x3f, 0xff, 0xc0, 0x3d, 0x0,
@@ -147177,6 +156756,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xb4, 0x0, 0xf, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+912F "鄯" */
+    0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x3,
+    0xc0, 0x7, 0x80, 0x0, 0x0, 0x0, 0xb, 0x80,
+    0x3d, 0x0, 0x55, 0x55, 0x0, 0xf, 0x2, 0xf0,
+    0x3, 0xff, 0xfc, 0x2f, 0xff, 0xff, 0xff, 0x4f,
+    0xff, 0xf0, 0xbf, 0xff, 0xff, 0xfd, 0x3c, 0x3,
+    0xc0, 0x0, 0xe, 0x0, 0x0, 0xf0, 0xe, 0x0,
+    0x0, 0x38, 0x0, 0x3, 0xc0, 0x74, 0xf, 0xff,
+    0xff, 0xfe, 0xf, 0x2, 0xc0, 0x2a, 0xab, 0xea,
+    0xa4, 0x3c, 0xe, 0x0, 0x0, 0xe, 0x0, 0x0,
+    0xf0, 0x74, 0x0, 0x0, 0x38, 0x0, 0x3, 0xc2,
+    0xc0, 0x3f, 0xff, 0xff, 0xff, 0x8f, 0xf, 0x0,
+    0xaa, 0xaf, 0xea, 0xe9, 0x3c, 0x3d, 0x0, 0x34,
+    0xe, 0x3, 0x40, 0xf0, 0x7c, 0x0, 0xf0, 0x38,
+    0x3c, 0x3, 0xc0, 0xb4, 0x1, 0xe1, 0xe1, 0xe0,
+    0xf, 0x0, 0xf1, 0xff, 0xff, 0xff, 0xff, 0x3c,
+    0x2, 0xd6, 0xaa, 0xaa, 0xaa, 0xa8, 0xf0, 0x7,
+    0x80, 0x0, 0x0, 0x0, 0x3, 0xc0, 0x1e, 0x6,
+    0xaa, 0xaa, 0xa8, 0xf, 0x0, 0x78, 0x2f, 0xff,
+    0xff, 0xf0, 0x3c, 0x3, 0xe0, 0xb4, 0x0, 0x3,
+    0xc0, 0xf2, 0xff, 0x2, 0xd0, 0x0, 0xf, 0x3,
+    0xcf, 0xf4, 0xb, 0x40, 0x0, 0x3c, 0xf, 0x14,
+    0x0, 0x2f, 0xff, 0xff, 0xf0, 0x3c, 0x0, 0x0,
+    0x7f, 0xff, 0xff, 0x80, 0xf0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x3, 0xc0, 0x0,
+
     /* U+9131 "鄱" */
     0x0, 0x0, 0x0, 0x5, 0x40, 0x0, 0x0, 0x1,
     0x56, 0xaf, 0xff, 0x80, 0x0, 0x0, 0xb, 0xff,
@@ -147229,6 +156834,31 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x3c, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+9143 "酃" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2f,
+    0xff, 0xff, 0xfd, 0xb, 0xff, 0xc0, 0xbf, 0xff,
+    0xff, 0xf0, 0x3f, 0xff, 0x0, 0x0, 0x2c, 0x0,
+    0x0, 0xf5, 0x6c, 0x0, 0x0, 0xb0, 0x0, 0x3,
+    0xc0, 0xb0, 0xff, 0xff, 0xff, 0xff, 0x4f, 0x3,
+    0x83, 0xff, 0xff, 0xff, 0xfd, 0x3c, 0xd, 0xf,
+    0x0, 0x2c, 0x0, 0x74, 0xf0, 0x70, 0x3c, 0xfd,
+    0xb3, 0xf9, 0xd3, 0xc2, 0xc0, 0xf2, 0xa2, 0xc6,
+    0x97, 0x4f, 0xe, 0x3, 0x80, 0xb, 0x0, 0x9,
+    0x3c, 0x34, 0x0, 0x3f, 0x6c, 0xfe, 0x0, 0xf1,
+    0xe0, 0x0, 0x54, 0xb1, 0x54, 0x3, 0xc3, 0xc0,
+    0x0, 0x1, 0x80, 0x0, 0xf, 0x7, 0x81, 0x55,
+    0x15, 0x41, 0x54, 0x3c, 0xf, 0xb, 0xfc, 0xff,
+    0x5f, 0xf0, 0xf0, 0x2c, 0x2c, 0xb3, 0x4d, 0x71,
+    0xc3, 0xc0, 0x74, 0xb2, 0xcd, 0x35, 0xc7, 0xf,
+    0x1, 0xe2, 0xcb, 0x34, 0xd7, 0x1c, 0x3c, 0x7,
+    0x8b, 0x2c, 0xd3, 0x5c, 0x70, 0xf0, 0x2e, 0x2c,
+    0xb3, 0x4d, 0x71, 0xc3, 0xc6, 0xf4, 0xb2, 0xcd,
+    0x35, 0xc7, 0xf, 0x7f, 0xc2, 0xcb, 0x34, 0xd7,
+    0x1c, 0x3c, 0xe4, 0xb, 0x2c, 0xd3, 0x5c, 0x70,
+    0xf0, 0x0, 0x2f, 0xf3, 0xfd, 0x7f, 0xc3, 0xc0,
+    0x0, 0x6a, 0x4a, 0xa4, 0xaa, 0xf, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x3c, 0x0, 0x0,
+
     /* U+9146 "酆" */
     0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x10,
     0xd2, 0xc3, 0x4, 0x0, 0x0, 0x1, 0xc3, 0x4b,
@@ -147255,6 +156885,30 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xaa, 0xa9, 0x55, 0x0, 0xb0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x2, 0xc0, 0x0,
 
+    /* U+9149 "酉" */
+    0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x0, 0x1,
+    0xe0, 0x2e, 0x0, 0x0, 0x0, 0x0, 0x7, 0x80,
+    0x78, 0x0, 0x0, 0x0, 0x0, 0x1e, 0x1, 0xe0,
+    0x0, 0x0, 0x0, 0x0, 0x78, 0x7, 0x80, 0x0,
+    0x0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xf4, 0x0,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xd0, 0x3, 0xc0,
+    0x1e, 0x1, 0xe0, 0xb, 0x40, 0xf, 0x0, 0xb8,
+    0x7, 0x80, 0x2d, 0x0, 0x3c, 0x3, 0xd0, 0x1e,
+    0x0, 0xb4, 0x0, 0xf0, 0xf, 0x0, 0x78, 0x2,
+    0xd0, 0x3, 0xc0, 0xf8, 0x1, 0xf4, 0xb, 0x40,
+    0xf, 0xb, 0xc0, 0x3, 0xff, 0xfd, 0x0, 0x3d,
+    0xfc, 0x0, 0x6, 0xff, 0xf4, 0x0, 0xf1, 0x80,
+    0x0, 0x0, 0x2, 0xd0, 0x3, 0xc0, 0x0, 0x0,
+    0x0, 0xb, 0x40, 0xf, 0xff, 0xff, 0xff, 0xff,
+    0xfd, 0x0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xf4,
+    0x0, 0xf4, 0x0, 0x0, 0x0, 0x2, 0xd0, 0x3,
+    0xc0, 0x0, 0x0, 0x0, 0xb, 0x40, 0xf, 0x0,
+    0x0, 0x0, 0x0, 0x2d, 0x0, 0x3f, 0xff, 0xff,
+    0xff, 0xff, 0xf4, 0x0, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xd0, 0x3, 0xd0, 0x0, 0x0, 0x0, 0xb,
+    0x40, 0xf, 0x0, 0x0, 0x0, 0x0, 0x2d, 0x0,
+
     /* U+914A "酊" */
     0x15, 0x55, 0x55, 0x54, 0x0, 0x0, 0x0, 0x7f,
     0xff, 0xff, 0xfc, 0xff, 0xff, 0xfd, 0x2a, 0xbe,
@@ -147925,6 +157579,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xe5, 0x3f, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x7, 0x90, 0x0, 0x0,
 
+    /* U+9175 "酵" */
+    0x0, 0x0, 0x0, 0x0, 0x14, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x55, 0x55,
+    0x55, 0x40, 0x3c, 0x0, 0x50, 0xff, 0xff, 0xff,
+    0xc0, 0x3c, 0x0, 0xf4, 0xaa, 0xff, 0xea, 0x8f,
+    0xff, 0xf6, 0xe0, 0x0, 0x75, 0xc0, 0xf, 0xff,
+    0xfb, 0xc0, 0x0, 0x75, 0xc0, 0x0, 0x3c, 0xf,
+    0x80, 0x0, 0x75, 0xc0, 0x0, 0x3c, 0x2f, 0x0,
+    0x2f, 0xff, 0xff, 0x40, 0x3c, 0x3c, 0x0, 0x2f,
+    0xff, 0xff, 0x6f, 0xff, 0xff, 0xfd, 0x2c, 0x71,
+    0xc7, 0x7f, 0xff, 0xff, 0xfd, 0x2c, 0x71, 0xc7,
+    0x40, 0xb, 0xc0, 0x0, 0x2c, 0x71, 0xc7, 0x40,
+    0x2f, 0x0, 0x0, 0x2c, 0xb1, 0xc7, 0x40, 0x7e,
+    0x0, 0x0, 0x2c, 0xf1, 0xc7, 0x41, 0xff, 0xff,
+    0xc0, 0x2d, 0xe1, 0xdb, 0x4b, 0xea, 0xaf, 0xc0,
+    0x2f, 0xd0, 0xff, 0x6f, 0x40, 0x3f, 0x0, 0x2f,
+    0xc0, 0x1b, 0xfd, 0x0, 0xfc, 0x0, 0x2d, 0x0,
+    0x7, 0xb0, 0x3, 0xe0, 0x0, 0x2c, 0x0, 0x7,
+    0x55, 0x57, 0xd5, 0x54, 0x2f, 0xff, 0xff, 0x7f,
+    0xff, 0xff, 0xf8, 0x2f, 0xff, 0xff, 0x5a, 0xab,
+    0xea, 0xa4, 0x2c, 0x0, 0x7, 0x40, 0x3, 0xc0,
+    0x0, 0x2c, 0x0, 0x7, 0x40, 0x3, 0xc0, 0x0,
+    0x2c, 0x0, 0x7, 0x40, 0x3, 0xc0, 0x0, 0x2f,
+    0xff, 0xff, 0x40, 0xb, 0xc0, 0x0, 0x2f, 0xff,
+    0xff, 0x41, 0xff, 0x80, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+9176 "酶" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x74, 0x0, 0x0, 0x0, 0x0,
@@ -148007,6 +157689,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x3d, 0x0, 0x0, 0x78, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+9179 "酹" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x55,
+    0x55, 0x55, 0x40, 0x1, 0xaf, 0xf4, 0xff, 0xff,
+    0xff, 0xcf, 0xff, 0xff, 0xf4, 0x6a, 0xfa, 0xea,
+    0x8f, 0xfe, 0x94, 0x0, 0x0, 0xb1, 0xc0, 0x0,
+    0x1, 0x0, 0x40, 0x0, 0xb1, 0xc0, 0xb, 0xb,
+    0x40, 0xf0, 0x0, 0xb1, 0xc0, 0xf, 0x7, 0x80,
+    0xf0, 0x2f, 0xff, 0xff, 0x47, 0x83, 0xc1, 0xd0,
+    0x3f, 0xff, 0xff, 0x43, 0xc2, 0xd3, 0xc0, 0x3c,
+    0xb1, 0xc7, 0x42, 0xd1, 0xe7, 0x80, 0x3c, 0xb1,
+    0xc7, 0x41, 0xd0, 0x97, 0x40, 0x3c, 0xb1, 0xc7,
+    0x40, 0x0, 0x5, 0x0, 0x3c, 0xb1, 0xc7, 0x40,
+    0x0, 0xf, 0x0, 0x3c, 0xe1, 0xc7, 0x45, 0x55,
+    0x5f, 0x54, 0x3e, 0xd1, 0xff, 0x6f, 0xff, 0xff,
+    0xfd, 0x3f, 0xc0, 0xbf, 0x55, 0x55, 0x6f, 0x54,
+    0x3e, 0x40, 0x7, 0x42, 0x40, 0xf, 0x0, 0x3c,
+    0x0, 0x7, 0x47, 0xc0, 0xf, 0x0, 0x3e, 0xaa,
+    0xaf, 0x42, 0xf0, 0xf, 0x0, 0x3f, 0xff, 0xff,
+    0x40, 0xf8, 0xf, 0x0, 0x3c, 0x0, 0x7, 0x40,
+    0x3c, 0xf, 0x0, 0x3c, 0x0, 0x7, 0x40, 0x24,
+    0xf, 0x0, 0x3c, 0x0, 0x7, 0x40, 0x0, 0xf,
+    0x0, 0x3c, 0x0, 0xb, 0x40, 0x0, 0xf, 0x0,
+    0x3f, 0xff, 0xff, 0x40, 0x1, 0xbf, 0x0, 0x1a,
+    0xaa, 0xaa, 0x0, 0x7, 0xfd, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x2, 0x90, 0x0,
+
     /* U+917D "酽" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f,
     0xff, 0xff, 0xcf, 0xff, 0xff, 0xfc, 0x3f, 0xff,
@@ -148395,6 +158103,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x1f, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xfd, 0xa,
     0xaa, 0xaa, 0x7f, 0xff, 0xff, 0xfe,
 
+    /* U+91A3 "醣" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x7, 0x80, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x3, 0xc0, 0x0, 0x3f, 0xff, 0xff,
+    0x0, 0x2, 0xd0, 0x0, 0x2a, 0xfb, 0xea, 0x2f,
+    0xff, 0xff, 0xf8, 0x0, 0x73, 0x80, 0x2f, 0xff,
+    0xff, 0xf8, 0x0, 0x73, 0x80, 0x2c, 0x1, 0x40,
+    0x0, 0x0, 0x73, 0x80, 0x2c, 0x3, 0xc0, 0x0,
+    0x1f, 0xff, 0xfd, 0x2c, 0xff, 0xff, 0xd0, 0x1f,
+    0xff, 0xfd, 0x2c, 0xff, 0xff, 0xd0, 0x1d, 0x73,
+    0x8d, 0x2c, 0x3, 0xc1, 0xd0, 0x1d, 0x73, 0x8d,
+    0x2c, 0x3, 0xc1, 0xd0, 0x1d, 0xb3, 0x8d, 0x2f,
+    0xff, 0xff, 0xfd, 0x1d, 0xb3, 0x8d, 0x2e, 0xab,
+    0xeb, 0xf8, 0x1d, 0xf3, 0x8d, 0x2c, 0x3, 0xc1,
+    0xd0, 0x1d, 0xe3, 0xed, 0x2c, 0x3, 0xc1, 0xd0,
+    0x1f, 0xc1, 0xfd, 0x2d, 0xff, 0xff, 0xd0, 0x1f,
+    0x80, 0x1d, 0x3c, 0xab, 0xea, 0x90, 0x1d, 0x0,
+    0xd, 0x3c, 0x3, 0xc0, 0x0, 0x1e, 0x55, 0x6d,
+    0x3c, 0x3, 0xc0, 0x0, 0x1f, 0xff, 0xfd, 0x3c,
+    0xff, 0xff, 0xc0, 0x1e, 0x55, 0x6d, 0x38, 0xfa,
+    0xab, 0xc0, 0x1d, 0x0, 0xd, 0x74, 0xe0, 0x2,
+    0xc0, 0x1d, 0x0, 0xd, 0xb0, 0xe0, 0x2, 0xc0,
+    0x1e, 0x55, 0x5d, 0xf0, 0xe0, 0x2, 0xc0, 0x1f,
+    0xff, 0xfe, 0xe0, 0xff, 0xff, 0xc0, 0xa, 0xaa,
+    0xab, 0xd0, 0xfa, 0xab, 0xc0, 0x0, 0x0, 0x1,
+    0x80, 0xe0, 0x2, 0xc0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+91AA "醪" */
     0x0, 0x0, 0x0, 0x15, 0x54, 0x55, 0x50, 0xbf,
     0xff, 0xff, 0x3f, 0xfd, 0xff, 0xf0, 0x7f, 0xff,
@@ -148421,31 +158157,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x39, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0,
 
-    /* U+91AB "醫" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f,
-    0xff, 0xff, 0xf0, 0xff, 0xfc, 0x0, 0x79, 0x75,
-    0x55, 0x3, 0x95, 0xf0, 0x1, 0xd1, 0xd5, 0x50,
-    0x2d, 0x3, 0xd4, 0x7, 0x4f, 0xff, 0xf2, 0xe0,
-    0x7, 0xf4, 0x1d, 0xb0, 0xa0, 0xa, 0x0, 0x0,
-    0x0, 0x75, 0x97, 0xd5, 0x2f, 0xff, 0xfc, 0x1,
-    0xdf, 0xff, 0xfd, 0x65, 0x56, 0xf0, 0x7, 0x40,
-    0xbf, 0x0, 0xf4, 0xf, 0x0, 0x1d, 0x1f, 0xf,
-    0x80, 0xbf, 0xf0, 0x0, 0x75, 0xe0, 0x6, 0x1,
-    0xbf, 0xd0, 0x1, 0xff, 0xff, 0xfd, 0xbf, 0x87,
-    0xf8, 0x1, 0x55, 0x55, 0x57, 0xd0, 0x1, 0xf4,
-    0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x43, 0xff,
-    0xff, 0xff, 0xff, 0xff, 0xff, 0xc5, 0x55, 0x5b,
-    0x95, 0xb9, 0x55, 0x55, 0x0, 0x0, 0x1e, 0x2,
-    0xe0, 0x0, 0x0, 0xb, 0xff, 0xff, 0xff, 0xff,
-    0xfd, 0x0, 0x2d, 0x2, 0xd0, 0x2e, 0x0, 0xb4,
-    0x0, 0xb0, 0x2f, 0x0, 0x7d, 0x56, 0xd0, 0x2,
-    0xcf, 0xe0, 0x0, 0xbf, 0xff, 0x40, 0xb, 0x69,
-    0x0, 0x0, 0x0, 0x2d, 0x0, 0x2f, 0xff, 0xff,
-    0xff, 0xff, 0xf4, 0x0, 0xb4, 0x0, 0x0, 0x0,
-    0x2, 0xd0, 0x2, 0xe5, 0x55, 0x55, 0x55, 0x5f,
-    0x40, 0xb, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x0,
-    0x2c, 0x0, 0x0, 0x0, 0x0, 0xb4, 0x0,
-
     /* U+91AD "醭" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x2c, 0x38, 0x0, 0x0, 0x0,
@@ -148502,6 +158213,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x34, 0x0, 0x0, 0x8, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+91AF "醯" */
+    0x0, 0x0, 0x0, 0x0, 0x1d, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x1e, 0x0, 0x0, 0x15, 0x55,
+    0x55, 0x0, 0xf, 0x0, 0x0, 0x7f, 0xff, 0xff,
+    0x6a, 0xaf, 0xaa, 0xa0, 0x15, 0xfb, 0x95, 0xbf,
+    0xff, 0xff, 0xf4, 0x0, 0xb3, 0x40, 0x0, 0xf0,
+    0x20, 0x0, 0x0, 0xb3, 0x40, 0x3, 0xd0, 0x7c,
+    0x0, 0x0, 0xb3, 0x40, 0xb, 0x40, 0x2f, 0x0,
+    0x1a, 0xfb, 0xe8, 0x2f, 0x55, 0x6f, 0x80, 0x2f,
+    0xff, 0xfc, 0x7f, 0xff, 0xff, 0xe0, 0x2c, 0xb3,
+    0x5c, 0x15, 0x40, 0x0, 0xd0, 0x2c, 0xb3, 0x5c,
+    0xe, 0xe, 0x2c, 0x0, 0x2c, 0xb3, 0x5c, 0xe,
+    0xe, 0x2c, 0x0, 0x2c, 0xe3, 0x5c, 0xe, 0xe,
+    0x2c, 0x1c, 0x2c, 0xe3, 0x5c, 0x1d, 0xe, 0x2c,
+    0x1c, 0x2d, 0xd3, 0xfc, 0x3c, 0xe, 0x2e, 0xbc,
+    0x2f, 0xc1, 0xbc, 0xb4, 0xe, 0xf, 0xf4, 0x2e,
+    0x40, 0x1c, 0xa0, 0x4, 0x0, 0x0, 0x2c, 0x0,
+    0x1c, 0x2a, 0xaa, 0xaa, 0x80, 0x2e, 0xaa, 0xac,
+    0x3f, 0xff, 0xff, 0xc0, 0x2f, 0xff, 0xfc, 0x38,
+    0x70, 0xd2, 0xc0, 0x2c, 0x0, 0x1c, 0x38, 0x70,
+    0xd2, 0xc0, 0x2c, 0x0, 0x1c, 0x38, 0x70, 0xd2,
+    0xc0, 0x2c, 0x0, 0x1c, 0x38, 0x70, 0xd2, 0xc0,
+    0x2c, 0x0, 0x1c, 0x38, 0x70, 0xd2, 0xc0, 0x2f,
+    0xff, 0xfd, 0xbe, 0xfa, 0xfb, 0xe8, 0x1f, 0xff,
+    0xfd, 0xff, 0xff, 0xff, 0xfc,
+
     /* U+91B4 "醴" */
     0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x34, 0xb0, 0x0, 0x15, 0x55,
@@ -148584,58 +158321,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0xb0, 0x18, 0x14, 0x1c, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
-    /* U+91C1 "釁" */
-    0x0, 0x19, 0x15, 0x55, 0x54, 0x0, 0x0, 0x3,
-    0xfe, 0x7f, 0xff, 0xfc, 0xff, 0xc0, 0x3, 0xd0,
-    0x74, 0x0, 0x2c, 0x57, 0xc0, 0x3, 0xc0, 0x77,
-    0xff, 0xac, 0x57, 0x80, 0x3, 0xfe, 0x74, 0x55,
-    0x2c, 0xff, 0x80, 0x3, 0xc0, 0x75, 0xeb, 0x2c,
-    0x3, 0x80, 0x2, 0xfe, 0x75, 0xc7, 0x2c, 0xff,
-    0x80, 0x2, 0xc0, 0x75, 0xff, 0x2c, 0x7, 0x80,
-    0x7, 0xd5, 0xb9, 0x55, 0x7d, 0x5b, 0x90, 0xf,
-    0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xe, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0xb0, 0xe, 0x3f, 0xff,
-    0xff, 0xff, 0xfc, 0xb0, 0x9, 0x0, 0xf, 0x2,
-    0xd0, 0x0, 0x60, 0x0, 0xbf, 0xff, 0xff, 0xff,
-    0xfe, 0x0, 0x0, 0xb0, 0x6e, 0x1, 0xe0, 0x1e,
-    0x0, 0x0, 0xb3, 0xf4, 0x0, 0xaa, 0xae, 0x0,
-    0x0, 0xbf, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0,
-    0xb5, 0x55, 0x55, 0x55, 0x5e, 0x0, 0x0, 0xb5,
-    0x55, 0x55, 0x55, 0x5e, 0x0, 0x0, 0xbf, 0xff,
-    0xff, 0xff, 0xfe, 0x0, 0x0, 0x6, 0xf4, 0x0,
-    0x2f, 0x40, 0x0, 0x1, 0xbf, 0xff, 0xff, 0xff,
-    0xfd, 0x0, 0x7f, 0xd1, 0x7e, 0x55, 0x5b, 0x9b,
-    0xfd, 0x24, 0x0, 0x7c, 0x0, 0xb, 0x40, 0x6c,
-    0x0, 0x7, 0xf0, 0x1, 0x5f, 0x0, 0x0, 0x7,
-    0xff, 0x40, 0xf, 0xfd, 0x0, 0x0, 0x3, 0x90,
-    0x0, 0x0, 0x0, 0x0, 0x0,
-
-    /* U+91C6 "釆" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x15, 0xab, 0xff, 0x80, 0x7, 0xff,
-    0xff, 0xff, 0xff, 0xff, 0x80, 0x7, 0xff, 0xff,
-    0xfe, 0xa5, 0x40, 0x0, 0x1, 0x54, 0x0, 0x78,
-    0x0, 0x0, 0x0, 0x0, 0x30, 0x0, 0x78, 0x0,
-    0x2d, 0x0, 0x0, 0xfc, 0x0, 0x78, 0x0, 0x3d,
-    0x0, 0x0, 0x7d, 0x0, 0x78, 0x0, 0xf8, 0x0,
-    0x0, 0x2f, 0x0, 0x78, 0x2, 0xf0, 0x0, 0x0,
-    0xf, 0xc0, 0x78, 0x7, 0xd0, 0x0, 0x0, 0x3,
-    0xc0, 0x78, 0xf, 0x80, 0x0, 0x0, 0x1, 0x0,
-    0x78, 0x2, 0x0, 0x0, 0x2f, 0xff, 0xff, 0xff,
-    0xff, 0xff, 0xf0, 0x3f, 0xff, 0xff, 0xff, 0xff,
-    0xff, 0xf0, 0x0, 0x0, 0x3, 0xff, 0x40, 0x0,
-    0x0, 0x0, 0x0, 0xb, 0xff, 0xc0, 0x0, 0x0,
-    0x0, 0x0, 0x2f, 0xbf, 0xf0, 0x0, 0x0, 0x0,
-    0x0, 0xfd, 0x78, 0xfd, 0x0, 0x0, 0x0, 0x7,
-    0xf4, 0x78, 0x3f, 0x80, 0x0, 0x0, 0x2f, 0xc0,
-    0x78, 0xb, 0xf4, 0x0, 0x1, 0xfe, 0x0, 0x78,
-    0x1, 0xfe, 0x0, 0x1f, 0xf4, 0x0, 0x78, 0x0,
-    0x2f, 0xe0, 0xff, 0x80, 0x0, 0x78, 0x0, 0x7,
-    0xfc, 0x78, 0x0, 0x0, 0x78, 0x0, 0x0, 0x74,
-    0x0, 0x0, 0x0, 0x78, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x78, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x78, 0x0, 0x0, 0x0,
-
     /* U+91C7 "采" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x1, 0x5a, 0xbf, 0x80, 0x6, 0xab,
@@ -148946,32 +158631,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xff, 0xff, 0xff, 0xff, 0x0, 0xff, 0xff, 0xff,
     0xff, 0xff, 0xff, 0xc0,
 
-    /* U+92C6 "鋆" */
-    0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0,
-    0x2d, 0x0, 0xb, 0x80, 0x0, 0x0, 0x0, 0x2d,
-    0x0, 0xf, 0x0, 0x0, 0x0, 0x0, 0x2d, 0x0,
-    0x3f, 0xff, 0xff, 0xd0, 0xa, 0xbf, 0xa8, 0xbe,
-    0xaa, 0xab, 0xd0, 0x1f, 0xff, 0xfd, 0xf2, 0x0,
-    0x2, 0xd0, 0x0, 0x2d, 0x7, 0xcb, 0xe0, 0x2,
-    0xc0, 0x0, 0x2d, 0x2, 0x41, 0xfc, 0x3, 0xc0,
-    0x0, 0x2d, 0x0, 0x0, 0x19, 0xb3, 0xc0, 0x0,
-    0x2d, 0x0, 0x1, 0xbf, 0xe3, 0xc0, 0x0, 0x2e,
-    0xbc, 0xff, 0xf9, 0x3, 0xc0, 0x5, 0xbf, 0xf8,
-    0xe5, 0x0, 0xb, 0xc0, 0x3f, 0xf9, 0x0, 0x68,
-    0x3, 0xff, 0x40, 0x19, 0x0, 0x7, 0xff, 0x41,
-    0xe4, 0x0, 0x0, 0x0, 0x7f, 0xdb, 0xf4, 0x0,
-    0x0, 0x0, 0x7, 0xfd, 0x0, 0xbf, 0x80, 0x0,
-    0x1, 0xbf, 0xd0, 0x0, 0xb, 0xfd, 0x0, 0xbf,
-    0xfb, 0xff, 0xff, 0xff, 0xbf, 0xf8, 0xbe, 0x42,
-    0xaa, 0xfe, 0xaa, 0x2, 0xfc, 0x0, 0x0, 0x0,
-    0x78, 0x0, 0x0, 0x0, 0x1, 0xaa, 0xaa, 0xbe,
-    0xaa, 0xaa, 0x0, 0x2, 0xff, 0xff, 0xff, 0xff,
-    0xff, 0x0, 0x0, 0x6, 0x0, 0x78, 0x0, 0x80,
-    0x0, 0x0, 0xf, 0x80, 0x78, 0x3, 0xd0, 0x0,
-    0x0, 0x3, 0xd0, 0x78, 0xf, 0x80, 0x0, 0x3f,
-    0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x2a, 0xaa,
-    0xaa, 0xaa, 0xaa, 0xaa, 0xa0,
-
     /* U+92C8 "鋈" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x28, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf,
@@ -148999,6 +158658,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xff, 0xff, 0xff, 0xff, 0x0, 0xff, 0xff, 0xff,
     0xff, 0xff, 0xff, 0xc0,
 
+    /* U+933E "錾" */
+    0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xf0, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0,
+    0xb8, 0x0, 0x0, 0x16, 0xbf, 0x80, 0x2f, 0xff,
+    0xff, 0xf3, 0xff, 0xff, 0xd0, 0x6, 0xbf, 0xaa,
+    0xa8, 0xfe, 0x94, 0x0, 0x0, 0xf, 0x0, 0x0,
+    0x3c, 0x0, 0x0, 0x0, 0xf, 0x47, 0x80, 0xf,
+    0x0, 0x0, 0x0, 0x7, 0xd6, 0xe5, 0x43, 0xc0,
+    0x0, 0x0, 0x2, 0xff, 0xff, 0xf8, 0xff, 0xff,
+    0xfe, 0x0, 0x0, 0x2e, 0x0, 0x3e, 0xab, 0xea,
+    0x40, 0x0, 0x7, 0x80, 0xe, 0x0, 0xf0, 0x0,
+    0x15, 0x6b, 0xff, 0xeb, 0x40, 0x3c, 0x0, 0xf,
+    0xff, 0xfe, 0x97, 0xc0, 0xf, 0x0, 0x1, 0x50,
+    0x1e, 0x6, 0xa0, 0x3, 0xc0, 0x0, 0x0, 0x7,
+    0x9f, 0xfe, 0x0, 0xf0, 0x0, 0x0, 0x0, 0xbf,
+    0x83, 0xfd, 0x0, 0x0, 0x0, 0x6, 0xfe, 0x0,
+    0x1f, 0xf8, 0x0, 0x0, 0x6f, 0xfe, 0xaa, 0xaa,
+    0xff, 0xf4, 0x3, 0xff, 0x97, 0xff, 0xff, 0xfc,
+    0x7f, 0xf4, 0xb8, 0x0, 0x0, 0x7c, 0x0, 0x0,
+    0x6c, 0x0, 0x2a, 0xaa, 0xaf, 0xaa, 0xaa, 0x40,
+    0x0, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x0,
+    0x0, 0x28, 0x1, 0xf0, 0x3, 0x40, 0x0, 0x0,
+    0xf, 0x80, 0x7c, 0x2, 0xe0, 0x0, 0x0, 0x0,
+    0xf0, 0x1f, 0x1, 0xf0, 0x0, 0x1, 0xaa, 0xbe,
+    0xaf, 0xea, 0xfe, 0xaa, 0x0, 0xbf, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xd0,
+
     /* U+936A "鍪" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x2f,
@@ -149162,6 +158848,21 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xf6, 0xaa, 0xfa, 0xea, 0x41, 0xfe, 0xa5, 0x40,
     0xff, 0xff, 0xff, 0xe0,
 
+    /* U+9485 "钅" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0xf0, 0x0, 0x0,
+    0x2f, 0x0, 0x0, 0x3, 0xd0, 0x0, 0x0, 0xbd,
+    0x55, 0x50, 0xf, 0xff, 0xff, 0x2, 0xff, 0xff,
+    0xf0, 0x7d, 0x0, 0x0, 0xf, 0x80, 0x0, 0x3,
+    0xf0, 0x0, 0x0, 0x7f, 0xff, 0xff, 0xd1, 0x3f,
+    0xff, 0xfd, 0x0, 0xf, 0x80, 0x0, 0x0, 0xf4,
+    0x0, 0x0, 0xf, 0x40, 0x0, 0x0, 0xf4, 0x0,
+    0x2f, 0xff, 0xff, 0xf2, 0xff, 0xff, 0xff, 0x0,
+    0xf, 0x80, 0x0, 0x0, 0xf4, 0x0, 0x0, 0xf,
+    0x40, 0x0, 0x0, 0xf4, 0x0, 0x0, 0xf, 0x41,
+    0xc0, 0x0, 0xf9, 0xfd, 0x0, 0xf, 0xff, 0x40,
+    0x2, 0xff, 0x40, 0x0, 0x1f, 0x40, 0x0, 0x0,
+    0x40, 0x0,
+
     /* U+9486 "钆" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0xf, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0x2f,
@@ -149569,33 +159270,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x80, 0x0, 0x3, 0xe0, 0x0, 0x0, 0x6, 0x0,
     0x0, 0x0, 0x20,
 
-    /* U+9496 "钖" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0xb4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xd0,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x1f, 0x0, 0x1f,
-    0xff, 0xff, 0xf0, 0x0, 0xf8, 0x0, 0x7f, 0xff,
-    0xff, 0xc0, 0x7, 0xff, 0xf8, 0x0, 0x1, 0xfd,
-    0x0, 0x3f, 0xff, 0xe0, 0x0, 0x2f, 0x80, 0x3,
-    0xf0, 0x0, 0x0, 0x7, 0xf4, 0x0, 0x1f, 0x0,
-    0x0, 0x0, 0xfe, 0x0, 0x0, 0xf4, 0x0, 0x0,
-    0x2f, 0xc0, 0x0, 0x7, 0xbf, 0xff, 0xc7, 0xf4,
-    0x0, 0x0, 0x4, 0xbf, 0xfe, 0x3f, 0xff, 0xff,
-    0xfe, 0x0, 0x2d, 0x0, 0xff, 0xff, 0xff, 0xf8,
-    0x0, 0xb4, 0x0, 0xf, 0x3, 0xc1, 0xe0, 0x2,
-    0xd0, 0x0, 0x78, 0x1e, 0x7, 0x40, 0xb, 0x40,
-    0x2, 0xd0, 0x74, 0x2d, 0x2f, 0xff, 0xfc, 0xf,
-    0x3, 0xc0, 0xb4, 0xbf, 0xff, 0xf0, 0x78, 0xf,
-    0x2, 0xd0, 0x2, 0xd0, 0x3, 0xc0, 0x78, 0xb,
-    0x0, 0xb, 0x40, 0x2e, 0x3, 0xd0, 0x2c, 0x0,
-    0x2d, 0x2, 0xf0, 0x1f, 0x0, 0xf0, 0x0, 0xb4,
-    0x2f, 0x0, 0xf4, 0x3, 0xc0, 0x2, 0xd0, 0xb4,
-    0x7, 0xc0, 0xf, 0x0, 0xb, 0x5f, 0x0, 0x3d,
-    0x0, 0x3c, 0x0, 0x2f, 0xf8, 0x3, 0xe0, 0x2,
-    0xf0, 0x0, 0xff, 0x40, 0x3f, 0x7, 0xff, 0x40,
-    0x7, 0xd0, 0x3, 0xf0, 0xf, 0xf4, 0x0, 0x8,
-    0x0, 0x7, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0,
-
     /* U+9497 "钗" */
     0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0xf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7,
@@ -149711,6 +159385,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+949C "钜" */
+    0x0, 0x14, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x3c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb8,
+    0x0, 0x2a, 0xaa, 0xaa, 0xa8, 0x0, 0xf4, 0x0,
+    0x7f, 0xff, 0xff, 0xfd, 0x1, 0xfa, 0xa8, 0x7e,
+    0xaa, 0xaa, 0xa8, 0x3, 0xff, 0xfd, 0x7c, 0x0,
+    0x0, 0x0, 0xb, 0xd5, 0x54, 0x7c, 0x0, 0x0,
+    0x0, 0xf, 0x40, 0x0, 0x7c, 0x0, 0x0, 0x0,
+    0x3f, 0x0, 0x0, 0x7c, 0x0, 0x0, 0x0, 0xbd,
+    0x0, 0x0, 0x7e, 0xaa, 0xaa, 0x80, 0x7f, 0xff,
+    0xfc, 0x7f, 0xff, 0xff, 0xd0, 0x3, 0xff, 0xfc,
+    0x7e, 0xaa, 0xab, 0xd0, 0x0, 0x3c, 0x0, 0x7c,
+    0x0, 0x3, 0xd0, 0x0, 0x3c, 0x0, 0x7c, 0x0,
+    0x3, 0xd0, 0x0, 0x3c, 0x0, 0x7c, 0x0, 0x3,
+    0xd0, 0x15, 0x7e, 0x54, 0x7c, 0x0, 0x3, 0xd0,
+    0x3f, 0xff, 0xfc, 0x7c, 0x0, 0x3, 0xd0, 0x2a,
+    0xbe, 0xa8, 0x7f, 0xff, 0xff, 0xd0, 0x0, 0x3c,
+    0x0, 0x7f, 0xff, 0xff, 0xd0, 0x0, 0x3c, 0x0,
+    0x7d, 0x55, 0x55, 0x40, 0x0, 0x3c, 0x0, 0x7c,
+    0x0, 0x0, 0x0, 0x0, 0x3c, 0x0, 0x7c, 0x0,
+    0x0, 0x0, 0x0, 0x3c, 0x1c, 0x7c, 0x0, 0x0,
+    0x0, 0x0, 0x3d, 0xbc, 0x7c, 0x0, 0x0, 0x0,
+    0x0, 0x3f, 0xf8, 0x7c, 0x0, 0x0, 0x0, 0x0,
+    0xbf, 0x80, 0x7f, 0xff, 0xff, 0xff, 0x0, 0x7d,
+    0x0, 0x7f, 0xff, 0xff, 0xff, 0x0, 0x10, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+949D "钝" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0xb, 0x80, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x3,
@@ -150319,6 +160020,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x55, 0x55, 0x55, 0x50, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+94B3 "钳" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xf, 0x40, 0xa, 0x0, 0x0, 0xa0, 0x0, 0x7,
+    0xc0, 0x3, 0xc0, 0x0, 0x7c, 0x0, 0x2, 0xe0,
+    0x0, 0xf0, 0x0, 0x1f, 0x0, 0x0, 0xff, 0xfc,
+    0x3c, 0x0, 0x7, 0xc0, 0x0, 0xbf, 0xff, 0xf,
+    0x0, 0x1, 0xf0, 0x0, 0x7d, 0x0, 0xbf, 0xff,
+    0xff, 0xff, 0xf0, 0x3d, 0x0, 0x1f, 0xff, 0xff,
+    0xff, 0xfc, 0x2f, 0x0, 0x0, 0x7c, 0x0, 0x7,
+    0xc0, 0xf, 0x0, 0x0, 0xf, 0x0, 0x1, 0xf0,
+    0x2, 0xbf, 0xff, 0x83, 0xc0, 0x0, 0x7c, 0x0,
+    0xf, 0xff, 0xe0, 0xf0, 0x0, 0x1f, 0x0, 0x0,
+    0x3c, 0x0, 0x3c, 0x0, 0x7, 0xc0, 0x0, 0xf,
+    0x0, 0xf, 0x0, 0x1, 0xf0, 0x0, 0x3, 0xc0,
+    0x3, 0xc0, 0x0, 0x7c, 0x0, 0x0, 0xf4, 0x0,
+    0xff, 0xff, 0xff, 0x0, 0x2f, 0xff, 0xfc, 0x3f,
+    0xff, 0xff, 0xc0, 0xb, 0xff, 0xff, 0xf, 0x0,
+    0x1, 0xf0, 0x0, 0x3, 0xc0, 0x3, 0xc0, 0x0,
+    0x7c, 0x0, 0x0, 0xf0, 0x0, 0xf0, 0x0, 0x1f,
+    0x0, 0x0, 0x3c, 0x0, 0x3c, 0x0, 0x7, 0xc0,
+    0x0, 0xf, 0x1, 0xf, 0x0, 0x1, 0xf0, 0x0,
+    0x3, 0xc3, 0xc3, 0xc0, 0x0, 0x7c, 0x0, 0x0,
+    0xfb, 0xf0, 0xf0, 0x0, 0x1f, 0x0, 0x0, 0x3f,
+    0xe0, 0x3f, 0xff, 0xff, 0xc0, 0x0, 0x2f, 0xd0,
+    0xf, 0xff, 0xff, 0xf0, 0x0, 0x7, 0x80, 0x3,
+    0xc0, 0x0, 0x7c, 0x0, 0x0, 0x40, 0x0, 0xf0,
+    0x0, 0x1f, 0x0,
+
     /* U+94B4 "钴" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x28, 0x0, 0x0, 0x7, 0x80, 0x0, 0x0, 0x3d,
@@ -150375,6 +160104,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x7c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+94B6 "钶" */
+    0x0, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x3e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c,
+    0x1, 0xaa, 0xaa, 0xaa, 0xaa, 0x0, 0xbc, 0x1,
+    0xff, 0xff, 0xff, 0xff, 0x1, 0xff, 0xfd, 0x55,
+    0x55, 0x57, 0xd5, 0x3, 0xff, 0xfc, 0x0, 0x0,
+    0x3, 0xc0, 0x7, 0xc0, 0x0, 0x0, 0x0, 0x3,
+    0xc0, 0xf, 0x40, 0x0, 0x0, 0x0, 0x3, 0xc0,
+    0x3e, 0x0, 0x0, 0xbf, 0xff, 0x3, 0xc0, 0x3f,
+    0xff, 0xf8, 0xbf, 0xff, 0x3, 0xc0, 0x3, 0xff,
+    0xf8, 0xb4, 0xf, 0x3, 0xc0, 0x0, 0x3d, 0x0,
+    0xb0, 0xf, 0x3, 0xc0, 0x0, 0x3c, 0x0, 0xb0,
+    0xf, 0x3, 0xc0, 0x0, 0x3c, 0x0, 0xb0, 0xf,
+    0x3, 0xc0, 0x0, 0x3c, 0x0, 0xb0, 0xf, 0x3,
+    0xc0, 0xf, 0xff, 0xfc, 0xb0, 0xf, 0x3, 0xc0,
+    0xf, 0xff, 0xfc, 0xb0, 0xf, 0x3, 0xc0, 0x0,
+    0x3d, 0x0, 0xb4, 0xf, 0x3, 0xc0, 0x0, 0x3c,
+    0x0, 0xbf, 0xff, 0x3, 0xc0, 0x0, 0x3c, 0x0,
+    0xbf, 0xff, 0x3, 0xc0, 0x0, 0x3c, 0x4, 0x0,
+    0x0, 0x3, 0xc0, 0x0, 0x3c, 0x3c, 0x0, 0x0,
+    0x3, 0xc0, 0x0, 0x3d, 0xfc, 0x0, 0x0, 0x3,
+    0xc0, 0x0, 0x3f, 0xe0, 0x0, 0x0, 0x3, 0xc0,
+    0x0, 0x7f, 0x40, 0x0, 0x5, 0xaf, 0xc0, 0x0,
+    0x7c, 0x0, 0x0, 0xf, 0xff, 0x40, 0x0, 0x10,
+    0x0, 0x0, 0x7, 0xa4, 0x0,
+
     /* U+94B7 "钷" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x38, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb8,
@@ -150402,6 +160157,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0xff, 0xff, 0xff, 0xff, 0x0, 0x10, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+94B8 "钸" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xf, 0x40, 0x0, 0x1f, 0x0, 0x0, 0x0, 0x3,
+    0xc0, 0x0, 0xb, 0x80, 0x0, 0x0, 0x2, 0xe0,
+    0x0, 0x3, 0xd0, 0x0, 0x0, 0x0, 0xf4, 0x0,
+    0x1, 0xf0, 0x0, 0x0, 0x0, 0xbf, 0xff, 0x7f,
+    0xff, 0xff, 0xff, 0xd0, 0x3e, 0xaa, 0x8f, 0xff,
+    0xff, 0xff, 0xf4, 0x3e, 0x0, 0x0, 0x1f, 0x0,
+    0x0, 0x0, 0x1f, 0x0, 0x0, 0xf, 0x81, 0x0,
+    0x0, 0xf, 0x40, 0x0, 0x7, 0xc0, 0xe0, 0x0,
+    0x2, 0xbf, 0xff, 0x83, 0xe0, 0x38, 0x0, 0x0,
+    0xf, 0xff, 0xe1, 0xf0, 0xe, 0x0, 0x0, 0x0,
+    0x3c, 0x0, 0xff, 0xff, 0xff, 0xf8, 0x0, 0xf,
+    0x0, 0xbf, 0xff, 0xff, 0xff, 0x0, 0x3, 0xc0,
+    0xbf, 0x40, 0x78, 0x3, 0xc0, 0x0, 0xf0, 0x2f,
+    0xd0, 0xe, 0x0, 0xf0, 0xf, 0xff, 0xf9, 0xb4,
+    0x3, 0x80, 0x3c, 0x3, 0xff, 0xfd, 0x2d, 0x0,
+    0xe0, 0xf, 0x0, 0x3, 0xc0, 0xb, 0x40, 0x38,
+    0x3, 0xc0, 0x0, 0xf0, 0x2, 0xd0, 0xe, 0x0,
+    0xf0, 0x0, 0x3c, 0x0, 0xb4, 0x3, 0x80, 0x3c,
+    0x0, 0xf, 0x0, 0x2d, 0x0, 0xe0, 0xf, 0x0,
+    0x3, 0xc2, 0x8b, 0x40, 0x38, 0x7, 0xc0, 0x0,
+    0xf7, 0xf2, 0xd0, 0xe, 0x3f, 0xe0, 0x0, 0x3f,
+    0xf0, 0xb4, 0x3, 0x8b, 0xe0, 0x0, 0x3f, 0xd0,
+    0x14, 0x0, 0xe0, 0x0, 0x0, 0x7, 0x40, 0x0,
+    0x0, 0x38, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xe, 0x0, 0x0,
+
     /* U+94B9 "钹" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0xb, 0x40, 0x0, 0xf4, 0xd, 0x0, 0x0, 0x3,
@@ -151204,34 +160987,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x3f, 0x40, 0x0, 0xbf, 0xf0, 0x0, 0x0, 0x18,
     0x0, 0x0, 0x0, 0x0,
 
-    /* U+94DA "铚" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3,
-    0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0xe0,
-    0x3, 0xff, 0xff, 0xff, 0xf4, 0x0, 0xf4, 0x0,
-    0xff, 0xff, 0xff, 0xfd, 0x0, 0xbf, 0xff, 0x0,
-    0xb, 0xc0, 0x0, 0x0, 0x3f, 0xff, 0xc0, 0x3,
-    0xd0, 0x0, 0x0, 0x2e, 0x0, 0x0, 0x3, 0xe0,
-    0xb0, 0x0, 0x1f, 0x0, 0x0, 0x2, 0xf0, 0x2f,
-    0x0, 0xf, 0x80, 0x0, 0x1, 0xf0, 0x3, 0xe0,
-    0x2, 0xbf, 0xff, 0x40, 0xf4, 0x0, 0x3d, 0x0,
-    0xb, 0xff, 0xd0, 0xfe, 0xbf, 0xff, 0xc0, 0x0,
-    0x3c, 0x0, 0xff, 0xff, 0xff, 0xf8, 0x0, 0xf,
-    0x0, 0x19, 0x50, 0x0, 0xf, 0x0, 0x3, 0xc0,
-    0x0, 0x0, 0x50, 0x2, 0x0, 0x0, 0xf4, 0x0,
-    0x0, 0x2e, 0x0, 0x0, 0xf, 0xff, 0xfc, 0x0,
-    0xb, 0x80, 0x0, 0x3, 0xff, 0xff, 0x0, 0x2,
-    0xe0, 0x0, 0x0, 0x3, 0xc0, 0xb, 0xff, 0xff,
-    0xff, 0x80, 0x0, 0xf0, 0x2, 0xff, 0xff, 0xff,
-    0xe0, 0x0, 0x3c, 0x0, 0x0, 0xb, 0x80, 0x0,
-    0x0, 0xf, 0x0, 0x0, 0x2, 0xe0, 0x0, 0x0,
-    0x3, 0xc1, 0xd0, 0x0, 0xb8, 0x0, 0x0, 0x0,
-    0xf2, 0xf8, 0x0, 0x2e, 0x0, 0x0, 0x0, 0x3f,
-    0xf8, 0x0, 0xb, 0x80, 0x0, 0x0, 0x2f, 0xe0,
-    0xff, 0xff, 0xff, 0xff, 0xc0, 0x7, 0xd0, 0x3f,
-    0xff, 0xff, 0xff, 0xf0, 0x0, 0x40, 0x0, 0x0,
-    0x0, 0x0, 0x0,
-
     /* U+94DB "铛" */
     0x0, 0xa0, 0x0, 0x0, 0x3c, 0x0, 0x0, 0xf,
     0x0, 0x14, 0x3, 0xc0, 0x4, 0x1, 0xf0, 0x7,
@@ -151359,6 +161114,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xb, 0x0, 0x3d, 0x0, 0x0, 0xf, 0x0, 0x0,
     0x0, 0xf0, 0x0, 0x0, 0x3c,
 
+    /* U+94E0 "铠" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xf, 0x0, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x7,
+    0xc0, 0x4, 0x0, 0xf0, 0x1, 0x0, 0x2, 0xe0,
+    0x3, 0x80, 0x3c, 0x2, 0xd0, 0x0, 0xf5, 0x50,
+    0xe0, 0xf, 0x0, 0xb4, 0x0, 0xbf, 0xff, 0x38,
+    0x3, 0xc0, 0x2d, 0x0, 0x3f, 0xff, 0x8f, 0x0,
+    0xf0, 0xb, 0x40, 0x2e, 0x0, 0x3, 0xff, 0xff,
+    0xff, 0xd0, 0xf, 0x0, 0x0, 0xff, 0xff, 0xff,
+    0xf4, 0xf, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x3, 0xef, 0xff, 0x40, 0x0, 0x0, 0x0, 0x0,
+    0xf, 0xff, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x1,
+    0x7d, 0x51, 0xff, 0xff, 0xff, 0xf0, 0x0, 0xf,
+    0x0, 0x7f, 0xff, 0xff, 0xfc, 0x0, 0x3, 0xc0,
+    0x0, 0x0, 0x0, 0xf, 0x0, 0x0, 0xf4, 0x0,
+    0x0, 0x0, 0x3, 0xc0, 0x1f, 0xff, 0xfc, 0x0,
+    0x0, 0x0, 0xf0, 0x2, 0xaf, 0xaa, 0x3f, 0xff,
+    0xff, 0xfc, 0x0, 0x3, 0xc0, 0xf, 0xff, 0xff,
+    0xff, 0x0, 0x0, 0xf0, 0x3, 0xc0, 0x0, 0x0,
+    0x0, 0x0, 0x3c, 0x0, 0xf0, 0x0, 0x0, 0x0,
+    0x0, 0xf, 0x1, 0x3c, 0x0, 0x0, 0x3, 0xc0,
+    0x3, 0xc7, 0xcf, 0x0, 0x0, 0x0, 0xf0, 0x0,
+    0xfb, 0xe3, 0xc0, 0x0, 0x0, 0x7c, 0x0, 0x3f,
+    0xd0, 0xfd, 0x0, 0x1, 0x7e, 0x0, 0x2f, 0x80,
+    0x2f, 0xff, 0xff, 0xff, 0x40, 0x3, 0x40, 0x2,
+    0xff, 0xff, 0xfe, 0x40, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+94E1 "铡" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x3c, 0x0, 0x0, 0x0, 0x0, 0x18, 0x0, 0x7c,
@@ -151470,6 +161253,35 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x80, 0x2, 0xff, 0xff, 0xc0, 0x0, 0x1, 0x80,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+94E5 "铥" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xf, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3,
+    0xc0, 0x0, 0x0, 0x0, 0x6, 0x80, 0x2, 0xe0,
+    0x0, 0x1, 0x6b, 0xff, 0xf0, 0x0, 0xf4, 0x0,
+    0xbf, 0xff, 0xff, 0xe4, 0x0, 0xbf, 0xff, 0xaf,
+    0xfb, 0xe0, 0x0, 0x0, 0x3f, 0xff, 0xe0, 0x0,
+    0xb4, 0x0, 0x0, 0x3e, 0x0, 0x0, 0x0, 0x2d,
+    0x0, 0x0, 0x1f, 0x0, 0x0, 0x0, 0xb, 0x40,
+    0x0, 0xf, 0x40, 0x0, 0x5, 0x57, 0xe5, 0x55,
+    0x3, 0xff, 0xff, 0xc7, 0xff, 0xff, 0xff, 0xc0,
+    0xf, 0xff, 0xf0, 0xaa, 0xbf, 0xaa, 0xa0, 0x0,
+    0x3d, 0x0, 0x0, 0xb, 0x40, 0x0, 0x0, 0xf,
+    0x40, 0x0, 0x2, 0xd0, 0x0, 0x0, 0x3, 0xd0,
+    0x0, 0x0, 0xb4, 0x0, 0x0, 0x0, 0xf4, 0x0,
+    0x0, 0x2d, 0x0, 0x0, 0xf, 0xff, 0xfc, 0xff,
+    0xff, 0xff, 0xff, 0x43, 0xff, 0xff, 0x3f, 0xff,
+    0xff, 0xff, 0xd0, 0x3, 0xd0, 0x0, 0xb, 0xc0,
+    0x0, 0x0, 0x0, 0xf4, 0x0, 0x3, 0xd0, 0x24,
+    0x0, 0x0, 0x3d, 0x0, 0x3, 0xe0, 0x1f, 0x0,
+    0x0, 0xf, 0x40, 0x1, 0xf0, 0x2, 0xf0, 0x0,
+    0x3, 0xd2, 0xc0, 0xf4, 0x0, 0x3d, 0x0, 0x0,
+    0xf7, 0xf0, 0xf8, 0x0, 0x7, 0xc0, 0x0, 0x3f,
+    0xf5, 0xfe, 0xbf, 0xff, 0xfc, 0x0, 0x1f, 0xe0,
+    0xbf, 0xff, 0xff, 0xff, 0x40, 0x7, 0xd0, 0xe,
+    0x95, 0x50, 0x2, 0xf0, 0x0, 0x80, 0x0, 0x0,
+    0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+94E7 "铧" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0xb, 0x40, 0x0, 0x60, 0x64, 0x0, 0x0, 0x3,
@@ -151832,6 +161644,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x3, 0xff, 0x80, 0x0, 0x0, 0x20, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+94F4 "铴" */
+    0x0, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2,
+    0xd0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0x0,
+    0xb4, 0xa, 0xaa, 0xa8, 0x0, 0x7c, 0x1, 0xf8,
+    0x3f, 0xff, 0xf4, 0x2, 0xff, 0xe0, 0xf8, 0x55,
+    0x5f, 0xc0, 0xf, 0xff, 0xc0, 0xf0, 0x0, 0xbd,
+    0x0, 0xb8, 0x0, 0x1, 0x80, 0xb, 0xc0, 0x3,
+    0xc0, 0x0, 0x0, 0x0, 0xfc, 0x0, 0x3e, 0x0,
+    0x4, 0x0, 0xf, 0xc0, 0x1, 0xf0, 0x0, 0xb8,
+    0x0, 0xf8, 0x0, 0x2, 0x7f, 0xfd, 0xf8, 0xf,
+    0x80, 0x0, 0x0, 0xff, 0xf4, 0xf8, 0xff, 0xff,
+    0xfe, 0x0, 0x78, 0x0, 0xf3, 0xff, 0xff, 0xf8,
+    0x1, 0xe0, 0x0, 0x40, 0xf0, 0xe1, 0xe0, 0x7,
+    0x80, 0x0, 0x3, 0x83, 0x87, 0x80, 0x1e, 0x0,
+    0x0, 0x1d, 0x1d, 0x1e, 0x1f, 0xff, 0xf0, 0xf0,
+    0xf0, 0xb0, 0x74, 0x7f, 0xff, 0xc3, 0x83, 0x83,
+    0xc2, 0xd0, 0x7, 0x80, 0x1d, 0x2d, 0xe, 0xb,
+    0x40, 0x1e, 0x0, 0xb0, 0xf0, 0xb4, 0x2d, 0x0,
+    0x78, 0x3, 0xcb, 0x43, 0xc0, 0xf0, 0x1, 0xe0,
+    0xe, 0x7c, 0x1e, 0x3, 0xc0, 0x7, 0x89, 0xb7,
+    0xc0, 0xf4, 0xf, 0x0, 0x1e, 0xbb, 0xcd, 0x7,
+    0xc0, 0x3c, 0x0, 0x7f, 0xdf, 0x0, 0x3c, 0x7,
+    0xf0, 0x2, 0xf8, 0x74, 0x3, 0xe3, 0xff, 0x40,
+    0xf, 0x42, 0xc0, 0x2f, 0xb, 0xf4, 0x0, 0x0,
+    0x0, 0x0, 0x20, 0x0, 0x0,
+
     /* U+94F5 "铵" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0xe, 0x0, 0x0, 0x7, 0x80, 0x0, 0x0, 0x7,
@@ -152001,34 +161839,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x1, 0xf0, 0xf, 0x1f, 0xf0, 0x0, 0x10, 0x1,
     0xf0, 0x0, 0xf, 0x80,
 
-    /* U+94FB "铻" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0xf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7,
-    0xc0, 0x5, 0x55, 0x55, 0x55, 0x40, 0x2, 0xe0,
-    0x3, 0xff, 0xff, 0xff, 0xf0, 0x0, 0xf5, 0x54,
-    0xaa, 0xfe, 0xaa, 0xa8, 0x0, 0xbf, 0xff, 0x40,
-    0x3d, 0x0, 0x0, 0x0, 0x3f, 0xff, 0xc0, 0xf,
-    0x0, 0x0, 0x0, 0x3e, 0x0, 0x0, 0x7, 0xc0,
-    0x0, 0x0, 0x1f, 0x0, 0x0, 0x7f, 0xff, 0xff,
-    0xd0, 0xf, 0x40, 0x0, 0x1a, 0xfe, 0xaa, 0xf0,
-    0x7, 0xbf, 0xff, 0x40, 0x2d, 0x0, 0x3c, 0x0,
-    0x8f, 0xff, 0xd0, 0xf, 0x40, 0xf, 0x0, 0x0,
-    0x3c, 0x0, 0x3, 0xc0, 0x3, 0xc0, 0x0, 0xf,
-    0x0, 0xbf, 0xff, 0xff, 0xff, 0xd0, 0x3, 0xc0,
-    0x3f, 0xff, 0xff, 0xff, 0xf4, 0x2a, 0xfa, 0x90,
-    0x0, 0x0, 0x0, 0x0, 0xf, 0xff, 0xfc, 0x0,
-    0x0, 0x0, 0x0, 0x2, 0xaf, 0xea, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x3, 0xc0, 0x3, 0xff, 0xff,
-    0xff, 0x0, 0x0, 0xf0, 0x0, 0xff, 0xff, 0xff,
-    0xc0, 0x0, 0x3c, 0x0, 0x3c, 0x0, 0x0, 0xf0,
-    0x0, 0xf, 0x5, 0xf, 0x0, 0x0, 0x3c, 0x0,
-    0x3, 0xcb, 0x83, 0xc0, 0x0, 0xf, 0x0, 0x0,
-    0xff, 0xd0, 0xf0, 0x0, 0x3, 0xc0, 0x0, 0x7f,
-    0xc0, 0x3f, 0xff, 0xff, 0xf0, 0x0, 0x3f, 0x80,
-    0xf, 0xff, 0xff, 0xfc, 0x0, 0x3, 0x40, 0x3,
-    0xc0, 0x0, 0xf, 0x0, 0x0, 0x0, 0x0, 0xf0,
-    0x0, 0x3, 0xc0,
-
     /* U+94FC "铼" */
     0x0, 0x10, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0,
     0x3, 0xc0, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x0,
@@ -152058,6 +161868,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf0,
     0x0, 0x0,
 
+    /* U+94FD "铽" */
+    0x0, 0x14, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0,
+    0xf, 0x0, 0x0, 0x0, 0x3c, 0x70, 0x0, 0xb,
+    0x40, 0x0, 0x0, 0xf, 0x1f, 0x0, 0x3, 0xc0,
+    0x0, 0x0, 0x2, 0xc2, 0xe0, 0x1, 0xff, 0xf8,
+    0x0, 0x0, 0xb4, 0x3c, 0x0, 0xff, 0xff, 0x0,
+    0x0, 0x2d, 0x0, 0x0, 0x7c, 0x0, 0x3f, 0xff,
+    0xff, 0xff, 0xf0, 0x3d, 0x0, 0xf, 0xff, 0xff,
+    0xff, 0xfc, 0x1f, 0x0, 0x0, 0x0, 0x0, 0xb4,
+    0x0, 0xf, 0x0, 0x0, 0x3, 0x40, 0x1d, 0x0,
+    0x3, 0xbf, 0xff, 0x0, 0xf0, 0x7, 0x40, 0x0,
+    0xf, 0xff, 0xc0, 0x1d, 0x1, 0xe0, 0x0, 0x0,
+    0x3c, 0x0, 0x3, 0xc0, 0x38, 0x0, 0x0, 0xf,
+    0x0, 0xe, 0x74, 0xe, 0x0, 0x0, 0x3, 0xc0,
+    0x27, 0xcd, 0x43, 0xc0, 0x0, 0x0, 0xf0, 0xd,
+    0xf0, 0x38, 0xf0, 0x0, 0x1f, 0xff, 0xf7, 0x7c,
+    0xb, 0x3c, 0x0, 0x7, 0xff, 0xfe, 0xcf, 0x1,
+    0xdb, 0x0, 0x0, 0x3, 0xc0, 0xf3, 0xc0, 0x3a,
+    0xd0, 0x0, 0x0, 0xf0, 0x38, 0xf0, 0xf, 0x78,
+    0x0, 0x0, 0x3c, 0xd, 0x3c, 0x2, 0xde, 0x0,
+    0x0, 0xf, 0xb, 0xf, 0xe, 0x77, 0xc0, 0x0,
+    0x3, 0xc0, 0x43, 0xc3, 0xc4, 0xf0, 0x34, 0x0,
+    0xf2, 0xc0, 0xf0, 0xe0, 0x2e, 0x1d, 0x0, 0x3f,
+    0xf0, 0x3c, 0x78, 0x7, 0xef, 0x0, 0x2f, 0xd0,
+    0xb, 0xfd, 0x0, 0xbf, 0x80, 0xb, 0x40, 0x0,
+    0xbe, 0x0, 0xb, 0x80, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+94FE "链" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x2d, 0x0, 0x0, 0x0, 0xb4, 0x0, 0x0, 0xf,
@@ -152478,6 +162316,61 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x3, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0xf0, 0x0, 0x0,
 
+    /* U+950D "锍" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xf, 0x0, 0x0, 0xf, 0x0, 0x0, 0x0, 0x7,
+    0xc0, 0x0, 0x3, 0xd0, 0x0, 0x0, 0x3, 0xd0,
+    0x0, 0x0, 0x7c, 0x0, 0x0, 0x1, 0xf0, 0x0,
+    0x55, 0x6f, 0x95, 0x54, 0x0, 0xff, 0xfe, 0x7f,
+    0xff, 0xff, 0xff, 0x0, 0x7f, 0xff, 0x9a, 0xaf,
+    0xea, 0xaa, 0x80, 0x3d, 0x0, 0x0, 0xb, 0xc0,
+    0x0, 0x0, 0x2f, 0x0, 0x0, 0x7, 0xc0, 0x3c,
+    0x0, 0x1f, 0x0, 0x0, 0x3, 0xd0, 0xb, 0xc0,
+    0x1, 0x7f, 0xff, 0x3, 0xe0, 0x0, 0xbc, 0x0,
+    0xf, 0xff, 0xc7, 0xfa, 0xaf, 0xff, 0xc0, 0x0,
+    0x3c, 0x3, 0xff, 0xff, 0xff, 0xf8, 0x0, 0xf,
+    0x0, 0x65, 0x54, 0x0, 0xf, 0x0, 0x3, 0xc0,
+    0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0xf0, 0x0,
+    0xf0, 0xf0, 0x3c, 0x0, 0xf, 0xff, 0xf8, 0x3c,
+    0x3c, 0xf, 0x0, 0x3, 0xff, 0xfe, 0xf, 0xf,
+    0x3, 0xc0, 0x0, 0x3, 0xc0, 0x3, 0xc3, 0xc0,
+    0xf0, 0x0, 0x0, 0xf0, 0x0, 0xf0, 0xf0, 0x3c,
+    0x0, 0x0, 0x3c, 0x0, 0x78, 0x3c, 0xf, 0x0,
+    0x0, 0xf, 0x1, 0x1e, 0xf, 0x3, 0xc0, 0x80,
+    0x3, 0xcb, 0x8f, 0x43, 0xc0, 0xf0, 0x38, 0x0,
+    0xff, 0xd7, 0xc0, 0xf0, 0x3c, 0x1e, 0x0, 0x3f,
+    0x83, 0xd0, 0x3c, 0xf, 0xb, 0x40, 0x2f, 0x43,
+    0xe0, 0xf, 0x3, 0xff, 0xc0, 0x2, 0x3, 0xf0,
+    0x3, 0xc0, 0x7f, 0xe0, 0x0, 0x0, 0x70, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
+    /* U+950E "锎" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xe0, 0x3, 0x0, 0x0, 0x0, 0x0, 0xb, 0x80,
+    0x2f, 0x0, 0x0, 0x0, 0x0, 0x3c, 0x0, 0x2f,
+    0xf, 0xff, 0xfe, 0x1, 0xf0, 0x0, 0x3e, 0x2f,
+    0xff, 0xf8, 0xf, 0xff, 0xc0, 0x38, 0x0, 0x0,
+    0xe0, 0x7f, 0xff, 0x50, 0x40, 0x0, 0x3, 0x83,
+    0xd0, 0x1, 0xe0, 0x0, 0x0, 0xe, 0x3e, 0x0,
+    0x7, 0x9f, 0xff, 0xfe, 0x39, 0xf0, 0x0, 0x1e,
+    0x6f, 0xeb, 0xe4, 0xe2, 0xbf, 0xfd, 0x78, 0x1d,
+    0xe, 0x3, 0x81, 0xff, 0xf5, 0xe0, 0x74, 0x38,
+    0xe, 0x0, 0x78, 0x7, 0x81, 0xd0, 0xe0, 0x38,
+    0x1, 0xe0, 0x1e, 0x7, 0x43, 0x80, 0xe0, 0x7,
+    0x80, 0x78, 0x1d, 0xe, 0x3, 0x80, 0x1e, 0x1,
+    0xeb, 0xff, 0xff, 0xde, 0x1f, 0xff, 0xf7, 0xbf,
+    0xff, 0xff, 0x78, 0x7f, 0xff, 0xde, 0xb, 0x47,
+    0xc0, 0xe0, 0x7, 0x80, 0x78, 0x2d, 0xe, 0x3,
+    0x80, 0x1e, 0x1, 0xe0, 0xb0, 0x38, 0xe, 0x0,
+    0x78, 0x7, 0x83, 0xc0, 0xe0, 0x38, 0x1, 0xe0,
+    0x1e, 0xf, 0x3, 0x80, 0xe0, 0x7, 0x8e, 0x78,
+    0xb8, 0xe, 0x3, 0x80, 0x1f, 0xf9, 0xe3, 0xc0,
+    0x38, 0xe, 0x0, 0x7f, 0x87, 0xae, 0x0, 0xe0,
+    0x38, 0x3, 0xf4, 0x1e, 0xb0, 0x2, 0x5b, 0xe0,
+    0xb, 0x0, 0x78, 0x0, 0x0, 0xbf, 0x40, 0x0,
+    0x1, 0xe0, 0x0, 0x1, 0xa0,
+
     /* U+950F "锏" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1,
     0xd0, 0x1, 0x0, 0x0, 0x0, 0x0, 0xb, 0x40,
@@ -152838,34 +162731,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x74, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0,
     0x0, 0x0,
 
-    /* U+951C "锜" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0xf, 0x0, 0x0, 0x2, 0xd0, 0x0, 0x0, 0x3,
-    0xc0, 0x0, 0x0, 0xb4, 0x0, 0x0, 0x2, 0xe0,
-    0x0, 0x0, 0x2d, 0x0, 0x0, 0x0, 0xf4, 0x0,
-    0xff, 0xff, 0xff, 0xfc, 0x0, 0xbf, 0xff, 0x3f,
-    0xff, 0xff, 0xff, 0x0, 0x3e, 0xaa, 0x80, 0x1,
-    0xf0, 0x0, 0x0, 0x3e, 0x0, 0x0, 0x0, 0xff,
-    0x40, 0x0, 0x1f, 0x0, 0x0, 0x1, 0xfa, 0xfd,
-    0x0, 0xf, 0x40, 0x0, 0x7, 0xf8, 0xb, 0xf0,
-    0x2, 0xaf, 0xff, 0x4f, 0xe0, 0x0, 0x3f, 0x0,
-    0x6, 0xfe, 0x91, 0x80, 0x0, 0x1, 0x40, 0x0,
-    0x2c, 0x3, 0xff, 0xff, 0xff, 0xff, 0x0, 0xb,
-    0x0, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x2, 0xc0,
-    0x0, 0x0, 0x0, 0x1d, 0x0, 0x0, 0xb4, 0x0,
-    0x0, 0x0, 0x7, 0x40, 0xf, 0xff, 0xfc, 0x0,
-    0x0, 0x1, 0xd0, 0x3, 0xff, 0xff, 0x1f, 0xff,
-    0xe0, 0x74, 0x0, 0x2, 0xd0, 0x7, 0xea, 0xb8,
-    0x1d, 0x0, 0x0, 0xb0, 0x1, 0xe0, 0xe, 0x7,
-    0x40, 0x0, 0x2c, 0x0, 0x78, 0x3, 0x81, 0xd0,
-    0x0, 0xb, 0x0, 0x1e, 0x0, 0xe0, 0x74, 0x0,
-    0x2, 0xc2, 0x47, 0xff, 0xf8, 0x1d, 0x0, 0x0,
-    0xbb, 0xe1, 0xff, 0xfe, 0x7, 0x40, 0x0, 0x3f,
-    0xe0, 0x0, 0x0, 0x2, 0xd0, 0x0, 0x1f, 0xd0,
-    0x0, 0x0, 0x16, 0xf4, 0x0, 0x3, 0x40, 0x0,
-    0x0, 0xf, 0xfc, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x2, 0xa4, 0x0,
-
     /* U+951D "锝" */
     0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0xb8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf0,
@@ -153577,6 +163442,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x2c, 0xf8, 0x0, 0x2, 0xe0, 0x4, 0x0, 0xb,
     0x8, 0x0, 0x0, 0x20,
 
+    /* U+953A "锺" */
+    0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x3c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x78,
+    0x1, 0x56, 0xab, 0xff, 0xf0, 0x0, 0xf4, 0x3,
+    0xff, 0xff, 0xff, 0xa0, 0x1, 0xf5, 0x51, 0x55,
+    0x1e, 0x0, 0x0, 0x3, 0xff, 0xf0, 0x0, 0xe,
+    0x0, 0x0, 0x7, 0xd5, 0x5b, 0xff, 0xff, 0xff,
+    0xfe, 0xf, 0x40, 0xb, 0xff, 0xff, 0xff, 0xff,
+    0x2f, 0x0, 0x0, 0x0, 0xe, 0x0, 0x0, 0x7d,
+    0x0, 0x0, 0x0, 0xe, 0x0, 0x0, 0x2f, 0xff,
+    0xf2, 0xaa, 0xaf, 0xaa, 0xa0, 0x7, 0xff, 0xf3,
+    0xff, 0xff, 0xff, 0xf0, 0x0, 0x3c, 0x3, 0xc0,
+    0xe, 0x0, 0xf0, 0x0, 0x3c, 0x3, 0xc0, 0xe,
+    0x0, 0xf0, 0x0, 0x3c, 0x3, 0xff, 0xff, 0xff,
+    0xf0, 0x0, 0x7c, 0x3, 0xea, 0xaf, 0xaa, 0xf0,
+    0x2f, 0xff, 0xf3, 0xc0, 0xe, 0x0, 0xf0, 0x1a,
+    0xfe, 0xa3, 0xea, 0xaf, 0xaa, 0xf0, 0x0, 0x3c,
+    0x3, 0xff, 0xff, 0xff, 0xf0, 0x0, 0x3c, 0x0,
+    0x0, 0xe, 0x0, 0x0, 0x0, 0x3c, 0x0, 0x0,
+    0xe, 0x0, 0x0, 0x0, 0x3c, 0x13, 0xff, 0xff,
+    0xff, 0xf4, 0x0, 0x3c, 0xb7, 0xff, 0xff, 0xff,
+    0xf4, 0x0, 0x3f, 0xf0, 0x0, 0xe, 0x0, 0x0,
+    0x0, 0x7f, 0x80, 0x0, 0xe, 0x0, 0x0, 0x0,
+    0xfd, 0x1f, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x70,
+    0x1f, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+953B "锻" */
     0x0, 0x28, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0xf, 0x0, 0x1, 0xb4, 0x55, 0x50, 0x0, 0xb,
@@ -153604,6 +163496,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xf0, 0xfc, 0x0, 0x7, 0xc0, 0x0, 0x0, 0x3c,
     0x14, 0x0, 0x0, 0x0,
 
+    /* U+953C "锼" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xe, 0x0, 0x0, 0xf, 0x0, 0x0, 0x0, 0xb,
+    0x80, 0x0, 0x13, 0xc0, 0x0, 0x0, 0x3, 0xd0,
+    0x1, 0xfd, 0xf1, 0xaa, 0x40, 0x1, 0xf0, 0x3,
+    0xff, 0x7c, 0xff, 0xf0, 0x0, 0xff, 0xfc, 0xf4,
+    0xf, 0x15, 0x7c, 0x0, 0xbf, 0xff, 0x3c, 0x3,
+    0xc0, 0xf, 0x0, 0x3d, 0x0, 0xf, 0x0, 0xf0,
+    0x3, 0xc0, 0x2f, 0x0, 0x3, 0xff, 0x7c, 0xbf,
+    0xf0, 0x1f, 0x40, 0x0, 0xff, 0xdf, 0x2f, 0xfc,
+    0x3, 0xbf, 0xfe, 0x3c, 0x3, 0xc0, 0xf, 0x0,
+    0xf, 0xff, 0x8f, 0x0, 0xf0, 0x3, 0xc0, 0x0,
+    0x78, 0x3, 0xc0, 0x3c, 0x0, 0xf0, 0x0, 0x1e,
+    0x0, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x7, 0x80,
+    0x3f, 0xff, 0xff, 0xfe, 0x0, 0x1, 0xe0, 0x0,
+    0x0, 0xf0, 0x0, 0x0, 0x2f, 0xff, 0xf0, 0x0,
+    0x3c, 0x0, 0x0, 0x7, 0xff, 0xfd, 0xff, 0xff,
+    0xff, 0xf0, 0x0, 0x7, 0x80, 0x3f, 0xff, 0xff,
+    0xfc, 0x0, 0x1, 0xe0, 0x1, 0xe0, 0x0, 0x3f,
+    0x0, 0x0, 0x78, 0x0, 0x3d, 0x0, 0x3f, 0x0,
+    0x0, 0x1e, 0x0, 0x7, 0xd0, 0x7f, 0x0, 0x0,
+    0x7, 0x83, 0x0, 0x7e, 0xbf, 0x0, 0x0, 0x1,
+    0xeb, 0xd0, 0x3, 0xff, 0x0, 0x0, 0x0, 0x7f,
+    0xd0, 0xb, 0xff, 0xf4, 0x0, 0x0, 0x3f, 0x41,
+    0xbf, 0xe4, 0xbf, 0xf9, 0x0, 0xa, 0x3, 0xff,
+    0x80, 0x1, 0xff, 0xf0, 0x0, 0x0, 0xa4, 0x0,
+    0x0, 0x1, 0xb8,
+
     /* U+953E "锾" */
     0x0, 0x2d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0xf, 0x0, 0x0, 0x1, 0x5a, 0xff, 0x0, 0x7,
@@ -153859,33 +163779,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x28, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+9548 "镈" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x78, 0x0, 0x0, 0xf, 0xf, 0x0, 0x0, 0xb4,
-    0x0, 0x0, 0xf, 0xb, 0xc0, 0x0, 0xf0, 0x1,
-    0x55, 0x5f, 0x56, 0xd4, 0x2, 0xe0, 0x3, 0xff,
-    0xff, 0xff, 0xfe, 0x3, 0xff, 0xf1, 0x55, 0x5f,
-    0x55, 0x55, 0xb, 0xff, 0xf0, 0x0, 0xf, 0x0,
-    0x0, 0x1f, 0x0, 0x0, 0xaa, 0xaf, 0xaa, 0xa0,
-    0x3d, 0x0, 0x1, 0xff, 0xff, 0xff, 0xf0, 0xb8,
-    0x0, 0x1, 0xe0, 0xf, 0x0, 0xb0, 0x3b, 0xff,
-    0xd1, 0xe0, 0xf, 0x0, 0xb0, 0xb, 0xff, 0xe1,
-    0xff, 0xff, 0xff, 0xf0, 0x0, 0x38, 0x1, 0xfa,
-    0xaf, 0xaa, 0xf0, 0x0, 0x38, 0x1, 0xe0, 0xf,
-    0x0, 0xb0, 0x0, 0x38, 0x1, 0xe5, 0x5f, 0x55,
-    0xf0, 0x0, 0x38, 0x1, 0xff, 0xff, 0xff, 0xf0,
-    0x1f, 0xff, 0xf1, 0xe0, 0xf, 0x0, 0xf0, 0x1f,
-    0xff, 0xf1, 0xe0, 0xf, 0x0, 0xb0, 0x0, 0x38,
-    0x0, 0x90, 0x5, 0xf, 0x60, 0x0, 0x38, 0x0,
-    0x0, 0x0, 0xf, 0x0, 0x0, 0x38, 0xf, 0xff,
-    0xff, 0xff, 0xff, 0x0, 0x38, 0xa, 0xbe, 0xaa,
-    0xaf, 0xea, 0x0, 0x38, 0x20, 0x3c, 0x0, 0xf,
-    0x0, 0x0, 0x39, 0xf0, 0x2f, 0x40, 0xf, 0x0,
-    0x0, 0x3f, 0xd0, 0x7, 0xd0, 0xf, 0x0, 0x0,
-    0xbf, 0x0, 0x1, 0xc0, 0x6f, 0x0, 0x0, 0xf8,
-    0x0, 0x0, 0xb, 0xfe, 0x0, 0x0, 0x50, 0x0,
-    0x0, 0x3, 0xa4, 0x0,
-
     /* U+9549 "镉" */
     0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0xb4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf0,
@@ -153942,33 +163835,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xe0, 0x0, 0x2c, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+954B "镋" */
-    0x0, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0,
-    0x3c, 0x0, 0x90, 0xf, 0x0, 0x80, 0x0, 0xb8,
-    0x0, 0xf4, 0xf, 0x2, 0xe0, 0x0, 0xf0, 0x0,
-    0x7c, 0xf, 0x3, 0xc0, 0x1, 0xfa, 0xa0, 0x2e,
-    0xf, 0xf, 0x40, 0x3, 0xff, 0xf0, 0xc, 0xf,
-    0xa, 0x0, 0xb, 0xea, 0xab, 0xff, 0xff, 0xff,
-    0xfc, 0xf, 0x0, 0xb, 0xff, 0xff, 0xff, 0xfc,
-    0x3e, 0x0, 0xb, 0x40, 0x0, 0x0, 0x3c, 0x7d,
-    0x0, 0xb, 0x40, 0x0, 0x0, 0x3c, 0x27, 0xff,
-    0xfb, 0x40, 0x0, 0x0, 0x3c, 0x3, 0xff, 0xeb,
-    0x7f, 0xff, 0xff, 0xbc, 0x0, 0x3c, 0x1, 0x7f,
-    0xff, 0xff, 0xc4, 0x0, 0x3c, 0x0, 0x38, 0x0,
-    0x3, 0xc0, 0x0, 0x3c, 0x0, 0x38, 0x0, 0x3,
-    0xc0, 0x5, 0x7d, 0x50, 0x38, 0x0, 0x3, 0xc0,
-    0x1f, 0xff, 0xf0, 0x38, 0x0, 0x3, 0xc0, 0xa,
-    0xbe, 0xa0, 0x3f, 0xff, 0xff, 0xc0, 0x0, 0x3c,
-    0x0, 0x3f, 0xff, 0xff, 0xc0, 0x0, 0x3c, 0x0,
-    0x3, 0xc0, 0xf0, 0x0, 0x0, 0x3c, 0x0, 0x3,
-    0xc0, 0xf0, 0x0, 0x0, 0x3c, 0x0, 0x7, 0x80,
-    0xf0, 0x9, 0x0, 0x3c, 0x2c, 0xb, 0x40, 0xf0,
-    0xf, 0x0, 0x3d, 0xfc, 0x1f, 0x0, 0xf0, 0xf,
-    0x0, 0x3f, 0xe0, 0xbd, 0x0, 0xf0, 0x1e, 0x0,
-    0xbf, 0x47, 0xf4, 0x0, 0xff, 0xfd, 0x0, 0x38,
-    0xf, 0xc0, 0x0, 0x7f, 0xf8, 0x0, 0x0, 0x5,
-    0x0, 0x0, 0x0, 0x0,
-
     /* U+954C "镌" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x38, 0x0, 0x2c, 0x7, 0x40, 0x0, 0x0, 0x3c,
@@ -154303,32 +164169,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x6, 0xfc, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+955A "镚" */
-    0x0, 0x20, 0x0, 0x0, 0x4, 0x0, 0x0, 0x1,
-    0xe0, 0x0, 0x0, 0x38, 0x0, 0x0, 0xb, 0x40,
-    0x2d, 0x0, 0xe0, 0xf, 0x0, 0x3c, 0x0, 0xb4,
-    0x3, 0x80, 0x3c, 0x2, 0xff, 0xd2, 0xd0, 0xe,
-    0x0, 0xf0, 0xf, 0xff, 0x4b, 0xea, 0xbe, 0xab,
-    0xc0, 0xb8, 0x0, 0x2f, 0xff, 0xff, 0xff, 0x3,
-    0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3d, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0xf0, 0x0, 0x5,
-    0x55, 0x41, 0x55, 0x40, 0x7f, 0xfd, 0x3f, 0xfe,
-    0x2f, 0xff, 0x40, 0xff, 0xf4, 0xf5, 0x78, 0xb5,
-    0x6d, 0x0, 0x38, 0x3, 0xc0, 0xe2, 0xc0, 0x74,
-    0x0, 0xe0, 0xf, 0x3, 0x8b, 0x1, 0xd0, 0x3,
-    0x80, 0x3d, 0x5e, 0x2e, 0x5b, 0x40, 0x1e, 0x0,
-    0xff, 0xf8, 0xbf, 0xfd, 0xf, 0xff, 0xf3, 0xd5,
-    0xe2, 0xd5, 0xb4, 0x3f, 0xff, 0x8f, 0x3, 0x8b,
-    0x1, 0xd0, 0x3, 0x80, 0x3c, 0xe, 0x2c, 0x7,
-    0x40, 0xe, 0x0, 0xfa, 0xb8, 0xbf, 0xfd, 0x0,
-    0x38, 0x3, 0xff, 0xe2, 0xff, 0xf4, 0x0, 0xe0,
-    0xf, 0x3, 0x8f, 0x1, 0xd0, 0x3, 0x9c, 0x38,
-    0xe, 0x3c, 0x7, 0x40, 0xf, 0xf6, 0xd0, 0x38,
-    0xe0, 0x1d, 0x0, 0x7f, 0x4f, 0x0, 0xe7, 0x40,
-    0x74, 0x3, 0xf0, 0x78, 0x1f, 0xbc, 0x7, 0xd0,
-    0x7, 0x3, 0xc0, 0xfe, 0xe0, 0xff, 0x0, 0x0,
-    0xe, 0x1, 0x47, 0x1, 0x90, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0,
+    /* U+9559 "镙" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xb, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3,
+    0xc0, 0x1f, 0xff, 0xff, 0xff, 0x80, 0x2, 0xf0,
+    0x7, 0xff, 0xff, 0xff, 0xe0, 0x0, 0xf9, 0x55,
+    0xd0, 0xf, 0x0, 0x38, 0x0, 0xbf, 0xfe, 0x74,
+    0x3, 0xc0, 0xe, 0x0, 0x3e, 0xaa, 0x5f, 0xff,
+    0xff, 0xff, 0x80, 0x2e, 0x0, 0x7, 0xff, 0xff,
+    0xff, 0xe0, 0x1f, 0x0, 0x1, 0xd0, 0xf, 0x0,
+    0x38, 0xf, 0x40, 0x0, 0x74, 0x3, 0xc0, 0xe,
+    0x2, 0xff, 0xff, 0x5f, 0xff, 0xff, 0xff, 0x80,
+    0x1f, 0xff, 0xd7, 0xff, 0xff, 0xff, 0xe0, 0x0,
+    0x3c, 0x0, 0x0, 0xf4, 0x2, 0x0, 0x0, 0xf,
+    0x0, 0x0, 0xf8, 0x3, 0xf0, 0x0, 0x3, 0xc0,
+    0x1, 0xf8, 0x7, 0xf0, 0x0, 0x0, 0xf0, 0x3,
+    0xff, 0xff, 0xe0, 0x0, 0xf, 0xff, 0xf8, 0xea,
+    0xaf, 0xc2, 0x0, 0x3, 0xff, 0xfe, 0x0, 0x2f,
+    0x81, 0xf4, 0x0, 0x3, 0xc0, 0x0, 0xbe, 0x0,
+    0x1f, 0x40, 0x0, 0xf0, 0xa, 0xff, 0xff, 0xff,
+    0xf0, 0x0, 0x3c, 0x3, 0xff, 0xff, 0xaa, 0xaf,
+    0x0, 0xf, 0x0, 0x0, 0x3, 0xc0, 0x2, 0x0,
+    0x3, 0xc7, 0x81, 0xd0, 0xf0, 0xe0, 0x0, 0x0,
+    0xfb, 0xd1, 0xf4, 0x3c, 0x7f, 0x80, 0x0, 0x7f,
+    0xd2, 0xf4, 0xf, 0x1, 0xfc, 0x0, 0x3f, 0x87,
+    0xf0, 0x5f, 0xc0, 0xf, 0xd0, 0x7, 0x41, 0xe0,
+    0x7f, 0xe0, 0x0, 0x70, 0x0, 0x0, 0x0, 0xa,
+    0x50, 0x0, 0x0,
 
     /* U+955B "镛" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -154443,33 +164310,61 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x7, 0xc0, 0x0, 0x7, 0x0, 0x0, 0x0,
     0x0, 0x10,
 
-    /* U+9560 "镠" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x74, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb4,
-    0x1, 0x55, 0x51, 0x55, 0x50, 0x0, 0xf0, 0x7,
-    0xff, 0xf3, 0xff, 0xf0, 0x2, 0xf0, 0x1, 0x95,
-    0xf1, 0x95, 0xf0, 0x3, 0xff, 0xf0, 0xd0, 0xf1,
-    0xd0, 0xf0, 0xb, 0xff, 0xe0, 0xf4, 0xf0, 0xf0,
-    0xf0, 0xf, 0x0, 0x0, 0x3c, 0xf0, 0x38, 0xf0,
-    0x3e, 0x0, 0x0, 0x6, 0xf0, 0x1b, 0xf0, 0xbc,
-    0x0, 0x0, 0x6f, 0xf0, 0xbe, 0xf0, 0x7b, 0xff,
-    0xe3, 0xf8, 0xf3, 0xf0, 0xf0, 0x7, 0xff, 0xe3,
-    0x80, 0x3f, 0x40, 0xf0, 0x0, 0x74, 0x0, 0x0,
-    0xbf, 0xc0, 0x10, 0x0, 0x74, 0x0, 0x3, 0xf0,
-    0xf4, 0x0, 0x0, 0x74, 0x0, 0x1f, 0x80, 0x3e,
-    0x0, 0x0, 0x74, 0x0, 0xfd, 0x3, 0x8b, 0xe0,
-    0x3f, 0xff, 0xff, 0xe0, 0x2f, 0x80, 0xfe, 0x2f,
-    0xff, 0xfb, 0x42, 0xfc, 0x4, 0x1e, 0x0, 0x74,
-    0x0, 0x6f, 0xd0, 0x2d, 0x0, 0x0, 0x74, 0x0,
-    0xf9, 0x2, 0xfc, 0x0, 0x0, 0x74, 0x0, 0x0,
-    0x2f, 0xd0, 0x10, 0x0, 0x74, 0x0, 0x7, 0xfd,
-    0x1, 0xf4, 0x0, 0x74, 0xb0, 0xbf, 0xd0, 0x1f,
-    0xd0, 0x0, 0x7b, 0xf0, 0xf8, 0x1, 0xfe, 0x0,
-    0x0, 0xbf, 0xc0, 0x40, 0x6f, 0xe0, 0x0, 0x0,
-    0xfe, 0x0, 0x1b, 0xfe, 0x0, 0x0, 0x0, 0xf4,
-    0x7, 0xff, 0x90, 0x0, 0x0, 0x0, 0x0, 0x3,
-    0xe4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0,
+    /* U+955F "镟" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x1e, 0x0, 0x74, 0x0, 0x38, 0x0, 0x0, 0xb,
+    0x40, 0x1e, 0x0, 0x1e, 0x0, 0x0, 0x3, 0xc0,
+    0x3, 0xc0, 0xf, 0x0, 0x0, 0x1, 0xfa, 0x80,
+    0xb4, 0x3, 0xea, 0xaa, 0x0, 0xbf, 0xf7, 0xff,
+    0xf6, 0xff, 0xff, 0xc0, 0x3d, 0x55, 0xff, 0xfd,
+    0xf5, 0x55, 0x50, 0x2d, 0x0, 0xe, 0x0, 0xb8,
+    0x0, 0x0, 0xf, 0x0, 0x3, 0x80, 0x3c, 0x0,
+    0x0, 0xf, 0x40, 0x0, 0xe0, 0x1, 0x0, 0x0,
+    0x2, 0xff, 0xfc, 0x38, 0x1, 0xff, 0xff, 0xf0,
+    0x1f, 0xff, 0xe, 0x0, 0x7f, 0xff, 0xfc, 0x0,
+    0xb4, 0x3, 0xff, 0x40, 0xe, 0xe, 0x0, 0x1d,
+    0x0, 0xff, 0xc0, 0x3, 0x8b, 0x0, 0x7, 0x40,
+    0x38, 0x70, 0x0, 0xe1, 0x80, 0x16, 0xd5, 0xd,
+    0x1c, 0x2c, 0x38, 0x0, 0xf, 0xff, 0xe3, 0x4b,
+    0xb, 0xe, 0x0, 0x1, 0x6e, 0x55, 0xd2, 0xc3,
+    0xc3, 0xff, 0x80, 0x7, 0x40, 0x70, 0xb0, 0xf0,
+    0xff, 0xe0, 0x1, 0xd0, 0x2c, 0x2c, 0x3c, 0x38,
+    0x0, 0x0, 0x74, 0xf, 0xb, 0xe, 0xe, 0x0,
+    0x0, 0x1d, 0x3, 0xc2, 0xc7, 0xc3, 0x80, 0x0,
+    0x7, 0x69, 0xe0, 0xf2, 0xf4, 0xe0, 0x0, 0x1,
+    0xff, 0xb4, 0x3c, 0xff, 0x38, 0x0, 0x0, 0xbf,
+    0x3d, 0xfe, 0x79, 0xff, 0x0, 0x0, 0x3e, 0x1e,
+    0x3e, 0x3d, 0x1f, 0xff, 0xd0, 0xa, 0xf, 0x0,
+    0x2e, 0x0, 0x6f, 0xf0, 0x0, 0x0, 0x40, 0x2,
+    0x0, 0x0, 0x0,
+
+    /* U+9561 "镡" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb,
+    0x80, 0xff, 0xff, 0xff, 0xff, 0xd0, 0x3, 0xc0,
+    0x3f, 0xff, 0xff, 0xff, 0xf8, 0x1, 0xf5, 0x50,
+    0x2, 0xc0, 0xe0, 0x0, 0x0, 0xbf, 0xfc, 0x0,
+    0xb0, 0x38, 0x0, 0x0, 0x3e, 0xa9, 0xbf, 0xff,
+    0xff, 0xff, 0x80, 0x2e, 0x0, 0x2e, 0xaf, 0xab,
+    0xea, 0xe0, 0xf, 0x0, 0xb, 0x2, 0xc0, 0xe0,
+    0x38, 0xf, 0x40, 0x2, 0xc0, 0xb0, 0x38, 0xe,
+    0x3, 0xff, 0xfe, 0xbf, 0xff, 0xff, 0xff, 0x80,
+    0x1f, 0xff, 0x9a, 0xaa, 0xaa, 0xaa, 0x90, 0x0,
+    0x78, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1e,
+    0x0, 0xbf, 0xff, 0xff, 0xf8, 0x0, 0x7, 0x80,
+    0x3e, 0xaa, 0xaa, 0xaf, 0x0, 0x1, 0xe0, 0xf,
+    0x0, 0x0, 0x3, 0xc0, 0x1f, 0xff, 0xf3, 0xea,
+    0xaa, 0xaa, 0xf0, 0x7, 0xff, 0xfc, 0xff, 0xff,
+    0xff, 0xfc, 0x0, 0x7, 0x80, 0x3c, 0x0, 0x0,
+    0xf, 0x0, 0x1, 0xe0, 0xf, 0xaa, 0xaa, 0xab,
+    0xc0, 0x0, 0x78, 0x2, 0xff, 0xff, 0xff, 0xe0,
+    0x0, 0x1e, 0x0, 0x0, 0x7, 0x80, 0x0, 0x0,
+    0x7, 0x86, 0x0, 0x1, 0xe0, 0x0, 0x0, 0x1,
+    0xeb, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x7f,
+    0xca, 0xaa, 0xbf, 0xaa, 0xaa, 0x0, 0x3f, 0x80,
+    0x0, 0x7, 0x80, 0x0, 0x0, 0xb, 0x0, 0x0,
+    0x1, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x78, 0x0, 0x0,
 
     /* U+9562 "镢" */
     0x0, 0xa0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -154861,6 +164756,61 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xf, 0x7, 0x0, 0x10, 0x0, 0x1, 0xc0, 0x3,
     0xc1, 0xc0, 0x0,
 
+    /* U+9571 "镱" */
+    0x0, 0x10, 0x0, 0x0, 0x14, 0x0, 0x0, 0x0,
+    0xb4, 0x0, 0x0, 0x7c, 0x0, 0x0, 0x0, 0xf0,
+    0x0, 0x0, 0x3d, 0x0, 0x0, 0x1, 0xe0, 0x7,
+    0xff, 0xff, 0xff, 0xf8, 0x3, 0xff, 0xf6, 0xbf,
+    0xaa, 0xbe, 0xa4, 0x7, 0xff, 0xf0, 0xe, 0x0,
+    0x3c, 0x0, 0xf, 0x40, 0x0, 0xf, 0x0, 0x38,
+    0x0, 0x1e, 0x0, 0x0, 0xf, 0x0, 0x74, 0x0,
+    0x3c, 0x0, 0xf, 0xff, 0xff, 0xff, 0xfe, 0xb8,
+    0x0, 0xa, 0xaa, 0xaa, 0xaa, 0xa9, 0x2b, 0xff,
+    0xd0, 0x0, 0x0, 0x0, 0x0, 0xb, 0xff, 0xd1,
+    0xaa, 0xaa, 0xaa, 0x80, 0x0, 0xb4, 0x3, 0xff,
+    0xff, 0xff, 0xc0, 0x0, 0xb4, 0x3, 0xc0, 0x0,
+    0x3, 0xc0, 0x0, 0xb4, 0x3, 0xea, 0xaa, 0xab,
+    0xc0, 0x1a, 0xfa, 0xa3, 0xff, 0xff, 0xff, 0xc0,
+    0x2f, 0xff, 0xf3, 0xc0, 0x0, 0x3, 0xc0, 0x5,
+    0xf9, 0x53, 0xc0, 0x0, 0x3, 0xc0, 0x0, 0xb4,
+    0x3, 0xff, 0xff, 0xff, 0xc0, 0x0, 0xb4, 0x1,
+    0xaa, 0xba, 0xaa, 0x80, 0x0, 0xb4, 0x1, 0x4,
+    0x3c, 0x0, 0x50, 0x0, 0xb4, 0x53, 0x9d, 0x1f,
+    0x0, 0xf0, 0x0, 0xb6, 0xeb, 0x1d, 0x7, 0x58,
+    0x74, 0x0, 0xbf, 0xde, 0x1d, 0x1, 0x1e, 0x3c,
+    0x0, 0xfd, 0x2c, 0x1e, 0x0, 0x3d, 0x1d, 0x0,
+    0xf0, 0x38, 0xf, 0xea, 0xfc, 0xf, 0x0, 0x40,
+    0x10, 0xb, 0xff, 0xf4, 0x4, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
+    /* U+9572 "镲" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x6, 0x40, 0x0, 0xf, 0x0, 0x0, 0x0, 0x3,
+    0xd0, 0x0, 0x2, 0xe0, 0x0, 0x0, 0x0, 0xf0,
+    0x0, 0x0, 0x7c, 0x0, 0x0, 0x0, 0xb8, 0xb,
+    0xff, 0xff, 0xff, 0xfc, 0x0, 0x3f, 0xfe, 0xea,
+    0xaa, 0xaa, 0xaf, 0x0, 0x3f, 0xfe, 0xb4, 0x80,
+    0x24, 0x2, 0xc0, 0x1f, 0x0, 0x2d, 0xb4, 0xe,
+    0x0, 0x70, 0xf, 0x40, 0x1, 0x7f, 0xfe, 0xff,
+    0xf8, 0xf, 0x80, 0x0, 0x3e, 0xaf, 0x7f, 0xfe,
+    0x1, 0xef, 0xfd, 0x1f, 0x43, 0x4e, 0xb, 0x0,
+    0xb, 0xff, 0x4f, 0xf6, 0xc3, 0xc7, 0x80, 0x0,
+    0x3c, 0x1f, 0x4d, 0xd0, 0x7b, 0xc0, 0x0, 0xf,
+    0xb, 0xf0, 0xf0, 0xb, 0xc0, 0x0, 0x3, 0xc0,
+    0x5d, 0xb0, 0x0, 0xf0, 0x0, 0x0, 0xf0, 0x1,
+    0xbf, 0xff, 0xef, 0x0, 0xf, 0xff, 0xf0, 0xb6,
+    0xff, 0xf1, 0xf4, 0x3, 0xff, 0xfc, 0xf8, 0x0,
+    0x0, 0x1f, 0x80, 0x3, 0xc1, 0xf4, 0x0, 0x0,
+    0x0, 0xf4, 0x0, 0xf0, 0xb7, 0xff, 0xff, 0xff,
+    0xd4, 0x0, 0x3c, 0x0, 0xff, 0xff, 0xff, 0xf4,
+    0x0, 0xf, 0x0, 0x0, 0xb, 0x40, 0x0, 0x0,
+    0x3, 0xcb, 0x3, 0xc2, 0xd0, 0xe0, 0x0, 0x0,
+    0xff, 0xc3, 0xe0, 0xb4, 0x7f, 0x0, 0x0, 0x3f,
+    0x87, 0xe0, 0x2d, 0x3, 0xf8, 0x0, 0x2f, 0x4f,
+    0xd0, 0x5f, 0x40, 0x1f, 0x80, 0x7, 0x3, 0xd0,
+    0xbf, 0xc0, 0x0, 0xc0, 0x0, 0x0, 0x0, 0x1a,
+    0x40, 0x0, 0x0,
+
     /* U+9573 "镳" */
     0x0, 0x10, 0x0, 0x0, 0x9, 0x0, 0x0, 0x0,
     0x1f, 0x0, 0x0, 0x7, 0xc0, 0x0, 0x0, 0xb,
@@ -154890,34 +164840,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x60, 0x10, 0x24, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+9574 "镴" */
-    0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x2e, 0x0, 0x2e, 0x2, 0xe0, 0x3c, 0x0, 0xf,
-    0x0, 0x2e, 0x2, 0xe0, 0x3d, 0x0, 0x7, 0xc0,
-    0x2e, 0x3, 0xe0, 0x3d, 0x0, 0x3, 0xfa, 0x9f,
-    0x2, 0xf4, 0x2f, 0x0, 0x1, 0xff, 0xf0, 0xf4,
-    0x1f, 0x82, 0xf4, 0x0, 0xf4, 0x0, 0xf, 0x40,
-    0xf4, 0x1f, 0x0, 0xbc, 0x0, 0x1, 0xc0, 0x1c,
-    0x1, 0x80, 0x3d, 0x0, 0xb, 0xff, 0xff, 0xff,
-    0xe0, 0x2e, 0x0, 0x2, 0xda, 0x55, 0x59, 0x78,
-    0x2, 0x7f, 0xfc, 0xb2, 0xf9, 0x1f, 0x8e, 0x0,
-    0xf, 0xff, 0x2c, 0xb, 0xff, 0x43, 0x80, 0x0,
-    0x78, 0xb, 0x7, 0xfb, 0xe0, 0xe0, 0x0, 0x1e,
-    0x2, 0xcf, 0x90, 0x2e, 0x38, 0x0, 0x7, 0x80,
-    0xba, 0x95, 0x55, 0xae, 0x0, 0x1, 0xe0, 0x2f,
-    0xff, 0xff, 0xff, 0x80, 0x2f, 0xff, 0xc1, 0x0,
-    0x10, 0x1, 0x40, 0xb, 0xff, 0xf2, 0xc4, 0xe,
-    0x40, 0xf0, 0x0, 0x7, 0x80, 0xb7, 0xe3, 0xbe,
-    0x3c, 0x0, 0x1, 0xe0, 0x2c, 0x2c, 0xe1, 0xdf,
-    0x0, 0x0, 0x78, 0xb, 0x0, 0x38, 0x3, 0xc0,
-    0x0, 0x1e, 0x2, 0xde, 0xe, 0xf4, 0xf0, 0x0,
-    0x7, 0x84, 0xb1, 0xf3, 0x8b, 0x6c, 0x0, 0x1,
-    0xeb, 0x2c, 0x4, 0xe0, 0xb, 0x4, 0x0, 0x7f,
-    0x8b, 0x6, 0x38, 0x21, 0xd3, 0x40, 0x2f, 0x43,
-    0xff, 0xcf, 0xfd, 0x3a, 0xc0, 0x7, 0x0, 0xfe,
-    0x4b, 0xf4, 0xf, 0xf0, 0x0, 0x0, 0x34, 0x0,
-    0x80, 0x1, 0xf4,
-
     /* U+9576 "镶" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x3c, 0x0, 0x0, 0x1f, 0x0, 0x0, 0x0, 0x1f,
@@ -155044,6 +164966,29 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0xbf, 0xfc, 0x7c, 0x0, 0x0, 0x0,
     0x7f, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+95EB "闫" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x24, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x7d, 0x0, 0x55, 0x55,
+    0x55, 0x54, 0x2f, 0x40, 0xff, 0xff, 0xff, 0xfd,
+    0xb, 0xd0, 0xff, 0xff, 0xff, 0xfd, 0x3, 0xf0,
+    0x0, 0x0, 0x0, 0x3d, 0x0, 0xf0, 0x0, 0x0,
+    0x0, 0x3d, 0xf4, 0x0, 0x0, 0x0, 0x0, 0x3d,
+    0xf4, 0x0, 0x0, 0x0, 0x0, 0x3d, 0xf4, 0x3f,
+    0xff, 0xff, 0xf8, 0x3d, 0xf4, 0x3f, 0xff, 0xff,
+    0xf4, 0x3d, 0xf4, 0x0, 0x0, 0x0, 0x0, 0x3d,
+    0xf4, 0x0, 0x0, 0x0, 0x0, 0x3d, 0xf4, 0x0,
+    0x0, 0x0, 0x0, 0x3d, 0xf4, 0x0, 0x0, 0x0,
+    0x0, 0x3d, 0xf4, 0x2f, 0xff, 0xff, 0xf0, 0x3d,
+    0xf4, 0x2f, 0xff, 0xff, 0xf0, 0x3d, 0xf4, 0x0,
+    0x0, 0x0, 0x0, 0x3d, 0xf4, 0x0, 0x0, 0x0,
+    0x0, 0x3d, 0xf4, 0x0, 0x0, 0x0, 0x0, 0x3d,
+    0xf4, 0x0, 0x0, 0x0, 0x0, 0x3d, 0xf4, 0xff,
+    0xff, 0xff, 0xfd, 0x3d, 0xf4, 0xff, 0xff, 0xff,
+    0xfd, 0x3d, 0xf4, 0x0, 0x0, 0x0, 0x0, 0x3d,
+    0xf4, 0x0, 0x0, 0x0, 0x0, 0x7c, 0xf4, 0x0,
+    0x0, 0x0, 0x6b, 0xfc, 0xf4, 0x0, 0x0, 0x0,
+    0x7f, 0xf8, 0xf4, 0x0, 0x0, 0x0, 0x3e, 0x90,
+
     /* U+95ED "闭" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb0, 0x0,
     0x0, 0x0, 0x0, 0x3, 0xf0, 0x0, 0x0, 0x0,
@@ -155324,6 +165269,29 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x7, 0xff, 0x83, 0xc0, 0x0, 0x0, 0x0, 0xff,
     0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+95F9 "闹" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd0, 0x0,
+    0x0, 0x0, 0x0, 0x7, 0xd0, 0x0, 0x0, 0x0,
+    0x0, 0x7, 0xe0, 0xbf, 0xff, 0xff, 0xff, 0x7,
+    0xe2, 0xff, 0xff, 0xff, 0xfc, 0x7, 0xc0, 0x14,
+    0x0, 0x0, 0xfb, 0x9, 0x0, 0xf0, 0x0, 0x3,
+    0xfd, 0x0, 0x2, 0xe0, 0x0, 0xf, 0xf4, 0x0,
+    0x7, 0xc0, 0x0, 0x3f, 0xd3, 0xff, 0xff, 0xff,
+    0xf4, 0xff, 0x4f, 0xff, 0xff, 0xff, 0xd3, 0xfd,
+    0x0, 0x1, 0xe0, 0x0, 0xf, 0xf4, 0x0, 0x7,
+    0x80, 0x0, 0x3f, 0xd0, 0x0, 0x1e, 0x0, 0x0,
+    0xff, 0x42, 0xff, 0xff, 0xff, 0x3, 0xfd, 0xb,
+    0xff, 0xff, 0xfc, 0xf, 0xf4, 0x2c, 0x7, 0x80,
+    0xf0, 0x3f, 0xd0, 0xb0, 0x1e, 0x3, 0xc0, 0xff,
+    0x42, 0xc0, 0x78, 0xf, 0x3, 0xfd, 0xb, 0x1,
+    0xe0, 0x3c, 0xf, 0xf4, 0x2c, 0x7, 0x80, 0xf0,
+    0x3f, 0xd0, 0xb0, 0x1e, 0x7, 0xc0, 0xff, 0x42,
+    0xc0, 0x79, 0xfe, 0x3, 0xfd, 0xb, 0x1, 0xe3,
+    0xe0, 0xf, 0xf4, 0x0, 0x7, 0x80, 0x0, 0x7f,
+    0xd0, 0x0, 0x1e, 0x0, 0x5b, 0xef, 0x40, 0x0,
+    0x64, 0x3, 0xfd, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0,
+
     /* U+95FA "闺" */
     0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0xbc, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x3f, 0x3, 0xff, 0xff,
@@ -155347,6 +165315,29 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x7f, 0xf8, 0xf4, 0x0, 0x0, 0x0,
     0x3f, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+95FB "闻" */
+    0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7e, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x2f, 0xc2, 0xff, 0xff,
+    0xff, 0xfc, 0x7, 0xf1, 0xff, 0xff, 0xff, 0xfc,
+    0x2, 0xf0, 0x0, 0x0, 0x0, 0x3c, 0xa0, 0x90,
+    0x0, 0x0, 0x0, 0x3c, 0xf0, 0x0, 0x0, 0x0,
+    0x0, 0x3c, 0xf0, 0xff, 0xff, 0xff, 0xfc, 0x3c,
+    0xf0, 0xff, 0xff, 0xff, 0xfc, 0x3c, 0xf0, 0xf,
+    0x0, 0x3, 0xc0, 0x3c, 0xf0, 0xf, 0x0, 0x3,
+    0xc0, 0x3c, 0xf0, 0xf, 0xff, 0xff, 0xc0, 0x3c,
+    0xf0, 0xf, 0xff, 0xff, 0xc0, 0x3c, 0xf0, 0xf,
+    0x0, 0x3, 0xc0, 0x3c, 0xf0, 0xf, 0x0, 0x3,
+    0xc0, 0x3c, 0xf0, 0xf, 0x0, 0x7, 0xc0, 0x3c,
+    0xf0, 0xf, 0xff, 0xff, 0xc0, 0x3c, 0xf0, 0xf,
+    0xaa, 0xab, 0xc0, 0x3c, 0xf0, 0xf, 0x0, 0x3,
+    0xc0, 0x3c, 0xf0, 0xf, 0x0, 0x7, 0xd5, 0x3c,
+    0xf1, 0xaf, 0xff, 0xff, 0xff, 0x3c, 0xf2, 0xff,
+    0xff, 0xff, 0xe5, 0x3c, 0xf0, 0x40, 0x0, 0x3,
+    0xc0, 0x3c, 0xf0, 0x0, 0x0, 0x3, 0xc0, 0x3c,
+    0xf0, 0x0, 0x0, 0x3, 0xc0, 0xbc, 0xf0, 0x0,
+    0x0, 0x1, 0x5f, 0xf8, 0xf0, 0x0, 0x0, 0x0,
+    0xf, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+95FC "闼" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x74, 0x0,
     0x0, 0x0, 0x0, 0x0, 0xbd, 0x3, 0xff, 0xff,
@@ -155370,6 +165361,29 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0xbf, 0xf8, 0xf4, 0x0, 0x0, 0x0,
     0x7f, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+95FD "闽" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x3f, 0x3, 0xff, 0xff,
+    0xff, 0xfc, 0xf, 0xc3, 0xff, 0xff, 0xff, 0xfc,
+    0x3, 0xf0, 0x0, 0x0, 0x0, 0x3c, 0x0, 0xf0,
+    0x2, 0x40, 0x0, 0x3c, 0xf0, 0x40, 0x3, 0xc0,
+    0x0, 0x3c, 0xf0, 0x0, 0x3, 0xc0, 0x0, 0x3c,
+    0xf0, 0x0, 0x7, 0xc0, 0x0, 0x3c, 0xf0, 0x3f,
+    0xff, 0xff, 0xf0, 0x3c, 0xf0, 0x3f, 0xff, 0xff,
+    0xf0, 0x3c, 0xf0, 0x3c, 0x3, 0xc0, 0xb0, 0x3c,
+    0xf0, 0x3c, 0x3, 0xc0, 0xb0, 0x3c, 0xf0, 0x3c,
+    0x3, 0xc0, 0xb0, 0x3c, 0xf0, 0x3c, 0x3, 0xc0,
+    0xb0, 0x3c, 0xf0, 0x3f, 0xff, 0xff, 0xf0, 0x3c,
+    0xf0, 0x3f, 0xff, 0xff, 0xf0, 0x3c, 0xf0, 0x0,
+    0x3, 0xc0, 0x0, 0x3c, 0xf0, 0x0, 0x3, 0xc2,
+    0xc0, 0x3c, 0xf0, 0x0, 0x3, 0xc0, 0xf0, 0x3c,
+    0xf0, 0x0, 0x3, 0xc0, 0xf4, 0x3c, 0xf0, 0xaa,
+    0xbf, 0xff, 0xfc, 0x3c, 0xf1, 0xff, 0xff, 0xff,
+    0xbe, 0x3c, 0xf0, 0x55, 0x0, 0x0, 0xe, 0x3c,
+    0xf0, 0x0, 0x0, 0x0, 0x5, 0xbc, 0xf0, 0x0,
+    0x0, 0x0, 0x7f, 0xf8, 0xf0, 0x0, 0x0, 0x0,
+    0x3f, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+95FE "闾" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb, 0x40,
     0x0, 0x0, 0x0, 0x0, 0x2, 0xf4, 0x7, 0xff,
@@ -155394,29 +165408,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x3, 0xff, 0x83, 0xc0, 0x0, 0x0, 0x0, 0xbe,
     0x40,
 
-    /* U+95FF "闿" */
-    0x24, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7e, 0x1,
-    0x55, 0x55, 0x55, 0x54, 0x2f, 0x83, 0xff, 0xff,
-    0xff, 0xfc, 0xb, 0xe3, 0xff, 0xff, 0xff, 0xfc,
-    0x2, 0xe0, 0x1, 0x0, 0x0, 0x3c, 0x50, 0x80,
-    0x3, 0xc0, 0x0, 0x3c, 0xf0, 0x38, 0x3, 0xc0,
-    0x24, 0x3c, 0xf0, 0x3c, 0x3, 0xc0, 0x74, 0x3c,
-    0xf0, 0x3c, 0x3, 0xc0, 0x74, 0x3c, 0xf0, 0x3f,
-    0xff, 0xff, 0xf4, 0x3c, 0xf0, 0x2a, 0xaa, 0xaa,
-    0xa4, 0x3c, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x3c,
-    0xf0, 0x0, 0x0, 0x0, 0x0, 0x3c, 0xf0, 0xbf,
-    0xff, 0xff, 0xf0, 0x3c, 0xf0, 0x6a, 0xaa, 0xaa,
-    0xf0, 0x3c, 0xf0, 0x0, 0x0, 0x0, 0xf0, 0x3c,
-    0xf0, 0x0, 0x0, 0x0, 0xf0, 0x3c, 0xf0, 0x3f,
-    0xff, 0xff, 0xf0, 0x3c, 0xf0, 0x3f, 0xff, 0xff,
-    0xf0, 0x3c, 0xf0, 0x3c, 0x0, 0x0, 0x9, 0x3c,
-    0xf0, 0x3c, 0x0, 0x0, 0x1f, 0x3c, 0xf0, 0x3d,
-    0x0, 0x0, 0x2f, 0x3c, 0xf0, 0x2f, 0xff, 0xff,
-    0xfd, 0x3c, 0xf0, 0xa, 0xff, 0xff, 0xe4, 0x3c,
-    0xf0, 0x0, 0x0, 0x0, 0x16, 0xfc, 0xf0, 0x0,
-    0x0, 0x0, 0x3f, 0xf8, 0xf0, 0x0, 0x0, 0x0,
-    0x3f, 0x90, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
     /* U+9600 "阀" */
     0x24, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3e, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x1f, 0x80, 0xff, 0xff,
@@ -155583,6 +165574,53 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x7, 0xff, 0xc3, 0xc0, 0x0, 0x0, 0x0, 0xff,
     0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+9608 "阈" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x2, 0xf4, 0xf, 0xff,
+    0xff, 0xff, 0xf0, 0x2f, 0x43, 0xff, 0xff, 0xff,
+    0xfc, 0x2, 0xf0, 0x0, 0x0, 0x10, 0xf, 0x5,
+    0x2c, 0x0, 0xb, 0x2e, 0x3, 0xc3, 0xc0, 0x0,
+    0x1, 0xc2, 0xe0, 0xf0, 0xf0, 0x0, 0x0, 0x70,
+    0x34, 0x3c, 0x3c, 0x7f, 0xff, 0xff, 0xff, 0xcf,
+    0xf, 0x2f, 0xff, 0xff, 0xff, 0xf3, 0xc3, 0xc0,
+    0x0, 0x1, 0xd0, 0x0, 0xf0, 0xf0, 0x0, 0x0,
+    0x38, 0x0, 0x3c, 0x3c, 0x1f, 0xff, 0xe, 0xf,
+    0xf, 0xf, 0x7, 0xab, 0xc3, 0x83, 0x83, 0xc3,
+    0xc1, 0xc0, 0xb0, 0xf2, 0xd0, 0xf0, 0xf0, 0x70,
+    0x2c, 0x3c, 0xf0, 0x3c, 0x3c, 0x1c, 0xb, 0xb,
+    0xb4, 0xf, 0xf, 0x7, 0xff, 0xc1, 0xfc, 0x3,
+    0xc3, 0xc1, 0xaa, 0xa0, 0x7d, 0x0, 0xf0, 0xf0,
+    0x0, 0x0, 0x1f, 0xb, 0x3c, 0x3c, 0x0, 0x1,
+    0xf, 0xc2, 0xcf, 0xf, 0x1a, 0xff, 0xdf, 0xb4,
+    0xf3, 0xc3, 0xcf, 0xff, 0xaf, 0x4f, 0x78, 0xf0,
+    0xf1, 0x40, 0xf, 0x42, 0xfd, 0x3c, 0x3c, 0x0,
+    0x7, 0x40, 0x2d, 0xf, 0xf, 0x0, 0x0, 0x0,
+    0x1, 0x6f, 0xc3, 0xc0, 0x0, 0x0, 0x1, 0xff,
+    0xc0, 0x0, 0x0, 0x0, 0x0, 0x14, 0x0,
+
+    /* U+9609 "阉" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x34, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x7d, 0x3, 0xff, 0xff,
+    0xff, 0xfc, 0x2f, 0x43, 0xff, 0xff, 0xff, 0xfc,
+    0xb, 0xd0, 0x4, 0x0, 0x0, 0x3c, 0x2, 0xd0,
+    0xf, 0x0, 0x0, 0x3c, 0xa0, 0x80, 0x2e, 0x0,
+    0x0, 0x3c, 0xf0, 0xaa, 0xbe, 0xaa, 0xa9, 0x3c,
+    0xf0, 0xff, 0xff, 0xff, 0xff, 0x3c, 0xf0, 0x3,
+    0xe0, 0x2e, 0x0, 0x3c, 0xf0, 0xb, 0x86, 0x4b,
+    0x80, 0x3c, 0xf0, 0x3e, 0x7, 0x42, 0xe0, 0x3c,
+    0xf0, 0xfe, 0xab, 0xea, 0xfd, 0x3c, 0xfb, 0xff,
+    0xff, 0xff, 0xff, 0xfc, 0xfb, 0x78, 0x7, 0x80,
+    0xb6, 0xbc, 0xf0, 0x38, 0x7, 0x40, 0x74, 0x3c,
+    0xf0, 0x3f, 0xff, 0xff, 0xf4, 0x3c, 0xf0, 0x3e,
+    0xaf, 0xea, 0xf4, 0x3c, 0xf0, 0x38, 0x7, 0x40,
+    0x74, 0x3c, 0xf0, 0x3e, 0xaf, 0xea, 0xf4, 0x3c,
+    0xf0, 0x3f, 0xff, 0xff, 0xf5, 0x3c, 0xf0, 0x0,
+    0x7, 0x40, 0x3, 0x7c, 0xf0, 0x0, 0x7, 0xc0,
+    0xb, 0x7c, 0xf0, 0x0, 0x3, 0xff, 0xff, 0x3c,
+    0xf0, 0x0, 0x1, 0xaa, 0xa8, 0x3c, 0xf0, 0x0,
+    0x0, 0x0, 0x5, 0xfc, 0xf0, 0x0, 0x0, 0x0,
+    0x2f, 0xf8, 0xf0, 0x0, 0x0, 0x0, 0x1f, 0x90,
+
     /* U+960A "阊" */
     0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x78, 0x1,
     0x55, 0x55, 0x55, 0x54, 0x3e, 0x3, 0xff, 0xff,
@@ -155630,6 +165668,77 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x6, 0xbf, 0xc3, 0xc0, 0x0, 0x0, 0x0, 0xff,
     0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+960C "阌" */
+    0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0xbc, 0x0,
+    0x55, 0x55, 0x55, 0x54, 0x3f, 0x43, 0xff, 0xff,
+    0xff, 0xfc, 0xb, 0xd2, 0xff, 0xff, 0xff, 0xfc,
+    0x52, 0xe0, 0x0, 0x0, 0x0, 0x3c, 0xf0, 0x80,
+    0x0, 0x16, 0xf8, 0x3c, 0xf0, 0x2a, 0xff, 0xff,
+    0xfc, 0x3c, 0xf0, 0x3f, 0xff, 0xa9, 0x90, 0x3c,
+    0xf0, 0x9, 0xb, 0x0, 0xf0, 0x3c, 0xf0, 0xf,
+    0x7, 0x81, 0xd0, 0x3c, 0xf0, 0x7, 0x43, 0xc3,
+    0xc0, 0x3c, 0xf0, 0x3, 0x81, 0x87, 0x40, 0x3c,
+    0xf0, 0xff, 0xff, 0xff, 0xfe, 0x3c, 0xf0, 0xfa,
+    0xaa, 0xaa, 0xae, 0x3c, 0xf0, 0xe0, 0x0, 0x0,
+    0xe, 0x3c, 0xf0, 0xea, 0xaa, 0xaa, 0x9e, 0x3c,
+    0xf0, 0xf, 0xff, 0xff, 0xd0, 0x3c, 0xf0, 0x0,
+    0x0, 0xb, 0xc0, 0x3c, 0xf0, 0x3, 0xe4, 0x2f,
+    0x0, 0x3c, 0xf0, 0x0, 0xbf, 0xf8, 0x0, 0x3c,
+    0xf0, 0x0, 0x1f, 0xfd, 0x0, 0x3c, 0xf0, 0x1,
+    0xfe, 0x7f, 0xd0, 0x3c, 0xf0, 0x7f, 0xe0, 0x2,
+    0xf0, 0x3c, 0xf0, 0xfd, 0x0, 0x0, 0x10, 0x7c,
+    0xf0, 0x0, 0x0, 0x0, 0x2f, 0xf8, 0xf0, 0x0,
+    0x0, 0x0, 0x1f, 0xa0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0,
+
+    /* U+960D "阍" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb, 0x40,
+    0x0, 0x0, 0x0, 0x0, 0x2, 0xf4, 0xb, 0xff,
+    0xff, 0xff, 0xf0, 0x1f, 0x82, 0xff, 0xff, 0xff,
+    0xfc, 0x1, 0xf4, 0x0, 0x0, 0x0, 0xf, 0x5,
+    0x1c, 0x0, 0x0, 0x6, 0x3, 0xc3, 0xc0, 0x0,
+    0x56, 0xff, 0xd0, 0xf0, 0xf0, 0x3f, 0xff, 0xff,
+    0xe4, 0x3c, 0x3c, 0xf, 0xa9, 0x78, 0x0, 0xf,
+    0xf, 0x3, 0xc0, 0xf, 0x0, 0x3, 0xc3, 0xc0,
+    0xfa, 0xab, 0xea, 0xa4, 0xf0, 0xf0, 0x3f, 0xff,
+    0xff, 0xfe, 0x3c, 0x3c, 0xf, 0x0, 0xf, 0x0,
+    0x4f, 0xf, 0x3, 0xc0, 0x61, 0xe0, 0x77, 0xc3,
+    0xc0, 0xff, 0xfc, 0x3f, 0x6c, 0xf0, 0xf0, 0xbf,
+    0xa4, 0x3, 0xfe, 0x3c, 0x3c, 0x4, 0x0, 0x0,
+    0x19, 0xf, 0xf, 0x1, 0xff, 0xff, 0xfe, 0x3,
+    0xc3, 0xc0, 0x7e, 0xaa, 0xab, 0x80, 0xf0, 0xf0,
+    0x1d, 0x0, 0x0, 0xe0, 0x3c, 0x3c, 0x7, 0xea,
+    0xaa, 0xb8, 0xf, 0xf, 0x1, 0xff, 0xff, 0xfe,
+    0x3, 0xc3, 0xc0, 0x74, 0x0, 0x3, 0x80, 0xf0,
+    0xf0, 0x1d, 0x0, 0x0, 0xe0, 0x3c, 0x3c, 0x7,
+    0xff, 0xff, 0xf8, 0xf, 0xf, 0x0, 0xaa, 0xaa,
+    0xaa, 0x5f, 0xc3, 0xc0, 0x0, 0x0, 0x0, 0x7f,
+    0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+
+    /* U+960E "阎" */
+    0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0x80,
+    0x0, 0x0, 0x0, 0x0, 0x1, 0xfc, 0xf, 0xff,
+    0xff, 0xff, 0xf0, 0xf, 0xc3, 0xff, 0xff, 0xff,
+    0xfc, 0x0, 0xf8, 0x4, 0x0, 0x0, 0xf, 0xa,
+    0x8, 0x3, 0xc0, 0x0, 0x3, 0xc3, 0xc0, 0x3,
+    0xe0, 0x0, 0x0, 0xf0, 0xf0, 0x2, 0xff, 0xff,
+    0xe0, 0x3c, 0x3c, 0x2, 0xfa, 0xaa, 0xf8, 0xf,
+    0xf, 0x2, 0xf0, 0x0, 0xb8, 0x3, 0xc3, 0xc2,
+    0xf0, 0x0, 0xb8, 0x0, 0xf0, 0xf0, 0xb0, 0x24,
+    0x8, 0x0, 0x3c, 0x3c, 0x6, 0xff, 0x2f, 0xfc,
+    0xf, 0xf, 0x3, 0xfe, 0xf, 0xff, 0x3, 0xc3,
+    0xc0, 0xf0, 0x0, 0x3, 0xc0, 0xf0, 0xf0, 0x3c,
+    0x0, 0x0, 0xf0, 0x3c, 0x3c, 0xf, 0x0, 0x0,
+    0x3c, 0xf, 0xf, 0x3, 0xff, 0xcf, 0xff, 0x3,
+    0xc3, 0xc0, 0xfa, 0xa2, 0xab, 0xc0, 0xf0, 0xf0,
+    0x3c, 0x0, 0x0, 0xf0, 0x3c, 0x3c, 0xf, 0x0,
+    0x0, 0x3c, 0xf, 0xf, 0x3, 0xea, 0xaa, 0xaf,
+    0x3, 0xc3, 0xc0, 0xff, 0xff, 0xff, 0xc0, 0xf0,
+    0xf0, 0x0, 0x0, 0x0, 0x0, 0x3c, 0x3c, 0x0,
+    0x0, 0x0, 0x5, 0x7f, 0xf, 0x0, 0x0, 0x0,
+    0xb, 0xff, 0xc3, 0xc0, 0x0, 0x0, 0x1, 0xff,
+    0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+960F "阏" */
     0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7d, 0x0,
     0x55, 0x55, 0x55, 0x54, 0x2f, 0x83, 0xff, 0xff,
@@ -155677,6 +165786,30 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x3, 0xff, 0x80, 0x0, 0x0, 0x0, 0x0, 0xff,
     0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+9611 "阑" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x3f, 0x7, 0xff, 0xff,
+    0xff, 0xfc, 0xf, 0xc7, 0xff, 0xff, 0xff, 0xfc,
+    0x3, 0xf0, 0x0, 0x0, 0x0, 0x3c, 0xa0, 0xc0,
+    0x7, 0x80, 0x0, 0x3c, 0xf0, 0x0, 0x7, 0x80,
+    0x0, 0x3c, 0xf0, 0xaa, 0xab, 0xea, 0xa9, 0x3c,
+    0xf0, 0xff, 0xff, 0xff, 0xfe, 0x3c, 0xf0, 0x0,
+    0x7, 0x80, 0x0, 0x3c, 0xf0, 0x0, 0x7, 0x80,
+    0x0, 0x3c, 0xf0, 0x3f, 0xff, 0xff, 0xf8, 0x3c,
+    0xf0, 0x3a, 0xab, 0xea, 0xb8, 0x3c, 0xf0, 0x36,
+    0x87, 0x87, 0x78, 0x3c, 0xf0, 0x35, 0xd7, 0x8f,
+    0x38, 0x3c, 0xf0, 0x34, 0xf7, 0xac, 0x38, 0x3c,
+    0xf0, 0x34, 0x67, 0xa8, 0x38, 0x3c, 0xf0, 0x3e,
+    0xab, 0xea, 0xb8, 0x3c, 0xf0, 0x3f, 0xff, 0xff,
+    0xf8, 0x3c, 0xf0, 0x0, 0x1f, 0x80, 0x0, 0x3c,
+    0xf0, 0x0, 0x7f, 0xbd, 0x0, 0x3c, 0xf0, 0x2,
+    0xf7, 0xaf, 0xc0, 0x3c, 0xf0, 0xf, 0xc7, 0x87,
+    0xf8, 0x3c, 0xf0, 0xbf, 0x7, 0x80, 0xbd, 0x3c,
+    0xf3, 0xf8, 0x7, 0x80, 0x1c, 0x3c, 0xf1, 0xc0,
+    0x7, 0x80, 0x0, 0xbc, 0xf0, 0x0, 0x7, 0x80,
+    0x3f, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x3f, 0xe0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+9612 "阒" */
     0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2f, 0x40,
     0x55, 0x55, 0x55, 0x55, 0xb, 0xd0, 0xff, 0xff,
@@ -155771,6 +165904,52 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x2, 0xff, 0xc3, 0xc0, 0x0, 0x0, 0x0, 0x7f,
     0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+9617 "阗" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x30, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0xbc, 0x3, 0xff, 0xff,
+    0xff, 0xfc, 0x2f, 0x3, 0xff, 0xff, 0xff, 0xfc,
+    0xf, 0xc0, 0x0, 0x0, 0x0, 0x3c, 0x3, 0xc0,
+    0x7, 0x40, 0x0, 0x3c, 0xa0, 0x0, 0xb, 0x80,
+    0x0, 0x3c, 0xf0, 0xff, 0xff, 0xff, 0xfc, 0x3c,
+    0xf0, 0x55, 0x5b, 0xd5, 0x54, 0x3c, 0xf0, 0x0,
+    0xb, 0x80, 0x0, 0x3c, 0xf0, 0x2f, 0xff, 0xff,
+    0xe0, 0x3c, 0xf0, 0x2e, 0x55, 0x56, 0xe0, 0x3c,
+    0xf0, 0x2e, 0x55, 0x56, 0xe0, 0x3c, 0xf0, 0x2f,
+    0xff, 0xff, 0xe0, 0x3c, 0xf0, 0x2d, 0x0, 0x0,
+    0xe0, 0x3c, 0xf0, 0x2f, 0xff, 0xff, 0xe0, 0x3c,
+    0xf0, 0x2e, 0xaa, 0xaa, 0xe0, 0x3c, 0xf0, 0x2d,
+    0x0, 0x1, 0xe0, 0x3c, 0xf0, 0x2f, 0xff, 0xff,
+    0xe0, 0x3c, 0xf0, 0x2e, 0x55, 0x55, 0xe0, 0x3c,
+    0xf2, 0xbe, 0xaa, 0xaa, 0xfa, 0x3c, 0xf3, 0xff,
+    0xff, 0xff, 0xff, 0x3c, 0xf0, 0x0, 0x10, 0x10,
+    0x0, 0x3c, 0xf0, 0x1, 0xf0, 0x3e, 0x40, 0x3c,
+    0xf0, 0x1f, 0xd0, 0x1b, 0xf0, 0x3c, 0xf0, 0xfe,
+    0x0, 0x0, 0xb5, 0xbc, 0xf0, 0xf4, 0x0, 0x0,
+    0xf, 0xf8, 0xf0, 0x0, 0x0, 0x0, 0x7, 0xe0,
+
+    /* U+9619 "阙" */
+    0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x78, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x3e, 0x7, 0xff, 0xff,
+    0xff, 0xfc, 0xb, 0x87, 0xff, 0xff, 0xff, 0xfc,
+    0x3, 0xc0, 0x0, 0x0, 0x0, 0x3c, 0xe0, 0xa0,
+    0xd, 0x7, 0x40, 0x3c, 0xf0, 0x78, 0x1d, 0xb,
+    0x0, 0x3c, 0xf0, 0x2c, 0x3c, 0xf, 0x0, 0x3c,
+    0xf0, 0x8, 0xb4, 0xf, 0xaa, 0x3c, 0xf2, 0xff,
+    0xff, 0x5f, 0xff, 0x3c, 0xf3, 0xff, 0xff, 0x7c,
+    0xe, 0x3c, 0xf0, 0x3, 0x80, 0x39, 0x5d, 0x3c,
+    0xf0, 0xd3, 0x8a, 0xb7, 0xac, 0x3c, 0xf0, 0xe3,
+    0x8f, 0xf3, 0xb8, 0x3c, 0xf0, 0xe3, 0x8f, 0x3,
+    0x80, 0x3c, 0xf0, 0xe3, 0x8f, 0x3, 0x40, 0x3c,
+    0xf0, 0xe3, 0x8f, 0x7, 0x80, 0x3c, 0xf0, 0xff,
+    0xff, 0x7, 0xd0, 0x3c, 0xf0, 0xab, 0xea, 0xf,
+    0xf0, 0x3c, 0xf0, 0x7, 0x40, 0xe, 0x78, 0x3c,
+    0xf0, 0xb, 0x0, 0x2c, 0x2d, 0x3c, 0xf0, 0xf,
+    0x0, 0x78, 0xf, 0x3c, 0xf0, 0x3d, 0x1, 0xf0,
+    0xb, 0x3c, 0xf0, 0xf8, 0xb, 0xc0, 0x0, 0x3c,
+    0xf2, 0xe0, 0xf, 0x0, 0x5, 0xbc, 0xf0, 0x80,
+    0x0, 0x0, 0x3f, 0xf8, 0xf0, 0x0, 0x0, 0x0,
+    0x1e, 0x90,
+
     /* U+961A "阚" */
     0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0xbc, 0x0,
     0x55, 0x55, 0x55, 0x54, 0x3f, 0x2, 0xff, 0xff,
@@ -155820,6 +165999,18 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x7, 0xc0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x1f, 0x0, 0x0, 0x0,
 
+    /* U+961D "阝" */
+    0x55, 0x55, 0x54, 0xff, 0xff, 0xfc, 0xff, 0xff,
+    0xfc, 0xf4, 0x0, 0x7c, 0xf4, 0x0, 0xf8, 0xf4,
+    0x0, 0xf0, 0xf4, 0x2, 0xf0, 0xf4, 0x3, 0xd0,
+    0xf4, 0x7, 0xc0, 0xf4, 0xf, 0x40, 0xf4, 0x1f,
+    0x0, 0xf4, 0xf, 0xc0, 0xf4, 0x3, 0xe0, 0xf4,
+    0x0, 0xf4, 0xf4, 0x0, 0xbc, 0xf4, 0x0, 0x7c,
+    0xf4, 0x0, 0x3d, 0xf4, 0x0, 0x3d, 0xf4, 0x0,
+    0x7d, 0xf4, 0x6, 0xfc, 0xf4, 0xff, 0xf8, 0xf4,
+    0xbf, 0xd0, 0xf4, 0x10, 0x0, 0xf4, 0x0, 0x0,
+    0xf4, 0x0, 0x0, 0xf4, 0x0, 0x0,
+
     /* U+961F "队" */
     0x0, 0x0, 0x0, 0x2, 0x80, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x7c, 0x0, 0x0, 0x7f, 0xff, 0xf0,
@@ -155868,6 +166059,30 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xf0, 0x0, 0xf, 0x40, 0x0, 0x0, 0xf, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+9622 "阢" */
+    0x55, 0x55, 0x40, 0x0, 0x0, 0x0, 0xf, 0xff,
+    0xfa, 0xff, 0xff, 0xff, 0xf4, 0xfa, 0xaf, 0xbf,
+    0xff, 0xff, 0xff, 0x8f, 0x0, 0xf4, 0x3d, 0x3,
+    0xd0, 0x0, 0xf0, 0xf, 0x3, 0xd0, 0x3d, 0x0,
+    0xf, 0x2, 0xe0, 0x3d, 0x3, 0xd0, 0x0, 0xf0,
+    0x3d, 0x3, 0xd0, 0x3d, 0x0, 0xf, 0x7, 0xc0,
+    0x3d, 0x3, 0xd0, 0x0, 0xf0, 0xb8, 0x3, 0xd0,
+    0x3d, 0x0, 0xf, 0xf, 0x40, 0x3d, 0x3, 0xd0,
+    0x0, 0xf0, 0x7c, 0x3, 0xd0, 0x3d, 0x0, 0xf,
+    0x2, 0xe0, 0x3c, 0x3, 0xd0, 0x0, 0xf0, 0xf,
+    0x3, 0xc0, 0x3d, 0x0, 0xf, 0x0, 0xb4, 0x3c,
+    0x3, 0xd0, 0x0, 0xf0, 0x7, 0x83, 0xc0, 0x3d,
+    0x0, 0xf, 0x0, 0x78, 0x3c, 0x3, 0xd0, 0x0,
+    0xf0, 0x7, 0x87, 0xc0, 0x3d, 0x0, 0xf, 0x1,
+    0xf8, 0xbc, 0x3, 0xd0, 0x0, 0xf7, 0xff, 0xf,
+    0x80, 0x3d, 0x2, 0x8f, 0x3f, 0x80, 0xf4, 0x3,
+    0xd0, 0x2c, 0xf0, 0x0, 0x2f, 0x0, 0x3d, 0x3,
+    0xcf, 0x0, 0x7, 0xd0, 0x3, 0xd0, 0x3c, 0xf0,
+    0x1, 0xfc, 0x0, 0x3e, 0x5b, 0xcf, 0x0, 0x3f,
+    0x0, 0x2, 0xff, 0xf8, 0xf0, 0xf, 0xd0, 0x0,
+    0xb, 0xfe, 0xf, 0x0, 0x34, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+962A "阪" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x55,
     0x50, 0x0, 0x0, 0x1a, 0xd0, 0xff, 0xff, 0x0,
@@ -156559,6 +166774,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x3, 0xc0, 0x7, 0x90, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+9661 "陡" */
+    0x0, 0x0, 0x0, 0x1, 0x40, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x3d, 0x0, 0x0, 0xaa, 0xa9, 0x0,
+    0x3, 0xd0, 0x0, 0xf, 0xff, 0xf0, 0x0, 0x3d,
+    0x0, 0x0, 0xfa, 0xbf, 0x0, 0x3, 0xe0, 0x0,
+    0xf, 0x2, 0xe2, 0xff, 0xff, 0xff, 0xf0, 0xf0,
+    0x3d, 0x2f, 0xff, 0xff, 0xff, 0xf, 0x3, 0xc0,
+    0x0, 0x3d, 0x0, 0x0, 0xf0, 0x78, 0x0, 0x3,
+    0xd0, 0x0, 0xf, 0xb, 0x40, 0x0, 0x3d, 0x0,
+    0x0, 0xf0, 0xf0, 0x0, 0x3, 0xd0, 0x0, 0xf,
+    0x1f, 0xb, 0xff, 0xff, 0xff, 0xfc, 0xf0, 0xf0,
+    0xbf, 0xff, 0xff, 0xff, 0xcf, 0x7, 0x81, 0x55,
+    0x6f, 0x55, 0x54, 0xf0, 0x3c, 0x0, 0x1, 0xe0,
+    0x0, 0xf, 0x2, 0xd0, 0x50, 0x1e, 0x0, 0x0,
+    0xf0, 0x1e, 0xf, 0x1, 0xe0, 0x0, 0xf, 0x0,
+    0xf0, 0xf0, 0x1e, 0x0, 0x0, 0xf0, 0xf, 0xf,
+    0x1, 0xff, 0xff, 0xf, 0x1, 0xf1, 0xf0, 0x1f,
+    0xff, 0xf0, 0xf1, 0xbe, 0x1f, 0x1, 0xe0, 0x0,
+    0xf, 0x3f, 0xc3, 0xf8, 0x1e, 0x0, 0x0, 0xf2,
+    0xe4, 0x3f, 0xd1, 0xe0, 0x0, 0xf, 0x0, 0xb,
+    0x9f, 0x5e, 0x0, 0x0, 0xf0, 0x1, 0xf0, 0xbf,
+    0xf4, 0x0, 0xf, 0x0, 0x3e, 0x2, 0xff, 0xff,
+    0xfd, 0xf0, 0xf, 0xc0, 0x1, 0xbf, 0xff, 0xcf,
+    0x0, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+9662 "院" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0xb, 0xc0, 0x0, 0x2, 0xaa, 0xa4,
@@ -156610,6 +166851,80 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xc0, 0x7, 0x8f, 0x0, 0x10, 0xf, 0xf4, 0x0,
     0x10, 0xf0, 0x0, 0x0, 0xa4, 0x0, 0x0, 0x0,
 
+    /* U+9667 "陧" */
+    0xbf, 0xff, 0xa, 0xaa, 0xaa, 0xa4, 0xf, 0xff,
+    0xf0, 0xff, 0xff, 0xff, 0x80, 0xf5, 0x5f, 0xf,
+    0x55, 0x55, 0xb8, 0xf, 0x1, 0xf0, 0xf0, 0x0,
+    0x7, 0x80, 0xf0, 0x2e, 0xf, 0x0, 0x0, 0x78,
+    0xf, 0x3, 0xc0, 0xf0, 0x0, 0x7, 0x80, 0xf0,
+    0x3c, 0xf, 0xff, 0xff, 0xf8, 0xf, 0x7, 0x80,
+    0xff, 0xff, 0xff, 0x80, 0xf0, 0xf4, 0xf, 0x0,
+    0x0, 0x78, 0xf, 0xf, 0x0, 0xf0, 0x0, 0x7,
+    0x80, 0xf0, 0xf4, 0xf, 0x0, 0x0, 0x78, 0xf,
+    0x7, 0xc0, 0xff, 0xff, 0xff, 0x80, 0xf0, 0x3d,
+    0xf, 0xff, 0xff, 0xf8, 0xf, 0x1, 0xe0, 0x0,
+    0x0, 0x0, 0x0, 0xf0, 0xf, 0x0, 0x3, 0xd0,
+    0x0, 0xf, 0x0, 0xf0, 0x0, 0x3d, 0x0, 0x0,
+    0xf0, 0xb, 0x2f, 0xff, 0xff, 0xfc, 0xf, 0x0,
+    0xf3, 0xff, 0xff, 0xff, 0xd0, 0xf0, 0x6f, 0x0,
+    0x3, 0xd0, 0x0, 0xf, 0x3f, 0xe0, 0x0, 0x3d,
+    0x0, 0x0, 0xf2, 0xe4, 0x0, 0x3, 0xd0, 0x0,
+    0xf, 0x0, 0x0, 0x0, 0x3d, 0x0, 0x0, 0xf0,
+    0x0, 0x0, 0x3, 0xd0, 0x0, 0xf, 0x0, 0x2f,
+    0xff, 0xff, 0xff, 0xfc, 0xf0, 0x2, 0xff, 0xff,
+    0xff, 0xff, 0xcf, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0,
+
+    /* U+9668 "陨" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb, 0xff,
+    0xf0, 0xbf, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xb,
+    0xff, 0xff, 0xfc, 0xf, 0x41, 0xf0, 0xb8, 0x0,
+    0x3, 0xc0, 0xf0, 0x1e, 0xb, 0x80, 0x0, 0x3c,
+    0xf, 0x2, 0xd0, 0xb8, 0x0, 0x3, 0xc0, 0xf0,
+    0x3c, 0xb, 0xea, 0xaa, 0xfc, 0xf, 0x7, 0xc0,
+    0xbf, 0xff, 0xff, 0xc0, 0xf0, 0xb4, 0x0, 0x0,
+    0x0, 0x0, 0xf, 0xf, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xf0, 0xf0, 0x0, 0x0, 0x0, 0x0, 0xf,
+    0xf, 0x40, 0xff, 0xff, 0xff, 0xd0, 0xf0, 0x7c,
+    0xf, 0xff, 0xff, 0xfd, 0xf, 0x3, 0xd0, 0xf0,
+    0x0, 0x2, 0xd0, 0xf0, 0x1e, 0xf, 0x0, 0xa0,
+    0x2d, 0xf, 0x0, 0xf0, 0xf0, 0xf, 0x2, 0xd0,
+    0xf0, 0xf, 0xf, 0x1, 0xe0, 0x2d, 0xf, 0x0,
+    0xf0, 0xf0, 0x1e, 0x2, 0xd0, 0xf0, 0xf, 0xf,
+    0x2, 0xe0, 0x2d, 0xf, 0x17, 0xf0, 0xf0, 0x3d,
+    0x2, 0xd0, 0xf7, 0xfd, 0xe, 0x3, 0xc0, 0x19,
+    0xf, 0x3a, 0x0, 0x0, 0xfa, 0xe0, 0x0, 0xf0,
+    0x0, 0x0, 0x3f, 0x1f, 0xd0, 0xf, 0x0, 0x0,
+    0x2f, 0xc0, 0x2f, 0xc0, 0xf0, 0x0, 0x7f, 0xe0,
+    0x0, 0x7f, 0x8f, 0x0, 0x3f, 0xe4, 0x0, 0x0,
+    0xbd, 0xf0, 0x2, 0xe0, 0x0, 0x0, 0x1, 0xc0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+
+    /* U+9669 "险" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xfc, 0x0, 0x0, 0xff, 0xfd, 0x0,
+    0x2f, 0xe0, 0x0, 0xf, 0xff, 0xd0, 0x3, 0xef,
+    0x0, 0x0, 0xf0, 0x2d, 0x0, 0xf8, 0xbc, 0x0,
+    0xf, 0x3, 0xc0, 0x2f, 0x3, 0xe0, 0x0, 0xf0,
+    0x3c, 0xb, 0xc0, 0xf, 0x80, 0xf, 0x7, 0x82,
+    0xf4, 0x0, 0x7e, 0x0, 0xf0, 0xb4, 0xbd, 0x0,
+    0x1, 0xf8, 0xf, 0xf, 0x2f, 0x40, 0x0, 0x7,
+    0xf0, 0xf1, 0xef, 0xdb, 0xff, 0xff, 0xdf, 0xdf,
+    0x3c, 0xb0, 0xbf, 0xff, 0xfc, 0x3d, 0xf2, 0xd0,
+    0x0, 0x0, 0x0, 0x0, 0x4f, 0xf, 0x0, 0x0,
+    0x40, 0x0, 0x0, 0xf0, 0xb4, 0x28, 0x1e, 0x0,
+    0xb4, 0xf, 0x7, 0xc7, 0xc0, 0xf0, 0xf, 0x40,
+    0xf0, 0x3c, 0x3d, 0xf, 0x0, 0xf0, 0xf, 0x3,
+    0xc2, 0xe0, 0xb4, 0x1f, 0x0, 0xf0, 0x3c, 0x1f,
+    0x7, 0x82, 0xd0, 0xf, 0x3, 0xc0, 0xf0, 0x3c,
+    0x3c, 0x0, 0xf1, 0xbc, 0xf, 0x43, 0xc7, 0xc0,
+    0xf, 0x7f, 0xc0, 0xb8, 0x38, 0xf4, 0x0, 0xf3,
+    0xe0, 0x7, 0xc0, 0xf, 0x0, 0xf, 0x0, 0x0,
+    0x0, 0x2, 0xe0, 0x0, 0xf0, 0x0, 0x0, 0x0,
+    0x3d, 0x0, 0xf, 0x0, 0xbf, 0xff, 0xff, 0xff,
+    0xf8, 0xf0, 0xb, 0xff, 0xff, 0xff, 0xff, 0x4f,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+966A "陪" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x2, 0xe0, 0x0, 0x5, 0x55, 0x50, 0x0,
@@ -156684,6 +166999,30 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x80, 0xf0, 0x2, 0xff, 0xff, 0xff, 0xfe, 0x3,
     0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+9674 "陴" */
+    0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xbc, 0x0, 0x3, 0xff, 0xf8, 0x0, 0x3d, 0x0,
+    0x0, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xfc, 0x3c,
+    0x7, 0x8f, 0xff, 0xff, 0xff, 0xf, 0x2, 0xd3,
+    0xc0, 0x2c, 0x3, 0xc3, 0xc0, 0xf0, 0xf0, 0xb,
+    0x0, 0xf0, 0xf0, 0x78, 0x3c, 0x2, 0xc0, 0x3c,
+    0x3c, 0x2d, 0xf, 0xff, 0xff, 0xff, 0xf, 0xf,
+    0x3, 0xff, 0xff, 0xff, 0xc3, 0xc3, 0xc0, 0xf0,
+    0xf, 0x0, 0xf0, 0xf0, 0xf0, 0x3c, 0x3, 0xc0,
+    0x3c, 0x3c, 0x2d, 0xf, 0x0, 0xf0, 0xf, 0xf,
+    0x3, 0xc3, 0xc0, 0x78, 0x3, 0xc3, 0xc0, 0xb4,
+    0xff, 0xff, 0xff, 0xf0, 0xf0, 0x1e, 0x2f, 0xff,
+    0xff, 0xfc, 0x3c, 0x3, 0x80, 0xf, 0x54, 0x0,
+    0xf, 0x0, 0xf0, 0x1f, 0x8f, 0x40, 0x3, 0xc0,
+    0x3c, 0x2f, 0x43, 0xd0, 0x0, 0xf0, 0x2e, 0xf,
+    0x40, 0xf4, 0x0, 0x3d, 0xff, 0xbf, 0xff, 0xff,
+    0xff, 0xff, 0x3f, 0x4f, 0xff, 0xff, 0xff, 0xff,
+    0xc0, 0x0, 0x0, 0x3, 0xd0, 0x0, 0xf0, 0x0,
+    0x0, 0x0, 0xf4, 0x0, 0x3c, 0x0, 0x0, 0x0,
+    0x3d, 0x0, 0xf, 0x0, 0x0, 0x0, 0xf, 0x40,
+    0x3, 0xc0, 0x0, 0x0, 0x3, 0xd0, 0x0,
+
     /* U+9675 "陵" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x3, 0xd0, 0x0, 0x1, 0x55, 0x50,
@@ -156760,31 +167099,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x3c, 0xf0, 0x0, 0x3c, 0x0, 0x0, 0x3c,
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
 
-    /* U+967D "陽" */
-    0x0, 0x0, 0x2, 0xaa, 0xaa, 0xaa, 0x0, 0xff,
-    0xff, 0xf, 0xff, 0xff, 0xf8, 0x3, 0xff, 0xfc,
-    0x3c, 0x0, 0x0, 0xe0, 0xf, 0x1, 0xe0, 0xf0,
-    0x0, 0x7, 0x80, 0x3c, 0xb, 0x43, 0xff, 0xff,
-    0xfe, 0x0, 0xf0, 0x3c, 0xf, 0xaa, 0xaa, 0xb8,
-    0x3, 0xc1, 0xe0, 0x3c, 0x0, 0x0, 0xe0, 0xf,
-    0xb, 0x40, 0xfa, 0xaa, 0xaf, 0x80, 0x3c, 0x3c,
-    0x3, 0xff, 0xff, 0xfe, 0x0, 0xf1, 0xe0, 0x0,
-    0x0, 0x0, 0x0, 0x3, 0xc7, 0xc0, 0x0, 0x0,
-    0x0, 0x0, 0xf, 0xf, 0x8f, 0xff, 0xff, 0xff,
-    0xfc, 0x3c, 0xf, 0x3f, 0xff, 0xff, 0xff, 0xf0,
-    0xf0, 0x2d, 0x3, 0xc0, 0x0, 0x0, 0x3, 0xc0,
-    0x78, 0x3f, 0xaa, 0xaa, 0xa4, 0xf, 0x1, 0xe2,
-    0xff, 0xff, 0xff, 0xe0, 0x3c, 0x7, 0xee, 0xf,
-    0x47, 0x83, 0x80, 0xf0, 0x2f, 0xf0, 0x7c, 0x1d,
-    0xd, 0x3, 0xcf, 0xf5, 0x3, 0xd0, 0xf0, 0x74,
-    0xf, 0x3f, 0x80, 0x2e, 0x7, 0x81, 0xd0, 0x3c,
-    0x0, 0x2, 0xf0, 0x3c, 0x7, 0x0, 0xf0, 0x0,
-    0x2f, 0x2, 0xe0, 0x2c, 0x3, 0xc0, 0x3, 0xf0,
-    0x2f, 0x0, 0xf0, 0xf, 0x0, 0x7f, 0x2, 0xf0,
-    0xff, 0x80, 0x3c, 0x0, 0xe0, 0x3f, 0x3, 0xf8,
-    0x0, 0xf0, 0x0, 0x0, 0xa0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
     /* U+9685 "隅" */
     0x3f, 0xff, 0x4f, 0xff, 0xff, 0xfc, 0xf, 0xff,
     0xd3, 0xff, 0xff, 0xff, 0x3, 0xd5, 0xf4, 0xf0,
@@ -157114,32 +167428,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xc0, 0x20, 0x0, 0x6f, 0xff, 0xff, 0x4f, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0,
 
-    /* U+96AA "險" */
-    0x0, 0x0, 0x0, 0x0, 0xf4, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0xf, 0xf0, 0x0, 0x3, 0xff, 0xfc,
-    0x0, 0xbf, 0xe0, 0x0, 0xf, 0xff, 0xf0, 0x7,
-    0xd3, 0xe0, 0x0, 0x3c, 0x7, 0x80, 0x3e, 0x7,
-    0xd0, 0x0, 0xf0, 0x2d, 0x3, 0xe0, 0xb, 0xd0,
-    0x3, 0xc0, 0xf0, 0x3e, 0x0, 0xb, 0xe0, 0xf,
-    0x3, 0xc7, 0xff, 0xff, 0xfb, 0xe0, 0x3c, 0x1e,
-    0xbe, 0x3f, 0xff, 0xc7, 0xf0, 0xf0, 0xf3, 0xe0,
-    0x0, 0x0, 0x7, 0xc3, 0xc3, 0xc1, 0x0, 0x0,
-    0x0, 0x1, 0xf, 0x1f, 0x3, 0xff, 0xc3, 0xff,
-    0xc0, 0x3c, 0x3d, 0xf, 0xff, 0xf, 0xff, 0x0,
-    0xf0, 0x7c, 0x38, 0x2c, 0x38, 0x2c, 0x3, 0xc0,
-    0xf0, 0xe0, 0xb0, 0xe0, 0xb0, 0xf, 0x2, 0xd3,
-    0x82, 0xc3, 0x82, 0xc0, 0x3c, 0x7, 0x8f, 0xff,
-    0xf, 0xff, 0x0, 0xf0, 0x1e, 0x3f, 0xfc, 0x3f,
-    0xfc, 0x3, 0xc0, 0x78, 0xf, 0x0, 0x2d, 0x0,
-    0xf, 0x7, 0xe0, 0x7c, 0x0, 0xf0, 0x0, 0x3c,
-    0xff, 0x2, 0xfc, 0x7, 0xc0, 0x0, 0xf2, 0xe0,
-    0xf, 0xbc, 0x3f, 0xd0, 0x3, 0xc0, 0x0, 0xf4,
-    0xb9, 0xf7, 0xd0, 0xf, 0x0, 0xb, 0xc0, 0x9f,
-    0x47, 0xd0, 0x3c, 0x0, 0x7c, 0x0, 0xf8, 0x7,
-    0xc0, 0xf0, 0x3, 0xd0, 0xf, 0xc0, 0xb, 0x83,
-    0xc0, 0x6, 0x0, 0x1c, 0x0, 0x8, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x0,
-
     /* U+96B0 "隰" */
     0x3f, 0xff, 0x4f, 0xff, 0xff, 0xff, 0x3, 0xff,
     0xf4, 0xfa, 0xaa, 0xaa, 0xf0, 0x3c, 0xb, 0xf,
@@ -157218,6 +167506,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0xbf, 0xf0, 0x0, 0x0, 0x14, 0x0, 0x0,
     0x29, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+96B9 "隹" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xe0, 0x2, 0xd0, 0x0, 0x0, 0x0, 0x1,
+    0xf0, 0x2, 0xf0, 0x0, 0x0, 0x0, 0x3, 0xf0,
+    0x1, 0xf0, 0x0, 0x0, 0x0, 0x3, 0xd0, 0x0,
+    0xf4, 0x0, 0x0, 0x0, 0xf, 0xc0, 0x0, 0xf8,
+    0x0, 0x0, 0x0, 0x1f, 0xff, 0xff, 0xff, 0xff,
+    0xfc, 0x0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfc,
+    0x0, 0xbf, 0x0, 0x1, 0xf0, 0x0, 0x0, 0x1,
+    0xff, 0x0, 0x1, 0xf0, 0x0, 0x0, 0x3, 0xff,
+    0x0, 0x1, 0xf0, 0x0, 0x0, 0xb, 0xef, 0x0,
+    0x1, 0xf0, 0x0, 0x0, 0x2f, 0x8f, 0xff, 0xff,
+    0xff, 0xff, 0xf0, 0x7e, 0xf, 0xff, 0xff, 0xff,
+    0xff, 0xf0, 0x28, 0xf, 0x0, 0x1, 0xf0, 0x0,
+    0x0, 0x0, 0xf, 0x0, 0x1, 0xf0, 0x0, 0x0,
+    0x0, 0xf, 0x0, 0x1, 0xf0, 0x0, 0x0, 0x0,
+    0xf, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x0, 0xf,
+    0xff, 0xff, 0xff, 0xff, 0xf0, 0x0, 0xf, 0x55,
+    0x55, 0xf5, 0x55, 0x50, 0x0, 0xf, 0x0, 0x1,
+    0xf0, 0x0, 0x0, 0x0, 0xf, 0x0, 0x1, 0xf0,
+    0x0, 0x0, 0x0, 0xf, 0x0, 0x1, 0xf0, 0x0,
+    0x0, 0x0, 0xf, 0x0, 0x1, 0xf0, 0x0, 0x0,
+    0x0, 0xf, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0,
+    0xf, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0xf,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+96BC "隼" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x1f, 0x0, 0x7c, 0x0, 0x0, 0x0, 0x0, 0xf8,
@@ -157704,6 +168019,30 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xbf, 0xe0, 0x7, 0xc0, 0x0, 0x3c, 0x2, 0xfe,
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+96E9 "雩" */
+    0x2, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x40, 0xf,
+    0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0,
+    0x3, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f,
+    0x0, 0x0, 0x0, 0xf, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xe0, 0x3e, 0xaa, 0xaa, 0xfa, 0xaa, 0xaf,
+    0x80, 0xf0, 0x0, 0x3, 0xc0, 0x0, 0x1e, 0x3,
+    0xc7, 0xff, 0xf, 0x2f, 0xfc, 0x78, 0xf, 0x5,
+    0x54, 0x3c, 0x15, 0x51, 0xe0, 0x18, 0x15, 0x50,
+    0xf1, 0x55, 0x42, 0x40, 0x1, 0xff, 0xc3, 0xcb,
+    0xff, 0x0, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0,
+    0x0, 0x0, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x0,
+    0x7, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x7f, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xfc, 0xaa, 0xbe, 0xaa, 0xaa, 0xaa,
+    0xaa, 0xa0, 0x1, 0xf0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xb, 0xea, 0xaa, 0xaa, 0xaa, 0x0, 0x0,
+    0x3f, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x7, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x7d, 0x0, 0x0, 0x0, 0x0, 0x7, 0xff, 0xf0,
+    0x0, 0x0, 0x0, 0x0, 0xa, 0x94, 0x0, 0x0,
+
     /* U+96EA "雪" */
     0xf, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0xff,
     0xff, 0xff, 0xff, 0xff, 0xf0, 0x0, 0x0, 0x0,
@@ -157728,6 +168067,57 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xff, 0xfc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3,
     0xc0,
 
+    /* U+96EF "雯" */
+    0x3, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x3,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x0, 0x0,
+    0x0, 0x7c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x7c, 0x0, 0x0, 0x0, 0xf, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xd0, 0xf, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xe0, 0xf, 0x0, 0x0, 0x7c, 0x0, 0x2,
+    0xe0, 0xf, 0x5, 0x54, 0x7c, 0x6a, 0xa2, 0xe0,
+    0xf, 0x1f, 0xfc, 0x7c, 0xbf, 0xf2, 0xe0, 0xf,
+    0x0, 0x0, 0x7c, 0x0, 0x1, 0xd0, 0x0, 0xa,
+    0xa8, 0x7c, 0x6a, 0xa0, 0x0, 0x0, 0x1f, 0xfc,
+    0x14, 0xbf, 0xf0, 0x0, 0x0, 0x0, 0x0, 0xb8,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c, 0x0,
+    0x0, 0x0, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xf0, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
+    0x0, 0x3, 0xd0, 0x0, 0xf, 0x80, 0x0, 0x0,
+    0x1, 0xf4, 0x0, 0x3e, 0x0, 0x0, 0x0, 0x0,
+    0x7d, 0x0, 0xfc, 0x0, 0x0, 0x0, 0x0, 0x1f,
+    0x87, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xff,
+    0x80, 0x0, 0x0, 0x0, 0x0, 0x7, 0xff, 0x90,
+    0x0, 0x0, 0x0, 0x1, 0xff, 0xdb, 0xff, 0x90,
+    0x0, 0x6, 0xff, 0xf8, 0x0, 0x6f, 0xff, 0xa4,
+    0xbf, 0xfe, 0x40, 0x0, 0x1, 0xbf, 0xfc, 0x3a,
+    0x40, 0x0, 0x0, 0x0, 0x0, 0x64,
+
+    /* U+96F3 "雳" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x0, 0xaa,
+    0xaa, 0xbf, 0xaa, 0xaa, 0xa0, 0x0, 0x0, 0x0,
+    0x1e, 0x0, 0x0, 0x0, 0x2, 0xaa, 0xaa, 0xbf,
+    0xaa, 0xaa, 0xa4, 0x3, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xf8, 0x3, 0xc0, 0x0, 0x1e, 0x0, 0x0,
+    0x78, 0x3, 0xc5, 0x55, 0x1e, 0x15, 0x54, 0x78,
+    0x3, 0xcb, 0xff, 0x1e, 0x2f, 0xfc, 0x78, 0x3,
+    0xc0, 0x0, 0x1e, 0x0, 0x0, 0x38, 0x0, 0xb,
+    0xff, 0x1e, 0x2f, 0xfc, 0x0, 0x0, 0x5, 0x55,
+    0x1e, 0x15, 0x54, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0xbf, 0xff, 0xff, 0xff,
+    0xff, 0xfc, 0x0, 0xbf, 0xff, 0xff, 0xff, 0xff,
+    0xfc, 0x0, 0xb4, 0x0, 0x28, 0x0, 0x0, 0x0,
+    0x0, 0xb4, 0x0, 0x3d, 0x0, 0x0, 0x0, 0x0,
+    0xb5, 0xaa, 0xbf, 0xaa, 0xaa, 0x80, 0x0, 0xf6,
+    0xff, 0xff, 0xff, 0xff, 0xc0, 0x0, 0xf0, 0x0,
+    0x3c, 0x0, 0xb, 0x80, 0x0, 0xf0, 0x0, 0x78,
+    0x0, 0xb, 0x80, 0x1, 0xf0, 0x0, 0xf4, 0x0,
+    0xf, 0x80, 0x3, 0xe0, 0x2, 0xe0, 0x0, 0xf,
+    0x40, 0x7, 0xc0, 0x1f, 0xc0, 0x0, 0x2f, 0x0,
+    0xf, 0x81, 0xfe, 0x0, 0x7f, 0xff, 0x0, 0x3f,
+    0xb, 0xe0, 0x0, 0x7f, 0xe8, 0x0, 0x8, 0x2,
+    0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+96F6 "零" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x3f, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x0, 0xa,
@@ -157805,6 +168195,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xff, 0xff, 0xff, 0xff, 0xf4, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+96FE "雾" */
+    0x0, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xa0, 0x0,
+    0x3f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x0,
+    0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0xa, 0xaa,
+    0xaa, 0xbe, 0xaa, 0xaa, 0x90, 0x3, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xfc, 0x0, 0xf0, 0x0, 0x3,
+    0xc0, 0x0, 0xf, 0x0, 0x3c, 0xbf, 0xf0, 0xf2,
+    0xff, 0xc3, 0xc0, 0xf, 0x5, 0x54, 0x3c, 0x15,
+    0x50, 0xf0, 0x3, 0xc1, 0x55, 0xf, 0x5, 0x54,
+    0x24, 0x0, 0x2, 0xff, 0xc3, 0xcb, 0xff, 0x0,
+    0x0, 0x0, 0x2, 0x80, 0xa0, 0x0, 0x0, 0x0,
+    0x0, 0x7, 0xfa, 0xaa, 0xaa, 0xa9, 0x0, 0x0,
+    0xb, 0xff, 0xff, 0xff, 0xff, 0x80, 0x0, 0x2f,
+    0xfe, 0x0, 0x0, 0x7f, 0x80, 0x0, 0xbe, 0x7,
+    0xf9, 0x1b, 0xfd, 0x0, 0x0, 0x8, 0x0, 0x2f,
+    0xff, 0xe0, 0x0, 0x0, 0x0, 0x16, 0xff, 0xff,
+    0xff, 0xe9, 0x40, 0xb, 0xff, 0xfe, 0x40, 0x6,
+    0xbf, 0xff, 0xe2, 0xe9, 0x40, 0x1e, 0x0, 0x0,
+    0x16, 0xb4, 0x1, 0xaa, 0xaf, 0xea, 0xaa, 0xa9,
+    0x0, 0x0, 0xbf, 0xff, 0xff, 0xff, 0xff, 0x40,
+    0x0, 0x0, 0x3, 0xe0, 0x0, 0x3, 0xd0, 0x0,
+    0x0, 0x7, 0xf0, 0x0, 0x0, 0xf0, 0x0, 0x0,
+    0x1f, 0xe0, 0x0, 0x0, 0xbc, 0x0, 0x6, 0xff,
+    0x80, 0x0, 0xbf, 0xfe, 0x0, 0x3, 0xfd, 0x0,
+    0x0, 0x2f, 0xf9, 0x0, 0x0, 0x50, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+9700 "需" */
     0xf, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x0, 0xff,
     0xff, 0xff, 0xff, 0xff, 0xd0, 0x0, 0x0, 0x1,
@@ -157829,6 +168246,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x8f, 0xf8, 0x0, 0xb4, 0x0, 0x0, 0x0, 0xbe,
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+9701 "霁" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x2, 0xaa,
+    0xaa, 0xbe, 0xaa, 0xaa, 0x40, 0x0, 0x0, 0x0,
+    0x7c, 0x0, 0x0, 0x0, 0xf, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xe0, 0xf, 0xaa, 0xaa, 0xfe, 0xaa,
+    0xab, 0xe0, 0xf, 0x0, 0x0, 0x7c, 0x0, 0x2,
+    0xe0, 0xf, 0x2f, 0xfc, 0x7c, 0xbf, 0xf2, 0xe0,
+    0xf, 0x0, 0x0, 0x7c, 0x0, 0x2, 0xe0, 0xf,
+    0x1f, 0xfc, 0x78, 0xbf, 0xf1, 0x90, 0x0, 0x5,
+    0x54, 0x64, 0x55, 0x50, 0x0, 0x0, 0x0, 0x0,
+    0x78, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c,
+    0x0, 0x0, 0x0, 0xf, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xf0, 0xa, 0xaf, 0xea, 0xaa, 0xaf, 0xfa,
+    0xa0, 0x0, 0x3, 0xf4, 0x0, 0x2f, 0x80, 0x0,
+    0x0, 0x0, 0xbe, 0x41, 0xfd, 0x0, 0x0, 0x0,
+    0x0, 0xb, 0xff, 0xd0, 0x0, 0x0, 0x0, 0x0,
+    0x6f, 0xff, 0xe4, 0x0, 0x0, 0x16, 0xbf, 0xff,
+    0x86, 0xff, 0xfa, 0x54, 0xbf, 0xff, 0x90, 0x0,
+    0x6, 0xff, 0xfd, 0x69, 0x41, 0x90, 0x0, 0xe,
+    0x1, 0x68, 0x0, 0x2, 0xe0, 0x0, 0xf, 0x0,
+    0x0, 0x0, 0x3, 0xc0, 0x0, 0xf, 0x0, 0x0,
+    0x0, 0x1f, 0x80, 0x0, 0xf, 0x0, 0x0, 0x1,
+    0xfe, 0x0, 0x0, 0xf, 0x0, 0x0, 0x3, 0xf4,
+    0x0, 0x0, 0xf, 0x0, 0x0, 0x1, 0x40, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+9704 "霄" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xff,
     0xff, 0xff, 0xff, 0xff, 0xc0, 0xaa, 0xaa, 0xbf,
@@ -158006,6 +168450,56 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xff, 0xf9, 0x40, 0x6, 0xff, 0xc0, 0x1f, 0xa4,
     0x0, 0x0, 0x0, 0x6, 0xc0,
 
+    /* U+970F "霏" */
+    0x3, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0xf,
+    0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0,
+    0x3, 0xc0, 0x0, 0x0, 0x2, 0xaa, 0xaa, 0xaf,
+    0xaa, 0xaa, 0xa8, 0xf, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xf0, 0x3c, 0x0, 0x0, 0xf0, 0x0, 0x3,
+    0xc0, 0xf1, 0xff, 0xc3, 0xcb, 0xff, 0xf, 0x3,
+    0xc1, 0x55, 0xf, 0x15, 0x54, 0x3c, 0xf, 0x5,
+    0x54, 0x3c, 0x15, 0x40, 0xf0, 0x28, 0x7f, 0xf0,
+    0xf2, 0xff, 0xc1, 0x0, 0x0, 0x0, 0x2, 0x80,
+    0x0, 0x0, 0x0, 0x0, 0x3, 0xc0, 0x78, 0x0,
+    0x0, 0x0, 0x0, 0xf, 0x1, 0xf0, 0x0, 0x0,
+    0x7f, 0xff, 0xfc, 0x7, 0xff, 0xff, 0xc0, 0xaa,
+    0xaa, 0xf0, 0x1f, 0xaa, 0xaa, 0x0, 0x0, 0x3,
+    0xc0, 0x7c, 0x0, 0x0, 0x0, 0x0, 0xf, 0x1,
+    0xf0, 0x0, 0x0, 0x2f, 0xff, 0xfc, 0x7, 0xff,
+    0xff, 0x40, 0x6a, 0xaa, 0xf0, 0x1f, 0xaa, 0xa8,
+    0x0, 0x0, 0x3, 0xc0, 0x7c, 0x0, 0x0, 0x0,
+    0x0, 0xf, 0x1, 0xf0, 0x0, 0x1, 0xff, 0xff,
+    0xfc, 0x7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xf0,
+    0x1f, 0xff, 0xff, 0xc0, 0x0, 0x3, 0xc0, 0x7c,
+    0x0, 0x0, 0x0, 0x0, 0xf, 0x1, 0xf0, 0x0,
+    0x0, 0x0, 0x0, 0x3c, 0x7, 0xc0, 0x0, 0x0,
+
+    /* U+9713 "霓" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x2, 0xaa,
+    0xaa, 0xbe, 0xaa, 0xaa, 0x80, 0x0, 0x0, 0x0,
+    0x3c, 0x0, 0x0, 0x0, 0xf, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xe0, 0xf, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xf0, 0xf, 0x0, 0x0, 0x3c, 0x0, 0x1,
+    0xf0, 0xf, 0x2f, 0xfc, 0x3c, 0xbf, 0xf1, 0xf0,
+    0xf, 0x0, 0x0, 0x3c, 0x0, 0x1, 0xf0, 0xf,
+    0x1f, 0xfc, 0x3c, 0xbf, 0xf0, 0x90, 0x0, 0x5,
+    0x54, 0x3c, 0x15, 0x50, 0x0, 0x0, 0x0, 0x1,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x5a, 0xff, 0xc2,
+    0xaa, 0xaa, 0x0, 0x0, 0xff, 0xe5, 0x7, 0xff,
+    0xff, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0x1f,
+    0x0, 0x0, 0xf5, 0x55, 0x41, 0x55, 0x6f, 0x0,
+    0x0, 0xff, 0xff, 0xc7, 0xff, 0xff, 0x0, 0x0,
+    0xf0, 0x0, 0x0, 0x0, 0x1f, 0x0, 0x0, 0xf0,
+    0x0, 0x0, 0x0, 0x1f, 0x0, 0x0, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0x0, 0x0, 0xaa, 0xbe, 0xaa,
+    0xfa, 0xaa, 0x0, 0x0, 0x0, 0x7c, 0x1, 0xf0,
+    0x0, 0x20, 0x0, 0x0, 0xf8, 0x1, 0xf0, 0x0,
+    0x3c, 0x0, 0x1b, 0xf0, 0x1, 0xf0, 0x0, 0x7c,
+    0x1b, 0xff, 0x80, 0x0, 0xfe, 0xab, 0xf8, 0x3f,
+    0xf4, 0x0, 0x0, 0x6f, 0xff, 0xe0, 0x19, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+9716 "霖" */
     0x0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x0,
     0x3f, 0xff, 0xff, 0xff, 0xff, 0xf4, 0x0, 0x0,
@@ -158057,6 +168551,82 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xc0, 0x0, 0x3c, 0x0, 0xfa, 0xaa, 0xaf, 0x0,
     0x0, 0xf0, 0x3, 0xc0, 0x0, 0x2c, 0x0,
 
+    /* U+971E "霞" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f,
+    0xff, 0xff, 0xff, 0xff, 0xfc, 0x0, 0xaa, 0xaa,
+    0xaf, 0xaa, 0xaa, 0xa0, 0x0, 0x0, 0x0, 0x3c,
+    0x0, 0x0, 0x0, 0x3f, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xc0, 0xfa, 0xaa, 0xab, 0xea, 0xaa, 0xaf,
+    0x3, 0xc5, 0x55, 0xf, 0x15, 0x54, 0x3c, 0xf,
+    0x2f, 0xfc, 0x3c, 0xbf, 0xf0, 0xf0, 0x3c, 0x0,
+    0x0, 0xf0, 0x0, 0x3, 0xc0, 0x3, 0xff, 0xc3,
+    0xcb, 0xff, 0x0, 0x0, 0x1, 0x55, 0xa, 0x5,
+    0x54, 0x0, 0x1, 0xaa, 0xaa, 0x46, 0xaa, 0xaa,
+    0x40, 0xb, 0xff, 0xff, 0x2f, 0xff, 0xfe, 0x0,
+    0x2c, 0x0, 0x7c, 0x0, 0x0, 0xb8, 0x0, 0xb0,
+    0x1, 0xf0, 0x0, 0x2, 0xe0, 0x2, 0xff, 0xff,
+    0xcf, 0xff, 0xff, 0x80, 0xb, 0xaa, 0xaa, 0x15,
+    0x55, 0x55, 0x0, 0x2c, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xba, 0xaa, 0xab, 0xff, 0xff, 0xf0,
+    0x2, 0xff, 0xff, 0xda, 0xaa, 0xaf, 0xc0, 0xb,
+    0x0, 0x0, 0x2d, 0x0, 0x7c, 0x0, 0x2c, 0x0,
+    0x0, 0x3d, 0xb, 0xd0, 0x0, 0xbf, 0xff, 0xf0,
+    0x7e, 0xfc, 0x0, 0x2, 0xff, 0xff, 0xc0, 0xbf,
+    0xd0, 0x0, 0xb, 0x0, 0x0, 0x6f, 0xef, 0xf9,
+    0x0, 0x2c, 0x0, 0x7f, 0xf8, 0x6, 0xff, 0xd0,
+    0xb0, 0x0, 0xe4, 0x0, 0x0, 0x1a, 0x0,
+
+    /* U+972A "霪" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x2a, 0xaa,
+    0xab, 0xea, 0xaa, 0xa4, 0x0, 0x0, 0x0, 0xf,
+    0x0, 0x0, 0x0, 0xf, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xe0, 0x3d, 0x55, 0x56, 0xf5, 0x55, 0x5b,
+    0xc0, 0xf0, 0x55, 0x43, 0xc1, 0x55, 0xf, 0x3,
+    0xcb, 0xff, 0xf, 0x2f, 0xfc, 0x3c, 0xf, 0x0,
+    0x0, 0x3c, 0x0, 0x0, 0xf0, 0x14, 0xbf, 0xf0,
+    0xf2, 0xff, 0xc0, 0x0, 0x0, 0x55, 0x43, 0xc1,
+    0x55, 0x0, 0x3, 0xd0, 0x0, 0x1, 0x56, 0xab,
+    0xf0, 0xb, 0xf0, 0xbf, 0xff, 0xff, 0xfe, 0x80,
+    0x3, 0xf5, 0xa9, 0x57, 0x40, 0x78, 0x0, 0x1,
+    0xd0, 0xf0, 0x1e, 0x3, 0xd0, 0x4, 0x0, 0x1,
+    0xe0, 0x3c, 0x1f, 0x0, 0x7e, 0x0, 0x3, 0x81,
+    0xa5, 0xbf, 0xc0, 0x7f, 0x42, 0xff, 0xff, 0xff,
+    0xff, 0x0, 0x2f, 0x86, 0xaa, 0xaf, 0x50, 0x0,
+    0x0, 0x8, 0x0, 0x0, 0x7c, 0x0, 0x0, 0x0,
+    0x51, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x3, 0xcb,
+    0xff, 0xff, 0xff, 0xff, 0xf0, 0x2e, 0x0, 0x0,
+    0x1f, 0x0, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x7c,
+    0x0, 0x0, 0xf, 0x80, 0xaa, 0xab, 0xfa, 0xaa,
+    0x90, 0x7c, 0x3, 0xff, 0xff, 0xff, 0xff, 0x41,
+    0xd0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0,
+
+    /* U+972D "霭" */
+    0x2, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x40, 0x3f,
+    0xff, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x0, 0x0,
+    0x3c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xc0,
+    0x0, 0x0, 0xf, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xe0, 0xf5, 0x55, 0x5b, 0xd5, 0x55, 0x6e, 0xf,
+    0x2a, 0xa9, 0x3c, 0xaa, 0xa0, 0xe0, 0xf1, 0x55,
+    0x43, 0xc5, 0x55, 0xe, 0xf, 0x3f, 0xfd, 0x3c,
+    0xff, 0xf4, 0xe0, 0x1, 0x55, 0x42, 0x45, 0x55,
+    0x0, 0x7, 0x40, 0x5, 0x55, 0x55, 0x55, 0x0,
+    0x7c, 0x1, 0xff, 0xff, 0xff, 0xf0, 0x1, 0xf0,
+    0x1e, 0x0, 0x0, 0xf, 0x0, 0xb, 0x81, 0xff,
+    0xff, 0xff, 0xf0, 0x0, 0x10, 0x1e, 0x0, 0x0,
+    0xf, 0x1, 0x54, 0x1, 0xff, 0xff, 0xff, 0xf0,
+    0xbf, 0xe0, 0x7, 0xe5, 0x55, 0x55, 0xb, 0xfe,
+    0x0, 0xbd, 0x0, 0x0, 0x0, 0x0, 0xe0, 0x2f,
+    0xff, 0xff, 0xff, 0xe0, 0xe, 0xf, 0xea, 0xaf,
+    0xaa, 0xad, 0x0, 0xe0, 0xf8, 0x3, 0xf9, 0x1,
+    0xd0, 0xe, 0x2, 0xc6, 0xe1, 0xfd, 0x2d, 0x0,
+    0xe7, 0x6c, 0xb4, 0x1, 0xd2, 0xd0, 0xf, 0xf6,
+    0xea, 0xaa, 0xa4, 0x2c, 0x1, 0xfc, 0x2f, 0xff,
+    0xff, 0x43, 0xc0, 0x3e, 0x0, 0x0, 0x0, 0x2b,
+    0xf8, 0x0, 0x40, 0x0, 0x0, 0x2, 0xf9, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+9730 "霰" */
     0x7, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x2,
     0xaa, 0xaa, 0xfe, 0xaa, 0xaa, 0x0, 0x0, 0x0,
@@ -158186,30 +168756,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xff, 0xd7, 0xff, 0xff, 0xff, 0xfc, 0x0, 0xa9,
     0x0, 0x0, 0x0, 0x0, 0x0,
 
-    /* U+9748 "靈" */
-    0x3, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x2,
-    0xaa, 0xaa, 0xfe, 0xaa, 0xaa, 0x40, 0x0, 0x0,
-    0x0, 0x78, 0x0, 0x0, 0x0, 0xf, 0xff, 0xff,
-    0xff, 0xff, 0xff, 0xd0, 0xf, 0xaa, 0xaa, 0xbe,
-    0xaa, 0xab, 0xd0, 0xf, 0x5, 0x54, 0x78, 0x0,
-    0x2, 0xd0, 0xf, 0x1f, 0xfc, 0x78, 0xbf, 0xf2,
-    0xd0, 0xf, 0x0, 0x0, 0x78, 0x0, 0x1, 0xd0,
-    0x0, 0x1f, 0xfc, 0x78, 0xbf, 0xf0, 0x0, 0x0,
-    0x0, 0x0, 0x14, 0x0, 0x0, 0x0, 0x3, 0xff,
-    0xc7, 0xff, 0xcb, 0xff, 0x80, 0x3, 0x96, 0xc7,
-    0x57, 0xcb, 0x57, 0x80, 0x3, 0x41, 0xc7, 0x43,
-    0xcb, 0x3, 0x80, 0x3, 0x96, 0xc7, 0x57, 0xcb,
-    0x57, 0x80, 0x3, 0xff, 0xc7, 0xff, 0xcb, 0xff,
-    0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0xf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd0, 0xa,
-    0xaf, 0xea, 0xfe, 0xab, 0xfa, 0x90, 0x0, 0xf,
-    0x40, 0x78, 0x7, 0xc0, 0x0, 0x0, 0x3f, 0xd0,
-    0x78, 0x1f, 0xf4, 0x0, 0x0, 0xf9, 0xfc, 0x78,
-    0xbc, 0x7f, 0x0, 0x3, 0xe0, 0x2e, 0x78, 0xf0,
-    0x7, 0xc0, 0x1, 0x0, 0x0, 0x78, 0x0, 0x0,
-    0x0, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc,
-    0x6a, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xa8,
-
     /* U+9752 "青" */
     0x0, 0x0, 0x0, 0x78, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x7c, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -158502,32 +169048,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x7, 0xc0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x1f, 0x0, 0x0, 0x0,
 
-    /* U+9770 "靰" */
-    0x3, 0xc0, 0x38, 0x0, 0x0, 0x0, 0x0, 0x3,
-    0xc0, 0x38, 0x0, 0x0, 0x0, 0x0, 0x3, 0xc0,
-    0x38, 0x1f, 0xff, 0xff, 0xe0, 0x3f, 0xff, 0xff,
-    0xdf, 0xff, 0xff, 0xe0, 0x3f, 0xff, 0xff, 0x80,
-    0xe0, 0xf0, 0x0, 0x3, 0xc0, 0x38, 0x0, 0xe0,
-    0xf0, 0x0, 0x3, 0xc0, 0x38, 0x0, 0xe0, 0xf0,
-    0x0, 0x3, 0xea, 0xb8, 0x0, 0xe0, 0xf0, 0x0,
-    0x3, 0xff, 0xf8, 0x0, 0xe0, 0xf0, 0x0, 0x0,
-    0xf, 0x0, 0x0, 0xe0, 0xf0, 0x0, 0x0, 0xf,
-    0x0, 0x0, 0xe0, 0xf0, 0x0, 0xa, 0xaf, 0xaa,
-    0x0, 0xe0, 0xf0, 0x0, 0x1f, 0xff, 0xff, 0x0,
-    0xe0, 0xf0, 0x0, 0x1d, 0xf, 0xb, 0x0, 0xe0,
-    0xf0, 0x0, 0x1d, 0xf, 0xb, 0x1, 0xe0, 0xf0,
-    0x0, 0x1d, 0xf, 0xb, 0x1, 0xe0, 0xf0, 0x0,
-    0x1f, 0xaf, 0xaf, 0x1, 0xd0, 0xf0, 0x0, 0x1f,
-    0xff, 0xff, 0x2, 0xd0, 0xf0, 0x0, 0x0, 0xf,
-    0x0, 0x2, 0xc0, 0xf0, 0x20, 0x0, 0xf, 0x0,
-    0x3, 0xc0, 0xf0, 0x3c, 0x0, 0xf, 0x0, 0x7,
-    0x80, 0xf0, 0x3c, 0xbf, 0xff, 0xff, 0xcf, 0x40,
-    0xf0, 0x3c, 0xbf, 0xff, 0xff, 0xef, 0x0, 0xf0,
-    0x3c, 0x0, 0xf, 0x0, 0x3d, 0x0, 0xf5, 0xb8,
-    0x0, 0xf, 0x0, 0xf8, 0x0, 0xff, 0xf4, 0x0,
-    0xf, 0x3, 0xf0, 0x0, 0x3f, 0xe0, 0x0, 0xf,
-    0x0, 0x80, 0x0, 0x0, 0x0,
-
     /* U+9773 "靳" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf,
     0x0, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x3c, 0x3,
@@ -158607,59 +169127,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0xf0, 0x0, 0x2f, 0xff, 0xf8, 0x0, 0x3,
     0xc0, 0x0, 0x0, 0x0, 0x0,
 
-    /* U+9778 "靸" */
-    0x1, 0xc0, 0x28, 0x0, 0x0, 0x0, 0x0, 0x2,
-    0xc0, 0x3c, 0x5, 0x55, 0x55, 0x0, 0x2, 0xd0,
-    0x3c, 0x1f, 0xff, 0xff, 0x80, 0x3f, 0xff, 0xff,
-    0xdf, 0xff, 0xff, 0x80, 0x2f, 0xff, 0xff, 0xc0,
-    0xe0, 0xb, 0x40, 0x2, 0xc0, 0x3c, 0x0, 0xe0,
-    0xf, 0x0, 0x2, 0xc0, 0x3c, 0x0, 0xe0, 0x1e,
-    0x0, 0x2, 0xff, 0xfc, 0x0, 0xf0, 0x3c, 0x0,
-    0x2, 0xff, 0xfc, 0x0, 0xf0, 0x3c, 0x0, 0x0,
-    0xb, 0x0, 0x1, 0xf0, 0xbf, 0xf0, 0x0, 0xb,
-    0x0, 0x1, 0xf4, 0xbf, 0xf0, 0xb, 0xff, 0xff,
-    0x1, 0xf8, 0x15, 0xf0, 0xf, 0xff, 0xff, 0x2,
-    0xfc, 0x1, 0xe0, 0xf, 0xb, 0xb, 0x2, 0xfc,
-    0x2, 0xd0, 0xf, 0xb, 0xb, 0x3, 0xed, 0x3,
-    0xc0, 0xf, 0xb, 0xb, 0x3, 0xcf, 0x7, 0x80,
-    0xf, 0xff, 0xff, 0x3, 0xcb, 0x4f, 0x40, 0xf,
-    0xff, 0xff, 0x7, 0x87, 0xdf, 0x0, 0x0, 0xb,
-    0x0, 0xb, 0x43, 0xfd, 0x0, 0x0, 0xb, 0x0,
-    0xf, 0x1, 0xfc, 0x0, 0x6a, 0xaf, 0xaa, 0x9f,
-    0x0, 0xfc, 0x0, 0x7f, 0xff, 0xff, 0xfd, 0x3,
-    0xfe, 0x0, 0x0, 0xf, 0x40, 0xbc, 0xf, 0xdf,
-    0x80, 0x0, 0xb, 0x0, 0xf8, 0x3f, 0x7, 0xe0,
-    0x0, 0xb, 0x2, 0xf1, 0xfc, 0x2, 0xfc, 0x0,
-    0xb, 0x3, 0xd7, 0xf0, 0x0, 0x7e, 0x0, 0xb,
-    0x2, 0x83, 0x80, 0x0, 0x1c, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0,
-
-    /* U+977A "靺" */
-    0x7, 0x80, 0xb0, 0x0, 0x3, 0x80, 0x0, 0x7,
-    0x80, 0xb0, 0x0, 0x7, 0x80, 0x0, 0x7, 0x80,
-    0xf0, 0x0, 0x7, 0x80, 0x0, 0x7f, 0xff, 0xff,
-    0x40, 0x7, 0x80, 0x0, 0x7f, 0xff, 0xff, 0x6f,
-    0xff, 0xff, 0xf0, 0x7, 0x80, 0xb0, 0x3f, 0xff,
-    0xff, 0xf0, 0x7, 0x80, 0xb0, 0x0, 0x7, 0x80,
-    0x0, 0x7, 0xea, 0xf0, 0x0, 0x7, 0x80, 0x0,
-    0x7, 0xff, 0xf0, 0x0, 0x7, 0x80, 0x0, 0x0,
-    0x2d, 0x0, 0x0, 0x7, 0x80, 0x0, 0x0, 0x2d,
-    0x0, 0x0, 0x7, 0x80, 0x0, 0x2f, 0xff, 0xfd,
-    0xf, 0xff, 0xff, 0xe0, 0x2f, 0xff, 0xfd, 0x1f,
-    0xff, 0xff, 0xf0, 0x2c, 0x2d, 0x1d, 0x0, 0xf,
-    0xd0, 0x0, 0x2c, 0x2d, 0x1d, 0x0, 0x1f, 0xe0,
-    0x0, 0x2c, 0x2d, 0x1d, 0x0, 0x3f, 0xf0, 0x0,
-    0x2e, 0xbf, 0xbd, 0x0, 0xbf, 0xf8, 0x0, 0x2f,
-    0xff, 0xfd, 0x0, 0xfb, 0xfc, 0x0, 0x0, 0x2d,
-    0x0, 0x2, 0xe7, 0xae, 0x0, 0x0, 0x2d, 0x0,
-    0x7, 0xc7, 0x8f, 0x40, 0xff, 0xff, 0xff, 0x4f,
-    0x47, 0x87, 0xc0, 0xff, 0xff, 0xff, 0x7e, 0x7,
-    0x82, 0xf0, 0x0, 0x2d, 0x0, 0xfc, 0x7, 0x80,
-    0xf8, 0x0, 0x2d, 0x2, 0xf0, 0x7, 0x80, 0x7c,
-    0x0, 0x2d, 0x0, 0xd0, 0x7, 0x80, 0x14, 0x0,
-    0x2d, 0x0, 0x0, 0x7, 0x80, 0x0, 0x0, 0x2d,
-    0x0, 0x0, 0x7, 0x80, 0x0,
-
     /* U+977C "靼" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3,
     0xc0, 0x3c, 0x0, 0x0, 0x0, 0x0, 0x3, 0xc0,
@@ -158687,32 +169154,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0xff, 0xff, 0xff, 0xfc, 0x0, 0xf, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
-    /* U+977F "靿" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x74,
-    0x2c, 0x0, 0x40, 0xe, 0x0, 0x7, 0x42, 0xc0,
-    0xf, 0x0, 0xe0, 0x0, 0x74, 0x2c, 0x1, 0xe0,
-    0xe, 0x0, 0x7f, 0xff, 0xfc, 0x3c, 0x0, 0xe0,
-    0x6, 0xfe, 0xbf, 0x83, 0xc0, 0xe, 0x0, 0x7,
-    0x42, 0xc0, 0x78, 0x0, 0xe0, 0x0, 0x74, 0x2c,
-    0xf, 0xb, 0xbf, 0xfe, 0x7, 0xeb, 0xc0, 0xf0,
-    0xf7, 0xff, 0xf0, 0x7f, 0xfc, 0x2d, 0x1e, 0x1f,
-    0x5f, 0x0, 0x38, 0x3, 0xd3, 0xc0, 0xe0, 0xf0,
-    0x3, 0x80, 0xbf, 0xfc, 0x1e, 0xf, 0x1f, 0xff,
-    0xf7, 0xef, 0x41, 0xe0, 0xe1, 0xeb, 0xef, 0x0,
-    0xf0, 0x1e, 0xe, 0x1c, 0x38, 0xb0, 0x2e, 0x1,
-    0xd0, 0xe1, 0xc3, 0x8b, 0x3, 0xdd, 0x1d, 0xe,
-    0x1c, 0x38, 0xb0, 0x78, 0xf2, 0xc0, 0xe1, 0xeb,
-    0xef, 0xf, 0xb, 0x2c, 0x1e, 0x1f, 0xff, 0xf1,
-    0xe0, 0x77, 0xc1, 0xe0, 0x3, 0x80, 0x3c, 0x1b,
-    0xf8, 0x1e, 0x0, 0x38, 0xb, 0xff, 0xff, 0x41,
-    0xeb, 0xff, 0xff, 0xff, 0xe6, 0xf0, 0x1e, 0xff,
-    0xff, 0xf9, 0x0, 0x1f, 0x1, 0xe0, 0x7, 0x80,
-    0x0, 0x3, 0xd0, 0x1e, 0x0, 0x38, 0x0, 0x0,
-    0x7c, 0x17, 0xd0, 0x3, 0x80, 0x0, 0xf, 0x4f,
-    0xfc, 0x0, 0x38, 0x0, 0x2, 0xf0, 0x7e, 0x0,
-    0x3, 0x80, 0x0, 0x2c, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x0,
-
     /* U+9785 "鞅" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3,
     0x40, 0xb0, 0x0, 0xf, 0x0, 0x0, 0x7, 0x80,
@@ -158848,6 +169289,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xd0, 0x0, 0x38, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+9794 "鞔" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf,
+    0x2, 0xc0, 0x3, 0xd0, 0x0, 0x0, 0x3c, 0xb,
+    0x0, 0xf, 0x0, 0x0, 0x0, 0xf0, 0x3c, 0x0,
+    0xfe, 0xaa, 0x40, 0x7f, 0xff, 0xff, 0x87, 0xff,
+    0xff, 0x0, 0xbf, 0xab, 0xf9, 0x3e, 0x55, 0xf8,
+    0x0, 0x3c, 0xb, 0x2, 0xf0, 0x7, 0xc0, 0x0,
+    0xf0, 0x2c, 0x2f, 0x0, 0x3d, 0x0, 0x3, 0xff,
+    0xf1, 0xf4, 0x2, 0xe0, 0x0, 0xf, 0xff, 0xc7,
+    0xff, 0xff, 0xff, 0x0, 0x1, 0xd0, 0x3, 0xff,
+    0xff, 0xfc, 0x0, 0x7, 0x40, 0xf, 0x2, 0xc0,
+    0xf0, 0xf, 0xff, 0xfc, 0x3c, 0xf, 0x3, 0xc0,
+    0x3f, 0xff, 0xf4, 0xf0, 0x3c, 0xf, 0x0, 0xd1,
+    0xd2, 0xd3, 0xc0, 0xf0, 0x3c, 0x3, 0x47, 0x4b,
+    0x4f, 0x3, 0xc0, 0xf0, 0xd, 0x1d, 0x2d, 0x3f,
+    0xff, 0xff, 0xc0, 0x3f, 0xff, 0xf4, 0xff, 0xff,
+    0xff, 0x0, 0xff, 0xff, 0xc0, 0x3, 0xe4, 0x0,
+    0x0, 0x7, 0x40, 0x0, 0xf, 0xf0, 0x0, 0x0,
+    0x1d, 0x0, 0x0, 0xb7, 0xc0, 0x3, 0xff, 0xff,
+    0xfe, 0x7, 0xcf, 0x0, 0xef, 0xff, 0xff, 0xf8,
+    0x3d, 0x3c, 0x3, 0xc0, 0x7, 0x40, 0x3, 0xe0,
+    0xf0, 0xf, 0x0, 0x1d, 0x0, 0x7f, 0x3, 0xc0,
+    0xb8, 0x0, 0x74, 0xb, 0xe0, 0xf, 0xff, 0xd0,
+    0x1, 0xd0, 0x7e, 0x0, 0x1f, 0xfe, 0x0, 0x7,
+    0x40, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+9798 "鞘" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf,
     0x1, 0xd0, 0x0, 0x3d, 0x0, 0x0, 0x3c, 0x7,
@@ -158901,32 +169369,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x1, 0xd0, 0x0, 0x7, 0x4b, 0xf4, 0x0, 0x7,
     0x40, 0x0, 0x0, 0x0, 0x0,
 
-    /* U+97A1 "鞡" */
-    0x7, 0x3, 0x80, 0x3c, 0x0, 0x2c, 0x0, 0x7,
-    0x3, 0x80, 0x3c, 0x0, 0x3d, 0x0, 0x7, 0x3,
-    0x80, 0x3c, 0x0, 0x1e, 0x0, 0xbf, 0xff, 0xfc,
-    0x3c, 0x0, 0x1f, 0x0, 0x7f, 0xff, 0xfc, 0x3c,
-    0x0, 0xf, 0x0, 0x7, 0x3, 0x80, 0x3d, 0xf,
-    0xff, 0xf8, 0x7, 0x3, 0x87, 0xff, 0xcf, 0xff,
-    0xfc, 0x7, 0xab, 0x83, 0xff, 0xc0, 0x0, 0x0,
-    0x7, 0xff, 0x80, 0x3c, 0x0, 0x0, 0x0, 0x0,
-    0x74, 0x0, 0x3c, 0xf, 0x0, 0xb0, 0x0, 0x74,
-    0x0, 0x3c, 0xf, 0x0, 0xf0, 0x1a, 0xfe, 0xa0,
-    0x3c, 0xb, 0x40, 0xf0, 0x2f, 0xff, 0xf0, 0x3e,
-    0xe7, 0x80, 0xf0, 0x2c, 0x74, 0xf0, 0x3f, 0xf3,
-    0xc1, 0xe0, 0x2c, 0x74, 0xf2, 0xff, 0x43, 0xc2,
-    0xd0, 0x2c, 0x74, 0xfb, 0xfc, 0x2, 0xd2, 0xc0,
-    0x2e, 0xfe, 0xf7, 0x7c, 0x2, 0xd3, 0xc0, 0x2f,
-    0xff, 0xf0, 0x3c, 0x1, 0xe3, 0xc0, 0x0, 0x74,
-    0x0, 0x3c, 0x0, 0xe7, 0x80, 0x0, 0x74, 0x0,
-    0x3c, 0x0, 0xfb, 0x40, 0x0, 0x74, 0x0, 0x3c,
-    0x0, 0x4f, 0x0, 0xff, 0xff, 0xfc, 0x3c, 0x0,
-    0xf, 0x0, 0xff, 0xff, 0xfc, 0x3c, 0x0, 0xe,
-    0x0, 0x0, 0x74, 0x0, 0x3c, 0x0, 0x2d, 0x0,
-    0x0, 0x74, 0x0, 0x7c, 0x3f, 0xff, 0xfd, 0x0,
-    0x74, 0x7, 0xf8, 0x3f, 0xff, 0xfc, 0x0, 0x74,
-    0x2, 0x90, 0x0, 0x0, 0x0,
-
     /* U+97A3 "鞣" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3,
     0x80, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x80,
@@ -158955,57 +169397,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0xf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+97A7 "鞧" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf,
-    0x2, 0xc0, 0x1e, 0x0, 0x3c, 0x0, 0x3c, 0xf,
-    0x0, 0x3d, 0x2, 0xe0, 0x5, 0xf5, 0x7d, 0x0,
-    0x78, 0xf, 0x0, 0x3f, 0xff, 0xfe, 0xbf, 0xff,
-    0xff, 0xf4, 0xaf, 0xab, 0xe7, 0xff, 0xff, 0xff,
-    0xd0, 0x3c, 0xf, 0x0, 0xb, 0xf, 0x0, 0x0,
-    0xf0, 0x3c, 0x0, 0x2c, 0x38, 0x0, 0x3, 0xff,
-    0xf0, 0x0, 0xb0, 0xe0, 0x0, 0xf, 0xff, 0xc0,
-    0xff, 0xff, 0xff, 0x80, 0x1, 0xd0, 0x7, 0xff,
-    0xff, 0xfe, 0x0, 0x7, 0x40, 0x1d, 0x2c, 0x38,
-    0x38, 0xb, 0xff, 0xf8, 0x74, 0xb0, 0xe0, 0xe0,
-    0x3f, 0xff, 0xf1, 0xd2, 0xc3, 0x83, 0x80, 0xe1,
-    0xd2, 0xc7, 0x4f, 0xf, 0xe, 0x3, 0x87, 0x4b,
-    0x1d, 0x74, 0x3f, 0xb8, 0xe, 0x1d, 0x2c, 0x7b,
-    0xc0, 0x7f, 0xe0, 0x3f, 0xff, 0xf1, 0xfc, 0x0,
-    0x3, 0x80, 0xbf, 0xff, 0x87, 0x40, 0x0, 0xe,
-    0x0, 0x7, 0x40, 0x1f, 0xaa, 0xaa, 0xb8, 0x0,
-    0x1d, 0x0, 0x7f, 0xff, 0xff, 0xe0, 0xff, 0xff,
-    0xf9, 0xe0, 0x0, 0x3, 0x87, 0xff, 0xff, 0xf7,
-    0x40, 0x0, 0xe, 0x0, 0xb, 0x80, 0x1d, 0x0,
-    0x0, 0x38, 0x0, 0x1d, 0x0, 0x7f, 0xff, 0xff,
-    0xe0, 0x0, 0x74, 0x1, 0xff, 0xff, 0xff, 0x80,
-    0x1, 0xd0, 0x7, 0x40, 0x0, 0xe, 0x0, 0x7,
-    0x40, 0x1d, 0x0, 0x0, 0x38,
-
-    /* U+97A8 "鞨" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x38,
-    0xf, 0x0, 0x0, 0x0, 0x0, 0x3, 0x80, 0xf0,
-    0x1a, 0xaa, 0xaa, 0x80, 0x38, 0xf, 0x2, 0xff,
-    0xff, 0xfc, 0x3f, 0xff, 0xff, 0x2d, 0x0, 0x7,
-    0xc2, 0xff, 0xff, 0xe2, 0xd0, 0x0, 0x3c, 0x3,
-    0x80, 0xf0, 0x2e, 0xaa, 0xab, 0xc0, 0x38, 0xf,
-    0x2, 0xff, 0xff, 0xfc, 0x3, 0xff, 0xf0, 0x2d,
-    0x0, 0x3, 0xc0, 0x3f, 0xfe, 0x2, 0xd0, 0x0,
-    0x3c, 0x0, 0x1d, 0x0, 0x2f, 0xff, 0xff, 0xc0,
-    0x1, 0xd0, 0x2, 0xff, 0xff, 0xfc, 0xf, 0xff,
-    0xfc, 0x3, 0xc0, 0x0, 0x0, 0xff, 0xff, 0xc0,
-    0xb8, 0x0, 0x0, 0xe, 0x1d, 0x2c, 0xf, 0xea,
-    0xaa, 0xa0, 0xe1, 0xd2, 0xc3, 0xff, 0xff, 0xff,
-    0xe, 0x1d, 0x2d, 0xf8, 0x5, 0x1, 0xf0, 0xff,
-    0xff, 0xef, 0x0, 0xf0, 0xf, 0xf, 0xff, 0xfc,
-    0x6c, 0x1f, 0x0, 0xe0, 0x1, 0xd0, 0x2, 0xc3,
-    0xfd, 0xe, 0x0, 0x1d, 0x0, 0x2d, 0xf5, 0xf9,
-    0xe6, 0xab, 0xfa, 0xa2, 0xdd, 0x3, 0xde, 0xbf,
-    0xff, 0xff, 0x2c, 0x0, 0x1, 0xe0, 0x1, 0xd0,
-    0x2, 0xff, 0xfe, 0x1e, 0x0, 0x1d, 0x0, 0x2f,
-    0xff, 0xf2, 0xd0, 0x1, 0xd0, 0x0, 0x0, 0x1,
-    0xbd, 0x0, 0x1d, 0x0, 0x0, 0x0, 0x7f, 0xc0,
-    0x1, 0xd0, 0x0, 0x0, 0x2, 0x90,
-
     /* U+97AB "鞫" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x38,
     0xf, 0x0, 0x3c, 0x0, 0x0, 0x3, 0x80, 0xf0,
@@ -159032,32 +169423,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x2, 0xd0, 0x0, 0x0, 0x3f, 0xe4, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0,
 
-    /* U+97AC "鞬" */
-    0xb, 0x3, 0x80, 0x0, 0x2, 0xc0, 0x0, 0xb,
-    0x3, 0x80, 0x0, 0x3, 0xc0, 0x0, 0xb, 0x3,
-    0x86, 0xa9, 0x17, 0xd5, 0x40, 0x7f, 0xff, 0xfb,
-    0xfe, 0xff, 0xff, 0xc0, 0x6f, 0xab, 0xe0, 0x2d,
-    0x57, 0xd7, 0xc0, 0xb, 0x3, 0x80, 0x3c, 0x3,
-    0xc2, 0xc0, 0xb, 0x3, 0x80, 0xb4, 0x3, 0xc2,
-    0xd0, 0xb, 0xab, 0x80, 0xf2, 0xff, 0xff, 0xf8,
-    0xb, 0xff, 0x81, 0xd1, 0x57, 0xd7, 0xe4, 0x0,
-    0x70, 0x3, 0xc0, 0x3, 0xc2, 0xc0, 0x0, 0x70,
-    0x7, 0xe8, 0x3, 0xc2, 0xc0, 0x2f, 0xff, 0xe7,
-    0xfd, 0xff, 0xff, 0xc0, 0x2f, 0xff, 0xe0, 0x1d,
-    0x6b, 0xea, 0x80, 0x2c, 0x70, 0xe0, 0x1c, 0x3,
-    0xc0, 0x0, 0x2c, 0x70, 0xe9, 0x2c, 0x3, 0xc0,
-    0x0, 0x2c, 0x70, 0xee, 0x2c, 0xff, 0xff, 0xe0,
-    0x2e, 0xfe, 0xeb, 0x3c, 0xab, 0xea, 0x90, 0x2f,
-    0xff, 0xe7, 0x78, 0x3, 0xc0, 0x0, 0x0, 0x70,
-    0x3, 0xf4, 0x3, 0xc0, 0x0, 0x0, 0x70, 0x3,
-    0xf3, 0xff, 0xff, 0xf4, 0xbf, 0xff, 0xf1, 0xe1,
-    0x57, 0xd5, 0x50, 0xff, 0xff, 0xf2, 0xf4, 0x3,
-    0xc0, 0x0, 0x0, 0x74, 0x7, 0xfd, 0x3, 0xc0,
-    0x0, 0x0, 0x70, 0xf, 0x2f, 0x90, 0x40, 0x0,
-    0x0, 0x70, 0x2e, 0x7, 0xff, 0xff, 0xfc, 0x0,
-    0x70, 0x3c, 0x0, 0x6b, 0xff, 0xa4, 0x0, 0x70,
-    0x14, 0x0, 0x0, 0x0, 0x0,
-
     /* U+97AD "鞭" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7,
     0x41, 0xd0, 0xe, 0x0, 0x0, 0x0, 0x7, 0x41,
@@ -159113,6 +169478,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x2c, 0x1f, 0xf0, 0x0, 0x0, 0x2c, 0x0,
     0x2c, 0xe, 0x80, 0x0,
 
+    /* U+97B2 "鞲" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3,
+    0x80, 0xe0, 0x2, 0xc0, 0x3c, 0x0, 0x3, 0x80,
+    0xf0, 0x2, 0xc0, 0x3c, 0x0, 0x3, 0x80, 0xf0,
+    0x16, 0xd5, 0x7d, 0x50, 0x3f, 0xff, 0xff, 0xbf,
+    0xff, 0xff, 0xf8, 0x2b, 0xea, 0xfa, 0x16, 0xd5,
+    0x7d, 0x50, 0x3, 0x80, 0xf0, 0x2, 0xc0, 0x3c,
+    0x0, 0x3, 0x80, 0xf0, 0xbf, 0xff, 0xff, 0xf0,
+    0x3, 0xea, 0xf0, 0xbf, 0xff, 0xff, 0xf0, 0x3,
+    0xff, 0xf0, 0x2, 0xc0, 0x3c, 0x0, 0x0, 0x1d,
+    0x0, 0x2, 0xd0, 0x3c, 0x0, 0x0, 0x1d, 0x1,
+    0xff, 0xff, 0xff, 0xfc, 0xa, 0xae, 0xa5, 0xaa,
+    0xaf, 0xaa, 0xa8, 0xf, 0xff, 0xfc, 0x0, 0xf,
+    0x0, 0x0, 0xe, 0x2d, 0x3c, 0x2a, 0xaf, 0xaa,
+    0x80, 0xe, 0x1d, 0x3c, 0x3f, 0xff, 0xff, 0xd0,
+    0xe, 0x1d, 0x3c, 0x38, 0xf, 0x2, 0xd0, 0xf,
+    0xff, 0xfc, 0x38, 0xf, 0x2, 0xd0, 0xf, 0xff,
+    0xf8, 0x3f, 0xff, 0xff, 0xd0, 0x0, 0x1d, 0x0,
+    0x3e, 0xaf, 0xab, 0xd0, 0x0, 0x1d, 0x0, 0x38,
+    0xf, 0x2, 0xd0, 0x15, 0x6d, 0x54, 0x38, 0xf,
+    0x2, 0xd0, 0xbf, 0xff, 0xfe, 0xff, 0xff, 0xff,
+    0xfd, 0x6a, 0xbe, 0xa9, 0xbe, 0xaa, 0xab, 0xe8,
+    0x0, 0x1d, 0x0, 0x38, 0x0, 0x2, 0xd0, 0x0,
+    0x1d, 0x0, 0x38, 0x0, 0x2, 0xc0, 0x0, 0x1d,
+    0x0, 0x38, 0x0, 0xbf, 0xc0, 0x0, 0x1d, 0x0,
+    0x38, 0x0, 0xba, 0x0,
+
     /* U+97B4 "鞴" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd,
     0x3, 0xc0, 0xf, 0x0, 0xe0, 0x0, 0x38, 0xf,
@@ -159139,34 +169531,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x2, 0xc0, 0x3, 0xc0, 0xb3, 0xfc, 0x0, 0xb,
     0x0, 0xf, 0x0, 0xa, 0x40,
 
-    /* U+97C2 "韂" */
-    0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x3,
-    0x81, 0xc0, 0x3, 0xc0, 0x0, 0x0, 0x3, 0x81,
-    0xc0, 0xf, 0x80, 0x0, 0x0, 0x3, 0x81, 0xd0,
-    0x1f, 0xff, 0xff, 0x0, 0x3f, 0xff, 0xfc, 0x3d,
-    0x55, 0x7e, 0x0, 0x2b, 0xeb, 0xe8, 0xf8, 0x0,
-    0x7c, 0x0, 0x3, 0x81, 0xc2, 0xfa, 0xaa, 0xfa,
-    0xa4, 0x3, 0x81, 0xcb, 0xff, 0xff, 0xff, 0xfc,
-    0x3, 0xeb, 0xef, 0xd0, 0x20, 0x24, 0x0, 0x3,
-    0xff, 0xc9, 0xd0, 0xf4, 0x3e, 0x0, 0x0, 0x3c,
-    0x0, 0xd7, 0xd1, 0x4b, 0x80, 0x0, 0x3c, 0x0,
-    0xda, 0x3, 0xc1, 0xd0, 0xf, 0xff, 0xf0, 0xe9,
-    0x57, 0xd5, 0x94, 0xf, 0xbe, 0xb0, 0xff, 0xff,
-    0xff, 0xfc, 0xd, 0x3c, 0x70, 0xd0, 0x0, 0x0,
-    0x0, 0xd, 0x3c, 0x70, 0xd5, 0x55, 0x55, 0x40,
-    0xd, 0x3c, 0x71, 0xdf, 0xff, 0xff, 0xd0, 0xf,
-    0xff, 0xf1, 0xd0, 0x0, 0x0, 0x0, 0xf, 0xff,
-    0xf1, 0xd6, 0xaa, 0xaa, 0x80, 0x0, 0x3c, 0x1,
-    0xcf, 0xff, 0xff, 0xd0, 0x0, 0x3c, 0x2, 0xc0,
-    0x0, 0x0, 0x0, 0x7f, 0xff, 0xfa, 0xc7, 0xff,
-    0xff, 0xc0, 0xbf, 0xff, 0xff, 0xcb, 0xaa, 0xab,
-    0xc0, 0x0, 0x3c, 0x7, 0x8b, 0x0, 0x2, 0xc0,
-    0x0, 0x3c, 0x7, 0x4b, 0x0, 0x2, 0xc0, 0x0,
-    0x3c, 0xf, 0xb, 0xff, 0xff, 0xc0, 0x0, 0x3c,
-    0x1e, 0xb, 0xaa, 0xab, 0xc0, 0x0, 0x3c, 0x1d,
-    0xb, 0x0, 0x2, 0xc0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0,
-
     /* U+97E6 "韦" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x1, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7c,
@@ -159426,34 +169790,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xfc, 0xf, 0xff, 0xfe, 0xf, 0x0, 0x3, 0xc0,
     0x0, 0x0, 0x0, 0xf0, 0x0, 0x3c,
 
-    /* U+9839 "頹" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x16, 0xf4, 0x0, 0x0, 0x0, 0x0, 0x7f,
-    0xff, 0xfd, 0xbf, 0xff, 0xff, 0xe0, 0x1f, 0xff,
-    0x94, 0x2f, 0xff, 0xff, 0xf8, 0x0, 0x2, 0xd0,
-    0x0, 0x3, 0xe0, 0x0, 0x0, 0x0, 0xb4, 0x0,
-    0x0, 0xf4, 0x0, 0x0, 0x55, 0x7e, 0x55, 0x0,
-    0x7c, 0x0, 0x0, 0x3f, 0xff, 0xff, 0xcb, 0xff,
-    0xff, 0xc0, 0x6, 0xaf, 0xea, 0xa2, 0xff, 0xff,
-    0xf0, 0x0, 0x7, 0xf5, 0x0, 0xb0, 0x0, 0x3c,
-    0x0, 0x7, 0xff, 0xe0, 0x2c, 0x0, 0xf, 0x0,
-    0x7, 0xdb, 0x6f, 0xb, 0xff, 0xff, 0xc0, 0xb,
-    0xd2, 0xd2, 0xf2, 0xff, 0xff, 0xf0, 0xf, 0xc0,
-    0xb4, 0x1c, 0xb0, 0x0, 0x3c, 0x2, 0x80, 0x18,
-    0x0, 0x2c, 0x0, 0xf, 0x0, 0x0, 0x40, 0x10,
-    0xb, 0xff, 0xff, 0xc0, 0x0, 0x74, 0x1d, 0x2,
-    0xff, 0xff, 0xf0, 0x0, 0x1d, 0x7, 0x40, 0xb0,
-    0x0, 0x3c, 0x0, 0x7, 0x41, 0xd0, 0x2c, 0x0,
-    0xf, 0x0, 0x1, 0xd0, 0x74, 0xb, 0xff, 0xff,
-    0xc0, 0x0, 0xb4, 0x1d, 0x2, 0xff, 0xff, 0xf0,
-    0x0, 0x2d, 0x7, 0x4e, 0x1, 0x0, 0x0, 0x0,
-    0xf, 0x1, 0xef, 0x83, 0xd0, 0xb8, 0x0, 0xb,
-    0x80, 0xbf, 0x47, 0xf0, 0x2f, 0xc0, 0x3, 0xc0,
-    0x3e, 0xb, 0xe0, 0x0, 0xfe, 0x3, 0xd0, 0x1,
-    0x1f, 0xd0, 0x0, 0xb, 0xd0, 0xa0, 0x0, 0x3,
-    0x80, 0x0, 0x0, 0x70, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0,
-
     /* U+9875 "页" */
     0x2f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xbf,
     0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x55, 0x55,
@@ -160042,33 +170378,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x24, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+988B "颋" */
-    0x0, 0x0, 0x0, 0x7, 0x2a, 0xaa, 0xaa, 0x3,
-    0xff, 0xc5, 0xbf, 0xef, 0xff, 0xff, 0xc0, 0xff,
-    0xf7, 0xff, 0x91, 0x57, 0xd5, 0x50, 0x0, 0x78,
-    0xeb, 0x80, 0x0, 0xe0, 0x0, 0x0, 0x3c, 0x0,
-    0xe0, 0x0, 0x74, 0x0, 0x0, 0x2d, 0x0, 0x38,
-    0x0, 0x2d, 0x0, 0x0, 0xf, 0x0, 0xe, 0x2,
-    0xff, 0xff, 0x80, 0xf, 0x0, 0x3, 0x80, 0xbf,
-    0xff, 0xe0, 0x7, 0x80, 0x15, 0xf5, 0x2d, 0x0,
-    0x38, 0x3, 0xff, 0xcf, 0xff, 0xeb, 0x4a, 0xe,
-    0x0, 0xff, 0xf2, 0xaf, 0xa6, 0xd3, 0xc3, 0x80,
-    0x0, 0x3c, 0x3, 0x80, 0xb4, 0xf0, 0xe0, 0x0,
-    0xf, 0x0, 0xe0, 0x2d, 0x3c, 0x38, 0x3, 0x43,
-    0x80, 0x38, 0xb, 0x4f, 0xe, 0x0, 0xe0, 0xe0,
-    0xe, 0x2, 0xd3, 0xc3, 0x80, 0x3c, 0x74, 0x3,
-    0x80, 0xb4, 0xf0, 0xe0, 0xb, 0x6c, 0x0, 0xe0,
-    0x2d, 0x3c, 0x38, 0x0, 0xef, 0xf, 0xff, 0xdb,
-    0x4f, 0xe, 0x0, 0x3f, 0x83, 0xff, 0xf6, 0xd3,
-    0x83, 0x80, 0x7, 0xc0, 0x0, 0x0, 0x2, 0xd4,
-    0x0, 0x1, 0xf8, 0x0, 0x0, 0x0, 0xfb, 0x80,
-    0x0, 0xff, 0x80, 0x0, 0x0, 0xb8, 0xf8, 0x0,
-    0xb8, 0xfe, 0x50, 0x0, 0xbc, 0xf, 0x80, 0x7c,
-    0xb, 0xff, 0xfc, 0xfc, 0x0, 0xf8, 0x3d, 0x0,
-    0x1b, 0xfd, 0xfc, 0x0, 0xf, 0x4a, 0x0, 0x0,
-    0x0, 0x28, 0x0, 0x0, 0xc0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0,
-
     /* U+988C "颌" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -160348,30 +170657,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x6f, 0xff, 0xff, 0xff, 0xff, 0x1, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0,
 
-    /* U+9899 "颙" */
-    0x3f, 0xff, 0xff, 0xf, 0xff, 0xff, 0xd0, 0xff,
-    0xff, 0xfc, 0x3f, 0xff, 0xff, 0x43, 0xc0, 0xe0,
-    0xf0, 0x0, 0xf0, 0x0, 0xf, 0x3, 0x83, 0xc0,
-    0x3, 0xc0, 0x0, 0x3c, 0xe, 0xf, 0x0, 0xf,
-    0x0, 0x0, 0xff, 0xff, 0xfc, 0x0, 0x78, 0x0,
-    0x3, 0xff, 0xff, 0xf0, 0x7f, 0xff, 0xf0, 0xf,
-    0x3, 0x83, 0xc1, 0xff, 0xff, 0xc0, 0x3c, 0xe,
-    0xf, 0x7, 0x40, 0xb, 0x0, 0xf0, 0x38, 0x3c,
-    0x1d, 0x4, 0x2c, 0x3, 0xff, 0xff, 0xf0, 0x74,
-    0xb0, 0xb0, 0xa, 0xab, 0xea, 0x81, 0xd2, 0xc2,
-    0xc0, 0x0, 0xe, 0x0, 0x7, 0x4b, 0xb, 0x0,
-    0x0, 0x38, 0x0, 0x1d, 0x2c, 0x2c, 0xf, 0xff,
-    0xff, 0xfc, 0x74, 0xb0, 0xb0, 0x3f, 0xff, 0xff,
-    0xf1, 0xd2, 0xc2, 0xc0, 0xf0, 0xe, 0x3, 0xc7,
-    0x4b, 0xb, 0x3, 0xc0, 0x3a, 0xcf, 0x1d, 0x3c,
-    0x2c, 0xf, 0x0, 0xe7, 0x3c, 0x74, 0xf0, 0xb0,
-    0x3c, 0x17, 0xed, 0xf0, 0x47, 0x91, 0x40, 0xf7,
-    0xff, 0xfb, 0xc0, 0x3c, 0xf0, 0x3, 0xca, 0x54,
-    0xbf, 0x3, 0xd2, 0xf4, 0xf, 0x0, 0x1, 0x7c,
-    0x3e, 0x1, 0xf8, 0x3c, 0x0, 0x2b, 0xf7, 0xe0,
-    0x0, 0xf8, 0xf0, 0x0, 0xbe, 0x2e, 0x0, 0x0,
-    0xf0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0,
-
     /* U+989A "颚" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f,
     0xfc, 0xbf, 0xe7, 0xff, 0xff, 0xfc, 0x1e, 0xbc,
@@ -160454,6 +170739,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+989D "额" */
+    0x0, 0x1, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x2c, 0x0, 0x2a, 0xaa, 0xaa, 0x90, 0x2a, 0xaf,
+    0xea, 0x8f, 0xff, 0xff, 0xf8, 0xb, 0xff, 0xff,
+    0xf0, 0x0, 0xf4, 0x0, 0x2, 0xc0, 0x0, 0x3c,
+    0x0, 0x3c, 0x0, 0x0, 0xb0, 0x90, 0xf, 0x0,
+    0x1f, 0x0, 0x0, 0x2c, 0x7c, 0x1, 0x41, 0x5b,
+    0x95, 0x40, 0x0, 0x3f, 0xaa, 0x81, 0xff, 0xff,
+    0xf4, 0x0, 0x2f, 0xff, 0xf4, 0x79, 0x55, 0x6d,
+    0x0, 0x2e, 0x0, 0x3c, 0x1d, 0x0, 0x7, 0x40,
+    0x2f, 0xe0, 0x3d, 0x7, 0x42, 0x81, 0xd0, 0x1f,
+    0x3f, 0x7e, 0x1, 0xd0, 0xf0, 0x74, 0x1, 0x1,
+    0xff, 0x0, 0x74, 0x3c, 0x1d, 0x0, 0x0, 0xbf,
+    0xe0, 0x1d, 0xf, 0x7, 0x40, 0x1, 0xfd, 0x7f,
+    0x47, 0x43, 0xc1, 0xd0, 0x7, 0xf8, 0x2, 0xf5,
+    0xd0, 0xf0, 0x74, 0xf, 0xf4, 0x0, 0x1c, 0x74,
+    0x3c, 0x1d, 0x2, 0xdf, 0xff, 0xf8, 0x1d, 0xe,
+    0x7, 0x40, 0x3, 0xff, 0xfe, 0x7, 0x47, 0x81,
+    0xd0, 0x0, 0xe0, 0x3, 0x81, 0xd2, 0xd0, 0x74,
+    0x0, 0x38, 0x0, 0xe0, 0x0, 0xf7, 0x40, 0x0,
+    0xe, 0x0, 0x38, 0x0, 0xb9, 0xf8, 0x0, 0x3,
+    0x80, 0xe, 0x0, 0xbc, 0xf, 0x80, 0x0, 0xe0,
+    0x3, 0x80, 0xfc, 0x0, 0xf8, 0x0, 0x3f, 0xff,
+    0xe2, 0xfc, 0x0, 0xf, 0x80, 0xa, 0xaa, 0xa6,
+    0xf8, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0x20,
+    0x0, 0x0, 0x4,
+
     /* U+989E "颞" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3,
     0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xc0, 0x6f,
@@ -160752,6 +171065,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x1b, 0xff, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+98D2 "飒" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1,
+    0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf0, 0x3,
+    0xff, 0xff, 0xff, 0x80, 0x0, 0xb4, 0x3, 0xff,
+    0xff, 0xff, 0x80, 0x15, 0xb9, 0x53, 0xc0, 0x0,
+    0x3, 0x80, 0x7f, 0xff, 0xf3, 0xc0, 0x0, 0x3,
+    0x80, 0x3f, 0xff, 0xf3, 0xdd, 0x0, 0xe3, 0x80,
+    0x0, 0x0, 0x3, 0xdf, 0x0, 0xf3, 0x80, 0x4,
+    0x1, 0x43, 0xcf, 0x41, 0xe3, 0x80, 0x2c, 0x3,
+    0xc3, 0xc7, 0xc3, 0xc3, 0x80, 0x1d, 0x3, 0xc3,
+    0xc3, 0xd3, 0xc3, 0x80, 0xe, 0x3, 0x83, 0xc1,
+    0xfb, 0x43, 0x80, 0xf, 0x7, 0x83, 0xc0, 0xff,
+    0x3, 0x80, 0xf, 0xb, 0x43, 0xc0, 0x7e, 0x3,
+    0x80, 0xb, 0xb, 0x3, 0xc0, 0x3d, 0x3, 0x80,
+    0x7, 0x4f, 0x3, 0xc0, 0x3e, 0x3, 0x80, 0x7,
+    0x8e, 0x3, 0xc0, 0xbf, 0x3, 0x80, 0x3, 0x9e,
+    0x3, 0xc0, 0xfb, 0x43, 0x80, 0x3, 0xed, 0x3,
+    0xc2, 0xd3, 0xc3, 0x80, 0x0, 0x3c, 0x7, 0x87,
+    0xc3, 0xd3, 0x80, 0x0, 0x3c, 0x7, 0x8f, 0x41,
+    0xe3, 0xce, 0x0, 0x7f, 0xfb, 0x5f, 0x0, 0xf3,
+    0xce, 0xff, 0xff, 0xff, 0x3c, 0x0, 0xbb, 0xce,
+    0xff, 0xa4, 0x1e, 0x78, 0x0, 0x76, 0xcd, 0x0,
+    0x0, 0x2d, 0x10, 0x0, 0x2, 0xfd, 0x0, 0x0,
+    0x3c, 0x0, 0x0, 0x1, 0xfc, 0x0, 0x0, 0xb8,
+    0x0, 0x0, 0x0, 0xb4, 0x0, 0x0, 0x10, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+98D3 "飓" */
     0x0, 0x0, 0x0, 0x0, 0x55, 0x55, 0x50, 0x0,
     0xbf, 0xff, 0xf8, 0x3f, 0xff, 0xfc, 0x0, 0x2f,
@@ -160861,6 +171202,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x7, 0x80, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+98DA "飚" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x2f,
+    0xff, 0xfc, 0x0, 0x3c, 0x1, 0x0, 0xb, 0xff,
+    0xff, 0x3c, 0xf, 0x1, 0xe0, 0x2, 0xc0, 0x3,
+    0xc3, 0xc3, 0xc0, 0xf0, 0x0, 0xb0, 0x0, 0xf0,
+    0x78, 0xf0, 0xf0, 0x0, 0x2d, 0x41, 0x7c, 0xa,
+    0x3c, 0x34, 0x0, 0xb, 0xb0, 0xbf, 0x0, 0x2f,
+    0xd0, 0x0, 0x2, 0xcd, 0x3b, 0xc0, 0x2f, 0x7e,
+    0x0, 0x0, 0xb3, 0x8d, 0xf0, 0xbf, 0x2, 0xf8,
+    0x0, 0x2c, 0xb7, 0x3d, 0xfe, 0x0, 0xf, 0xc0,
+    0xb, 0x1f, 0xcf, 0x3a, 0xc0, 0x2c, 0xb0, 0x2,
+    0xc3, 0xe3, 0xc0, 0xb1, 0xb, 0x4, 0x0, 0xb0,
+    0xb4, 0xf7, 0x2c, 0xfa, 0xc7, 0x0, 0x2c, 0x1c,
+    0x3c, 0xdb, 0x7b, 0xb3, 0x80, 0xb, 0xb, 0x4f,
+    0x2e, 0xf5, 0xfd, 0xc0, 0x3, 0xc3, 0xe3, 0xc3,
+    0xfc, 0x3f, 0xe0, 0x0, 0xf0, 0xfc, 0xf0, 0x3c,
+    0x3, 0xc0, 0x0, 0x3c, 0xb7, 0x2c, 0xf, 0x80,
+    0xf0, 0x0, 0xe, 0x3c, 0xdb, 0xb, 0x74, 0xbf,
+    0x0, 0x3, 0x8d, 0x39, 0xc3, 0x8b, 0x78, 0xe0,
+    0x1, 0xdb, 0xb, 0x7a, 0xc0, 0x7c, 0x1d, 0x0,
+    0xb3, 0xc2, 0xcf, 0xa0, 0x3c, 0x2, 0x50, 0x3d,
+    0xd0, 0x75, 0xf0, 0xc, 0x0, 0x1d, 0x1e, 0x70,
+    0xd, 0x2f, 0x90, 0x0, 0x7, 0xb, 0x40, 0x0,
+    0x1, 0xff, 0xfa, 0xab, 0xc2, 0xc0, 0x0, 0x0,
+    0x1, 0xbf, 0xff, 0xc0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+98DE "飞" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0xff,
     0xff, 0xff, 0xd0, 0x0, 0x0, 0x7f, 0xff, 0xff,
@@ -160998,6 +171367,63 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x90, 0x0, 0x0, 0x19, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+9910 "餐" */
+    0x0, 0x0, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x3e, 0xa9, 0x2a, 0xaa, 0xa8, 0x0, 0x1,
+    0xf, 0xff, 0x4f, 0xff, 0xff, 0x0, 0x1, 0xe3,
+    0x80, 0x0, 0x0, 0xb, 0x80, 0x0, 0xfa, 0xfa,
+    0xa0, 0xf4, 0xb, 0xc0, 0x0, 0xff, 0xff, 0xfc,
+    0x2f, 0xdb, 0xc0, 0x0, 0xfd, 0x0, 0x3e, 0x0,
+    0xbf, 0xc0, 0x0, 0xb6, 0xf0, 0x7e, 0x0, 0x2f,
+    0xf8, 0x0, 0x0, 0x1d, 0xfd, 0x2a, 0xbf, 0xf,
+    0xd0, 0x0, 0x6, 0xf8, 0x3f, 0xf8, 0x0, 0x7f,
+    0x0, 0x1f, 0xe0, 0x7e, 0x3f, 0x40, 0x3, 0x80,
+    0x7f, 0x80, 0xbd, 0x12, 0xf8, 0x0, 0x0, 0x9,
+    0x2, 0xfc, 0x2d, 0x1f, 0xe0, 0x0, 0x0, 0xb,
+    0xf4, 0x7, 0x80, 0x7f, 0x80, 0x0, 0x6f, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0x41, 0xff, 0x7e, 0x55,
+    0x55, 0x57, 0xe7, 0xfc, 0x3d, 0xf, 0x40, 0x0,
+    0x0, 0xb8, 0x1b, 0x0, 0x3, 0xff, 0xff, 0xff,
+    0xfe, 0x0, 0x0, 0x0, 0xf4, 0x0, 0x0, 0xb,
+    0x80, 0x0, 0x0, 0x3e, 0x55, 0x55, 0x57, 0xe0,
+    0x0, 0x0, 0xf, 0xff, 0xff, 0xff, 0xfb, 0x40,
+    0x0, 0x3, 0xd1, 0x50, 0x0, 0x7, 0xe0, 0x0,
+    0x0, 0xf4, 0xff, 0xe4, 0x1f, 0xd0, 0x0, 0x0,
+    0x3d, 0x1, 0xbf, 0xff, 0x80, 0x0, 0x0, 0xf,
+    0x46, 0xb0, 0x6f, 0xfe, 0x40, 0x0, 0xb, 0xff,
+    0xfc, 0x0, 0x1b, 0xfc, 0x0, 0x3, 0xfe, 0x40,
+    0x0, 0x0, 0xa, 0x0, 0x0, 0x40, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
+    /* U+992E "餮" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x1, 0xf4, 0x0, 0x0, 0x6a,
+    0xaa, 0xaa, 0x80, 0xff, 0x40, 0x0, 0x2f, 0xff,
+    0xff, 0xf0, 0xf4, 0xf4, 0x0, 0x0, 0xf, 0x0,
+    0x1, 0xf4, 0x1f, 0x80, 0x0, 0xf, 0x95, 0x52,
+    0xf0, 0x18, 0xfc, 0x0, 0xb, 0xff, 0xfe, 0xe0,
+    0xbe, 0xb, 0xe0, 0xf, 0x40, 0xf, 0x7, 0xf4,
+    0x28, 0x38, 0xf, 0xe0, 0xf, 0x41, 0x91, 0xbe,
+    0x0, 0x3, 0x5f, 0xf, 0x40, 0xb, 0xf4, 0x24,
+    0x0, 0x0, 0x6f, 0x42, 0xe7, 0x91, 0xbe, 0x0,
+    0x0, 0xbe, 0x2, 0xff, 0xb, 0xf4, 0x0, 0x2,
+    0xfd, 0x7, 0xe1, 0xfa, 0x80, 0x0, 0x3, 0xe4,
+    0xb, 0xd1, 0xf, 0xd0, 0x0, 0x0, 0x40, 0x6f,
+    0x81, 0xd0, 0x7f, 0x80, 0x0, 0x1, 0xff, 0x40,
+    0x78, 0x2, 0xfe, 0x40, 0x1b, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xfe, 0xf, 0xe3, 0xc0, 0x0, 0x0,
+    0xf, 0x1f, 0xc1, 0x40, 0xf5, 0x55, 0x55, 0x57,
+    0xc0, 0x10, 0x0, 0x3f, 0xff, 0xff, 0xff, 0xf0,
+    0x0, 0x0, 0xf, 0x0, 0x0, 0x0, 0x7c, 0x0,
+    0x0, 0x3, 0xff, 0xff, 0xff, 0xff, 0x60, 0x0,
+    0x0, 0xf0, 0x54, 0x0, 0x0, 0xbc, 0x0, 0x0,
+    0x3c, 0x2f, 0xf9, 0x2, 0xf8, 0x0, 0x0, 0xf,
+    0x0, 0x6b, 0xff, 0xf0, 0x0, 0x0, 0x3, 0xc1,
+    0xad, 0x6, 0xff, 0x90, 0x0, 0x2, 0xff, 0xff,
+    0x0, 0x1, 0xff, 0x0, 0x0, 0xfe, 0x50, 0x0,
+    0x0, 0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+9954 "饔" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x0, 0x0,
@@ -161027,6 +171453,51 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+9955 "饕" */
+    0x0, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0,
+    0x15, 0x55, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x1f,
+    0xff, 0xd0, 0x0, 0xff, 0xff, 0x0, 0x7, 0x0,
+    0x74, 0x0, 0x3c, 0x0, 0x0, 0x1, 0xea, 0xad,
+    0x2f, 0xff, 0xff, 0xfc, 0x0, 0x7f, 0xff, 0x4f,
+    0x55, 0x55, 0x5f, 0x0, 0x0, 0x0, 0x3, 0xc0,
+    0xf5, 0x83, 0x80, 0x3f, 0xff, 0xfe, 0xf7, 0xfe,
+    0xa2, 0x40, 0x5, 0xf5, 0x55, 0x3c, 0xf, 0x55,
+    0xd0, 0x0, 0x3c, 0x0, 0xf, 0x2, 0xff, 0xf0,
+    0x0, 0xf, 0xff, 0xc3, 0x80, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xf2, 0xc0, 0xff, 0xf0, 0x30, 0x0,
+    0x0, 0x38, 0xe0, 0x74, 0x2c, 0x1c, 0x0, 0xb,
+    0xfd, 0x2f, 0xfc, 0x7, 0xff, 0x0, 0x1, 0x54,
+    0x7f, 0x6f, 0x80, 0x55, 0x0, 0x0, 0x2, 0xfe,
+    0x10, 0xbe, 0x40, 0x0, 0x0, 0x6f, 0xf4, 0xe,
+    0x2, 0xff, 0x90, 0xb, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xd2, 0xf4, 0xf5, 0x55, 0x55, 0x57,
+    0xc6, 0xf0, 0x0, 0x3d, 0x55, 0x55, 0x55, 0xf0,
+    0x0, 0x0, 0xf, 0xff, 0xff, 0xff, 0xfc, 0x0,
+    0x0, 0x3, 0xd5, 0x55, 0x55, 0x5f, 0x0, 0x0,
+    0x0, 0xff, 0xff, 0xff, 0xff, 0xc4, 0x0, 0x0,
+    0x3c, 0x6, 0x40, 0x0, 0x1f, 0x80, 0x0, 0xf,
+    0x1, 0xbf, 0xe5, 0xbe, 0x0, 0x0, 0x3, 0xc0,
+    0x6b, 0x6f, 0xfe, 0x40, 0x0, 0x1, 0xff, 0xff,
+    0x80, 0x6, 0xff, 0x0, 0x0, 0xbe, 0x90, 0x0,
+    0x0, 0x1, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
+    /* U+9963 "饣" */
+    0x0, 0x5, 0x0, 0x0, 0x0, 0xf, 0x80, 0x0,
+    0x0, 0xf, 0x0, 0x0, 0x0, 0x2f, 0x0, 0x0,
+    0x0, 0x3e, 0x0, 0x0, 0x0, 0x7f, 0xff, 0xfd,
+    0x0, 0xff, 0xff, 0xfd, 0x0, 0xf4, 0x0, 0x3d,
+    0x2, 0xf0, 0x0, 0x7c, 0x7, 0xd0, 0x0, 0xf4,
+    0xf, 0xc7, 0xc1, 0xf0, 0x1f, 0x47, 0xc3, 0xd0,
+    0x3e, 0x7, 0xc3, 0xc0, 0xbc, 0x7, 0xc0, 0x0,
+    0x24, 0x7, 0xc0, 0x0, 0x0, 0x7, 0xc0, 0x0,
+    0x0, 0x7, 0xc0, 0x0, 0x0, 0x7, 0xc0, 0x0,
+    0x0, 0x7, 0xc0, 0x0, 0x0, 0x7, 0xc0, 0x0,
+    0x0, 0x7, 0xc0, 0x10, 0x0, 0x7, 0xc0, 0xb0,
+    0x0, 0x7, 0xc7, 0xf0, 0x0, 0x7, 0xff, 0x80,
+    0x0, 0xb, 0xfd, 0x0, 0x0, 0xf, 0xd0, 0x0,
+    0x0, 0xb, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+9965 "饥" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x1e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb,
@@ -161493,63 +171964,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xf0, 0x3, 0x80, 0xf, 0x0, 0x3, 0xff, 0x80,
     0x0, 0x0, 0x3c, 0x0, 0x7, 0xe4, 0x0,
 
-    /* U+9978 "饸" */
-    0x0, 0x14, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0,
-    0xf, 0x40, 0x0, 0xf, 0xc0, 0x0, 0x0, 0x3,
-    0xc0, 0x0, 0x7, 0xf8, 0x0, 0x0, 0x1, 0xf0,
-    0x0, 0x3, 0xef, 0x0, 0x0, 0x0, 0xf8, 0x0,
-    0x2, 0xf2, 0xf0, 0x0, 0x0, 0x3f, 0xff, 0x41,
-    0xf0, 0x3e, 0x0, 0x0, 0x2f, 0xff, 0xd0, 0xf4,
-    0x7, 0xe0, 0x0, 0xf, 0x80, 0xb0, 0xf8, 0x0,
-    0x7e, 0x0, 0x7, 0xc0, 0x3c, 0xfc, 0x0, 0xb,
-    0xe0, 0x3, 0xe0, 0x1e, 0xfc, 0x0, 0x0, 0x7f,
-    0x1, 0xf2, 0xcf, 0xfe, 0xff, 0xff, 0xf7, 0xf0,
-    0xf8, 0xf3, 0x9c, 0xbf, 0xff, 0xfc, 0x38, 0xbc,
-    0x3c, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0xf,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xc0,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf0, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x3c, 0x0, 0xff,
-    0xff, 0xff, 0xc0, 0x0, 0xf, 0x0, 0x3f, 0xff,
-    0xff, 0xf0, 0x0, 0x3, 0xc0, 0xf, 0x0, 0x0,
-    0x3c, 0x0, 0x0, 0xf0, 0x3, 0xc0, 0x0, 0xf,
-    0x0, 0x0, 0x3c, 0x8, 0xf0, 0x0, 0x3, 0xc0,
-    0x0, 0xf, 0x1f, 0x3c, 0x0, 0x0, 0xf0, 0x0,
-    0x3, 0xdf, 0x8f, 0x0, 0x0, 0x3c, 0x0, 0x0,
-    0xff, 0x43, 0xc0, 0x0, 0xf, 0x0, 0x0, 0x7f,
-    0x40, 0xff, 0xff, 0xff, 0xc0, 0x0, 0x2f, 0x0,
-    0x3f, 0xff, 0xff, 0xf0, 0x0, 0x3, 0x0, 0xf,
-    0x40, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x3, 0xc0,
-    0x0, 0xf, 0x0,
-
-    /* U+9979 "饹" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x90, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x0,
-    0xf, 0x0, 0x0, 0xbc, 0x0, 0x0, 0x0, 0x1,
-    0xe0, 0x0, 0xf, 0x95, 0x55, 0x40, 0x0, 0x3d,
-    0x0, 0x2, 0xff, 0xff, 0xf8, 0x0, 0x3, 0xd5,
-    0x50, 0x7e, 0xaa, 0xaf, 0x80, 0x0, 0xbf, 0xff,
-    0xf, 0xc0, 0x0, 0xf0, 0x0, 0xf, 0xff, 0xf2,
-    0xfe, 0x0, 0x3e, 0x0, 0x1, 0xf0, 0xf, 0xbd,
-    0xf4, 0xb, 0xc0, 0x0, 0x3d, 0x1, 0xeb, 0x7,
-    0xd2, 0xf0, 0x0, 0x7, 0xc0, 0x3c, 0x0, 0x1f,
-    0xfd, 0x0, 0x0, 0xf8, 0xf7, 0x80, 0x0, 0xbf,
-    0x40, 0x0, 0x2f, 0xf, 0x24, 0x0, 0x3f, 0xfe,
-    0x0, 0x3, 0xe0, 0xf0, 0x0, 0x6f, 0xd2, 0xff,
-    0x40, 0x8, 0xf, 0x0, 0x7f, 0xe0, 0x2, 0xff,
-    0xc0, 0x0, 0xf0, 0x2f, 0xe0, 0x0, 0x1, 0xfc,
-    0x0, 0xf, 0x0, 0xd0, 0x0, 0x0, 0x0, 0x40,
-    0x0, 0xf0, 0x0, 0xff, 0xff, 0xff, 0x0, 0x0,
-    0xf, 0x0, 0xf, 0xff, 0xff, 0xf0, 0x0, 0x0,
-    0xf0, 0x0, 0xf0, 0x0, 0xf, 0x0, 0x0, 0xf,
-    0xb, 0xf, 0x0, 0x0, 0xf0, 0x0, 0x0, 0xf2,
-    0xf0, 0xf0, 0x0, 0xf, 0x0, 0x0, 0xf, 0xbd,
-    0xf, 0x0, 0x0, 0xf0, 0x0, 0x0, 0xff, 0x0,
-    0xf0, 0x0, 0xf, 0x0, 0x0, 0x1f, 0xc0, 0xf,
-    0xff, 0xff, 0xf0, 0x0, 0x3, 0xf0, 0x0, 0xff,
-    0xff, 0xff, 0x0, 0x0, 0x1c, 0x0, 0xf, 0x0,
-    0x0, 0xf0, 0x0, 0x0, 0x0, 0x0, 0xf0, 0x0,
-    0xf, 0x0,
-
     /* U+997A "饺" */
     0x0, 0x3c, 0x0, 0x0, 0x18, 0x0, 0x0, 0x0,
     0xf, 0x0, 0x0, 0xf, 0x40, 0x0, 0x0, 0x7,
@@ -161718,34 +172132,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x40, 0x0, 0x2, 0xc0, 0x0, 0x0, 0x14, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+9983 "馃" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0xf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3,
-    0xc0, 0xf, 0xff, 0xff, 0xff, 0x0, 0x1, 0xe0,
-    0x3, 0xff, 0xff, 0xff, 0xc0, 0x0, 0xb4, 0x0,
-    0xf0, 0xf, 0x0, 0xf0, 0x0, 0x3f, 0xff, 0x3c,
-    0x3, 0xc0, 0x3c, 0x0, 0x1f, 0xff, 0xcf, 0x0,
-    0xf0, 0xf, 0x0, 0xb, 0x95, 0xf3, 0xff, 0xff,
-    0xff, 0xc0, 0x3, 0xc0, 0x78, 0xff, 0xff, 0xff,
-    0xf0, 0x2, 0xe0, 0x2d, 0x3c, 0x3, 0xc0, 0x3c,
-    0x0, 0xf5, 0xf, 0xf, 0x0, 0xf0, 0xf, 0x0,
-    0x7c, 0xf7, 0x83, 0xc0, 0x3c, 0x3, 0xc0, 0x3d,
-    0x3c, 0x40, 0xff, 0xff, 0xff, 0xf0, 0xf, 0xf,
-    0x0, 0x3f, 0xff, 0xff, 0xfc, 0x0, 0x3, 0xc0,
-    0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0xf0, 0x0,
-    0x0, 0x3c, 0x0, 0x0, 0x0, 0x3c, 0x0, 0x0,
-    0xf, 0x0, 0x0, 0x0, 0xf, 0x0, 0xff, 0xff,
-    0xff, 0xff, 0x80, 0x3, 0xc0, 0x3f, 0xff, 0xff,
-    0xff, 0xe0, 0x0, 0xf0, 0x0, 0x2, 0xff, 0x40,
-    0x0, 0x0, 0x3c, 0x0, 0x2, 0xff, 0xf4, 0x0,
-    0x0, 0xf, 0x9, 0x2, 0xf3, 0xdf, 0x40, 0x0,
-    0x3, 0xcf, 0x82, 0xf0, 0xf1, 0xf8, 0x0, 0x0,
-    0xff, 0xc7, 0xf0, 0x3c, 0x1f, 0xd0, 0x0, 0x7f,
-    0x8f, 0xf0, 0xf, 0x0, 0xbf, 0x40, 0x3f, 0x47,
-    0xe0, 0x3, 0xc0, 0x7, 0xc0, 0x2, 0x0, 0x90,
-    0x0, 0xf0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0,
-    0x3c, 0x0, 0x0,
-
     /* U+9984 "馄" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0xf, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3,
@@ -162022,6 +172408,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xff, 0xff, 0xff, 0xff, 0xc0, 0x0, 0x0, 0x7f,
     0xff, 0xff, 0xff, 0xf0,
 
+    /* U+9991 "馑" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xf, 0x0, 0x3, 0xc0, 0x2, 0xc0, 0x0, 0x7,
+    0x80, 0x0, 0xf0, 0x0, 0xf0, 0x0, 0x2, 0xd0,
+    0xb, 0xff, 0xff, 0xff, 0xfc, 0x0, 0xf0, 0x3,
+    0xff, 0xff, 0xff, 0xff, 0x0, 0x3f, 0xff, 0x3,
+    0xc0, 0x3, 0xc0, 0x0, 0x2f, 0xff, 0xc0, 0xf0,
+    0x0, 0xf0, 0x0, 0xf, 0xaa, 0xf0, 0x3f, 0xff,
+    0xfc, 0x0, 0x7, 0xc0, 0x3c, 0xf, 0xff, 0xff,
+    0x0, 0x3, 0xd0, 0x2d, 0x0, 0x3, 0xc0, 0x0,
+    0x0, 0xf0, 0xf, 0x0, 0x0, 0xf0, 0x0, 0x0,
+    0xb4, 0xf7, 0x83, 0xff, 0xff, 0xff, 0xd0, 0x3c,
+    0x3c, 0x80, 0xfa, 0xaf, 0xaa, 0xf4, 0xd, 0xf,
+    0x0, 0x3c, 0x3, 0xc0, 0x2d, 0x0, 0x3, 0xc0,
+    0xf, 0xaa, 0xfa, 0xaf, 0x40, 0x0, 0xf0, 0x3,
+    0xff, 0xff, 0xff, 0xd0, 0x0, 0x3c, 0x0, 0x0,
+    0xf, 0x0, 0x0, 0x0, 0xf, 0x0, 0x0, 0x3,
+    0xc0, 0x0, 0x0, 0x3, 0xc0, 0x2f, 0xff, 0xff,
+    0xff, 0xc0, 0x0, 0xf0, 0x6, 0xaa, 0xbe, 0xaa,
+    0xa0, 0x0, 0x3c, 0x10, 0x0, 0xf, 0x0, 0x0,
+    0x0, 0xf, 0x1d, 0x2a, 0xab, 0xea, 0xa9, 0x0,
+    0x3, 0xef, 0x4f, 0xff, 0xff, 0xff, 0x40, 0x0,
+    0xff, 0x40, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x7f,
+    0x40, 0x0, 0xf, 0x0, 0x0, 0x0, 0x2f, 0x3,
+    0xff, 0xff, 0xff, 0xff, 0xd0, 0x3, 0x0, 0xff,
+    0xff, 0xff, 0xff, 0xf4, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+9992 "馒" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0xf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7,
@@ -162106,6 +172520,35 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x3f, 0x80, 0x0, 0x0, 0xbd, 0x0, 0x0, 0x24,
     0x0, 0x0, 0x0, 0x8,
 
+    /* U+9995 "馕" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x2d, 0x0, 0x0, 0xe, 0x0, 0x0, 0x0, 0xf,
+    0x1, 0x55, 0x5b, 0xd5, 0x55, 0x0, 0x3, 0xc0,
+    0xff, 0xff, 0xff, 0xff, 0xe0, 0x1, 0xe0, 0x0,
+    0x0, 0x38, 0x0, 0x0, 0x0, 0xbf, 0xf0, 0xff,
+    0xff, 0xff, 0xe0, 0x0, 0x3f, 0xfc, 0x38, 0x7,
+    0x80, 0x78, 0x0, 0xe, 0xb, 0xf, 0xff, 0xff,
+    0xfe, 0x0, 0xb, 0x43, 0xc1, 0x55, 0x7d, 0x55,
+    0x0, 0x3, 0xc0, 0xe5, 0x55, 0x5f, 0x55, 0x54,
+    0x1, 0xe0, 0x77, 0xff, 0xff, 0xff, 0xff, 0x80,
+    0xf2, 0xfc, 0xf0, 0x0, 0x0, 0x1, 0xe0, 0xb8,
+    0xf0, 0x3e, 0xff, 0xdf, 0xff, 0xb8, 0x9, 0x3c,
+    0x0, 0xb0, 0x77, 0x81, 0xc0, 0x0, 0xf, 0x0,
+    0x2f, 0xfd, 0xff, 0xf0, 0x0, 0x3, 0xc0, 0x0,
+    0x74, 0x3, 0xc0, 0x0, 0x0, 0xf0, 0x3f, 0xff,
+    0xff, 0xff, 0xf4, 0x0, 0x3c, 0x0, 0x7, 0x40,
+    0x3c, 0x0, 0x0, 0xf, 0x2, 0xff, 0xff, 0xff,
+    0xff, 0x0, 0x3, 0xc0, 0x15, 0xb9, 0x57, 0xd5,
+    0x40, 0x0, 0xf0, 0x15, 0x6e, 0x55, 0xf5, 0x54,
+    0x0, 0x3c, 0x2f, 0xff, 0xff, 0xff, 0xff, 0x0,
+    0xf, 0x74, 0x1, 0xfb, 0x80, 0x28, 0x0, 0x3,
+    0xfd, 0x7, 0xf0, 0x7d, 0xbe, 0x0, 0x0, 0xfd,
+    0x6f, 0xf8, 0x7, 0xf8, 0x0, 0x0, 0x3d, 0x7e,
+    0x4e, 0x1e, 0x2f, 0xe4, 0x0, 0xe, 0x4, 0x7,
+    0xff, 0x80, 0x7f, 0xf0, 0x0, 0x0, 0x2, 0xe4,
+    0x0, 0x0, 0x64, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+9996 "首" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0xb, 0x40, 0x0, 0x2e, 0x0, 0x0, 0x0, 0x2f,
@@ -162245,6 +172688,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x68, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+99A8 "馨" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xb4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x55,
+    0x6e, 0x55, 0x4b, 0xff, 0xf4, 0x0, 0xbf, 0xff,
+    0xff, 0xf2, 0xd5, 0x6d, 0x0, 0x0, 0x2, 0xd0,
+    0x0, 0xf0, 0x7, 0x94, 0x1, 0x55, 0xb9, 0x54,
+    0xf8, 0x0, 0xff, 0x0, 0xbf, 0xff, 0xff, 0x58,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xff,
+    0xff, 0xc0, 0x3, 0xff, 0xff, 0xf0, 0x90, 0x7,
+    0xd0, 0x0, 0xe5, 0xb5, 0x7c, 0x7f, 0x4b, 0xc0,
+    0x0, 0x34, 0x1c, 0xb, 0x1, 0xff, 0xc0, 0x0,
+    0xf, 0xff, 0xff, 0xc6, 0xfe, 0xfd, 0x0, 0x7,
+    0x95, 0x55, 0x5b, 0xf4, 0x7, 0xf4, 0x2, 0xc0,
+    0x0, 0x0, 0x40, 0x0, 0x1f, 0x0, 0xe0, 0xaa,
+    0xff, 0xff, 0xff, 0x80, 0x40, 0xb0, 0x3f, 0xaa,
+    0xf9, 0x55, 0x40, 0x0, 0x4, 0x0, 0x0, 0x2c,
+    0x0, 0x0, 0x0, 0x3, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xfe, 0x0, 0x55, 0x57, 0xf7, 0xdb, 0xd5,
+    0x55, 0x40, 0x0, 0x7, 0xe0, 0xb0, 0x7e, 0x0,
+    0x0, 0x0, 0x6f, 0xe0, 0x15, 0x7, 0xfd, 0x0,
+    0x6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x43,
+    0xf9, 0xe0, 0x0, 0x0, 0x7, 0xcb, 0xf0, 0x90,
+    0x7d, 0x55, 0x55, 0x55, 0xf0, 0x10, 0x0, 0x1f,
+    0xff, 0xff, 0xff, 0xfc, 0x0, 0x0, 0x7, 0xd5,
+    0x55, 0x55, 0x5f, 0x0, 0x0, 0x1, 0xff, 0xff,
+    0xff, 0xff, 0xc0, 0x0, 0x0, 0x78, 0x0, 0x0,
+    0x0, 0xf0, 0x0,
+
     /* U+9A6C "马" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2f,
     0xff, 0xff, 0xff, 0xfd, 0x0, 0x1, 0xff, 0xff,
@@ -163033,33 +173504,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x7f, 0xff, 0xff, 0xff, 0x40, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
-    /* U+9A8E "骎" */
-    0x0, 0x0, 0x0, 0x2a, 0xaa, 0xaa, 0x90, 0x3,
-    0xff, 0xfd, 0x1f, 0xff, 0xff, 0xf8, 0x0, 0xbf,
-    0xff, 0x0, 0x0, 0x0, 0x1e, 0x0, 0x1, 0x2,
-    0xc0, 0x0, 0x0, 0x7, 0x80, 0x1, 0xe0, 0xf0,
-    0x2f, 0xff, 0xff, 0xe0, 0x0, 0x74, 0x3c, 0xb,
-    0xff, 0xff, 0xf8, 0x0, 0x1d, 0xf, 0x0, 0x0,
-    0x0, 0x1e, 0x0, 0xb, 0x43, 0xc1, 0xaa, 0xaa,
-    0xaf, 0x80, 0x2, 0xc0, 0xe0, 0x7f, 0xff, 0xff,
-    0xe0, 0x0, 0xb0, 0x38, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x2c, 0x1e, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0xf, 0x7, 0x47, 0xff, 0xff, 0xff, 0xf0, 0x3,
-    0xff, 0xfe, 0xff, 0xff, 0xff, 0xfc, 0x0, 0xff,
-    0xff, 0xb0, 0x0, 0x0, 0xb, 0x0, 0x0, 0x3,
-    0xec, 0x0, 0x0, 0x2, 0xc0, 0x0, 0x0, 0xfb,
-    0xbf, 0xff, 0xff, 0xb0, 0x0, 0x0, 0x3c, 0x1f,
-    0xff, 0xff, 0xc0, 0x0, 0x6b, 0xce, 0x1, 0xe0,
-    0x2, 0xe0, 0x3, 0xff, 0xf3, 0x80, 0x3d, 0x1,
-    0xf0, 0x0, 0xf9, 0x40, 0xe0, 0x7, 0xd1, 0xf0,
-    0x0, 0x0, 0x0, 0x38, 0x0, 0x7e, 0xf4, 0x0,
-    0x0, 0x0, 0x1e, 0x0, 0xb, 0xf4, 0x0, 0x0,
-    0x0, 0xb, 0x40, 0x1f, 0xff, 0x90, 0x0, 0x0,
-    0xaf, 0xc1, 0xbf, 0xd2, 0xff, 0x90, 0x0, 0x3f,
-    0xdb, 0xfe, 0x40, 0x7, 0xff, 0x0, 0x5, 0x1,
-    0xe4, 0x0, 0x0, 0x6, 0xc0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0,
-
     /* U+9A8F "骏" */
     0x0, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x7, 0xc0, 0x0, 0x0, 0xaa,
@@ -163382,6 +173826,35 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xf0, 0xb, 0xff, 0x41, 0xfa, 0xaa, 0xab, 0xc0,
     0x9, 0x40, 0x7, 0x40, 0x0, 0xf, 0x0,
 
+    /* U+9A9E "骞" */
+    0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xf, 0x40, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x2, 0xf0, 0x0, 0x0, 0x0, 0xa, 0xaa,
+    0xaa, 0xfe, 0xaa, 0xaa, 0x80, 0x3, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xf0, 0x0, 0xf0, 0x1, 0x40,
+    0x5, 0x0, 0x3c, 0x0, 0x3c, 0x1, 0xe0, 0x2,
+    0xe0, 0xf, 0x0, 0xb, 0xbf, 0xff, 0xff, 0xff,
+    0xfb, 0xc0, 0x0, 0xa, 0xaf, 0xaa, 0xbf, 0xa9,
+    0x0, 0x0, 0x0, 0x7, 0x80, 0xb, 0x40, 0x0,
+    0x0, 0x7, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x0,
+    0x1, 0xaa, 0xbe, 0xaa, 0xfe, 0xa9, 0x0, 0x0,
+    0x0, 0x1e, 0x0, 0x2d, 0x0, 0x0, 0x3, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0xaa, 0xaf,
+    0xea, 0xaa, 0xfe, 0xaa, 0x80, 0x0, 0x7, 0xd0,
+    0x0, 0x1f, 0x40, 0x0, 0x0, 0xb, 0xf5, 0x55,
+    0x56, 0xfc, 0x0, 0x0, 0x1f, 0xff, 0xff, 0xff,
+    0x8f, 0xe0, 0x0, 0x7f, 0x85, 0x0, 0x2, 0xe0,
+    0xbf, 0x90, 0xff, 0x43, 0xc0, 0x0, 0xb4, 0x2,
+    0xfc, 0x2d, 0x0, 0xfa, 0xaa, 0xbe, 0xaa, 0x46,
+    0x0, 0x0, 0x7f, 0xff, 0xff, 0xff, 0xe0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0xb4, 0x0, 0x2,
+    0xaa, 0xaa, 0xaa, 0xa8, 0x2d, 0x0, 0x1, 0xff,
+    0xff, 0xff, 0xff, 0xf, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x0, 0x0,
+    0x1, 0xab, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xff, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+9A9F "骟" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x78, 0x0, 0x0, 0x0, 0x0,
@@ -163642,6 +174115,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xc3, 0xf8, 0xb8, 0x0, 0x0, 0x3c, 0x0, 0x0,
     0x0, 0x10, 0x0, 0x0, 0x0,
 
+    /* U+9AB1 "骱" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0xf, 0x80, 0x0, 0x7, 0xff,
+    0xfc, 0x0, 0x1f, 0xc0, 0x0, 0xb, 0xff, 0xfc,
+    0x0, 0x3f, 0xd0, 0x0, 0xb, 0x0, 0x2c, 0x0,
+    0x3d, 0xe0, 0x0, 0xb, 0x0, 0x2c, 0x0, 0xb8,
+    0xf0, 0x0, 0xb, 0xff, 0x2c, 0x0, 0xf0, 0x7c,
+    0x0, 0xb, 0xab, 0x2c, 0x2, 0xe0, 0x3d, 0x0,
+    0xb, 0x7, 0x2c, 0x3, 0xc0, 0x1f, 0x40, 0xb,
+    0x7, 0x2c, 0xf, 0x80, 0xb, 0xc0, 0x6f, 0xaf,
+    0xbe, 0x6f, 0x0, 0x3, 0xf0, 0xbf, 0xff, 0xff,
+    0xfc, 0x0, 0x0, 0xfc, 0xb4, 0x0, 0x7, 0xa7,
+    0xc0, 0x3c, 0x38, 0xb0, 0x0, 0x7, 0x83, 0xc0,
+    0x3c, 0x0, 0xbf, 0xff, 0xff, 0x83, 0xc0, 0x3c,
+    0x0, 0x6b, 0xea, 0xf9, 0x3, 0xc0, 0x3c, 0x0,
+    0xb, 0x40, 0x74, 0x3, 0xc0, 0x3c, 0x0, 0xb,
+    0xaa, 0xb4, 0x3, 0xc0, 0x3c, 0x0, 0xb, 0xff,
+    0xf4, 0x3, 0xc0, 0x3c, 0x0, 0xb, 0x40, 0x74,
+    0x3, 0xc0, 0x3c, 0x0, 0xb, 0x40, 0x74, 0x3,
+    0xc0, 0x3c, 0x0, 0xb, 0xff, 0xf4, 0x7, 0x80,
+    0x3c, 0x0, 0xb, 0xaa, 0xf4, 0xb, 0x80, 0x3c,
+    0x0, 0xb, 0x40, 0x74, 0xf, 0x0, 0x3c, 0x0,
+    0xb, 0x40, 0x74, 0x2f, 0x0, 0x3c, 0x0, 0xb,
+    0x41, 0xf4, 0x3d, 0x0, 0x3c, 0x0, 0xb, 0x4f,
+    0xf0, 0xf8, 0x0, 0x3c, 0x0, 0x7, 0xf, 0x90,
+    0xf0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+9AB6 "骶" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0xff, 0xff, 0xc0, 0x0, 0x1, 0xbd, 0x0, 0x3f,
@@ -164017,33 +174518,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0xbe, 0x40, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
-    /* U+9AD9 "髙" */
-    0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0xb8, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x7c, 0x0, 0x0, 0x0, 0x6a, 0xaa, 0xaa,
-    0xbe, 0xaa, 0xaa, 0xa8, 0x7f, 0xff, 0xff, 0xff,
-    0xff, 0xff, 0xfc, 0x0, 0x1f, 0x0, 0x0, 0x1,
-    0xf0, 0x0, 0x0, 0x1e, 0x0, 0x0, 0x0, 0xf0,
-    0x0, 0x0, 0x1f, 0xaa, 0xaa, 0xaa, 0xf0, 0x0,
-    0x0, 0x1f, 0xff, 0xff, 0xff, 0xf0, 0x0, 0x0,
-    0x1e, 0x0, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x1e,
-    0x0, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x1f, 0xaa,
-    0xaa, 0xaa, 0xf0, 0x0, 0x0, 0x1f, 0xff, 0xff,
-    0xff, 0xf0, 0x0, 0x0, 0x1e, 0x0, 0x0, 0x0,
-    0xf0, 0x0, 0x0, 0x1e, 0x0, 0x0, 0x0, 0xf0,
-    0x0, 0x7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
-    0x7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x7,
-    0xc0, 0x0, 0x0, 0x0, 0x3, 0xc0, 0x7, 0xc0,
-    0x0, 0x0, 0x0, 0x3, 0xc0, 0x7, 0xc0, 0xff,
-    0xff, 0xfd, 0x3, 0xc0, 0x7, 0xc0, 0xfe, 0xaa,
-    0xbd, 0x3, 0xc0, 0x7, 0xc0, 0xf4, 0x0, 0x2d,
-    0x3, 0xc0, 0x7, 0xc0, 0xf4, 0x0, 0x2d, 0x3,
-    0xc0, 0x7, 0xc0, 0xff, 0xff, 0xfd, 0x3, 0xc0,
-    0x7, 0xc0, 0xaa, 0xaa, 0xa9, 0x7, 0xc0, 0x7,
-    0xc0, 0x0, 0x0, 0x0, 0x5f, 0xc0, 0x7, 0xc0,
-    0x0, 0x0, 0x3, 0xff, 0x40, 0x7, 0xc0, 0x0,
-    0x0, 0x2, 0xf9, 0x0,
-
     /* U+9ADF "髟" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x1f, 0x0, 0x3f, 0xff,
@@ -164069,6 +174543,31 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0x0, 0x2f, 0x40, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0,
 
+    /* U+9AE1 "髡" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x6,
+    0xaa, 0xaa, 0xa0, 0x0, 0x6f, 0x0, 0x2f, 0xff,
+    0xff, 0xc0, 0x2f, 0xf4, 0x0, 0xb8, 0x0, 0x0,
+    0x2f, 0xfd, 0x0, 0x2, 0xf5, 0x55, 0x51, 0xfe,
+    0x40, 0x0, 0xb, 0xff, 0xff, 0xd2, 0x40, 0x1,
+    0x0, 0x2e, 0x0, 0x0, 0x0, 0x0, 0x7e, 0x0,
+    0xbf, 0xff, 0xfd, 0x0, 0x6f, 0xd0, 0x2, 0xfa,
+    0xaa, 0xa0, 0x6f, 0xf4, 0x0, 0xb, 0x80, 0x0,
+    0x3, 0xf8, 0x0, 0x3, 0xff, 0xff, 0xff, 0xf4,
+    0x0, 0x2, 0xa, 0xaf, 0xea, 0xfa, 0x80, 0x1,
+    0xbe, 0x0, 0x7c, 0x3, 0xc0, 0x0, 0x7f, 0xe0,
+    0x7, 0xc0, 0xb, 0xc0, 0x7f, 0xf4, 0x0, 0xff,
+    0xff, 0xff, 0x9f, 0xf9, 0x0, 0x3, 0xfa, 0xa9,
+    0x5f, 0x79, 0x0, 0x0, 0x0, 0x0, 0x0, 0x18,
+    0x0, 0x0, 0x0, 0x7f, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xd2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0x40, 0x0, 0x2e, 0x0, 0xbc, 0x0, 0x0, 0x0,
+    0x0, 0xf4, 0x1, 0xf0, 0x0, 0x0, 0x0, 0x3,
+    0xc0, 0x7, 0xc0, 0x0, 0xe0, 0x0, 0x3f, 0x0,
+    0x1f, 0x0, 0x3, 0xc0, 0xb, 0xf0, 0x0, 0x7d,
+    0x0, 0x1f, 0x1b, 0xfe, 0x0, 0x0, 0xff, 0xff,
+    0xf8, 0xff, 0x80, 0x0, 0x1, 0xff, 0xff, 0x81,
+    0x90, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+9AE6 "髦" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x40, 0x2,
     0xff, 0xff, 0xfc, 0x0, 0x2f, 0xc0, 0x2, 0xea,
@@ -164119,6 +174618,31 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xaa, 0xbc, 0x0, 0xb, 0xff, 0xff, 0xff, 0xff,
     0xc0, 0x0, 0xb4, 0x0, 0x0, 0x0, 0x3c, 0x0,
 
+    /* U+9AED "髭" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0xf,
+    0xff, 0xff, 0xf0, 0x0, 0xbd, 0x0, 0x3e, 0xaa,
+    0xaa, 0x40, 0xbf, 0xe0, 0x0, 0xf4, 0x0, 0x0,
+    0xbf, 0xf4, 0x0, 0x3, 0xff, 0xff, 0xf3, 0xf4,
+    0x0, 0x0, 0xf, 0x55, 0x55, 0x44, 0x0, 0xa,
+    0x0, 0x3e, 0x55, 0x55, 0x0, 0x7, 0xfc, 0x0,
+    0xff, 0xff, 0xfc, 0xb, 0xff, 0x40, 0x3, 0xc0,
+    0x0, 0x3, 0xff, 0x80, 0x1, 0xaf, 0xaa, 0xaa,
+    0xab, 0x80, 0x0, 0xb, 0xff, 0xff, 0xff, 0xc0,
+    0x0, 0x6e, 0x0, 0x2f, 0x3, 0xd0, 0x0, 0x6f,
+    0xf4, 0x3, 0xe0, 0x7, 0xd1, 0xbf, 0xf8, 0x0,
+    0xbf, 0xff, 0xff, 0xcf, 0xf8, 0x0, 0x1, 0xaa,
+    0x95, 0x57, 0xa8, 0x0, 0x0, 0x0, 0x0, 0x2e,
+    0x0, 0x78, 0x0, 0x10, 0x1, 0x90, 0xb8, 0x1,
+    0xe0, 0x7, 0xc0, 0xb, 0x82, 0xe0, 0x7, 0x81,
+    0xff, 0x0, 0x2e, 0xb, 0xff, 0xdf, 0xbf, 0xd0,
+    0x0, 0xb8, 0x2f, 0xfe, 0x7f, 0xe4, 0x0, 0x2,
+    0xe0, 0xb8, 0x1, 0xf8, 0x0, 0x40, 0xb, 0x82,
+    0xe0, 0x7, 0x80, 0x3, 0xc0, 0x2e, 0xb, 0x80,
+    0x1e, 0x0, 0xf, 0x0, 0xb9, 0x7f, 0xff, 0x7c,
+    0x0, 0xbc, 0xbf, 0xff, 0xff, 0xf8, 0xff, 0xff,
+    0xe1, 0xfe, 0xa5, 0x0, 0x1, 0xff, 0xfe, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+9AEF "髯" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3,
     0xff, 0xff, 0xfc, 0x0, 0x2f, 0xc0, 0x3, 0xd5,
@@ -164199,6 +174723,88 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x3, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x0,
     0xf, 0x0, 0x0, 0x0, 0x2, 0xe0, 0x0,
 
+    /* U+9B03 "鬃" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0xb, 0x0, 0x2f, 0xff,
+    0xff, 0xc0, 0x1b, 0xfc, 0x0, 0xb4, 0x0, 0x0,
+    0x1b, 0xfe, 0x40, 0x2, 0xff, 0xff, 0xf0, 0xfe,
+    0x40, 0x0, 0xb, 0x95, 0x55, 0x41, 0x0, 0xb,
+    0x40, 0x2e, 0x0, 0x0, 0x0, 0x7, 0xfe, 0x0,
+    0xbf, 0xff, 0xfc, 0x1b, 0xff, 0x80, 0x3, 0xe0,
+    0x0, 0x0, 0xfe, 0x40, 0x0, 0xff, 0xff, 0xff,
+    0xfd, 0x0, 0x6, 0xc0, 0x7, 0xd0, 0x78, 0x0,
+    0x6, 0xff, 0x40, 0xbd, 0x15, 0xf8, 0x6, 0xff,
+    0x90, 0xf, 0xff, 0xff, 0xf8, 0xff, 0x90, 0x0,
+    0x14, 0x0, 0x0, 0xe1, 0x40, 0x0, 0x0, 0x0,
+    0x0, 0x7, 0xc0, 0x0, 0x0, 0x2, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xf0, 0xb, 0xaa, 0xaa, 0xaa,
+    0xaa, 0xab, 0xc0, 0x2d, 0x0, 0x0, 0x0, 0x0,
+    0xf, 0x0, 0xb5, 0xff, 0xff, 0xff, 0xff, 0x3c,
+    0x0, 0x46, 0xaa, 0xaa, 0xaa, 0xa8, 0x50, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6a, 0xaa,
+    0xaa, 0xaa, 0xaa, 0xaa, 0x82, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0x0, 0x0, 0x10, 0xf, 0x40,
+    0x0, 0x0, 0x0, 0xb, 0xc0, 0x3d, 0xf, 0xe0,
+    0x0, 0x6, 0xfd, 0x0, 0xf4, 0x1b, 0xfe, 0x2,
+    0xff, 0x40, 0xbf, 0xc0, 0x1, 0xbf, 0x4b, 0x80,
+    0x3, 0xfd, 0x0, 0x0, 0x1c, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
+    /* U+9B08 "鬈" */
+    0x0, 0x15, 0x55, 0x55, 0x0, 0x0, 0x90, 0x0,
+    0x2f, 0xff, 0xff, 0xc0, 0x1b, 0xf8, 0x0, 0xb,
+    0x40, 0x0, 0x2, 0xff, 0xd0, 0x0, 0x2, 0xff,
+    0xff, 0xf5, 0xf9, 0x0, 0x0, 0x0, 0xb4, 0x0,
+    0x0, 0x0, 0x2, 0xf0, 0x0, 0x2f, 0xff, 0xff,
+    0x40, 0x6f, 0xf4, 0x0, 0xb, 0x40, 0x0, 0x3,
+    0xff, 0x80, 0x0, 0x3f, 0xff, 0xff, 0xfe, 0xa4,
+    0x0, 0xa0, 0x5, 0x5f, 0x96, 0xf5, 0x40, 0x1b,
+    0xf8, 0x0, 0xf, 0x40, 0x3e, 0x6, 0xff, 0xe0,
+    0x0, 0x3f, 0xff, 0xff, 0xe7, 0xfe, 0x40, 0x0,
+    0x5, 0x6e, 0x0, 0x60, 0x40, 0xf0, 0x0, 0x0,
+    0x3, 0xf0, 0x3c, 0x2, 0xf4, 0x0, 0x0, 0x6a,
+    0xbe, 0xaf, 0xaa, 0xfa, 0xa8, 0x0, 0x2f, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0xb,
+    0x80, 0x0, 0x0, 0x0, 0x6, 0xaa, 0xab, 0xea,
+    0xaa, 0xaa, 0xa8, 0x3, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0x40, 0x0, 0xf, 0xc0, 0x0, 0xbd,
+    0x0, 0x0, 0x0, 0x2f, 0xea, 0xaa, 0xaf, 0xf4,
+    0x0, 0x0, 0x7f, 0xff, 0xff, 0xff, 0x6f, 0xe0,
+    0x6, 0xfe, 0xf4, 0x0, 0x2, 0xd0, 0xbf, 0xd3,
+    0xf8, 0x3d, 0x0, 0x5a, 0xf0, 0x41, 0xf0, 0x60,
+    0xf, 0x40, 0x7f, 0xe4, 0x3c, 0x0, 0x0, 0x2,
+    0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x2f,
+    0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
+    /* U+9B0F "鬏" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0,
+    0x3f, 0xff, 0xff, 0x80, 0x6, 0xf8, 0x0, 0xf,
+    0x55, 0x55, 0x40, 0x6f, 0xf4, 0x0, 0x3, 0xd5,
+    0x55, 0x53, 0xff, 0x80, 0x0, 0x0, 0xff, 0xff,
+    0xfc, 0xb4, 0x0, 0x0, 0x0, 0x3c, 0x0, 0x0,
+    0x0, 0x1, 0xbc, 0x0, 0xf, 0xff, 0xff, 0xc0,
+    0x2f, 0xf9, 0x0, 0x3, 0xc0, 0x0, 0x2, 0xff,
+    0x90, 0x0, 0x2f, 0xff, 0xff, 0xff, 0x64, 0x0,
+    0x14, 0x5, 0x5b, 0xe5, 0xb5, 0x40, 0x1, 0xbf,
+    0x0, 0x7, 0xd0, 0x2e, 0x0, 0x1f, 0xfd, 0x0,
+    0xb, 0xe5, 0x5b, 0xe2, 0xff, 0xe0, 0x0, 0xb,
+    0xff, 0xff, 0xfd, 0xb9, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x2, 0x0, 0xa0, 0x0, 0x0, 0x5, 0x6b,
+    0xfc, 0x40, 0x3c, 0x1, 0x0, 0x2f, 0xff, 0xea,
+    0x74, 0xf, 0x1, 0xe0, 0x1, 0x43, 0xc0, 0xf,
+    0x3, 0xc0, 0xf0, 0x0, 0x0, 0xf0, 0x1, 0xe0,
+    0xf0, 0xb4, 0x0, 0xff, 0xff, 0xfe, 0x3d, 0x3c,
+    0x7c, 0x0, 0x2a, 0xbf, 0xaa, 0x47, 0x9f, 0x3c,
+    0x0, 0x0, 0xf, 0xd4, 0x0, 0x4b, 0xe0, 0x0,
+    0x0, 0x1f, 0xff, 0x80, 0x3, 0xfc, 0x0, 0x0,
+    0x2f, 0x3d, 0xfc, 0x3, 0xd7, 0xc0, 0x0, 0xbe,
+    0xf, 0xb, 0x7, 0xe0, 0xbd, 0x0, 0x2d, 0x3,
+    0xc0, 0x1f, 0xe0, 0x7, 0xf4, 0x0, 0x0, 0xf0,
+    0x3f, 0xd0, 0x0, 0x3f, 0xc0, 0x0, 0x3c, 0x7,
+    0x40, 0x0, 0x1, 0xe0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+9B13 "鬓" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x40, 0xf,
     0xff, 0xff, 0xf4, 0x1, 0xbf, 0x0, 0x3c, 0x0,
@@ -164252,6 +174858,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xf9, 0x40, 0x0, 0x6, 0xbc, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+9B23 "鬣" */
+    0x1, 0x55, 0x55, 0x54, 0x0, 0x6, 0x0, 0xf,
+    0xff, 0xff, 0xf0, 0x6, 0xfc, 0x0, 0x3c, 0x0,
+    0x0, 0x1b, 0xfe, 0x0, 0x0, 0xff, 0xff, 0xfc,
+    0xbe, 0x40, 0x40, 0x3, 0xc0, 0x0, 0x0, 0x0,
+    0x6f, 0x80, 0xf, 0xff, 0xff, 0xc1, 0xbf, 0xe0,
+    0x1, 0x7d, 0x55, 0x55, 0x5f, 0xd0, 0x9, 0x2f,
+    0xff, 0xff, 0xff, 0x40, 0x7, 0xf8, 0x2, 0xf0,
+    0x7, 0xd0, 0x6b, 0xfd, 0x0, 0xbf, 0xff, 0xff,
+    0xcb, 0xf9, 0x80, 0x1, 0x56, 0xf8, 0x3, 0xd4,
+    0x1f, 0x40, 0x0, 0x2f, 0x0, 0xbc, 0x2, 0xf0,
+    0x0, 0x0, 0x7e, 0x1, 0xf8, 0x7, 0xf0, 0x0,
+    0x5, 0x7f, 0x55, 0xbd, 0x56, 0xf4, 0x0, 0x3f,
+    0xff, 0xff, 0xff, 0xff, 0xf0, 0x0, 0xf0, 0x7e,
+    0x50, 0x5b, 0x83, 0xc0, 0x3, 0xc0, 0x1b, 0xff,
+    0xf4, 0xf, 0x0, 0xf, 0xb, 0xa4, 0x1, 0x6c,
+    0x3c, 0x0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xf0,
+    0x0, 0x50, 0x0, 0x14, 0x0, 0x5, 0x0, 0x2,
+    0xd7, 0xe8, 0xb6, 0xf9, 0x38, 0x0, 0xb, 0x41,
+    0xa2, 0xd1, 0x64, 0xe0, 0x0, 0x2d, 0x7e, 0x8b,
+    0x6f, 0x92, 0xc1, 0x40, 0xb4, 0x1a, 0x2d, 0x16,
+    0x47, 0xf, 0x2, 0xd5, 0xad, 0xb9, 0x6b, 0xce,
+    0x38, 0x1f, 0xff, 0xfb, 0xff, 0xfa, 0x2f, 0xc0,
+    0x39, 0x40, 0xe, 0x50, 0x0, 0x3d, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+9B2F "鬯" */
     0x0, 0x0, 0x9, 0x0, 0x0, 0x0, 0x0, 0x0,
     0xf, 0x80, 0x10, 0x0, 0x38, 0x3c, 0x2, 0xe0,
@@ -164299,6 +174931,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xff, 0xd0, 0x7, 0x80, 0x0, 0xb8, 0xf, 0xfd,
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+9B3B "鬻" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x1, 0xd0, 0x0, 0x0, 0x1, 0xff, 0xf7,
+    0x87, 0x4b, 0xbf, 0xfc, 0x1, 0x56, 0xd7, 0x5d,
+    0x34, 0x55, 0xf0, 0x0, 0x7, 0x4b, 0x77, 0x80,
+    0x3, 0xc0, 0x3f, 0xfd, 0x1, 0xd4, 0x1f, 0xff,
+    0x0, 0xf0, 0x3, 0xff, 0xff, 0x74, 0x0, 0x3,
+    0xd5, 0x45, 0x7e, 0x56, 0xe5, 0x50, 0xf, 0xff,
+    0x42, 0xf5, 0x7, 0xff, 0xd0, 0x0, 0x2d, 0x2e,
+    0xef, 0x0, 0xf, 0x0, 0x15, 0xf7, 0xd7, 0x4f,
+    0x5, 0xbc, 0x0, 0xfe, 0x5c, 0x1d, 0x8, 0x3f,
+    0x90, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe1, 0x55,
+    0x55, 0x55, 0x55, 0x55, 0x55, 0x40, 0x5, 0x55,
+    0x55, 0x55, 0x54, 0x0, 0x0, 0x3f, 0xff, 0xff,
+    0xff, 0xf4, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x3,
+    0xd0, 0x0, 0x3, 0xff, 0xff, 0xff, 0xff, 0x40,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0xf, 0x55,
+    0xa5, 0x56, 0x55, 0x7e, 0x0, 0x3c, 0x3, 0xd0,
+    0xf, 0x0, 0xb8, 0x0, 0xf0, 0x5b, 0x95, 0xf9,
+    0x42, 0xe0, 0x3, 0xc7, 0xff, 0xff, 0xff, 0xcb,
+    0x80, 0xf, 0x0, 0x1, 0xf0, 0x0, 0x2e, 0x0,
+    0x3c, 0x0, 0x7, 0xc0, 0x16, 0xf4, 0x0, 0xf0,
+    0x0, 0x1e, 0x0, 0xff, 0x80, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+9B3C "鬼" */
     0x0, 0x0, 0x0, 0xa4, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0xf4, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -164464,33 +175123,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xff, 0xff, 0xff, 0x40, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+9B46 "魆" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0xf, 0x0, 0x0, 0xf, 0x8, 0x0, 0x0, 0x1e,
-    0x0, 0x0, 0xf, 0x1f, 0x0, 0x0, 0x2d, 0x0,
-    0x0, 0xb, 0x7, 0xc0, 0xf, 0xff, 0xfe, 0x0,
-    0xb, 0x2, 0xd0, 0xf, 0xff, 0xff, 0x0, 0xb,
-    0x40, 0x40, 0xe, 0xe, 0xf, 0xf, 0xff, 0xff,
-    0xf8, 0xe, 0xe, 0xf, 0xf, 0xff, 0xff, 0xf8,
-    0xe, 0xe, 0xf, 0xe, 0x7, 0x40, 0x0, 0xf,
-    0xff, 0xff, 0xe, 0x7, 0x80, 0x80, 0xf, 0xff,
-    0xff, 0xe, 0x3, 0x82, 0xd0, 0xe, 0xe, 0xf,
-    0xe, 0x3, 0x83, 0xc0, 0xe, 0xe, 0xf, 0xe,
-    0x3, 0xc7, 0x80, 0xe, 0xe, 0xf, 0xe, 0x3,
-    0xcf, 0x0, 0xf, 0xff, 0xff, 0xe, 0x12, 0xee,
-    0x0, 0xf, 0xff, 0xff, 0xe, 0x75, 0xfc, 0x0,
-    0x0, 0x1d, 0x0, 0xf, 0xf0, 0xf8, 0x0, 0x0,
-    0x2f, 0x8b, 0xf, 0xc1, 0xf0, 0x20, 0x0, 0x3f,
-    0xce, 0x6f, 0x7, 0xf4, 0x3c, 0x0, 0x7b, 0xdd,
-    0xec, 0xf, 0xb8, 0x38, 0x0, 0xf3, 0xf8, 0xf0,
-    0x3d, 0x3d, 0xb4, 0x1, 0xe3, 0xff, 0xf4, 0xf4,
-    0x1f, 0xf0, 0x3, 0xc3, 0xd5, 0x22, 0xd0, 0xb,
-    0xdd, 0xb, 0x83, 0xc0, 0x0, 0x40, 0x0, 0xf,
-    0x2f, 0x3, 0xd0, 0x0, 0x0, 0x0, 0x6e, 0x7c,
-    0x2, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x74, 0x0,
-    0xbf, 0xff, 0xff, 0xff, 0xa0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0,
-
     /* U+9B47 "魇" */
     0x0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x0,
     0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x40, 0xf,
@@ -164572,6 +175204,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xff, 0xff, 0xff, 0x40, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+9B4D "魍" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xb8, 0x0, 0x15, 0x55, 0x55, 0x0, 0x0, 0x3c,
+    0x0, 0x2f, 0xff, 0xff, 0xc0, 0x3, 0xff, 0xff,
+    0x8b, 0x55, 0x55, 0xb0, 0x0, 0xff, 0xff, 0xe2,
+    0xc1, 0x1, 0x2c, 0x0, 0x38, 0x34, 0x38, 0xb2,
+    0xc0, 0xdb, 0x0, 0xe, 0xd, 0xe, 0x2c, 0x3c,
+    0xb2, 0xc0, 0x3, 0x83, 0x83, 0x8b, 0x7, 0x38,
+    0xb0, 0x0, 0xff, 0xff, 0xe2, 0xda, 0xae, 0xac,
+    0x0, 0x3f, 0xff, 0xf8, 0xbb, 0xff, 0xfb, 0x0,
+    0xe, 0xd, 0xe, 0x2c, 0x1, 0x2, 0xc0, 0x3,
+    0x83, 0x43, 0x8b, 0x1, 0xd0, 0xb0, 0x0, 0xe1,
+    0xd0, 0xe2, 0xc0, 0x3c, 0x2c, 0x0, 0x3f, 0xff,
+    0xf8, 0xbb, 0xff, 0xff, 0x0, 0xf, 0xff, 0xfe,
+    0x2d, 0x7d, 0x56, 0xc0, 0x0, 0xf, 0x1, 0xb,
+    0xe, 0x0, 0xb0, 0x0, 0x3, 0xf5, 0xc2, 0xc3,
+    0x80, 0x2c, 0x0, 0x1, 0xed, 0xbc, 0xb0, 0xe0,
+    0xb, 0x0, 0x0, 0xf7, 0x76, 0xac, 0x3f, 0xfa,
+    0xc0, 0x0, 0x79, 0xfc, 0x7b, 0xa, 0xa9, 0xb0,
+    0x0, 0x3c, 0x7f, 0xff, 0xc0, 0x1, 0xbc, 0x0,
+    0x1f, 0x1f, 0xa7, 0xf0, 0x0, 0xfe, 0x60, 0xf,
+    0x7, 0x40, 0x18, 0x0, 0x15, 0x2c, 0xb, 0x81,
+    0xf0, 0x0, 0x0, 0x0, 0xf, 0xb, 0xc0, 0x3f,
+    0xff, 0xff, 0xff, 0xff, 0x82, 0xc0, 0x2, 0xff,
+    0xff, 0xff, 0xff, 0x80, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+9B4F "魏" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x0,
@@ -164628,61 +175288,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xff, 0xff, 0xff, 0x80, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+9BEB "鯫" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0xb, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3,
-    0xc0, 0x1a, 0xaa, 0xa8, 0x0, 0x0, 0x1, 0xe0,
-    0xb, 0xff, 0xff, 0x0, 0x0, 0x0, 0xff, 0xf5,
-    0x7d, 0x7d, 0x80, 0x0, 0x0, 0x7e, 0xbd, 0xe,
-    0xb, 0x3f, 0xff, 0x0, 0x3c, 0xf, 0x3, 0x82,
-    0xcb, 0xff, 0xc0, 0x2d, 0xb, 0x0, 0xe0, 0xb1,
-    0xc0, 0xf0, 0x1f, 0xab, 0xe8, 0x3e, 0xbc, 0x70,
-    0x3c, 0xb, 0xff, 0xff, 0xf, 0xff, 0x1d, 0xf,
-    0x0, 0x78, 0xf2, 0xc3, 0xd6, 0xc3, 0x43, 0x80,
-    0xe, 0x3c, 0xb0, 0xe0, 0xb0, 0xe0, 0xe0, 0x3,
-    0x8f, 0x2c, 0x38, 0x2c, 0x38, 0x74, 0x0, 0xe7,
-    0xdb, 0xe, 0xb, 0xb, 0x1d, 0x0, 0x3f, 0xff,
-    0xc3, 0x82, 0xc2, 0xcb, 0x0, 0xe, 0x7d, 0xf0,
-    0xff, 0xf0, 0x77, 0xc0, 0x3, 0x8f, 0x2c, 0x3f,
-    0xfc, 0xf, 0xe0, 0x0, 0xe3, 0xcb, 0xe, 0xb,
-    0x3, 0xf4, 0x0, 0x3e, 0xfb, 0xc3, 0x82, 0xc0,
-    0x7c, 0x0, 0xf, 0xff, 0xf0, 0xe0, 0xb1, 0x1f,
-    0x0, 0x0, 0x0, 0x0, 0x38, 0x7f, 0xcf, 0xd0,
-    0x2, 0x48, 0x63, 0x5f, 0xff, 0xf7, 0xfc, 0x0,
-    0xe3, 0x5c, 0xff, 0xff, 0xc3, 0xdb, 0x40, 0x34,
-    0xe3, 0x1e, 0x90, 0xb2, 0xe0, 0xf0, 0x1d, 0x38,
-    0xd3, 0x40, 0x2d, 0xf0, 0x2f, 0xb, 0xe, 0x34,
-    0xe0, 0xb, 0xf4, 0x3, 0xd3, 0xc3, 0x8d, 0x10,
-    0x2, 0xdc, 0x0, 0x60, 0x90, 0x0, 0x0, 0x0,
-    0xb0, 0x0, 0x0,
-
-    /* U+9C29 "鰩" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x3, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1,
-    0xf0, 0x0, 0x0, 0x0, 0x5a, 0xd0, 0x0, 0xf4,
-    0x0, 0x2b, 0xff, 0xff, 0xf4, 0x0, 0xbf, 0xff,
-    0x1f, 0xff, 0xfa, 0x50, 0x0, 0x7e, 0xaf, 0xc1,
-    0x50, 0x10, 0x9, 0x0, 0x3d, 0x2, 0xd0, 0x38,
-    0x2d, 0x3, 0xc0, 0x3e, 0x1, 0xe0, 0xf, 0x3,
-    0xc2, 0xd0, 0x2f, 0xaa, 0xfa, 0x41, 0xe0, 0xf4,
-    0xf0, 0xf, 0xff, 0xff, 0xe0, 0x24, 0x1d, 0x78,
-    0x1, 0x7c, 0x3c, 0x38, 0xf, 0x0, 0x3c, 0x0,
-    0xf, 0xf, 0xe, 0x7, 0xc0, 0x1, 0x0, 0x3,
-    0xc3, 0xc3, 0x82, 0xff, 0xff, 0xfc, 0x0, 0xfa,
-    0xfa, 0xe0, 0xfa, 0xbe, 0xaa, 0x0, 0x3f, 0xff,
-    0xf8, 0xb8, 0xe, 0x0, 0x0, 0xf, 0xf, 0xe,
-    0x3c, 0x3, 0x80, 0x0, 0x3, 0xc3, 0xc3, 0x81,
-    0x0, 0xe0, 0x0, 0x0, 0xf0, 0xf0, 0xe7, 0xff,
-    0xff, 0xff, 0xc0, 0x3e, 0xbe, 0xf9, 0xff, 0xff,
-    0xff, 0xf4, 0xf, 0xff, 0xfe, 0x0, 0x3, 0x80,
-    0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0xe0, 0x10,
-    0x1, 0x86, 0x18, 0x70, 0xf0, 0x38, 0xe, 0x0,
-    0xb1, 0xc7, 0x1d, 0x3c, 0xe, 0x3, 0x80, 0x3c,
-    0x74, 0xd3, 0x8f, 0x3, 0x80, 0xe0, 0xe, 0xd,
-    0x38, 0xf3, 0xd5, 0xf5, 0x78, 0x7, 0x43, 0x4e,
-    0x2c, 0xff, 0xff, 0xfe, 0x3, 0xc0, 0xe2, 0x45,
-    0x2a, 0xaa, 0xaf, 0x80, 0x50, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0xe0,
+    /* U+9B54 "魔" */
+    0x0, 0x0, 0x0, 0x6, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x2, 0xe0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x7c, 0x0, 0x0, 0x0, 0x3, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xf4, 0x0, 0xfa, 0xaa,
+    0xaa, 0xaa, 0xaa, 0xa9, 0x0, 0x3c, 0x0, 0xa0,
+    0x0, 0x28, 0x0, 0x0, 0xf, 0x0, 0x3c, 0x0,
+    0xb, 0x0, 0x0, 0x3, 0xcf, 0xff, 0xfd, 0xff,
+    0xff, 0xf0, 0x0, 0xf1, 0x5f, 0xd5, 0x16, 0xfe,
+    0x54, 0x0, 0x3c, 0xb, 0xfe, 0x1, 0xff, 0xd0,
+    0x0, 0xf, 0xf, 0xbe, 0xf2, 0xeb, 0x3e, 0x0,
+    0x3, 0xef, 0x4f, 0x1e, 0xe2, 0xc2, 0xf8, 0x0,
+    0xf7, 0x3, 0xc2, 0x80, 0xb0, 0xa, 0x0, 0x3c,
+    0x0, 0x1, 0xe0, 0x0, 0x0, 0x0, 0xf, 0x6,
+    0xaa, 0xfa, 0xaa, 0xa8, 0x0, 0x3, 0xc2, 0xff,
+    0xff, 0xff, 0xff, 0x0, 0x0, 0xf0, 0xb0, 0x0,
+    0xe0, 0x3, 0xc0, 0x0, 0x78, 0x2f, 0xff, 0xff,
+    0xff, 0xf0, 0x0, 0x1e, 0xb, 0x95, 0x6f, 0x55,
+    0x7c, 0x0, 0xb, 0x82, 0xc0, 0x7, 0x80, 0xf,
+    0x0, 0x3, 0xd0, 0xbf, 0xff, 0xff, 0xff, 0xc0,
+    0x0, 0xf0, 0x15, 0x56, 0xf5, 0x7d, 0x50, 0x0,
+    0x7c, 0x0, 0x0, 0xfe, 0x1d, 0x34, 0x0, 0x2e,
+    0x0, 0x1, 0xff, 0x9f, 0x5f, 0x28, 0xf, 0x0,
+    0x7, 0xf8, 0xef, 0xff, 0xff, 0xb, 0xc0, 0x1f,
+    0xf4, 0x3c, 0x0, 0xb, 0xc3, 0xd0, 0xff, 0xd0,
+    0xf, 0xff, 0xff, 0xd0, 0x60, 0x3e, 0x0, 0x0,
+    0x6a, 0xea, 0x90, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
 
     /* U+9C7C "鱼" */
     0x0, 0x0, 0x14, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -164737,34 +175370,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x80, 0x2, 0xff, 0x80, 0x0, 0x0, 0x0, 0x80,
     0x0, 0x0, 0x0,
 
-    /* U+9C80 "鲀" */
-    0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x3, 0xc0, 0x0, 0x0, 0x7c, 0x0, 0x0, 0x2,
-    0xd0, 0x0, 0x0, 0x1f, 0x0, 0x0, 0x0, 0xfa,
-    0xa8, 0x0, 0x7, 0xc0, 0x0, 0x0, 0xbf, 0xff,
-    0x0, 0x1, 0xf0, 0x0, 0x0, 0x7d, 0x57, 0xc3,
-    0xff, 0xff, 0xff, 0x80, 0x3d, 0x2, 0xd0, 0xff,
-    0xff, 0xff, 0xe0, 0x3e, 0x1, 0xe0, 0x0, 0x7,
-    0xc0, 0x0, 0x2f, 0xaa, 0xfe, 0x80, 0x1, 0xf0,
-    0x0, 0x1f, 0xff, 0xff, 0xf0, 0x90, 0x7c, 0x9,
-    0x2, 0x7c, 0x3c, 0x3c, 0x38, 0x1f, 0x3, 0x80,
-    0xf, 0xf, 0xf, 0xe, 0x7, 0xc0, 0xe0, 0x3,
-    0xc3, 0xc3, 0xc3, 0x81, 0xf0, 0x38, 0x0, 0xf0,
-    0xf0, 0xf0, 0xe0, 0x7c, 0xe, 0x0, 0x3f, 0xff,
-    0xfc, 0x38, 0x1f, 0x3, 0x80, 0xf, 0xaf, 0xaf,
-    0xe, 0x7, 0xc0, 0xe0, 0x3, 0xc3, 0xc3, 0xc3,
-    0x81, 0xf0, 0x78, 0x0, 0xf0, 0xf0, 0xf0, 0xff,
-    0xff, 0xfe, 0x0, 0x3c, 0x3c, 0x3c, 0x3f, 0xff,
-    0xff, 0x80, 0xf, 0xff, 0xff, 0x0, 0x7, 0xc0,
-    0x0, 0x2, 0xaa, 0xaa, 0x80, 0x1, 0xf0, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x7c, 0x0, 0x80,
-    0x0, 0x0, 0x0, 0x0, 0x1f, 0x0, 0x78, 0x0,
-    0x5, 0x6a, 0xc0, 0x3, 0xc0, 0x1d, 0x3f, 0xff,
-    0xff, 0xf0, 0x0, 0xf0, 0xb, 0x4b, 0xff, 0xaa,
-    0x50, 0x0, 0x3f, 0xaf, 0xc0, 0x0, 0x0, 0x0,
-    0x0, 0x7, 0xff, 0xd0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x5, 0x0,
-
     /* U+9C81 "鲁" */
     0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0xbc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2,
@@ -164934,60 +175539,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+9C89 "鲉" */
-    0x0, 0x9, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0xf, 0x0, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x2e,
-    0x0, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x3f, 0xfe,
-    0x0, 0x0, 0xf0, 0x0, 0x0, 0xbf, 0xfe, 0x0,
-    0x0, 0xf0, 0x0, 0x1, 0xf0, 0x2d, 0x1, 0x55,
-    0xf5, 0x54, 0x3, 0xd0, 0x7c, 0xf, 0xff, 0xff,
-    0xfc, 0xb, 0x80, 0xf4, 0xf, 0xff, 0xff, 0xfc,
-    0x1f, 0xff, 0xff, 0x8f, 0x0, 0xf0, 0x3c, 0x3f,
-    0xff, 0xff, 0x8f, 0x0, 0xf0, 0x3c, 0x7, 0xc3,
-    0xc3, 0x8f, 0x0, 0xf0, 0x3c, 0x3, 0xc3, 0xc3,
-    0x8f, 0x0, 0xf0, 0x3c, 0x3, 0xc3, 0xc3, 0x8f,
-    0x0, 0xf0, 0x3c, 0x3, 0xc3, 0xc3, 0x8f, 0x0,
-    0xf0, 0x3c, 0x3, 0xff, 0xff, 0x8f, 0x0, 0xf0,
-    0x3c, 0x3, 0xeb, 0xeb, 0x8f, 0xff, 0xff, 0xfc,
-    0x3, 0xc3, 0xc3, 0x8f, 0xff, 0xff, 0xfc, 0x3,
-    0xc3, 0xc3, 0x8f, 0x0, 0xf0, 0x3c, 0x3, 0xc3,
-    0xc3, 0x8f, 0x0, 0xf0, 0x3c, 0x3, 0xff, 0xff,
-    0x8f, 0x0, 0xf0, 0x3c, 0x3, 0xff, 0xff, 0x8f,
-    0x0, 0xf0, 0x3c, 0x0, 0x0, 0x0, 0xf, 0x0,
-    0xf0, 0x3c, 0x0, 0x0, 0x0, 0xf, 0x0, 0xf0,
-    0x3c, 0x0, 0x1, 0x5a, 0xcf, 0x0, 0xf0, 0x3c,
-    0x2f, 0xff, 0xff, 0xcf, 0xff, 0xff, 0xfc, 0x2f,
-    0xfe, 0xa5, 0x4f, 0xff, 0xff, 0xfc, 0x0, 0x0,
-    0x0, 0xf, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x0,
-    0xf, 0x0, 0x0, 0x3c,
-
-    /* U+9C8A "鲊" */
-    0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x2e, 0x0, 0x0, 0x3d, 0x0, 0x0, 0x0, 0x3c,
-    0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x7e, 0xa8,
-    0x0, 0xbc, 0x0, 0x0, 0x0, 0xff, 0xfc, 0x0,
-    0xf4, 0x0, 0x0, 0x2, 0xe5, 0x7c, 0x1, 0xff,
-    0xff, 0xfe, 0x7, 0xc0, 0xb4, 0x3, 0xff, 0xff,
-    0xfe, 0xf, 0x40, 0xf0, 0x7, 0xdf, 0x0, 0x0,
-    0x2f, 0x2, 0xe0, 0xf, 0x8f, 0x0, 0x0, 0x7f,
-    0xff, 0xff, 0x5f, 0xf, 0x0, 0x0, 0xbf, 0xef,
-    0xef, 0xbe, 0xf, 0x0, 0x0, 0x17, 0x47, 0x47,
-    0xfc, 0xf, 0x0, 0x0, 0x7, 0x47, 0x47, 0x74,
-    0xf, 0xaa, 0xa0, 0x7, 0x47, 0x47, 0x40, 0xf,
-    0xff, 0xf4, 0x7, 0xff, 0xff, 0x40, 0xf, 0x55,
-    0x50, 0x7, 0xff, 0xff, 0x40, 0xf, 0x0, 0x0,
-    0x7, 0x47, 0x47, 0x40, 0xf, 0x0, 0x0, 0x7,
-    0x47, 0x47, 0x40, 0xf, 0x0, 0x0, 0x7, 0x47,
-    0x47, 0x40, 0xf, 0x0, 0x0, 0x7, 0x4b, 0x4b,
-    0x40, 0xf, 0x55, 0x50, 0x7, 0xff, 0xff, 0x40,
-    0xf, 0xff, 0xfc, 0x6, 0xaa, 0xaa, 0x0, 0xf,
-    0xff, 0xf8, 0x0, 0x0, 0x0, 0x0, 0xf, 0x0,
-    0x0, 0x0, 0x0, 0x1, 0x40, 0xf, 0x0, 0x0,
-    0x2b, 0xff, 0xff, 0xe0, 0xf, 0x0, 0x0, 0x3f,
-    0xff, 0xff, 0x90, 0xf, 0x0, 0x0, 0x15, 0x40,
-    0x0, 0x0, 0xf, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0xf, 0x0, 0x0,
-
     /* U+9C8B "鲋" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x2, 0xd0, 0x0, 0x1d, 0x0, 0x60, 0x0, 0x0,
@@ -165043,6 +175594,30 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x1, 0xff, 0xff, 0xf4, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+9C8E "鲎" */
+    0x0, 0x0, 0x1, 0x40, 0x0, 0x0, 0x0, 0x1e,
+    0x0, 0x7c, 0x0, 0xf, 0x40, 0x1, 0xf4, 0x3,
+    0xe0, 0x2, 0xf0, 0x0, 0xb, 0xc0, 0xf, 0x0,
+    0x7d, 0x0, 0x0, 0x3d, 0x0, 0xb8, 0xf, 0x80,
+    0x2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x3f,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0x83, 0xd0, 0x1,
+    0x0, 0x0, 0x0, 0xb8, 0x3c, 0x0, 0x78, 0x0,
+    0x0, 0xb, 0x83, 0xc0, 0x1f, 0x80, 0x0, 0x0,
+    0xb8, 0x2c, 0x7, 0xff, 0xff, 0xfd, 0x7, 0x40,
+    0x1, 0xff, 0xff, 0xff, 0xe0, 0x0, 0x0, 0xbe,
+    0x0, 0x0, 0xfc, 0x0, 0x0, 0x3f, 0x80, 0x0,
+    0x3f, 0x0, 0x0, 0x2f, 0xff, 0xff, 0xff, 0xff,
+    0xf8, 0xb, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80,
+    0x24, 0xf0, 0x0, 0xf4, 0x0, 0x78, 0x0, 0xf,
+    0xaa, 0xaf, 0xaa, 0xaf, 0x80, 0x0, 0xff, 0xff,
+    0xff, 0xff, 0xf8, 0x0, 0xf, 0x0, 0xf, 0x40,
+    0xb, 0x80, 0x0, 0xf0, 0x0, 0xf4, 0x0, 0x78,
+    0x0, 0xf, 0xaa, 0xaf, 0xea, 0xaf, 0x80, 0x0,
+    0xff, 0xff, 0xff, 0xff, 0xf8, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xb, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
+
     /* U+9C90 "鲐" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x3, 0x80, 0x0, 0x0, 0xe0, 0x0, 0x0, 0x1,
@@ -165098,6 +175673,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xa7, 0xff, 0xff, 0xff, 0xd0, 0x95, 0x0, 0x1,
     0xff, 0xff, 0xff, 0xf4,
 
+    /* U+9C92 "鲒" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x7, 0x80, 0x0, 0x0, 0x7c, 0x0, 0x0, 0x2,
+    0xe0, 0x0, 0x0, 0x1f, 0x0, 0x0, 0x0, 0xf5,
+    0x54, 0x0, 0x7, 0xc0, 0x0, 0x0, 0xbf, 0xff,
+    0x0, 0x1, 0xf0, 0x0, 0x0, 0x3e, 0xaf, 0xc7,
+    0xff, 0xff, 0xff, 0xc0, 0x3e, 0x2, 0xe1, 0xff,
+    0xff, 0xff, 0xf0, 0x1f, 0x1, 0xf0, 0x0, 0xb,
+    0xc0, 0x0, 0xf, 0x40, 0xf4, 0x0, 0x1, 0xf0,
+    0x0, 0xf, 0xff, 0xff, 0xf0, 0x0, 0x7c, 0x0,
+    0x3, 0xff, 0xff, 0xfc, 0x0, 0x1f, 0x0, 0x0,
+    0x4f, 0xf, 0xf, 0x15, 0x5b, 0xd5, 0x50, 0x3,
+    0xc3, 0xc3, 0xcb, 0xff, 0xff, 0xfc, 0x0, 0xf0,
+    0xf0, 0xf1, 0xaa, 0xaa, 0xaa, 0x0, 0x3f, 0xff,
+    0xfc, 0x0, 0x0, 0x0, 0x0, 0xf, 0xff, 0xff,
+    0x0, 0x0, 0x0, 0x0, 0x3, 0xc3, 0xc3, 0xc0,
+    0x0, 0x0, 0x0, 0x0, 0xf0, 0xf0, 0xf0, 0xff,
+    0xff, 0xfc, 0x0, 0x3c, 0x3c, 0x3c, 0x3f, 0xaa,
+    0xaf, 0x0, 0xf, 0xaf, 0xaf, 0xf, 0x40, 0x3,
+    0xc0, 0x3, 0xff, 0xff, 0xc3, 0xd0, 0x0, 0xf0,
+    0x0, 0x0, 0x0, 0x0, 0xf4, 0x0, 0x3c, 0x0,
+    0x0, 0x0, 0x0, 0x3d, 0x0, 0xf, 0x0, 0x0,
+    0x0, 0x56, 0x4f, 0x40, 0x3, 0xc0, 0x1f, 0xff,
+    0xff, 0xf3, 0xff, 0xff, 0xf0, 0x7, 0xff, 0xfe,
+    0xa4, 0xff, 0xff, 0xfc, 0x0, 0x40, 0x0, 0x0,
+    0x3d, 0x0, 0xf, 0x0, 0x0, 0x0, 0x0, 0xf,
+    0x40, 0x3, 0xc0,
+
     /* U+9C94 "鲔" */
     0x0, 0x4, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0,
     0x3, 0xc0, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x2,
@@ -165126,6 +175729,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xf, 0x2, 0xff, 0x0, 0x0, 0x0, 0x0, 0x3,
     0xc0, 0x79, 0x0,
 
+    /* U+9C95 "鲕" */
+    0x0, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x2d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c,
+    0x0, 0x2a, 0xaa, 0xaa, 0xaa, 0x0, 0xbf, 0xfc,
+    0x3f, 0xff, 0xff, 0xff, 0x0, 0xff, 0xfc, 0x15,
+    0x56, 0xe5, 0x55, 0x2, 0xd0, 0x7c, 0x0, 0x2,
+    0xd0, 0x0, 0x7, 0xc0, 0xb4, 0x0, 0x3, 0xc0,
+    0x0, 0xf, 0x0, 0xe0, 0x0, 0x7, 0xc0, 0x0,
+    0x2f, 0xab, 0xe9, 0x0, 0xb, 0x40, 0x0, 0x3f,
+    0xff, 0xfe, 0x1f, 0xff, 0xff, 0xfc, 0x13, 0x8b,
+    0x4e, 0x1f, 0xff, 0xff, 0xfc, 0x3, 0x47, 0xe,
+    0x1d, 0x2c, 0x2c, 0x3c, 0x3, 0x47, 0xe, 0x1d,
+    0x2c, 0x2c, 0x3c, 0x3, 0x8b, 0xe, 0x1d, 0x2c,
+    0x2c, 0x3c, 0x3, 0xff, 0xfe, 0x1d, 0x2c, 0x2c,
+    0x3c, 0x3, 0xef, 0xae, 0x1d, 0x2c, 0x2c, 0x3c,
+    0x3, 0x47, 0xe, 0x1d, 0x2c, 0x2c, 0x3c, 0x3,
+    0x47, 0xe, 0x1d, 0x2c, 0x2c, 0x3c, 0x3, 0x47,
+    0xe, 0x1d, 0x2c, 0x2c, 0x3c, 0x3, 0xef, 0xee,
+    0x1d, 0x2c, 0x2c, 0x3c, 0x3, 0xff, 0xfe, 0x1d,
+    0x2c, 0x2c, 0x3c, 0x0, 0x0, 0x0, 0x1d, 0x2c,
+    0x2c, 0x3c, 0x0, 0x0, 0x0, 0x1d, 0x2c, 0x2c,
+    0x3c, 0x0, 0x0, 0x15, 0x5d, 0x2c, 0x2c, 0x3c,
+    0x1f, 0xff, 0xff, 0x9d, 0x2c, 0x28, 0x3c, 0x1f,
+    0xff, 0xe9, 0x1d, 0x1c, 0x6, 0xf8, 0x0, 0x0,
+    0x0, 0x1d, 0x0, 0xb, 0x90,
+
     /* U+9C9A "鲚" */
     0x0, 0x4, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0,
     0x7, 0x80, 0x0, 0x1, 0xf0, 0x0, 0x0, 0x3,
@@ -165211,6 +175840,33 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x2, 0xe0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x2, 0xe0, 0x0,
 
+    /* U+9C9E "鲞" */
+    0x0, 0x0, 0x0, 0x9, 0x0, 0x0, 0x0, 0x0,
+    0x3, 0xc0, 0x7, 0xc0, 0xf, 0x40, 0x0, 0x0,
+    0x7c, 0x3, 0xe0, 0xb, 0xc0, 0x0, 0x0, 0xb,
+    0xc0, 0xf0, 0xb, 0xc0, 0x0, 0x2, 0xaa, 0xfa,
+    0xfe, 0xab, 0xfa, 0xa0, 0x0, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xfd, 0x0, 0x0, 0x0, 0x2f, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x1f, 0x40, 0x0,
+    0x0, 0x0, 0xa, 0xaa, 0xaf, 0xea, 0xaa, 0xaa,
+    0xa9, 0x3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0x40, 0x0, 0xf, 0xc1, 0x0, 0xbc, 0x0, 0x0,
+    0x0, 0xf, 0xc1, 0xe0, 0xb, 0xc0, 0x0, 0x0,
+    0x1f, 0xc1, 0xf4, 0x0, 0xbd, 0x0, 0x0, 0x2f,
+    0x82, 0xff, 0xff, 0x8b, 0xe0, 0x0, 0xbf, 0x43,
+    0xf9, 0x5b, 0xd0, 0x7f, 0x90, 0xfe, 0x1, 0xe0,
+    0x3, 0xd0, 0x2, 0xfd, 0x2d, 0x1f, 0xff, 0xff,
+    0xff, 0xff, 0xa, 0x0, 0x7, 0xd5, 0x5b, 0xd5,
+    0x5b, 0xc0, 0x0, 0x1, 0xf0, 0x0, 0xe0, 0x1,
+    0xf0, 0x0, 0x0, 0x7f, 0xff, 0xff, 0xff, 0xfc,
+    0x0, 0x0, 0x1f, 0x55, 0x6f, 0x55, 0x6f, 0x0,
+    0x0, 0x7, 0xc0, 0x3, 0x80, 0x7, 0xc0, 0x0,
+    0x1, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x0, 0x0,
+    0x15, 0x55, 0x55, 0x55, 0x54, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0x0, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xd0,
+
     /* U+9C9F "鲟" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x7, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2,
@@ -165594,6 +176250,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xf4, 0x0, 0x7, 0xf4, 0x0, 0x0, 0x1, 0x80,
     0x0, 0x0, 0x18,
 
+    /* U+9CB0 "鲰" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xb, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3,
+    0xc0, 0x15, 0x55, 0x54, 0x0, 0x0, 0x1, 0xe5,
+    0x4b, 0xff, 0xff, 0x0, 0x0, 0x0, 0xff, 0xf5,
+    0xbe, 0xbe, 0x80, 0x0, 0x0, 0x7e, 0xbd, 0xf,
+    0xf, 0x3f, 0xff, 0x0, 0x3c, 0xf, 0x3, 0xc3,
+    0xcf, 0xff, 0xc0, 0x2e, 0x7, 0x40, 0xf0, 0xf1,
+    0x80, 0xf0, 0x1f, 0x43, 0xc0, 0x3c, 0x3c, 0xb0,
+    0x3c, 0xf, 0xff, 0xff, 0xf, 0xff, 0x1c, 0xe,
+    0x3, 0xbe, 0xfb, 0xc3, 0xff, 0xc7, 0x43, 0x80,
+    0xd, 0x38, 0xb0, 0xf0, 0xf0, 0xd0, 0xd0, 0x3,
+    0x4e, 0x2c, 0x3c, 0x3c, 0x38, 0x74, 0x0, 0xd3,
+    0x8b, 0xf, 0xf, 0xf, 0x2c, 0x0, 0x3e, 0xfb,
+    0xc3, 0xc3, 0xc2, 0xcb, 0x0, 0xf, 0xff, 0xf0,
+    0xff, 0xf0, 0x77, 0x80, 0x3, 0x4e, 0x2c, 0x3f,
+    0xfc, 0xf, 0xd0, 0x0, 0xd3, 0x8b, 0xf, 0xf,
+    0x3, 0xf0, 0x0, 0x34, 0xe2, 0xc3, 0xc3, 0xc0,
+    0xbc, 0x0, 0xf, 0xbe, 0xf0, 0xf0, 0xf0, 0x2e,
+    0x0, 0x3, 0xff, 0xfc, 0x3c, 0x3f, 0xcf, 0xc0,
+    0x0, 0x0, 0x0, 0x1f, 0xff, 0xfb, 0xf8, 0x0,
+    0x0, 0x0, 0x2f, 0xff, 0xc3, 0xcf, 0x40, 0x0,
+    0x0, 0x5b, 0x90, 0xf2, 0xd0, 0xf0, 0x1b, 0xff,
+    0xfd, 0x0, 0x3e, 0xf0, 0x2e, 0xb, 0xff, 0xa9,
+    0x0, 0xf, 0xf0, 0x3, 0xd0, 0x0, 0x0, 0x0,
+    0x3, 0xe8, 0x0, 0x70, 0x0, 0x0, 0x0, 0x0,
+    0xf0, 0x0, 0x0,
+
     /* U+9CB1 "鲱" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0xb, 0x40, 0x0, 0x28, 0xf, 0x0, 0x0, 0x3,
@@ -165812,34 +176496,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x3, 0xf8, 0x0, 0x40, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+9CB9 "鲹" */
-    0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0xb, 0x40, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x3,
-    0xc0, 0x0, 0x2, 0xe0, 0x80, 0x0, 0x1, 0xfa,
-    0xa0, 0x1, 0xf0, 0x7c, 0x0, 0x0, 0xff, 0xfd,
-    0x0, 0xf0, 0xb, 0x80, 0x0, 0x79, 0x5f, 0x0,
-    0xf4, 0x0, 0xf8, 0x0, 0x3c, 0x7, 0x80, 0xff,
-    0xff, 0xff, 0x40, 0x2e, 0x3, 0xc0, 0x3f, 0xfe,
-    0xaa, 0xf0, 0x1f, 0x56, 0xe5, 0x0, 0xb, 0x40,
-    0x28, 0xf, 0xff, 0xff, 0xc0, 0x3, 0xc0, 0x0,
-    0x1, 0xbe, 0xfa, 0xf0, 0x1, 0xe0, 0x0, 0x0,
-    0xe, 0x2c, 0x2c, 0xff, 0xff, 0xff, 0xfc, 0x3,
-    0x8b, 0xb, 0x2a, 0xfe, 0xbe, 0xaa, 0x0, 0xe2,
-    0xc2, 0xc0, 0x3c, 0x3, 0xc0, 0x0, 0x3f, 0xff,
-    0xf0, 0x3d, 0x0, 0xb8, 0x0, 0xf, 0xbf, 0xbc,
-    0x3d, 0x7, 0xcb, 0x80, 0x3, 0x8b, 0xb, 0x7d,
-    0x1f, 0xd0, 0xfc, 0x0, 0xe2, 0xc2, 0xfd, 0x7f,
-    0x80, 0xb, 0xd0, 0x38, 0xb0, 0xb4, 0x3e, 0x1,
-    0xf0, 0x70, 0xf, 0xbf, 0xbc, 0x0, 0x7, 0xf4,
-    0x0, 0x3, 0xff, 0xff, 0x0, 0x1f, 0xe0, 0x10,
-    0x0, 0x0, 0x0, 0x1, 0xff, 0x80, 0x3d, 0x0,
-    0x0, 0x0, 0x0, 0xbd, 0x0, 0x7e, 0x0, 0x0,
-    0x16, 0xbe, 0x0, 0x1, 0xfd, 0x0, 0x3f, 0xff,
-    0xff, 0x40, 0xb, 0xf4, 0x0, 0xf, 0xfe, 0x90,
-    0x1, 0xbf, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x3,
-    0xfe, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x64,
-    0x0, 0x0, 0x0,
-
     /* U+9CBA "鲺" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0xf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7,
@@ -165951,35 +176607,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x78, 0x0, 0x20, 0x0, 0x0, 0x0, 0x0,
     0x1e, 0x0, 0x0,
 
-    /* U+9CC0 "鳀" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0xb, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3,
-    0xc0, 0x0, 0x7f, 0xff, 0xfe, 0x0, 0x1, 0xf5,
-    0x40, 0x2f, 0xff, 0xff, 0x80, 0x0, 0xff, 0xfc,
-    0xb, 0x40, 0x0, 0xe0, 0x0, 0xbe, 0xaf, 0x2,
-    0xd0, 0x0, 0x38, 0x0, 0x3c, 0xb, 0x40, 0xbf,
-    0xff, 0xfe, 0x0, 0x3d, 0x3, 0xc0, 0x2f, 0xff,
-    0xff, 0x80, 0x2f, 0x2, 0xd0, 0xb, 0x40, 0x0,
-    0xe0, 0x1f, 0xff, 0xff, 0x82, 0xd0, 0x0, 0x38,
-    0x2, 0x7e, 0xfa, 0xe0, 0xbf, 0xff, 0xfe, 0x0,
-    0xd, 0x1c, 0x38, 0x2f, 0xff, 0xff, 0x80, 0x3,
-    0x47, 0xe, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe2,
-    0xc3, 0x80, 0x0, 0x0, 0x0, 0x0, 0x3f, 0xff,
-    0xe3, 0xff, 0xff, 0xff, 0xe0, 0xf, 0xbe, 0xb8,
-    0xff, 0xff, 0xff, 0xf8, 0x3, 0x47, 0xe, 0x0,
-    0x2, 0xd0, 0x0, 0x0, 0xd1, 0xc3, 0x81, 0x90,
-    0xb4, 0x0, 0x0, 0x34, 0x70, 0xe0, 0x74, 0x2d,
-    0x0, 0x0, 0xf, 0xbe, 0xb8, 0x2c, 0xb, 0xaa,
-    0x90, 0x3, 0xff, 0xfe, 0xf, 0x2, 0xff, 0xf8,
-    0x0, 0x0, 0x0, 0x3, 0xe0, 0xb9, 0x54, 0x0,
-    0x0, 0x0, 0x1, 0xfc, 0x2d, 0x0, 0x0, 0x0,
-    0x1, 0x64, 0xfb, 0xcb, 0x40, 0x0, 0x3f, 0xff,
-    0xfe, 0x7c, 0xbf, 0xd0, 0x0, 0xf, 0xff, 0xa5,
-    0x3d, 0xb, 0xff, 0xff, 0xe0, 0x0, 0x0, 0x2f,
-    0x0, 0x2f, 0xff, 0xf0, 0x0, 0x0, 0x7, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0,
-
     /* U+9CC3 "鳃" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x7, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3,
@@ -166035,6 +176662,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x3, 0xfe, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+9CC5 "鳅" */
+    0x0, 0x10, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0,
+    0x1e, 0x0, 0x0, 0x0, 0x3, 0x80, 0x0, 0xb,
+    0x40, 0x0, 0xb, 0x40, 0xe0, 0x0, 0x3, 0xea,
+    0x92, 0xff, 0xe0, 0x38, 0x0, 0x2, 0xff, 0xf4,
+    0xff, 0x90, 0xe, 0x0, 0x0, 0xf0, 0x3c, 0x26,
+    0xc0, 0x3, 0x81, 0x40, 0xb4, 0xe, 0x0, 0xb0,
+    0xf0, 0xe0, 0xe0, 0x7c, 0xb, 0x40, 0x2c, 0x3c,
+    0x38, 0x34, 0x3e, 0x57, 0xd4, 0xb, 0x7, 0x4e,
+    0x1c, 0x1f, 0xff, 0xff, 0x2, 0xc1, 0xe3, 0x8b,
+    0x1, 0xb9, 0xe7, 0xdf, 0xff, 0x7c, 0xe3, 0xc0,
+    0x1c, 0x34, 0xb7, 0xff, 0xdf, 0x38, 0xe0, 0x7,
+    0xd, 0x2c, 0xf, 0x2, 0xde, 0x74, 0x1, 0xc3,
+    0x4b, 0x3, 0xc0, 0x7b, 0xec, 0x0, 0x7f, 0xff,
+    0xc1, 0xf4, 0xa, 0xf5, 0x0, 0x1e, 0xbe, 0xf0,
+    0xff, 0x80, 0x7c, 0x0, 0x7, 0xd, 0x2c, 0x3f,
+    0xb4, 0x2f, 0x40, 0x1, 0xc3, 0x4b, 0x2e, 0xcf,
+    0xf, 0xe0, 0x0, 0x70, 0xd2, 0xcd, 0xb0, 0xd3,
+    0xfc, 0x0, 0x1f, 0xff, 0xff, 0x2c, 0x2, 0xdb,
+    0x0, 0x7, 0xff, 0xfe, 0x4b, 0x0, 0xf1, 0xe0,
+    0x0, 0x0, 0x0, 0x2, 0xc0, 0x7c, 0x3c, 0x0,
+    0x0, 0x0, 0x0, 0xb0, 0x3d, 0xb, 0x80, 0x0,
+    0x1, 0x64, 0x2c, 0x2f, 0x0, 0xf0, 0x2f, 0xff,
+    0xff, 0xb, 0x1f, 0x0, 0x2e, 0xf, 0xff, 0xa5,
+    0x2, 0xcf, 0x80, 0x3, 0xd0, 0x0, 0x0, 0x0,
+    0xb7, 0xc0, 0x0, 0x78, 0x0, 0x0, 0x0, 0x2c,
+    0x40, 0x0, 0x4,
+
     /* U+9CC6 "鳆" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x6, 0x40, 0x0, 0x78, 0x0, 0x0, 0x0, 0x2,
@@ -166091,34 +176746,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xf, 0xff, 0xff, 0xff, 0xd0, 0x0, 0x0, 0x3,
     0xff, 0xff, 0xff, 0xf4,
 
-    /* U+9CC9 "鳉" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0xb, 0x0, 0x0, 0x90, 0xf, 0x0, 0x0, 0x3,
-    0xc0, 0x0, 0x38, 0x7, 0xc0, 0x0, 0x1, 0xe0,
-    0x0, 0xe, 0x3, 0xd0, 0x0, 0x0, 0xff, 0xf0,
-    0x3, 0x81, 0xff, 0xfe, 0x0, 0x7f, 0xfc, 0x0,
-    0xe0, 0xff, 0xff, 0x80, 0x3c, 0xe, 0x24, 0x38,
-    0xb8, 0x3, 0xc0, 0x2d, 0x7, 0x4f, 0xe, 0xbe,
-    0x2, 0xe0, 0x1f, 0x3, 0xc1, 0xd3, 0xbf, 0xe1,
-    0xf0, 0xf, 0xff, 0xff, 0x3c, 0xe4, 0x3d, 0xf4,
-    0x3, 0xbe, 0xfb, 0xcb, 0x78, 0x2, 0xf8, 0x0,
-    0xd, 0x38, 0xf1, 0xfe, 0x1, 0xf8, 0x0, 0x3,
-    0x4e, 0x3c, 0x27, 0x82, 0xf8, 0x90, 0x0, 0xd3,
-    0x8f, 0x0, 0xe7, 0xf4, 0x3c, 0x0, 0x3f, 0xff,
-    0xc0, 0x38, 0xe0, 0xf, 0x0, 0xf, 0xbe, 0xf0,
-    0x3e, 0x0, 0x3, 0xc0, 0x3, 0x4e, 0x3c, 0x2f,
-    0x9f, 0xff, 0xff, 0x80, 0xd3, 0x8f, 0x3f, 0xe7,
-    0xff, 0xff, 0xe0, 0x34, 0xe3, 0xff, 0x38, 0x40,
-    0xf, 0x0, 0xf, 0xff, 0xff, 0xe, 0x38, 0x3,
-    0xc0, 0x3, 0xff, 0xf8, 0x3, 0x8b, 0x80, 0xf0,
-    0x0, 0x0, 0x0, 0x0, 0xe0, 0xf4, 0x3c, 0x0,
-    0x0, 0x0, 0x0, 0x38, 0xe, 0xf, 0x0, 0x0,
-    0x0, 0x0, 0xe, 0x1, 0x3, 0xc0, 0x1, 0x56,
-    0xbd, 0x3, 0x80, 0x0, 0xf0, 0xf, 0xff, 0xff,
-    0x40, 0xe0, 0x5, 0xf8, 0x2, 0xea, 0x54, 0x0,
-    0x38, 0x7, 0xfd, 0x0, 0x0, 0x0, 0x0, 0xe,
-    0x0, 0xa4, 0x0,
-
     /* U+9CCA "鳊" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x3d, 0x0, 0x0, 0x7, 0x80, 0x0, 0x0, 0x3c,
@@ -166146,6 +176773,35 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x7, 0x40, 0x1, 0xfc, 0x0, 0x0, 0x0,
     0x7, 0x40, 0x0, 0xe4,
 
+    /* U+9CCB "鳋" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7,
+    0xc0, 0x5, 0x55, 0x55, 0x55, 0x0, 0x3, 0xd0,
+    0x2, 0xff, 0xff, 0xff, 0xc0, 0x1, 0xff, 0xfc,
+    0x1d, 0x5e, 0x55, 0xf0, 0x0, 0xfa, 0xbf, 0x7,
+    0x83, 0xc0, 0xb4, 0x0, 0xb8, 0xb, 0x40, 0xf4,
+    0x78, 0xbc, 0x0, 0x7c, 0x3, 0xc0, 0xf, 0x48,
+    0xbc, 0x0, 0x3d, 0x2, 0xd0, 0x0, 0xf4, 0xfc,
+    0x0, 0x2f, 0xff, 0xff, 0x80, 0xf, 0xfc, 0x0,
+    0x1, 0xba, 0xfa, 0xe0, 0xb, 0xff, 0x40, 0x0,
+    0x2c, 0x38, 0x38, 0x6f, 0xe6, 0xfe, 0x40, 0xb,
+    0xe, 0xe, 0xff, 0x45, 0xb, 0xff, 0x42, 0xc3,
+    0x83, 0x94, 0x3, 0xc0, 0x6, 0xc0, 0xbf, 0xff,
+    0xe0, 0x0, 0xf0, 0x0, 0x0, 0x2f, 0xff, 0xf8,
+    0xbf, 0xff, 0xff, 0x80, 0xb, 0xe, 0xe, 0x2e,
+    0xaf, 0xaa, 0xe0, 0x2, 0xc3, 0x83, 0x8b, 0x3,
+    0xc0, 0x38, 0x0, 0xb0, 0xe0, 0xe2, 0xc0, 0xf0,
+    0xe, 0x0, 0x2e, 0xbe, 0xb8, 0xba, 0xbe, 0xab,
+    0x80, 0xb, 0xff, 0xfe, 0x2f, 0xff, 0xff, 0xe0,
+    0x0, 0x0, 0x0, 0x0, 0x3, 0xc0, 0x10, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0xf0, 0x2d, 0x0, 0x0,
+    0x0, 0x14, 0x0, 0x3c, 0x3, 0xc0, 0x16, 0xaf,
+    0xff, 0x0, 0xf, 0x56, 0xf4, 0xf, 0xff, 0xfe,
+    0x9f, 0xff, 0xff, 0xff, 0x2, 0x94, 0x0, 0x3,
+    0xfa, 0xa9, 0x52, 0xd0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x34, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+9CCC "鳌" */
     0x0, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0,
     0x3, 0xc0, 0x0, 0x1e, 0x0, 0x0, 0x5, 0x57,
@@ -166308,6 +176964,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x3, 0xcf, 0x47, 0xe0, 0x0, 0x0, 0x0,
     0x3, 0xc6, 0x0, 0x0,
 
+    /* U+9CD4 "鳔" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xb, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3,
+    0xc0, 0x6, 0xaa, 0xaa, 0xaa, 0x90, 0x2, 0xe5,
+    0x51, 0xff, 0xff, 0xff, 0xf8, 0x0, 0xff, 0xfc,
+    0x0, 0x3c, 0x3c, 0x0, 0x0, 0xfa, 0xaf, 0x0,
+    0xf, 0xf, 0x0, 0x0, 0x7c, 0xb, 0x41, 0xab,
+    0xeb, 0xea, 0x40, 0x3c, 0x3, 0xc0, 0xbf, 0xff,
+    0xff, 0xf0, 0x3e, 0x57, 0xe4, 0x2c, 0x3c, 0x3c,
+    0x3c, 0xe, 0xff, 0xff, 0x8b, 0xf, 0xf, 0xf,
+    0x0, 0x3d, 0xf6, 0xe2, 0xc3, 0xc3, 0xc3, 0xc0,
+    0xe, 0x2c, 0x38, 0xba, 0xfa, 0xfa, 0xf0, 0x3,
+    0x8b, 0xe, 0x2f, 0xff, 0xff, 0xfc, 0x0, 0xe2,
+    0xc3, 0x80, 0x0, 0x0, 0x0, 0x0, 0x3f, 0xff,
+    0xe0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xff, 0xf8,
+    0x7f, 0xff, 0xff, 0xd0, 0x3, 0x8b, 0xe, 0x1f,
+    0xff, 0xff, 0xf8, 0x0, 0xe2, 0xc3, 0x80, 0x0,
+    0x0, 0x0, 0x0, 0x38, 0xb0, 0xe0, 0x0, 0x0,
+    0x0, 0x0, 0xf, 0xbe, 0xba, 0xff, 0xff, 0xff,
+    0xfc, 0x3, 0xff, 0xfe, 0x55, 0x57, 0xe5, 0x55,
+    0x0, 0x0, 0x0, 0x0, 0x90, 0xf0, 0x50, 0x0,
+    0x0, 0x0, 0x0, 0x7c, 0x3c, 0x3c, 0x0, 0x0,
+    0x1, 0x68, 0x7c, 0xf, 0x7, 0xc0, 0x1b, 0xff,
+    0xff, 0x7d, 0x3, 0xc0, 0x7c, 0x7, 0xff, 0xe5,
+    0xbd, 0x1b, 0xf0, 0xb, 0xc0, 0x40, 0x0, 0x1d,
+    0x7, 0xf4, 0x0, 0xa0, 0x0, 0x0, 0x0, 0x0,
+    0x40, 0x0, 0x0,
+
     /* U+9CD5 "鳕" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x1d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c,
@@ -166361,6 +177045,61 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xa8, 0x3f, 0xff,
     0xff, 0xff, 0xff, 0xff, 0xfc,
 
+    /* U+9CD7 "鳗" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xb, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3,
+    0xc0, 0x0, 0xff, 0xff, 0xfe, 0x0, 0x1, 0xf5,
+    0x50, 0x3d, 0x55, 0x5b, 0x80, 0x0, 0xff, 0xfc,
+    0xf, 0x0, 0x0, 0xe0, 0x0, 0x7e, 0xaf, 0x3,
+    0xd5, 0x55, 0xb8, 0x0, 0x3c, 0xb, 0x40, 0xff,
+    0xff, 0xfe, 0x0, 0x3d, 0x3, 0xc0, 0x3c, 0x0,
+    0x3, 0x80, 0x2f, 0xab, 0xf9, 0xf, 0xaa, 0xaa,
+    0xe0, 0xb, 0xff, 0xff, 0x82, 0xaa, 0xaa, 0xa8,
+    0x0, 0x38, 0xb0, 0xe0, 0x0, 0x0, 0x0, 0x0,
+    0xe, 0x1c, 0x38, 0x55, 0x55, 0x55, 0x50, 0x3,
+    0x87, 0xe, 0x3f, 0xff, 0xff, 0xfc, 0x0, 0xe1,
+    0xc3, 0x8f, 0xb, 0xe, 0xf, 0x0, 0x3f, 0xff,
+    0xe3, 0xc2, 0xc3, 0x83, 0xc0, 0xf, 0xbe, 0xb8,
+    0xf5, 0xf5, 0xf5, 0xf0, 0x3, 0x87, 0xe, 0x3f,
+    0xff, 0xff, 0xfc, 0x0, 0xe1, 0xc3, 0x80, 0x0,
+    0x0, 0x0, 0x0, 0x38, 0x70, 0xe0, 0x55, 0x55,
+    0x55, 0x0, 0xf, 0xbe, 0xf8, 0x7f, 0xff, 0xff,
+    0xc0, 0x3, 0xff, 0xfe, 0x6, 0x95, 0x56, 0xf0,
+    0x0, 0x0, 0x0, 0x0, 0xf0, 0x1, 0xf0, 0x0,
+    0x0, 0x0, 0x0, 0x1f, 0x42, 0xf0, 0x0, 0x0,
+    0x1, 0x69, 0x0, 0xfb, 0xf0, 0x0, 0x1b, 0xff,
+    0xff, 0x40, 0x1f, 0xf4, 0x0, 0x7, 0xff, 0xa5,
+    0x1, 0xbf, 0xbf, 0xe4, 0x0, 0x40, 0x0, 0x2f,
+    0xfe, 0x0, 0xbf, 0xf4, 0x0, 0x0, 0xf, 0x90,
+    0x0, 0x0, 0x6c, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
+    /* U+9CD8 "鳘" */
+    0x0, 0x10, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0,
+    0x78, 0x0, 0x0, 0xf, 0x0, 0x0, 0x0, 0xfa,
+    0xaa, 0xa8, 0x2d, 0x0, 0x0, 0x3, 0xff, 0xff,
+    0xfc, 0x3e, 0xaa, 0xa4, 0xf, 0x40, 0x0, 0x0,
+    0xbf, 0xff, 0xfc, 0x3f, 0x55, 0x55, 0x41, 0xf0,
+    0xf, 0x40, 0x1b, 0xff, 0xff, 0xd7, 0xf4, 0xf,
+    0x0, 0x3, 0xc3, 0xc1, 0xd7, 0x7c, 0x2e, 0x0,
+    0x17, 0xd5, 0xa6, 0xd4, 0x2e, 0x3c, 0x0, 0x7f,
+    0xff, 0xff, 0xfe, 0xf, 0xf4, 0x0, 0x7, 0x47,
+    0x82, 0xd0, 0x7, 0xf0, 0x0, 0x7, 0x41, 0xd2,
+    0xc0, 0x1f, 0xfd, 0x0, 0xb, 0xff, 0xff, 0xfe,
+    0xfd, 0x2f, 0xd0, 0x1, 0x55, 0xb7, 0xdb, 0xe0,
+    0x7, 0xf8, 0x0, 0x1, 0xf0, 0x2, 0x0, 0x0,
+    0x60, 0x0, 0xb, 0xff, 0xff, 0xff, 0x0, 0x0,
+    0x0, 0x7f, 0x55, 0x55, 0xbe, 0x0, 0x0, 0x7,
+    0xfd, 0x55, 0x56, 0xfd, 0x54, 0x0, 0x2f, 0xff,
+    0xff, 0xff, 0xff, 0xfe, 0x0, 0x18, 0xb8, 0x0,
+    0x3c, 0x0, 0x2e, 0x0, 0x0, 0xbf, 0xff, 0xff,
+    0xff, 0xfe, 0x0, 0x0, 0xbd, 0x55, 0x7d, 0x55,
+    0x6e, 0x0, 0x0, 0xbd, 0x55, 0x7d, 0x55, 0x6e,
+    0x0, 0x0, 0xbf, 0xff, 0xff, 0xff, 0xfe, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6a,
+    0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xa8, 0x7f, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xfc,
+
     /* U+9CD9 "鳙" */
     0x0, 0x10, 0x0, 0x0, 0x1, 0x80, 0x0, 0x0,
     0xf, 0x0, 0x0, 0x0, 0xf4, 0x0, 0x0, 0x7,
@@ -166389,6 +177128,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x1c, 0xe, 0x3e, 0x0, 0x0, 0x0, 0x4, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+9CDC "鳜" */
+    0x0, 0x24, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x1e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf,
+    0x0, 0x2f, 0xff, 0xff, 0xff, 0xd0, 0x7, 0xff,
+    0x4b, 0xff, 0xff, 0xff, 0xf4, 0x3, 0xfb, 0xd2,
+    0xc0, 0x1, 0x1, 0x0, 0x1, 0xe0, 0xb0, 0xb1,
+    0xc1, 0xd1, 0xc0, 0x0, 0xf0, 0x74, 0x2c, 0x34,
+    0xb0, 0xb0, 0x0, 0xf9, 0x7d, 0x4b, 0xa, 0x34,
+    0x3d, 0x50, 0x3f, 0xff, 0xf2, 0xca, 0xae, 0x4f,
+    0xfd, 0x1, 0xdb, 0x6c, 0xb3, 0xff, 0xe7, 0x57,
+    0x40, 0x71, 0xc7, 0x2c, 0x7, 0x3, 0xc1, 0xc0,
+    0x1c, 0x71, 0xcb, 0x1, 0xc1, 0xe4, 0xb0, 0x7,
+    0x1c, 0x72, 0xcd, 0x73, 0xf7, 0x38, 0x1, 0xff,
+    0xfc, 0xb3, 0x5c, 0xe5, 0xcd, 0x0, 0x7b, 0xef,
+    0x2c, 0xd7, 0x34, 0x71, 0x0, 0x1c, 0x71, 0xcf,
+    0x35, 0xcd, 0x1c, 0x0, 0x7, 0x1c, 0x73, 0xcd,
+    0x73, 0x4b, 0x40, 0x1, 0xc7, 0x1c, 0xf3, 0x6c,
+    0xd2, 0xd0, 0x0, 0x7b, 0xef, 0x3c, 0xff, 0xf4,
+    0xf8, 0x0, 0x1f, 0xff, 0xcf, 0x2b, 0xe9, 0x3f,
+    0x0, 0x0, 0x0, 0x3, 0x80, 0xf0, 0x1d, 0xd0,
+    0x0, 0x0, 0x1, 0xe0, 0x38, 0xb, 0x38, 0x0,
+    0x0, 0x16, 0xb4, 0x1d, 0x3, 0x47, 0x40, 0xbf,
+    0xff, 0xfc, 0xf, 0x3, 0xc0, 0xf0, 0x2f, 0xea,
+    0x6e, 0xb, 0x41, 0xd0, 0x1e, 0x0, 0x0, 0xf,
+    0x47, 0xc1, 0xe0, 0x2, 0xd0, 0x0, 0x3, 0xc1,
+    0xc0, 0x70, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+9CDD "鳝" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x7, 0x80, 0x0, 0x70, 0x0, 0xd0, 0x0, 0x2,
@@ -166474,33 +177241,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x2f, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+9CE1 "鳡" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0,
-    0x7, 0x40, 0x0, 0x0, 0x1c, 0x78, 0x0, 0x3,
-    0xc0, 0x0, 0x0, 0x7, 0x4f, 0x40, 0x1, 0xf5,
-    0x50, 0x0, 0x1, 0xd0, 0xe0, 0x0, 0xff, 0xfc,
-    0x2f, 0xff, 0xff, 0xfe, 0x0, 0xbc, 0x1e, 0xf,
-    0xff, 0xff, 0xff, 0xc0, 0x3c, 0xf, 0x3, 0xc0,
-    0x3, 0x80, 0x0, 0x3d, 0x7, 0x80, 0xf0, 0x0,
-    0xe0, 0x90, 0x2f, 0xab, 0xf9, 0x3e, 0xff, 0xbc,
-    0x38, 0xf, 0xff, 0xff, 0x8f, 0xaa, 0xab, 0x2c,
-    0x1, 0x78, 0xb0, 0xe3, 0xc0, 0x2, 0xcf, 0x0,
-    0xe, 0x2c, 0x38, 0xe0, 0x0, 0x77, 0x40, 0x3,
-    0x8b, 0xe, 0x39, 0xff, 0x5f, 0xc0, 0x0, 0xe2,
-    0xc3, 0x8e, 0x75, 0xd3, 0xe1, 0x0, 0x3f, 0xff,
-    0xe3, 0x9c, 0x34, 0xf0, 0xf0, 0xf, 0xbe, 0xb9,
-    0xd7, 0xd, 0x7c, 0x38, 0x3, 0x8b, 0xe, 0xb5,
-    0xff, 0xbf, 0x6c, 0x0, 0xe2, 0xc3, 0xbc, 0x2a,
-    0xad, 0xfe, 0x0, 0x38, 0xb0, 0xef, 0x0, 0x21,
-    0x1f, 0x0, 0xf, 0xbe, 0xb8, 0x51, 0x4f, 0x0,
-    0x0, 0x3, 0xff, 0xfe, 0x1e, 0xf2, 0xd0, 0x2c,
-    0x0, 0x0, 0x0, 0xb, 0x7c, 0x38, 0x4b, 0x40,
-    0x0, 0x0, 0x3, 0xcf, 0x0, 0x39, 0xe0, 0x0,
-    0x0, 0x55, 0xe3, 0xc0, 0x1d, 0x3c, 0x1f, 0xff,
-    0xfe, 0xb4, 0xb4, 0xb, 0x4f, 0xb, 0xff, 0xe9,
-    0x7c, 0x2f, 0xff, 0xc2, 0xc0, 0x0, 0x0, 0x1,
-    0x2, 0xff, 0xd0, 0x0,
-
     /* U+9CE2 "鳢" */
     0x0, 0x4, 0x0, 0x0, 0x10, 0x10, 0x0, 0x0,
     0x7, 0x80, 0x0, 0xe, 0xe, 0x0, 0x0, 0x3,
@@ -166528,35 +177268,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x6a, 0xbe, 0xaf, 0xaa, 0x80, 0x0, 0x0, 0xf,
     0xff, 0xff, 0xff, 0xf0,
 
-    /* U+9CE4 "鳤" */
-    0x0, 0x8, 0x0, 0x5, 0x0, 0x5, 0x0, 0x0,
-    0xb, 0x40, 0x3, 0xc0, 0x3, 0x80, 0x0, 0x3,
-    0xc0, 0x1, 0xd0, 0x2, 0xd0, 0x0, 0x2, 0xfa,
-    0x90, 0xff, 0xfd, 0xff, 0xfc, 0x1, 0xff, 0xf8,
-    0x7f, 0xff, 0xbf, 0xff, 0x0, 0xf4, 0x1d, 0x3d,
-    0xf0, 0x3c, 0xf0, 0x0, 0xbc, 0xf, 0x1e, 0x2d,
-    0x1d, 0x1e, 0x0, 0x7c, 0x7, 0x4b, 0x3, 0xca,
-    0x2, 0xc0, 0x3f, 0xab, 0xe8, 0x0, 0x3, 0xc0,
-    0x0, 0x1f, 0xff, 0xff, 0x5f, 0xff, 0xff, 0xff,
-    0x41, 0x74, 0xb1, 0xdb, 0xff, 0xff, 0xff, 0xd0,
-    0x1d, 0x2c, 0x76, 0xd0, 0x0, 0x0, 0x74, 0x7,
-    0x4b, 0x1d, 0xb4, 0x0, 0x0, 0x1d, 0x1, 0xd2,
-    0xc7, 0x5b, 0xff, 0xff, 0xfe, 0x40, 0x7f, 0xff,
-    0xd0, 0xff, 0xff, 0xfe, 0x0, 0x1f, 0xbe, 0xf4,
-    0x3c, 0x0, 0x3, 0x80, 0x7, 0x4b, 0x1d, 0xf,
-    0x0, 0x0, 0xe0, 0x1, 0xd2, 0xc7, 0x43, 0xff,
-    0xff, 0xf8, 0x0, 0x74, 0xb1, 0xd0, 0xff, 0xff,
-    0xfd, 0x0, 0x1e, 0xbe, 0xb4, 0x3c, 0x0, 0x0,
-    0x0, 0x7, 0xff, 0xfd, 0xf, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x3, 0xff, 0xff, 0xfc, 0x0,
-    0x0, 0x0, 0x0, 0xff, 0xff, 0xff, 0x0, 0x0,
-    0x0, 0x58, 0x3c, 0x0, 0x2, 0xc0, 0x2f, 0xff,
-    0xff, 0xf, 0x0, 0x0, 0xb0, 0xb, 0xff, 0xe9,
-    0x43, 0xff, 0xff, 0xfc, 0x0, 0x0, 0x0, 0x0,
-    0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0x3c,
-    0x0, 0x2, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0,
-
     /* U+9E1F "鸟" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x3e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3,
@@ -166684,6 +177395,31 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x2, 0xff, 0xf4, 0x0, 0x0, 0x0, 0x1,
     0xff, 0x90, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+9E25 "鸥" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x7c, 0x0, 0x3, 0xff, 0xff, 0xf0, 0xb,
+    0xc0, 0x0, 0x3f, 0xff, 0xff, 0x3f, 0xff, 0xfe,
+    0x3, 0xc0, 0x0, 0x3, 0xfa, 0xab, 0xe0, 0x3c,
+    0x0, 0x0, 0x3c, 0x10, 0x1e, 0x3, 0xdd, 0x2,
+    0xd3, 0xcb, 0x81, 0xe0, 0x3c, 0xf0, 0x3c, 0x3c,
+    0x3e, 0x1d, 0x3, 0xcb, 0x87, 0x83, 0xc0, 0xf1,
+    0xd0, 0x3c, 0x3c, 0xf4, 0x3c, 0x5, 0x2d, 0x3,
+    0xc2, 0xef, 0x3, 0xc0, 0x5b, 0xc0, 0x3c, 0xf,
+    0xe0, 0x3c, 0xf, 0xf8, 0x3, 0xc0, 0xbc, 0x3,
+    0xc0, 0x54, 0x0, 0x3c, 0x7, 0xc0, 0x3c, 0x0,
+    0x0, 0x3, 0xc0, 0xfd, 0x3, 0xff, 0xff, 0xfc,
+    0x3c, 0x1f, 0xf0, 0x3f, 0xff, 0xff, 0xc3, 0xc3,
+    0xdf, 0x0, 0x0, 0x0, 0x3c, 0x3c, 0x7c, 0x78,
+    0x0, 0x0, 0x3, 0xc3, 0xcf, 0x43, 0xc0, 0x0,
+    0x0, 0x7c, 0x3e, 0xe0, 0x2d, 0xff, 0xff, 0xd7,
+    0x83, 0xfc, 0x1, 0xef, 0xff, 0xfd, 0x78, 0x3c,
+    0x40, 0x4, 0x0, 0x0, 0x7, 0x83, 0xc0, 0x0,
+    0x0, 0x0, 0x0, 0xb8, 0x3f, 0xff, 0xff, 0x40,
+    0x0, 0x1f, 0x43, 0xff, 0xff, 0xf8, 0x3, 0xff,
+    0xf0, 0x15, 0x55, 0x55, 0x0, 0x2f, 0xf8, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+9E26 "鸦" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x3d, 0x0, 0x0, 0x0, 0x0,
@@ -166864,56 +177600,58 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x3, 0xc0, 0x0, 0x3, 0xff, 0x80, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0,
 
-    /* U+9E2E "鸮" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x2, 0xd0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x3c, 0x0, 0x0, 0xff, 0xff, 0xc0, 0x7,
-    0xc0, 0x0, 0xf, 0xaa, 0xbc, 0x3f, 0xff, 0xff,
-    0x40, 0xf0, 0x3, 0xc3, 0xea, 0xaa, 0xf4, 0xf,
-    0x0, 0x3c, 0x3c, 0x20, 0xb, 0x40, 0xf0, 0x3,
-    0xc3, 0xcb, 0xc0, 0xb0, 0xf, 0xaa, 0xbc, 0x3c,
-    0x2f, 0xb, 0x0, 0xff, 0xff, 0xc3, 0xc0, 0xf0,
-    0xf0, 0x0, 0x0, 0x0, 0x3c, 0x1, 0xf, 0x0,
-    0x0, 0x0, 0x3, 0xc0, 0x1b, 0xf0, 0x6a, 0xaa,
-    0xaa, 0x3c, 0x7, 0xfc, 0xf, 0xff, 0xff, 0xf7,
-    0xc0, 0x14, 0x0, 0x57, 0xd5, 0x55, 0x3c, 0x0,
-    0x0, 0x0, 0x3c, 0x0, 0x3, 0xff, 0xff, 0xfe,
-    0x3, 0xc0, 0x0, 0x3f, 0xff, 0xff, 0xe0, 0x3d,
-    0x55, 0x40, 0x0, 0x0, 0x1e, 0x7, 0xff, 0xfc,
-    0x0, 0x0, 0x1, 0xe0, 0x6a, 0xab, 0xc0, 0x0,
-    0x0, 0x1d, 0x0, 0x0, 0x3a, 0xff, 0xff, 0xe2,
-    0xd0, 0x0, 0x3, 0xaf, 0xff, 0xff, 0x2d, 0x0,
-    0x0, 0x78, 0x0, 0x0, 0x2, 0xd0, 0x0, 0x7,
-    0x80, 0x0, 0x0, 0x2c, 0x0, 0x0, 0xb4, 0x0,
-    0x0, 0x3, 0xc0, 0xa, 0xbf, 0x0, 0x0, 0xab,
-    0xfc, 0x0, 0xbf, 0xd0, 0x0, 0xf, 0xfe, 0x0,
-    0x1, 0x0, 0x0, 0x0, 0x54, 0x0,
-
-    /* U+9E30 "鸰" */
-    0x0, 0x0, 0x0, 0x0, 0x2, 0x40, 0x0, 0x0,
-    0xf, 0x0, 0x0, 0x2e, 0x0, 0x0, 0x0, 0xbc,
-    0x0, 0x0, 0xf0, 0x0, 0x0, 0x3, 0xfc, 0x0,
-    0xff, 0xff, 0xf4, 0x0, 0x2e, 0xfc, 0x3, 0xff,
-    0xff, 0xd0, 0x0, 0xf0, 0xfc, 0xf, 0x0, 0xb,
-    0x40, 0xb, 0x80, 0xf8, 0x3c, 0xa0, 0x2d, 0x0,
-    0x7c, 0x0, 0xf8, 0xf2, 0xe0, 0xb4, 0x3, 0xd1,
-    0x1, 0xf7, 0xc3, 0xd2, 0xc0, 0x3e, 0x3c, 0x2,
-    0x8f, 0x3, 0x8f, 0x2, 0xf0, 0xbc, 0x0, 0x3c,
-    0x0, 0x3d, 0xf, 0x0, 0xf8, 0x0, 0xf0, 0x1b,
-    0xf0, 0x4, 0x0, 0xf0, 0x3, 0xc0, 0xff, 0x40,
-    0x0, 0x2, 0x40, 0xf, 0x1, 0x40, 0x0, 0x15,
-    0x55, 0x54, 0x3c, 0x0, 0x0, 0x2, 0xff, 0xff,
-    0xf0, 0xff, 0xff, 0xfe, 0xa, 0xaa, 0xaf, 0xc3,
-    0xff, 0xff, 0xf8, 0x0, 0x0, 0x3e, 0x0, 0x0,
-    0x0, 0xe0, 0x0, 0x1, 0xf0, 0x0, 0x0, 0x7,
-    0x80, 0x10, 0xf, 0x40, 0x0, 0x0, 0x1d, 0x2,
-    0xe0, 0xbc, 0x3f, 0xff, 0xfc, 0x74, 0x7, 0xe3,
-    0xc0, 0xff, 0xff, 0xf1, 0xd0, 0x3, 0xfe, 0x0,
-    0x0, 0x0, 0xb, 0x40, 0x3, 0xf0, 0x0, 0x0,
-    0x0, 0x2d, 0x0, 0x3, 0xf0, 0x0, 0x0, 0x0,
-    0xf0, 0x0, 0x3, 0xf0, 0x0, 0xa, 0xff, 0xc0,
-    0x0, 0x3, 0xc0, 0x0, 0x3f, 0xfc, 0x0, 0x0,
-    0x1, 0x0, 0x0, 0x55, 0x0,
+    /* U+9E2F "鸯" */
+    0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x0, 0x1,
+    0xaa, 0xaa, 0xfa, 0xaa, 0xa0, 0x0, 0x0, 0xbf,
+    0xff, 0xff, 0xff, 0xfc, 0x0, 0x0, 0x2e, 0x0,
+    0x1f, 0x0, 0xf, 0x0, 0x0, 0xb, 0x80, 0x7,
+    0x80, 0x3, 0xc0, 0x0, 0x2, 0xe0, 0x3, 0xd0,
+    0x0, 0xf0, 0x0, 0x7f, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xfc, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xfe, 0x0, 0x0, 0x2, 0xf8, 0xf, 0xc0, 0x0,
+    0x0, 0x0, 0x1b, 0xf4, 0x90, 0xbe, 0x0, 0x0,
+    0x1, 0xbf, 0xe0, 0xb4, 0x7, 0xf9, 0x0, 0x1b,
+    0xff, 0x80, 0x3c, 0x0, 0x2f, 0xfe, 0xb, 0xfb,
+    0xff, 0xff, 0xff, 0xff, 0x6f, 0xc1, 0x80, 0xfa,
+    0xaa, 0xaa, 0xab, 0xc0, 0x60, 0x0, 0x3c, 0x2e,
+    0x0, 0x1, 0xf0, 0x0, 0x0, 0xf, 0x2, 0xf8,
+    0x5, 0xf8, 0x0, 0x0, 0x3, 0xc0, 0xf, 0x43,
+    0xf8, 0x0, 0x0, 0x0, 0xf4, 0x0, 0x40, 0x0,
+    0x0, 0x0, 0x0, 0x3f, 0xff, 0xff, 0xff, 0xff,
+    0x80, 0x0, 0xa, 0xaa, 0xaa, 0xaa, 0xab, 0xe0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb8, 0x0,
+    0xbf, 0xff, 0xff, 0xff, 0xfc, 0x2d, 0x0, 0x1f,
+    0xff, 0xff, 0xff, 0xff, 0xf, 0x40, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x7, 0xc0, 0x0, 0x0, 0x0,
+    0x0, 0x7, 0xff, 0xf0, 0x0, 0x0, 0x0, 0x0,
+    0x1, 0xff, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
+    /* U+9E31 "鸱" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x0, 0x6f,
+    0x0, 0x7c, 0x0, 0x0, 0x5b, 0xff, 0xf0, 0xb,
+    0x80, 0x0, 0x3f, 0xff, 0xe4, 0x3f, 0xff, 0xff,
+    0x3, 0xe9, 0x7c, 0x3, 0xff, 0xff, 0xe0, 0x3c,
+    0x3, 0xc0, 0x3c, 0x10, 0x1e, 0x3, 0xc0, 0x3c,
+    0x3, 0xcf, 0x41, 0xe0, 0x3c, 0x3, 0xc0, 0x3c,
+    0x3c, 0x1e, 0x3, 0xc0, 0x3c, 0x3, 0xc1, 0xf1,
+    0xe0, 0x3c, 0x3, 0xc0, 0x3c, 0x9, 0x2d, 0x3,
+    0xc0, 0x3c, 0x3, 0xc0, 0x5b, 0xd0, 0x3f, 0xff,
+    0xff, 0x7c, 0xf, 0xf8, 0x3, 0xff, 0xff, 0xf7,
+    0xc0, 0x54, 0x0, 0x3c, 0x3, 0xc0, 0x3c, 0x0,
+    0x0, 0x3, 0xc0, 0x3c, 0x3, 0xff, 0xff, 0xfc,
+    0x3c, 0x2, 0xd0, 0x3f, 0xff, 0xff, 0xc3, 0xc0,
+    0x2d, 0x0, 0x0, 0x0, 0x3c, 0x3c, 0x2, 0xd0,
+    0x0, 0x0, 0x3, 0xc3, 0xc0, 0x1e, 0x0, 0x0,
+    0x0, 0x3c, 0x3c, 0x10, 0xe0, 0xff, 0xff, 0xf3,
+    0xc3, 0xc7, 0x8f, 0xf, 0xff, 0xfe, 0x3c, 0x3e,
+    0xf4, 0xf0, 0x40, 0x0, 0x7, 0xc3, 0xfe, 0xb,
+    0x6c, 0x0, 0x0, 0x7c, 0x7e, 0x78, 0x7f, 0xc0,
+    0x0, 0x1f, 0x83, 0x83, 0xc3, 0xf8, 0x3, 0xff,
+    0xf0, 0x10, 0x1d, 0x1f, 0x0, 0x2f, 0xf8, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
 
     /* U+9E32 "鸲" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -166997,6 +177735,60 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xf8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+9E36 "鸶" */
+    0x0, 0x0, 0x40, 0x0, 0x1, 0x0, 0x0, 0x0,
+    0xf, 0x40, 0x0, 0x2e, 0x0, 0x0, 0x0, 0xf4,
+    0x4, 0x3, 0xe0, 0x0, 0x0, 0x1f, 0x40, 0xb4,
+    0x7d, 0x1, 0xd0, 0x7, 0xf9, 0x6f, 0x9b, 0xe5,
+    0x7e, 0x0, 0x2f, 0xff, 0xf4, 0xbf, 0xff, 0xd0,
+    0x0, 0x0, 0x3e, 0x0, 0x0, 0xfc, 0x0, 0x0,
+    0xb, 0xd0, 0x0, 0x2f, 0x80, 0x0, 0x3, 0xff,
+    0xff, 0xcf, 0xff, 0xff, 0xc0, 0xa, 0xa9, 0x55,
+    0x1a, 0x55, 0x54, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xf, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xfe, 0x2a, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xa4,
+    0x0, 0x0, 0xe, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x7c, 0x0, 0x0, 0x0, 0x0, 0x1f, 0xff,
+    0xff, 0xff, 0xfc, 0x0, 0x0, 0x79, 0x55, 0x55,
+    0x55, 0xf0, 0x0, 0x1, 0xe0, 0xb8, 0x0, 0x3,
+    0xc0, 0x0, 0x7, 0x80, 0xbd, 0xa, 0xbe, 0x0,
+    0x0, 0x1e, 0x0, 0x38, 0x2a, 0x50, 0x0, 0x0,
+    0x7e, 0xaa, 0xaa, 0xaa, 0xaa, 0x80, 0x1, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x3c, 0xa, 0xaa, 0xaa, 0xaa, 0xaa,
+    0x80, 0xe0, 0x7f, 0xff, 0xff, 0xff, 0xff, 0x7,
+    0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2d, 0x0,
+    0x0, 0x0, 0x0, 0x2, 0xab, 0xf0, 0x0, 0x0,
+    0x0, 0x0, 0xf, 0xfe, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
+    /* U+9E37 "鸷" */
+    0x0, 0xe, 0x0, 0x3, 0x80, 0x0, 0x0, 0x0,
+    0xf, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x1a, 0xaf,
+    0xa9, 0x6b, 0xea, 0xa8, 0x0, 0x2f, 0xff, 0xfe,
+    0xff, 0xff, 0xfc, 0x0, 0x0, 0xf, 0x0, 0x17,
+    0xd5, 0x7c, 0x0, 0x0, 0xf, 0x4, 0x3, 0xc0,
+    0x2c, 0x0, 0x0, 0x6f, 0xfd, 0xff, 0x80, 0x2c,
+    0x0, 0xbf, 0xff, 0xe4, 0xbf, 0xd0, 0x2c, 0x0,
+    0x7e, 0x9f, 0x0, 0x7f, 0xfe, 0x2d, 0xd, 0x0,
+    0xf, 0x7, 0xf8, 0x2f, 0x5e, 0x1d, 0x5, 0x6f,
+    0x1f, 0xd0, 0x2, 0xf, 0x7c, 0xb, 0xfd, 0x9,
+    0xb8, 0x0, 0xb, 0xf8, 0x1, 0x50, 0x0, 0xf4,
+    0x0, 0x1, 0xa0, 0x0, 0x3f, 0xff, 0xff, 0xff,
+    0xf0, 0x0, 0x0, 0x3e, 0xaa, 0xaa, 0xaa, 0xf0,
+    0x0, 0x0, 0x3c, 0x1d, 0x0, 0x0, 0xf0, 0x0,
+    0x0, 0x3c, 0x1f, 0xd0, 0x16, 0xe0, 0x0, 0x0,
+    0x3c, 0x1, 0xf0, 0xff, 0x80, 0x0, 0x0, 0x3c,
+    0x0, 0x10, 0x50, 0x0, 0x0, 0x0, 0x3f, 0xff,
+    0xff, 0xff, 0xff, 0xc0, 0x0, 0x2a, 0xaa, 0xaa,
+    0xaa, 0xaf, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xb, 0xc0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xb,
+    0x80, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xf, 0x80,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x1f, 0x40, 0x0,
+    0x0, 0x0, 0x0, 0xaf, 0xff, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xff, 0xf8, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
     /* U+9E38 "鸸" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x7c, 0x0, 0x0, 0x0, 0x0,
@@ -167073,59 +177865,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xf, 0x0, 0xb4, 0x0, 0xf, 0xfe, 0x0, 0x3c,
     0x2, 0xd0, 0x0, 0x2e, 0x90,
 
-    /* U+9E3B "鸻" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x10, 0x0, 0x0, 0x7, 0x80, 0x0, 0x2, 0xe0,
-    0x0, 0x0, 0x2d, 0x0, 0x0, 0xf, 0x2f, 0xfe,
-    0x0, 0xf0, 0x0, 0x0, 0xf8, 0xbf, 0xf8, 0xbf,
-    0xff, 0xf0, 0x7, 0xc0, 0x0, 0x2, 0xff, 0xff,
-    0x80, 0x3c, 0x0, 0x0, 0xb, 0x4, 0xe, 0x3,
-    0xd0, 0x0, 0x0, 0x2c, 0xb4, 0x78, 0x2e, 0x1e,
-    0x0, 0x0, 0xb0, 0xf1, 0xe0, 0x20, 0xf4, 0x0,
-    0x2, 0xc1, 0xd7, 0x80, 0x7, 0xc0, 0x0, 0xb,
-    0x1, 0x1e, 0x0, 0x3d, 0x7f, 0xff, 0x6c, 0x6,
-    0xf4, 0x2, 0xf1, 0xff, 0xfd, 0xb0, 0x3f, 0x80,
-    0x1f, 0xc0, 0xf, 0x2, 0xc0, 0x50, 0x0, 0xff,
-    0x0, 0x3c, 0xb, 0x0, 0x0, 0xf, 0xbc, 0x0,
-    0xf0, 0x2f, 0xff, 0xff, 0x7c, 0xf0, 0x3, 0xc0,
-    0xbf, 0xff, 0xfc, 0x43, 0xc0, 0xf, 0x0, 0x0,
-    0x0, 0xf0, 0xf, 0x0, 0x3c, 0x0, 0x0, 0x3,
-    0xc0, 0x3c, 0x0, 0xf0, 0x0, 0x0, 0xe, 0x0,
-    0xf0, 0x3, 0xc3, 0xff, 0xfc, 0x38, 0x3, 0xc0,
-    0xf, 0xf, 0xff, 0xf0, 0xe0, 0xf, 0x0, 0x3c,
-    0x0, 0x0, 0x3, 0x80, 0x3c, 0x0, 0xf0, 0x0,
-    0x0, 0x1e, 0x0, 0xf0, 0x3, 0xc0, 0x0, 0x0,
-    0x74, 0x3, 0xc1, 0xbf, 0x0, 0x0, 0x1b, 0xd0,
-    0xf, 0xb, 0xf8, 0x0, 0x1f, 0xff, 0x0, 0x3c,
-    0xa, 0x0, 0x0, 0x3f, 0x90, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0,
-
-    /* U+9E3C "鸼" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0xb8, 0x0, 0x0, 0xf0, 0x0, 0x0, 0xf, 0x40,
-    0x0, 0x1e, 0x0, 0x0, 0x1, 0xf0, 0x0, 0x3,
-    0xd0, 0x0, 0x3, 0xff, 0xff, 0xf, 0xff, 0xff,
-    0x80, 0x3f, 0xff, 0xf0, 0xfa, 0xaa, 0xf8, 0x3,
-    0xc0, 0xf, 0xf, 0x4, 0x7, 0x80, 0x3c, 0x40,
-    0xf0, 0xf1, 0xe0, 0x78, 0x3, 0xcf, 0xf, 0xf,
-    0xf, 0x4b, 0x40, 0x3c, 0xb4, 0xf0, 0xf0, 0x3c,
-    0xb4, 0x3, 0xc3, 0xcf, 0xf, 0x0, 0xb, 0x40,
-    0x3c, 0x2c, 0xf0, 0xf0, 0x1, 0xf0, 0x3, 0xc0,
-    0xf, 0xf, 0x3, 0xfe, 0x2, 0xbe, 0xaa, 0xf0,
-    0xf0, 0x19, 0x0, 0x7f, 0xff, 0xff, 0xf, 0x0,
-    0x0, 0x1, 0x7d, 0x55, 0xf0, 0xff, 0xff, 0xff,
-    0x3, 0xc0, 0xf, 0xf, 0xff, 0xff, 0xf0, 0x3d,
-    0xe0, 0xf0, 0x0, 0x0, 0xf, 0x3, 0xcf, 0xf,
-    0x0, 0x0, 0x0, 0xf0, 0x78, 0x78, 0xf0, 0x0,
-    0x0, 0x1e, 0x7, 0x83, 0xcf, 0x3f, 0xff, 0xf1,
-    0xe0, 0xb4, 0x24, 0xf3, 0xff, 0xff, 0x5e, 0xf,
-    0x0, 0xf, 0x0, 0x0, 0x1, 0xe0, 0xf0, 0x0,
-    0xf0, 0x0, 0x0, 0x2e, 0x2e, 0x0, 0x1f, 0x0,
-    0x0, 0x3, 0xd3, 0xd0, 0x2f, 0xf0, 0x0, 0xaa,
-    0xfc, 0xbc, 0x3, 0xfd, 0x0, 0xb, 0xff, 0x47,
-    0x40, 0x14, 0x0, 0x0, 0x55, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x0,
-
     /* U+9E3D "鸽" */
     0x0, 0x2, 0x40, 0x0, 0x6, 0x40, 0x0, 0x0,
     0x1f, 0x0, 0x0, 0x3d, 0x0, 0x0, 0x0, 0xfc,
@@ -167573,31 +178312,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x74, 0xb8, 0x0, 0xbf, 0x90, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
-    /* U+9E50 "鹐" */
-    0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1,
-    0xe0, 0x0, 0x0, 0xb8, 0x0, 0x0, 0x2d, 0x0,
-    0x0, 0xf, 0x0, 0x0, 0x3, 0xc0, 0x0, 0x1,
-    0xf0, 0x0, 0x0, 0xbf, 0xff, 0xc3, 0xff, 0xff,
-    0xc0, 0xf, 0xff, 0xfc, 0x3e, 0xaa, 0xbc, 0x2,
-    0xe0, 0xf, 0x43, 0xc0, 0x3, 0xc0, 0x7c, 0x1,
-    0xf0, 0x3c, 0xf0, 0x3c, 0xf, 0x40, 0x3d, 0x3,
-    0xc7, 0x83, 0xc3, 0xf0, 0xb, 0x80, 0x3c, 0x3d,
-    0x38, 0x1c, 0x0, 0x60, 0x3, 0xc0, 0x83, 0x80,
-    0x7, 0xc0, 0x0, 0x3c, 0x6, 0xf8, 0xb, 0xfc,
-    0xff, 0xc3, 0xc0, 0xff, 0x0, 0xfd, 0xf, 0xfc,
-    0x3c, 0x5, 0x0, 0xf, 0x0, 0x3, 0xc3, 0xc0,
-    0x0, 0x0, 0xf0, 0x0, 0x3c, 0x3f, 0xff, 0xff,
-    0xf, 0x0, 0x3, 0xc3, 0xff, 0xff, 0xf0, 0xf0,
-    0x0, 0x3c, 0x0, 0x0, 0xf, 0xf, 0xfc, 0xff,
-    0xc0, 0x0, 0x0, 0xf0, 0xff, 0xcf, 0xfc, 0x0,
-    0x0, 0xf, 0xf, 0x0, 0x3, 0xcf, 0xff, 0xf4,
-    0xe0, 0xf0, 0x0, 0x3c, 0xff, 0xff, 0x8e, 0xf,
-    0x0, 0x3, 0xc0, 0x0, 0x1, 0xe0, 0xf0, 0x0,
-    0x3c, 0x0, 0x0, 0x1e, 0xf, 0x0, 0x3, 0xc0,
-    0x0, 0x2, 0xe0, 0xff, 0xff, 0xfc, 0x0, 0x15,
-    0xbd, 0xf, 0xff, 0xff, 0xc0, 0xb, 0xff, 0x80,
-    0x0, 0x0, 0x0, 0x0, 0x6a, 0x40,
-
     /* U+9E51 "鹑" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x60, 0x0, 0x0, 0x2e, 0x0, 0x0, 0x2, 0xe0,
@@ -167755,6 +178469,35 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xff, 0xf8, 0x0, 0xbf, 0x80, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+9E5C "鹜" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0xe0, 0x0, 0x0, 0x3f,
+    0xff, 0xff, 0xc0, 0xf4, 0x0, 0x0, 0xa, 0xfa,
+    0xaf, 0xf0, 0x7c, 0x0, 0x0, 0x0, 0x3d, 0x7,
+    0xe0, 0x3f, 0xff, 0xfe, 0x0, 0x3, 0xeb, 0xd0,
+    0x3e, 0xaa, 0xbe, 0x40, 0x0, 0x2f, 0x80, 0x2f,
+    0xc0, 0x3c, 0x0, 0x3f, 0xff, 0xff, 0xfa, 0xb8,
+    0x1e, 0x0, 0xa, 0xaf, 0xfe, 0xbd, 0xf, 0x9f,
+    0x0, 0x0, 0xb, 0x8b, 0xf, 0x0, 0xff, 0x0,
+    0x0, 0x1f, 0x82, 0xc7, 0x0, 0x7f, 0xe0, 0x0,
+    0x7f, 0x0, 0xf0, 0x6, 0xfd, 0x7f, 0x90, 0x2d,
+    0xf, 0xf8, 0xe7, 0xf4, 0x0, 0xbf, 0x0, 0x1,
+    0x50, 0x78, 0x40, 0x0, 0x1, 0x40, 0x0, 0xbf,
+    0xff, 0xff, 0xff, 0xc0, 0x0, 0x0, 0x3e, 0xaa,
+    0xaa, 0xaa, 0xf0, 0x0, 0x0, 0xf, 0x43, 0x80,
+    0x0, 0x3c, 0x0, 0x0, 0x3, 0xd1, 0xfd, 0x0,
+    0x2e, 0x0, 0x0, 0x0, 0xf4, 0x7, 0xd3, 0xfe,
+    0x0, 0x0, 0x0, 0x3d, 0x0, 0x20, 0x0, 0x0,
+    0x0, 0x0, 0xf, 0xea, 0xaa, 0xaa, 0xaa, 0xa0,
+    0x0, 0x2, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0x0, 0xa,
+    0xaa, 0xaa, 0xaa, 0xaa, 0x43, 0xc0, 0x7, 0xff,
+    0xff, 0xff, 0xff, 0xe1, 0xf0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0xb8, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xab, 0xfd, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x3f, 0xf9, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+9E5E "鹞" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x1e, 0x0, 0x0, 0x0, 0x56,
@@ -168016,32 +178759,58 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xe0, 0x3c, 0x0, 0x3f, 0xe0, 0x7, 0xfe, 0x0,
     0xf0, 0x0, 0xb9, 0x0, 0x0, 0x0, 0x0,
 
-    /* U+9E6E "鹮" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x90, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0xf0, 0x0, 0x7, 0xff,
-    0xff, 0xfd, 0x2, 0xe0, 0x0, 0x7, 0x9f, 0x5f,
-    0x5d, 0x2b, 0xfa, 0xa0, 0x7, 0x4b, 0xe, 0xd,
-    0x7f, 0xff, 0xf0, 0x7, 0x4b, 0xe, 0xd, 0x78,
-    0x0, 0xf0, 0x7, 0xaf, 0xaf, 0xad, 0x78, 0xc0,
-    0xf0, 0x7, 0xff, 0xff, 0xfd, 0x78, 0xf0, 0xf0,
-    0x0, 0x0, 0x0, 0x0, 0x78, 0x78, 0xf0, 0x0,
-    0x0, 0x0, 0x0, 0x78, 0x3c, 0xf0, 0x1f, 0xff,
-    0xff, 0xff, 0x78, 0x14, 0xf0, 0x1a, 0xaa, 0xaa,
-    0xaa, 0x78, 0x6, 0xf0, 0x0, 0x0, 0x0, 0x0,
-    0x78, 0x3f, 0xd0, 0x2, 0xaa, 0xaa, 0xa4, 0x78,
-    0x19, 0x0, 0x3, 0xff, 0xff, 0xfc, 0x78, 0x0,
-    0x0, 0x3, 0xc0, 0x0, 0x3c, 0x7f, 0xff, 0xfd,
-    0x3, 0xc0, 0x0, 0x3c, 0x7f, 0xff, 0xfd, 0x3,
-    0xff, 0xff, 0xfc, 0x0, 0x0, 0x2d, 0x2, 0xab,
-    0xfa, 0xa8, 0x0, 0x0, 0x2d, 0x0, 0x7, 0xc0,
-    0x8, 0x0, 0x0, 0x2c, 0x0, 0x1f, 0x64, 0x3e,
-    0xbf, 0xff, 0x2c, 0x0, 0xbd, 0x3e, 0xf8, 0x7f,
-    0xff, 0x3c, 0x3, 0xfd, 0xf, 0xd0, 0x0, 0x0,
-    0x3c, 0x2f, 0xad, 0x3, 0xf0, 0x0, 0x0, 0x3c,
-    0x3d, 0x1d, 0x1c, 0xbd, 0x0, 0x0, 0x3c, 0x0,
-    0x1e, 0xfc, 0x2f, 0x0, 0x5a, 0xf8, 0x0, 0x3f,
-    0xe0, 0x4, 0x0, 0xbf, 0xf0, 0x0, 0x3d, 0x0,
-    0x0, 0x0, 0x65, 0x0, 0x0, 0x0, 0x0, 0x0,
+    /* U+9E6D "鹭" */
+    0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xb, 0x80, 0x0, 0x0, 0xbf, 0xff,
+    0xc0, 0xbe, 0xaa, 0xa4, 0x2, 0xd5, 0x5f, 0xf,
+    0xff, 0xff, 0xf0, 0xb, 0x0, 0x2d, 0xff, 0x80,
+    0x2f, 0x0, 0x2f, 0xff, 0xf3, 0x7, 0xeb, 0xe0,
+    0x0, 0x15, 0xb9, 0x40, 0x1b, 0xfe, 0x40, 0x0,
+    0x41, 0xc0, 0x7f, 0xf9, 0x2f, 0xfa, 0xb, 0x7,
+    0xfe, 0xe4, 0x0, 0x1, 0xb8, 0x2c, 0x1e, 0x50,
+    0xbf, 0xff, 0xfc, 0x0, 0xb0, 0x70, 0x2, 0xd5,
+    0x55, 0xf0, 0x2, 0xc2, 0xea, 0xcb, 0x0, 0x2,
+    0xc0, 0xbf, 0xff, 0xff, 0x2d, 0x55, 0x5f, 0x2,
+    0xfa, 0x54, 0x19, 0xbf, 0xff, 0xfc, 0x0, 0x0,
+    0x0, 0xf4, 0x0, 0x0, 0x0, 0x0, 0x1a, 0xab,
+    0xea, 0xaa, 0xa8, 0x0, 0x0, 0x7f, 0xff, 0xff,
+    0xff, 0xf0, 0x0, 0x1, 0xd0, 0x90, 0x0, 0x3,
+    0xc0, 0x0, 0x7, 0x46, 0xfe, 0x5, 0xbe, 0x0,
+    0x0, 0x1d, 0x0, 0x6c, 0x3e, 0x90, 0x0, 0x0,
+    0x7a, 0xaa, 0xaa, 0xaa, 0xaa, 0x40, 0x1, 0xff,
+    0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x38, 0x6, 0xaa, 0xaa, 0xaa, 0xaa,
+    0x81, 0xd0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xb,
+    0x40, 0x0, 0x0, 0x0, 0x1, 0xaa, 0xfc, 0x0,
+    0x0, 0x0, 0x0, 0xb, 0xff, 0x80, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0,
+
+    /* U+9E70 "鹰" */
+    0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x7, 0x80, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x3, 0xc0, 0x0, 0x0, 0x0, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xfd, 0x0, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xfd, 0x0, 0xf0, 0x1c, 0xe, 0x2,
+    0xc0, 0x0, 0x0, 0xf0, 0x3c, 0x2e, 0x56, 0xe5,
+    0x54, 0x0, 0xf0, 0xb4, 0x7f, 0xff, 0xff, 0xf8,
+    0x0, 0xf1, 0xf0, 0xfc, 0x3, 0xc0, 0x0, 0x0,
+    0xf7, 0xf3, 0xff, 0xff, 0xff, 0xf0, 0x0, 0xff,
+    0xfb, 0x7c, 0x3, 0xc0, 0x0, 0x0, 0xf8, 0xb1,
+    0x3f, 0xff, 0xff, 0xf0, 0x0, 0xf0, 0xb0, 0x3d,
+    0x57, 0xd5, 0x50, 0x0, 0xf0, 0xb0, 0x3d, 0x57,
+    0xd5, 0x54, 0x0, 0xf0, 0xb0, 0x3f, 0xff, 0xff,
+    0xfe, 0x0, 0xf0, 0x60, 0x1, 0xd0, 0x0, 0x0,
+    0x0, 0xf0, 0x15, 0x57, 0xe5, 0x55, 0x0, 0x0,
+    0xf0, 0x3f, 0xff, 0xff, 0xff, 0x40, 0x0, 0xf0,
+    0x38, 0x2d, 0x0, 0xb, 0x40, 0x1, 0xe0, 0x38,
+    0xb, 0xd1, 0xff, 0x0, 0x2, 0xe0, 0x38, 0x0,
+    0x80, 0x54, 0x0, 0x2, 0xd0, 0x3f, 0xff, 0xff,
+    0xff, 0xf8, 0x3, 0xc0, 0x15, 0x55, 0x55, 0x55,
+    0xb8, 0x7, 0x85, 0x55, 0x55, 0x55, 0x54, 0x78,
+    0xf, 0x4f, 0xff, 0xff, 0xff, 0xf8, 0xb4, 0x1f,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0xf4, 0x3e, 0x0,
+    0x0, 0x0, 0x0, 0xab, 0xf0, 0x2c, 0x0, 0x0,
+    0x0, 0x0, 0xff, 0x80, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
     /* U+9E71 "鹱" */
@@ -168099,6 +178868,30 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xaa, 0xaa, 0x80, 0x7f, 0xe0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x14, 0x0,
 
+    /* U+9E7E "鹾" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf,
+    0x0, 0x0, 0xb0, 0x0, 0xd0, 0x0, 0xf0, 0x0,
+    0x7, 0xc0, 0x2d, 0x0, 0xf, 0x0, 0x0, 0x2d,
+    0x3, 0xc0, 0x0, 0xff, 0xfc, 0x0, 0xd0, 0xf4,
+    0x0, 0xf, 0xff, 0xcb, 0xff, 0xff, 0xfe, 0x0,
+    0xf0, 0x0, 0x7f, 0xff, 0xff, 0xd0, 0xf, 0x0,
+    0x0, 0x2, 0xd0, 0x0, 0x0, 0xf0, 0x0, 0x0,
+    0x2c, 0x0, 0xf, 0xff, 0xff, 0x83, 0xff, 0xff,
+    0xf8, 0xff, 0xff, 0xf8, 0x3f, 0xff, 0xff, 0xcf,
+    0x0, 0x3, 0x80, 0x3, 0xc0, 0x0, 0xf7, 0x3,
+    0x78, 0x0, 0x38, 0x0, 0xf, 0xb4, 0xb7, 0x80,
+    0x7, 0x80, 0x0, 0xf3, 0xcf, 0x38, 0xff, 0xff,
+    0xff, 0xff, 0x1e, 0xd3, 0x8f, 0xff, 0xff, 0xff,
+    0xf0, 0xfc, 0x38, 0x2, 0xe0, 0x0, 0xf, 0xb,
+    0x83, 0x80, 0x3c, 0x0, 0x0, 0xf0, 0xfc, 0x38,
+    0xb, 0x80, 0x0, 0xf, 0x1f, 0xd3, 0x80, 0xff,
+    0xff, 0xfc, 0xf3, 0xcf, 0x38, 0x3f, 0xaf, 0xea,
+    0x8f, 0xb4, 0x77, 0x8b, 0x80, 0x78, 0x0, 0xfa,
+    0x3, 0xba, 0xf0, 0x7, 0x80, 0xf, 0x0, 0x3,
+    0xac, 0x0, 0x78, 0x0, 0xf5, 0x55, 0x78, 0x0,
+    0x7, 0x80, 0xf, 0xff, 0xff, 0x87, 0xff, 0xff,
+    0xff, 0xaa, 0xaa, 0xa4, 0x7f, 0xff, 0xff, 0xf0,
+
     /* U+9E7F "鹿" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0xf, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -168126,6 +178919,119 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xbe, 0x40, 0xb, 0xff, 0xf4, 0x4, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+9E82 "麂" */
+    0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xf, 0x40, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x7, 0xc0, 0x0, 0x0, 0x0, 0xbf, 0xff,
+    0xff, 0xff, 0xff, 0xfd, 0x0, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xfd, 0x0, 0xf0, 0x7, 0xc0, 0x2e,
+    0x0, 0x0, 0x0, 0xf0, 0x3, 0xc0, 0x2e, 0x0,
+    0x0, 0x0, 0xfa, 0xab, 0xea, 0xbf, 0xaa, 0xa0,
+    0x0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x0,
+    0xf0, 0x3, 0xc0, 0x2e, 0x0, 0xf0, 0x0, 0xf0,
+    0x3, 0xc0, 0x2e, 0x0, 0xf0, 0x0, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xf0, 0x0, 0xfa, 0xbe, 0xaa,
+    0xbe, 0xaa, 0xa0, 0x0, 0xf0, 0x3c, 0x0, 0x3c,
+    0x1, 0x90, 0x0, 0xf0, 0x3f, 0xff, 0x3e, 0xbf,
+    0xd0, 0x0, 0xf0, 0x3e, 0xaa, 0x3f, 0xe4, 0x10,
+    0x0, 0xf0, 0x3c, 0x0, 0x3c, 0x0, 0x3c, 0x0,
+    0xf0, 0x3c, 0x5b, 0x3d, 0x0, 0x3c, 0x0, 0xf0,
+    0xbf, 0xff, 0x2f, 0xff, 0xf8, 0x1, 0xf0, 0xb9,
+    0x40, 0x6, 0xaa, 0x90, 0x2, 0xe0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x3, 0xd0, 0xf, 0xff, 0xff,
+    0x80, 0x0, 0x3, 0xc0, 0xf, 0xea, 0xaf, 0x80,
+    0x24, 0xb, 0xc0, 0xf, 0x0, 0x7, 0x80, 0x3c,
+    0xf, 0x40, 0x2f, 0x0, 0x7, 0x80, 0x3c, 0x2f,
+    0x1, 0xfc, 0x0, 0x7, 0xff, 0xf8, 0x3d, 0x1f,
+    0xe0, 0x0, 0x2, 0xff, 0xe0, 0x4, 0xe, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
+    /* U+9E87 "麇" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x3, 0xd0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xbc, 0x0, 0x0, 0x0, 0x2, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xf4, 0x0, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xfe, 0x0, 0x3c, 0x0, 0xf0,
+    0x7, 0x80, 0x0, 0x0, 0xf, 0xaa, 0xbe, 0xaa,
+    0xfa, 0xa9, 0x0, 0x3, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xc0, 0x0, 0xf0, 0x3, 0xc0, 0x1e, 0x0,
+    0xf0, 0x0, 0x3e, 0xaa, 0xfa, 0xab, 0xea, 0xbc,
+    0x0, 0xf, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0,
+    0x3, 0xc0, 0xf0, 0x0, 0xb0, 0x1, 0x0, 0x0,
+    0xf0, 0x3d, 0x55, 0x2c, 0x1b, 0xd0, 0x0, 0x3c,
+    0xf, 0xff, 0xdb, 0xff, 0x91, 0x0, 0xf, 0x3,
+    0xc0, 0x2, 0xd0, 0x1, 0xe0, 0x3, 0xc0, 0xfb,
+    0xfd, 0xbe, 0xaa, 0xf4, 0x0, 0xf0, 0xbf, 0xa9,
+    0xb, 0xff, 0xf8, 0x0, 0x3c, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x1f, 0xb, 0xff, 0xff, 0xff,
+    0xfc, 0x0, 0x7, 0x82, 0xfe, 0xab, 0xe9, 0x55,
+    0x0, 0x2, 0xe0, 0x0, 0x0, 0xe0, 0x0, 0x0,
+    0x0, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0,
+    0x3c, 0x6a, 0xaa, 0xff, 0xfa, 0xaa, 0x80, 0x2f,
+    0x0, 0x1, 0xff, 0xfe, 0x0, 0x0, 0xf, 0x40,
+    0x1b, 0xf5, 0xe2, 0xfd, 0x0, 0x7, 0xc2, 0xff,
+    0xd0, 0x38, 0xb, 0xfe, 0x43, 0xe1, 0xfe, 0x0,
+    0xe, 0x0, 0x1b, 0xf0, 0xb0, 0x10, 0x0, 0x3,
+    0x80, 0x0, 0x14, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
+    /* U+9E88 "麈" */
+    0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xf, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xf, 0x80, 0x0, 0x0, 0x0, 0xaa, 0xaa,
+    0xaf, 0xea, 0xaa, 0xa8, 0x0, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xfc, 0x0, 0xf0, 0x7, 0x80, 0x2c,
+    0x0, 0x0, 0x0, 0xf0, 0x7, 0x80, 0x2c, 0x0,
+    0x0, 0x0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0,
+    0x0, 0xfa, 0xab, 0xea, 0xbe, 0xaa, 0xe0, 0x0,
+    0xf0, 0x7, 0x80, 0x2c, 0x1, 0xe0, 0x0, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xe0, 0x0, 0xfa, 0xbe,
+    0xaa, 0xbe, 0xaa, 0x90, 0x0, 0xf0, 0x78, 0x0,
+    0x3c, 0xb, 0xc0, 0x0, 0xf0, 0x7f, 0xff, 0x3e,
+    0xff, 0x80, 0x0, 0xf0, 0x7d, 0x55, 0x3e, 0x90,
+    0x38, 0x0, 0xf0, 0x78, 0x56, 0x3c, 0x0, 0x78,
+    0x0, 0xf0, 0xff, 0xff, 0x2f, 0xff, 0xf4, 0x0,
+    0xf0, 0xa9, 0x1, 0xc5, 0xaa, 0x40, 0x1, 0xe0,
+    0x0, 0x1, 0xd0, 0x0, 0x0, 0x1, 0xe1, 0xaa,
+    0xaa, 0xfa, 0xaa, 0xa0, 0x2, 0xd3, 0xff, 0xff,
+    0xff, 0xff, 0xf0, 0x3, 0xd0, 0x0, 0x1, 0xe0,
+    0x0, 0x0, 0x3, 0xc0, 0xaa, 0xaa, 0xfa, 0xaa,
+    0x80, 0xb, 0x81, 0xff, 0xff, 0xff, 0xff, 0xd0,
+    0xf, 0x40, 0x0, 0x1, 0xe0, 0x0, 0x0, 0x2f,
+    0xa, 0xaa, 0xaa, 0xfa, 0xaa, 0xa9, 0x3d, 0x1f,
+    0xff, 0xff, 0xff, 0xff, 0xfe, 0x1c, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
+    /* U+9E8B "麋" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xb8, 0x0, 0x0, 0x0, 0x2, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xf4, 0x0, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xfd, 0x0, 0x3c, 0x0, 0xf0,
+    0x3, 0x80, 0x0, 0x0, 0xf, 0x95, 0x7d, 0x56,
+    0xf5, 0x55, 0x0, 0x3, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xc0, 0x0, 0xf0, 0x3, 0xc0, 0x1e, 0x0,
+    0xf0, 0x0, 0x3e, 0x55, 0xf5, 0x5b, 0xd5, 0xbc,
+    0x0, 0xf, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0,
+    0x3, 0xc0, 0xf0, 0x0, 0xb4, 0x1, 0x0, 0x0,
+    0xf0, 0x3d, 0x55, 0x2d, 0x1b, 0xd0, 0x0, 0x3c,
+    0xf, 0xff, 0xcb, 0xff, 0x94, 0x0, 0xf, 0x3,
+    0xc0, 0x12, 0xe0, 0x2, 0xc0, 0x3, 0xc0, 0xfb,
+    0xfd, 0xbe, 0xaa, 0xf0, 0x0, 0xf0, 0xff, 0xe9,
+    0xf, 0xff, 0xf4, 0x0, 0x3c, 0x7, 0x0, 0x38,
+    0x2, 0xc0, 0x0, 0x1f, 0x1, 0xf4, 0xe, 0x2,
+    0xf0, 0x0, 0x7, 0xc0, 0xf, 0x43, 0x83, 0xe0,
+    0x0, 0x2, 0xe6, 0xaa, 0xea, 0xfa, 0xfa, 0xa8,
+    0x0, 0xf6, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0,
+    0x7c, 0x0, 0x1, 0xff, 0xe0, 0x0, 0x0, 0x2f,
+    0x0, 0x7, 0xfb, 0xef, 0x80, 0x0, 0xf, 0x40,
+    0x6f, 0xf0, 0xe1, 0xfe, 0x40, 0xb, 0xc6, 0xff,
+    0x80, 0x38, 0x7, 0xfe, 0x43, 0xe2, 0xfd, 0x0,
+    0xe, 0x0, 0xb, 0xf0, 0x70, 0x10, 0x0, 0x3,
+    0x80, 0x0, 0x14, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+9E92 "麒" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x3c, 0x0, 0xb, 0x0, 0x38, 0x0, 0x0,
@@ -168155,6 +179061,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+9E93 "麓" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x38, 0x0, 0x0, 0xb4, 0x0, 0x0, 0x0,
+    0xe, 0x0, 0x0, 0x2d, 0x0, 0x0, 0x2f, 0xff,
+    0xff, 0xcf, 0xff, 0xff, 0xe0, 0xb, 0xff, 0xff,
+    0xf3, 0xff, 0xff, 0xfc, 0x0, 0x2, 0xf8, 0x0,
+    0x3, 0xfc, 0x0, 0x0, 0x2, 0xff, 0xf0, 0x3,
+    0xff, 0xd0, 0x0, 0x7, 0xe7, 0xef, 0x4b, 0xdb,
+    0x7f, 0x40, 0xf, 0xd0, 0xe1, 0xd2, 0xd2, 0xd1,
+    0xfe, 0xf, 0xc0, 0x38, 0xb, 0x40, 0xb4, 0xb,
+    0xc0, 0x40, 0x5, 0x1, 0xf0, 0x4, 0x0, 0x0,
+    0x3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x0,
+    0xfa, 0xaf, 0xea, 0xbf, 0xaa, 0xa8, 0x0, 0x3c,
+    0x1, 0xe0, 0xb, 0x0, 0x0, 0x0, 0xf, 0x55,
+    0xbd, 0x57, 0xe5, 0x54, 0x0, 0x3, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0x40, 0x0, 0xf0, 0x7, 0x80,
+    0x2c, 0x1, 0xd0, 0x0, 0x3c, 0x1, 0xe0, 0xb,
+    0x0, 0x74, 0x0, 0xf, 0xaa, 0xfe, 0xab, 0xea,
+    0xbd, 0x0, 0x3, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0x40, 0x1, 0xf0, 0x74, 0x0, 0x3c, 0x0, 0x40,
+    0x0, 0xb8, 0x1e, 0x55, 0x4f, 0x6, 0xf4, 0x0,
+    0x3d, 0x7, 0xff, 0xf3, 0xff, 0xe4, 0x0, 0xf,
+    0x1, 0xd0, 0x0, 0xf9, 0x0, 0x60, 0xf, 0x80,
+    0x78, 0x5b, 0x3c, 0x0, 0x3d, 0x7, 0xc0, 0x3f,
+    0xff, 0xcf, 0xff, 0xff, 0x3, 0xd0, 0xf, 0x94,
+    0x1, 0xff, 0xff, 0x40, 0x60, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+9E9D "麝" */
     0x0, 0x0, 0x0, 0x14, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x3d, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -168239,6 +179173,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x6, 0xb8, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+9EB4 "麴" */
+    0x0, 0x1, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0,
+    0xe, 0x0, 0x2, 0xd0, 0x0, 0x0, 0x0, 0x38,
+    0x0, 0xf, 0x0, 0x0, 0x2, 0xaa, 0xfa, 0xa8,
+    0xb4, 0x0, 0x0, 0x1f, 0xff, 0xff, 0xf7, 0xff,
+    0xff, 0xf0, 0x1, 0xe, 0x4, 0x3e, 0xaa, 0xab,
+    0xc0, 0x1c, 0x38, 0x72, 0xe0, 0x0, 0xb, 0x0,
+    0xf0, 0xe2, 0xc7, 0xb, 0x0, 0x2c, 0x7, 0xd3,
+    0x8f, 0x8, 0x2c, 0xc, 0xb0, 0x3e, 0xde, 0xff,
+    0xb4, 0xb0, 0xb3, 0xc2, 0xc1, 0xfa, 0x4e, 0xb2,
+    0xc3, 0x8f, 0x5, 0xb, 0xf8, 0x0, 0xdb, 0x3c,
+    0x3c, 0x0, 0xbb, 0xfc, 0x2, 0x6c, 0xd0, 0xf0,
+    0xf, 0x8e, 0x7d, 0x0, 0xb0, 0x3, 0xc2, 0xf4,
+    0x38, 0x3d, 0xab, 0xea, 0x8f, 0xf, 0x46, 0x0,
+    0x1b, 0xff, 0xff, 0x3c, 0x10, 0x3c, 0x0, 0x5,
+    0x7d, 0x54, 0xf0, 0x2, 0xff, 0xfc, 0x2, 0xf0,
+    0x3, 0xc0, 0x1f, 0xaa, 0xf0, 0xf, 0xdc, 0xf,
+    0x0, 0xf0, 0x7, 0x80, 0xff, 0x7c, 0x3c, 0xf,
+    0xf0, 0x3c, 0xb, 0x6c, 0x78, 0xf0, 0xf5, 0xfb,
+    0xd0, 0x78, 0xb0, 0xb7, 0xc0, 0x40, 0xbe, 0x7,
+    0xc2, 0xc0, 0x4f, 0x0, 0x3, 0xfd, 0x3c, 0xb,
+    0x0, 0x3c, 0x0, 0xbe, 0x3e, 0x0, 0x2c, 0x1,
+    0xf0, 0x1f, 0xd0, 0x20, 0x0, 0xb2, 0xff, 0x80,
+    0xf8, 0x0, 0x0, 0x2, 0xc7, 0xf8, 0x1, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+9EB8 "麸" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x3, 0xc0, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x3,
@@ -168325,31 +179285,59 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
-    /* U+9EC3 "黃" */
+    /* U+9EBE "麾" */
+    0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x3, 0xd0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xb8, 0x0, 0x0, 0x0, 0x2, 0xaa,
+    0xaa, 0xbf, 0xaa, 0xaa, 0xa4, 0x0, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xfd, 0x0, 0x3d, 0x55, 0x55,
+    0x55, 0x55, 0x55, 0x0, 0xf, 0x0, 0x3c, 0x0,
+    0xb, 0x0, 0x0, 0x3, 0xc5, 0x5f, 0x54, 0x57,
+    0xd5, 0x50, 0x0, 0xf3, 0xff, 0xff, 0x7f, 0xff,
+    0xfc, 0x0, 0x3c, 0x57, 0xf5, 0x45, 0xbf, 0x55,
+    0x0, 0xf, 0x2, 0xff, 0x80, 0x7f, 0xf4, 0x0,
+    0x3, 0xc2, 0xef, 0x7c, 0x7f, 0xcf, 0x80, 0x0,
+    0xf7, 0xe3, 0xc2, 0xf8, 0xb0, 0xbe, 0x0, 0x3e,
+    0xd0, 0xf0, 0x74, 0x2c, 0x2, 0xc0, 0xf, 0x0,
+    0x14, 0x0, 0x5, 0xa8, 0x0, 0x3, 0xc1, 0x56,
+    0xaf, 0xff, 0xff, 0x0, 0x0, 0xf3, 0xff, 0xff,
+    0xea, 0x50, 0x0, 0x0, 0x3c, 0x54, 0x3, 0xc0,
+    0x0, 0x0, 0x0, 0x1f, 0x0, 0x0, 0xf9, 0x6a,
+    0xbc, 0x0, 0x7, 0x87, 0xff, 0xff, 0xff, 0xff,
+    0x0, 0x2, 0xe1, 0xa9, 0x5f, 0x40, 0x0, 0x0,
+    0x0, 0xf4, 0x0, 0x3, 0xd0, 0x55, 0x6a, 0x40,
+    0x7c, 0x6a, 0xbf, 0xff, 0xff, 0xff, 0xd0, 0x2e,
+    0x3f, 0xff, 0xfe, 0x95, 0x52, 0x40, 0xf, 0x40,
+    0x0, 0xf, 0x40, 0x0, 0xf0, 0xb, 0xc0, 0x0,
+    0x2, 0xff, 0xff, 0xfc, 0x3, 0xd0, 0x0, 0x0,
+    0x2f, 0xff, 0xfd, 0x0, 0x20, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
+    /* U+9EC4 "黄" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0xf0, 0x0, 0x3, 0xc0, 0x0, 0x0, 0xf, 0x0,
-    0x0, 0x3c, 0x0, 0x2, 0xff, 0xff, 0xff, 0xff,
-    0xff, 0xf0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff,
-    0x0, 0x0, 0xf0, 0x0, 0x3, 0xc0, 0x0, 0x0,
-    0xf, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0xff,
-    0xff, 0xff, 0xc0, 0x0, 0x0, 0xb, 0xff, 0xff,
-    0xfc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcf,
-    0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x0, 0x0,
-    0x1, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1e,
-    0x0, 0x0, 0x0, 0x3, 0xff, 0xff, 0xff, 0xff,
-    0xf4, 0x0, 0x7f, 0xff, 0xff, 0xff, 0xff, 0x80,
-    0x7, 0x80, 0x1, 0xe0, 0x0, 0x78, 0x0, 0x78,
-    0x0, 0x1e, 0x0, 0x7, 0x80, 0x7, 0xff, 0xff,
-    0xff, 0xff, 0xf8, 0x0, 0x7f, 0xff, 0xff, 0xff,
-    0xff, 0x80, 0x7, 0x80, 0x1, 0xe0, 0x0, 0x78,
-    0x0, 0x7f, 0xff, 0xff, 0xff, 0xff, 0x80, 0x7,
-    0xff, 0xff, 0xff, 0xff, 0xf8, 0x0, 0x0, 0x5,
-    0x0, 0x5, 0x0, 0x0, 0x0, 0x1b, 0xe0, 0x0,
-    0xff, 0x80, 0x0, 0x6f, 0xfd, 0x0, 0x6, 0xff,
-    0xe0, 0xbf, 0xf4, 0x0, 0x0, 0x1, 0xbf, 0xe7,
-    0x90, 0x0, 0x0, 0x0, 0x0, 0x6d, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x0,
+    0x3, 0xc0, 0x0, 0x78, 0x0, 0x0, 0x0, 0xf,
+    0x0, 0x1, 0xe0, 0x0, 0x0, 0x0, 0x3c, 0x0,
+    0x7, 0x80, 0x0, 0xf, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xd0, 0x2f, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0x40, 0x0, 0xf, 0x0, 0x1, 0xe0, 0x0, 0x0,
+    0x0, 0x3c, 0x0, 0x7, 0x80, 0x0, 0x3f, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xf0, 0x0, 0x0, 0x3, 0xc0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0x0, 0x0,
+    0x0, 0x0, 0xbf, 0xff, 0xff, 0xff, 0xfd, 0x0,
+    0x3, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x0, 0xf,
+    0x0, 0x3, 0xc0, 0x2, 0xe0, 0x0, 0x3c, 0x0,
+    0xf, 0x0, 0xb, 0x80, 0x0, 0xfa, 0xaa, 0xfe,
+    0xaa, 0xbe, 0x0, 0x3, 0xff, 0xff, 0xff, 0xff,
+    0xf8, 0x0, 0xf, 0x0, 0x3, 0xc0, 0x2, 0xe0,
+    0x0, 0x3c, 0x0, 0xf, 0x0, 0xb, 0x80, 0x0,
+    0xfa, 0xaa, 0xbe, 0xaa, 0xbe, 0x0, 0x3, 0xff,
+    0xff, 0xff, 0xff, 0xf8, 0x0, 0x0, 0x0, 0x40,
+    0x1, 0x0, 0x0, 0x0, 0x0, 0x1f, 0x0, 0x2f,
+    0xd0, 0x0, 0x0, 0x1b, 0xfc, 0x0, 0x6f, 0xf9,
+    0x0, 0x1b, 0xfe, 0x40, 0x0, 0x6, 0xff, 0x81,
+    0xff, 0x80, 0x0, 0x0, 0x0, 0x7f, 0x3, 0x80,
+    0x0, 0x0, 0x0, 0x0, 0x14,
 
     /* U+9EC9 "黉" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1,
@@ -168513,33 +179501,86 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x14, 0x10, 0x7, 0xc0, 0x0, 0x20, 0x0, 0x0,
     0x0, 0x2, 0x40, 0x0,
 
-    /* U+9ED9 "黙" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x3, 0xc2, 0x0, 0xf, 0xff,
-    0xff, 0xe0, 0x3, 0xcf, 0x80, 0xf, 0xff, 0xff,
-    0xf0, 0x3, 0xc3, 0xe0, 0xf, 0x3, 0xc0, 0xf0,
-    0x3, 0xc0, 0xf4, 0xf, 0x3, 0xc0, 0xf0, 0x3,
-    0xc0, 0x74, 0xf, 0xff, 0xff, 0xf0, 0x3, 0xc0,
-    0x10, 0xf, 0xff, 0xff, 0xf1, 0x57, 0xd5, 0x50,
-    0xf, 0x3, 0xc0, 0xf3, 0xff, 0xff, 0xf0, 0xf,
-    0x3, 0xc0, 0xf2, 0xab, 0xea, 0xa0, 0xf, 0xff,
-    0xff, 0xf0, 0x3, 0xc0, 0x0, 0xf, 0xff, 0xff,
-    0xf0, 0x7, 0xd0, 0x0, 0x0, 0x3, 0xc0, 0x0,
-    0xb, 0xf0, 0x0, 0x0, 0x3, 0xc0, 0x0, 0xf,
-    0xf4, 0x0, 0x1a, 0xab, 0xea, 0xa0, 0x1f, 0x7c,
-    0x0, 0x1f, 0xff, 0xff, 0xf0, 0x3d, 0x3e, 0x0,
-    0x0, 0x7, 0xc0, 0x0, 0xbc, 0xf, 0x40, 0x0,
-    0x3, 0xc0, 0x2, 0xf0, 0x7, 0xd0, 0x0, 0x3,
-    0xd5, 0xab, 0xd0, 0x2, 0xf4, 0xbf, 0xff, 0xff,
-    0xfb, 0x40, 0x0, 0xbc, 0xbf, 0xff, 0xa9, 0x50,
-    0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x2, 0x80, 0x4, 0x0, 0x80, 0xe,
-    0x0, 0x3, 0xc0, 0x3d, 0x2, 0xe0, 0xf, 0x40,
-    0xb, 0x80, 0x2e, 0x0, 0xf0, 0xb, 0xc0, 0x1f,
-    0x0, 0x1f, 0x0, 0xf4, 0x3, 0xd0, 0x3e, 0x0,
-    0xf, 0x0, 0x7c, 0x1, 0xf0, 0x1c, 0x0, 0xa,
-    0x0, 0x20, 0x0, 0x80, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0,
+    /* U+9ED8 "默" */
+    0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0xb, 0x40, 0x0, 0xa, 0xaa,
+    0xaa, 0xa0, 0xb, 0x4d, 0x0, 0x1f, 0xff, 0xff,
+    0xf0, 0xb, 0x4f, 0x0, 0x1e, 0x3, 0xc0, 0xf0,
+    0xb, 0x4b, 0x80, 0x1e, 0x83, 0xc5, 0xf0, 0xb,
+    0x43, 0xc0, 0x1e, 0xe3, 0xcf, 0xf0, 0xb, 0x42,
+    0xe0, 0x1e, 0xb3, 0xde, 0xf0, 0xb, 0x40, 0xd0,
+    0x1e, 0x3b, 0xfc, 0xf0, 0xb, 0x40, 0x0, 0x1e,
+    0x27, 0xe4, 0xf1, 0x5f, 0x95, 0x50, 0x1e, 0x3,
+    0xc0, 0xf3, 0xff, 0xff, 0xf0, 0x1f, 0xff, 0xff,
+    0xf2, 0xaf, 0xea, 0xa0, 0xa, 0xab, 0xea, 0xa0,
+    0xf, 0x80, 0x0, 0x0, 0x3, 0xc0, 0x0, 0xf,
+    0xc0, 0x0, 0x0, 0x3, 0xc0, 0x0, 0xf, 0xc0,
+    0x0, 0x2f, 0xff, 0xff, 0xf0, 0xf, 0xc0, 0x0,
+    0x1a, 0xab, 0xea, 0xa0, 0xf, 0xd0, 0x0, 0x0,
+    0x3, 0xc0, 0x0, 0x1e, 0xe0, 0x0, 0x0, 0x3,
+    0xc0, 0x0, 0x2d, 0xb0, 0x0, 0x6a, 0xaf, 0xff,
+    0xfc, 0x3c, 0x74, 0x0, 0x7f, 0xff, 0xff, 0xe8,
+    0x78, 0x3c, 0x0, 0x0, 0x0, 0x0, 0x40, 0xb4,
+    0x2d, 0x0, 0x1d, 0x28, 0xb0, 0xe0, 0xf0, 0xf,
+    0x0, 0x2d, 0x3c, 0x74, 0xb2, 0xe0, 0xb, 0x80,
+    0x3c, 0x2c, 0x38, 0x7b, 0xc0, 0x3, 0xd0, 0x3c,
+    0x2c, 0x3c, 0x2f, 0x80, 0x1, 0xf4, 0xb4, 0x2d,
+    0x28, 0x2f, 0x0, 0x0, 0xbc, 0xb0, 0x4, 0x0,
+    0x1c, 0x0, 0x0, 0x34, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
+    /* U+9EDB "黛" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xb4, 0x1e, 0x2, 0xd0, 0x0, 0x0, 0x2,
+    0xf0, 0xf, 0x1, 0xfc, 0x0, 0x0, 0xf, 0xc0,
+    0x7, 0x80, 0x2e, 0x0, 0x0, 0x7f, 0x0, 0x3,
+    0xd0, 0x5e, 0xa9, 0x2, 0xff, 0x2a, 0xff, 0xff,
+    0xff, 0xfe, 0x1f, 0xef, 0x3f, 0xff, 0xfe, 0x95,
+    0x0, 0x3e, 0x1f, 0x0, 0x0, 0x2f, 0x0, 0x9,
+    0x14, 0x1f, 0x0, 0x0, 0xb, 0xe0, 0xf, 0x0,
+    0x1e, 0x0, 0x0, 0x1, 0xff, 0xbd, 0x0, 0x2a,
+    0xaa, 0xaa, 0xaa, 0xbf, 0xf8, 0x0, 0x3f, 0xff,
+    0xff, 0xff, 0xff, 0xc0, 0x0, 0x3c, 0x70, 0xf,
+    0x1, 0xc3, 0xc0, 0x0, 0x3c, 0x3c, 0xf, 0xb,
+    0xc3, 0xc0, 0x0, 0x3c, 0xf, 0xf, 0x2e, 0x3,
+    0xc0, 0x0, 0x3d, 0x5a, 0x6f, 0x6d, 0x5b, 0xc0,
+    0x0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x0,
+    0x0, 0x0, 0xf, 0x0, 0x0, 0x0, 0x0, 0x2a,
+    0xaa, 0xaf, 0xaa, 0xaa, 0x80, 0x0, 0x7f, 0xff,
+    0xff, 0xff, 0xff, 0xc0, 0x0, 0x0, 0x0, 0xf,
+    0x0, 0x0, 0x0, 0x2, 0xaa, 0xaa, 0xaf, 0xaa,
+    0xaa, 0xa8, 0x3, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xfc, 0x0, 0x24, 0x0, 0x0, 0x0, 0x2, 0x0,
+    0x0, 0x7c, 0xb, 0x40, 0x78, 0x7, 0xc0, 0x0,
+    0xf4, 0x7, 0xc0, 0x3c, 0x2, 0xf0, 0x3, 0xe0,
+    0x3, 0xc0, 0x2d, 0x0, 0xb8, 0x3, 0xc0, 0x2,
+    0x80, 0x9, 0x0, 0x38, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
+    /* U+9EDC "黜" */
+    0x0, 0x0, 0x0, 0x0, 0x1, 0x40, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x3c, 0x0, 0xf, 0xff, 0xff,
+    0x80, 0x3, 0xc0, 0x0, 0xff, 0xff, 0xfc, 0x14,
+    0x3c, 0x4, 0xe, 0xb, 0x3, 0xc3, 0xc3, 0xc0,
+    0xe0, 0xe8, 0xb0, 0x7c, 0x3c, 0x3c, 0xe, 0xe,
+    0xdb, 0x2f, 0xc3, 0xc3, 0xc0, 0xe0, 0xea, 0xb3,
+    0x7c, 0x3c, 0x3c, 0xe, 0xe, 0x7b, 0xb3, 0xc3,
+    0xc3, 0xc0, 0xe0, 0xe2, 0xb5, 0x3c, 0x3c, 0x3c,
+    0xe, 0xe, 0xb, 0x3, 0xc3, 0xc3, 0xc0, 0xe0,
+    0xff, 0xff, 0xfc, 0x3c, 0x3c, 0xe, 0xf, 0xff,
+    0xff, 0x83, 0xff, 0xff, 0xe0, 0x0, 0xb0, 0x0,
+    0x2f, 0xff, 0xfe, 0x0, 0xb, 0x0, 0x0, 0x3,
+    0xc0, 0x1, 0xff, 0xff, 0xfc, 0x0, 0x3c, 0x0,
+    0x1a, 0xaf, 0xea, 0x83, 0x83, 0xc0, 0xf0, 0x0,
+    0xb0, 0x0, 0x3c, 0x3c, 0xf, 0x0, 0xb, 0x41,
+    0x43, 0xc3, 0xc0, 0xf3, 0xff, 0xff, 0xfd, 0x3c,
+    0x3c, 0xf, 0x3f, 0xfe, 0xa9, 0x43, 0xc3, 0xc0,
+    0xf0, 0x0, 0x4, 0x20, 0x3c, 0x3c, 0xf, 0xe,
+    0x34, 0xd3, 0x83, 0xc3, 0xc0, 0xf1, 0xd3, 0x8e,
+    0x2c, 0x3c, 0x3c, 0xf, 0x2c, 0x38, 0xb1, 0xd3,
+    0xff, 0xff, 0xf3, 0xc3, 0xc7, 0xd, 0x3f, 0xff,
+    0xff, 0x78, 0x2c, 0x20, 0x1, 0x55, 0x55, 0xf2,
+    0x40, 0x0, 0x0, 0x0, 0x0, 0xf,
 
     /* U+9EDD "黝" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -168732,6 +179773,35 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x1e, 0x0, 0x0, 0x8, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+9EEA "黪" */
+    0x0, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x7, 0x80, 0x0, 0x0, 0xaa,
+    0xaa, 0xa0, 0x3, 0xc0, 0x40, 0x0, 0x7f, 0xff,
+    0xfc, 0x2, 0xd0, 0xf4, 0x0, 0x1c, 0xe, 0x7,
+    0x0, 0xf0, 0xf, 0x0, 0x7, 0xa3, 0x8e, 0xc0,
+    0xf0, 0x1, 0xe0, 0x1, 0xec, 0xe7, 0xb0, 0xff,
+    0xff, 0xfd, 0x0, 0x73, 0xbb, 0x9c, 0x3f, 0xfa,
+    0xab, 0xc0, 0x1c, 0xbf, 0xd7, 0x0, 0xe, 0x0,
+    0xb0, 0x7, 0x7, 0x91, 0xc0, 0x7, 0x40, 0x0,
+    0x1, 0xc0, 0xe0, 0x70, 0x2, 0xd0, 0x0, 0x0,
+    0x7f, 0xff, 0xfc, 0xff, 0xff, 0xff, 0xf0, 0xa,
+    0xaf, 0xaa, 0x2a, 0xfa, 0xbe, 0xa8, 0x0, 0x3,
+    0xc0, 0x0, 0x78, 0xb, 0x0, 0x0, 0x0, 0xf0,
+    0x0, 0x3c, 0x0, 0xf0, 0x0, 0xff, 0xff, 0xfc,
+    0x3d, 0x7, 0x1e, 0x0, 0x2a, 0xaf, 0xaa, 0x7d,
+    0xb, 0xc2, 0xf0, 0x0, 0x3, 0xc0, 0x3d, 0x2f,
+    0x80, 0x2f, 0x40, 0x0, 0xf0, 0x4, 0x3e, 0x2,
+    0xc1, 0xe1, 0xaa, 0xbf, 0xfd, 0x0, 0x7, 0xe0,
+    0x0, 0x7f, 0xff, 0xfe, 0x40, 0x1f, 0xd0, 0x0,
+    0x0, 0x0, 0x1, 0x1, 0xbf, 0x80, 0x78, 0x1,
+    0xc6, 0x28, 0xe0, 0xbe, 0x0, 0xbc, 0x0, 0xb2,
+    0xc7, 0x2c, 0x4, 0x1, 0xfc, 0x0, 0x38, 0x70,
+    0xc3, 0x40, 0x7, 0xf4, 0x0, 0xd, 0xd, 0x34,
+    0xe0, 0x6f, 0xe0, 0x0, 0x7, 0x3, 0x4d, 0x16,
+    0xff, 0x40, 0x0, 0x2, 0xc0, 0x40, 0x0, 0x78,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+9EEF "黯" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0xb, 0x80, 0x0, 0xa, 0xaa,
@@ -168759,6 +179829,31 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x70, 0x43, 0xff, 0xff, 0xc0, 0x70, 0x0, 0x0,
     0x3, 0x80, 0x3, 0xc0,
 
+    /* U+9EF9 "黹" */
+    0x0, 0x0, 0x1e, 0x1, 0xe0, 0x0, 0x0, 0x6,
+    0x0, 0x78, 0x7, 0x80, 0x1c, 0x0, 0x3e, 0x1,
+    0xe0, 0x1e, 0x1, 0xf0, 0x0, 0x3e, 0x7, 0x80,
+    0x78, 0xf, 0x40, 0x0, 0x3d, 0x1e, 0x1, 0xe0,
+    0xf8, 0x0, 0x0, 0x78, 0x78, 0x7, 0x83, 0x80,
+    0x0, 0x0, 0x1, 0xe0, 0x1e, 0x0, 0x0, 0x2f,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbf, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xfc, 0x0, 0xf0, 0x1,
+    0xe0, 0x3, 0xc0, 0x0, 0x2, 0xf4, 0x7, 0x80,
+    0x3f, 0x0, 0x0, 0x2, 0xf4, 0x1e, 0x7, 0xe0,
+    0x0, 0x0, 0x1, 0xc0, 0x78, 0xe, 0x0, 0x0,
+    0xf, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x3f,
+    0xff, 0xff, 0xff, 0xff, 0xf0, 0x0, 0xf0, 0x0,
+    0x1e, 0x0, 0x3, 0xc0, 0x3, 0xc0, 0x14, 0x78,
+    0x10, 0xf, 0x0, 0xf, 0x0, 0xf1, 0xe3, 0xd0,
+    0x3c, 0x0, 0x3c, 0x7, 0xc7, 0x87, 0xc0, 0xf0,
+    0x0, 0xf0, 0x3c, 0x1e, 0xb, 0xc3, 0xc0, 0x3,
+    0xc3, 0xe0, 0x78, 0xf, 0x4f, 0x0, 0xf, 0x1f,
+    0x1, 0xe0, 0x1f, 0x3c, 0x0, 0x3c, 0xf0, 0x7,
+    0x80, 0x28, 0xf0, 0x0, 0xf0, 0x40, 0x1e, 0x0,
+    0x7, 0xc0, 0x3, 0xc0, 0x0, 0x78, 0xf, 0xff,
+    0x0, 0xf, 0x0, 0x1, 0xe0, 0x3f, 0xf0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+9EFB "黻" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x2c, 0x3c, 0x0, 0xf, 0x8, 0x0, 0x14, 0x2c,
@@ -168838,6 +179933,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x2, 0xff, 0xff, 0xfd, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+9F0B "鼋" */
+    0x0, 0x6a, 0xaa, 0xaa, 0xaa, 0xaa, 0x0, 0x0,
+    0x2f, 0xff, 0xff, 0xff, 0xff, 0xd0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2a, 0xaa,
+    0xaa, 0xaa, 0xaa, 0xaa, 0xa0, 0xf, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xfc, 0x0, 0x0, 0x7, 0xc0,
+    0x3c, 0x0, 0x4, 0x0, 0x0, 0x1b, 0xc0, 0xf,
+    0x40, 0x3, 0xc0, 0x6b, 0xff, 0x80, 0x2, 0xff,
+    0xff, 0xd0, 0x3f, 0xe9, 0x0, 0x0, 0x5, 0x55,
+    0x0, 0x0, 0x7, 0xff, 0xff, 0xff, 0xff, 0x40,
+    0x0, 0x1, 0xf5, 0x55, 0x55, 0x57, 0xd0, 0x0,
+    0x0, 0x7c, 0x0, 0x0, 0x0, 0xf4, 0x0, 0x0,
+    0x1f, 0xff, 0xff, 0xff, 0xfd, 0x0, 0x0, 0x1,
+    0x55, 0x5b, 0xd5, 0x55, 0x0, 0x0, 0x5, 0x55,
+    0x56, 0xf5, 0x55, 0x54, 0x0, 0x3, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0x0, 0x0, 0xf4, 0x0, 0x2e,
+    0x0, 0x3, 0xc0, 0x0, 0x3d, 0x55, 0x5b, 0xd5,
+    0x55, 0xf0, 0x0, 0xf, 0xff, 0xff, 0xff, 0xff,
+    0xfc, 0x0, 0x3, 0xc0, 0x0, 0xb8, 0x0, 0xf,
+    0x0, 0x0, 0xf9, 0x55, 0x6f, 0x55, 0x57, 0xc1,
+    0x0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xf1, 0xd0,
+    0x0, 0x0, 0x2, 0xe0, 0x0, 0x0, 0xb4, 0x0,
+    0x0, 0x0, 0x7e, 0xaa, 0xaa, 0xbc, 0x0, 0x0,
+    0x0, 0xb, 0xff, 0xff, 0xfd, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+9F0D "鼍" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb,
     0xff, 0xff, 0x83, 0xff, 0xff, 0xc0, 0xb, 0x80,
@@ -168889,6 +180010,87 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x3c, 0x2d, 0x0, 0xf, 0x40, 0xf0, 0x3, 0xc0,
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+9F10 "鼐" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf,
+    0xff, 0xff, 0xff, 0xff, 0xe0, 0x0, 0x3f, 0xff,
+    0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x7c, 0x0,
+    0x0, 0x7f, 0xff, 0x0, 0x3, 0xd0, 0x0, 0x1,
+    0xaa, 0xbc, 0x0, 0x3e, 0x55, 0x55, 0x54, 0x0,
+    0xf0, 0x3, 0xf3, 0xff, 0xff, 0xf8, 0x7, 0x80,
+    0xbe, 0xf, 0x0, 0x1, 0xe1, 0xbe, 0x2f, 0xd0,
+    0x3d, 0x55, 0x5b, 0x8f, 0xf0, 0x74, 0x0, 0xff,
+    0xff, 0xfe, 0x15, 0x0, 0xf, 0x3, 0xc0, 0x0,
+    0x78, 0x1e, 0x0, 0x3c, 0xf, 0xff, 0xff, 0xe0,
+    0x78, 0x0, 0xf0, 0x3d, 0x55, 0x5b, 0x81, 0xe0,
+    0x3, 0xc0, 0xf0, 0x0, 0x1e, 0x7, 0x80, 0xf,
+    0x3, 0xff, 0xff, 0xf8, 0x1e, 0x0, 0x3c, 0xa,
+    0xaa, 0xaa, 0x90, 0x78, 0x0, 0xf0, 0x0, 0x0,
+    0x0, 0x1, 0xe0, 0x3, 0xff, 0xff, 0x2, 0xff,
+    0xff, 0x80, 0xf, 0xff, 0xfc, 0xb, 0xff, 0xfe,
+    0x0, 0x0, 0x0, 0xf0, 0x2d, 0x0, 0x0, 0x0,
+    0x0, 0x3, 0xc0, 0xb4, 0x0, 0x0, 0x3f, 0xff,
+    0xff, 0x2, 0xff, 0xff, 0xc0, 0xab, 0xfa, 0xbc,
+    0xb, 0xaa, 0xaf, 0x0, 0xb, 0x40, 0xf0, 0x2d,
+    0x0, 0x3c, 0x0, 0x3c, 0x3, 0xc0, 0xb4, 0x0,
+    0xf0, 0x7, 0xd0, 0xf, 0x2, 0xd0, 0x3, 0xc0,
+    0x7d, 0x0, 0x3c, 0xb, 0x40, 0xf, 0x0, 0x80,
+    0x0, 0x0, 0x0, 0x0, 0x0,
+
+    /* U+9F13 "鼓" */
+    0x0, 0x6, 0x40, 0x0, 0x2, 0x80, 0x0, 0x0,
+    0xb, 0x80, 0x0, 0x3, 0xc0, 0x0, 0x0, 0xb,
+    0x80, 0x0, 0x3, 0xc0, 0x0, 0x3f, 0xff, 0xff,
+    0xe0, 0x3, 0xc0, 0x0, 0x3f, 0xff, 0xff, 0xeb,
+    0xff, 0xff, 0xfc, 0x0, 0xb, 0x80, 0xf, 0xff,
+    0xff, 0xfc, 0x0, 0xb, 0x80, 0x1, 0x57, 0xd5,
+    0x54, 0x0, 0xb, 0x80, 0x0, 0x3, 0xc0, 0x0,
+    0x2f, 0xff, 0xff, 0xd0, 0x3, 0xc0, 0x0, 0x1f,
+    0xff, 0xff, 0xd0, 0x3, 0xc0, 0x0, 0x0, 0x0,
+    0x0, 0x5, 0x57, 0xd5, 0x40, 0x6, 0xaa, 0xaa,
+    0x4f, 0xff, 0xff, 0xe0, 0x7, 0xff, 0xff, 0x4a,
+    0xaa, 0xab, 0xe0, 0x7, 0x80, 0xb, 0x43, 0xc0,
+    0x3, 0xc0, 0x7, 0x80, 0xb, 0x42, 0xd0, 0x3,
+    0xc0, 0x7, 0x80, 0xb, 0x41, 0xe0, 0xb, 0x80,
+    0x7, 0xff, 0xff, 0x40, 0xf0, 0xf, 0x0, 0x7,
+    0xff, 0xff, 0x40, 0x78, 0x1e, 0x0, 0x0, 0x80,
+    0x9, 0x0, 0x3d, 0x3c, 0x0, 0x3, 0xd0, 0x1f,
+    0x0, 0x1f, 0xf8, 0x0, 0x0, 0xf0, 0x3d, 0x0,
+    0xb, 0xf0, 0x0, 0x0, 0xb8, 0x7c, 0x0, 0xb,
+    0xf0, 0x0, 0x0, 0x34, 0xf5, 0x40, 0x3f, 0xfd,
+    0x0, 0x15, 0xbb, 0xff, 0xc2, 0xfc, 0x2f, 0xc0,
+    0x7f, 0xff, 0xfe, 0xaf, 0xe0, 0x7, 0xf8, 0x2a,
+    0x50, 0x0, 0xbf, 0x0, 0x0, 0xbe, 0x0, 0x0,
+    0x0, 0x34, 0x0, 0x0, 0x1c, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
+    /* U+9F17 "鼗" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3,
+    0x80, 0xf, 0x3, 0xc0, 0x6, 0x0, 0x3, 0xfd,
+    0xf, 0x3, 0xc1, 0xbf, 0x0, 0x0, 0x2f, 0xcf,
+    0x3, 0xdf, 0xe4, 0x0, 0x0, 0x1, 0x8f, 0x3,
+    0xc9, 0x0, 0x0, 0x0, 0x1a, 0xff, 0x3, 0xde,
+    0x40, 0x0, 0x1f, 0xff, 0xef, 0x3, 0xdf, 0xfe,
+    0x60, 0x1f, 0x94, 0x2e, 0x3, 0xc0, 0x6f, 0x74,
+    0x0, 0x1, 0xfc, 0x3, 0xd0, 0x0, 0xf0, 0x6,
+    0xff, 0xf0, 0x2, 0xff, 0xff, 0xf0, 0x1f, 0xf9,
+    0x0, 0x0, 0x6a, 0xaa, 0x40, 0x4, 0x3, 0x80,
+    0x0, 0x2, 0x80, 0x0, 0x15, 0x57, 0xd5, 0x50,
+    0x3, 0xc0, 0x0, 0x3f, 0xff, 0xff, 0xfa, 0xab,
+    0xea, 0xa0, 0x0, 0x3, 0xc0, 0xb, 0xff, 0xff,
+    0xf4, 0x0, 0x3, 0xc0, 0x1, 0x57, 0xd5, 0x50,
+    0xf, 0xff, 0xff, 0xf0, 0x3, 0xc0, 0x0, 0x5,
+    0x55, 0x55, 0x40, 0x3, 0xc0, 0x0, 0x1, 0x55,
+    0x55, 0x47, 0xff, 0xff, 0xd0, 0x7, 0xff, 0xff,
+    0xd1, 0xd5, 0x57, 0xd0, 0x7, 0x40, 0x1, 0xd1,
+    0xe0, 0x7, 0x80, 0x7, 0x95, 0x56, 0xd0, 0xf4,
+    0xf, 0x0, 0x7, 0xff, 0xff, 0xc0, 0x3d, 0x3d,
+    0x0, 0x0, 0xf0, 0xe, 0x0, 0xf, 0xf4, 0x0,
+    0x0, 0x74, 0x2e, 0x50, 0xf, 0xf8, 0x0, 0xbf,
+    0xff, 0xff, 0xf1, 0xbe, 0x7f, 0x90, 0x6a, 0x95,
+    0x50, 0x1f, 0xe0, 0x7, 0xfd, 0x0, 0x0, 0x0,
+    0xe, 0x0, 0x0, 0x2c, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+9F19 "鼙" */
     0x0, 0x3, 0x80, 0x0, 0x3, 0x80, 0x0, 0x5,
     0x57, 0xd5, 0x50, 0x3, 0xc0, 0x0, 0x2f, 0xff,
@@ -168968,31 +180170,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x3, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
-    /* U+9F29 "鼩" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x1d, 0x0, 0x0, 0x1b, 0x0, 0x0,
-    0xf, 0x40, 0x0, 0xff, 0xdf, 0xfc, 0x3, 0xc0,
-    0x0, 0x3e, 0x42, 0xaf, 0x2, 0xe0, 0x0, 0xe,
-    0x0, 0x3, 0xc0, 0xff, 0xff, 0xf3, 0x80, 0x0,
-    0xf0, 0x7f, 0xff, 0xfc, 0xff, 0xcf, 0xfc, 0x3d,
-    0x0, 0xf, 0x3e, 0xa2, 0xaf, 0x2e, 0x0, 0x3,
-    0xce, 0x0, 0x3, 0xcf, 0x0, 0x0, 0xf3, 0xc0,
-    0x0, 0xfb, 0x80, 0x0, 0x3c, 0xff, 0xff, 0xfc,
-    0x7f, 0xfe, 0xf, 0x2a, 0xaa, 0xaa, 0xb, 0xff,
-    0x83, 0xc9, 0x6, 0x2, 0x42, 0xc0, 0xe0, 0xf3,
-    0x82, 0xc0, 0xe0, 0xb0, 0x38, 0x3c, 0xfd, 0xbf,
-    0x38, 0x2c, 0xe, 0xf, 0x3a, 0xfd, 0xfe, 0xb,
-    0x3, 0x83, 0xce, 0x2b, 0x7, 0x82, 0xc0, 0xe0,
-    0xf3, 0x82, 0xc0, 0xe0, 0xb0, 0x38, 0x3c, 0xfc,
-    0xba, 0x38, 0x2c, 0xe, 0xf, 0x3b, 0xfe, 0xee,
-    0xb, 0xff, 0x83, 0x8e, 0x3b, 0x1b, 0x82, 0xff,
-    0xe0, 0xe3, 0x82, 0xc0, 0xe0, 0x0, 0x0, 0x38,
-    0xe0, 0xb0, 0x3c, 0xc0, 0x0, 0xe, 0x39, 0xac,
-    0xaf, 0x34, 0x0, 0x7, 0x8f, 0xfb, 0xfa, 0xec,
-    0x0, 0x5b, 0xeb, 0xe3, 0xf4, 0x7f, 0x0, 0xff,
-    0xf0, 0xd0, 0xa0, 0xb, 0x40, 0x2f, 0xa0, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
     /* U+9F2C "鼬" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5,
     0x0, 0x0, 0x0, 0x38, 0x0, 0x2f, 0xf6, 0xaa,
@@ -169122,6 +180299,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x7, 0xc0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0,
 
+    /* U+9F3D "鼽" */
+    0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xf, 0x0, 0x0, 0xb4, 0x0, 0x0, 0x0, 0x1e,
+    0x0, 0x0, 0xb4, 0x0, 0x0, 0xb, 0xff, 0xff,
+    0x0, 0xb4, 0x0, 0x0, 0xb, 0xaa, 0xaf, 0x0,
+    0xb4, 0x0, 0x0, 0xb, 0x0, 0xb, 0x0, 0xb4,
+    0x0, 0x0, 0xb, 0xff, 0xff, 0x0, 0xb4, 0x0,
+    0x0, 0xb, 0x0, 0xb, 0x1f, 0xff, 0xfc, 0x0,
+    0xb, 0x55, 0x5b, 0x1f, 0xff, 0xfc, 0x0, 0xb,
+    0xff, 0xff, 0x5, 0xf9, 0x7c, 0x0, 0xb, 0x0,
+    0xb, 0x0, 0xb4, 0x3c, 0x0, 0xb, 0xff, 0xff,
+    0x0, 0xb4, 0x3c, 0x0, 0x5, 0x55, 0x55, 0x0,
+    0xb4, 0x3c, 0x0, 0x5, 0x55, 0x55, 0x40, 0xb4,
+    0x3c, 0x0, 0x1f, 0xff, 0xff, 0x80, 0xb4, 0x3c,
+    0x0, 0x1d, 0xb, 0x3, 0x80, 0xf0, 0x3c, 0x0,
+    0x1f, 0xff, 0xff, 0x80, 0xf0, 0x3c, 0x0, 0x1e,
+    0x5b, 0x57, 0x80, 0xf0, 0x3c, 0x0, 0x1e, 0x5b,
+    0x57, 0x80, 0xf0, 0x3c, 0x0, 0x1f, 0xff, 0xff,
+    0x81, 0xf0, 0x3c, 0x0, 0x0, 0x0, 0x0, 0x1,
+    0xe0, 0x3c, 0x8, 0x6a, 0xaa, 0xaa, 0xa3, 0xd0,
+    0x3c, 0xe, 0xbf, 0xff, 0xff, 0xf3, 0xc0, 0x3c,
+    0xe, 0x1, 0xd0, 0x3c, 0xb, 0xc0, 0x3c, 0xe,
+    0x2, 0xd0, 0x3c, 0xf, 0x40, 0x3c, 0x1d, 0x3,
+    0xc0, 0x3c, 0x2f, 0x0, 0x2f, 0xfc, 0x1f, 0x80,
+    0x3c, 0x7d, 0x0, 0xf, 0xf8, 0x2e, 0x0, 0x3c,
+    0x28, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+9F3E "鼾" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x3, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7,
@@ -169150,6 +180355,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x80, 0x0, 0xf0, 0x0, 0x8, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+9F44 "齄" */
+    0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x1e, 0x0, 0x0, 0xb, 0x0, 0x0, 0x0, 0x2d,
+    0x0, 0x0, 0xb, 0x0, 0x0, 0xf, 0xff, 0xfd,
+    0x0, 0xb, 0x0, 0x0, 0xf, 0xaa, 0xae, 0x3f,
+    0xff, 0xff, 0xf4, 0xe, 0x0, 0xe, 0x3f, 0xff,
+    0xff, 0xf4, 0xf, 0xff, 0xfe, 0x0, 0x3f, 0xd0,
+    0x0, 0xd, 0x0, 0xe, 0x0, 0xbf, 0xf4, 0x0,
+    0xf, 0xaa, 0xae, 0x2, 0xeb, 0x7d, 0x0, 0xf,
+    0xaa, 0xae, 0xb, 0xcb, 0xf, 0x40, 0xe, 0x0,
+    0xe, 0x2f, 0xb, 0x3, 0xe0, 0xf, 0xff, 0xfe,
+    0xf8, 0x6, 0x0, 0xbd, 0x0, 0x0, 0x0, 0x66,
+    0xaa, 0xaa, 0x5c, 0x2f, 0xff, 0xff, 0xb, 0xff,
+    0xff, 0x80, 0x2d, 0x5e, 0x5b, 0xb, 0x0, 0x3,
+    0x80, 0x2c, 0xd, 0x7, 0xb, 0x0, 0x3, 0x80,
+    0x2f, 0xff, 0xff, 0xb, 0xaa, 0xab, 0x80, 0x2d,
+    0x5e, 0x5b, 0xb, 0xff, 0xff, 0x80, 0x2d, 0x5e,
+    0x5b, 0xb, 0x0, 0x3, 0x80, 0x2f, 0xff, 0xff,
+    0xb, 0x0, 0x3, 0x80, 0x0, 0x0, 0x0, 0xb,
+    0x55, 0x57, 0x80, 0xaa, 0xaa, 0xaa, 0x8b, 0xff,
+    0xff, 0x80, 0xff, 0xff, 0xff, 0xc0, 0x0, 0x0,
+    0x0, 0x2, 0xc0, 0xb0, 0x0, 0x0, 0x0, 0x0,
+    0x3, 0xc0, 0xb0, 0x0, 0x0, 0x0, 0x0, 0x7,
+    0x80, 0xb0, 0xbf, 0xff, 0xff, 0xf8, 0x2f, 0x0,
+    0xb0, 0x7f, 0xff, 0xff, 0xf8, 0x3d, 0x0, 0xb0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+9F50 "齐" */
     0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0xb8, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -169178,6 +180411,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0xf, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0,
 
+    /* U+9F51 "齑" */
+    0x0, 0x0, 0x0, 0x60, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xbc, 0x0, 0x0, 0x0, 0xa, 0xaa, 0xaa,
+    0xfe, 0xaa, 0xaa, 0xa0, 0xf, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xf0, 0x0, 0x7, 0xe0, 0x0, 0xb,
+    0xd0, 0x0, 0x0, 0x0, 0xfd, 0x0, 0x7f, 0x0,
+    0x0, 0x0, 0x0, 0x1f, 0xeb, 0xf4, 0x0, 0x0,
+    0x0, 0x0, 0x7, 0xff, 0xd0, 0x0, 0x0, 0x0,
+    0x1a, 0xff, 0xeb, 0xff, 0xa5, 0x0, 0xbf, 0xff,
+    0xf9, 0x0, 0x6f, 0xff, 0xfe, 0xbf, 0xe4, 0x2,
+    0x41, 0x80, 0x1a, 0xfd, 0x10, 0x50, 0x3, 0x83,
+    0xc0, 0x6, 0x0, 0x0, 0xf2, 0xab, 0x83, 0xea,
+    0x8b, 0x40, 0x0, 0xf3, 0xff, 0x83, 0xff, 0xcb,
+    0x40, 0x0, 0xf0, 0x7, 0x83, 0xc0, 0xb, 0x40,
+    0x0, 0xf0, 0x3, 0x83, 0xc0, 0xb, 0x40, 0x0,
+    0xf2, 0xab, 0x83, 0xea, 0x8b, 0x40, 0x0, 0xe3,
+    0xff, 0x83, 0xff, 0xcb, 0x40, 0x1, 0xe0, 0x3,
+    0x83, 0xc0, 0xb, 0x40, 0x1, 0xe0, 0x7, 0x83,
+    0xc0, 0xb, 0x40, 0x2, 0xd7, 0xff, 0x83, 0xff,
+    0xcb, 0x40, 0x3, 0xd2, 0xab, 0x83, 0xea, 0x8b,
+    0x40, 0x3, 0xc0, 0x3, 0x83, 0xc0, 0xb, 0x40,
+    0xb, 0x80, 0x3, 0x83, 0xc0, 0xb, 0x40, 0xf,
+    0x1f, 0xff, 0xff, 0xff, 0xeb, 0x40, 0x3e, 0x1f,
+    0xff, 0xff, 0xff, 0xdb, 0x40, 0x3c, 0x0, 0x0,
+    0x0, 0x0, 0xb, 0x40, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0,
+
     /* U+9F7F "齿" */
     0x0, 0x0, 0x0, 0x2d, 0x0, 0x0, 0x0, 0x0,
     0x4, 0x0, 0x3d, 0x0, 0x0, 0x0, 0x0, 0x2d,
@@ -169230,32 +180491,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x55, 0x40, 0x0, 0x0, 0xbf, 0xfd, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0,
 
-    /* U+9F81 "龁" */
-    0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0,
-    0x1e, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x50, 0x78,
-    0x0, 0x7, 0xc0, 0x0, 0x2, 0xc1, 0xe0, 0x0,
-    0x2e, 0x0, 0x0, 0xb, 0x7, 0xff, 0x80, 0xf4,
-    0x0, 0x0, 0x2c, 0x1f, 0xfe, 0x7, 0xff, 0xff,
-    0xe0, 0xb0, 0x78, 0x0, 0x3f, 0xff, 0xff, 0x82,
-    0xc1, 0xe0, 0x1, 0xf0, 0x0, 0x0, 0xb, 0x7,
-    0x80, 0xf, 0x40, 0x0, 0x2, 0xbe, 0xbf, 0xaa,
-    0xb8, 0x0, 0x0, 0xf, 0xff, 0xff, 0xfc, 0x80,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff,
-    0xc0, 0x0, 0x1, 0x0, 0x3, 0xff, 0xff, 0x0,
-    0x74, 0x2c, 0x9, 0x0, 0x0, 0xf8, 0x1, 0xd0,
-    0xb0, 0x38, 0x0, 0xf, 0xc0, 0x7, 0x43, 0xc0,
-    0xe0, 0x0, 0xbc, 0x0, 0x1d, 0xf, 0x3, 0x80,
-    0xb, 0xd0, 0x0, 0x74, 0x7e, 0xe, 0x0, 0x7d,
-    0x0, 0x1, 0xd3, 0xed, 0x38, 0x3, 0xe0, 0x0,
-    0x7, 0x5e, 0x3d, 0xe0, 0x3f, 0x0, 0x0, 0x1e,
-    0xf0, 0x7f, 0x81, 0xf4, 0x0, 0x10, 0x7f, 0x40,
-    0xfe, 0xf, 0x80, 0x0, 0xf1, 0xe8, 0x0, 0x38,
-    0xbc, 0x0, 0x7, 0x87, 0x40, 0x0, 0xe3, 0xd0,
-    0x0, 0x1e, 0x1d, 0x0, 0x7, 0x8f, 0x40, 0x0,
-    0xf4, 0x7f, 0xff, 0xfe, 0x3f, 0xfa, 0xff, 0xc1,
-    0xff, 0xff, 0xf4, 0x2f, 0xff, 0xf8, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x0,
-
     /* U+9F83 "龃" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x3, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x3,
@@ -169680,12 +180915,7 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xf4, 0x0, 0x1, 0xf0, 0x0, 0x1, 0xf0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xa0,
     0x0, 0x3, 0xf8, 0x0, 0x3, 0xf8, 0x0, 0x3,
-    0xf4, 0x0, 0x0, 0x0, 0x0,
-
-    /* U+FF5E "~" */
-    0x1, 0x90, 0x0, 0x14, 0xf, 0xfe, 0x0, 0x7c,
-    0x3f, 0xff, 0xd0, 0xbc, 0x7d, 0xb, 0xff, 0xf4,
-    0xbc, 0x1, 0xff, 0xe0, 0x10, 0x0, 0x15, 0x0
+    0xf4, 0x0, 0x0, 0x0, 0x0
 };
 
 
@@ -169695,7 +180925,7 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
 
 static const lv_font_fmt_txt_glyph_dsc_t glyph_dsc[] = {
     {.bitmap_index = 0, .adv_w = 0, .box_w = 0, .box_h = 0, .ofs_x = 0, .ofs_y = 0} /* id = 0 reserved */,
-    {.bitmap_index = 0, .adv_w = 0, .box_w = 0, .box_h = 0, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 0, .adv_w = 123, .box_w = 0, .box_h = 0, .ofs_x = 0, .ofs_y = 0},
     {.bitmap_index = 0, .adv_w = 173, .box_w = 5, .box_h = 21, .ofs_x = 3, .ofs_y = 0},
     {.bitmap_index = 27, .adv_w = 194, .box_w = 8, .box_h = 10, .ofs_x = 2, .ofs_y = 13},
     {.bitmap_index = 47, .adv_w = 288, .box_w = 18, .box_h = 21, .ofs_x = 0, .ofs_y = 0},
@@ -169788,7255 +181018,7749 @@ static const lv_font_fmt_txt_glyph_dsc_t glyph_dsc[] = {
     {.bitmap_index = 6270, .adv_w = 144, .box_w = 7, .box_h = 29, .ofs_x = 1, .ofs_y = -6},
     {.bitmap_index = 6321, .adv_w = 265, .box_w = 16, .box_h = 5, .ofs_x = 0, .ofs_y = 7},
     {.bitmap_index = 6341, .adv_w = 174, .box_w = 11, .box_h = 10, .ofs_x = 0, .ofs_y = 12},
-    {.bitmap_index = 6369, .adv_w = 166, .box_w = 10, .box_h = 3, .ofs_x = 0, .ofs_y = 20},
-    {.bitmap_index = 6377, .adv_w = 472, .box_w = 31, .box_h = 3, .ofs_x = -1, .ofs_y = 8},
-    {.bitmap_index = 6401, .adv_w = 441, .box_w = 27, .box_h = 23, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 6557, .adv_w = 472, .box_w = 9, .box_h = 8, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 6575, .adv_w = 472, .box_w = 15, .box_h = 27, .ofs_x = 10, .ofs_y = -3},
-    {.bitmap_index = 6677, .adv_w = 472, .box_w = 14, .box_h = 27, .ofs_x = 5, .ofs_y = -3},
-    {.bitmap_index = 6772, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 6968, .adv_w = 472, .box_w = 28, .box_h = 3, .ofs_x = 1, .ofs_y = 10},
-    {.bitmap_index = 6989, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 7185, .adv_w = 472, .box_w = 27, .box_h = 23, .ofs_x = 1, .ofs_y = -1},
-    {.bitmap_index = 7341, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 7530, .adv_w = 472, .box_w = 27, .box_h = 25, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 7699, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 7875, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 8051, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 8227, .adv_w = 472, .box_w = 28, .box_h = 25, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 8402, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 8598, .adv_w = 472, .box_w = 28, .box_h = 25, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 8773, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 8955, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 9137, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 9320, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 9503, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 9692, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 9895, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 10084, .adv_w = 472, .box_w = 28, .box_h = 25, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 10259, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 10442, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 10618, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 10807, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 11003, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 11206, .adv_w = 472, .box_w = 24, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 11374, .adv_w = 472, .box_w = 24, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 11542, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 11731, .adv_w = 472, .box_w = 24, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 11899, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 12081, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 12270, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 12459, .adv_w = 472, .box_w = 25, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 12628, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 12817, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 12999, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 13202, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 13398, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 13581, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 13777, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 13973, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 14148, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 14337, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 14533, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 14722, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 14918, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 15114, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 15310, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 15513, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 15696, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 15878, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 16081, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 16256, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 16445, .adv_w = 472, .box_w = 24, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 16601, .adv_w = 472, .box_w = 24, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 16775, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 16971, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 17147, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 17323, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 17506, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 17695, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 17884, .adv_w = 472, .box_w = 25, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 18047, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 18223, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 18419, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 18608, .adv_w = 472, .box_w = 26, .box_h = 22, .ofs_x = 2, .ofs_y = -1},
-    {.bitmap_index = 18751, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 18927, .adv_w = 472, .box_w = 28, .box_h = 25, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 19102, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 19291, .adv_w = 472, .box_w = 28, .box_h = 23, .ofs_x = 1, .ofs_y = -1},
-    {.bitmap_index = 19452, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 19641, .adv_w = 472, .box_w = 27, .box_h = 25, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 19810, .adv_w = 472, .box_w = 27, .box_h = 25, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 19979, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 20162, .adv_w = 472, .box_w = 26, .box_h = 25, .ofs_x = 2, .ofs_y = -2},
-    {.bitmap_index = 20325, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 20508, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 20697, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 20908, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 21097, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 21300, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 21503, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 21699, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 21882, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 22078, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 22281, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 22470, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 22659, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 22842, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 23025, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 23214, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 23425, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 23628, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 23810, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 24013, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 24209, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 24412, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 24615, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 24826, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 25029, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 25212, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 25408, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 25611, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 25814, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 26017, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 26213, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 26409, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 26620, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 26816, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 27005, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 27201, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 27397, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 27593, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 27796, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 27979, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 28175, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 28378, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 28589, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 28778, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 28967, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 29156, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 29352, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 29548, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 29751, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 29954, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 30150, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 30353, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 30564, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 30746, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 30957, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 31160, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 31363, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 31559, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 31755, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 31951, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 32154, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 32343, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 32539, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 32742, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 32945, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 33134, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 33337, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 33533, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 33744, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 33940, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 34143, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 34354, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 34557, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 34753, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 34936, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 35132, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 35328, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 35524, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 35727, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 35938, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 36127, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 36316, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 36519, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 36715, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 36898, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 37094, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 37290, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 37501, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 37697, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 37900, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 38111, .adv_w = 472, .box_w = 30, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 38314, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 38525, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 38714, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 38903, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 39092, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 39303, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 39506, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 39702, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 39891, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 40094, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 40305, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 40508, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 40697, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 40893, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 41089, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 41292, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 41495, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 41691, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 41880, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 42076, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 42272, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 42483, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 42686, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 42889, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 43085, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 43288, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 43477, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 43673, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 43876, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 44072, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 44261, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 44464, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 44667, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 44850, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 45061, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 45272, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 45483, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 45672, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 45875, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 46078, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 46267, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 46478, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 46681, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 46892, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 47103, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 47314, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 47517, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 47720, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 47923, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 48119, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 48322, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 48525, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 48736, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 48932, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 49128, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 49311, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 49500, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 49696, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 49892, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 50088, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 50291, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 50487, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 50690, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 50901, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 51104, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 51315, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 51518, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 51721, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 51924, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 52113, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 52316, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 52527, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 52738, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 52941, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 53130, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 53326, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 53529, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 53725, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 53928, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 54131, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 54334, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 54537, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 54748, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 54931, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 55127, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 55330, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 55541, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 55737, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 55919, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 56122, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 56325, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 56507, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 56710, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 56906, .adv_w = 472, .box_w = 30, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 57116, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 57312, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 57523, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 57726, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 57922, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 58133, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 58336, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 58539, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 58742, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 58925, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 59128, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 59331, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 59513, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 59716, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 59927, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 60123, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 60326, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 60522, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 60725, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 60914, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 61117, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 61328, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 61531, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 61734, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 61937, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 62148, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 62337, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 62540, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 62736, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 62947, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 63158, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 63369, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 63580, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 63769, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 63980, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 64191, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 64402, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 64605, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 64808, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 65019, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 65215, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 65426, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 65629, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 65825, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 66021, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 66224, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 66427, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 66638, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 66841, .adv_w = 472, .box_w = 29, .box_h = 30, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 67059, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 67262, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 67451, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 67640, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 67836, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 68025, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 68208, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 68404, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 68593, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 68789, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 68978, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 69174, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 69363, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 69552, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 69748, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 69931, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 70127, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 70309, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 70498, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 70701, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 70890, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 71072, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 71261, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 71464, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 71653, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 71849, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 72032, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 72221, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 72410, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 72606, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 72802, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 72998, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 73180, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 73376, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 73572, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 73775, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 73971, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 74167, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 74363, .adv_w = 472, .box_w = 23, .box_h = 28, .ofs_x = 3, .ofs_y = -4},
-    {.bitmap_index = 74524, .adv_w = 472, .box_w = 23, .box_h = 27, .ofs_x = 3, .ofs_y = -4},
-    {.bitmap_index = 74680, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 74862, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 75044, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 75227, .adv_w = 472, .box_w = 26, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 75396, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 75572, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 75775, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 75951, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 76133, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 76309, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 76492, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 76695, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 76871, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 77074, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 77256, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 77431, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 77634, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 77830, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 78019, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 78208, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 78411, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 78614, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 78803, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 78999, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 79188, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 79377, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 79573, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 79769, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 79945, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 80148, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 80344, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 80547, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 80729, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 80925, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 81121, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 81317, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 81513, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 81702, .adv_w = 472, .box_w = 24, .box_h = 27, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 81864, .adv_w = 472, .box_w = 24, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 82020, .adv_w = 472, .box_w = 24, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 82176, .adv_w = 472, .box_w = 23, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 82337, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 82526, .adv_w = 472, .box_w = 24, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 82694, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 82890, .adv_w = 472, .box_w = 25, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 83053, .adv_w = 472, .box_w = 25, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 83222, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 83425, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 83614, .adv_w = 472, .box_w = 25, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 83783, .adv_w = 472, .box_w = 25, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 83952, .adv_w = 472, .box_w = 24, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 84120, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 84302, .adv_w = 472, .box_w = 25, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 84471, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 84647, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 84836, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 85012, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 85201, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 85383, .adv_w = 472, .box_w = 24, .box_h = 28, .ofs_x = 3, .ofs_y = -4},
-    {.bitmap_index = 85551, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 85740, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 85936, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 86125, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 86301, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 86490, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 86679, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 86861, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 87037, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 87219, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 87401, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 87590, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 87772, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 87961, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 88172, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 88361, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 88557, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 88746, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 88928, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 89110, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 89285, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 89468, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 89657, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 89839, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 90022, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 90211, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 90400, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 90575, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 90764, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 90953, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 91135, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 91317, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 91493, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 91682, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 91871, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 92054, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 92237, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 92433, .adv_w = 472, .box_w = 25, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 92602, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 92791, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 92974, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 93163, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 93352, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 93528, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 93717, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 93906, .adv_w = 472, .box_w = 25, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 94088, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 94284, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 94495, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 94691, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 94880, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 95091, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 95280, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 95476, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 95658, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 95861, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 96057, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 96246, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 96442, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 96638, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 96834, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 97023, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 97219, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 97415, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 97604, .adv_w = 472, .box_w = 25, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 97773, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 97969, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 98158, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 98354, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 98543, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 98732, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 98907, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 99089, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 99285, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 99474, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 99677, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 99852, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 100027, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 100216, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 100391, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 100587, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 100769, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 100958, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 101147, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 101350, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 101532, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 101721, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 101904, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 102093, .adv_w = 472, .box_w = 24, .box_h = 25, .ofs_x = 4, .ofs_y = -2},
-    {.bitmap_index = 102243, .adv_w = 472, .box_w = 25, .box_h = 25, .ofs_x = 3, .ofs_y = -2},
-    {.bitmap_index = 102400, .adv_w = 472, .box_w = 25, .box_h = 25, .ofs_x = 3, .ofs_y = -2},
-    {.bitmap_index = 102557, .adv_w = 472, .box_w = 25, .box_h = 25, .ofs_x = 3, .ofs_y = -2},
-    {.bitmap_index = 102714, .adv_w = 472, .box_w = 25, .box_h = 25, .ofs_x = 3, .ofs_y = -2},
-    {.bitmap_index = 102871, .adv_w = 472, .box_w = 25, .box_h = 25, .ofs_x = 3, .ofs_y = -2},
-    {.bitmap_index = 103028, .adv_w = 472, .box_w = 24, .box_h = 25, .ofs_x = 4, .ofs_y = -2},
-    {.bitmap_index = 103178, .adv_w = 472, .box_w = 25, .box_h = 25, .ofs_x = 3, .ofs_y = -2},
-    {.bitmap_index = 103335, .adv_w = 472, .box_w = 25, .box_h = 25, .ofs_x = 3, .ofs_y = -2},
-    {.bitmap_index = 103492, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 103675, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 103858, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 104054, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 104243, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 104432, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 104635, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 104824, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 105013, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 105224, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 105413, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 105602, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 105791, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 105980, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 106169, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 106365, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 106568, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 106751, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 106933, .adv_w = 472, .box_w = 24, .box_h = 28, .ofs_x = 4, .ofs_y = -3},
-    {.bitmap_index = 107101, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 107290, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 107486, .adv_w = 472, .box_w = 25, .box_h = 27, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 107655, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 107851, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 108034, .adv_w = 472, .box_w = 27, .box_h = 24, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 108196, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 108379, .adv_w = 472, .box_w = 24, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 108547, .adv_w = 472, .box_w = 25, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 108716, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 108912, .adv_w = 472, .box_w = 25, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 109075, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 109264, .adv_w = 472, .box_w = 24, .box_h = 28, .ofs_x = 3, .ofs_y = -4},
-    {.bitmap_index = 109432, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 109635, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 109817, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 110013, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 110196, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 110378, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 110567, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 110750, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 110939, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 111135, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 111324, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 111513, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 111702, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 111891, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 112080, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 112269, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 112458, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 112640, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 112829, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 113025, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 113214, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 113403, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 113599, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 113795, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 113971, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 114147, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 114343, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 114554, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 114736, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 114925, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 115121, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 115324, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 115513, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 115702, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 115905, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 116108, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 116297, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 116486, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 116689, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 116900, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 117103, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 117292, .adv_w = 472, .box_w = 22, .box_h = 25, .ofs_x = 4, .ofs_y = -3},
-    {.bitmap_index = 117430, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 117613, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 117795, .adv_w = 472, .box_w = 25, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 117958, .adv_w = 472, .box_w = 24, .box_h = 26, .ofs_x = 3, .ofs_y = -4},
-    {.bitmap_index = 118114, .adv_w = 472, .box_w = 24, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 118270, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 118459, .adv_w = 472, .box_w = 23, .box_h = 27, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 118615, .adv_w = 472, .box_w = 26, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 118784, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 118967, .adv_w = 472, .box_w = 26, .box_h = 26, .ofs_x = 3, .ofs_y = -4},
-    {.bitmap_index = 119136, .adv_w = 472, .box_w = 26, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 119305, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 119480, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 119656, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 119852, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 120048, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 120237, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 120420, .adv_w = 472, .box_w = 25, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 120583, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 120759, .adv_w = 472, .box_w = 24, .box_h = 29, .ofs_x = 3, .ofs_y = -4},
-    {.bitmap_index = 120933, .adv_w = 472, .box_w = 24, .box_h = 25, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 121083, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 121259, .adv_w = 472, .box_w = 26, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 121428, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 121603, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 121799, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 121974, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 122177, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 122360, .adv_w = 472, .box_w = 23, .box_h = 26, .ofs_x = 3, .ofs_y = -2},
-    {.bitmap_index = 122510, .adv_w = 472, .box_w = 23, .box_h = 27, .ofs_x = 3, .ofs_y = -4},
-    {.bitmap_index = 122666, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 122848, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 123037, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 123240, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 3, .ofs_y = -2},
-    {.bitmap_index = 123416, .adv_w = 472, .box_w = 23, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 123577, .adv_w = 472, .box_w = 26, .box_h = 25, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 123740, .adv_w = 472, .box_w = 23, .box_h = 25, .ofs_x = 3, .ofs_y = -2},
-    {.bitmap_index = 123884, .adv_w = 472, .box_w = 25, .box_h = 27, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 124053, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 124242, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 124445, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 124634, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 124823, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 125005, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 125188, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 125364, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 125540, .adv_w = 472, .box_w = 26, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 125709, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 125891, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 126073, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 126269, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 3, .ofs_y = -4},
-    {.bitmap_index = 126451, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 126633, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 126822, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 127004, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 127193, .adv_w = 472, .box_w = 24, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 127355, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 127537, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 3, .ofs_y = -4},
-    {.bitmap_index = 127726, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 127909, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 3, .ofs_y = -4},
-    {.bitmap_index = 128098, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 128273, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 128449, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 128625, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 3, .ofs_y = -4},
-    {.bitmap_index = 128801, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 128983, .adv_w = 472, .box_w = 27, .box_h = 25, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 129152, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 129335, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 129517, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 129692, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 129881, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 130070, .adv_w = 472, .box_w = 27, .box_h = 25, .ofs_x = 2, .ofs_y = -2},
-    {.bitmap_index = 130239, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 130422, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 130605, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 130781, .adv_w = 472, .box_w = 23, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 130931, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 131114, .adv_w = 472, .box_w = 24, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 131282, .adv_w = 472, .box_w = 26, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 131451, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 3, .ofs_y = -4},
-    {.bitmap_index = 131640, .adv_w = 472, .box_w = 25, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 131822, .adv_w = 472, .box_w = 26, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 131991, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 132174, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 132363, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 132552, .adv_w = 472, .box_w = 26, .box_h = 26, .ofs_x = 3, .ofs_y = -4},
-    {.bitmap_index = 132721, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 132924, .adv_w = 472, .box_w = 25, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 133087, .adv_w = 472, .box_w = 26, .box_h = 24, .ofs_x = 3, .ofs_y = -2},
-    {.bitmap_index = 133243, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 133418, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 133614, .adv_w = 472, .box_w = 27, .box_h = 25, .ofs_x = 2, .ofs_y = -2},
-    {.bitmap_index = 133783, .adv_w = 472, .box_w = 27, .box_h = 25, .ofs_x = 2, .ofs_y = -2},
-    {.bitmap_index = 133952, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 134127, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 134316, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 134505, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 134688, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 134891, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 135080, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 135263, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 135439, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 135621, .adv_w = 472, .box_w = 25, .box_h = 27, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 135790, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 135965, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 136154, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 136343, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 136526, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 2, .ofs_y = -2},
-    {.bitmap_index = 136702, .adv_w = 472, .box_w = 25, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 136865, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 137054, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 137229, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 137418, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 137607, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 137790, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 137972, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 138168, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 138357, .adv_w = 472, .box_w = 24, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 138525, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 138721, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 138924, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 139120, .adv_w = 472, .box_w = 25, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 139283, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 139472, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 139683, .adv_w = 472, .box_w = 24, .box_h = 25, .ofs_x = 3, .ofs_y = -2},
-    {.bitmap_index = 139833, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 140022, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 140211, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 140407, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 140590, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 140765, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 140961, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 141144, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 141333, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 141522, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 141698, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 141874, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 142063, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 142252, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 142428, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 142617, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 142806, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 142995, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 143177, .adv_w = 472, .box_w = 27, .box_h = 25, .ofs_x = 2, .ofs_y = -2},
-    {.bitmap_index = 143346, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 143522, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 143704, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 143900, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 144089, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 144278, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 3, .ofs_y = -4},
-    {.bitmap_index = 144467, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 144656, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 144839, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 145028, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 145224, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 145420, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 145602, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 145791, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 145967, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 146163, .adv_w = 472, .box_w = 26, .box_h = 26, .ofs_x = 3, .ofs_y = -2},
-    {.bitmap_index = 146332, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 146508, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 146697, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 3, .ofs_y = -4},
-    {.bitmap_index = 146873, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 147069, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 147258, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 147454, .adv_w = 472, .box_w = 25, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 147617, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 147806, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 147988, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 148184, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 148373, .adv_w = 472, .box_w = 24, .box_h = 27, .ofs_x = 3, .ofs_y = -4},
-    {.bitmap_index = 148535, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 3, .ofs_y = -4},
-    {.bitmap_index = 148724, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 148906, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 149088, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 2, .ofs_y = -2},
-    {.bitmap_index = 149264, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 149453, .adv_w = 472, .box_w = 25, .box_h = 27, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 149622, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 149818, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 149994, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 150190, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 150386, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 150569, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 150758, .adv_w = 472, .box_w = 24, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 150926, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 151122, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 151298, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 151474, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 151656, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 151845, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 152028, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 152224, .adv_w = 472, .box_w = 25, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 152406, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 152602, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 152791, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 152974, .adv_w = 472, .box_w = 25, .box_h = 27, .ofs_x = 3, .ofs_y = -4},
-    {.bitmap_index = 153143, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 153339, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 153528, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 153710, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 153906, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 154081, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 154263, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 154452, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 154641, .adv_w = 472, .box_w = 25, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 154804, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 154980, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 155162, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 155351, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 155540, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 155715, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 155911, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 156100, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 156289, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 156478, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 156667, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 3, .ofs_y = -4},
-    {.bitmap_index = 156856, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 157032, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 157214, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 157403, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 157599, .adv_w = 472, .box_w = 26, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 157768, .adv_w = 472, .box_w = 25, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 157931, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 158114, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -2},
-    {.bitmap_index = 158297, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 158486, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 158675, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -2},
-    {.bitmap_index = 158858, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 159041, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 159230, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 159419, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 159602, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 159798, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 159987, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -2},
-    {.bitmap_index = 160170, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 160345, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 160534, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -2},
-    {.bitmap_index = 160717, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 160906, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 161082, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 161278, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 161474, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 161663, .adv_w = 472, .box_w = 25, .box_h = 27, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 161832, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 162028, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 2, .ofs_y = -2},
-    {.bitmap_index = 162204, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 162400, .adv_w = 472, .box_w = 25, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 162563, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 162752, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 162941, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 163130, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 163326, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 163515, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 163698, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 163887, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 164063, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 164252, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 164441, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 164624, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 164813, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 165002, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 165198, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 165380, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 165576, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 165765, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 165968, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 166151, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 166354, .adv_w = 472, .box_w = 24, .box_h = 29, .ofs_x = 3, .ofs_y = -4},
-    {.bitmap_index = 166528, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 166717, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 166900, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 167096, .adv_w = 472, .box_w = 25, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 167278, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 167460, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 2, .ofs_y = -2},
-    {.bitmap_index = 167636, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 167825, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 168008, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 168197, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 168380, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 168569, .adv_w = 472, .box_w = 25, .box_h = 27, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 168738, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 168927, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 169123, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 169312, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 169501, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 169690, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 169873, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 2, .ofs_y = -2},
-    {.bitmap_index = 170049, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 170231, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 170427, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 2, .ofs_y = -2},
-    {.bitmap_index = 170603, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 2, .ofs_y = -2},
-    {.bitmap_index = 170779, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 170968, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 171151, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 171347, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 171536, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 171725, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 171914, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 172090, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 172266, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 172455, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -2},
-    {.bitmap_index = 172638, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 172827, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 173016, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -2},
-    {.bitmap_index = 173199, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 173381, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 173564, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 173753, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 173942, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 174131, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 174320, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 174523, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 174706, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 174902, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 175085, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 175274, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 175477, .adv_w = 472, .box_w = 24, .box_h = 25, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 175627, .adv_w = 472, .box_w = 24, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 175783, .adv_w = 472, .box_w = 23, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 175933, .adv_w = 472, .box_w = 23, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 176094, .adv_w = 472, .box_w = 24, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 176250, .adv_w = 472, .box_w = 24, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 176406, .adv_w = 472, .box_w = 24, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 176562, .adv_w = 472, .box_w = 24, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 176718, .adv_w = 472, .box_w = 24, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 176874, .adv_w = 472, .box_w = 24, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 177042, .adv_w = 472, .box_w = 24, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 177198, .adv_w = 472, .box_w = 24, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 177354, .adv_w = 472, .box_w = 24, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 177510, .adv_w = 472, .box_w = 24, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 177666, .adv_w = 472, .box_w = 24, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 177822, .adv_w = 472, .box_w = 24, .box_h = 27, .ofs_x = 3, .ofs_y = -4},
-    {.bitmap_index = 177984, .adv_w = 472, .box_w = 24, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 178140, .adv_w = 472, .box_w = 28, .box_h = 25, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 178315, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 178511, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 178707, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 178896, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 179085, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 179261, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 179444, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 179627, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 179823, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 180026, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 180208, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 180404, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 180593, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 180782, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 180985, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 181188, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 181370, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 181573, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 181769, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 181965, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 182161, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 182350, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 182532, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 182735, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 182931, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 183113, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 183309, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 183512, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 183715, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 183897, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 184100, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 184289, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 184485, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 184661, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 184850, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 185032, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 185208, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 185397, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 185586, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 185775, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 185971, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 186160, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 186356, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 186559, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 186755, .adv_w = 472, .box_w = 28, .box_h = 25, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 186930, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 187112, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 187295, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 187506, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 187682, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 187865, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 188048, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 188251, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 188447, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 188650, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 188853, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 189049, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 189232, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 189428, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 189604, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 189786, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 189975, .adv_w = 472, .box_w = 27, .box_h = 25, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 190144, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 190320, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 190502, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 190698, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 190901, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 191084, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 191260, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 191463, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 191666, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 191869, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 192051, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 192254, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 192465, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 192661, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 192857, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 193053, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 193242, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 193431, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 193634, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 193816, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 194005, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 194188, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 194384, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 194573, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 194769, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 194958, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 195140, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 195336, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 195525, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 195714, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 195903, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 196086, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 196282, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 196458, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 196654, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 196843, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 197039, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 197228, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 197404, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 197600, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 197796, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 197992, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 198195, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 198384, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 198573, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 198762, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 198965, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 199161, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 199343, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 199546, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 199729, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 199932, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 200135, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 200331, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 200527, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 200723, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 200919, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 201115, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 201311, .adv_w = 472, .box_w = 27, .box_h = 25, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 201480, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 201683, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 201879, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 202075, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 202271, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 202460, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 202649, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 202852, .adv_w = 472, .box_w = 27, .box_h = 25, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 203021, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 203232, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 203421, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 203610, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 203793, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 203989, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 204178, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 204381, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 204564, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 204767, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 204956, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 205152, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 205341, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 2, .ofs_y = -2},
-    {.bitmap_index = 205517, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 205700, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 205896, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 206107, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 206310, .adv_w = 472, .box_w = 25, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 206492, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 206688, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 206884, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 207073, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 207284, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 207480, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 207683, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 207872, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 208048, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 208251, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 208447, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 208643, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 208826, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 209022, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 209225, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 209421, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 209604, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 209793, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 209996, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 210192, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 210395, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 210598, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 210801, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 211004, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 211200, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 211411, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 211614, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 211817, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 212028, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 212224, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 212435, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 212631, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 212834, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 213037, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 213240, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 213436, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 213639, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 213835, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 214038, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 214241, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 214437, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 214633, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 214829, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 215025, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 215221, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 215424, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 215613, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 215795, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 215984, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 216180, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 216383, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 216559, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 216741, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 216937, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 217133, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 217315, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 217518, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 217714, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 217917, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 218120, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 218323, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 218512, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 218701, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 218890, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 219093, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 219289, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 219485, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 219674, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 219870, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 220059, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 220248, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 220451, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 220654, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 220850, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 221046, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 221228, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 221431, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 221627, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 221816, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 222012, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 222208, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 222397, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 222600, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 222811, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 223014, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 223210, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 223413, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 223602, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 223805, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 223994, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 224190, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 224393, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 224582, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 224758, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 224954, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 225157, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 225353, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 225556, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 225759, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 225955, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 226158, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 226361, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 226564, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 226767, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 226956, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 227152, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 227355, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 227558, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 227747, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 227943, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 228146, .adv_w = 472, .box_w = 30, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 228364, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 228560, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 228771, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 228967, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 229156, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 229345, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 229527, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 229730, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 229919, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 230115, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 230318, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 230514, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 230717, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 230920, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 231116, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 231319, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 231530, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 231733, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 231916, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 232127, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 232316, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 232512, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 232715, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 232918, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 233114, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 233303, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 233514, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 233717, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 233913, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 234109, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 234312, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 234515, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 234726, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 234929, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 235140, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 235343, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 235539, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 235742, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 235938, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 236141, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 236344, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 236540, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 236743, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 236946, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 237142, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 237338, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 237549, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 237745, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 237948, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 238159, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 238355, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 238558, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 238747, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 238950, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 239153, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 239329, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 239505, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 239681, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 239864, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 240040, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 240229, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 240425, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 240621, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 240804, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 241007, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 241210, .adv_w = 472, .box_w = 28, .box_h = 25, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 241385, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 241588, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 241777, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 241973, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 242176, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 242365, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 242568, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 242771, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 242953, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 243149, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 243338, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 243527, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 243716, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 243905, .adv_w = 472, .box_w = 24, .box_h = 27, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 244067, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 244263, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 244446, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 244635, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 244824, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 245020, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 245223, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 245412, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 245615, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 245811, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 246007, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 246210, .adv_w = 472, .box_w = 25, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 246392, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 246574, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 246770, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 246966, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 247155, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 2, .ofs_y = -2},
-    {.bitmap_index = 247331, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 247520, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 247709, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 247884, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 248067, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 248250, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 248453, .adv_w = 472, .box_w = 25, .box_h = 27, .ofs_x = 2, .ofs_y = -2},
-    {.bitmap_index = 248622, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 248804, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 248979, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 249175, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 249371, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 249560, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 249749, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 249924, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 250120, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 250331, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 250527, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 250716, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 250919, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 251122, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 251318, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 251514, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 251703, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 251899, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 252074, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 252277, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 252473, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 252648, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 252844, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 253047, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 253250, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 253453, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 253642, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 253838, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 254021, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 254203, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 254386, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 254597, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 254793, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 255004, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 255207, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 255396, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 255607, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 255803, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 256006, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 256209, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 256385, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 256581, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 256757, .adv_w = 472, .box_w = 23, .box_h = 29, .ofs_x = 3, .ofs_y = -4},
-    {.bitmap_index = 256924, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 257113, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 257309, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 257491, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 257687, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 257876, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 258065, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 258241, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 258430, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 258612, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 258794, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 258970, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 259152, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 259328, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 259524, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 259700, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 259889, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 260078, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 260267, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 260456, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 260632, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 260808, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 260997, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 261179, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 261368, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 261557, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 261739, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 261928, .adv_w = 472, .box_w = 26, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 262097, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 262286, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 262475, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 262671, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 262847, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 263036, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 263212, .adv_w = 472, .box_w = 23, .box_h = 27, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 263368, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 263557, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 263740, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 263929, .adv_w = 472, .box_w = 25, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 264111, .adv_w = 472, .box_w = 24, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 264279, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 264461, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 264664, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 264860, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 265063, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 2, .ofs_y = -2},
-    {.bitmap_index = 265239, .adv_w = 472, .box_w = 23, .box_h = 29, .ofs_x = 3, .ofs_y = -4},
-    {.bitmap_index = 265406, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 265595, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 265784, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 265987, .adv_w = 472, .box_w = 24, .box_h = 29, .ofs_x = 3, .ofs_y = -4},
-    {.bitmap_index = 266161, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 266350, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 266525, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 266721, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 266896, .adv_w = 472, .box_w = 25, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 267065, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 267261, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 267450, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 267639, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 267835, .adv_w = 472, .box_w = 23, .box_h = 28, .ofs_x = 3, .ofs_y = -4},
-    {.bitmap_index = 267996, .adv_w = 472, .box_w = 25, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 268178, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 268361, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 268536, .adv_w = 472, .box_w = 25, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 268705, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 268881, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 269070, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 269253, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 269449, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 269631, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 269827, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 270016, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 270205, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 270394, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 270583, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 270772, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 270961, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 271143, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 271332, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -2},
-    {.bitmap_index = 271515, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 271704, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 271893, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 272068, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 272264, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 272460, .adv_w = 472, .box_w = 25, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 272629, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 272818, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 273000, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 273189, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 273378, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 273581, .adv_w = 472, .box_w = 23, .box_h = 27, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 273737, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 273940, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 274129, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 274332, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 274515, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 274690, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 274893, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 275076, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 275272, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 275461, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 275664, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 275860, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 276049, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 276231, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 276427, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 276616, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 2, .ofs_y = -2},
-    {.bitmap_index = 276792, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 276981, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 277157, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 277353, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 277549, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 277752, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 277941, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 278130, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 278305, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 278501, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 278704, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 278893, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 279075, .adv_w = 472, .box_w = 25, .box_h = 25, .ofs_x = 3, .ofs_y = -2},
-    {.bitmap_index = 279232, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 279421, .adv_w = 472, .box_w = 27, .box_h = 24, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 279583, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 279772, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 279975, .adv_w = 472, .box_w = 25, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 280138, .adv_w = 472, .box_w = 25, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 280301, .adv_w = 472, .box_w = 24, .box_h = 26, .ofs_x = 4, .ofs_y = -3},
-    {.bitmap_index = 280457, .adv_w = 472, .box_w = 24, .box_h = 26, .ofs_x = 4, .ofs_y = -3},
-    {.bitmap_index = 280613, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 280809, .adv_w = 472, .box_w = 25, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 280978, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 281167, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 281363, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 281559, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 281741, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 281930, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 282112, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 282308, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 282504, .adv_w = 472, .box_w = 25, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 282686, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 282869, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 283058, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 283254, .adv_w = 472, .box_w = 25, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 283423, .adv_w = 472, .box_w = 23, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 283584, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 283780, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 283962, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 284151, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 284340, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 284536, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 284712, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 284901, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 285083, .adv_w = 472, .box_w = 25, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 285252, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 285441, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 285616, .adv_w = 472, .box_w = 25, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 285798, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 285987, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 286190, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 286372, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 286554, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 286750, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 286946, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 287135, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 287324, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 287500, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 287676, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 287872, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 288075, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 288264, .adv_w = 472, .box_w = 24, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 288432, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 288608, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 288797, .adv_w = 472, .box_w = 24, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 288965, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 289154, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 289350, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 289546, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 289749, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 289938, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 290149, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 290360, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 290556, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 290752, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 290948, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 291151, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 291347, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 291536, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 291725, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 291921, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 292132, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 292328, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 292531, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 292734, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 292930, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 293141, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 293344, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 293547, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 293750, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 293946, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 294142, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 294345, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 294548, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 294759, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 294962, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 295173, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 295362, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 295565, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 295776, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 295972, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 296183, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 296386, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 296589, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 296800, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 297003, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 297206, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 297402, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 297613, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 297802, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 297985, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 298188, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 298377, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 298580, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 298763, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 298974, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 299177, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 299380, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 2, .ofs_y = -2},
-    {.bitmap_index = 299556, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 299739, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 299935, .adv_w = 472, .box_w = 22, .box_h = 26, .ofs_x = 4, .ofs_y = -3},
-    {.bitmap_index = 300078, .adv_w = 472, .box_w = 23, .box_h = 27, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 300234, .adv_w = 472, .box_w = 25, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 300416, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 300592, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 300781, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 300963, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 301152, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 301341, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 301537, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 301733, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 301929, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 302111, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 302314, .adv_w = 472, .box_w = 26, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 302483, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 302672, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 302861, .adv_w = 472, .box_w = 26, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 303030, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 303226, .adv_w = 472, .box_w = 25, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 303408, .adv_w = 472, .box_w = 24, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 303570, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 303752, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 303941, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 304130, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 304313, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 304502, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 304685, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 304874, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 305063, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 305252, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 305448, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 305644, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 305833, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 306022, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 306218, .adv_w = 472, .box_w = 15, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 306323, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 306534, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 306730, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 306926, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 307129, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 307325, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 307521, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 307724, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 307927, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 308116, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 308305, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 308516, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 308712, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 308901, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 309097, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 309293, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 309496, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 309699, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 309895, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 310098, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 310301, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 310490, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 310679, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 310882, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 311085, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 311288, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 311499, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 311710, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 311913, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 312124, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 312320, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 312516, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 312712, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 312901, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 313083, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 313259, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 313455, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 313651, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 313854, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 314057, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 314253, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 314449, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 314638, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 314827, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 315016, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 315219, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 315430, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 315641, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 315844, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 316040, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 316243, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 316446, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 316635, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 316831, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 317034, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 317223, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 317434, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 317630, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 317826, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 318015, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 318211, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 318407, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 318610, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 318799, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 318995, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 319191, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 319387, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 319590, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 319786, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 319982, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 320178, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 320374, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 320570, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 320766, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 320969, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 321172, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 321383, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 321579, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 321782, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 321985, .adv_w = 472, .box_w = 28, .box_h = 30, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 322195, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 322406, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 322609, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 322805, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 323016, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 323227, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 323430, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 323626, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 323829, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 324032, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 324221, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 324432, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 324614, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 324817, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 325013, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 325216, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 325419, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 325615, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 325818, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 326014, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 326196, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 326399, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 326595, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 326806, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 327009, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 327205, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 327408, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 327584, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 327787, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 327998, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 328174, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 328370, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 328566, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 328755, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 328951, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 329140, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 329329, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 329540, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 329743, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 329939, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 330150, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 330346, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 330549, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 330745, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 330948, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 331130, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 331312, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 331515, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 331704, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 331900, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 332103, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 332299, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 332502, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 332698, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 332894, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 333083, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 333279, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 333482, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 333685, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 333881, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 334070, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 334253, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 334449, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 334652, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 334834, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 335037, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 335226, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 335422, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 335625, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 335836, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 336025, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 336236, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 336432, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 336635, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 336831, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 337042, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 337245, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 337441, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 337637, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 337833, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 338029, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 338240, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 338429, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 338625, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 338821, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 339024, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 339227, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 339416, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 339599, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 339795, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 339991, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 340202, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 340398, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 340609, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 340820, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 341023, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 341226, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 341422, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 341633, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 341844, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 342047, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 342243, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 342446, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 342642, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 342825, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 343028, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 343231, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 343427, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 343616, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 343819, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 344015, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 344218, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 344429, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 344632, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 344828, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 345031, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 345242, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 345453, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 345642, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 345845, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 346048, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 346224, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 346413, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 346616, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 346812, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 347001, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 347197, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 347400, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 347589, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 347785, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 347974, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 348157, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 348368, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 348557, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 348768, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 348944, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 349133, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 349309, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 349498, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 349701, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 349890, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 350093, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 350296, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 350485, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 350667, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 350863, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 351066, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 351269, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 351465, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 351661, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 351850, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 352032, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 352228, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 352404, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 352593, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 352776, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 352972, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 353175, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 353378, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 353560, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 353749, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 353945, .adv_w = 472, .box_w = 25, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 354114, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 354317, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 354513, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 354709, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 354885, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 355067, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 355256, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 355445, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 355648, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 355851, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 356047, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 356258, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 356454, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 356643, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 356839, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 357028, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 357224, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 357435, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 357631, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 357842, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 358031, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 358220, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 358402, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 358591, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 358787, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 358990, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 359186, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 359389, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 359585, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 359788, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 359984, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 360180, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 360383, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 360572, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 360775, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 360971, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 361167, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 361370, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 361566, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 361769, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 361972, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 362168, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 362371, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 362574, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 362750, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 362939, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 363135, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 363338, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 363534, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 363723, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 363919, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 364122, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 364318, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 364514, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 364710, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 364906, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 365109, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 365305, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 365508, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 365697, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 365886, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 366089, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 366292, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 366488, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 366684, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 366866, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 367048, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 367251, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 367427, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 367616, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 367819, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 368008, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 368219, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 368408, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 368584, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 368787, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 368976, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 369172, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 369368, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 369557, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 369760, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 369956, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 370145, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 370341, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 370544, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 370747, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 370943, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 371146, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 371357, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 371560, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 371763, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 371974, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 372177, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 372380, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 372576, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 372772, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 372975, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 373171, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 373360, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 373563, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 373759, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 373955, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 374151, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 374347, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 374543, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 374726, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 374922, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 375118, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 375329, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 375518, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 375714, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 375925, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 376114, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 376303, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 376499, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 376688, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 376884, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 377087, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 377290, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 377493, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 377689, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 377871, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 378054, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 378243, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 378439, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 378622, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 378811, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 379000, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 379189, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 379392, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 379588, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 379784, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 379980, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 380176, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 380372, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 380561, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 380757, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 380953, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 381149, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 381352, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 381535, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 381738, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 381934, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 382130, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 382319, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 382522, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 382711, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 382922, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 383118, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 383314, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 383503, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 383699, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 383895, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 384084, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 384273, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 384469, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 384658, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 384854, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 385050, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 385239, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 385428, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 385631, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 385834, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 386030, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 386241, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 386430, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 386619, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 386801, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 386997, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 387193, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 387375, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 387564, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 387775, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 387986, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 388197, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 388393, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 388582, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 388785, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 388988, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 389191, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 389380, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 389576, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 389772, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 389975, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 390171, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 390367, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 390578, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 390774, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 390977, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 391180, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 391369, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 391572, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 391768, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 391957, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 392153, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 392349, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 392545, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 392756, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 392945, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 393148, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 393351, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 393547, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 393758, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 393954, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 394150, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 394353, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 394556, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 394767, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 394963, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 395159, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 395348, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 395544, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 395747, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 395950, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 396153, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 396349, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 396545, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 396748, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 396944, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 397147, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 397336, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 397539, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 397742, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 397938, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 398127, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 398323, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 398512, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 398723, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 398926, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 399137, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 399319, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 399522, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 399718, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 399921, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 400124, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 400327, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 400530, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 400726, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 400929, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 401125, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 401321, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 401524, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 401735, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 401938, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 402141, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 402337, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 402533, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 402736, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 402932, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 403143, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 403332, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 403535, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 403746, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 403929, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 404132, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 404328, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 404539, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 404735, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 404938, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 405149, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 405338, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 405549, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 405752, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 405955, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 406166, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 406355, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 406558, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 406761, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 406957, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 407160, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 407371, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 407567, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 407763, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 407966, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 408162, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 408373, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 408584, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 408795, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 408998, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 409209, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 409420, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 409616, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 409819, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 410015, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 410218, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 410421, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 410624, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 410813, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 411002, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 411198, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 411394, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 411597, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 411800, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 412003, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 412214, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 412410, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 412599, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 412802, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 412998, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 413194, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 413397, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 413600, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 413789, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 413971, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 414174, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 414385, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 414588, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 414791, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 414987, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 415176, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 415365, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 415568, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 3, .ofs_y = -4},
-    {.bitmap_index = 415750, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 415953, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 416164, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 416353, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 416556, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 416752, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 416941, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 417144, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 417347, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 417550, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 417761, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 417972, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 418168, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 418371, .adv_w = 472, .box_w = 29, .box_h = 30, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 418589, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 418785, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 418961, .adv_w = 472, .box_w = 26, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 419130, .adv_w = 472, .box_w = 20, .box_h = 25, .ofs_x = 5, .ofs_y = -3},
-    {.bitmap_index = 419255, .adv_w = 472, .box_w = 27, .box_h = 25, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 419424, .adv_w = 472, .box_w = 24, .box_h = 28, .ofs_x = 3, .ofs_y = -4},
-    {.bitmap_index = 419592, .adv_w = 472, .box_w = 23, .box_h = 29, .ofs_x = 4, .ofs_y = -4},
-    {.bitmap_index = 419759, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 419941, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 420123, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 420334, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 420530, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 420706, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 420882, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 421058, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 3, .ofs_y = -4},
-    {.bitmap_index = 421247, .adv_w = 472, .box_w = 25, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 421410, .adv_w = 472, .box_w = 26, .box_h = 25, .ofs_x = 3, .ofs_y = -2},
-    {.bitmap_index = 421573, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 421762, .adv_w = 472, .box_w = 24, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 421930, .adv_w = 472, .box_w = 25, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 422093, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 422282, .adv_w = 472, .box_w = 25, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 422445, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 422634, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 3, .ofs_y = -4},
-    {.bitmap_index = 422823, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 423005, .adv_w = 472, .box_w = 22, .box_h = 27, .ofs_x = 4, .ofs_y = -4},
-    {.bitmap_index = 423154, .adv_w = 472, .box_w = 23, .box_h = 27, .ofs_x = 3, .ofs_y = -4},
-    {.bitmap_index = 423310, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 3, .ofs_y = -4},
-    {.bitmap_index = 423485, .adv_w = 472, .box_w = 25, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 423654, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 423843, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 3, .ofs_y = -4},
-    {.bitmap_index = 424025, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 424208, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 424411, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 424614, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 424817, .adv_w = 472, .box_w = 26, .box_h = 25, .ofs_x = 2, .ofs_y = -2},
-    {.bitmap_index = 424980, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 425163, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 425338, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 425527, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 425710, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 425899, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 426088, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 426264, .adv_w = 472, .box_w = 26, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 426433, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 426629, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 426805, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 426994, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 427176, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 427365, .adv_w = 472, .box_w = 26, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 427534, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 427730, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 427919, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 428115, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 428291, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 428480, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 428676, .adv_w = 472, .box_w = 24, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 428832, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 429014, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 429203, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 3, .ofs_y = -4},
-    {.bitmap_index = 429399, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 429602, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -2},
-    {.bitmap_index = 429785, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 429967, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 430156, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 3, .ofs_y = -4},
-    {.bitmap_index = 430338, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 3, .ofs_y = -4},
-    {.bitmap_index = 430527, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 430710, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 430899, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 431075, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 431286, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 431475, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 431664, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 431860, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -2},
-    {.bitmap_index = 432043, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 432225, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 432414, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 432590, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 432779, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 432968, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 433157, .adv_w = 472, .box_w = 22, .box_h = 25, .ofs_x = 4, .ofs_y = -3},
-    {.bitmap_index = 433295, .adv_w = 472, .box_w = 24, .box_h = 27, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 433457, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 433646, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 433835, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 434017, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 434213, .adv_w = 472, .box_w = 23, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 434374, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 434577, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 434766, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 434969, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 435158, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 435334, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 435523, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 435719, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 435901, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 436097, .adv_w = 472, .box_w = 24, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 436271, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 436447, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 436629, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 436811, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 437014, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 437210, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 437399, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 437595, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 437798, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 437994, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 438190, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 438393, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 438575, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 438786, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 438982, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 439193, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 439382, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 439593, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 439796, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 439985, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 440196, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 440407, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 440603, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 440806, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 440995, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 441206, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 441409, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 441612, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 441815, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 442018, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 442214, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 442410, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 442599, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 442788, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 442999, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 443210, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 443413, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 443616, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 443798, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 444001, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 444212, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 444408, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 444611, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 444807, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 445018, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 445229, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 445432, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 445635, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 445838, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 446041, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 446244, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 446447, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 446643, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 446832, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 447043, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 447225, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 447436, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 447647, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 447836, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 448047, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 448243, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 448454, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 448657, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 448853, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 449049, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 449245, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 449441, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 449644, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 449855, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 450051, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 450254, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 450443, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 450632, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 450828, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 451039, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 451250, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 451461, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 451657, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 451853, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 452049, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 452252, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 452441, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 452630, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 452826, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 453015, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 453211, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 453400, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 453611, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 453814, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 454010, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 454221, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 454417, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 454620, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 454809, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 455005, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 455208, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 455397, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 455600, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 455789, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 455992, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 456188, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 456391, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 456594, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 456797, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 456993, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 457204, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 457393, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 457596, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 457807, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 458003, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 458206, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 458409, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 458612, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 458801, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 459004, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 459215, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 459426, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 459609, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 459820, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 460023, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 460219, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 460430, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 460641, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 460844, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 461055, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 461231, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 461427, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 461623, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 461826, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 462029, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 462232, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 462435, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 462624, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 462827, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 463038, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 463241, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 463437, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 463626, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 463809, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 464005, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 464201, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 464397, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 464600, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 464789, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 464985, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 465188, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 465391, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 465594, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 465797, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 466000, .adv_w = 472, .box_w = 30, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 466218, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 466414, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 466597, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 466793, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 466982, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 467193, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 467396, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 467607, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 467803, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 468006, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 468202, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 468413, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 468616, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 468812, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 469015, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 469211, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 469414, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 469625, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 469821, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 470024, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 470227, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 470430, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 470641, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 470844, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 471027, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 471230, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 471426, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 471637, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 471833, .adv_w = 472, .box_w = 30, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 472043, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 472232, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 472421, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 472624, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 472827, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 473030, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 473233, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 473429, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 473632, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 473835, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 474046, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 474249, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 474452, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 474655, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 474858, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 475061, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 475264, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 475467, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 475678, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 475881, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 476084, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 476280, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 476483, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 476679, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 476882, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 477078, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 477274, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 477477, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 477680, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 477883, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 478086, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 478289, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 478485, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 478688, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 478899, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 479088, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 479277, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 479480, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 479676, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 479887, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 480090, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 480286, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 480489, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 480692, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 480888, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 481071, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 481260, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 481463, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 481674, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 481870, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 482073, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 482256, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 482459, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 482655, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 482851, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 483054, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 483257, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 483460, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 483663, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 483859, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 484062, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 484265, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 484448, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 484644, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 484827, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 485023, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 485226, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 485422, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 485618, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 485829, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 486032, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 486228, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 486431, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 486634, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 486837, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 487048, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 487251, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 487454, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 487643, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 487839, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 488035, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 488246, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 488449, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 488645, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 488856, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 489059, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 489270, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 489473, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 489676, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 489879, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 490082, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 490278, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 490474, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 490677, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 490888, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 491091, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 491294, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 491490, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 491701, .adv_w = 472, .box_w = 30, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 491911, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 492114, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 492325, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 492528, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 492739, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 492942, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 493145, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 493348, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 493551, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 493754, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 493965, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 494161, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 494357, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 494560, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 494771, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 494974, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 495170, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 495373, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 495584, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 495780, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 495976, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 496179, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 496382, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 496578, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 496789, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 496992, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 497203, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 497392, .adv_w = 472, .box_w = 27, .box_h = 24, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 497554, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 497737, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 497926, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 498108, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 498319, .adv_w = 472, .box_w = 28, .box_h = 25, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 498494, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 498677, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 498859, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 499048, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 499244, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 499433, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 499636, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 499839, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 500050, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 500253, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 500449, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 500652, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 500855, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 501051, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 501240, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 501451, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 501654, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 501850, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 502033, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 502236, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 502447, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 502636, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 3, .ofs_y = -4},
-    {.bitmap_index = 502812, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 503008, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 503204, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 503393, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 503596, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 503792, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 504003, .adv_w = 472, .box_w = 27, .box_h = 25, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 504172, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 504354, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 504543, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 504746, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 504949, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 505160, .adv_w = 472, .box_w = 25, .box_h = 27, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 505329, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 505512, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 505701, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 505884, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 506080, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 506276, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 506459, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 506662, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 506865, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 507068, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 507264, .adv_w = 472, .box_w = 25, .box_h = 26, .ofs_x = 3, .ofs_y = -2},
-    {.bitmap_index = 507427, .adv_w = 472, .box_w = 25, .box_h = 27, .ofs_x = 3, .ofs_y = -4},
-    {.bitmap_index = 507596, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 507792, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 507988, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 508191, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 508402, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 508605, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 508801, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 509012, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 509223, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 509426, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 509629, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 509825, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 510028, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 510231, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 510420, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 510631, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 510827, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 511030, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 511226, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 511422, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 511625, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 511814, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 512010, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 512206, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 512402, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 512585, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 512768, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 512964, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 513160, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 513356, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 513545, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 513721, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 513910, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 514092, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 514275, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 514464, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 514646, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 514835, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 515031, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 515214, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 515396, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 515572, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 515761, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 515950, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 516146, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 516328, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 516517, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 516720, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 516896, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 517092, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 517281, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 517470, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 517666, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 517862, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 518051, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 518247, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 518443, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 518632, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 518821, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 519010, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 519199, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 519395, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 519606, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 519802, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 520005, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 520201, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 520390, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 520579, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 520768, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 520964, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 521147, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 521336, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 521525, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 521714, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 521910, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 522092, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 522281, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 522484, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 522680, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 522869, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 523052, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 523248, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 523444, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 523619, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 523801, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 523990, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 524166, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 524349, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 524545, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 524734, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 524930, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 525112, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 525308, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 525491, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 525680, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 525883, .adv_w = 472, .box_w = 25, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 526065, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 526261, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 526450, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 526639, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 526835, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 527031, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 527213, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 527389, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 527578, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 527761, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 527950, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 528153, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 528349, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 528538, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 528734, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 528917, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 529120, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 529295, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 529491, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 529687, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 529883, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 530086, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 530282, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 530478, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 530660, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 530843, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 531046, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 531235, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 531418, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 531614, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 531810, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 532006, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 532189, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 532372, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 532554, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 532750, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 532926, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 533108, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 533304, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 533507, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 533710, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 533906, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 534102, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 534284, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 534480, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 534676, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 534872, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 535068, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 535257, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 535460, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 535663, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 535852, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 536034, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 536237, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 536419, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 536608, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 536790, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 536972, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 537168, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 537357, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 537546, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 537757, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 537953, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 538136, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 538347, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 538536, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 538725, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 538921, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 539117, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 539293, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 539489, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 539700, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 539876, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 540072, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 540261, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 540457, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 540653, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 540842, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 541038, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 541241, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 541437, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 541633, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 541822, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 542011, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 542214, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 542403, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 542592, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 542788, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 542991, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 543174, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 543363, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 543552, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 543755, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 543951, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 544147, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 544336, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 544525, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 544714, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 544910, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 545086, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 545282, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 545478, .adv_w = 472, .box_w = 25, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 545647, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 545843, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 546032, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 546228, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 546431, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 546620, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 546816, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 547012, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 547188, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 547370, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 547566, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 547762, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 547965, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 548147, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 548329, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 548532, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 548728, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 548911, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 549100, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 549303, .adv_w = 472, .box_w = 26, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 549472, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 549648, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 549844, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 550047, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 550230, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 550426, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 550622, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 550825, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 551014, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 551203, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 551392, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 551588, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 551784, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 551980, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 552183, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 552379, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 552575, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 552771, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 552974, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 553177, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 553366, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 553549, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 553745, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 553934, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 554137, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 554319, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 554522, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 554711, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 554907, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 555096, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 555292, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 555474, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 555663, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 555866, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 556062, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 556265, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 556454, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 556657, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 556860, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 557056, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 557252, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 557448, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 557651, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 557854, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 558050, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 558246, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 558429, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 558625, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 558807, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 558996, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 559192, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 559368, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 559564, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 559775, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 559978, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 560174, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 560356, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 560545, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 560734, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 560917, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 561113, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 561302, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 561478, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 561674, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 561870, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 562059, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 562255, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 562451, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 562654, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 562843, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 563054, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 563243, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 563446, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 563657, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 563853, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 564049, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 564245, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 564441, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 564617, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 564806, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 565002, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 565205, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 565408, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 565590, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 565786, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 565968, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 566157, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 566353, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 566542, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 566738, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 566921, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 567097, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 567286, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 567475, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 567678, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 567881, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 568077, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 568273, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 568469, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 568665, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 568861, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 569037, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 569240, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 569429, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 569640, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 569836, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 570039, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 570228, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 570424, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 570613, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 570802, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 570998, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 571187, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 571383, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 571579, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 571775, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 571978, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 572174, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 572363, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 572559, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 572762, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 572945, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 573141, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 573344, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 573533, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 573729, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 573925, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 574128, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 574317, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 574506, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 574709, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 574898, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 575094, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 575305, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 575501, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 575697, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 575900, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 576089, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 576278, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 576474, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 576670, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 576846, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 577049, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 577245, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 577441, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 577637, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 577840, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 578036, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 578239, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 578428, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 578631, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 578820, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 579023, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 579219, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 579401, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 579590, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 579793, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 579989, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 580185, .adv_w = 472, .box_w = 28, .box_h = 30, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 580395, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 580598, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 580801, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 581004, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 581207, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 581410, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 581613, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 581802, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 582005, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 582194, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 582383, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 582579, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 582768, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 582957, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 583160, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 583363, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 583559, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 583755, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 583958, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 584154, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 584350, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 584546, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 584735, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 584931, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 585113, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 585316, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 585519, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 585701, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 585897, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 586093, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 586282, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 586471, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 586647, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 586830, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 587019, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 587215, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 587411, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 587607, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 587810, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 588013, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 588209, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 588405, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 588608, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 588804, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 589000, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 589203, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 589399, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 589588, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 589799, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 590002, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 590198, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 590394, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 590597, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 590793, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 590989, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 591185, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 591388, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 591584, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 591780, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 591991, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 592187, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 592383, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 592579, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 592790, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 592986, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 593189, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 593392, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 593588, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 593777, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 593960, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 594171, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 594360, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 594556, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 594752, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 594955, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 595158, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 595361, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 595557, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 595760, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 595956, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 596152, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 596355, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 596538, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 596741, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 596944, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 597147, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 597343, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 597546, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 597742, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 597938, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 598141, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 598344, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 598540, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 598736, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 598939, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 599121, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 599324, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 599527, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 599730, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 599933, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 600129, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 600325, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 600508, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 600711, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 600914, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 601110, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 601293, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 601489, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 601692, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 601881, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 602077, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 602259, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 602462, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 602651, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 602847, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 603058, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 603254, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 603436, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 603639, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 603842, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 604053, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 604256, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 604445, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 604628, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 604839, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 605035, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 605224, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 605420, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 605631, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 605834, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 606045, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 606248, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 606451, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 606654, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 606850, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 607053, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 607256, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 607432, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 607621, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 607817, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 608013, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 608216, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 608412, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 608615, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 608818, .adv_w = 472, .box_w = 22, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 608978, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 609174, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 609385, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 609574, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 609785, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 609996, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 610199, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 610410, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 610621, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 610797, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 610986, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 611189, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 611378, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 611567, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 611756, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 611952, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 612155, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 612344, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 612533, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 612722, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 612911, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 613100, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 613289, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 613478, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 613681, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 613870, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 614073, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 614276, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 614479, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 614682, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 614878, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 615074, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 615263, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 615474, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 615670, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 615881, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 616092, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 616268, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 616464, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 616675, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 616864, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 617060, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 617263, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 617466, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 617669, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 617852, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 618048, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 618251, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 618440, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 618636, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 618839, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 619042, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 619238, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 619441, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 619644, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 619847, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 620050, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 620239, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 620435, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 620624, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 620820, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 621023, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 621219, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 621415, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 621611, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 621800, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 622003, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 622199, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 622402, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 622585, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 622781, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 622984, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 623180, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 623391, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 623580, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 623769, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 623965, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 624161, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 624364, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 624560, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 624756, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 624938, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 625114, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 625317, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 625506, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 625717, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 625920, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 626109, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 626305, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 626501, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 626704, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 626907, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 627096, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 627299, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 627495, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 627706, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 627902, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 628105, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 628308, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 628511, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 628722, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 628918, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 629121, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 629310, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 629506, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 629695, .adv_w = 472, .box_w = 27, .box_h = 25, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 629864, .adv_w = 472, .box_w = 27, .box_h = 24, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 630026, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 630208, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 630397, .adv_w = 472, .box_w = 30, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 630607, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 630796, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 630972, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 631183, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 631359, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 631570, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 631746, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 631942, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 632124, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 632335, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 632524, .adv_w = 472, .box_w = 28, .box_h = 25, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 632699, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 632888, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 633099, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 633302, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 633498, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 633681, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 633877, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 634066, .adv_w = 472, .box_w = 28, .box_h = 25, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 634241, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 634430, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 634619, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 634808, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 635011, .adv_w = 472, .box_w = 28, .box_h = 24, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 635179, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 635375, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 635564, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 635760, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 635963, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 636159, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 636341, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 636523, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 636726, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 636915, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 637111, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 637300, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 637482, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 637685, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 637888, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 638091, .adv_w = 472, .box_w = 28, .box_h = 25, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 638266, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 638462, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 638665, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 638861, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 639064, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 639267, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 639456, .adv_w = 472, .box_w = 28, .box_h = 25, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 639631, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 639820, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 640016, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 640212, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 640401, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 640583, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 640779, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 640975, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 641178, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 641381, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 641584, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 641780, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 641976, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 642172, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 642348, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 642524, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 642720, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 642896, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 643072, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 643255, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 643437, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 643626, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 643822, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 644005, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 644194, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 644397, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 644586, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 644789, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 644971, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 645167, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 645378, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 645581, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 645770, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 645946, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 646135, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 646331, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 646520, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 646716, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 646919, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 647130, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 647326, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 647515, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 647718, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 647929, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 648140, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 648351, .adv_w = 472, .box_w = 30, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 648554, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 648737, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 648940, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 649143, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 649339, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 649515, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 649718, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 649914, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 650110, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 650313, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 650516, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 650692, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 650888, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 651064, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 651267, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 651470, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 651666, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 651862, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 652044, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 652226, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 652415, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 652611, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 652800, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 652989, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 653172, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 653355, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 653538, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 653720, .adv_w = 472, .box_w = 25, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 653883, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 654058, .adv_w = 472, .box_w = 23, .box_h = 25, .ofs_x = 3, .ofs_y = -2},
-    {.bitmap_index = 654202, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 654391, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 654573, .adv_w = 472, .box_w = 23, .box_h = 25, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 654717, .adv_w = 472, .box_w = 23, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 654878, .adv_w = 472, .box_w = 23, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 655028, .adv_w = 472, .box_w = 23, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 655189, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 655365, .adv_w = 472, .box_w = 25, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 655534, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 655716, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 655892, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 656067, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 656256, .adv_w = 472, .box_w = 25, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 656438, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 656627, .adv_w = 472, .box_w = 24, .box_h = 27, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 656789, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 657000, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 657203, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 657392, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 657581, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 2, .ofs_y = -2},
-    {.bitmap_index = 657757, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 657953, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 658149, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 658345, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 658541, .adv_w = 472, .box_w = 24, .box_h = 27, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 658703, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 658892, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 659081, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -2},
-    {.bitmap_index = 659264, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 659453, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 659664, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 659867, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 660070, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 660259, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 660462, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 660665, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 660868, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 661071, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 661274, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 661485, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 661688, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 661891, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 662087, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 662298, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 662509, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 662712, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 662915, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 663118, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 663321, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 663517, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 663706, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 663917, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 664120, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 664331, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 664527, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 664730, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 664933, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 665144, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 665355, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 665566, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 665755, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 665951, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 666147, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 666358, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 666569, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 666765, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 666976, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 667187, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 667390, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 667593, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 667789, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 667992, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 668195, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 668398, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 668609, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 668820, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 669016, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 669227, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 669430, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 669641, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 669844, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 670055, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 670258, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 670469, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 670672, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 670868, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 671079, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 671282, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 671485, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 671696, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 671899, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 672102, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 672298, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 672509, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 672712, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 672915, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 673118, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 673321, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 673517, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 673720, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 673931, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 674134, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 674337, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 674540, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 674743, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 674946, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 675157, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 675360, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 675571, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 675774, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 675977, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 676188, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 676384, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 676595, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 676806, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 677009, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 677212, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 677415, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 677618, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 677814, .adv_w = 472, .box_w = 22, .box_h = 29, .ofs_x = 4, .ofs_y = -4},
-    {.bitmap_index = 677974, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 678157, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 678353, .adv_w = 472, .box_w = 24, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 678521, .adv_w = 472, .box_w = 24, .box_h = 29, .ofs_x = 3, .ofs_y = -4},
-    {.bitmap_index = 678695, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 678878, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 3, .ofs_y = -4},
-    {.bitmap_index = 679067, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 679270, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 679459, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 679635, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 679824, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 680020, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 680209, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 680412, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 680615, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 680818, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 681021, .adv_w = 472, .box_w = 28, .box_h = 23, .ofs_x = 1, .ofs_y = -1},
-    {.bitmap_index = 681182, .adv_w = 472, .box_w = 28, .box_h = 25, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 681357, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 681546, .adv_w = 472, .box_w = 28, .box_h = 25, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 681721, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 681897, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 682086, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 682268, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 682450, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 682639, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 682828, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 683017, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 683206, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 683402, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 683585, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 683774, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 683957, .adv_w = 472, .box_w = 27, .box_h = 25, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 684126, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 684308, .adv_w = 472, .box_w = 26, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 684477, .adv_w = 472, .box_w = 26, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 684646, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 684842, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 685031, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 685214, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 685410, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 685621, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 685797, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 685973, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 686169, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 686344, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 686547, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 686723, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 686919, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 687108, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 2, .ofs_y = -2},
-    {.bitmap_index = 687284, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 687467, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 687656, .adv_w = 472, .box_w = 27, .box_h = 25, .ofs_x = 2, .ofs_y = -2},
-    {.bitmap_index = 687825, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 688036, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 688225, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 688414, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 688590, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 688786, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 688975, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 3, .ofs_y = -4},
-    {.bitmap_index = 689164, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 689339, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 689528, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 3, .ofs_y = -2},
-    {.bitmap_index = 689704, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 3, .ofs_y = -4},
-    {.bitmap_index = 689880, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 690069, .adv_w = 472, .box_w = 27, .box_h = 25, .ofs_x = 2, .ofs_y = -2},
-    {.bitmap_index = 690238, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 690413, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 690616, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 690798, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -2},
-    {.bitmap_index = 690981, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 691157, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 3, .ofs_y = -4},
-    {.bitmap_index = 691339, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 691515, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 691691, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 691880, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 692083, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 692279, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 692454, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 692643, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -2},
-    {.bitmap_index = 692826, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 693022, .adv_w = 472, .box_w = 25, .box_h = 29, .ofs_x = 3, .ofs_y = -4},
-    {.bitmap_index = 693204, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 693387, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 693569, .adv_w = 472, .box_w = 26, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 693738, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -2},
-    {.bitmap_index = 693921, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 694117, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 3, .ofs_y = -4},
-    {.bitmap_index = 694306, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 3, .ofs_y = -4},
-    {.bitmap_index = 694488, .adv_w = 472, .box_w = 25, .box_h = 27, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 694657, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 2, .ofs_y = -2},
-    {.bitmap_index = 694833, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 695015, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 695197, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 695380, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -2},
-    {.bitmap_index = 695563, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 695759, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 695955, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 696151, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 696327, .adv_w = 472, .box_w = 30, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 696537, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 696733, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 696936, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 697111, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 697286, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 697489, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 697692, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 697888, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 698091, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 698294, .adv_w = 472, .box_w = 27, .box_h = 25, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 698463, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 698652, .adv_w = 472, .box_w = 28, .box_h = 25, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 698827, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 699030, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 699226, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 699429, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 699612, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 699788, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 699977, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 700180, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 700383, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 700565, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 700768, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 700964, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 701175, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 701378, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 701574, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 701785, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 701988, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 702177, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 702373, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 702576, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 702772, .adv_w = 472, .box_w = 30, .box_h = 26, .ofs_x = -1, .ofs_y = -3},
-    {.bitmap_index = 702967, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 703163, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 703366, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 703555, .adv_w = 472, .box_w = 29, .box_h = 25, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 703737, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 703948, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 704137, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 704333, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 704522, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 704725, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 704908, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 705104, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 705293, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 705496, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 705685, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 705861, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 706057, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 706246, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 706449, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 706645, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 706848, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 707044, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 707247, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 707458, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 707654, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 707850, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 708046, .adv_w = 472, .box_w = 30, .box_h = 26, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 708241, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 708424, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 708613, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 708824, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 709007, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 709196, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 709392, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 709595, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 709798, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 710001, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 710204, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 710407, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 710610, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 710813, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 711016, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 711219, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 711430, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 711612, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 711801, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 711997, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 712193, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 712396, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 712592, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 712803, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 712999, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 713210, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 713406, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 713602, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 713805, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 714008, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 714204, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 714393, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 714582, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 714785, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 714988, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 715184, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 715395, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 715606, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 715795, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 715998, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 716187, .adv_w = 472, .box_w = 30, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 716405, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 716616, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 716819, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 717022, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 717198, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 717387, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 717598, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 717794, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 718005, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 718208, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 718397, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 718593, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 718796, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 718985, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 719174, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 719377, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 719588, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 719791, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 719994, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 720205, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 720408, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 720619, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 720830, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 721033, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 721229, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 721432, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 721621, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 721810, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 722013, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 722224, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 722400, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 722603, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 722806, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 723002, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 723198, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 723409, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 723620, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 723823, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 724019, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 724230, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 724433, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 724636, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 724839, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 725042, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 725238, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 725441, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 725630, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 725833, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 726044, .adv_w = 472, .box_w = 24, .box_h = 27, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 726206, .adv_w = 472, .box_w = 27, .box_h = 30, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 726409, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 726612, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 726801, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 726997, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 727193, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 727396, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 727585, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 727774, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 727977, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 728166, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 728362, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 728573, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 728762, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 728958, .adv_w = 472, .box_w = 30, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 729161, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 729357, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 729560, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 729749, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 729945, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 730141, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 730352, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 730563, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 730759, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 730955, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 731158, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 731354, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 731557, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 731760, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 731963, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 732159, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 732362, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 732551, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 732727, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 732909, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 733112, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 733308, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 733511, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 733722, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 733925, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 734108, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 734311, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 734514, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 734717, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 734900, .adv_w = 472, .box_w = 30, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 735110, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 735313, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 735509, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 735712, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 735915, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 736118, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 736321, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 736532, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 736728, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 736924, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 737113, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 737309, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 737498, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 737681, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 737870, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 738059, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 738255, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 738451, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 738640, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 738836, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 739025, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 739208, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 739384, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 739580, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 739763, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 739952, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 740155, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 740344, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 740540, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 740729, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 740925, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 741121, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 741304, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 741493, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 741682, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 741885, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 742074, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 742257, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 742468, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 742664, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 742853, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 743042, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 743238, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 743434, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 743617, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 743813, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 744009, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 744212, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 744395, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 744584, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 744773, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 744984, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 745187, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 745390, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 745586, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 745782, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 745971, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 746167, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 746356, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 746539, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 746735, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 746931, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 747134, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 747337, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 747520, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 747709, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 747898, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 748087, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 748276, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 748465, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 748654, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 748857, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 749046, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 749235, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 749431, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 749620, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 749809, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 749998, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 2, .ofs_y = -2},
-    {.bitmap_index = 750174, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 750377, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 750573, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 750776, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 750972, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 751161, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 751350, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 751553, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 751742, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 751938, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 752127, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 752316, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 752527, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 752730, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 752933, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 753129, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 753325, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 753521, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 753724, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 753920, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 754116, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 754312, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 754515, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 754718, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 754901, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 755097, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 755293, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 755482, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 755685, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 755888, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 756084, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 756287, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 756476, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 756672, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 756868, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 757071, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 757274, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 757457, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 757646, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 757842, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 758038, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 758234, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 758430, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 758633, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 758829, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 759018, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 759214, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 759403, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 759592, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 759795, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 759984, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 760187, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 760383, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 760572, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 760775, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 760964, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 761146, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 761349, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 761545, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 761734, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 761923, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 762119, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 762315, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 762518, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 762721, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 762910, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 763113, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 763296, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 763492, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 763703, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 763892, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 764088, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 764284, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 764473, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 764676, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 764872, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 765083, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 765286, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 765475, .adv_w = 472, .box_w = 25, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 765644, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 765847, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 766058, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 766254, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 766457, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 766646, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 766849, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 767045, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 767248, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 767444, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 767655, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 767858, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 768069, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 768265, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 768454, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 768657, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 768853, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 769064, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 769267, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = -1, .ofs_y = -4},
-    {.bitmap_index = 769478, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 769681, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 769884, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 770095, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 770298, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 770487, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 770676, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 770887, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 771083, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 771279, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 771462, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 771651, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 771833, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 772022, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 772218, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 772421, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 772624, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 772813, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 773016, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 773212, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 773401, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 773597, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 773800, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 773983, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 774165, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 774361, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 774557, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 774760, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 774949, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 775131, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 775320, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 775516, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 775712, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 775901, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 776112, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 776294, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 776476, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 776665, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 776868, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 777071, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 777274, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 777463, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 777674, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 777877, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 778066, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 778255, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 778444, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 778627, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 778816, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 779005, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 779208, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 779419, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 779608, .adv_w = 472, .box_w = 26, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 779777, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 779980, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 780176, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 780358, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 780554, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 780750, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 780932, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 781121, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 781317, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 781506, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 781702, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 781913, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 782102, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 782298, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 782494, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 782690, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 782893, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 783096, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 783278, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 783474, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 783677, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 783873, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 784069, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 784280, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 784483, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 784666, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 784855, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 785051, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 785254, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 785450, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 785639, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 785821, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 786017, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 786213, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 786416, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 786619, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 786815, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 787011, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 787207, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 787396, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 787592, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 787768, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 787964, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 788160, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 788349, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 788552, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 788748, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 788951, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 789154, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 789350, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 789546, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 789749, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 789938, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 790134, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 790316, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 790519, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 790722, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 790911, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 791100, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 791303, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 791492, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 791688, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 791884, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 792087, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 792283, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 792486, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 792682, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 792878, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 793089, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 793278, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 793489, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 793685, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 793896, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 794092, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 794295, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 794506, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 794702, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 794891, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 795087, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 795283, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 795472, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 795675, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 795871, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 796060, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 796263, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 796459, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 796662, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 796851, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 797054, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 797250, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 797453, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 797656, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 797838, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 798027, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 798223, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 798419, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 798622, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 798818, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 799021, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 799210, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 799393, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 799596, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 799779, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 799975, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 800171, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 800354, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 800550, .adv_w = 472, .box_w = 23, .box_h = 27, .ofs_x = 3, .ofs_y = -4},
-    {.bitmap_index = 800706, .adv_w = 472, .box_w = 23, .box_h = 25, .ofs_x = 3, .ofs_y = -2},
-    {.bitmap_index = 800850, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 801026, .adv_w = 472, .box_w = 25, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 801195, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 801371, .adv_w = 472, .box_w = 24, .box_h = 27, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 801533, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 801709, .adv_w = 472, .box_w = 28, .box_h = 25, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 801884, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 802066, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 802248, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 802430, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 802606, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 802795, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 802978, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 803161, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 803344, .adv_w = 472, .box_w = 24, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 803500, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 803683, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 803879, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 804075, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 804278, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 804481, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 804677, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 804880, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 805076, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 805272, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 805475, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 805678, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 805881, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 806077, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 806280, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 806483, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 806679, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 806868, .adv_w = 472, .box_w = 26, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 807037, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 807233, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 807415, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 807604, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 807793, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 807982, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 808171, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 808347, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 808523, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 808699, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 808874, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 809070, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 809259, .adv_w = 472, .box_w = 25, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 809422, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 809618, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 809801, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 809997, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 810193, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 810389, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 810585, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 810781, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 810977, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 811173, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 811356, .adv_w = 472, .box_w = 26, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 811525, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 811714, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 811910, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 812113, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 812324, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 812535, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 812724, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 812935, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 813131, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 813320, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 813531, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 813742, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 813938, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 814127, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 814338, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 814541, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 814744, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 814955, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 815131, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 815313, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 815496, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 815692, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 815888, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 816071, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 816260, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 816449, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 816660, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 816856, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 817038, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 817234, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 817423, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 817612, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 817801, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 817990, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 818172, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 818383, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 818586, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 818782, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 818978, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 819181, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 819377, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 819573, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 819762, .adv_w = 472, .box_w = 23, .box_h = 29, .ofs_x = 3, .ofs_y = -4},
-    {.bitmap_index = 819929, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 820105, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 820287, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 820476, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 820672, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 820854, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 821043, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 821225, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 821408, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 821597, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 821800, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 821996, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 822178, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 822367, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 822570, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 822766, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 822955, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 823166, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 823369, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 823565, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 823761, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 823964, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 824160, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 824356, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 824559, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 824735, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 824931, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 825134, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 825345, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 825541, .adv_w = 472, .box_w = 23, .box_h = 29, .ofs_x = 3, .ofs_y = -4},
-    {.bitmap_index = 825708, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 825890, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 826086, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 826289, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 826492, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 826681, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 826884, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 827073, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 827256, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 827452, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 827648, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 827851, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 828026, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 828237, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 828419, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 828615, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 828818, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 829021, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 829210, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 829406, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 829582, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 829793, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 829996, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 830192, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 830403, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 830606, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 830789, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 831000, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 831196, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 831407, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 831610, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 831806, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 832009, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 832212, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 832423, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 832626, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 832822, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 833033, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 833244, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 833455, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 833658, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 833869, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 834072, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 834275, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 834471, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 834682, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 834865, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 835061, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 835250, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 835453, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 835649, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 835845, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 836028, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 836239, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 836442, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 836638, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 836849, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 837052, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 837255, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 837458, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 837669, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 837865, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 838061, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 838257, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 838460, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 838671, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 838882, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 839085, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 839274, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 839477, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 839673, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 839869, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 840058, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 840240, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 840451, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 840654, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 840865, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 841068, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 841271, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 841460, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 841649, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 841860, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 842049, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 842252, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 842434, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 842645, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 842841, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 843044, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 843233, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 843429, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 843632, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 843835, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 844038, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 844241, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 844444, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 844640, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 844851, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 845054, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 845265, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 845468, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 845671, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 845874, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 846077, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 846280, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 846491, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 846702, .adv_w = 472, .box_w = 24, .box_h = 25, .ofs_x = 4, .ofs_y = -2},
-    {.bitmap_index = 846852, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 847055, .adv_w = 472, .box_w = 21, .box_h = 29, .ofs_x = 4, .ofs_y = -4},
-    {.bitmap_index = 847208, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 847404, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 847600, .adv_w = 472, .box_w = 28, .box_h = 24, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 847768, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 847971, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 2, .ofs_y = -2},
-    {.bitmap_index = 848147, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 848336, .adv_w = 472, .box_w = 23, .box_h = 27, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 848492, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 848688, .adv_w = 472, .box_w = 25, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 848857, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 849060, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 849242, .adv_w = 472, .box_w = 25, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 849411, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 849614, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 849790, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 849986, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 850182, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 850378, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 850560, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 850756, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 850945, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 851148, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 851351, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 851540, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 851743, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 851946, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 852142, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 852345, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 852556, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 852759, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 852970, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 853173, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 853369, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 853558, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 853761, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 853950, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 854146, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 854335, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 854531, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 854734, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 854923, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 855126, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 855329, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 855532, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 855735, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 855938, .adv_w = 472, .box_w = 26, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 856107, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 856289, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 856478, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 856667, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 856856, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 857052, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 857241, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 857437, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 857633, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 857829, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 858025, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 858221, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 858417, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 858606, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 858802, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 858991, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 859173, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 859356, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 859559, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 859748, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 859944, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 860133, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 860336, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 860532, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 860735, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 860946, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 861128, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 861311, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 861507, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 861696, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 861879, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 862082, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 862278, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 862461, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 862657, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 862840, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 863029, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 863225, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 863414, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 863597, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 863793, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 863982, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 864178, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 864374, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 864563, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 864759, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 864962, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 865158, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 865361, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 865550, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 865746, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 865942, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 866131, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 866320, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 866516, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 866719, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 866908, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 867111, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 867287, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 867470, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 867659, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 867848, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 868037, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 868240, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 868436, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 868632, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 868821, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 869017, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 869199, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 869395, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 869584, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 869780, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 869983, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 870172, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 870355, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 870551, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 870754, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 870930, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 871119, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 871308, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 871504, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 871687, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 871876, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 872065, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 872261, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 872450, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 872632, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 872835, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 873031, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 873227, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 873423, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 873619, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 873815, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 874004, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 874200, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 874389, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 874585, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 874774, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 874977, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 875159, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 875348, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 875537, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 875726, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 875922, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 876125, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 876314, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 876510, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 876706, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 876895, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 877091, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 877302, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 877505, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 877716, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 877905, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 878101, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 878290, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 878486, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 878669, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 878858, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 879054, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 879265, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 879461, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 879664, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 879860, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 880043, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 880232, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 880435, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 880624, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 880827, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 881030, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 881219, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 881415, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 881604, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 881787, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 881990, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 882179, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 882375, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 882571, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 882774, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 882957, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 883160, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 883349, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 883552, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 883755, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 883944, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 884140, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 884343, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 884546, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 884742, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 884938, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 885134, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 885317, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 885513, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 885709, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 885898, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 886074, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 886270, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 886459, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 886662, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 886858, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 887054, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 887250, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 887446, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 887642, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 887831, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 888020, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 888216, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 888419, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 888615, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 888811, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 889022, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 889218, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 889421, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 889617, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 889806, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 890009, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 890212, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 890415, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 890604, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 890787, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 890983, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 891186, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 891382, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 891578, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 891774, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 891977, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 892166, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 892362, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 892551, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 892740, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 892943, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 893126, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 893322, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 893518, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 893701, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 893890, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 894093, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 894289, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 894492, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 894681, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 894870, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 895066, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 895269, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 895465, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 895661, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 895857, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 896039, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 896221, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 896410, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 896606, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 896817, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 897028, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 897224, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 897413, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 897616, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 897812, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 898015, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 898218, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 898407, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 898618, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 898814, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 899010, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 899199, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 899402, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 899591, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 899780, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 899983, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 900179, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 900368, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 900579, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 900782, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 900985, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 901188, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 901391, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 901587, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 901790, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 901979, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 902175, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 902378, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 902581, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 902770, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 902981, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 903177, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 903380, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 903569, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 903758, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 903947, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 904150, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 904353, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 904542, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 904745, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 904934, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 905130, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 905326, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 905515, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 905704, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 905900, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 906103, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 906314, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 906503, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 906692, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 906881, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 907077, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 907273, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 907469, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 907672, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 907875, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 908078, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 908274, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 908477, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 908680, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 2, .ofs_y = -2},
-    {.bitmap_index = 908856, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 909059, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 909262, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 909465, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 909654, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 909850, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 910046, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 910235, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 910438, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 910627, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 910830, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 911026, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 911229, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 911425, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 911636, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 911839, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 912035, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 912231, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 912420, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 912616, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 912805, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 913008, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 913204, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 913407, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 913603, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 913806, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 913995, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 914191, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 914374, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 914557, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 914760, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 914963, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 915145, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 915341, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 915537, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 915713, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 915909, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 916105, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 916308, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 916519, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 916715, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 916911, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 917107, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 917318, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 917507, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 917689, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 917885, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 918081, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 918277, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 918473, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 918662, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 918851, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 919040, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 919229, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 919440, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 919629, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 919818, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 920014, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 920210, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 920399, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 920595, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 920784, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 920973, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 921169, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 921365, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 921561, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 921764, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 921967, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 922150, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 922339, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 922542, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 922738, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 922934, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 923130, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 923326, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 923537, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 923733, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 923915, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 924118, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 924294, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 924497, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 924686, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 924882, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 925085, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 925288, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 925470, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 925659, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 925862, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 926065, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 926276, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 926472, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 926654, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 926850, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 927053, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 927256, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 927445, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 927641, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 927837, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 928019, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 928215, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 928404, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 928586, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 928789, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 928985, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 929181, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 929377, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 929580, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 929769, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 929965, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 930161, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 930343, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 930532, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 930721, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 930910, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 931106, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 931309, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 931505, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 931708, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 931919, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 932108, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 932297, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 932486, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 932682, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 932893, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 933104, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 933307, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 933496, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 933699, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 933902, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 934105, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 934308, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 934497, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 934700, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 934896, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 935092, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 935288, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 935484, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 935680, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 935883, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 936072, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 936261, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 936464, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 936667, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 936870, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 937073, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 937262, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 937465, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 937668, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 937879, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 938082, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 938285, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 938488, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 938684, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 938887, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 939090, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 939293, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 939504, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 939700, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 939903, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 940099, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 940310, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 940499, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 940688, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 940877, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 941073, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 941269, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 941472, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 941683, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 941886, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 942082, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 942285, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 942488, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 942691, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 942894, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 943105, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 943301, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 943484, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 943695, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 943906, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 944095, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 944291, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 944502, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 944713, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 944924, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 945135, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 945346, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 945549, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 945752, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 945948, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 946137, .adv_w = 472, .box_w = 30, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 946347, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 946543, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 946754, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 946965, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 947161, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 947372, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 947575, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 947758, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 947969, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 948172, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 948383, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 948586, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 948789, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 949000, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 949203, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 949414, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 949625, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 949828, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 950031, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 950234, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 950417, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 950620, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 950823, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 951034, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 951237, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 951440, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 951643, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 951846, .adv_w = 472, .box_w = 30, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 952064, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 952260, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 952443, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 952639, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 952842, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 953053, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 953256, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 953452, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 953648, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 953851, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 954054, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 954257, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 954446, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 954649, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 954860, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 955063, .adv_w = 472, .box_w = 30, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 955273, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 955476, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 955679, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 955855, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 956031, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 956213, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 956396, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 956585, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 956774, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 956963, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 957166, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 957349, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 957545, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 957734, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 957923, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 958126, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 958329, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 958525, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 958721, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 958924, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 959099, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 959310, .adv_w = 472, .box_w = 30, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 959520, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 959709, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 959920, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 960131, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 960342, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 960545, .adv_w = 472, .box_w = 30, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 960755, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 960958, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 961161, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 961357, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 961539, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 961742, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 961918, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 962121, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 962324, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 962527, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 962723, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 962926, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 963129, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 963318, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 963521, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 963724, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 963913, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 964109, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 964305, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 964501, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 964690, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 964879, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 965061, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 965257, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 965446, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 965622, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 965811, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 965986, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 966182, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 966371, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 966560, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 966756, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 966945, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 967128, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 967311, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 967500, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 967676, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 967872, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 968061, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 968250, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 968453, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 968649, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 968845, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 969048, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 969251, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 969440, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 969623, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 969812, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 970001, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 970183, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 970372, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 970561, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 970757, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 970953, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 971149, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 971331, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 971513, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 971695, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 971871, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 972060, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 972249, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 972438, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 972641, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 972830, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 973019, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 973208, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 973404, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 973600, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 973796, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 973999, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 974202, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 974391, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 974580, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 974756, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 974945, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 975134, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 975316, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 975512, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 975708, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 975911, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 976107, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 976296, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 976479, .adv_w = 472, .box_w = 25, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 976648, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 976844, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 977033, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 977222, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 977411, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 977600, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 977796, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 977992, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 978195, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 978384, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 978580, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 978756, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 978938, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 979134, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 979323, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 979512, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 979715, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 979911, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 980100, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 980296, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 980492, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 980688, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 980870, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 981052, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 981255, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 981451, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 981647, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 981843, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 982032, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 982221, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 982404, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 982600, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 982796, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 982992, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 983188, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 983391, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 983567, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 983749, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 983938, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 984127, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 984323, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 984526, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 984729, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 984932, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 985121, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 985310, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 985492, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 985695, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 985891, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 986087, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 986276, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 986459, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 986662, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 986858, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 987061, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 987250, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 987432, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 987628, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 987817, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 988013, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 988202, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 988391, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 988580, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 988762, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 988965, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 989148, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 989351, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 989540, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 989743, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 989946, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 990142, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 990338, .adv_w = 472, .box_w = 27, .box_h = 25, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 990507, .adv_w = 472, .box_w = 28, .box_h = 25, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 990682, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 990893, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 991089, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 991271, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 991474, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 991685, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 991874, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 992077, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 992273, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 992476, .adv_w = 472, .box_w = 23, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 992637, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 992826, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 993022, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 993205, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 993408, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 993611, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 993800, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 994011, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 994207, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 994403, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 994592, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 994788, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 994984, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 995187, .adv_w = 472, .box_w = 25, .box_h = 27, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 995356, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 995545, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 995741, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 995924, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 996120, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 996309, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 996505, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 996708, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 996911, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 997107, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 997290, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 997479, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 997682, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 997871, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 998060, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 998256, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 998439, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 998628, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 998811, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 999007, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 999196, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 999392, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 999581, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 999777, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 999959, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1000155, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1000358, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1000569, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1000745, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1000948, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1001151, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1001354, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1001550, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1001753, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1001956, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1002145, .adv_w = 472, .box_w = 30, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1002355, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1002544, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1002747, .adv_w = 472, .box_w = 30, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1002950, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1003139, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1003342, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 1003531, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1003734, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1003917, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1004099, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1004310, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1004521, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1004724, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1004927, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 1005116, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1005305, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1005501, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1005690, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1005901, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1006104, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1006300, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1006511, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1006722, .adv_w = 472, .box_w = 30, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1006932, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1007143, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1007346, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1007557, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1007768, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1007957, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1008168, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1008364, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1008560, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1008763, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1008959, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1009155, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1009351, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1009547, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1009750, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1009953, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1010156, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1010345, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1010534, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1010737, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1010926, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 1011122, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1011318, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1011521, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1011717, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1011920, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1012123, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1012312, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1012508, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1012697, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1012893, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1013089, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1013278, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1013481, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1013677, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1013888, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1014070, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1014266, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1014462, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1014665, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1014876, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1015079, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1015282, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 1015478, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 1015674, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1015870, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 1016059, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1016255, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1016451, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1016654, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1016850, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1017039, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1017250, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1017461, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1017664, .adv_w = 472, .box_w = 27, .box_h = 25, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 1017833, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1018044, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1018247, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1018450, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1018639, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1018828, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1019024, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1019200, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1019396, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1019592, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1019795, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1019991, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1020202, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1020391, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1020602, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 1020791, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1020994, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1021197, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1021386, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1021582, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1021778, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1021967, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1022156, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1022359, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1022548, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 1022737, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1022940, .adv_w = 472, .box_w = 26, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1023109, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1023305, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1023508, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1023691, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1023902, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1024098, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1024301, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 1024483, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1024672, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1024868, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1025050, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1025253, .adv_w = 472, .box_w = 30, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1025463, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1025659, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1025862, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1026065, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1026268, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1026457, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1026653, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1026829, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1027032, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1027228, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1027431, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1027634, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1027837, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1028048, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1028244, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1028440, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1028643, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1028846, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1029035, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1029231, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 1029413, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1029609, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1029805, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1030001, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1030197, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1030400, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1030611, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1030814, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1031017, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1031220, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1031409, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1031598, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1031809, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1032020, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1032216, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1032419, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1032615, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1032818, .adv_w = 472, .box_w = 30, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1033028, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1033239, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1033442, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1033645, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1033848, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1034044, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1034240, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1034429, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1034612, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1034823, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1035026, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1035237, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1035426, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1035615, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1035818, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1036014, .adv_w = 472, .box_w = 30, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1036232, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1036421, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1036632, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1036835, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1037046, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1037257, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1037446, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1037635, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1037824, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1038027, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1038230, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1038419, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1038615, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1038804, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1038993, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1039182, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1039385, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1039588, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1039777, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1039980, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1040169, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1040372, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1040561, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1040757, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1040953, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1041149, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1041331, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1041520, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1041709, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1041905, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1042094, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1042290, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1042479, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1042668, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1042857, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1043053, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1043235, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1043431, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1043620, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1043816, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1044012, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1044208, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1044397, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1044586, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1044782, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1044978, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1045181, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1045384, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1045587, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1045790, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1045993, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1046189, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1046392, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1046588, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1046791, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1046987, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1047183, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1047379, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1047568, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1047771, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1047967, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1048163, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1048359, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1048555, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1048758, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1048954, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1049150, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1049346, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1049542, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1049738, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1049941, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1050144, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1050347, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1050543, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1050746, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1050942, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1051138, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1051341, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1051544, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1051740, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1051922, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1052125, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1052321, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1052524, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1052727, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1052923, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1053119, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1053315, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1053518, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1053721, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1053924, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1054113, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1054302, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1054505, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1054694, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1054897, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1055100, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1055303, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1055506, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1055709, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1055912, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1056115, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1056318, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1056514, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1056710, .adv_w = 472, .box_w = 24, .box_h = 26, .ofs_x = 4, .ofs_y = -3},
-    {.bitmap_index = 1056866, .adv_w = 472, .box_w = 26, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1057035, .adv_w = 472, .box_w = 25, .box_h = 27, .ofs_x = 3, .ofs_y = -2},
-    {.bitmap_index = 1057204, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1057380, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1057569, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1057745, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1057934, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1058130, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1058313, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1058495, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1058684, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1058866, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1059055, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1059238, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1059427, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1059616, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1059798, .adv_w = 472, .box_w = 26, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 1059967, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1060149, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1060345, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 1060521, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1060717, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1060900, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1061096, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1061292, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1061481, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1061677, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1061859, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1062055, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1062244, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 2, .ofs_y = -2},
-    {.bitmap_index = 1062420, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1062609, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1062798, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1062974, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1063170, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1063352, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1063535, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1063718, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1063914, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1064096, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1064272, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1064454, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1064637, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1064833, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1065016, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1065212, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1065408, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1065597, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1065786, .adv_w = 472, .box_w = 26, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 1065955, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1066137, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1066320, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1066496, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1066699, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1066875, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1067064, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1067240, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1067436, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1067625, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1067814, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1068003, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1068185, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1068374, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1068556, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1068732, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1068928, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1069117, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1069299, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1069488, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1069671, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1069860, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1070049, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1070238, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1070421, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1070617, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1070806, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1070995, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1071184, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1071373, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1071569, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1071758, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1071934, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1072123, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1072319, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1072508, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1072684, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1072880, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1073076, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1073272, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1073475, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1073657, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1073833, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1074029, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1074225, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1074421, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1074617, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1074820, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1075002, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1075184, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1075380, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1075562, .adv_w = 472, .box_w = 27, .box_h = 25, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 1075731, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1075920, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 1076109, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 1076291, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1076480, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1076663, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1076866, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1077069, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 1077258, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1077469, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1077665, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1077854, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1078043, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1078232, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1078428, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1078631, .adv_w = 472, .box_w = 28, .box_h = 25, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 1078806, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 1078988, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1079164, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 1079346, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 1079535, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 1079724, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 1079920, .adv_w = 472, .box_w = 29, .box_h = 25, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 1080102, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 1080298, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 1080487, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 1080683, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 1080879, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 1081075, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 1081271, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1081474, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 1081670, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 1081866, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1082062, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1082258, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1082461, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1082664, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1082846, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1083049, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1083245, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1083448, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1083651, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1083847, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1084043, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1084246, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1084435, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 1084618, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1084821, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1085017, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1085228, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1085431, .adv_w = 472, .box_w = 30, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1085641, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1085852, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1086055, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1086258, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1086447, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1086643, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1086854, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1087050, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1087261, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1087464, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1087660, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1087871, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1088060, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1088249, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1088438, .adv_w = 472, .box_w = 30, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1088656, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1088859, .adv_w = 472, .box_w = 30, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1089077, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1089280, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1089476, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1089672, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1089875, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 1090064, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1090267, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1090463, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1090674, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1090870, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1091081, .adv_w = 472, .box_w = 30, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1091291, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1091487, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1091683, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1091886, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1092075, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 1092258, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1092447, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1092650, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1092846, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1093057, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1093260, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1093471, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1093667, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1093863, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1094074, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1094263, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1094466, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1094669, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1094880, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1095083, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1095286, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1095489, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1095685, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1095888, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1096091, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1096302, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1096498, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1096694, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1096897, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1097073, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1097269, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 1097445, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 1097634, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1097823, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = -1, .ofs_y = -3},
-    {.bitmap_index = 1098019, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1098222, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1098433, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1098629, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1098832, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1099035, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1099238, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1099441, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1099644, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1099840, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1100029, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1100232, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1100428, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1100631, .adv_w = 472, .box_w = 30, .box_h = 28, .ofs_x = -1, .ofs_y = -3},
-    {.bitmap_index = 1100841, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1101052, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1101255, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1101466, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1101677, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1101873, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1102076, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1102287, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1102483, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1102686, .adv_w = 472, .box_w = 30, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1102896, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1103099, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1103302, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1103505, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1103716, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1103919, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1104122, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1104325, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1104514, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1104717, .adv_w = 472, .box_w = 30, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1104927, .adv_w = 472, .box_w = 30, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1105145, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1105341, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1105544, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1105747, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1105943, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1106139, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1106342, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1106531, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1106742, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1106953, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1107142, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1107338, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1107541, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1107737, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1107940, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1108143, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1108339, .adv_w = 472, .box_w = 30, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1108557, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1108760, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1108956, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1109159, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1109362, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1109551, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1109734, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1109923, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1110119, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1110322, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1110511, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1110722, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1110925, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1111128, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1111331, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1111534, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1111737, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1111933, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1112129, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1112325, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1112521, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1112724, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1112927, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1113130, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1113326, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1113529, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1113725, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1113921, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1114117, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1114320, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1114531, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1114742, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1114953, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1115156, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1115359, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1115555, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1115758, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1115969, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1116165, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1116361, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1116572, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1116768, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1116964, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1117167, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1117378, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1117574, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1117777, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1117980, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 1118176, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1118379, .adv_w = 472, .box_w = 30, .box_h = 28, .ofs_x = -1, .ofs_y = -3},
-    {.bitmap_index = 1118589, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1118785, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1118981, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1119192, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1119388, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1119591, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1119794, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1119997, .adv_w = 472, .box_w = 30, .box_h = 28, .ofs_x = -1, .ofs_y = -3},
-    {.bitmap_index = 1120207, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1120410, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1120613, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1120824, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1121035, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1121246, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1121449, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1121638, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1121849, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1122045, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1122248, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1122451, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1122654, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1122843, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1123039, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1123242, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1123453, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1123656, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1123867, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1124070, .adv_w = 472, .box_w = 23, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 1124231, .adv_w = 472, .box_w = 23, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 1124392, .adv_w = 472, .box_w = 24, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 1124560, .adv_w = 472, .box_w = 23, .box_h = 29, .ofs_x = 3, .ofs_y = -4},
-    {.bitmap_index = 1124727, .adv_w = 472, .box_w = 23, .box_h = 28, .ofs_x = 3, .ofs_y = -4},
-    {.bitmap_index = 1124888, .adv_w = 472, .box_w = 24, .box_h = 29, .ofs_x = 3, .ofs_y = -4},
-    {.bitmap_index = 1125062, .adv_w = 472, .box_w = 23, .box_h = 29, .ofs_x = 3, .ofs_y = -4},
-    {.bitmap_index = 1125229, .adv_w = 472, .box_w = 24, .box_h = 27, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 1125391, .adv_w = 472, .box_w = 24, .box_h = 28, .ofs_x = 3, .ofs_y = -4},
-    {.bitmap_index = 1125559, .adv_w = 472, .box_w = 24, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 1125727, .adv_w = 472, .box_w = 24, .box_h = 29, .ofs_x = 3, .ofs_y = -4},
-    {.bitmap_index = 1125901, .adv_w = 472, .box_w = 23, .box_h = 28, .ofs_x = 3, .ofs_y = -4},
-    {.bitmap_index = 1126062, .adv_w = 472, .box_w = 24, .box_h = 29, .ofs_x = 3, .ofs_y = -4},
-    {.bitmap_index = 1126236, .adv_w = 472, .box_w = 24, .box_h = 27, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 1126398, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 1126573, .adv_w = 472, .box_w = 24, .box_h = 28, .ofs_x = 3, .ofs_y = -4},
-    {.bitmap_index = 1126741, .adv_w = 472, .box_w = 24, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 1126909, .adv_w = 472, .box_w = 25, .box_h = 27, .ofs_x = 2, .ofs_y = -2},
-    {.bitmap_index = 1127078, .adv_w = 472, .box_w = 24, .box_h = 28, .ofs_x = 3, .ofs_y = -4},
-    {.bitmap_index = 1127246, .adv_w = 472, .box_w = 24, .box_h = 28, .ofs_x = 3, .ofs_y = -4},
-    {.bitmap_index = 1127414, .adv_w = 472, .box_w = 24, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 1127582, .adv_w = 472, .box_w = 24, .box_h = 28, .ofs_x = 3, .ofs_y = -4},
-    {.bitmap_index = 1127750, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 1127925, .adv_w = 472, .box_w = 25, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 1128107, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 1128282, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 1128457, .adv_w = 472, .box_w = 24, .box_h = 28, .ofs_x = 3, .ofs_y = -4},
-    {.bitmap_index = 1128625, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 1128800, .adv_w = 472, .box_w = 24, .box_h = 27, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 1128962, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 1129137, .adv_w = 472, .box_w = 24, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 1129299, .adv_w = 472, .box_w = 24, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 1129467, .adv_w = 472, .box_w = 24, .box_h = 29, .ofs_x = 3, .ofs_y = -4},
-    {.bitmap_index = 1129641, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 1129816, .adv_w = 472, .box_w = 24, .box_h = 27, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 1129978, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1130167, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 1130343, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 3, .ofs_y = -4},
-    {.bitmap_index = 1130519, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 3, .ofs_y = -4},
-    {.bitmap_index = 1130701, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 1130884, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 3, .ofs_y = -4},
-    {.bitmap_index = 1131066, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 1131248, .adv_w = 472, .box_w = 24, .box_h = 27, .ofs_x = 3, .ofs_y = -4},
-    {.bitmap_index = 1131410, .adv_w = 472, .box_w = 23, .box_h = 27, .ofs_x = 3, .ofs_y = -4},
-    {.bitmap_index = 1131566, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 1131748, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 3, .ofs_y = -4},
-    {.bitmap_index = 1131930, .adv_w = 472, .box_w = 26, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 1132099, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 1132281, .adv_w = 472, .box_w = 25, .box_h = 29, .ofs_x = 3, .ofs_y = -4},
-    {.bitmap_index = 1132463, .adv_w = 472, .box_w = 26, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 1132632, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 1132808, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 3, .ofs_y = -4},
-    {.bitmap_index = 1132990, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 1133179, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 1133355, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 3, .ofs_y = -4},
-    {.bitmap_index = 1133544, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 3, .ofs_y = -4},
-    {.bitmap_index = 1133726, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 1133908, .adv_w = 472, .box_w = 26, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 1134077, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 1134253, .adv_w = 472, .box_w = 25, .box_h = 27, .ofs_x = 3, .ofs_y = -4},
-    {.bitmap_index = 1134422, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 3, .ofs_y = -4},
-    {.bitmap_index = 1134611, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 1134794, .adv_w = 472, .box_w = 25, .box_h = 29, .ofs_x = 3, .ofs_y = -4},
-    {.bitmap_index = 1134976, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 1135165, .adv_w = 472, .box_w = 25, .box_h = 27, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 1135334, .adv_w = 472, .box_w = 25, .box_h = 29, .ofs_x = 3, .ofs_y = -4},
-    {.bitmap_index = 1135516, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 1135712, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 1135888, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 1136063, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 1136246, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 1136429, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 1136625, .adv_w = 472, .box_w = 25, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 1136807, .adv_w = 472, .box_w = 24, .box_h = 29, .ofs_x = 3, .ofs_y = -4},
-    {.bitmap_index = 1136981, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 1137164, .adv_w = 472, .box_w = 25, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 1137327, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 1137516, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 1137699, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 1137881, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 1138070, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 1138259, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 1138448, .adv_w = 472, .box_w = 26, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 1138617, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 1138813, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 1138989, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 1139178, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 1139360, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 1139549, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 1139738, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 1139914, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1140117, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1140306, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1140495, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1140698, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1140901, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1141097, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1141286, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1141489, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1141692, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1141895, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1142091, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1142280, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1142476, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1142672, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1142875, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1143071, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1143267, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1143463, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1143659, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1143835, .adv_w = 472, .box_w = 26, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 1144004, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1144207, .adv_w = 472, .box_w = 25, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 1144370, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1144559, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 1144735, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 1144910, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1145092, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1145281, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1145464, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1145653, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1145835, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1146024, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1146213, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1146396, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1146585, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 1146767, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1146956, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1147145, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1147334, .adv_w = 472, .box_w = 28, .box_h = 25, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 1147509, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1147698, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1147894, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1148097, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 1148286, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1148489, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1148678, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1148867, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1149070, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1149246, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1149442, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1149631, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1149820, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1150016, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1150205, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1150394, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1150590, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1150779, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1150975, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1151164, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1151360, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1151549, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1151745, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1151941, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1152144, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1152340, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1152529, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1152718, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1152921, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1153110, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1153292, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1153481, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1153670, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1153873, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1154069, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1154258, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1154461, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 1154636, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1154825, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1155021, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1155224, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1155413, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1155609, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 1155791, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1155980, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1156162, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1156344, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1156547, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1156730, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1156919, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 1157095, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1157277, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1157466, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1157662, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1157851, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1158033, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1158229, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1158418, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1158614, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1158803, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1159006, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1159209, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1159420, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1159603, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1159806, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1160017, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1160220, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1160416, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1160612, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1160823, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1161019, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1161230, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1161441, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1161652, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 1161835, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1162038, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1162241, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1162452, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1162663, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1162859, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1163048, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 1163224, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1163413, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1163609, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1163820, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1164016, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1164212, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1164408, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1164611, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1164793, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1164996, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1165185, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1165381, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1165592, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1165774, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1165985, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1166181, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1166384, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1166573, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1166776, .adv_w = 472, .box_w = 26, .box_h = 25, .ofs_x = 2, .ofs_y = -2},
-    {.bitmap_index = 1166939, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1167150, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1167361, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1167572, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1167768, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1167979, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1168190, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1168379, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1168575, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1168778, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1168974, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1169185, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1169388, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1169599, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1169802, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 1169991, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1170187, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1170390, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1170586, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1170782, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1170978, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1171181, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 1171364, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1171567, .adv_w = 472, .box_w = 30, .box_h = 28, .ofs_x = -1, .ofs_y = -3},
-    {.bitmap_index = 1171777, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1171980, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1172191, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1172394, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1172590, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1172793, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1172996, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1173199, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1173402, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1173591, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1173794, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 1173990, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1174186, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1174397, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1174608, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1174811, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1175007, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 1175203, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1175414, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1175617, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1175813, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1176009, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1176205, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1176408, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1176611, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1176822, .adv_w = 472, .box_w = 26, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1176991, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1177180, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1177376, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1177558, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1177761, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1177943, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1178139, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1178321, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1178503, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1178706, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1178882, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1179085, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1179267, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1179456, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1179652, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1179841, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1180037, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1180226, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1180415, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1180611, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1180807, .adv_w = 472, .box_w = 24, .box_h = 27, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 1180969, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1181172, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1181361, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1181564, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1181760, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1181971, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1182153, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1182342, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1182538, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1182734, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1182937, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1183140, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1183343, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1183525, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1183728, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1183931, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1184113, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 1184302, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1184491, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1184687, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1184890, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1185073, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1185262, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1185444, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1185633, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1185836, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1186018, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1186200, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1186389, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1186592, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 1186774, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1186963, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1187166, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1187362, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1187565, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 1187747, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1187943, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1188139, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1188328, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 1188517, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1188713, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1188909, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1189112, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1189288, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1189491, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1189687, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1189883, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1190066, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1190255, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1190431, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1190627, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1190830, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1191013, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1191202, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1191398, .adv_w = 472, .box_w = 24, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 1191566, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1191742, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1191938, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1192141, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1192344, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1192547, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 1192736, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1192939, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1193135, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1193324, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1193520, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1193723, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1193926, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1194129, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1194332, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1194535, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 1194718, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1194921, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1195124, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1195320, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1195531, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1195742, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1195945, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1196141, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1196352, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1196548, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1196744, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1196947, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1197143, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1197346, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 1197542, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1197745, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1197956, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1198167, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1198363, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1198566, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1198777, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1198980, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1199183, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 1199372, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 1199554, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1199757, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1199946, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1200149, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 1200338, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1200549, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1200738, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1200941, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1201144, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1201347, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1201543, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1201739, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1201922, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1202125, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1202328, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1202524, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1202727, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1202930, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 1203126, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1203322, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1203533, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1203736, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1203947, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1204150, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1204346, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1204557, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 1204753, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1204956, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1205152, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 1205341, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1205552, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1205735, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1205931, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1206134, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1206330, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1206526, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 1206715, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1206918, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1207121, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1207332, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1207535, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 1207731, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 1207927, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1208138, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1208327, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1208516, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1208705, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1208894, .adv_w = 472, .box_w = 24, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 1209062, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1209251, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1209433, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1209622, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1209804, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1209993, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1210182, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 1210371, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1210553, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1210742, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1210945, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1211141, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1211337, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1211519, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1211701, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1211890, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1212086, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1212275, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1212471, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1212682, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1212864, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1213046, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1213235, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 1213417, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1213606, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1213802, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1213998, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1214187, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1214383, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 1214566, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1214762, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1214944, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1215147, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1215329, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1215525, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1215707, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1215896, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1216092, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1216274, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1216470, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1216652, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1216848, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1217037, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1217226, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1217422, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1217611, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1217807, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1217990, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1218173, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1218369, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1218565, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1218748, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1218951, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1219154, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1219350, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1219546, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1219757, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1219953, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1220164, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1220367, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1220570, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1220781, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1220992, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 1221181, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1221377, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1221573, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1221776, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1221979, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1222162, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1222358, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1222561, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1222757, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1222953, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1223149, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1223352, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1223548, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1223744, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1223947, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1224143, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1224346, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1224549, .adv_w = 472, .box_w = 25, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 1224712, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1224901, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1225083, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1225272, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 3, .ofs_y = -4},
-    {.bitmap_index = 1225461, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 1225657, .adv_w = 472, .box_w = 25, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 1225839, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 1226021, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 1226210, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
-    {.bitmap_index = 1226399, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 1226582, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1226778, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1226981, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1227184, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1227373, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1227562, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1227751, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 1227940, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1228136, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1228325, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1228514, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1228710, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1228906, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1229102, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1229298, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1229480, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1229676, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1229872, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 1230068, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1230264, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 1230460, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 1230656, .adv_w = 472, .box_w = 5, .box_h = 22, .ofs_x = 5, .ofs_y = -1},
-    {.bitmap_index = 1230684, .adv_w = 472, .box_w = 6, .box_h = 9, .ofs_x = 4, .ofs_y = -5},
-    {.bitmap_index = 1230698, .adv_w = 472, .box_w = 5, .box_h = 18, .ofs_x = 5, .ofs_y = -1},
-    {.bitmap_index = 1230721, .adv_w = 472, .box_w = 12, .box_h = 23, .ofs_x = 3, .ofs_y = -1},
-    {.bitmap_index = 1230790, .adv_w = 472, .box_w = 16, .box_h = 6, .ofs_x = 7, .ofs_y = 6}
+    {.bitmap_index = 6369, .adv_w = 441, .box_w = 27, .box_h = 23, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 6525, .adv_w = 472, .box_w = 9, .box_h = 8, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 6543, .adv_w = 472, .box_w = 15, .box_h = 27, .ofs_x = 10, .ofs_y = -3},
+    {.bitmap_index = 6645, .adv_w = 472, .box_w = 14, .box_h = 27, .ofs_x = 5, .ofs_y = -3},
+    {.bitmap_index = 6740, .adv_w = 472, .box_w = 28, .box_h = 3, .ofs_x = 1, .ofs_y = 10},
+    {.bitmap_index = 6761, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 6937, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 7126, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 7315, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 7511, .adv_w = 472, .box_w = 27, .box_h = 23, .ofs_x = 1, .ofs_y = -1},
+    {.bitmap_index = 7667, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 7856, .adv_w = 472, .box_w = 27, .box_h = 25, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 8025, .adv_w = 472, .box_w = 27, .box_h = 25, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 8194, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 8370, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 8546, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 8722, .adv_w = 472, .box_w = 28, .box_h = 25, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 8897, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 9093, .adv_w = 472, .box_w = 28, .box_h = 25, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 9268, .adv_w = 472, .box_w = 27, .box_h = 25, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 9437, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 9619, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 9801, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 9984, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 10167, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 10356, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 10559, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 10748, .adv_w = 472, .box_w = 28, .box_h = 25, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 10923, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 11106, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 11282, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 11471, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 11667, .adv_w = 472, .box_w = 4, .box_h = 27, .ofs_x = 13, .ofs_y = -3},
+    {.bitmap_index = 11694, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 11897, .adv_w = 472, .box_w = 24, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 12065, .adv_w = 472, .box_w = 13, .box_h = 28, .ofs_x = 6, .ofs_y = -3},
+    {.bitmap_index = 12156, .adv_w = 472, .box_w = 24, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 12324, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 12513, .adv_w = 472, .box_w = 24, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 12681, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 12863, .adv_w = 472, .box_w = 12, .box_h = 13, .ofs_x = 9, .ofs_y = 4},
+    {.bitmap_index = 12902, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 13091, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 13280, .adv_w = 472, .box_w = 25, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 13449, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 13638, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 13820, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 14023, .adv_w = 472, .box_w = 13, .box_h = 29, .ofs_x = 5, .ofs_y = -4},
+    {.bitmap_index = 14118, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 14294, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 14490, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 14666, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 14849, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 15045, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 15241, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 15416, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 15605, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 15801, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 15990, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 16186, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 16382, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 16578, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 16781, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 16964, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 17146, .adv_w = 472, .box_w = 26, .box_h = 24, .ofs_x = 2, .ofs_y = -2},
+    {.bitmap_index = 17302, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 17485, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 17688, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 17863, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 18052, .adv_w = 472, .box_w = 24, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 18208, .adv_w = 472, .box_w = 24, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 18382, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 18578, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 18754, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 18930, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 19113, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 19302, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 19491, .adv_w = 472, .box_w = 25, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 19654, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 19830, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 20026, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 20215, .adv_w = 472, .box_w = 26, .box_h = 22, .ofs_x = 2, .ofs_y = -1},
+    {.bitmap_index = 20358, .adv_w = 472, .box_w = 26, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 20527, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 20703, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 20879, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 21055, .adv_w = 472, .box_w = 28, .box_h = 25, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 21230, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 21419, .adv_w = 472, .box_w = 28, .box_h = 23, .ofs_x = 1, .ofs_y = -1},
+    {.bitmap_index = 21580, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 21769, .adv_w = 472, .box_w = 27, .box_h = 25, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 21938, .adv_w = 472, .box_w = 27, .box_h = 25, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 22107, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 22290, .adv_w = 472, .box_w = 26, .box_h = 25, .ofs_x = 2, .ofs_y = -2},
+    {.bitmap_index = 22453, .adv_w = 472, .box_w = 27, .box_h = 10, .ofs_x = 1, .ofs_y = 14},
+    {.bitmap_index = 22521, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 22704, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 22893, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 23104, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 23293, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 23496, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 23699, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 23895, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 24078, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 24274, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 24477, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 24659, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 24848, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 25037, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 25226, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 25437, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 25620, .adv_w = 472, .box_w = 14, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 25718, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 25907, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 26118, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 26321, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 26510, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 26699, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 26881, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 27084, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 27280, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 27483, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 27686, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 27897, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 28100, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 28283, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 28479, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 28682, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 28885, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 29088, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 29284, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 29480, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 29691, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 29887, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 30076, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 30272, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 30468, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 30664, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 30860, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 31056, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 31259, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 31442, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 31638, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 31841, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 32052, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 32241, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 32430, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 32619, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 32815, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 33011, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 33214, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 33417, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 33613, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 33816, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 34027, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 34209, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 34420, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 34623, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 34826, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 35022, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 35218, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 35414, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 35617, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 35806, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 36002, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 36205, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 36408, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 36597, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 36800, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 36996, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 37207, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 37403, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 37606, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 37817, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 38020, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 38216, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 38399, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 38595, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 38791, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 38987, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 39176, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 39379, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 39590, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 39779, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 39968, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 40171, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 40367, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 40550, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 40746, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 40942, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 41153, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 41349, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 41552, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 41763, .adv_w = 472, .box_w = 30, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 41966, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 42177, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 42366, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 42555, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 42744, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 42955, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 43158, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 43354, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 43543, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 43746, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 43957, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 44160, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 44349, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 44545, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 44741, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 44952, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 45155, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 45358, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 45561, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 45757, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 45946, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 46142, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 46338, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 46549, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 46752, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 46955, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 47151, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 47354, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 47543, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 47739, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 47942, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 48138, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 48327, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 48530, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 48733, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 48929, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 49112, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 49323, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 49534, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 49745, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 49934, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 50137, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 50340, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 50529, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 50740, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 50943, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 51154, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 51365, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 51576, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 51779, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 51982, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 52185, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 52381, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 52584, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 52787, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 52998, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 53194, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 53390, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 53573, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 53762, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 53958, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 54154, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 54350, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 54553, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 54749, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 54952, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 55163, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 55366, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 55577, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 55780, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 55983, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 56186, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 56375, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 56578, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 56789, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 57000, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 57203, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 57392, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 57588, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 57791, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 57994, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 58197, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 58400, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 58611, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 58794, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 58990, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 59193, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 59404, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 59600, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 59782, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 59985, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 60167, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 60363, .adv_w = 472, .box_w = 30, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 60573, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 60784, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 60980, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 61191, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 61394, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 61590, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 61801, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 62012, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 62215, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 62418, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 62621, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 62824, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 63007, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 63210, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 63413, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 63595, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 63798, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 64009, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 64205, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 64408, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 64604, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 64793, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 64996, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 65207, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 65410, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 65613, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 65816, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 66027, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 66216, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 66419, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 66615, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 66826, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 67037, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 67248, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 67459, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 67648, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 67859, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 68055, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 68266, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 68477, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 68680, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 68883, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 69094, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 69290, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 69501, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 69704, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 69900, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 70096, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 70299, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 70502, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 70713, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 70916, .adv_w = 472, .box_w = 29, .box_h = 30, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 71134, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 71337, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 71526, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 71715, .adv_w = 472, .box_w = 27, .box_h = 25, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 71884, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 72080, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 72269, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 72452, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 72648, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 72837, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 73033, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 73222, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 73418, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 73607, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 73796, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 73992, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 74175, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 74371, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 74553, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 74742, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 74945, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 75134, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 75316, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 75505, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 75708, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 75897, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 76093, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 76276, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 76465, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 76654, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 76850, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 77046, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 77242, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 77424, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 77620, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 77816, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 78019, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 78215, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 78411, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 78607, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 78810, .adv_w = 472, .box_w = 23, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 78960, .adv_w = 472, .box_w = 23, .box_h = 28, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 79121, .adv_w = 472, .box_w = 23, .box_h = 27, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 79277, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 79473, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 79655, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 79837, .adv_w = 472, .box_w = 23, .box_h = 27, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 79993, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 80169, .adv_w = 472, .box_w = 25, .box_h = 9, .ofs_x = 2, .ofs_y = 13},
+    {.bitmap_index = 80226, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 80409, .adv_w = 472, .box_w = 26, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 80578, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 80754, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 80957, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 81133, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 81315, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 81491, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 81674, .adv_w = 472, .box_w = 9, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 81735, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 81938, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 82114, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 82317, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 82499, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 82674, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 82877, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 83073, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 83262, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 83451, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 83654, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 83857, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 84046, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 84242, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 84431, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 84620, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 84816, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 85012, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 85188, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 85391, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 85587, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 85790, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 85986, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 86182, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 86358, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 86540, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 86736, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 86932, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 87128, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 87324, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 87513, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 87716, .adv_w = 472, .box_w = 23, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 87866, .adv_w = 472, .box_w = 24, .box_h = 27, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 88028, .adv_w = 472, .box_w = 24, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 88184, .adv_w = 472, .box_w = 24, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 88340, .adv_w = 472, .box_w = 23, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 88501, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 88690, .adv_w = 472, .box_w = 24, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 88858, .adv_w = 472, .box_w = 23, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 89008, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 89204, .adv_w = 472, .box_w = 25, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 89367, .adv_w = 472, .box_w = 25, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 89530, .adv_w = 472, .box_w = 11, .box_h = 28, .ofs_x = 15, .ofs_y = -3},
+    {.bitmap_index = 89607, .adv_w = 472, .box_w = 25, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 89776, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 89979, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 90168, .adv_w = 472, .box_w = 25, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 90337, .adv_w = 472, .box_w = 25, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 90506, .adv_w = 472, .box_w = 24, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 90674, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 90856, .adv_w = 472, .box_w = 25, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 91025, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 91201, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 91390, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 91566, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 91755, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 91937, .adv_w = 472, .box_w = 24, .box_h = 28, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 92105, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 92294, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 92490, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 92679, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 92855, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 93044, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 93233, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 93415, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 93591, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 93773, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 93955, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 94144, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 94326, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 94515, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 94726, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 94915, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 95111, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 95300, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 95482, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 95664, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 95839, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 96022, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 96211, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 96393, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 96575, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 96764, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 96953, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 97128, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 97317, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 97506, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 97688, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 97870, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 98046, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 98235, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 98424, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 98607, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 98790, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 98986, .adv_w = 472, .box_w = 25, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 99155, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 99344, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 99527, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 99716, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 99905, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 100088, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 100284, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 100473, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 100662, .adv_w = 472, .box_w = 25, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 100844, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 101040, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 101251, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 101447, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 101636, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 101847, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 102036, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 102232, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 102414, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 102610, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 102813, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 103009, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 103198, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 103394, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 103590, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 103786, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 103975, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 104171, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 104367, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 104556, .adv_w = 472, .box_w = 25, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 104725, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 104921, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 105110, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 105299, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 105488, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 105663, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 105845, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 106041, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 106230, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 106433, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 106608, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 106783, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 106958, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 107147, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 107322, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 107518, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 107700, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 107889, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 108078, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 108281, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 108463, .adv_w = 472, .box_w = 22, .box_h = 26, .ofs_x = 5, .ofs_y = -2},
+    {.bitmap_index = 108606, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 108795, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 108978, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 109167, .adv_w = 472, .box_w = 24, .box_h = 25, .ofs_x = 3, .ofs_y = -2},
+    {.bitmap_index = 109317, .adv_w = 472, .box_w = 25, .box_h = 25, .ofs_x = 3, .ofs_y = -2},
+    {.bitmap_index = 109474, .adv_w = 472, .box_w = 24, .box_h = 25, .ofs_x = 4, .ofs_y = -2},
+    {.bitmap_index = 109624, .adv_w = 472, .box_w = 25, .box_h = 25, .ofs_x = 3, .ofs_y = -2},
+    {.bitmap_index = 109781, .adv_w = 472, .box_w = 25, .box_h = 25, .ofs_x = 3, .ofs_y = -2},
+    {.bitmap_index = 109938, .adv_w = 472, .box_w = 26, .box_h = 25, .ofs_x = 3, .ofs_y = -2},
+    {.bitmap_index = 110101, .adv_w = 472, .box_w = 25, .box_h = 25, .ofs_x = 3, .ofs_y = -2},
+    {.bitmap_index = 110258, .adv_w = 472, .box_w = 25, .box_h = 25, .ofs_x = 3, .ofs_y = -2},
+    {.bitmap_index = 110415, .adv_w = 472, .box_w = 25, .box_h = 25, .ofs_x = 3, .ofs_y = -2},
+    {.bitmap_index = 110572, .adv_w = 472, .box_w = 25, .box_h = 25, .ofs_x = 3, .ofs_y = -2},
+    {.bitmap_index = 110729, .adv_w = 472, .box_w = 24, .box_h = 25, .ofs_x = 4, .ofs_y = -2},
+    {.bitmap_index = 110879, .adv_w = 472, .box_w = 25, .box_h = 25, .ofs_x = 3, .ofs_y = -2},
+    {.bitmap_index = 111036, .adv_w = 472, .box_w = 25, .box_h = 25, .ofs_x = 3, .ofs_y = -2},
+    {.bitmap_index = 111193, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 111376, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 111559, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 111755, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 111944, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 112133, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 112336, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 112525, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 112714, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 112925, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 113114, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 113303, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 113492, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 113681, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 113870, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 114066, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 114269, .adv_w = 472, .box_w = 16, .box_h = 28, .ofs_x = 11, .ofs_y = -3},
+    {.bitmap_index = 114381, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 114564, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 114746, .adv_w = 472, .box_w = 24, .box_h = 28, .ofs_x = 4, .ofs_y = -3},
+    {.bitmap_index = 114914, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 115103, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 115299, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 115474, .adv_w = 472, .box_w = 25, .box_h = 27, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 115643, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 115839, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 116022, .adv_w = 472, .box_w = 14, .box_h = 26, .ofs_x = 8, .ofs_y = -3},
+    {.bitmap_index = 116113, .adv_w = 472, .box_w = 27, .box_h = 24, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 116275, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 116458, .adv_w = 472, .box_w = 24, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 116626, .adv_w = 472, .box_w = 25, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 116795, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 116991, .adv_w = 472, .box_w = 25, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 117154, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 117343, .adv_w = 472, .box_w = 24, .box_h = 28, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 117511, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 117714, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 117896, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 118092, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 118274, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 118450, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 118639, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 118828, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 119011, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 119200, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 119396, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 119585, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 119774, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 119963, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 120152, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 120341, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 120530, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 120719, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 120908, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 121104, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 121300, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 121489, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 121678, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 121860, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 122056, .adv_w = 472, .box_w = 25, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 122225, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 122421, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 122597, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 122793, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 123004, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 123186, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 123375, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 123571, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 123774, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 123963, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 124152, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 124355, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 124558, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 124747, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 124936, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 125139, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 125350, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 125553, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 125742, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 125918, .adv_w = 472, .box_w = 22, .box_h = 25, .ofs_x = 4, .ofs_y = -3},
+    {.bitmap_index = 126056, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 126239, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 126421, .adv_w = 472, .box_w = 25, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 126584, .adv_w = 472, .box_w = 24, .box_h = 26, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 126740, .adv_w = 472, .box_w = 24, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 126896, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 127085, .adv_w = 472, .box_w = 23, .box_h = 27, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 127241, .adv_w = 472, .box_w = 26, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 127410, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 127593, .adv_w = 472, .box_w = 26, .box_h = 26, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 127762, .adv_w = 472, .box_w = 26, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 127931, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 128106, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 128282, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 128478, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 128674, .adv_w = 472, .box_w = 25, .box_h = 25, .ofs_x = 3, .ofs_y = -2},
+    {.bitmap_index = 128831, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 129020, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 129203, .adv_w = 472, .box_w = 25, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 129366, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 129542, .adv_w = 472, .box_w = 24, .box_h = 29, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 129716, .adv_w = 472, .box_w = 24, .box_h = 25, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 129866, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 130042, .adv_w = 472, .box_w = 26, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 130211, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 130386, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 130582, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 130757, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 130960, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 131143, .adv_w = 472, .box_w = 23, .box_h = 26, .ofs_x = 3, .ofs_y = -2},
+    {.bitmap_index = 131293, .adv_w = 472, .box_w = 23, .box_h = 27, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 131449, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 131631, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 131820, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 132023, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 3, .ofs_y = -2},
+    {.bitmap_index = 132199, .adv_w = 472, .box_w = 23, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 132360, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 132536, .adv_w = 472, .box_w = 26, .box_h = 25, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 132699, .adv_w = 472, .box_w = 23, .box_h = 25, .ofs_x = 3, .ofs_y = -2},
+    {.bitmap_index = 132843, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 133032, .adv_w = 472, .box_w = 25, .box_h = 27, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 133201, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 133390, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 133593, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 133782, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 133971, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 134153, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 134336, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 134512, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 134688, .adv_w = 472, .box_w = 26, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 134857, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 135039, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 135221, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 135417, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 135599, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 135781, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 135970, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 136152, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 136341, .adv_w = 472, .box_w = 24, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 136503, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 136685, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 136874, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 137057, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 137246, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 137421, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 137604, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 137780, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 137956, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 138132, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 138314, .adv_w = 472, .box_w = 27, .box_h = 25, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 138483, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 138666, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 138848, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 139023, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 139199, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 139388, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 139577, .adv_w = 472, .box_w = 27, .box_h = 25, .ofs_x = 2, .ofs_y = -2},
+    {.bitmap_index = 139746, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 139929, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 140112, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 140288, .adv_w = 472, .box_w = 23, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 140438, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 140621, .adv_w = 472, .box_w = 24, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 140789, .adv_w = 472, .box_w = 26, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 140958, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 141147, .adv_w = 472, .box_w = 25, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 141329, .adv_w = 472, .box_w = 26, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 141498, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 141687, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 2, .ofs_y = -2},
+    {.bitmap_index = 141863, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 142052, .adv_w = 472, .box_w = 26, .box_h = 26, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 142221, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 142424, .adv_w = 472, .box_w = 25, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 142587, .adv_w = 472, .box_w = 26, .box_h = 24, .ofs_x = 3, .ofs_y = -2},
+    {.bitmap_index = 142743, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 142918, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 143101, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 143297, .adv_w = 472, .box_w = 27, .box_h = 25, .ofs_x = 2, .ofs_y = -2},
+    {.bitmap_index = 143466, .adv_w = 472, .box_w = 27, .box_h = 25, .ofs_x = 2, .ofs_y = -2},
+    {.bitmap_index = 143635, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 143810, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 143999, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 144188, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 144371, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 144574, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 144763, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 144946, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 145122, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 145304, .adv_w = 472, .box_w = 25, .box_h = 27, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 145473, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 145648, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 145837, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 146026, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 146209, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 2, .ofs_y = -2},
+    {.bitmap_index = 146385, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 146574, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 146749, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 146945, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 147120, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 147309, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 147498, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 147681, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 147863, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 148059, .adv_w = 472, .box_w = 25, .box_h = 27, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 148228, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 148417, .adv_w = 472, .box_w = 24, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 148585, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 148781, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 148970, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 149173, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 149369, .adv_w = 472, .box_w = 25, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 149532, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 149721, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 149932, .adv_w = 472, .box_w = 24, .box_h = 25, .ofs_x = 3, .ofs_y = -2},
+    {.bitmap_index = 150082, .adv_w = 472, .box_w = 26, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 150251, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 150433, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 150622, .adv_w = 472, .box_w = 25, .box_h = 26, .ofs_x = 3, .ofs_y = -2},
+    {.bitmap_index = 150785, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 150974, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 151170, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 151353, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 151528, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 151724, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 151907, .adv_w = 472, .box_w = 26, .box_h = 25, .ofs_x = 2, .ofs_y = -2},
+    {.bitmap_index = 152070, .adv_w = 472, .box_w = 27, .box_h = 25, .ofs_x = 2, .ofs_y = -2},
+    {.bitmap_index = 152239, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -2},
+    {.bitmap_index = 152422, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 152618, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 152793, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 152982, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 153171, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 153347, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 153523, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 153712, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 153901, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 154090, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 154266, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 154455, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 154644, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 154833, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 155015, .adv_w = 472, .box_w = 27, .box_h = 25, .ofs_x = 2, .ofs_y = -2},
+    {.bitmap_index = 155184, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 155360, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 155542, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 155738, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 155927, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 156116, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 156305, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 156494, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 156677, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 156866, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 157062, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 157258, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 157440, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 157629, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 157805, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 158001, .adv_w = 472, .box_w = 26, .box_h = 26, .ofs_x = 3, .ofs_y = -2},
+    {.bitmap_index = 158170, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 158346, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 158535, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 158731, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 158920, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 159109, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 159305, .adv_w = 472, .box_w = 25, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 159468, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 159657, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 159839, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 160035, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 160224, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 160399, .adv_w = 472, .box_w = 24, .box_h = 27, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 160561, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 160750, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 160932, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 161114, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 2, .ofs_y = -2},
+    {.bitmap_index = 161290, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 161479, .adv_w = 472, .box_w = 25, .box_h = 27, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 161648, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 161844, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 162020, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 162216, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 162412, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 162595, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 162784, .adv_w = 472, .box_w = 24, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 162952, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 163148, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 163324, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 163500, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 163682, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 163871, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 164054, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 164250, .adv_w = 472, .box_w = 25, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 164432, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 164628, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 164817, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 165000, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 165196, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 165385, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 165567, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 165763, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 165938, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 166120, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 166309, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 166498, .adv_w = 472, .box_w = 25, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 166661, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 166837, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 167019, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 167208, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 167383, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 167579, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 167768, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 167957, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 168146, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 168335, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 168524, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 168700, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 168882, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 169071, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 169267, .adv_w = 472, .box_w = 26, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 169436, .adv_w = 472, .box_w = 25, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 169599, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 2, .ofs_y = -2},
+    {.bitmap_index = 169775, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 169958, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -2},
+    {.bitmap_index = 170141, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 170330, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 170519, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -2},
+    {.bitmap_index = 170702, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 170885, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 171074, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 171263, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 171446, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 171642, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 171831, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -2},
+    {.bitmap_index = 172014, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 172189, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -2},
+    {.bitmap_index = 172372, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 172561, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 172737, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 172933, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 173129, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 173318, .adv_w = 472, .box_w = 25, .box_h = 27, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 173487, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 2, .ofs_y = -2},
+    {.bitmap_index = 173663, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 173859, .adv_w = 472, .box_w = 25, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 174022, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 174211, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 174400, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 174589, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 174785, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 174974, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 175157, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 175346, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 175522, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 175711, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 175900, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 176083, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 176272, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 176461, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 176657, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 176839, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 177035, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 177224, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 177427, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 177610, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 177786, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 177989, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 178178, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 178374, .adv_w = 472, .box_w = 25, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 178556, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 178738, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 178927, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 179110, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 179299, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 179482, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 179671, .adv_w = 472, .box_w = 25, .box_h = 27, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 179840, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 180029, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 180225, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 180414, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 180603, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 180792, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 180975, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 181157, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 181353, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 2, .ofs_y = -2},
+    {.bitmap_index = 181529, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 2, .ofs_y = -2},
+    {.bitmap_index = 181705, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 181894, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 182070, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 182253, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 182449, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 182638, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 182827, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 183016, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 183192, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 183368, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 183557, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -2},
+    {.bitmap_index = 183740, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 183929, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 184118, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -2},
+    {.bitmap_index = 184301, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 184483, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 184666, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 184855, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 185044, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 185240, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 185429, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 185612, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 185795, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 185991, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 186174, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 186385, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 186581, .adv_w = 472, .box_w = 23, .box_h = 27, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 186737, .adv_w = 472, .box_w = 24, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 186893, .adv_w = 472, .box_w = 24, .box_h = 25, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 187043, .adv_w = 472, .box_w = 24, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 187199, .adv_w = 472, .box_w = 23, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 187349, .adv_w = 472, .box_w = 23, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 187510, .adv_w = 472, .box_w = 24, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 187666, .adv_w = 472, .box_w = 24, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 187822, .adv_w = 472, .box_w = 24, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 187978, .adv_w = 472, .box_w = 24, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 188134, .adv_w = 472, .box_w = 24, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 188290, .adv_w = 472, .box_w = 24, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 188446, .adv_w = 472, .box_w = 23, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 188596, .adv_w = 472, .box_w = 24, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 188764, .adv_w = 472, .box_w = 24, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 188920, .adv_w = 472, .box_w = 24, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 189076, .adv_w = 472, .box_w = 24, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 189232, .adv_w = 472, .box_w = 24, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 189388, .adv_w = 472, .box_w = 24, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 189544, .adv_w = 472, .box_w = 23, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 189694, .adv_w = 472, .box_w = 24, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 189850, .adv_w = 472, .box_w = 24, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 190006, .adv_w = 472, .box_w = 23, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 190156, .adv_w = 472, .box_w = 24, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 190312, .adv_w = 472, .box_w = 24, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 190468, .adv_w = 472, .box_w = 24, .box_h = 27, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 190630, .adv_w = 472, .box_w = 24, .box_h = 27, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 190792, .adv_w = 472, .box_w = 24, .box_h = 27, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 190954, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 191137, .adv_w = 472, .box_w = 28, .box_h = 25, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 191312, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 191508, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 191704, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 191893, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 192082, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 192258, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 192441, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 192624, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 192820, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 192995, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 193198, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 193380, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 193576, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 193765, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 193954, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 194157, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 194339, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 194542, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 194738, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 194934, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 195130, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 195319, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 195501, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 195704, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 195900, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 196082, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 196278, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 196481, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 196684, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 196866, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 197069, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 197258, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 197454, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 197643, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 197825, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 198001, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 198190, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 198379, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 198568, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 198764, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 198960, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 199149, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 199332, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 199528, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 199731, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 199927, .adv_w = 472, .box_w = 28, .box_h = 25, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 200102, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 200284, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 200467, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 200663, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 200874, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 201050, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 201233, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 201416, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 201619, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 201815, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 202011, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 202194, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 202390, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 202566, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 202748, .adv_w = 472, .box_w = 28, .box_h = 25, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 202923, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 203112, .adv_w = 472, .box_w = 27, .box_h = 25, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 203281, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 203457, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 203639, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 203835, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 204011, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 204207, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 204410, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 204613, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 204816, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 204998, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 205209, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 205405, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 205601, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 205797, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 205986, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 206175, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 206378, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 206560, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 206749, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 206932, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 207128, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 207324, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 207513, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 207709, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 207898, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 208080, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 208276, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 208465, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 208654, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 208843, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 209026, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 209222, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 209398, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 209594, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 209790, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 209979, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 210162, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 210338, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 210534, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 210730, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 210926, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 211129, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 211318, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 211507, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 211696, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 211899, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 212081, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 212284, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 212467, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 212670, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 212873, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 213069, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 213265, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 213468, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 213664, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 213846, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 214042, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 214238, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 214434, .adv_w = 472, .box_w = 27, .box_h = 25, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 214603, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 214799, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 214995, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 215191, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 215380, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 215576, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 215758, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 215961, .adv_w = 472, .box_w = 27, .box_h = 25, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 216130, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 216341, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 216523, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 216712, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 216895, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 217091, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 217294, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 217497, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 217673, .adv_w = 472, .box_w = 27, .box_h = 25, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 217842, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 218031, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 218227, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 218416, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 2, .ofs_y = -2},
+    {.bitmap_index = 218592, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 218775, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 218971, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 219167, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 219378, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 219581, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 219770, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 219966, .adv_w = 472, .box_w = 25, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 220148, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 220344, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 220540, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 220729, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 220940, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 221136, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 221332, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 221535, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 221724, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 221900, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 222103, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 222299, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 222482, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 222678, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 222881, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 223077, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 223260, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 223449, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 223652, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 223848, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 224051, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 224254, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 224450, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 224653, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 224856, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 225052, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 225263, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 225466, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 225669, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 225865, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 226076, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 226272, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 226483, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 226679, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 226882, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 227085, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 227288, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 227484, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 227687, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 227890, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 228093, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 228289, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 228485, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 228681, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 228877, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 229073, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 229276, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 229465, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 229647, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 229836, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 230032, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 230235, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 230411, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 230593, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 230789, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 230985, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 231167, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 231370, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 231566, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 231769, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 231972, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 232175, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 232364, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 232553, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 232742, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 232945, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 233141, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 233337, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 233526, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 233722, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 233911, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 234100, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 234303, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 234506, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 234702, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 234898, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 235080, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 235283, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 235479, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 235668, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 235864, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 236060, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 236249, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 236452, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 236663, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 236866, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 237062, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 237265, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 237468, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 237657, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 237853, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 238056, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 238245, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 238421, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 238617, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 238820, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 239016, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 239219, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 239422, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 239618, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 239821, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 240024, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 240227, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 240430, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 240619, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 240815, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 241018, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 241221, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 241410, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 241606, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 241809, .adv_w = 472, .box_w = 30, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 242027, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 242223, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 242434, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 242630, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 242819, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 243008, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 243190, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 243393, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 243582, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 243778, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 243981, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 244184, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 244387, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 244583, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 244786, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 244997, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 245180, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 245391, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 245580, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 245776, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 245979, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 246182, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 246378, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 246567, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 246778, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 246981, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 247177, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 247373, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 247576, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 247779, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 247990, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 248193, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 248389, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 248600, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 248803, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 248999, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 249202, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 249398, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 249601, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 249797, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 250000, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 250203, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 250399, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 250595, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 250806, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 251009, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 251220, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 251416, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 251612, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 251815, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 252011, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 252207, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 252410, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 252613, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 252789, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 252965, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 253141, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 253324, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 253500, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 253689, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 253885, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 254081, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 254264, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 254453, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 254656, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 254859, .adv_w = 472, .box_w = 28, .box_h = 25, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 255034, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 255237, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 255426, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 255622, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 255825, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 256014, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 256217, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 256420, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 256602, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 256798, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 256974, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 257163, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 257352, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 257541, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 257744, .adv_w = 472, .box_w = 24, .box_h = 13, .ofs_x = 3, .ofs_y = 11},
+    {.bitmap_index = 257822, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 258011, .adv_w = 472, .box_w = 24, .box_h = 27, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 258173, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 258369, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 258552, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 258741, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 258930, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 259126, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 259329, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 259518, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 259721, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 259917, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 260113, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 260316, .adv_w = 472, .box_w = 25, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 260498, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 260680, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 260876, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 261072, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 261261, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 2, .ofs_y = -2},
+    {.bitmap_index = 261437, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 261626, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 261815, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 261990, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 262193, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 262376, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 262559, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 262762, .adv_w = 472, .box_w = 25, .box_h = 27, .ofs_x = 2, .ofs_y = -2},
+    {.bitmap_index = 262931, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 263113, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 263288, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 263484, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 263673, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 263862, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 264037, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 264233, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 264444, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 264640, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 264829, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 265025, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 265228, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 265431, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 265627, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 265823, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 266012, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 266208, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 266383, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 266586, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 266782, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 266957, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 267153, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 267349, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 267560, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 267771, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 267974, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 268177, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 268373, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 268569, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 268772, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 268961, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 269157, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 269340, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 269522, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 269705, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 269916, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 270112, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 270323, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 270526, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 270737, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 270940, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 271136, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 271339, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 271542, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 271718, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 271914, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 272090, .adv_w = 472, .box_w = 23, .box_h = 29, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 272257, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 272460, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 272649, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 272838, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 273027, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 273223, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 273405, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 273601, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 273790, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 273979, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 274155, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 274344, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 274526, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 274708, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 274884, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 275066, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 275242, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 275438, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 275614, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 275803, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 275992, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 276181, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 276357, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 276546, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 276722, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 276911, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 277093, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 277282, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 277471, .adv_w = 472, .box_w = 26, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 277640, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 277822, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 278011, .adv_w = 472, .box_w = 26, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 278180, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 278369, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 278558, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 278754, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 278950, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 279139, .adv_w = 472, .box_w = 21, .box_h = 27, .ofs_x = 4, .ofs_y = -3},
+    {.bitmap_index = 279281, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 279457, .adv_w = 472, .box_w = 23, .box_h = 27, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 279613, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 279802, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 279985, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 280174, .adv_w = 472, .box_w = 25, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 280356, .adv_w = 472, .box_w = 24, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 280524, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 280706, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 280909, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 281098, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 281294, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 281505, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 281708, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 2, .ofs_y = -2},
+    {.bitmap_index = 281884, .adv_w = 472, .box_w = 23, .box_h = 29, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 282051, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 282240, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 282429, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 282632, .adv_w = 472, .box_w = 24, .box_h = 29, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 282806, .adv_w = 472, .box_w = 24, .box_h = 28, .ofs_x = 4, .ofs_y = -3},
+    {.bitmap_index = 282974, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 283163, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 283338, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 283534, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 283709, .adv_w = 472, .box_w = 25, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 283878, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 284074, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 284270, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 284459, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 284648, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 284837, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 285033, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 285229, .adv_w = 472, .box_w = 23, .box_h = 28, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 285390, .adv_w = 472, .box_w = 25, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 285572, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 285755, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 285930, .adv_w = 472, .box_w = 25, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 286099, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 286275, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 286464, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 286660, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 286842, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 287038, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 287227, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 287416, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 287605, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 287794, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 287983, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 288165, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 288354, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -2},
+    {.bitmap_index = 288537, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 288726, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 288915, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 289111, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 289307, .adv_w = 472, .box_w = 25, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 289476, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 289665, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 289854, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 290043, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 290254, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 290443, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 290646, .adv_w = 472, .box_w = 23, .box_h = 27, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 290802, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 291005, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 291194, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 291383, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 291586, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 291769, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 291944, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 292147, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 292336, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 292532, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 292721, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 292903, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 293099, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 293288, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 2, .ofs_y = -2},
+    {.bitmap_index = 293464, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 293653, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 293829, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 294025, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -2},
+    {.bitmap_index = 294208, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 294411, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 294614, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 294803, .adv_w = 472, .box_w = 25, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 294972, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 295147, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 295322, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 295518, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 295721, .adv_w = 472, .box_w = 27, .box_h = 23, .ofs_x = 1, .ofs_y = -1},
+    {.bitmap_index = 295877, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 296066, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 296248, .adv_w = 472, .box_w = 25, .box_h = 25, .ofs_x = 3, .ofs_y = -2},
+    {.bitmap_index = 296405, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 296594, .adv_w = 472, .box_w = 27, .box_h = 24, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 296756, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 296945, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 297148, .adv_w = 472, .box_w = 25, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 297311, .adv_w = 472, .box_w = 25, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 297474, .adv_w = 472, .box_w = 24, .box_h = 26, .ofs_x = 4, .ofs_y = -3},
+    {.bitmap_index = 297630, .adv_w = 472, .box_w = 24, .box_h = 26, .ofs_x = 4, .ofs_y = -3},
+    {.bitmap_index = 297786, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 297982, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 298165, .adv_w = 472, .box_w = 22, .box_h = 27, .ofs_x = 4, .ofs_y = -3},
+    {.bitmap_index = 298314, .adv_w = 472, .box_w = 25, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 298483, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 298672, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 298868, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 299043, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 299239, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 299421, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 299610, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 299792, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 299981, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 300177, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 300373, .adv_w = 472, .box_w = 25, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 300555, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 300738, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 300927, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 301123, .adv_w = 472, .box_w = 25, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 301292, .adv_w = 472, .box_w = 23, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 301453, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 301649, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 301831, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 302020, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 302209, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 302405, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 302581, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 302770, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 302952, .adv_w = 472, .box_w = 25, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 303121, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 303310, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 303485, .adv_w = 472, .box_w = 25, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 303667, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 303856, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 304059, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 304241, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 304423, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 304619, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 304815, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 305011, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 305207, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 305396, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 305585, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 305761, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 305937, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 306133, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 306336, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 306525, .adv_w = 472, .box_w = 24, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 306693, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 306869, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 307058, .adv_w = 472, .box_w = 24, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 307226, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 307415, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 307611, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 307807, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 308010, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 308199, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 308410, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 308621, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 308817, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 309013, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 309209, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 309412, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 309608, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 309797, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 309993, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 310182, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 310378, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 310589, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 310785, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 310988, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 311191, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 311387, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 311598, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 311801, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 312004, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 312207, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 312403, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 312599, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 312802, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 313005, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 313201, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 313412, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 313615, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 313826, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 314015, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 314211, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 314422, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 314618, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 314829, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 315032, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 315243, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 315446, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 315635, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 315838, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 316034, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 316245, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 316428, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 316617, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 316800, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 317003, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 317192, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 317395, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 317578, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 317781, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 317984, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 2, .ofs_y = -2},
+    {.bitmap_index = 318160, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 318343, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 318539, .adv_w = 472, .box_w = 22, .box_h = 26, .ofs_x = 4, .ofs_y = -3},
+    {.bitmap_index = 318682, .adv_w = 472, .box_w = 23, .box_h = 27, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 318838, .adv_w = 472, .box_w = 25, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 319020, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 319196, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 319385, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 319567, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 319756, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 319945, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 320141, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 320337, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 320533, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 320709, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 320891, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 321094, .adv_w = 472, .box_w = 26, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 321263, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 321452, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 321641, .adv_w = 472, .box_w = 26, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 321810, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 322006, .adv_w = 472, .box_w = 24, .box_h = 25, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 322156, .adv_w = 472, .box_w = 25, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 322338, .adv_w = 472, .box_w = 24, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 322500, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 322682, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 322871, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 323060, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 323243, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 323439, .adv_w = 472, .box_w = 21, .box_h = 27, .ofs_x = 4, .ofs_y = -3},
+    {.bitmap_index = 323581, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 323770, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 323953, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 324142, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 324331, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 324527, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 324723, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 324912, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 325101, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 325297, .adv_w = 472, .box_w = 15, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 325402, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 325613, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 325809, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 326005, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 326208, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 326404, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 326600, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 326803, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 327006, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 327195, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 327384, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 327595, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 327791, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 327980, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 328176, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 328387, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 328583, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 328786, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 328989, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 329185, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 329388, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 329591, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 329780, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 329969, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 330172, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 330375, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 330578, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 330789, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 331000, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 331203, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 331414, .adv_w = 472, .box_w = 30, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 331632, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 331828, .adv_w = 472, .box_w = 16, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 331940, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 332136, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 332332, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 332521, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 332703, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 332879, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 333075, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 333271, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 333447, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 333643, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 333846, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 334049, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 334245, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 334441, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 334630, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 334819, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 335008, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 335211, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 335422, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 335633, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 335836, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 336032, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 336235, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 336438, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 336627, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 336823, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 337026, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 337215, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 337426, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 337622, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 337818, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 338007, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 338203, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 338399, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 338595, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 338798, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 338987, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 339183, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 339379, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 339575, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 339778, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 339974, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 340170, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 340366, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 340562, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 340758, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 340954, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 341157, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 341333, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 341536, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 341747, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 341943, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 342146, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 342349, .adv_w = 472, .box_w = 28, .box_h = 30, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 342559, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 342770, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 342973, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 343169, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 343380, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 343591, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 343794, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 343990, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 344193, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 344389, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 344578, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 344781, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 344970, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 345181, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 345363, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 345566, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 345762, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 345958, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 346154, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 346357, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 346560, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 346756, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 346959, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 347148, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 347344, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 347526, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 347729, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 347925, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 348136, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 348339, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 348535, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 348738, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 348914, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 349090, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 349293, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 349504, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 349700, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 349876, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 350072, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 350268, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 350457, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 350646, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 350842, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 351031, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 351220, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 351423, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 351612, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 351823, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 352026, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 352222, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 352433, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 352629, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 352832, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 353035, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 353231, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 353434, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 353630, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 353812, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 353994, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 354197, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 354386, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 354582, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 354778, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 354981, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 355177, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 355380, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 355576, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 355772, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 355961, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 356164, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 356367, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 356563, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 356752, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 356935, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 357131, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 357334, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 357516, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 357719, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 357908, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 358104, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 358307, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 358518, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 358707, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 358918, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 359114, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 359317, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 359513, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 359724, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 359927, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 360123, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 360319, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 360515, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 360704, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 360900, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 361111, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 361300, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 361496, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 361692, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 361888, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 362084, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 362287, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 362483, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 362672, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 362855, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 363051, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 363247, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 363458, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 363654, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 363865, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 364076, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 364279, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 364461, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 364650, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 364853, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 365064, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 365275, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 365478, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 365674, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 365856, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 366059, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 366248, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 366444, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 366627, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 366830, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 367033, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 367229, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 367418, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 367621, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 367817, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 368013, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 368202, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 368398, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 368601, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 368812, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 369015, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 369211, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 369414, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 369625, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 369828, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 370017, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 370228, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 370431, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 370620, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 370823, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 371026, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 371229, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 371405, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 371594, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 2, .ofs_y = -2},
+    {.bitmap_index = 371770, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 371973, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 372169, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 372358, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 372554, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 372757, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 372946, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 373142, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 373331, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 373514, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 373725, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 373914, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 374125, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 374301, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 374490, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 374666, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 374855, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 375044, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 375233, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 375436, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 375625, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 375828, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 376031, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 376220, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 376402, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 376598, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 376801, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 377004, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 377200, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 377396, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 377585, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 377767, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 377963, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 378152, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 378328, .adv_w = 472, .box_w = 15, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 378433, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 378622, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 378805, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 379001, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 379204, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 379407, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 379589, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 379778, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 379974, .adv_w = 472, .box_w = 25, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 380143, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 380346, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 380542, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 380738, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 380914, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 381096, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 381285, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 381474, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 381677, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 381880, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 382076, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 382287, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 382483, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 382672, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 382868, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 383057, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 383253, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 383464, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 383675, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 383864, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 384053, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 384235, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 384424, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 384620, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 384816, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 385019, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 385215, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 385418, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 385614, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 385810, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 386013, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 386202, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 386405, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 386601, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 386797, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 387000, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 387196, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 387399, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 387602, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 387798, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 388001, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 388204, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 388393, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 388569, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 388758, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 388954, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 389157, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 389346, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 389542, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 389745, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 389941, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 390137, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 390333, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 390529, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 390732, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 390928, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 391131, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 391320, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 391509, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 391712, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 391915, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 392111, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 392307, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 392489, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 392671, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 392874, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 393050, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 393239, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 393442, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 393631, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 393842, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 394018, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 394221, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 394410, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 394606, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 394802, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 394991, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 395194, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 395390, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 395579, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 395775, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 395978, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 396181, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 396377, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 396580, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 396791, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 396994, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 397197, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 397408, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 397611, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 397814, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 398010, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 398206, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 398409, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 398605, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 398794, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 398997, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 399193, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 399389, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 399585, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 399781, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 399977, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 400173, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 400356, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 400552, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 400748, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 400959, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 401148, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 401359, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 401548, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 401737, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 401933, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 402122, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 402318, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 402521, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 402724, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 402927, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 403123, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 403305, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 403488, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 403677, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 403873, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 404056, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 404259, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 404448, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 404637, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 404826, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 405029, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 405225, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 405421, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 405617, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 405813, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 406002, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 406198, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 406394, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 406590, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 406793, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 406989, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 407192, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 407388, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 407584, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 407773, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 407976, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 408165, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 408376, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 408572, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 408768, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 408957, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 409146, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 409342, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 409538, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 409727, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 409916, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 410112, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 410301, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 410497, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 410693, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 410882, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 411071, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 411274, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 411477, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 411673, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 411884, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 412073, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 412262, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 412444, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 412640, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 412836, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 413018, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 413207, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 413418, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 413629, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 413840, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 414036, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 414225, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 414428, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 414631, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 414834, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 415023, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 415219, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 415415, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 415618, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 415814, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 416017, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 416213, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 416424, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 416620, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 416823, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 417026, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 417215, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 417411, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 417607, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 417796, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 417992, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 418188, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 418399, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 418610, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 418799, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 419002, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 419205, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 419401, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 419597, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 419808, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 420004, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 420200, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 420403, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 420606, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 420809, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 421020, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 421216, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 421412, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 421601, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 421797, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 422000, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 422203, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 422406, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 422602, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 422805, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 423008, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 423204, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 423407, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 423603, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 423806, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 423995, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 424198, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 424401, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 424604, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 424800, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 424989, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 425185, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 425374, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 425585, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 425788, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 425999, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 426202, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 426384, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 426580, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 426783, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 426986, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 427189, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 427400, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 427596, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 427799, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 427995, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 428191, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 428394, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 428605, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 428808, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 429011, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 429207, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 429403, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 429599, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 429802, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 429998, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 430209, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 430398, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 430601, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 430812, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 430995, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 431198, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 431394, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 431605, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 431801, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 432004, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 432200, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 432403, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 432614, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 432803, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 433014, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 433217, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 433428, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 433617, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 433820, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 434023, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 434226, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 434437, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 434640, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 434836, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 435039, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 435242, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 435438, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 435641, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 435837, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 436048, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 436259, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 436470, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 436673, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 436884, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 437095, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 437291, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 437494, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 437690, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 437893, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 438096, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 438299, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 438510, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 438699, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 438888, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 439084, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 439280, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 439483, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 439686, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 439889, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 440100, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 440296, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 440485, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 440688, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 440884, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 441080, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 441283, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 441479, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 441682, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 441871, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 442053, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 442256, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 442467, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 442670, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 442873, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 443069, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 443258, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 443447, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 443650, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 443853, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 444056, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 444238, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 444441, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 444652, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 444841, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 445044, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 445240, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 445429, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 445632, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 445835, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 446038, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 446241, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 446452, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 446663, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 446859, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 447062, .adv_w = 472, .box_w = 29, .box_h = 30, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 447280, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 447476, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 447687, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 447863, .adv_w = 472, .box_w = 26, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 448032, .adv_w = 472, .box_w = 20, .box_h = 25, .ofs_x = 5, .ofs_y = -3},
+    {.bitmap_index = 448157, .adv_w = 472, .box_w = 27, .box_h = 25, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 448326, .adv_w = 472, .box_w = 24, .box_h = 28, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 448494, .adv_w = 472, .box_w = 23, .box_h = 29, .ofs_x = 4, .ofs_y = -4},
+    {.bitmap_index = 448661, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 448843, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 449025, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 449236, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 449432, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 449608, .adv_w = 472, .box_w = 26, .box_h = 25, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 449771, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 449947, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 450123, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 450312, .adv_w = 472, .box_w = 26, .box_h = 25, .ofs_x = 3, .ofs_y = -2},
+    {.bitmap_index = 450475, .adv_w = 472, .box_w = 24, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 450643, .adv_w = 472, .box_w = 25, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 450806, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 450995, .adv_w = 472, .box_w = 25, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 451158, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 451340, .adv_w = 472, .box_w = 22, .box_h = 27, .ofs_x = 4, .ofs_y = -4},
+    {.bitmap_index = 451489, .adv_w = 472, .box_w = 23, .box_h = 27, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 451645, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 451820, .adv_w = 472, .box_w = 25, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 451989, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 452178, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 452360, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 452543, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 452746, .adv_w = 472, .box_w = 27, .box_h = 25, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 452915, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 453104, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 453307, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -2},
+    {.bitmap_index = 453490, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 453679, .adv_w = 472, .box_w = 25, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 453842, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 454025, .adv_w = 472, .box_w = 27, .box_h = 25, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 454194, .adv_w = 472, .box_w = 24, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 454362, .adv_w = 472, .box_w = 25, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 454525, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 454728, .adv_w = 472, .box_w = 29, .box_h = 25, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 454910, .adv_w = 472, .box_w = 27, .box_h = 25, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 455079, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 455255, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 455431, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 455614, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 455789, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 455978, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 456161, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 456350, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 456539, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 456715, .adv_w = 472, .box_w = 26, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 456884, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 457080, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 457255, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 457444, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 457626, .adv_w = 472, .box_w = 26, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 457795, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 457991, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 458180, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 458376, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 458552, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 458741, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 458937, .adv_w = 472, .box_w = 24, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 459093, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 459275, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 459464, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 459660, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 459863, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -2},
+    {.bitmap_index = 460046, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 460228, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 460417, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 460606, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 460788, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 460977, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 461160, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 461349, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 461525, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 461736, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 461925, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 462114, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 462310, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 462492, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 462681, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 462857, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 463046, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 463235, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 463424, .adv_w = 472, .box_w = 22, .box_h = 25, .ofs_x = 4, .ofs_y = -3},
+    {.bitmap_index = 463562, .adv_w = 472, .box_w = 24, .box_h = 27, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 463724, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 463913, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 464102, .adv_w = 472, .box_w = 25, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 464271, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 464453, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 464649, .adv_w = 472, .box_w = 23, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 464810, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 465013, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 465202, .adv_w = 472, .box_w = 22, .box_h = 27, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 465351, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 465554, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 465743, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 465919, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 466108, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 466304, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 466486, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 466682, .adv_w = 472, .box_w = 24, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 466856, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 467032, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 467214, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 467396, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 467599, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 467795, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 467984, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 468180, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 468383, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 468586, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 468782, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 468978, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 469181, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 469363, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 469574, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 469770, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 469981, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 470170, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 470381, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 470584, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 470795, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 470984, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 471195, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 471406, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 471617, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 471813, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 472016, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 472205, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 472416, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 472619, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 472822, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 473025, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 473228, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 473424, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 473620, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 473809, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 473998, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 474209, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 474420, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 474623, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 474826, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 475008, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 475211, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 475422, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 475618, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 475814, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 476025, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 476236, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 476439, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 476628, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 476831, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 477034, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 477237, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 477440, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 477643, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 477839, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 478028, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 478239, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 478421, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 478632, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 478843, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 479032, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 479243, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 479439, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 479650, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 479853, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 480049, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 480245, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 480441, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 480637, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 480840, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 481051, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 481247, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 481450, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 481639, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 481828, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 482024, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 482235, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 482446, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 482642, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 482838, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 483034, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 483237, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 483426, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 483615, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 483811, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 484000, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 484196, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 484385, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 484596, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 484799, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 484995, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 485206, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 485402, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 485598, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 485801, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 485990, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 486186, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 486389, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 486578, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 486781, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 486984, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 487180, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 487383, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 487586, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 487789, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 487985, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 488196, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 488385, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 488588, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 488799, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 488995, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 489198, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 489401, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 489604, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 489800, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 489989, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 490192, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 490403, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 490586, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 490797, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 491000, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 491196, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 491407, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 491618, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 491821, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 492032, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 492208, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 492404, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 492600, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 492803, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 493006, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 493209, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 493420, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 493623, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 493812, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 494015, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 494226, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 494429, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 494625, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 494814, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 494997, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 495193, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 495389, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 495585, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 495768, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 495964, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 496167, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 496363, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 496552, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 496748, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 496951, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 497154, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 497357, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 497560, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 497763, .adv_w = 472, .box_w = 30, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 497981, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 498177, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 498360, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 498556, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 498752, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 498955, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 499166, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 499369, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 499580, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 499776, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 499979, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 500175, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 500386, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 500589, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 500785, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 500988, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 501184, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 501387, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 501598, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 501794, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 501997, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 502200, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 502383, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 502586, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 502782, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 502993, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 503189, .adv_w = 472, .box_w = 30, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 503399, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 503588, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 503777, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 503980, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 504183, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 504379, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 504582, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 504785, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 504996, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 505199, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 505402, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 505605, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 505808, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 506011, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 506214, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 506425, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 506628, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 506824, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 507027, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 507223, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 507419, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 507622, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 507818, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 508014, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 508210, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 508413, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 508616, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 508819, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 509022, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 509225, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 509421, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 509624, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 509835, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 510024, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 510213, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 510416, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 510612, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 510823, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 511034, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 511230, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 511433, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 511636, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 511832, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 512015, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 512204, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 512415, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 512611, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 512814, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 512997, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 513200, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 513396, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 513592, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 513795, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 513998, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 514201, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 514404, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 514600, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 514803, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 515006, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 515209, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 515420, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 515603, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 515799, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 515982, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 516178, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 516381, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 516577, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 516773, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 516984, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 517187, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 517383, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 517594, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 517797, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 518000, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 518211, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 518414, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 518617, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 518806, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 519002, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 519198, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 519409, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 519612, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 519808, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 520011, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 520222, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 520425, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 520636, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 520839, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 521042, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 521245, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 521448, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 521644, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 521840, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 522036, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 522239, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 522450, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 522646, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 522842, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 523053, .adv_w = 472, .box_w = 30, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 523263, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 523466, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 523677, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 523880, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 524091, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 524294, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 524497, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 524700, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 524903, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 525106, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 525317, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 525513, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 525709, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 525912, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 526123, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 526326, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 526522, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 526733, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 526944, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 527140, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 527336, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 527539, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 527735, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 527938, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 528134, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 528345, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 528548, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 528759, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 528948, .adv_w = 472, .box_w = 27, .box_h = 24, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 529110, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 529293, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 529482, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 529664, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 529875, .adv_w = 472, .box_w = 28, .box_h = 25, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 530050, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 530233, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 530415, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 530604, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 530800, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 530989, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 531192, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 531395, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 531606, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 531809, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 532005, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 532208, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 532411, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 532607, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 532796, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 533007, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 533210, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 533406, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 533589, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 533792, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 534003, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 534192, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 534368, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 534564, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 534760, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 534949, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 535152, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 535348, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 535559, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 535741, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 535930, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 536133, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 536336, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 536547, .adv_w = 472, .box_w = 25, .box_h = 27, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 536716, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 536899, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 537088, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 537271, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 537460, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 537643, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 537826, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 538022, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 538211, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 538407, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 538590, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 538793, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 538996, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 539199, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 539395, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 539591, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 539787, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 539983, .adv_w = 472, .box_w = 25, .box_h = 26, .ofs_x = 3, .ofs_y = -2},
+    {.bitmap_index = 540146, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 540321, .adv_w = 472, .box_w = 25, .box_h = 27, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 540490, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 540686, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 540882, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 541085, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 541296, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 541499, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 541695, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 541906, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 542117, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 542320, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 542523, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 542719, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 542915, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 543118, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 543321, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 543524, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 543713, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 543916, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 544127, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 544323, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 544526, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 544722, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 544918, .adv_w = 472, .box_w = 10, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 544986, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 545189, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 545378, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 545567, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 545763, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 545959, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 546155, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 546338, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 546534, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 546730, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 546926, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 547115, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 547291, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 547480, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 547662, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 547845, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 548034, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 548216, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 548405, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 548601, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 548784, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 548966, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 549141, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 549317, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 549506, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 549702, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 549884, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 550073, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 550276, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 550452, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 550648, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 550837, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 551026, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 551222, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 551418, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 551614, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 551810, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 551999, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 552188, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 552377, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 552566, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 552762, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 552973, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 553169, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 553372, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 553561, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 553750, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 553939, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 554135, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 554318, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 554507, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 554696, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 554885, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 555067, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 555256, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 555459, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 555655, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 555844, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 556027, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 556216, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 556412, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 556608, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 556783, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 556972, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 557148, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 557331, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 557527, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 557716, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 557912, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 558095, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 558298, .adv_w = 472, .box_w = 25, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 558480, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 558676, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 558865, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 559054, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 559250, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 559446, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 559628, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 559804, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 559993, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 560182, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 560385, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 560581, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 560770, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 560966, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 561149, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 561352, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 561527, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 561723, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 561919, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 562115, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 562318, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 562514, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 562710, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 562892, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 563088, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 563271, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 563474, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 563663, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 563846, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 564042, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 564238, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 564434, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 564617, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 564800, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 564982, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 565178, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 565354, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 565536, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 565725, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 565928, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 566131, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 566327, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 566523, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 566705, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 566901, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 567097, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 567286, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 567489, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 567692, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 567881, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 568063, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 568245, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 568427, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 568616, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 568798, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 568994, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 569183, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 569372, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 569583, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 569779, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 569962, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 570173, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 570362, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 570551, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 570747, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 570923, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 571119, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 571330, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 571506, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 571695, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 571891, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 572087, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 572276, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 572479, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 572675, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 572871, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 573060, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 573249, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 573452, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 573641, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 573837, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 574040, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 574223, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 574412, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 574601, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 574804, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 575000, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 575196, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 575385, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 575574, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 575763, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 575959, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 576135, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 576331, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 576527, .adv_w = 472, .box_w = 25, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 576696, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 576892, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 577081, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 577284, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 577473, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 577669, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 577865, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 578041, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 578223, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 578419, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 578622, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 578804, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 578986, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 579175, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 579364, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 579567, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 579763, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 579946, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 580135, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 580338, .adv_w = 472, .box_w = 26, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 580507, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 580683, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 580879, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 581082, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 581265, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 581461, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 581657, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 581860, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 582049, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 582238, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 582434, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 582630, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 582826, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 583029, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 583225, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 583421, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 583617, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 583820, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 584023, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 584212, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 584395, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 584591, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 584780, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 584962, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 585165, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 585354, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 585550, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 585739, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 585942, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 586138, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 586320, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 586509, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 586712, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 586908, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 587111, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 587300, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 587503, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 587692, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 587895, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 588091, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 588287, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 588483, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 588686, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 588889, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 589085, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 589281, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 589464, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 589660, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 589842, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 590031, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 590227, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 590403, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 590599, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 590810, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 591006, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 591188, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 591377, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 591560, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 591749, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 591945, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 592134, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 592310, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 592506, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 592702, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 592891, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 593087, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 593290, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 593479, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 593690, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 593879, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 594082, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 594278, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 594474, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 594670, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 594866, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 595042, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 595231, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 595427, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 595630, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 595812, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 596008, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 596190, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 596379, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 596575, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 596764, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 596960, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 597143, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 597326, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 597502, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 597691, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 597880, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 598083, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 598279, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 598475, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 598671, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 598867, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 599063, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 599239, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 599442, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 599638, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 599849, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 600045, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 600248, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 600437, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 600633, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 600822, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 601011, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 601207, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 601396, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 601592, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 601788, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 601984, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 602187, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 602376, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 602572, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 602775, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 602958, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 603154, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 603357, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 603546, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 603742, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 603938, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 604141, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 604330, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 604519, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 604722, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 604911, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 605107, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 605296, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 605492, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 605688, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 605884, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 606087, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 606290, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 606473, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 606662, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 606858, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 607054, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 607257, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 607453, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 607636, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 607825, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 608021, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 608217, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 608413, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 608616, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 608812, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 609001, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 609204, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 609393, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 609596, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 609792, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 609988, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 610170, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 610359, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 610555, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 610751, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 610947, .adv_w = 472, .box_w = 28, .box_h = 30, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 611157, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 611360, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 611563, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 611766, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 611969, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 612172, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 612375, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 612564, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 612753, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 612949, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 613138, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 613341, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 613537, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 613733, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 613936, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 614139, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 614335, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 614531, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 614727, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 614916, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 615112, .adv_w = 472, .box_w = 27, .box_h = 11, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 615187, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 615369, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 615572, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 615775, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 615957, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 616153, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 616349, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 616538, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 616727, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 616903, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 617086, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 617275, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 617471, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 617667, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 617863, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 618066, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 618269, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 618465, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 618661, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 618864, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 619060, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 619256, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 619452, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 619641, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 619852, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 620055, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 620251, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 620454, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 620650, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 620853, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 621049, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 621245, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 621441, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 621644, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 621840, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 622036, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 622247, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 622443, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 622639, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 622835, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 623046, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 623242, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 623445, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 623648, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 623831, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 624042, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 624231, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 624427, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 624623, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 624826, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 625022, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 625225, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 625428, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 625624, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 625827, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 626023, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 626226, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 626409, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 626612, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 626815, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 627011, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 627214, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 627410, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 627606, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 627809, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 628012, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 628208, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 628411, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 628593, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 628796, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 628999, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 629202, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 629405, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 629601, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 629797, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 630000, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 630203, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 630406, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 630602, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 630785, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 630981, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 631184, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 631395, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 631584, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 631780, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 631976, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 632158, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 632361, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 632550, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 632746, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 632957, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 633140, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 633316, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 633527, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 633709, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 633905, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 634108, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 634311, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 634522, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 634725, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 634914, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 635125, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 635321, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 635510, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 635721, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 635924, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 636135, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 636338, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 636520, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 636723, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 636926, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 637129, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 637325, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 637521, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 637724, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 637927, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 638103, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 638292, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 638488, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 638684, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 638887, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 639090, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 639293, .adv_w = 472, .box_w = 22, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 639453, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 639642, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 639853, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 640064, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 640267, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 640478, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 640689, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 640865, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 641054, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 641257, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 641446, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 641635, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 641824, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 642020, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 642223, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 642412, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 642601, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 642790, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 642979, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 643168, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 643357, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 643546, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 643749, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 643945, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 644134, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 644317, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 644506, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 644709, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 644912, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 645115, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 645318, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 645514, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 645697, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 645893, .adv_w = 472, .box_w = 15, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 645998, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 646187, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 646398, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 646594, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 646805, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 647016, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 647192, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 647388, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 647599, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 647788, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 647984, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 648187, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 648390, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 648593, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 648776, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 648972, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 649175, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 649364, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 649560, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 649763, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 649959, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 650162, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 650365, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 650568, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 650771, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 650960, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 651156, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 651345, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 651541, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 651744, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 651940, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 652136, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 652332, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 652514, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 652703, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 652906, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 653102, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 653305, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 653488, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 653684, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 653880, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 654091, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 654287, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 654476, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 654665, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 654861, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 655057, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 655260, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 655456, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 655652, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 655834, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 656010, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 656213, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 656402, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 656613, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 656816, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 657005, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 657201, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 657397, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 657600, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 657803, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 657992, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 658195, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 658391, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 658602, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 658805, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 659001, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 659197, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 659400, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 659603, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 659806, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 660017, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 660213, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 660402, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 660598, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 660787, .adv_w = 472, .box_w = 27, .box_h = 25, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 660956, .adv_w = 472, .box_w = 27, .box_h = 24, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 661118, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 661300, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 661482, .adv_w = 472, .box_w = 30, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 661692, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 661868, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 662079, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 662290, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 662472, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 662683, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 662872, .adv_w = 472, .box_w = 28, .box_h = 25, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 663047, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 663236, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 663447, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 663650, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 663846, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 664029, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 664225, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 664414, .adv_w = 472, .box_w = 28, .box_h = 25, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 664589, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 664778, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 664967, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 665156, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 665359, .adv_w = 472, .box_w = 28, .box_h = 24, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 665527, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 665723, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 665912, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 666108, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 666311, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 666507, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 666689, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 666892, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 667081, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 667277, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 667459, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 667662, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 667865, .adv_w = 472, .box_w = 28, .box_h = 25, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 668040, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 668243, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 668419, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 668622, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 668825, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 669014, .adv_w = 472, .box_w = 28, .box_h = 25, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 669189, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 669378, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 669574, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 669763, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 669945, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 670141, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 670344, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 670547, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 670743, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 670939, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 671135, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 671311, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 671487, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 671683, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 671859, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 672048, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 672244, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 672427, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 672616, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 672819, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 673008, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 673211, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 673393, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 673604, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 673807, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 673996, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 674199, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 674375, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 674564, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 674760, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 674949, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 675152, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 675348, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 675537, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 675740, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 675951, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 676162, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 676345, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 676548, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 676751, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 676927, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 677130, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 677326, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 677529, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 677732, .adv_w = 472, .box_w = 30, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 677927, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 678130, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 678341, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 678517, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 678713, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 678889, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 679092, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 679295, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 679491, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 679687, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 679869, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 680058, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 680240, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 680429, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 680625, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 680814, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 681003, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 681186, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 681369, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 681552, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 681734, .adv_w = 472, .box_w = 25, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 681897, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 682086, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 682275, .adv_w = 472, .box_w = 23, .box_h = 25, .ofs_x = 3, .ofs_y = -2},
+    {.bitmap_index = 682419, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 682608, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 682790, .adv_w = 472, .box_w = 23, .box_h = 25, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 682934, .adv_w = 472, .box_w = 23, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 683095, .adv_w = 472, .box_w = 23, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 683245, .adv_w = 472, .box_w = 23, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 683406, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 683582, .adv_w = 472, .box_w = 25, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 683751, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 683933, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 684109, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 684285, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 684460, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 684649, .adv_w = 472, .box_w = 25, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 684831, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 685020, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 685216, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 685412, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 685594, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 685777, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 685966, .adv_w = 472, .box_w = 24, .box_h = 27, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 686128, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 686339, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 686542, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 686731, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 686920, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 2, .ofs_y = -2},
+    {.bitmap_index = 687096, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 687292, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 687488, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 687684, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 687873, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 688062, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 688258, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -2},
+    {.bitmap_index = 688441, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 688630, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 688819, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 689030, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 689233, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 689436, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 689639, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 689828, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 690031, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 690234, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 690437, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 690640, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 690843, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 691054, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 691257, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 691460, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 691656, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 691867, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 692078, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 692281, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 692484, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 692687, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 692883, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 693072, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 693283, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 693486, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 693697, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 693893, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 694096, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 694299, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 694510, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 694721, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 694932, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 695121, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 695317, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 695513, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 695724, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 695935, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 696131, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 696342, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 696553, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 696756, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 696959, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 697155, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 697358, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 697561, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 697764, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 697967, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 698178, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 698389, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 698585, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 698796, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 698999, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 699210, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 699413, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 699624, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 699827, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 700038, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 700241, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 700437, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 700648, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 700851, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 701054, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 701257, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 701468, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 701671, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 701867, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 702070, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 702266, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 702477, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 702680, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 702883, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 703086, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 703289, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 703492, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 703695, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 703891, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 704094, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 704305, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 704508, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 704711, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 704914, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 705117, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 705320, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 705523, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 705726, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 705929, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 706140, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 706351, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 706554, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 706750, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 706961, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 707164, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 707367, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 707578, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 707774, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 707985, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 708181, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 708377, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 708588, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 708791, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 709002, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 709205, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 709408, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 709611, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 709807, .adv_w = 472, .box_w = 22, .box_h = 29, .ofs_x = 4, .ofs_y = -4},
+    {.bitmap_index = 709967, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 710150, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 710346, .adv_w = 472, .box_w = 24, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 710514, .adv_w = 472, .box_w = 24, .box_h = 29, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 710688, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 710871, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 711060, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 711263, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 711452, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 711628, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 711817, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 712013, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 712216, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 712405, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 712608, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 712811, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 713014, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 713217, .adv_w = 472, .box_w = 28, .box_h = 23, .ofs_x = 1, .ofs_y = -1},
+    {.bitmap_index = 713378, .adv_w = 472, .box_w = 28, .box_h = 25, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 713553, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 713742, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 713931, .adv_w = 472, .box_w = 28, .box_h = 25, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 714106, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 714295, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 714477, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 714659, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 714848, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 715037, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 715226, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 715415, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 715611, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 715794, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 715983, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 716172, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 716355, .adv_w = 472, .box_w = 27, .box_h = 25, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 716524, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 716706, .adv_w = 472, .box_w = 20, .box_h = 27, .ofs_x = 5, .ofs_y = -4},
+    {.bitmap_index = 716841, .adv_w = 472, .box_w = 26, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 717010, .adv_w = 472, .box_w = 26, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 717179, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 717375, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 717564, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 717747, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 717922, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 718111, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 718307, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 718518, .adv_w = 472, .box_w = 25, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 718681, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 718870, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 719052, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 719228, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 719424, .adv_w = 472, .box_w = 26, .box_h = 25, .ofs_x = 3, .ofs_y = -2},
+    {.bitmap_index = 719587, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 719762, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 719958, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 720161, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 720344, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 720547, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 720723, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 2, .ofs_y = -2},
+    {.bitmap_index = 720899, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 721095, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 2, .ofs_y = -2},
+    {.bitmap_index = 721271, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 721454, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 721643, .adv_w = 472, .box_w = 27, .box_h = 25, .ofs_x = 2, .ofs_y = -2},
+    {.bitmap_index = 721812, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 722023, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 722212, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 722401, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 722577, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 722773, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 722962, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 723151, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 723326, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 723515, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 3, .ofs_y = -2},
+    {.bitmap_index = 723691, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 723867, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 724056, .adv_w = 472, .box_w = 27, .box_h = 25, .ofs_x = 2, .ofs_y = -2},
+    {.bitmap_index = 724225, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 724400, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 724603, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 724785, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -2},
+    {.bitmap_index = 724968, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 725144, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 725326, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 725502, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 725678, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 725867, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 726063, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 726266, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 726462, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 726637, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 726826, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -2},
+    {.bitmap_index = 727009, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 727205, .adv_w = 472, .box_w = 25, .box_h = 29, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 727387, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 727570, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 727752, .adv_w = 472, .box_w = 26, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 727921, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -2},
+    {.bitmap_index = 728104, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 728300, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 728489, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 728671, .adv_w = 472, .box_w = 25, .box_h = 27, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 728840, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 2, .ofs_y = -2},
+    {.bitmap_index = 729016, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 729198, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 729381, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -2},
+    {.bitmap_index = 729564, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 729760, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 729956, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 730159, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 730342, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 730538, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 730727, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 730903, .adv_w = 472, .box_w = 30, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 731113, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 731309, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 731512, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 731687, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 731862, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 732065, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 732268, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 732464, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 732667, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 732870, .adv_w = 472, .box_w = 27, .box_h = 25, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 733039, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 733228, .adv_w = 472, .box_w = 28, .box_h = 25, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 733403, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 733606, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 733802, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 734005, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 734188, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 734364, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 734575, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 734764, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 734967, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 735170, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 735352, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 735555, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 735751, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 735962, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 736165, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 736361, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 736557, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 736753, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 736964, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 737167, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 737356, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 737552, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 737741, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 737944, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 738147, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 738343, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 738539, .adv_w = 472, .box_w = 30, .box_h = 26, .ofs_x = -1, .ofs_y = -3},
+    {.bitmap_index = 738734, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 738937, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 739126, .adv_w = 472, .box_w = 29, .box_h = 25, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 739308, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 739519, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 739708, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 739904, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 740093, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 740296, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 740479, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 740675, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 740864, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 741067, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 741256, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 741432, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 741628, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 741817, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 742020, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 742216, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 742412, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 742615, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 742826, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 743022, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 743218, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 743414, .adv_w = 472, .box_w = 30, .box_h = 26, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 743609, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 743792, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 744003, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 744186, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 744375, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 744571, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 744774, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 744977, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 745180, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 745383, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 745586, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 745789, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 745992, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 746195, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 746398, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 746609, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 746791, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 746980, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 747176, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 747372, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 747575, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 747771, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 747982, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 748178, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 748374, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 748570, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 748773, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 748976, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 749172, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 749361, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 749550, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 749753, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 749956, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 750152, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 750363, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 750574, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 750763, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 750966, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 751155, .adv_w = 472, .box_w = 30, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 751373, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 751584, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 751787, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 751990, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 752179, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 752390, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 752586, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 752789, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 752978, .adv_w = 472, .box_w = 17, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 753097, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 753293, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 753496, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 753685, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 753874, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 754077, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 754288, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 754491, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 754702, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 754905, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 755116, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 755327, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 755530, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 755726, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 755929, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 756118, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 756307, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 756496, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 756699, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 756910, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 757113, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 757289, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 757492, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 757695, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 757891, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 758087, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 758298, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 758494, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 758705, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 758908, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 759111, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 759314, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 759510, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 759713, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 759916, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 760127, .adv_w = 472, .box_w = 24, .box_h = 27, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 760289, .adv_w = 472, .box_w = 23, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 760439, .adv_w = 472, .box_w = 27, .box_h = 30, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 760642, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 760845, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 761034, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 761230, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 761426, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 761629, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 761818, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 762007, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 762210, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 762399, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 762595, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 762806, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 762995, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 763191, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 763387, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 763590, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 763779, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 763975, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 764171, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 764382, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 764593, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 764789, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 764985, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 765188, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 765384, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 765587, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 765790, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 765986, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 766189, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 766378, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 766554, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 766736, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 766939, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 767135, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 767331, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 767534, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 767745, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 767948, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 768131, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 768334, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 768537, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 768740, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 768951, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 769134, .adv_w = 472, .box_w = 30, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 769344, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 769547, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 769743, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 769946, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 770149, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 770352, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 770563, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 770759, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 770955, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 771144, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 771340, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 771529, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 771712, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 771901, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 772090, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 772286, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 772482, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 772671, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 772867, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 773063, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 773252, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 773435, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 773611, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 773807, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 773990, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 774179, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 774382, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 774571, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 774767, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 774956, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 775152, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 775335, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 775524, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 775713, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 775909, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 776105, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 776308, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 776497, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 776680, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 776856, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 777052, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 777241, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 777430, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 777626, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 777822, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 778005, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 778201, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 778377, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 778573, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 778776, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 778959, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 779148, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 779337, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 779526, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 779729, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 779918, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 780129, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 780332, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 780535, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 780731, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 780927, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 781116, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 781312, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 781501, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 781697, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 781886, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 782069, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 782265, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 782461, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 782664, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 782867, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 783050, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 783239, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 783428, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 783617, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 783806, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 783995, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 784184, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 784373, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 784562, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 784765, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 784954, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 785143, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 785332, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 785528, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 785717, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 785906, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 2, .ofs_y = -2},
+    {.bitmap_index = 786082, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 786285, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 786481, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 786684, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 786880, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 787069, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 787258, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 787461, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 787657, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 787846, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 788035, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 788218, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 788429, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 788625, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 788828, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 789031, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 789227, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 789423, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 789619, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 789815, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 790018, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 790207, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 790403, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 790599, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 790802, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 791005, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 791188, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 791377, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 791573, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 791769, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 791972, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 792161, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 792364, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 792567, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 792763, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 792966, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 793155, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 793351, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 793547, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 793750, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 793953, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 794136, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 794332, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 794521, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 794717, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 794913, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 795109, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 795305, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 795494, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 795697, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 795900, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 796096, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 796285, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 796481, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 796670, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 796859, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 797062, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 797251, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 797454, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 797657, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 797846, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 798049, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 798238, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 798441, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 798637, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 798826, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 799022, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 799211, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 799414, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 799610, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 799806, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 800002, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 800205, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 800408, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 800597, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 800800, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 800983, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 801179, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 801390, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 801579, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 801775, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 801971, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 802160, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 802363, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 802559, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 802770, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 802973, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 803162, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 803358, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 803547, .adv_w = 472, .box_w = 25, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 803716, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 803919, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 804130, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 804326, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 804515, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 804718, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 804921, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 805117, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 805320, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 805516, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 805727, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 805930, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 806141, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 806337, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 806526, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 806729, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 806925, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 807136, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 807339, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = -1, .ofs_y = -4},
+    {.bitmap_index = 807550, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 807753, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 807956, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 808167, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 808370, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 808573, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 808762, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 808951, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 809140, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 809351, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 809547, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 809743, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 809926, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 810115, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 810297, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 810486, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 810682, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 810878, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 811074, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 811277, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 811473, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 811662, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 811865, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 812061, .adv_w = 472, .box_w = 16, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 812169, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 812344, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 812540, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 812729, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 812925, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 813128, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 813311, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 813493, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 813689, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 813885, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 814088, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 814277, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 814459, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 814648, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 814844, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 815040, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 815229, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 815440, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 815622, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 815804, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 816007, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 816210, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 816413, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 816602, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 816813, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 817016, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 817205, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 817394, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 817577, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 817766, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 817955, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 818158, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 818369, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 818558, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 818740, .adv_w = 472, .box_w = 26, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 818909, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 819112, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 819308, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 819490, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 819686, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 819882, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 820064, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 820253, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 820449, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 820638, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 820827, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 821023, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 821234, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 821423, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 821619, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 821815, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 822011, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 822214, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 822417, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 822599, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 822795, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 822998, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 823194, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 823390, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 823601, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 823804, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 823987, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 824176, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 824372, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 824575, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 824771, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 824960, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 825142, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 825338, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 825534, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 825737, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 825940, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 826136, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 826325, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 826521, .adv_w = 472, .box_w = 26, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 826690, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 826886, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 827075, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 827271, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 827447, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 827643, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 827839, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 828028, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 828231, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 828427, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 828630, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 828833, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 829029, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 829225, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 829428, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 829617, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 829813, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 829995, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 830198, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 830401, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 830590, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 830779, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 830982, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 831171, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 831367, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 831563, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 831759, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 831955, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 832158, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 832354, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 832557, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 832753, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 832949, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 833160, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 833349, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 833560, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 833756, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 833967, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 834163, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 834366, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 834577, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 834773, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 834962, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 835158, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 835354, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 835543, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 835746, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 835942, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 836131, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 836334, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 836530, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 836733, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 836922, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 837125, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 837321, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 837524, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 837727, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 837930, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 838112, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 838301, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 838497, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 838693, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 838896, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 839092, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 839295, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 839484, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 839667, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 839870, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 840053, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 840249, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 840445, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 840641, .adv_w = 472, .box_w = 23, .box_h = 27, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 840797, .adv_w = 472, .box_w = 23, .box_h = 25, .ofs_x = 3, .ofs_y = -2},
+    {.bitmap_index = 840941, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 841117, .adv_w = 472, .box_w = 25, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 841286, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 841462, .adv_w = 472, .box_w = 24, .box_h = 27, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 841624, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 841800, .adv_w = 472, .box_w = 28, .box_h = 25, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 841975, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 842158, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 842340, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 842516, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 842698, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 842880, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 843056, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 843245, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 843428, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 843611, .adv_w = 472, .box_w = 24, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 843767, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 843950, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 844146, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 844342, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 844545, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 844741, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 844944, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 845140, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 845336, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 845539, .adv_w = 472, .box_w = 28, .box_h = 30, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 845749, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 845952, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 846155, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 846351, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 846554, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 846750, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 846953, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 847149, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 847338, .adv_w = 472, .box_w = 26, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 847507, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 847696, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 847892, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 848095, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 848277, .adv_w = 472, .box_w = 26, .box_h = 25, .ofs_x = 2, .ofs_y = -2},
+    {.bitmap_index = 848440, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 848629, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 848818, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 849007, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 849210, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 849386, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 849562, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 849737, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 849933, .adv_w = 472, .box_w = 27, .box_h = 30, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 850136, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 850325, .adv_w = 472, .box_w = 25, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 850488, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 850691, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 850887, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 851070, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 851253, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 851449, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 851645, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 851841, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 852037, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 852233, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 852429, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 852625, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 852808, .adv_w = 472, .box_w = 26, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 852977, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 853160, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 853349, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 853545, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 853748, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 853959, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 854170, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 854359, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 854570, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 854766, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 854955, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 855166, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 855377, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 855573, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 855762, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 855973, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 856176, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 856379, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 856582, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 856793, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 856969, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 857151, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 857334, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 857530, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 857726, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 857922, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 858105, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 858294, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 858483, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 858694, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 858890, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 859072, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 859268, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 859457, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 859646, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 859835, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 860024, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 860220, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 860402, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 860613, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 860816, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 861012, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 861208, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 861404, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 861607, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 861803, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 861999, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 862188, .adv_w = 472, .box_w = 23, .box_h = 29, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 862355, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 862531, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 862713, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 862909, .adv_w = 472, .box_w = 22, .box_h = 28, .ofs_x = 4, .ofs_y = -3},
+    {.bitmap_index = 863063, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 863252, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 863448, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 863630, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 863813, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 864002, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 864184, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 864367, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 864556, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 864759, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 864955, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 865137, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 865326, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 865529, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 865725, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 865914, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 866125, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 866328, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 866524, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 866720, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 866923, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 867126, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 867322, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 867518, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 867721, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 867897, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 868093, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 868296, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 868507, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 868703, .adv_w = 472, .box_w = 23, .box_h = 28, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 868864, .adv_w = 472, .box_w = 23, .box_h = 29, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 869031, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 869213, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 869409, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 869605, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 869808, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 870011, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 870200, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 870403, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 870592, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 870775, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 870971, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 871167, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 871370, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 871545, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 871756, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 871938, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 872134, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 872337, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 872540, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 872743, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 872932, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 873128, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 873304, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 873515, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 873718, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 873914, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 874125, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 874328, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 874511, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 874722, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 874918, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 875129, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 875332, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 875528, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 875731, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 875934, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 876145, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 876348, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 876544, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 876755, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 876966, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 877177, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 877380, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 877591, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 877794, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 877997, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 878193, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 878404, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 878587, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 878783, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 878972, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 879175, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 879371, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 879567, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 879750, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 879946, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 880157, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 880360, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 880556, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 880767, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 880970, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 881173, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 881376, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 881587, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 881783, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 881979, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 882182, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 882393, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 882604, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 882807, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 882996, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 883199, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 883395, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 883591, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 883780, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 883962, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 884173, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 884376, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 884587, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 884790, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 884993, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 885182, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 885371, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 885582, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 885771, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 885974, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 886177, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 886359, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 886570, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 886766, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 886969, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 887158, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 887361, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 887564, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 887767, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 887970, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 888173, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 888376, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 888572, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 888783, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 888986, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 889197, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 889393, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 889596, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 889799, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 890002, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 890205, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 890408, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 890619, .adv_w = 472, .box_w = 24, .box_h = 25, .ofs_x = 4, .ofs_y = -2},
+    {.bitmap_index = 890769, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 890972, .adv_w = 472, .box_w = 21, .box_h = 29, .ofs_x = 4, .ofs_y = -4},
+    {.bitmap_index = 891125, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 891321, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 891517, .adv_w = 472, .box_w = 28, .box_h = 24, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 891685, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 891888, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 892077, .adv_w = 472, .box_w = 23, .box_h = 27, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 892233, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 892429, .adv_w = 472, .box_w = 25, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 892598, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 892794, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 892997, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 893179, .adv_w = 472, .box_w = 25, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 893348, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 893551, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 893727, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 893923, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 894119, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 894315, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 894497, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 894693, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 894882, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 895085, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 895288, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 895491, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 895680, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 895883, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 896086, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 896282, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 896485, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 896696, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 896899, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 897088, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 897291, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 897502, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 897691, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 897894, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 898090, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 898279, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 898482, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 898671, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 898867, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 899063, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 899266, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 899455, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 899658, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 899847, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 900050, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 900253, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 900456, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 900659, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 900862, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 901065, .adv_w = 472, .box_w = 26, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 901234, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 901416, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 901605, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 901794, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 901983, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 902179, .adv_w = 472, .box_w = 28, .box_h = 12, .ofs_x = 1, .ofs_y = 12},
+    {.bitmap_index = 902263, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 902452, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 902648, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 902844, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 903040, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 903236, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 903432, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 903628, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 903824, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 904013, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 904202, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 904398, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 904581, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 904770, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 904952, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 905135, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 905317, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 905520, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 905709, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 905905, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 906116, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 906305, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 906501, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 906704, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 906900, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 907103, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 907314, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 907496, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 907679, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 907875, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 908064, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 908247, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 908443, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 908646, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 908842, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 909025, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 909221, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 909404, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 909593, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 909789, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 909978, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 910161, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 910357, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 910546, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 910742, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 910938, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 911127, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 911323, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 911526, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 911722, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 911905, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 912108, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 912297, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 912493, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 912704, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 912900, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 913089, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 913278, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 913474, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 913677, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 913866, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 914055, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 914251, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 914447, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 914650, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 914826, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 915009, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 915198, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 915387, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 915576, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 915779, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 915975, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 916164, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 916360, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 916549, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 916745, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 916934, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 917130, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 917319, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 917515, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 917718, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 917907, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 918110, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 918293, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 918489, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 918692, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 918868, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 919057, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 919246, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 919429, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 919618, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 919807, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 919996, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 920199, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 920381, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 920577, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 920780, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 920976, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 921172, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 921368, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 921564, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 921760, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 921956, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 922145, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 922334, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 922530, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 922719, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 922915, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 923104, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 923293, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 923496, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 923678, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 923867, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 924056, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 924245, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 924441, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 924644, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 924833, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 925029, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 925225, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 925421, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 925610, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 925806, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 926017, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 926220, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 926431, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 926620, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 926816, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 927005, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 927201, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 927384, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 927573, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 927769, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 927980, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 928176, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 928379, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 928575, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 928758, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 928947, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 929136, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 929339, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 929528, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 929731, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 929934, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 930123, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 930319, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 930508, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 930691, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 930894, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 931083, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 931279, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 931475, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 931658, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 931861, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 932050, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 932253, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 932456, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 932645, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 932841, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 933044, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 933247, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 933443, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 933639, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 933835, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 934018, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 934214, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 934410, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 934599, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 934775, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 934971, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 935160, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 935363, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 935559, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 935755, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 935951, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 936147, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 936336, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 936532, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 936735, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 936931, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 937127, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 937338, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 937534, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 937737, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 937926, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 938122, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 938311, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 938514, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 938717, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 938920, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 939109, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 939305, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 939488, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 939691, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 939887, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 940090, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 940293, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 940489, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 940685, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 940874, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 941070, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 941273, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 941462, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 941658, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 941847, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 942036, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 942239, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 942422, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 942618, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 942814, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 942997, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 943186, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 943389, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 943585, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 943768, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 943957, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 944146, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 944342, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 944545, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 944741, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 944937, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 945126, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 945309, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 945505, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 945701, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 945897, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 946079, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 946261, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 946450, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 946646, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 946842, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 947038, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 947249, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 947460, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 947656, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 947852, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 948048, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 948237, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 948440, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 948636, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 948832, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 949028, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 949224, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 949427, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 949630, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 949833, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 950036, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 950232, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 950421, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 950617, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 950813, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 951024, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 951220, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 951423, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 951619, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 951815, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 952011, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 952200, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 952403, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 952592, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 952795, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 952998, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 953209, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 953405, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 953594, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 953783, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 953972, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 954161, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 954364, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 954553, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 954764, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 954960, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 955156, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 955359, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 955548, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 955759, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 955962, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 956165, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 956368, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 956571, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 956774, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 956977, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 957173, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 957369, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 957572, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 957761, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 957972, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 958168, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 958371, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 958574, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 958763, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 958974, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 959170, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 959373, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 959562, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 959758, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 959941, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 960130, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 960333, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 960536, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 960739, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 960928, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 961124, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 961320, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 961509, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 961698, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 961894, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 962097, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 962308, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 962497, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 962693, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 962889, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 963092, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 963288, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 963491, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 963694, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 963890, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 964093, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 964296, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 2, .ofs_y = -2},
+    {.bitmap_index = 964472, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 964668, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 964871, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 965074, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 965277, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 965466, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 965662, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 965858, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 966061, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 966257, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 966453, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 966649, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 966852, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 967048, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 967244, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 967447, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 967643, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 967839, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 968028, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 968211, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 968407, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 968596, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 968799, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 968995, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 969198, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 969394, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 969597, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 969786, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 969975, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 970164, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 970360, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 970543, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 970725, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 970921, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 971110, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 971299, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 971482, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 971678, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 971861, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 972064, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 972260, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 972443, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 972646, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 972828, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 973024, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 973220, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 973396, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 973592, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 973788, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 973991, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 974194, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 974383, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 974594, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 974790, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 974986, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 975182, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 975393, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 975582, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 975764, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 975960, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 976156, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 976352, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 976548, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 976744, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 976933, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 977122, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 977311, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 977500, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 977711, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 977900, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 978089, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 978285, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 978481, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 978670, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 978866, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 979055, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 979244, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 979440, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 979636, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 979832, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 980035, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 980238, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 980421, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 980610, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 980813, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 981009, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 981205, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 981401, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 981597, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 981808, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 982004, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 982186, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 982389, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 982565, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 982768, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 982957, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 983153, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 983356, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 983559, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 983741, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 983930, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 984133, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 984336, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 984547, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 984743, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 984925, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 985121, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 985317, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 985520, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 985723, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 985912, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 986108, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 986304, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 986486, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 986682, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 986871, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 987053, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 987256, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 987452, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 987648, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 987844, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 988047, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 988236, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 988432, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 988628, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 988810, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 988999, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 989188, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 989377, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 989573, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 989776, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 989972, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 990175, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 990386, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 990575, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 990764, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 990953, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 991149, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 991360, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 991571, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 991774, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 991963, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 992166, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 992369, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 992572, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 992775, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 992964, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 993167, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 993370, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 993566, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 993762, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 993958, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 994154, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 994350, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 994553, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 994742, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 994931, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 995134, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 995337, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 995540, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 995743, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 995932, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 996135, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 996338, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 996549, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 996745, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 996948, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 997151, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 997354, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 997550, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 997753, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 997956, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 998159, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 998355, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 998558, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 998769, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 998965, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 999168, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 999379, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 999575, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 999786, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 999975, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1000171, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1000374, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 1000563, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 1000752, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1000948, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1001144, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1001347, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1001558, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1001761, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1001957, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1002160, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1002363, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1002566, .adv_w = 472, .box_w = 17, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1002681, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1002884, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1003095, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1003291, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1003474, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1003685, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1003896, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1004107, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1004296, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1004507, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1004703, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1004914, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1005125, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1005336, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1005547, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1005758, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1005961, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1006172, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1006375, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1006578, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1006774, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1006963, .adv_w = 472, .box_w = 30, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1007173, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1007369, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1007572, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1007783, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1007994, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1008190, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1008401, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1008612, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1008808, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1009011, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1009222, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1009405, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1009616, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1009819, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1010030, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1010233, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1010436, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1010647, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1010850, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1011061, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1011264, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1011467, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1011670, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1011853, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1012056, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1012259, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1012470, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1012673, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1012876, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1013087, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1013290, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1013493, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1013696, .adv_w = 472, .box_w = 30, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1013914, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1014110, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1014293, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1014504, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1014700, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1014903, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1015099, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1015310, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1015513, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1015709, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1015905, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1016108, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1016311, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1016514, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1016703, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1016906, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1017117, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1017320, .adv_w = 472, .box_w = 30, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1017530, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1017733, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1017936, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1018112, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1018288, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1018470, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1018652, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1018835, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1019024, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1019213, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1019402, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1019605, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 1019788, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1019984, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1020180, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 1020369, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1020558, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1020761, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1020964, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1021160, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1021356, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1021559, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1021734, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1021945, .adv_w = 472, .box_w = 30, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1022155, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1022344, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1022555, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1022766, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1022977, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1023180, .adv_w = 472, .box_w = 30, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1023390, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1023593, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1023796, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1023992, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1024174, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1024377, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1024553, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1024756, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1024959, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1025162, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1025358, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1025561, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1025764, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1025967, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1026170, .adv_w = 472, .box_w = 13, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 1026258, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1026447, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1026643, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1026839, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1027035, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1027224, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1027413, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 1027595, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1027791, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 1027980, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 1028156, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1028345, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1028520, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1028716, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1028905, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1029094, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1029290, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1029479, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1029662, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1029845, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1030034, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1030210, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1030406, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1030595, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1030784, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1030987, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1031183, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1031379, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1031582, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1031785, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 1031974, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1032157, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1032346, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1032535, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 1032717, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1032906, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1033095, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1033291, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1033487, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1033683, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1033865, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1034047, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1034229, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1034405, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1034594, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1034783, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1034972, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1035175, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 1035364, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1035553, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1035742, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1035938, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1036134, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1036330, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1036533, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1036736, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1036925, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1037114, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 1037290, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 1037479, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1037668, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1037850, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1038046, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1038242, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1038445, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1038641, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1038830, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1039013, .adv_w = 472, .box_w = 25, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1039182, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1039378, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1039567, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1039756, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1039945, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1040134, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1040330, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1040526, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1040729, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1040918, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1041114, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1041290, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1041493, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 1041675, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1041871, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1042060, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1042249, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1042452, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1042648, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1042831, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1043020, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1043216, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1043412, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1043608, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1043797, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1043979, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1044161, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1044364, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1044560, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1044756, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1044952, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 1045141, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1045330, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 1045513, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1045709, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1045905, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1046101, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1046297, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1046500, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1046676, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1046858, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1047047, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1047236, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1047432, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1047635, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1047831, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1048034, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1048237, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1048426, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1048615, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1048797, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1049000, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1049196, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1049392, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1049581, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1049764, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1049967, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1050163, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1050366, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 1050555, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 1050737, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1050933, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 1051122, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1051311, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1051507, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1051696, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1051885, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1052074, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1052256, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1052459, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1052642, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1052845, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1053034, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1053237, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1053440, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1053636, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1053832, .adv_w = 472, .box_w = 27, .box_h = 25, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 1054001, .adv_w = 472, .box_w = 28, .box_h = 25, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 1054176, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1054387, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1054583, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1054765, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1054954, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1055157, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1055368, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1055571, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1055767, .adv_w = 472, .box_w = 25, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 1055936, .adv_w = 472, .box_w = 23, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 1056097, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1056286, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1056482, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1056665, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1056868, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1057071, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1057260, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1057471, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1057667, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1057863, .adv_w = 472, .box_w = 25, .box_h = 27, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 1058032, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1058221, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1058417, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1058600, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1058796, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1058985, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1059181, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1059384, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1059587, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1059783, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1059966, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1060155, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1060366, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1060569, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1060758, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1060947, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1061143, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1061326, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1061515, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1061698, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1061894, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1062083, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1062279, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1062468, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1062657, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1062853, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 1063035, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1063231, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1063420, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1063623, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1063834, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1064030, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1064206, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1064409, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1064605, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1064808, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1065011, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1065207, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1065410, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1065613, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1065802, .adv_w = 472, .box_w = 30, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1066012, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1066201, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1066404, .adv_w = 472, .box_w = 30, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1066607, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1066796, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1066999, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 1067188, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1067391, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1067587, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1067770, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1067981, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1068192, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1068403, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1068614, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1068817, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1069020, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1069223, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1069434, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 1069623, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1069812, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1070001, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1070190, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1070401, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1070597, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1070800, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1071003, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1071199, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1071410, .adv_w = 472, .box_w = 30, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1071620, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1071831, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1072034, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1072245, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1072456, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1072645, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1072856, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1073052, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1073248, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1073451, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1073647, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1073843, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1074039, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1074235, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1074431, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1074634, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1074837, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1075040, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1075229, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1075418, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1075607, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1075803, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1076006, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1076195, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 1076391, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1076587, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1076790, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1076986, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1077189, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1077392, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1077581, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1077777, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1077966, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1078162, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1078351, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1078554, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1078750, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1078961, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1079143, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1079339, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1079535, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1079738, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1079949, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1080152, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1080355, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1080551, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 1080747, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 1080943, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1081139, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 1081328, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1081524, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1081727, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1081923, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1082112, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1082323, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1082512, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1082723, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1082926, .adv_w = 472, .box_w = 27, .box_h = 25, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 1083095, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1083306, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1083509, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1083712, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1083901, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1084090, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1084286, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1084462, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1084658, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1084854, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1085057, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1085253, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1085464, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1085653, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1085864, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 1086053, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1086256, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1086459, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1086648, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1086844, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1087040, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1087229, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1087418, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1087621, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1087810, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 1087999, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1088202, .adv_w = 472, .box_w = 26, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1088371, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1088567, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1088770, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1088981, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1089177, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1089380, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 1089562, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1089751, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1089947, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1090129, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1090332, .adv_w = 472, .box_w = 30, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1090542, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1090738, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1090941, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1091130, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1091326, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1091502, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1091705, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1091901, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1092104, .adv_w = 472, .box_w = 30, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1092314, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1092517, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1092720, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1092931, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1093127, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1093323, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1093526, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1093729, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1093925, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 1094107, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1094303, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1094499, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1094695, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1094891, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1095094, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1095305, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1095508, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1095711, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1095914, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1096103, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1096306, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1096517, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1096706, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1096917, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1097120, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1097316, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1097527, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1097723, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1097912, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1098108, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1098311, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1098514, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1098710, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1098913, .adv_w = 472, .box_w = 30, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1099123, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1099334, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1099537, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1099740, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1099943, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1100139, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1100342, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1100531, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1100727, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1100916, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1101099, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1101310, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1101513, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1101724, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1101913, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1102102, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1102305, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1102501, .adv_w = 472, .box_w = 30, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1102719, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1102908, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1103119, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1103322, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1103533, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1103744, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1103933, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1104122, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1104311, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1104514, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1104717, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1104906, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1105102, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1105291, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1105480, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1105669, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1105858, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1106061, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1106250, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1106453, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1106642, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1106838, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1107041, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1107230, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1107426, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1107622, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1107818, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1108000, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1108189, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1108378, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1108574, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1108777, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1108966, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1109162, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1109351, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1109540, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1109729, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1109925, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1110107, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1110303, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1110492, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1110688, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1110884, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1111080, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1111269, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1111458, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1111654, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1111850, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1112046, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1112249, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1112445, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1112648, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1112851, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1113054, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1113257, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1113453, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1113656, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1113852, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1114048, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1114251, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1114447, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1114643, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1114839, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1115028, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1115231, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1115427, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1115623, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1115819, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1116015, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1116218, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1116414, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1116610, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1116806, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1117002, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1117191, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1117387, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1117583, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1117786, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1117989, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1118192, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1118395, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1118591, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1118794, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1118990, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1119186, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1119389, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1119585, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1119788, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1119984, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1120166, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1120369, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1120565, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1120768, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1120971, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1121167, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1121370, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1121566, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1121762, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1121965, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1122168, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1122364, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1122567, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1122770, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1122959, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1123148, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1123351, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1123540, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1123743, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1123946, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1124149, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1124352, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1124555, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1124758, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1124961, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1125164, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1125360, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1125556, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1125752, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1125955, .adv_w = 472, .box_w = 24, .box_h = 26, .ofs_x = 4, .ofs_y = -3},
+    {.bitmap_index = 1126111, .adv_w = 472, .box_w = 26, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1126280, .adv_w = 472, .box_w = 25, .box_h = 27, .ofs_x = 3, .ofs_y = -2},
+    {.bitmap_index = 1126449, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1126625, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1126814, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1126990, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1127179, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1127375, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1127558, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1127740, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1127929, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1128111, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1128300, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 1128475, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1128658, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1128847, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1129036, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1129218, .adv_w = 472, .box_w = 26, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 1129387, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1129569, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1129765, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 1129941, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1130137, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1130320, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1130516, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1130705, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1130901, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1131090, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1131272, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1131468, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1131657, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 2, .ofs_y = -2},
+    {.bitmap_index = 1131833, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1132022, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1132218, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1132407, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1132583, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1132779, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1132962, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1133145, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1133341, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1133523, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1133712, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1133888, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1134070, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1134253, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1134449, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1134632, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1134828, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1135024, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1135213, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1135402, .adv_w = 472, .box_w = 26, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 1135571, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1135754, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1135930, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1136106, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1136295, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1136471, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1136667, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1136856, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1137045, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1137234, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1137417, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1137606, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1137782, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1137964, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1138153, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1138335, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1138511, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1138707, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1138896, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1139078, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1139267, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1139450, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1139639, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1139828, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1140017, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1140200, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1140396, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1140585, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1140774, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1140963, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1141152, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1141348, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1141537, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1141713, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1141902, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1142098, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1142287, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1142463, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1142659, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1142862, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1143058, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1143254, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1143457, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1143646, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1143828, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1144004, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1144200, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1144396, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1144592, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1144788, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1144991, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1145173, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1145355, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1145551, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1145733, .adv_w = 472, .box_w = 27, .box_h = 25, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 1145902, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1146091, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 1146280, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 1146462, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1146665, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1146854, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1147057, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1147260, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 1147449, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 1147638, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1147849, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1148045, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1148234, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1148430, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1148633, .adv_w = 472, .box_w = 28, .box_h = 25, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 1148808, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 1148990, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1149166, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 1149348, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 1149537, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 1149726, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 1149922, .adv_w = 472, .box_w = 29, .box_h = 25, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 1150104, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 1150300, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 1150496, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 1150692, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 1150888, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 1151084, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 1151280, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1151483, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 1151679, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 1151875, .adv_w = 472, .box_w = 14, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1151973, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1152169, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1152365, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1152568, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1152771, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1152953, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1153156, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1153352, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1153555, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1153758, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1153954, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1154150, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1154353, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1154542, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 1154725, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1154928, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1155139, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1155342, .adv_w = 472, .box_w = 30, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1155552, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1155763, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1155959, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1156162, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1156365, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1156554, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1156750, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1156961, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1157157, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1157368, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1157571, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1157767, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1157978, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1158167, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1158356, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1158545, .adv_w = 472, .box_w = 30, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1158763, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1158966, .adv_w = 472, .box_w = 30, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1159184, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1159387, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1159583, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1159779, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1159982, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 1160171, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1160374, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1160577, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1160773, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1160984, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1161173, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1161369, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1161572, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1161783, .adv_w = 472, .box_w = 30, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1161993, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1162189, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1162385, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1162588, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1162777, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 1162960, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1163149, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1163352, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1163548, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1163759, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1163962, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1164173, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1164369, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1164565, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1164776, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1164965, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1165168, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1165371, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1165582, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1165785, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1165988, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1166191, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1166387, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1166590, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1166793, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1167004, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1167200, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1167396, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1167572, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1167768, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 1167944, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 1168133, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1168322, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1168525, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = -1, .ofs_y = -3},
+    {.bitmap_index = 1168721, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1168924, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1169135, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1169331, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1169542, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1169745, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1169948, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1170151, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1170354, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1170557, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1170753, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1170942, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1171145, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1171341, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1171544, .adv_w = 472, .box_w = 30, .box_h = 28, .ofs_x = -1, .ofs_y = -3},
+    {.bitmap_index = 1171754, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1171965, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1172168, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1172357, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1172568, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1172779, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1172975, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1173178, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1173389, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1173585, .adv_w = 472, .box_w = 30, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1173795, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1173998, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1174201, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1174404, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1174607, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1174818, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1175021, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1175224, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1175427, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1175616, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1175819, .adv_w = 472, .box_w = 30, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1176029, .adv_w = 472, .box_w = 30, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1176247, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1176443, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1176646, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1176849, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1177045, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1177256, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1177445, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1177641, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1177844, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1178033, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1178244, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1178455, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1178644, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1178840, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1179043, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1179239, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1179442, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1179645, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1179841, .adv_w = 472, .box_w = 30, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1180059, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1180255, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1180458, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1180661, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1180850, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1181033, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1181222, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1181418, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1181621, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1181810, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1182021, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1182224, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1182427, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1182630, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1182833, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1183036, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1183232, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1183428, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1183624, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1183820, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1184023, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1184226, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1184429, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1184625, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1184828, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1185024, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1185220, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1185416, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1185612, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1185815, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1186018, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1186229, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1186440, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1186651, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1186854, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1187057, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1187253, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1187456, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1187667, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1187863, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1188074, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1188270, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1188473, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1188684, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1188880, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1189083, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1189286, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 1189482, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1189685, .adv_w = 472, .box_w = 30, .box_h = 28, .ofs_x = -1, .ofs_y = -3},
+    {.bitmap_index = 1189895, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1190091, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1190287, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1190498, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1190701, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1190904, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1191107, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1191310, .adv_w = 472, .box_w = 30, .box_h = 28, .ofs_x = -1, .ofs_y = -3},
+    {.bitmap_index = 1191520, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1191723, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1191926, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1192129, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1192340, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1192551, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1192762, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1192965, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1193154, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1193365, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1193561, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1193764, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1193967, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1194170, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1194359, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1194555, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1194758, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1194954, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1195157, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1195368, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1195579, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1195782, .adv_w = 472, .box_w = 23, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 1195943, .adv_w = 472, .box_w = 23, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 1196104, .adv_w = 472, .box_w = 24, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 1196272, .adv_w = 472, .box_w = 24, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 1196440, .adv_w = 472, .box_w = 23, .box_h = 29, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 1196607, .adv_w = 472, .box_w = 23, .box_h = 28, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 1196768, .adv_w = 472, .box_w = 24, .box_h = 29, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 1196942, .adv_w = 472, .box_w = 23, .box_h = 29, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 1197109, .adv_w = 472, .box_w = 24, .box_h = 27, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 1197271, .adv_w = 472, .box_w = 24, .box_h = 28, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 1197439, .adv_w = 472, .box_w = 24, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 1197607, .adv_w = 472, .box_w = 24, .box_h = 29, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 1197781, .adv_w = 472, .box_w = 23, .box_h = 28, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 1197942, .adv_w = 472, .box_w = 24, .box_h = 29, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 1198116, .adv_w = 472, .box_w = 24, .box_h = 27, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 1198278, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 1198453, .adv_w = 472, .box_w = 23, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 1198614, .adv_w = 472, .box_w = 24, .box_h = 28, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 1198782, .adv_w = 472, .box_w = 24, .box_h = 28, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 1198950, .adv_w = 472, .box_w = 24, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 1199118, .adv_w = 472, .box_w = 24, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 1199286, .adv_w = 472, .box_w = 25, .box_h = 27, .ofs_x = 2, .ofs_y = -2},
+    {.bitmap_index = 1199455, .adv_w = 472, .box_w = 24, .box_h = 28, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 1199623, .adv_w = 472, .box_w = 24, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 1199791, .adv_w = 472, .box_w = 24, .box_h = 28, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 1199959, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 1200134, .adv_w = 472, .box_w = 25, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 1200316, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 1200491, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 1200666, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 1200841, .adv_w = 472, .box_w = 24, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 1201009, .adv_w = 472, .box_w = 24, .box_h = 28, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 1201177, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 1201352, .adv_w = 472, .box_w = 24, .box_h = 27, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 1201514, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 1201689, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 1201864, .adv_w = 472, .box_w = 24, .box_h = 27, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 1202026, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 1202201, .adv_w = 472, .box_w = 24, .box_h = 29, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 1202375, .adv_w = 472, .box_w = 24, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 1202537, .adv_w = 472, .box_w = 24, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 1202705, .adv_w = 472, .box_w = 24, .box_h = 29, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 1202879, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 1203054, .adv_w = 472, .box_w = 24, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 1203222, .adv_w = 472, .box_w = 24, .box_h = 27, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 1203384, .adv_w = 472, .box_w = 24, .box_h = 27, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 1203546, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1203735, .adv_w = 472, .box_w = 12, .box_h = 26, .ofs_x = 4, .ofs_y = -3},
+    {.bitmap_index = 1203813, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 1203989, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 1204165, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 1204341, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 1204523, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 1204706, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 1204888, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 1205070, .adv_w = 472, .box_w = 24, .box_h = 27, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 1205232, .adv_w = 472, .box_w = 23, .box_h = 27, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 1205388, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 1205570, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 1205752, .adv_w = 472, .box_w = 26, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 1205921, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 1206103, .adv_w = 472, .box_w = 25, .box_h = 29, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 1206285, .adv_w = 472, .box_w = 26, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 1206454, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 1206630, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 1206812, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 1207001, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 1207177, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 1207366, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 1207548, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 1207730, .adv_w = 472, .box_w = 26, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 1207899, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 1208075, .adv_w = 472, .box_w = 25, .box_h = 27, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 1208244, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 1208433, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 1208616, .adv_w = 472, .box_w = 25, .box_h = 29, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 1208798, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 1208987, .adv_w = 472, .box_w = 25, .box_h = 27, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 1209156, .adv_w = 472, .box_w = 25, .box_h = 29, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 1209338, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 1209527, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 1209723, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 1209899, .adv_w = 472, .box_w = 26, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 1210068, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 1210250, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 1210432, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 1210607, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 1210790, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 1210973, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 1211148, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 1211344, .adv_w = 472, .box_w = 25, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 1211526, .adv_w = 472, .box_w = 24, .box_h = 29, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 1211700, .adv_w = 472, .box_w = 25, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 1211863, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 1212052, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 1212235, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 1212417, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 1212606, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 1212795, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 1212984, .adv_w = 472, .box_w = 26, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 1213153, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 1213349, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 1213525, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 1213714, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 1213896, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 1214085, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 1214261, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1214464, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1214653, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1214849, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1215038, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1215241, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1215444, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1215640, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1215829, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1216032, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1216235, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1216438, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1216634, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1216823, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1217019, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1217215, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1217418, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1217614, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1217810, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1218006, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1218202, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1218378, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1218554, .adv_w = 472, .box_w = 26, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 1218723, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1218905, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1219094, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1219297, .adv_w = 472, .box_w = 25, .box_h = 26, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 1219460, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1219649, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1219845, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 1220021, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1220217, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 1220392, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1220574, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1220763, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1220946, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1221135, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1221317, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1221506, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1221682, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1221871, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1222060, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1222243, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 1222426, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1222615, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1222797, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1222986, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 1223168, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1223357, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1223546, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1223735, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1223924, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1224120, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1224323, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 1224512, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1224715, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1224904, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1225093, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1225296, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1225472, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1225668, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1225857, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1226053, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1226242, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1226431, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1226627, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1226823, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1227012, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1227208, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1227404, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1227607, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1227803, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1227999, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1228188, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1228391, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1228580, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1228783, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1228979, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1229175, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1229364, .adv_w = 472, .box_w = 25, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 1229539, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1229728, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1229924, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1230127, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1230316, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1230512, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 1230694, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1230883, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1231065, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1231247, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1231430, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1231619, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 1231795, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1231977, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1232166, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1232362, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1232551, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1232733, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1232929, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1233118, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1233314, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1233503, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1233706, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1233909, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1234120, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1234303, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1234506, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1234717, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1234920, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1235116, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1235312, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1235523, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1235734, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1235945, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1236156, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 1236339, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1236542, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1236745, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1236956, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1237167, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1237363, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1237552, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1237741, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1237937, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1238148, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1238351, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1238547, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1238743, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1238939, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1239142, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1239324, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1239527, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1239716, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1239912, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1240123, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1240305, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1240516, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1240719, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1240915, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1241118, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1241307, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1241510, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1241713, .adv_w = 472, .box_w = 26, .box_h = 25, .ofs_x = 2, .ofs_y = -2},
+    {.bitmap_index = 1241876, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1242087, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1242298, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1242509, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1242705, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1242908, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1243119, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1243330, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1243541, .adv_w = 472, .box_w = 16, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1243653, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1243864, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1244053, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1244249, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1244452, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1244648, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1244859, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1245062, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1245273, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1245476, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 1245665, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1245861, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1246064, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1246260, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1246456, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1246652, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1246855, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 1247038, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1247241, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1247452, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1247655, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1247851, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1248054, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1248257, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1248460, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1248649, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1248852, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 1249048, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1249244, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1249455, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1249666, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1249869, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1250065, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 1250261, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1250464, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1250675, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1250878, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1251074, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1251285, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1251481, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1251677, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1251880, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1252083, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1252294, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1252497, .adv_w = 472, .box_w = 26, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1252666, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1252855, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1253051, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1253233, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1253436, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1253618, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1253814, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1253996, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1254178, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1254381, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1254557, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1254760, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1254942, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1255131, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1255327, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1255516, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1255712, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1255901, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1256090, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1256286, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1256482, .adv_w = 472, .box_w = 24, .box_h = 27, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 1256644, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1256847, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1257036, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1257239, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1257435, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1257646, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1257828, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1258017, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1258213, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1258416, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1258619, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1258822, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1259004, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1259207, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1259410, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1259592, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 1259781, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1259970, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1260166, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1260369, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1260552, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1260763, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1260952, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1261134, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1261323, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1261526, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1261708, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1261890, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1262079, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1262282, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 1262464, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1262653, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1262856, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1263059, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1263255, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1263458, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 1263640, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1263836, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1264032, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1264221, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 1264410, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1264606, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1264802, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1265005, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1265181, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1265384, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1265580, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1265763, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1265946, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1266135, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1266311, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1266494, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1266690, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1266893, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1267076, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1267272, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1267468, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1267671, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1267860, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1268056, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1268245, .adv_w = 472, .box_w = 24, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 1268413, .adv_w = 472, .box_w = 27, .box_h = 26, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1268589, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1268785, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1268981, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1269184, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1269387, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1269590, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 1269779, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1269982, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1270171, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1270367, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1270570, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1270773, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1270976, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1271179, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1271390, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 1271573, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1271776, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1271972, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1272183, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1272394, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1272597, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1272793, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1273004, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1273207, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1273403, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 2, .ofs_y = -2},
+    {.bitmap_index = 1273579, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1273782, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 1273978, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1274181, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1274384, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 1274573, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1274784, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1274995, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1275191, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 1275387, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1275590, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1275801, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1276004, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1276207, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 1276396, .adv_w = 472, .box_w = 28, .box_h = 26, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 1276578, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1276781, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1276970, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1277173, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 1277362, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1277573, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1277762, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1277965, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1278168, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1278371, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1278574, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1278770, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1278966, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1279149, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1279352, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1279555, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1279751, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1279954, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 1280150, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1280346, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1280557, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1280760, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1280963, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1281159, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1281362, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1281573, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 1281769, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1281965, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1282176, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 1282365, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1282576, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1282759, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1282955, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1283158, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1283354, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1283557, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1283753, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 1283942, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1284153, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 1284342, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1284545, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1284748, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1284951, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1285162, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1285365, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 1285561, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1285750, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1285939, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1286128, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1286317, .adv_w = 472, .box_w = 24, .box_h = 28, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 1286485, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 1286667, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1286856, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1287038, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1287227, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1287409, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1287598, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1287787, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 1287976, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1288179, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 1288361, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1288564, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1288760, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1288956, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1289152, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1289348, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1289530, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1289712, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1289901, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1290097, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1290308, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1290490, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1290672, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1290861, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 1291043, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1291232, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1291428, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1291624, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1291813, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1292009, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 1292192, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1292388, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1292570, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1292773, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1292955, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1293151, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1293340, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1293536, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1293718, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1293914, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1294096, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1294292, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1294503, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1294692, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1294881, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1295077, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1295266, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1295462, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1295645, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1295828, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1296024, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1296220, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1296403, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1296592, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1296795, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1296998, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1297194, .adv_w = 472, .box_w = 26, .box_h = 27, .ofs_x = 2, .ofs_y = -2},
+    {.bitmap_index = 1297370, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1297566, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1297762, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1297973, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1298176, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1298387, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1298598, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1298801, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1298997, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1299208, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1299411, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1299600, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1299803, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1300014, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1300225, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1300428, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1300617, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1300813, .adv_w = 472, .box_w = 29, .box_h = 27, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1301009, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1301212, .adv_w = 472, .box_w = 29, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1301415, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1301598, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1301794, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1301997, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1302200, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1302382, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1302578, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1302774, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1302970, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1303173, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1303369, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1303565, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1303768, .adv_w = 472, .box_w = 29, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1303979, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1304175, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1304358, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1304561, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1304764, .adv_w = 472, .box_w = 25, .box_h = 26, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 1304927, .adv_w = 472, .box_w = 29, .box_h = 26, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1305116, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1305305, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1305487, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1305676, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1305872, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1306075, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1306264, .adv_w = 472, .box_w = 26, .box_h = 29, .ofs_x = 3, .ofs_y = -4},
+    {.bitmap_index = 1306453, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 1306649, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 1306831, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 1307020, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 2, .ofs_y = -4},
+    {.bitmap_index = 1307209, .adv_w = 472, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 1307392, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1307588, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1307791, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1307994, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1308197, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1308400, .adv_w = 472, .box_w = 28, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1308603, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1308792, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1308981, .adv_w = 472, .box_w = 28, .box_h = 27, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 1309170, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1309366, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1309555, .adv_w = 472, .box_w = 27, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1309744, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1309940, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1310136, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1310332, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1310528, .adv_w = 472, .box_w = 26, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1310710, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 1310906, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1311102, .adv_w = 472, .box_w = 27, .box_h = 29, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 1311298, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1311494, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1311690, .adv_w = 472, .box_w = 28, .box_h = 28, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 1311886, .adv_w = 472, .box_w = 5, .box_h = 22, .ofs_x = 5, .ofs_y = -1},
+    {.bitmap_index = 1311914, .adv_w = 472, .box_w = 6, .box_h = 9, .ofs_x = 4, .ofs_y = -5},
+    {.bitmap_index = 1311928, .adv_w = 472, .box_w = 5, .box_h = 18, .ofs_x = 5, .ofs_y = -1},
+    {.bitmap_index = 1311951, .adv_w = 472, .box_w = 12, .box_h = 23, .ofs_x = 3, .ofs_y = -1}
 };
 
 /*---------------------
  *  CHARACTER MAPPING
  *--------------------*/
 
-static const uint16_t unicode_list_5[] = {
-    0x0, 0x219, 0x1f64, 0x2053, 0x2f52, 0x2f5a, 0x2f5b, 0x38f4,
-    0x4d50, 0x4d58, 0x4d59, 0x4d5a, 0x4d5b, 0x4d5d, 0x4d5e, 0x4d60,
-    0x4d61, 0x4d63, 0x4d64, 0x4d66, 0x4d68, 0x4d69, 0x4d6a, 0x4d6b,
-    0x4d6c, 0x4d6d, 0x4d6e, 0x4d72, 0x4d74, 0x4d75, 0x4d77, 0x4d7a,
-    0x4d7b, 0x4d7d, 0x4d80, 0x4d82, 0x4d84, 0x4d88, 0x4d89, 0x4d8a,
-    0x4d8b, 0x4d8d, 0x4d8e, 0x4d95, 0x4d98, 0x4d99, 0x4d9b, 0x4d9c,
-    0x4d9d, 0x4d9e, 0x4d9f, 0x4da0, 0x4da2, 0x4da3, 0x4da4, 0x4da6,
-    0x4da8, 0x4dad, 0x4dae, 0x4daf, 0x4db0, 0x4db1, 0x4db6, 0x4db9,
-    0x4dc0, 0x4dc1, 0x4dc3, 0x4dd1, 0x4dd6, 0x4dd8, 0x4dd9, 0x4ddb,
-    0x4ddc, 0x4de1, 0x4de2, 0x4de3, 0x4de4, 0x4de5, 0x4de8, 0x4dea,
-    0x4deb, 0x4def, 0x4df1, 0x4df2, 0x4df4, 0x4df5, 0x4df6, 0x4df7,
-    0x4df8, 0x4df9, 0x4dfb, 0x4dfc, 0x4dfe, 0x4e02, 0x4e06, 0x4e0a,
-    0x4e0f, 0x4e10, 0x4e11, 0x4e14, 0x4e15, 0x4e16, 0x4e17, 0x4e19,
-    0x4e1a, 0x4e1b, 0x4e1d, 0x4e1e, 0x4e21, 0x4e23, 0x4e24, 0x4e25,
-    0x4e26, 0x4e27, 0x4e28, 0x4e29, 0x4e2e, 0x4e31, 0x4e33, 0x4e34,
-    0x4e35, 0x4e38, 0x4e3a, 0x4e3b, 0x4e3c, 0x4e40, 0x4e42, 0x4e43,
-    0x4e45, 0x4e46, 0x4e47, 0x4e4b, 0x4e4d, 0x4e4f, 0x4e51, 0x4e59,
-    0x4e5a, 0x4e5d, 0x4e5e, 0x4e5f, 0x4e60, 0x4e61, 0x4e67, 0x4e68,
-    0x4e69, 0x4e6a, 0x4e6b, 0x4e6e, 0x4e6f, 0x4e70, 0x4e72, 0x4e74,
-    0x4e75, 0x4e76, 0x4e77, 0x4e7a, 0x4e7b, 0x4e7f, 0x4e80, 0x4e84,
-    0x4e86, 0x4e88, 0x4e8a, 0x4e8c, 0x4e8d, 0x4e93, 0x4e96, 0x4e9d,
-    0x4e9e, 0x4e9f, 0x4ea0, 0x4ea1, 0x4ea3, 0x4ea5, 0x4ea7, 0x4ea8,
-    0x4ea9, 0x4eaa, 0x4eab, 0x4eac, 0x4ead, 0x4eae, 0x4eaf, 0x4eb0,
-    0x4eb3, 0x4eb4, 0x4eb5, 0x4ebc, 0x4ebf, 0x4ec0, 0x4ec3, 0x4ec4,
-    0x4ec6, 0x4ecb, 0x4ecc, 0x4ece, 0x4ecf, 0x4ed3, 0x4ed4, 0x4ed8,
-    0x4ed9, 0x4edb, 0x4edd, 0x4edf, 0x4ee1, 0x4ee7, 0x4eeb, 0x4eed,
-    0x4ef0, 0x4ef3, 0x4ef5, 0x4ef6, 0x4ef7, 0x4ef8, 0x4ef9, 0x4efa,
-    0x4efc, 0x4efe, 0x4eff, 0x4f05, 0x4f0f, 0x4f13, 0x4f14, 0x4f15,
-    0x4f1a, 0x4f1e, 0x4f1f, 0x4f20, 0x4f21, 0x4f27, 0x4f28, 0x4f2a,
-    0x4f2c, 0x4f2d, 0x4f2e, 0x4f2f, 0x4f31, 0x4f33, 0x4f36, 0x4f38,
-    0x4f39, 0x4f3a, 0x4f3d, 0x4f3e, 0x4f3f, 0x4f41, 0x4f43, 0x4f45,
-    0x4f46, 0x4f48, 0x4f4a, 0x4f4e, 0x4f5c, 0x4f5d, 0x4f5f, 0x4f62,
-    0x4f64, 0x4f68, 0x4f69, 0x4f6a, 0x4f6c, 0x4f6e, 0x4f6f, 0x4f71,
-    0x4f74, 0x4f75, 0x4f76, 0x4f79, 0x4f7a, 0x4f7c, 0x4f7d, 0x4f8a,
-    0x4f8e, 0x4f93, 0x4f97, 0x4f98, 0x4f9c, 0x4f9e, 0x4f9f, 0x4fa5,
-    0x4faa, 0x4fac, 0x4fb5, 0x4fbc, 0x4fc2, 0x4fc6, 0x4fc7, 0x4fcb,
-    0x4fce, 0x4fcf, 0x4fd0, 0x4fd5, 0x4fd8, 0x4fdd, 0x4ff3, 0x4ff5,
-    0x4ff7, 0x4ff8, 0x4ff9, 0x4ffc, 0x5002, 0x500b, 0x501f, 0x5026,
-    0x502a, 0x5036, 0x5037, 0x503c, 0x503d, 0x503e, 0x5043, 0x5045,
-    0x504b, 0x5056, 0x5057, 0x505b, 0x5062, 0x5071, 0x508f, 0x5091,
-    0x5093, 0x5094, 0x5095, 0x5096, 0x5098, 0x5099, 0x509b, 0x509d,
-    0x50a1, 0x50a4, 0x50a5, 0x50a6, 0x50aa, 0x50ac, 0x50b2, 0x50b5,
-    0x50b8, 0x50bb, 0x50bc, 0x50bd, 0x50be, 0x50c0, 0x50c1, 0x50c3,
-    0x50c4, 0x50c5, 0x50c6, 0x50c7, 0x50c8, 0x50c9, 0x50cb, 0x50cc,
-    0x50cd, 0x50d0, 0x50d5, 0x50d8, 0x50dc, 0x50dd, 0x50e7, 0x50e9,
-    0x50eb, 0x50ec, 0x50f0, 0x50f2, 0x50f4, 0x50f5, 0x50fc, 0x50ff,
-    0x5100, 0x5101, 0x5102, 0x5103, 0x5105, 0x5106, 0x5107, 0x510b,
-    0x510c, 0x510d, 0x5110, 0x5114, 0x5116, 0x5117, 0x5119, 0x511b,
-    0x511c, 0x511f, 0x5121, 0x5131, 0x5134, 0x513b, 0x513d, 0x513f,
-    0x5140, 0x5146, 0x5148, 0x5149, 0x514a, 0x514b, 0x514c, 0x514f,
-    0x5150, 0x5153, 0x5156, 0x5157, 0x5158, 0x515a, 0x515d, 0x515e,
-    0x5161, 0x5162, 0x5166, 0x5167, 0x5168, 0x5169, 0x516a, 0x516b,
-    0x516d, 0x5170, 0x5174, 0x5178, 0x5179, 0x517b, 0x517d, 0x517e,
-    0x5180, 0x5183, 0x5186, 0x5187, 0x5188, 0x5189, 0x518a, 0x518b,
-    0x518d, 0x518f, 0x5190, 0x5191, 0x5192, 0x5193, 0x5195, 0x519c,
-    0x519d, 0x51a0, 0x51a1, 0x51a4, 0x51a6, 0x51ac, 0x51ae, 0x51b1,
-    0x51b5, 0x51b7, 0x51b9, 0x51ba, 0x51bf, 0x51c2, 0x51cd, 0x51cf,
-    0x51d1, 0x51d9, 0x51e0, 0x51e3, 0x51eb, 0x51ed, 0x51ee, 0x51ef,
-    0x51f0, 0x51f1, 0x51f2, 0x51f3, 0x51f8, 0x51fa, 0x51fb, 0x51fc,
-    0x51fd, 0x5201, 0x5202, 0x5203, 0x520e, 0x520f, 0x5213, 0x5217,
-    0x5219, 0x521b, 0x521d, 0x5220, 0x5222, 0x5226, 0x5228, 0x522b,
-    0x5234, 0x5240, 0x524a, 0x524e, 0x524f, 0x5250, 0x5255, 0x5256,
-    0x5258, 0x525d, 0x525f, 0x5260, 0x5266, 0x5267, 0x5269, 0x5270,
-    0x5271, 0x527e, 0x527f, 0x5289, 0x528a, 0x528b, 0x528e, 0x528f,
-    0x5291, 0x5293, 0x5295, 0x5297, 0x5298, 0x5299, 0x529a, 0x529e,
-    0x529f, 0x52a1, 0x52a2, 0x52a3, 0x52a5, 0x52a6, 0x52a7, 0x52aa,
-    0x52ae, 0x52af, 0x52b0, 0x52b1, 0x52b2, 0x52b4, 0x52b6, 0x52b7,
-    0x52bb, 0x52be, 0x52bf, 0x52c0, 0x52c1, 0x52c3, 0x52c4, 0x52c5,
-    0x52c7, 0x52c8, 0x52ca, 0x52cb, 0x52cf, 0x52d4, 0x52d6, 0x52d9,
-    0x52db, 0x52dc, 0x52dd, 0x52e5, 0x52e8, 0x52ea, 0x52ed, 0x52ef,
-    0x52f1, 0x52f2, 0x52f5, 0x52f6, 0x52f8, 0x52fe, 0x530b, 0x530e,
-    0x530f, 0x5311, 0x5312
+static const uint16_t unicode_list_4[] = {
+    0x0, 0x2053, 0x2f52, 0x2f5a, 0x2f5b, 0x4d50, 0x4d51, 0x4d53
 };
 
-static const uint8_t glyph_id_ofs_list_6[] = {
-    0, 1, 2, 3, 4, 5, 0, 0,
-    0, 6, 0, 0, 7, 0, 8, 9,
-    10, 11, 0, 12, 0, 0, 0, 13,
-    0, 0, 0, 14, 15, 16, 17, 0,
-    18, 19, 20, 21, 22, 23, 24, 25,
-    26, 27, 28, 29, 0, 0, 30, 31,
-    32, 33, 0, 34, 35, 36, 0, 0,
-    0, 37, 0, 38, 39, 0, 40, 0,
-    41, 42, 43, 0, 44, 45, 46, 47,
-    48, 49, 0, 50, 0, 51, 0, 52,
-    0, 0, 0, 53, 0, 54, 55, 56,
-    57, 58, 0, 59, 0, 0, 60, 61,
-    62, 63, 0, 64, 65, 66, 67, 68,
-    0, 69, 70, 0, 71, 72, 0, 0,
-    73, 74, 0, 75, 0, 0, 76, 0,
-    77, 0, 0, 78, 0, 0, 79, 0,
-    80, 0, 81, 82, 0, 0, 0, 0,
-    83, 0, 0, 84, 85, 86, 87, 88,
-    89, 90, 0, 91, 92
+static const uint8_t glyph_id_ofs_list_5[] = {
+    0, 1, 2, 3, 4, 5, 6, 7,
+    0, 8, 9, 0, 10, 11, 12, 13,
+    0, 14, 15, 16, 17, 18, 19, 20,
+    0, 0, 0, 21, 0, 22, 23, 0,
+    24, 25, 0, 26, 27, 28, 29, 0,
+    0, 30, 0, 31, 0, 32, 0, 33,
+    0, 34, 35, 36, 37, 0, 38, 39,
+    40, 0, 0, 0, 41, 0, 42, 0,
+    43, 44, 45, 0, 46, 47, 48, 49,
+    50, 51, 0, 52, 53, 54, 0, 55,
+    0, 56, 57, 0, 0, 58, 59, 60,
+    61, 62, 63, 0, 0, 0, 0, 64,
+    0, 0, 65, 0, 0, 0, 0, 0,
+    0, 66, 67, 0, 68, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 69,
+    0, 0, 0, 0, 0, 0, 0, 70,
+    0, 71, 72, 0, 73, 74, 75, 76,
+    77, 0, 78, 79, 80, 81, 82, 0,
+    0, 83, 0, 84, 85, 0, 0, 0,
+    86, 87, 88, 89, 0, 90, 91, 92,
+    93, 94, 95, 0, 96, 97, 98, 99,
+    0, 0, 0, 100, 101, 0, 102, 0,
+    0, 0, 0, 103, 104, 0, 0, 0,
+    105, 106, 107, 108, 109, 110, 111, 112,
+    113, 0, 114, 115, 116, 0, 117, 118,
+    0, 0, 119, 0, 120, 121, 122, 123,
+    124, 125, 126, 0, 0, 0, 127, 128,
+    129, 0, 130, 0, 131, 132, 133, 0,
+    0, 134, 0, 135, 136, 137, 0, 0,
+    0, 138, 0, 139, 140, 0, 141, 142,
+    143
 };
 
-static const uint16_t unicode_list_7[] = {
-    0x0, 0x2, 0x4, 0x6, 0xd, 0xf, 0x11, 0x13,
-    0x14, 0x15, 0x16, 0x19, 0x1b, 0x1e, 0x20, 0x22,
-    0x24, 0x29, 0x2a, 0x2c, 0x2d, 0x2e, 0x30, 0x32,
-    0x33, 0x34, 0x37, 0x38, 0x39, 0x3b, 0x40, 0x41,
-    0x42, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4d, 0x4f,
-    0x51, 0x56, 0x59, 0x5b, 0x5d, 0x5e, 0x5f, 0x64,
-    0x66, 0x67, 0x6a, 0x6b, 0x6c, 0x6d, 0x73, 0x75,
-    0x77, 0x78, 0x7b, 0x7c, 0x7d, 0x83, 0x84, 0x85,
-    0x86, 0x87, 0x88, 0x8b, 0x8c, 0x90, 0x91, 0x98,
-    0x9a, 0x9b, 0x9d, 0x9f, 0xa4, 0xa5, 0xa7, 0xad,
-    0xae, 0xaf, 0xb2, 0xb9, 0xbb, 0xbe, 0xc1, 0xc2,
-    0xc5, 0xc8, 0xca, 0xcc, 0xcd, 0xcf, 0xd1, 0xd5,
-    0xda, 0xdc, 0xdd, 0xdf, 0xe1, 0xe2, 0xe4, 0xe7,
-    0xe8, 0xee, 0xf3, 0xf4, 0xfa, 0xff, 0x102, 0x103,
-    0x104, 0x105, 0x108, 0x10a, 0x10b, 0x10c, 0x10e, 0x113,
-    0x114, 0x115, 0x116, 0x119, 0x11a, 0x11c, 0x11e, 0x11f,
-    0x120, 0x121, 0x122, 0x124, 0x125, 0x126, 0x127, 0x128,
-    0x129, 0x12d, 0x12f, 0x132, 0x136, 0x137, 0x13a, 0x13b,
-    0x13d, 0x14f, 0x151, 0x153, 0x155, 0x157, 0x159, 0x15b,
-    0x15c, 0x162, 0x163, 0x167, 0x16a, 0x16b, 0x16d, 0x16f,
-    0x170, 0x171, 0x172, 0x174, 0x17a, 0x17b, 0x17c, 0x17d,
-    0x17f, 0x181, 0x182, 0x183, 0x184, 0x186, 0x188, 0x189,
-    0x18a, 0x18d, 0x190, 0x191, 0x193, 0x195, 0x19b, 0x19c,
-    0x19e, 0x19f, 0x1a6, 0x1a7, 0x1aa, 0x1ad, 0x1b5, 0x1b6,
-    0x1b8, 0x1b9, 0x1bc, 0x1bd, 0x1bf, 0x1c1, 0x1c2, 0x1c5,
-    0x1ca, 0x1cb, 0x1cf, 0x1d0, 0x1d2, 0x1d4, 0x1d7, 0x1d9,
-    0x1dd, 0x1e5, 0x1ea, 0x1eb, 0x1ec, 0x1f2, 0x1f5, 0x1f7,
-    0x1fa, 0x200, 0x202, 0x206, 0x207, 0x208, 0x209, 0x20a,
-    0x20f, 0x214, 0x219, 0x21a, 0x223, 0x224, 0x22c, 0x231,
-    0x23c, 0x240, 0x24d, 0x255, 0x25a, 0x263, 0x26b, 0x279,
-    0x27b, 0x27c, 0x27d, 0x27e, 0x27f, 0x280, 0x289, 0x28b,
-    0x28f, 0x293, 0x298, 0x29b, 0x2a1, 0x2a6, 0x2a7, 0x2b1,
-    0x2c1, 0x2c6, 0x2c7, 0x2c8, 0x2ca, 0x2cb, 0x2cc, 0x2cd,
-    0x2ce, 0x2d7, 0x2d8, 0x2d9, 0x2dc, 0x2de, 0x2e0, 0x2e3,
-    0x2e5, 0x2e8, 0x2ea, 0x2eb, 0x2ec, 0x2ed, 0x2ee, 0x2ef,
-    0x2f5, 0x2f8, 0x2f9, 0x2fa, 0x2fb, 0x2fc, 0x2fd, 0x2fe,
-    0x2ff, 0x301, 0x302, 0x304, 0x306, 0x307, 0x308, 0x309,
-    0x30b, 0x311, 0x315, 0x319, 0x31a, 0x320, 0x321, 0x322,
-    0x324, 0x329, 0x32a, 0x330, 0x331, 0x339, 0x33c, 0x33d,
-    0x33e, 0x33f, 0x340, 0x341, 0x342, 0x345, 0x347, 0x349,
-    0x34b, 0x34c, 0x34d, 0x34f, 0x350, 0x356, 0x360, 0x361,
-    0x369, 0x36a, 0x36c, 0x36d, 0x370, 0x372, 0x373, 0x376,
-    0x377, 0x378, 0x37a, 0x37d, 0x37e, 0x38b, 0x38d, 0x392,
-    0x396, 0x397, 0x398, 0x39a, 0x39b, 0x3a0, 0x3a4, 0x3a5,
-    0x3a9, 0x3aa, 0x3ab, 0x3af, 0x3b7, 0x3bc, 0x3be, 0x3bf,
-    0x3c2, 0x3c8, 0x3ce, 0x3d3, 0x3e2, 0x3e4, 0x3ea, 0x3eb,
-    0x3ef, 0x3f2, 0x3f6, 0x403, 0x40a, 0x413, 0x41e, 0x41f,
-    0x421, 0x423, 0x426, 0x427, 0x430, 0x431, 0x435, 0x437,
-    0x43d, 0x446, 0x447, 0x45f, 0x460, 0x463, 0x46f, 0x471,
-    0x473, 0x47d, 0x482, 0x48c, 0x48e, 0x491, 0x494, 0x497,
-    0x4a2, 0x4a5, 0x4ab, 0x4b3, 0x4b4, 0x4b7, 0x4b8, 0x4ba,
-    0x4bd, 0x4c3, 0x4c5, 0x4c7, 0x4c8, 0x4c9, 0x4ca, 0x4cb,
-    0x4cc, 0x4cd, 0x4cf, 0x4d2, 0x4d5, 0x4d6, 0x4d7, 0x4d8,
-    0x4da, 0x4e0, 0x4e2, 0x4e5, 0x4e6, 0x4e7, 0x4e9, 0x4ed,
-    0x4ef, 0x4f2, 0x4f3, 0x4f4, 0x4f5, 0x4f6, 0x4f8, 0x500,
-    0x505, 0x50b, 0x50c, 0x511, 0x512, 0x514, 0x516, 0x517,
-    0x51b, 0x51f, 0x520, 0x521, 0x522, 0x524, 0x525, 0x526,
-    0x528, 0x52b, 0x530, 0x531, 0x534, 0x535, 0x537, 0x53c,
-    0x541, 0x542, 0x543, 0x546, 0x547, 0x548, 0x549, 0x54c,
-    0x54d, 0x550, 0x557, 0x559, 0x55c, 0x564, 0x568, 0x569,
-    0x56e, 0x56f, 0x570, 0x571, 0x572, 0x575, 0x576, 0x578,
-    0x57a, 0x57b, 0x57c, 0x581, 0x583, 0x586, 0x58a, 0x597,
-    0x599, 0x59d, 0x59f, 0x5a1, 0x5a2, 0x5a3, 0x5a4, 0x5a5,
-    0x5a6, 0x5a7, 0x5aa, 0x5af, 0x5b1, 0x5b6, 0x5ba, 0x5bd,
-    0x5be, 0x5c1, 0x5c3, 0x5c7, 0x5cf, 0x5d0, 0x5d2, 0x5d4,
-    0x5da, 0x5de, 0x5e4, 0x5e7, 0x5e8, 0x5f1, 0x5f3, 0x5f8,
-    0x600, 0x605, 0x608, 0x611, 0x612, 0x613, 0x614, 0x615,
-    0x618, 0x61d, 0x630, 0x638, 0x639, 0x648, 0x650, 0x651,
-    0x653, 0x656, 0x65c, 0x65f, 0x667, 0x66a, 0x670, 0x672,
-    0x674, 0x676, 0x678, 0x67a, 0x67e, 0x67f, 0x681, 0x684,
-    0x687, 0x688, 0x689, 0x68f, 0x6b4, 0x6b5, 0x6ce, 0x6d5,
-    0x6de, 0x6ee, 0x6ef, 0x6f1, 0x6f2, 0x6f3, 0x6f5, 0x6f6,
-    0x6f7, 0x6f8, 0x6fa, 0x6fb, 0x6fd, 0x700, 0x701, 0x702,
-    0x703, 0x704, 0x707, 0x708, 0x70a, 0x70e, 0x711, 0x713,
-    0x718, 0x71f, 0x721, 0x722, 0x723, 0x725, 0x726, 0x727,
-    0x729, 0x72a, 0x72d, 0x731, 0x733, 0x735, 0x736, 0x737,
-    0x738, 0x739, 0x73a, 0x73b, 0x73c, 0x73e, 0x73f, 0x741,
-    0x742, 0x743, 0x744, 0x748, 0x749, 0x74a, 0x74e, 0x751,
-    0x752, 0x753, 0x754, 0x756, 0x757, 0x75b, 0x75d, 0x760,
-    0x762, 0x763, 0x764, 0x765, 0x76a, 0x76e, 0x770, 0x771,
-    0x77b, 0x782, 0x783, 0x78e, 0x796, 0x797, 0x798, 0x799,
-    0x79a, 0x79d, 0x79f, 0x7a2, 0x7a4, 0x7a6, 0x7a7, 0x7ad,
-    0x7af, 0x7b2, 0x7b3, 0x7b4, 0x7b6, 0x7b8, 0x7c2, 0x7c3,
-    0x7c5, 0x7ca, 0x7cf, 0x7d2, 0x7d6, 0x7d7, 0x7d8, 0x7d9,
-    0x7da, 0x7db, 0x7dc, 0x7dd, 0x7de, 0x7df, 0x7e0, 0x7e1,
-    0x7e3, 0x7e6, 0x7e8, 0x7e9, 0x7ec, 0x7ed, 0x7ee, 0x7f3,
-    0x7f7, 0x7fc, 0x7fe, 0x7ff, 0x801, 0x802, 0x804, 0x80d,
-    0x80f, 0x817, 0x818, 0x81d, 0x81f, 0x820, 0x826, 0x82a,
-    0x82e, 0x832, 0x834, 0x835, 0x836, 0x837, 0x838, 0x839,
-    0x840, 0x841, 0x847, 0x849, 0x84a, 0x84b, 0x851, 0x853,
-    0x856, 0x85d, 0x85f, 0x862, 0x869, 0x870, 0x877, 0x87f,
-    0x881, 0x882, 0x883, 0x884, 0x885, 0x886, 0x888, 0x88b,
-    0x88e, 0x899, 0x8a0, 0x8a1, 0x8a4, 0x8a5, 0x8ac, 0x8af,
-    0x8b2, 0x8b4, 0x8b9, 0x8bc, 0x8bd, 0x8c2, 0x8c7, 0x8cb,
-    0x8cc, 0x8d2, 0x8db, 0x8e5, 0x8e8, 0x8e9, 0x8ea, 0x8ec,
-    0x8f4, 0x8f6, 0x8f8, 0x8f9, 0x8fb, 0x907, 0x909, 0x90a,
-    0x90d, 0x912, 0x920, 0x923, 0x937, 0x955, 0x967, 0x96b,
-    0x97c, 0x97f, 0x980, 0x984, 0x985, 0x986, 0x987, 0x989,
-    0x98c, 0x98d, 0x98f, 0x990, 0x991, 0x992, 0x995, 0x99f,
-    0x9a0, 0x9a1, 0x9a4, 0x9a6, 0x9aa, 0x9ad, 0x9af, 0x9b2,
-    0x9b3, 0x9b4, 0x9b6, 0x9b7, 0x9b8, 0x9b9, 0x9ba, 0x9bb,
-    0x9c4, 0x9c5, 0x9cb, 0x9cc, 0x9cf, 0x9d5, 0x9d6, 0x9d9,
-    0x9da, 0x9db, 0x9e0, 0x9e2, 0x9e3, 0x9ea, 0x9f9, 0x9fc,
-    0x9ff, 0xa00, 0xa10, 0xa11, 0xa12, 0xa14, 0xa16, 0xa18,
-    0xa19, 0xa1a, 0xa1b, 0xa1d, 0xa1e, 0xa22, 0xa24, 0xa25,
-    0xa28, 0xa29, 0xa2d, 0xa2e, 0xa2f, 0xa31, 0xa32, 0xa33,
-    0xa35, 0xa37, 0xa38, 0xa3a, 0xa3c, 0xa3d, 0xa3e, 0xa43,
-    0xa44, 0xa45, 0xa4b, 0xa51, 0xa53, 0xa54, 0xa55, 0xa57,
-    0xa5c, 0xa67, 0xa68, 0xa69, 0xa70, 0xa71, 0xa74, 0xa79,
-    0xa81, 0xa86, 0xa88, 0xa94, 0xa95, 0xa98, 0xa9d, 0xa9e,
-    0xa9f, 0xaa0, 0xaa1, 0xaa2, 0xaa5, 0xaa6, 0xaa8, 0xaa9,
-    0xaad, 0xaaf, 0xab1, 0xab3, 0xab5, 0xab6, 0xab9, 0xabd,
-    0xabe, 0xac3, 0xac4, 0xac5, 0xac7, 0xacb, 0xacd, 0xacf,
-    0xad7, 0xad8, 0xada, 0xade, 0xaf0, 0xaf1, 0xaf3, 0xaf4,
-    0xaf5, 0xaf6, 0xb00, 0xb02, 0xb04, 0xb05, 0xb07, 0xb08,
-    0xb0a, 0xb0b, 0xb0e, 0xb0f, 0xb11, 0xb15, 0xb17, 0xb19,
-    0xb1a, 0xb1e, 0xb1f, 0xb20, 0xb22, 0xb23, 0xb25, 0xb26,
-    0xb27, 0xb28, 0xb29, 0xb2e, 0xb30, 0xb33, 0xb35, 0xb36,
-    0xb37, 0xb3a, 0xb3f, 0xb46, 0xb48, 0xb4b, 0xb4c, 0xb53,
-    0xb55, 0xb5a, 0xb61, 0xb63, 0xb64, 0xb67, 0xb6a, 0xb6b,
-    0xb6d, 0xb70, 0xb74, 0xb75, 0xb76, 0xb77, 0xb7b, 0xb7e,
-    0xb7f, 0xb82, 0xb85, 0xb88, 0xb89, 0xb8b, 0xb8c, 0xb8f,
-    0xb93, 0xb96, 0xb99, 0xb9b, 0xb9c, 0xb9d, 0xb9e, 0xb9f,
-    0xba1, 0xba2, 0xba3, 0xba4, 0xba8, 0xbab, 0xbac, 0xbad,
-    0xbb0, 0xbb2, 0xbb3, 0xbb4, 0xbb7, 0xbb9, 0xbba, 0xbbe,
-    0xbbf, 0xbc3, 0xbc4, 0xbc5, 0xbc6, 0xbc7, 0xbc8, 0xbc9,
-    0xbcd, 0xbd3, 0xbd9, 0xbda, 0xbdd, 0xbe1, 0xbe9, 0xbeb,
-    0xbee, 0xbf0, 0xbf3, 0xbfb, 0xc00, 0xc01, 0xc02, 0xc06,
-    0xc07, 0xc08, 0xc09, 0xc0a, 0xc0b, 0xc0d, 0xc0e, 0xc14,
-    0xc16, 0xc17, 0xc19, 0xc1a, 0xc1b, 0xc21, 0xc22, 0xc2a,
-    0xc30, 0xc32, 0xc34, 0xc38, 0xc39, 0xc3b, 0xc3d, 0xc41,
-    0xc44, 0xc49, 0xc4a, 0xc4b, 0xc4d, 0xc4f, 0xc52, 0xc56,
-    0xc59, 0xc5a, 0xc63, 0xc64, 0xc65, 0xc68, 0xc69, 0xc6f,
-    0xc73, 0xc76, 0xc78, 0xc7a, 0xc7b, 0xc7d, 0xc7e, 0xc84,
-    0xc85, 0xc86, 0xc87, 0xc89, 0xc8a, 0xc8b, 0xc8c, 0xc8d,
-    0xc8e, 0xc91, 0xc92, 0xc94, 0xc98, 0xc9e, 0xc9f, 0xca4,
-    0xca7, 0xcac, 0xcb2, 0xcb3, 0xcb8, 0xcbd, 0xcbe, 0xcc1,
-    0xcc2, 0xcc4, 0xcc5, 0xcc9, 0xce8, 0xce9, 0xcea, 0xcec,
-    0xcef, 0xcf3, 0xd00, 0xd06, 0xd0e, 0xd13, 0xd15, 0xd29,
-    0xd2c, 0xd32, 0xd45, 0xd4a, 0xd55, 0xd5c, 0xd60, 0xd66,
-    0xd68, 0xd70, 0xd84, 0xd93, 0xd9d, 0xda6, 0xda8, 0xdaa,
-    0xdab, 0xdac, 0xdad, 0xdae, 0xdaf, 0xdb0, 0xdb3, 0xdb4,
-    0xdb5, 0xdb6, 0xdb8, 0xdb9, 0xdbd, 0xdbf, 0xdc3, 0xdc8,
-    0xdca, 0xdcc, 0xdd1, 0xdd2, 0xdd5, 0xddb, 0xddc, 0xddd,
-    0xdde, 0xddf, 0xde1, 0xde5, 0xde6, 0xde9, 0xdeb, 0xdec,
-    0xdef, 0xdf0, 0xdf1, 0xdf2, 0xdf6, 0xdf9, 0xe01, 0xe04,
-    0xe05, 0xe07, 0xe08, 0xe09, 0xe0a, 0xe0b, 0xe0c, 0xe0d,
-    0xe0e, 0xe11, 0xe14, 0xe17, 0xe1a, 0xe1c, 0xe1d, 0xe1e,
-    0xe21, 0xe22, 0xe27, 0xe28, 0xe2f, 0xe30, 0xe31, 0xe32,
-    0xe33, 0xe34, 0xe35, 0xe36, 0xe38, 0xe39, 0xe3d, 0xe3e,
-    0xe3f, 0xe40, 0xe42, 0xe43, 0xe46, 0xe49, 0xe4a, 0xe4f,
-    0xe53, 0xe57, 0xe5a, 0xe5b, 0xe5d, 0xe60, 0xe61, 0xe62,
-    0xe63, 0xe64, 0xe65, 0xe66, 0xe67, 0xe68, 0xe6a, 0xe6b,
-    0xe6c, 0xe6e, 0xe70, 0xe71, 0xe72, 0xe74, 0xe75, 0xe76,
-    0xe77, 0xe78, 0xe79, 0xe7a, 0xe7d, 0xe80, 0xe81, 0xe82,
-    0xe83, 0xe84, 0xe85, 0xe86, 0xe87, 0xe8a, 0xe8b, 0xe8c,
-    0xe8d, 0xe8f, 0xe91, 0xe92, 0xe94, 0xe95, 0xe9a, 0xe9b,
-    0xe9c, 0xe9d, 0xe9f, 0xea0, 0xea5, 0xea6, 0xea7, 0xeac,
-    0xeaf, 0xeb4, 0xeb9, 0xebb, 0xebc, 0xebd, 0xebe, 0xebf,
-    0xec0, 0xec1, 0xec2, 0xec3, 0xec4, 0xec6, 0xec8, 0xec9,
-    0xecd, 0xed0, 0xed7, 0xed8, 0xedb, 0xee0, 0xee1, 0xee3,
-    0xee4, 0xee7, 0xee9, 0xeea, 0xeec, 0xeed, 0xeee, 0xef3,
-    0xefa, 0xefc, 0xefd, 0xeff, 0xf00, 0xf01, 0xf05, 0xf07,
-    0xf0b, 0xf0c, 0xf0d, 0xf14, 0xf15, 0xf18, 0xf19, 0xf1e,
-    0xf20, 0xf25, 0xf26, 0xf27, 0xf28, 0xf2c, 0xf2d, 0xf2e,
-    0xf30, 0xf34, 0xf36, 0xf3e, 0xf40, 0xf41, 0xf43, 0xf45,
-    0xf46, 0xf47, 0xf48, 0xf4a, 0xf4b, 0xf4c, 0xf4e, 0xf51,
-    0xf52, 0xf55, 0xf56, 0xf58, 0xf5a, 0xf5c, 0xf62, 0xf64,
-    0xf67, 0xf6b, 0xf6c, 0xf6d, 0xf6e, 0xf70, 0xf74, 0xf7e,
-    0xf7f, 0xf81, 0xf87, 0xf88, 0xf8b, 0xf91, 0xf92, 0xf94,
-    0xf96, 0xf9b, 0xf9c, 0xf9d, 0xf9f, 0xfa0, 0xfa3, 0xfaa,
-    0xfad, 0xfae, 0xfb1, 0xfb2, 0xfb9, 0xfbc, 0xfbe, 0xfbf,
-    0xfc4, 0xfc8, 0xfca, 0xfcb, 0xfd2, 0xfd8, 0xfdf, 0xfe2,
-    0xfe3, 0xfe4, 0xfe5, 0xfe8, 0xff0, 0xff2, 0xff6, 0xffc,
-    0x1005, 0x1007, 0x100b, 0x1016, 0x1018, 0x101b, 0x1020, 0x1022,
-    0x1023, 0x1025, 0x102e, 0x1030, 0x1033, 0x1034, 0x1037, 0x103c,
-    0x1042, 0x1047, 0x104a, 0x104b, 0x104e, 0x1053, 0x1055, 0x1056,
-    0x1058, 0x105a, 0x105e, 0x1060, 0x1063, 0x106b, 0x106c, 0x106e,
-    0x1070, 0x107c, 0x1080, 0x1082, 0x1084, 0x108a, 0x109e, 0x10a7,
-    0x10b0, 0x10b6, 0x10bb, 0x10c3, 0x10c9, 0x10cd, 0x10d4, 0x10d6,
-    0x10d7, 0x10d9, 0x10dc, 0x10dd, 0x10e3, 0x10e6, 0x10e7, 0x10ea,
-    0x10ed, 0x10ef, 0x10f3, 0x10f4, 0x10f7, 0x10fb, 0x10fc, 0x1100,
-    0x1101, 0x1104, 0x1109, 0x110a, 0x110e, 0x1110, 0x1112, 0x1115,
-    0x1125, 0x1129, 0x112a, 0x112f, 0x1131, 0x1135, 0x1137, 0x1139,
-    0x113a, 0x113d, 0x113f, 0x1142, 0x1143, 0x1147, 0x114b, 0x114d,
-    0x114e, 0x1157, 0x115a, 0x115b, 0x115f, 0x1161, 0x1163, 0x1164,
-    0x1169, 0x116a, 0x116c, 0x116d, 0x1170, 0x1174, 0x117e, 0x1180,
-    0x1183, 0x1184, 0x1185, 0x1186, 0x1187, 0x118a, 0x118b, 0x118c,
-    0x118d, 0x118f, 0x1194, 0x1195, 0x1196, 0x1198, 0x1199, 0x119e,
-    0x11a0, 0x11a1, 0x11a4, 0x11a5, 0x11a7, 0x11a8, 0x11aa, 0x11ac,
-    0x11ad, 0x11b1, 0x11b2, 0x11b3, 0x11b7, 0x11bb, 0x11c3, 0x11d4,
-    0x11e3, 0x11e9, 0x11ea, 0x11ed, 0x11f0, 0x11f1, 0x11f2, 0x11f3,
-    0x11f4, 0x11f5, 0x11fc, 0x11fd, 0x11ff, 0x1200, 0x1202, 0x1204,
-    0x1207, 0x120c, 0x120d, 0x120e, 0x1212, 0x1214, 0x1215, 0x1218,
-    0x121c, 0x1220, 0x1222, 0x1225, 0x122a, 0x1234, 0x1235, 0x123b,
-    0x1245, 0x1246, 0x124c, 0x1252, 0x1257, 0x125c, 0x1266, 0x1277,
-    0x1279, 0x127a, 0x127b, 0x1284, 0x1287, 0x128e, 0x1290, 0x1291,
-    0x1292, 0x1297, 0x129a, 0x129c, 0x129d, 0x129e, 0x12a7, 0x12a8,
-    0x12a9, 0x12ab, 0x12ae, 0x12b2, 0x12b3, 0x12b5, 0x12b9, 0x12bb,
-    0x12bd, 0x12c4, 0x12c6, 0x12c8, 0x12c9, 0x12ca, 0x12cd, 0x12cf,
-    0x12d2, 0x12d3, 0x12d8, 0x12db, 0x12de, 0x12e0, 0x12e1, 0x12e4,
-    0x12e7, 0x12ec, 0x12ed, 0x12ee, 0x12ef, 0x12f1, 0x12f4, 0x12fa,
-    0x12fc, 0x12fd, 0x12fe, 0x12ff, 0x1303, 0x1306, 0x1307, 0x1308,
-    0x130b, 0x130d, 0x130e, 0x1310, 0x1311, 0x1313, 0x1315, 0x1319,
-    0x131a, 0x131c, 0x131d, 0x131f, 0x1325, 0x1327, 0x1329, 0x132e,
-    0x1333, 0x1335, 0x1336, 0x1338, 0x133a, 0x133b, 0x133c, 0x1340,
-    0x1341, 0x1343, 0x1345, 0x1346, 0x1348, 0x1349, 0x134b, 0x134d,
-    0x134e, 0x1351, 0x1353, 0x1354, 0x1355, 0x1356, 0x135f, 0x1361,
-    0x1362, 0x1366, 0x136d, 0x136e, 0x136f, 0x1370, 0x1371, 0x1372,
-    0x1376, 0x1377, 0x1378, 0x137a, 0x137b, 0x137c, 0x137e, 0x1380,
-    0x1387, 0x138a, 0x138d, 0x138e, 0x138f, 0x1391, 0x1392, 0x1399,
-    0x139b, 0x139d, 0x139e, 0x13a3, 0x13a5, 0x13a6, 0x13a7, 0x13a8,
-    0x13a9, 0x13aa, 0x13ac, 0x13ad, 0x13af, 0x13b1, 0x13b5, 0x13bb,
-    0x13bd, 0x13bf, 0x13c7, 0x13c8, 0x13d0, 0x13d1, 0x13d5, 0x13d6,
-    0x13d7, 0x13da, 0x13db, 0x13dc, 0x13de, 0x13df, 0x13e0, 0x13e1,
-    0x13e3, 0x13e4, 0x13e6, 0x13e7, 0x13e8, 0x13ea, 0x13ec, 0x13ee,
-    0x13ef, 0x13f1, 0x13f2, 0x13ff, 0x1401, 0x1402, 0x1403, 0x1404,
-    0x1405, 0x1406, 0x1407, 0x1409, 0x1412, 0x1414, 0x1415, 0x1422,
-    0x1423, 0x1424, 0x142d, 0x1431, 0x1435, 0x1440, 0x1444, 0x1445,
-    0x1446, 0x144b, 0x144d, 0x144e, 0x1451, 0x1453, 0x145b, 0x145c,
-    0x145e, 0x145f, 0x1460, 0x1467, 0x1469, 0x146b, 0x1470, 0x1473,
-    0x1476, 0x1478, 0x147e, 0x1481, 0x1488, 0x148a, 0x148c, 0x148e,
-    0x148f, 0x1493, 0x1497, 0x1498, 0x1499, 0x149a, 0x149f, 0x14a3,
-    0x14a9, 0x14ab, 0x14ac, 0x14ae, 0x14af, 0x14b0, 0x14bd, 0x14c2,
-    0x14cb, 0x14ce, 0x14d2, 0x14db, 0x14dd, 0x14e0, 0x14f2, 0x14f5,
-    0x14f8, 0x14fb, 0x14fc, 0x14fe, 0x1501, 0x1504, 0x1509, 0x150c,
-    0x150d, 0x1515, 0x1516, 0x1517, 0x151a, 0x151e, 0x1520, 0x1521,
-    0x1522, 0x1524, 0x1525, 0x1526, 0x1527, 0x152b, 0x1532, 0x1533,
-    0x1534, 0x1539, 0x153a, 0x1545, 0x1546, 0x154b, 0x1552, 0x1555,
-    0x1559, 0x155f, 0x1568, 0x156a, 0x156c, 0x156e, 0x1572, 0x1579,
-    0x157a, 0x157e, 0x158b, 0x1590, 0x159b, 0x159d, 0x15a8, 0x15b5,
-    0x15b6, 0x15bd, 0x15bf, 0x15c6, 0x15cd, 0x15cf, 0x15d3, 0x15db,
-    0x15dc, 0x15e2, 0x15e5, 0x15f6, 0x15f7, 0x15f9, 0x15ff, 0x1604,
-    0x1609, 0x160f, 0x1617, 0x161a, 0x161e, 0x1622, 0x162c, 0x162e,
-    0x162f, 0x1635, 0x163e, 0x1647, 0x1649, 0x164a, 0x16be, 0x16bf,
-    0x16c0, 0x16c1, 0x16c2, 0x16c5, 0x16cc, 0x16d0, 0x16d6, 0x16d8,
-    0x16dc, 0x16e4, 0x16e5, 0x16e7, 0x16ea, 0x16f7, 0x1700, 0x1701,
-    0x1702, 0x1703, 0x1704, 0x1705, 0x1708, 0x1717, 0x1719, 0x171a,
-    0x171f, 0x1720, 0x1721, 0x1722, 0x1724, 0x1725, 0x1727, 0x1728,
-    0x1729, 0x172b, 0x1730, 0x1731, 0x1734, 0x1738, 0x1739, 0x173f,
-    0x1748, 0x1751, 0x1752, 0x1753, 0x1755, 0x175d, 0x175f, 0x1760,
-    0x1763, 0x1767, 0x1769, 0x176b, 0x176d, 0x1770, 0x1771, 0x1772,
-    0x1773, 0x1777, 0x1779, 0x1788, 0x178d, 0x1791, 0x1793, 0x1797,
-    0x179b, 0x17ab, 0x17ad, 0x17af, 0x17b1, 0x17b2, 0x17b3, 0x17b4,
-    0x17b6, 0x17b7, 0x17b8, 0x17b9, 0x17bd, 0x17bf, 0x17c2, 0x17c4,
-    0x17c5, 0x17c7, 0x17cc, 0x17cd, 0x17ce, 0x17d0, 0x17d2, 0x17d6,
-    0x17de, 0x17df, 0x17e0, 0x17e4, 0x17e5, 0x17e6, 0x17e7, 0x17e8,
-    0x17ee, 0x17f2, 0x17f3, 0x17f5, 0x17f9, 0x17fa, 0x17fb, 0x17fc,
-    0x17fd, 0x17fe, 0x17ff, 0x1802, 0x1807, 0x1808, 0x180b, 0x180e,
-    0x1810, 0x1812, 0x1814, 0x1817
+static const uint16_t unicode_list_6[] = {
+    0x0, 0x2, 0x4, 0x6, 0xe, 0xf, 0x12, 0x13,
+    0x14, 0x15, 0x16, 0x1c, 0x1d, 0x1e, 0x1f, 0x20,
+    0x23, 0x24, 0x25, 0x27, 0x29, 0x2a, 0x2b, 0x2c,
+    0x2f, 0x30, 0x34, 0x35, 0x37, 0x39, 0x3b, 0x3d,
+    0x3f, 0x41, 0x42, 0x48, 0x4b, 0x52, 0x53, 0x54,
+    0x55, 0x56, 0x58, 0x5a, 0x5c, 0x5d, 0x5e, 0x5f,
+    0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x68, 0x69,
+    0x6a, 0x6c, 0x6e, 0x71, 0x74, 0x75, 0x78, 0x79,
+    0x7b, 0x80, 0x81, 0x83, 0x84, 0x88, 0x89, 0x8d,
+    0x8e, 0x90, 0x92, 0x94, 0x96, 0x99, 0x9c, 0xa0,
+    0xa2, 0xa5, 0xa8, 0xaa, 0xab, 0xac, 0xad, 0xae,
+    0xaf, 0xb1, 0xb3, 0xb4, 0xba, 0xc4, 0xc8, 0xc9,
+    0xca, 0xcf, 0xd3, 0xd4, 0xd5, 0xd6, 0xdc, 0xdd,
+    0xdf, 0xe1, 0xe2, 0xe3, 0xe4, 0xe6, 0xe8, 0xeb,
+    0xed, 0xee, 0xef, 0xf2, 0xf3, 0xf4, 0xf6, 0xf8,
+    0xfd, 0xff, 0x103, 0x111, 0x112, 0x114, 0x117, 0x119,
+    0x11d, 0x11e, 0x11f, 0x121, 0x124, 0x126, 0x12a, 0x12b,
+    0x12d, 0x12e, 0x12f, 0x131, 0x132, 0x133, 0x13f, 0x141,
+    0x143, 0x148, 0x14c, 0x14d, 0x151, 0x153, 0x154, 0x15a,
+    0x15f, 0x161, 0x16a, 0x171, 0x17b, 0x17c, 0x180, 0x183,
+    0x184, 0x185, 0x18a, 0x18d, 0x192, 0x1a8, 0x1aa, 0x1ac,
+    0x1ad, 0x1ae, 0x1b1, 0x1b7, 0x1bf, 0x1c0, 0x1d4, 0x1db,
+    0x1df, 0x1eb, 0x1ec, 0x1f1, 0x1f2, 0x1f3, 0x1f8, 0x1fa,
+    0x200, 0x20b, 0x20c, 0x210, 0x217, 0x226, 0x244, 0x245,
+    0x246, 0x248, 0x249, 0x24a, 0x24b, 0x24d, 0x24e, 0x250,
+    0x252, 0x256, 0x259, 0x25a, 0x25b, 0x25f, 0x261, 0x267,
+    0x26a, 0x26d, 0x270, 0x271, 0x272, 0x273, 0x275, 0x276,
+    0x278, 0x279, 0x27a, 0x27b, 0x27c, 0x27d, 0x27e, 0x280,
+    0x281, 0x282, 0x285, 0x286, 0x287, 0x28a, 0x28d, 0x28e,
+    0x291, 0x292, 0x297, 0x29a, 0x29b, 0x29c, 0x29e, 0x2a0,
+    0x2a1, 0x2a5, 0x2a7, 0x2a9, 0x2aa, 0x2b0, 0x2b1, 0x2b4,
+    0x2b5, 0x2b6, 0x2b7, 0x2b8, 0x2ba, 0x2bb, 0x2bc, 0x2c0,
+    0x2c1, 0x2c2, 0x2c5, 0x2c9, 0x2cb, 0x2cc, 0x2ce, 0x2d0,
+    0x2d1, 0x2d4, 0x2d6, 0x2e0, 0x2e2, 0x2e5, 0x2e6, 0x2e9,
+    0x2f0, 0x2f2, 0x2f4, 0x2f5, 0x2f8, 0x2fa, 0x2fb, 0x2fd,
+    0x2fe, 0x2ff, 0x300, 0x301, 0x302, 0x304, 0x305, 0x306,
+    0x307, 0x308, 0x30b, 0x30c, 0x30d, 0x30f, 0x312, 0x313,
+    0x316, 0x317, 0x31b, 0x31c, 0x31d, 0x31e, 0x31f, 0x320,
+    0x322, 0x325, 0x329, 0x32d, 0x32e, 0x330, 0x332, 0x333,
+    0x335, 0x338, 0x33b, 0x33c, 0x33d, 0x33e, 0x33f, 0x340,
+    0x342, 0x344, 0x345, 0x346, 0x347, 0x348, 0x34f, 0x351,
+    0x352, 0x355, 0x356, 0x359, 0x35b, 0x361, 0x363, 0x366,
+    0x36a, 0x36c, 0x36e, 0x36f, 0x374, 0x377, 0x382, 0x384,
+    0x386, 0x387, 0x38d, 0x395, 0x398, 0x3a0, 0x3a2, 0x3a3,
+    0x3a4, 0x3a5, 0x3a6, 0x3a7, 0x3a8, 0x3ad, 0x3ae, 0x3af,
+    0x3b0, 0x3b1, 0x3b2, 0x3b6, 0x3b7, 0x3b8, 0x3c3, 0x3c4,
+    0x3c8, 0x3cc, 0x3ce, 0x3d0, 0x3d5, 0x3d7, 0x3db, 0x3dd,
+    0x3e4, 0x3e9, 0x3f5, 0x3fe, 0x3ff, 0x403, 0x404, 0x405,
+    0x40a, 0x40b, 0x40d, 0x412, 0x414, 0x415, 0x41a, 0x41b,
+    0x41c, 0x41e, 0x41f, 0x422, 0x425, 0x426, 0x428, 0x42b,
+    0x42f, 0x433, 0x43e, 0x43f, 0x440, 0x443, 0x444, 0x446,
+    0x448, 0x44a, 0x44c, 0x44d, 0x44e, 0x44f, 0x453, 0x454,
+    0x456, 0x457, 0x458, 0x45a, 0x45b, 0x45c, 0x45f, 0x461,
+    0x463, 0x464, 0x465, 0x466, 0x467, 0x468, 0x469, 0x46b,
+    0x46c, 0x46e, 0x470, 0x473, 0x474, 0x475, 0x476, 0x478,
+    0x479, 0x47a, 0x47c, 0x47d, 0x47f, 0x484, 0x487, 0x489,
+    0x48a, 0x48b, 0x48e, 0x490, 0x491, 0x492, 0x49a, 0x49d,
+    0x49f, 0x4a2, 0x4a4, 0x4a7, 0x4a8, 0x4aa, 0x4ab, 0x4ad,
+    0x4ae, 0x4b3, 0x4bb, 0x4c0, 0x4c4, 0x4c6, 0x4c7, 0x4cd,
+    0x4ce, 0x4cf, 0x4d0, 0x4d1, 0x4d2, 0x4d6, 0x4d9, 0x4db,
+    0x4dc, 0x4dd, 0x4de, 0x4e0, 0x4e4, 0x4e5
 };
 
-static const uint8_t glyph_id_ofs_list_8[] = {
-    0, 1, 0, 0, 2, 3, 4, 5,
-    6, 7, 0, 8, 9, 0, 0, 10,
-    0, 0, 11, 12, 0, 0, 13, 14,
-    0, 0, 0, 0, 15, 16, 17, 0,
-    0, 0, 18, 0, 19, 0, 20, 21,
-    22, 23, 24, 25, 26, 27, 28, 0,
-    29, 30, 0, 0, 31, 0, 32, 0,
-    0, 0, 0, 33, 34, 35, 36, 37,
-    38, 39, 40, 0, 41, 0, 42, 43,
-    44, 0, 45, 0, 46, 47, 0, 48,
-    0, 0, 0, 49, 0, 0, 50, 51,
-    52, 53, 54, 0, 0, 0, 55, 56,
-    0, 57, 0, 58, 59, 60, 61, 0,
-    62, 0, 0, 63, 0, 64, 65, 0,
-    0, 66, 67, 68, 69, 0, 70, 0,
-    71, 0, 72, 73, 0, 74, 75, 76,
-    77, 78, 0, 0, 79, 0, 0, 80,
-    0, 0, 81, 0, 0, 0, 82, 83,
-    0, 84, 0, 0, 85, 0, 0, 0,
-    0, 0, 86, 0, 87, 88, 89, 0,
-    0, 90, 0, 0, 0, 0, 91, 0,
-    92, 0, 93, 94, 0, 95, 96, 0,
-    0, 97, 0, 0, 98, 99, 0, 100,
-    101, 0, 0, 0, 102, 103, 104, 105,
-    106, 107, 0, 0, 108, 0, 109, 0,
-    110, 111, 112, 113, 114, 115, 116, 0,
-    117, 118, 119, 120, 121, 122, 123, 124,
-    125
+static const uint8_t glyph_id_ofs_list_7[] = {
+    0, 1, 2, 3, 0, 4, 5, 6,
+    7, 8, 9, 10, 11, 12, 13, 14,
+    15, 0, 16, 17, 18, 19, 20, 0,
+    21, 22, 23, 0, 0, 0, 24, 0,
+    25, 26, 0, 27, 0, 28, 29, 30,
+    0, 31, 32, 33, 34, 35, 36, 37,
+    38, 0, 39, 40, 41, 0, 0, 0,
+    42, 0, 43, 44, 45, 46, 47, 0,
+    48, 0, 0, 49, 50, 51, 52, 0,
+    53, 54, 55, 56, 57, 0, 58, 59,
+    0, 60, 61, 0, 0, 62, 63, 0,
+    64, 65, 0, 66, 0, 67, 0, 0,
+    68, 0, 0, 69, 0, 70, 0, 71,
+    72, 0, 0, 0, 0, 73, 0, 74,
+    75, 76, 77, 78, 79, 80, 81, 0,
+    82, 83, 0, 0, 0, 0, 0, 84,
+    0, 85, 0, 86, 0, 87, 0, 0,
+    0, 0, 0, 0, 0, 0, 88, 89,
+    90, 0, 91, 92, 93, 94, 0, 0,
+    95, 96, 97, 0, 0, 98, 0, 99,
+    0, 100, 0, 101, 0, 0, 0, 0,
+    102, 103, 0, 104, 105, 106, 0, 107,
+    0, 108, 109, 110, 0, 0, 111, 112,
+    113, 0, 114, 0, 0, 0, 0, 0,
+    115, 116, 0, 117, 118, 119, 120, 121,
+    122, 123, 124, 0, 125, 0, 126, 0,
+    127, 128, 0, 0, 0, 129, 0, 0,
+    130, 0, 131, 0, 132, 133, 134, 135,
+    0, 136, 0, 137, 138, 139, 140, 0,
+    0, 141, 142, 143, 144, 145, 146, 147,
+    148, 149, 150, 0, 151, 0, 152, 153,
+    0, 154, 155, 156, 157
 };
 
-static const uint16_t unicode_list_9[] = {
-    0x0, 0x1, 0x3, 0x5, 0x7, 0xa, 0xc, 0xd,
-    0x10, 0x11, 0x15, 0x16, 0x1b, 0x1e, 0x1f, 0x23,
-    0x29, 0x2c, 0x2f, 0x30, 0x33, 0x35, 0x38, 0x3a,
-    0x3b, 0x3c, 0x40, 0x42, 0x44, 0x45, 0x46, 0x47,
-    0x48, 0x49, 0x4a, 0x4b, 0x4d, 0x4e, 0x51, 0x52,
-    0x55, 0x56, 0x59, 0x5c, 0x5f, 0x66, 0x67, 0x6b,
-    0x6c, 0x6d, 0x6e, 0x72, 0x73, 0x76, 0x78, 0x7d,
-    0x7f, 0x80, 0x84, 0x85, 0x87, 0x88, 0x8b, 0x8d,
-    0x92, 0x93, 0x95, 0x96, 0x98, 0x9a, 0x9e, 0xa0,
-    0xa2, 0xac, 0xb1, 0xb3, 0xb4, 0xb5, 0xb7, 0xb8,
-    0xbb, 0xbe, 0xc1, 0xc4, 0xc7, 0xc8, 0xca, 0xcb,
-    0xcc, 0xd0, 0xd2, 0xd4, 0xd6, 0xd9, 0xdb, 0xdf,
-    0xe1, 0xe3, 0xea, 0xeb, 0xf0, 0xf4, 0xf5, 0xfb,
-    0xfd, 0xff, 0x103, 0x106, 0x112, 0x115, 0x119, 0x125,
-    0x127, 0x12a, 0x12c, 0x12d, 0x12e, 0x130, 0x136, 0x137,
-    0x13f, 0x143, 0x146, 0x149, 0x14c, 0x14d, 0x14e, 0x151,
-    0x156, 0x158, 0x159, 0x15b, 0x15d, 0x161, 0x162, 0x164,
-    0x168, 0x169, 0x16a, 0x16e, 0x172, 0x176, 0x178, 0x17a,
-    0x17b, 0x17c, 0x17f, 0x181, 0x185, 0x186, 0x187, 0x188,
-    0x189, 0x18b, 0x18c, 0x18d, 0x18f, 0x190, 0x191, 0x192,
-    0x19b, 0x1a9, 0x1ad, 0x1b0, 0x1b6, 0x1ba, 0x1bb, 0x1bc,
-    0x1c7, 0x1cb, 0x1d0, 0x1d1, 0x1d2, 0x1d4, 0x1d6, 0x1d8,
-    0x1dc, 0x1e5, 0x1ed, 0x1ee, 0x1f6, 0x1ff, 0x203, 0x205,
-    0x206, 0x209, 0x217, 0x219, 0x21b, 0x221, 0x223, 0x224,
-    0x22b, 0x22f, 0x230, 0x233, 0x234, 0x243, 0x248, 0x24c,
-    0x24e, 0x25b, 0x260, 0x264, 0x267, 0x269, 0x270, 0x278,
-    0x279, 0x27c, 0x285, 0x287, 0x288, 0x295, 0x296, 0x297,
-    0x2b4, 0x2b8, 0x2c1, 0x2c2, 0x2dc, 0x2e0, 0x2f3, 0x2f6,
-    0x305, 0x312, 0x314, 0x316, 0x317, 0x31c, 0x31d, 0x31f,
-    0x323, 0x325, 0x326, 0x327, 0x32c, 0x330, 0x331, 0x335,
-    0x339, 0x33b, 0x33c, 0x33d, 0x340, 0x343, 0x344, 0x346,
-    0x352, 0x353, 0x354, 0x355, 0x356, 0x35a, 0x35e, 0x35f,
-    0x360, 0x362, 0x363, 0x364, 0x367, 0x368, 0x369, 0x36a,
-    0x36f, 0x371, 0x37f, 0x380, 0x382, 0x383, 0x384, 0x386,
-    0x38b, 0x38d, 0x38e, 0x38f, 0x390, 0x393, 0x394, 0x396,
-    0x39e, 0x3a0, 0x3a1, 0x3a4, 0x3b0, 0x3b1, 0x3b3, 0x3b7,
-    0x3ba, 0x3bc, 0x3bd, 0x3bf, 0x3c0, 0x3c1, 0x3c3, 0x3cd,
-    0x3d6, 0x3d7, 0x3d8, 0x3dd, 0x3ec, 0x3f1, 0x3f3, 0x3f5,
-    0x3fc, 0x405, 0x40b, 0x40d, 0x40e, 0x40f, 0x415, 0x41a,
-    0x41f, 0x424, 0x42b, 0x431, 0x436, 0x43b, 0x443, 0x447,
-    0x44c, 0x453, 0x45c, 0x460, 0x46a, 0x471, 0x475, 0x47b,
-    0x47c, 0x481, 0x487, 0x48c, 0x48e, 0x495, 0x4ad, 0x4c4,
-    0x4d1, 0x4d7, 0x4d8, 0x4dc, 0x4dd, 0x4de, 0x4df, 0x4e0,
-    0x4e1, 0x4e2, 0x4e4, 0x4e6, 0x4e8, 0x4e9, 0x4ee, 0x4ef,
-    0x4f3, 0x4f4, 0x4f9, 0x4fd, 0x500, 0x502, 0x504, 0x506,
-    0x508, 0x509, 0x50d, 0x50e, 0x510, 0x515, 0x516, 0x519,
-    0x51c, 0x520, 0x521, 0x525, 0x52b, 0x531, 0x532, 0x534,
-    0x536, 0x539, 0x553, 0x556, 0x557, 0x55b, 0x55d, 0x55e,
-    0x55f, 0x560, 0x568, 0x569, 0x56a, 0x56b, 0x56f, 0x574,
-    0x575, 0x577, 0x579, 0x57e, 0x580, 0x584, 0x585, 0x587,
-    0x588, 0x58f, 0x590, 0x593, 0x594, 0x595, 0x596, 0x597,
-    0x598, 0x599, 0x59a, 0x59b, 0x59f, 0x5a1, 0x5a2, 0x5a3,
-    0x5a8, 0x5aa, 0x5ab, 0x5b1, 0x5b5, 0x5bc, 0x5bd, 0x5be,
-    0x5c2, 0x5c3, 0x5c4, 0x5c5, 0x5c8, 0x5c9, 0x5cc, 0x5d0,
-    0x5d1, 0x5d2, 0x5d3, 0x5d5, 0x5d8, 0x5db, 0x5de, 0x5df,
-    0x5e0, 0x5e5, 0x5e6, 0x5f7, 0x5fe, 0x607, 0x613, 0x614,
-    0x616, 0x61b, 0x625, 0x62b, 0x62e, 0x630, 0x632, 0x638,
-    0x63c, 0x63d, 0x640, 0x642, 0x647, 0x648, 0x649, 0x64c,
-    0x64d, 0x650, 0x652, 0x655, 0x656, 0x657, 0x659, 0x65a,
-    0x65e, 0x661, 0x662, 0x667, 0x669, 0x66f, 0x670, 0x671,
-    0x674, 0x676, 0x677, 0x678, 0x680, 0x685, 0x687, 0x68a,
-    0x68c, 0x68e, 0x690, 0x694, 0x697, 0x699, 0x6a4, 0x6aa,
-    0x6ac, 0x6ad, 0x6ae, 0x6b0, 0x6b5, 0x6b6, 0x6b7, 0x6c1,
-    0x6c2, 0x6c9, 0x6cb, 0x6cc, 0x6cd, 0x6cf, 0x6d1, 0x6d2,
-    0x6d3, 0x6d5, 0x6d6, 0x6d7, 0x6da, 0x6db, 0x6dc, 0x6dd,
-    0x6e3, 0x6e7, 0x6e8, 0x6eb, 0x6f9, 0x6fc, 0x6fe, 0x700,
-    0x701, 0x702, 0x703, 0x705, 0x706, 0x709, 0x714, 0x717,
-    0x71d, 0x725, 0x727, 0x728, 0x72a, 0x72d, 0x72e, 0x72f,
-    0x732, 0x735, 0x737, 0x73f, 0x743, 0x745, 0x747, 0x74e,
-    0x74f, 0x750, 0x751, 0x761, 0x779, 0x77f, 0x783, 0x787,
-    0x78a, 0x78d, 0x795, 0x796, 0x79b, 0x79d, 0x79e, 0x7a6,
-    0x7ab, 0x7b6, 0x7b8, 0x7ba, 0x7bf, 0x7c0, 0x7c1, 0x7c3,
-    0x7c6, 0x7cc, 0x7cf, 0x7d1, 0x7d3, 0x7d4, 0x7d6, 0x7d7,
-    0x7d8, 0x7d9, 0x7da, 0x7dc, 0x7de, 0x7df, 0x7e2, 0x7e5,
-    0x7e7, 0x7ec, 0x7fb, 0x800, 0x801, 0x802, 0x803, 0x80c,
-    0x80d, 0x811, 0x816, 0x819, 0x81b, 0x81d, 0x81f, 0x820,
-    0x82a, 0x82d, 0x836, 0x838, 0x83b, 0x83d, 0x83e, 0x840,
-    0x841, 0x844, 0x846, 0x847, 0x848, 0x84a, 0x84b, 0x84c,
-    0x852, 0x853, 0x854, 0x855, 0x856, 0x857, 0x858, 0x859,
-    0x85a, 0x85b, 0x85c, 0x85f, 0x860, 0x863, 0x864, 0x865,
-    0x869, 0x86a, 0x86b, 0x86c, 0x86e, 0x86f, 0x870, 0x871,
-    0x874, 0x879, 0x87b, 0x87c, 0x87f, 0x882, 0x885, 0x889,
-    0x88a, 0x88b, 0x88d, 0x88e, 0x88f, 0x891, 0x892, 0x897,
-    0x898, 0x89b, 0x8a0, 0x8a3, 0x8a6, 0x8a8, 0x8aa, 0x8ad,
-    0x8b3, 0x8b7, 0x8bf, 0x8c0, 0x8c2, 0x8c6, 0x8c7, 0x8c9,
-    0x8cb, 0x8cc, 0x8d0, 0x8d2, 0x8d7, 0x8da, 0x8db, 0x8df,
-    0x8e5, 0x8e6, 0x8e7, 0x8ea, 0x8f3, 0x8f4, 0x903, 0x905,
-    0x912, 0x916, 0x91f, 0x922, 0x924, 0x925, 0x929, 0x92b,
-    0x92d, 0x92e, 0x92f, 0x932, 0x935, 0x938, 0x93a, 0x93d,
-    0x94b, 0x955, 0x958, 0x959, 0x95b, 0x966, 0x969, 0x96d,
-    0x96f, 0x970, 0x971, 0x974, 0x975, 0x976, 0x977, 0x978,
-    0x979, 0x97b, 0x97d, 0x97e, 0x982, 0x986, 0x98c, 0x996,
-    0x998, 0x999, 0x99b, 0x99f, 0x9a5, 0x9a8, 0x9b0, 0x9b1,
-    0x9b2, 0x9c0, 0x9c6, 0x9cd, 0x9d0, 0x9d3, 0x9d4, 0x9d6,
-    0x9dc, 0x9dd, 0x9de, 0x9df, 0x9e1, 0x9e3, 0x9e7, 0x9e8,
-    0x9ea, 0x9ee, 0x9f7, 0x9f8, 0xa01, 0xa02, 0xa08, 0xa09,
-    0xa0a, 0xa0c, 0xa0d, 0xa0f, 0xa12, 0xa13, 0xa20, 0xa24,
-    0xa26, 0xa27, 0xa2b, 0xa2c, 0xa33, 0xa34, 0xa35, 0xa38,
-    0xa39, 0xa46, 0xa47, 0xa49, 0xa4c, 0xa4e, 0xa50, 0xa51,
-    0xa53, 0xa54, 0xa57, 0xa5a, 0xa5c, 0xa62, 0xa74, 0xa82,
-    0xa83, 0xa89, 0xa8a, 0xa8c, 0xa8e, 0xa90, 0xa92, 0xa93,
-    0xa94, 0xa95, 0xa9a, 0xa9d, 0xa9f, 0xaa4, 0xaa5, 0xaa6,
-    0xaa7, 0xaa8, 0xab0, 0xab3, 0xab4, 0xab8, 0xab9, 0xabb,
-    0xabd, 0xabe, 0xabf, 0xac4, 0xac6, 0xaca, 0xacc, 0xace,
-    0xad4, 0xad7, 0xad9, 0xadb, 0xade, 0xadf, 0xae0, 0xae1,
-    0xae2, 0xae3, 0xae5, 0xae7, 0xaec, 0xaee, 0xaf3, 0xaf5,
-    0xaf7, 0xaf9, 0xafc, 0xafd, 0xafe, 0xb01, 0xb04, 0xb11,
-    0xb12, 0xb13, 0xb14, 0xb15, 0xb1e, 0xb23, 0xb28, 0xb2e,
-    0xb30, 0xb33, 0xb34, 0xb35, 0xb38, 0xb3a, 0xb3e, 0xb3f,
-    0xb41, 0xb42, 0xb43, 0xb46, 0xb48, 0xb4a, 0xb4c, 0xb4e,
-    0xb57, 0xb58, 0xb59, 0xb5a, 0xb5b, 0xb5d, 0xb60, 0xb65,
-    0xb68, 0xb6c, 0xb70, 0xb71, 0xb72, 0xb77, 0xb7b, 0xb7c,
-    0xb80, 0xb8f, 0xb93, 0xb99, 0xb9b, 0xb9e, 0xba1, 0xba8,
-    0xbac, 0xbb3, 0xbba, 0xbc5, 0xbcb, 0xbda, 0xbdb, 0xbe1,
-    0xbe3, 0xbe5, 0xbe7, 0xbe8, 0xbed, 0xbef, 0xbf0, 0xbf5,
-    0xbfa, 0xbfd, 0xbfe, 0xc01, 0xc02, 0xc03, 0xc04, 0xc05,
-    0xc07, 0xc09, 0xc0c, 0xc0f, 0xc14, 0xc16, 0xc1e, 0xc1f,
-    0xc21, 0xc23, 0xc25, 0xc27, 0xc28, 0xc2b, 0xc2c, 0xc2e,
-    0xc31, 0xc36, 0xc41, 0xc4b, 0xc4e, 0xc5a, 0xc60, 0xc62,
-    0xc64, 0xc65, 0xc67, 0xc68, 0xc6a, 0xc6d, 0xc70, 0xc72,
-    0xc74, 0xc78, 0xc79, 0xc7c, 0xc7f, 0xc84, 0xc86, 0xc8a,
-    0xc8b, 0xc8d, 0xc8e, 0xc90, 0xc92, 0xc94, 0xc96, 0xc97,
-    0xc9f, 0xca2, 0xca4, 0xca5, 0xca7, 0xca9, 0xcaa, 0xcad,
-    0xcb2, 0xcb4, 0xcb5, 0xcbe, 0xcc1, 0xcc5, 0xcc7, 0xcca,
-    0xcda, 0xcde, 0xce2, 0xce3, 0xce4, 0xce6, 0xce9, 0xced,
-    0xcf8, 0xd14, 0xd17, 0xd1b, 0xd1d, 0xd1e, 0xd1f, 0xd20,
-    0xd21, 0xd26, 0xd27, 0xd28, 0xd2a, 0xd2b, 0xd2f, 0xd34,
-    0xd38, 0xd39, 0xd3c, 0xd3d, 0xd3e, 0xd3f, 0xd43, 0xd44,
-    0xd46, 0xd47, 0xd4a, 0xd4c, 0xd4d, 0xd4f, 0xd5a, 0xd66,
-    0xd72, 0xd78, 0xd80, 0xd85, 0xd86, 0xd87, 0xd8a, 0xd8c,
-    0xd8d, 0xd96, 0xda0, 0xda1, 0xda6, 0xdad, 0xdaf, 0xdb1,
-    0xdb2, 0xdb6, 0xdb8, 0xdc0, 0xdc2, 0xdc5, 0xdc7, 0xdcb,
-    0xdcc, 0xdcd, 0xdcf, 0xdd1, 0xdd2, 0xdd3, 0xdd5, 0xdda,
-    0xde1, 0xde3, 0xde5, 0xdec, 0xdf0, 0xdf2, 0xdf3, 0xdf4,
-    0xdf6, 0xdf7, 0xdf8, 0xdf9, 0xdfb, 0xdfd, 0xdff, 0xe01,
-    0xe02, 0xe03, 0xe04, 0xe07, 0xe09, 0xe18, 0xe1c, 0xe1e,
-    0xe20, 0xe25, 0xe27, 0xe2c, 0xe37, 0xe3a, 0xe3b, 0xe3c,
-    0xe3e, 0xe43, 0xe48, 0xe49, 0xe4e, 0xe4f, 0xe50, 0xe51,
-    0xe52, 0xe53, 0xe54, 0xe58, 0xe5b, 0xe5f, 0xe68, 0xe6e,
-    0xe73, 0xe78, 0xe7a, 0xe80, 0xe84, 0xe89, 0xe8d, 0xe91,
-    0xe95, 0xe98, 0xe9e, 0xea3, 0xea5, 0xeaa, 0xeb2, 0xeb3,
-    0xeb6, 0xebc, 0xebd, 0xec6, 0xed5, 0xee0, 0xee6, 0xee7,
-    0xef4, 0xf1a, 0xf1b, 0xf22, 0xf23, 0xf24, 0xf30, 0xf38,
-    0xf39, 0xf3c, 0xf3e, 0xf3f, 0xf43, 0xf44, 0xf45, 0xf46,
-    0xf4c, 0xf51, 0xf55, 0xf58, 0xf5a, 0xf5c, 0xf60, 0xf63,
-    0xf64, 0xf65, 0xf68, 0xf6c, 0xf6e, 0xf6f, 0xf71, 0xf73,
-    0xf74, 0xf7c, 0xf7d, 0xf7e, 0xf80, 0xf83, 0xf86, 0xf87,
-    0xf96, 0xfa2, 0xfb1, 0xfc7, 0xfc9, 0xfce, 0xfd2, 0xfd6,
-    0x1015, 0x1055, 0x1081, 0x10e2, 0x10ee, 0x1129, 0x1142
+static const uint16_t unicode_list_8[] = {
+    0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x8, 0x9,
+    0xd, 0xe, 0x15, 0x17, 0x18, 0x1a, 0x1c, 0x21,
+    0x22, 0x24, 0x2a, 0x2b, 0x2c, 0x2f, 0x36, 0x3b,
+    0x3d, 0x3e, 0x3f, 0x42, 0x45, 0x47, 0x49, 0x4a,
+    0x4b, 0x4c, 0x4e, 0x52, 0x57, 0x59, 0x5a, 0x5c,
+    0x5e, 0x5f, 0x61, 0x64, 0x65, 0x6b, 0x70, 0x71,
+    0x77, 0x7c, 0x7f, 0x80, 0x81, 0x82, 0x85, 0x87,
+    0x88, 0x89, 0x90, 0x91, 0x92, 0x93, 0x96, 0x97,
+    0x99, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, 0xa2, 0xa3,
+    0xa4, 0xa5, 0xa6, 0xaa, 0xac, 0xaf, 0xb3, 0xb4,
+    0xb7, 0xb8, 0xba, 0xc2, 0xcc, 0xce, 0xd0, 0xd2,
+    0xd4, 0xd6, 0xd8, 0xd9, 0xdf, 0xe0, 0xe4, 0xe7,
+    0xe8, 0xec, 0xed, 0xee, 0xef, 0xf1, 0xf7, 0xf8,
+    0xfa, 0xfc, 0xfe, 0xff, 0x100, 0x101, 0x103, 0x105,
+    0x106, 0x107, 0x10a, 0x10d, 0x10e, 0x110, 0x112, 0x118,
+    0x119, 0x11b, 0x11c, 0x123, 0x124, 0x127, 0x129, 0x12a,
+    0x133, 0x136, 0x139, 0x13a, 0x13e, 0x13f, 0x142, 0x147,
+    0x148, 0x14c, 0x14d, 0x14f, 0x151, 0x154, 0x156, 0x15a,
+    0x167, 0x168, 0x169, 0x16f, 0x172, 0x173, 0x174, 0x177,
+    0x17d, 0x17f, 0x183, 0x184, 0x185, 0x186, 0x187, 0x18c,
+    0x191, 0x196, 0x197, 0x1a0, 0x1a1, 0x1a9, 0x1aa, 0x1ae,
+    0x1be, 0x1ca, 0x1d2, 0x1d7, 0x1e5, 0x1ef, 0x1f2, 0x1f5,
+    0x1f6, 0x1f8, 0x1f9, 0x1fa, 0x1fb, 0x1fc, 0x1fd, 0x1ff,
+    0x206, 0x208, 0x20b, 0x20c, 0x20f, 0x210, 0x214, 0x215,
+    0x218, 0x219, 0x21a, 0x21e, 0x21f, 0x221, 0x223, 0x224,
+    0x225, 0x237, 0x23a, 0x23e, 0x243, 0x244, 0x245, 0x247,
+    0x248, 0x249, 0x24a, 0x24b, 0x24e, 0x254, 0x255, 0x256,
+    0x259, 0x25b, 0x25d, 0x262, 0x265, 0x267, 0x268, 0x269,
+    0x26a, 0x26b, 0x26c, 0x272, 0x275, 0x276, 0x277, 0x278,
+    0x279, 0x27a, 0x27b, 0x27c, 0x27f, 0x281, 0x283, 0x284,
+    0x285, 0x286, 0x288, 0x28a, 0x28e, 0x291, 0x292, 0x296,
+    0x297, 0x29d, 0x29e, 0x29f, 0x2a0, 0x2a1, 0x2a6, 0x2a7,
+    0x2ad, 0x2ae, 0x2b6, 0x2bb, 0x2bc, 0x2bd, 0x2be, 0x2bf,
+    0x2c1, 0x2c2, 0x2c4, 0x2c6, 0x2c8, 0x2c9, 0x2cd, 0x2cf,
+    0x2d3, 0x2dd, 0x2de, 0x2e6, 0x2e9, 0x2ea, 0x2ed, 0x2ef,
+    0x2f0, 0x2f3, 0x2f4, 0x2f5, 0x2f8, 0x2fa, 0x2fb, 0x2ff,
+    0x308, 0x30a, 0x30f, 0x313, 0x314, 0x315, 0x318, 0x31b,
+    0x31d, 0x321, 0x322, 0x326, 0x328, 0x32c, 0x330, 0x334,
+    0x339, 0x33b, 0x33c, 0x33f, 0x345, 0x34b, 0x350, 0x35f,
+    0x367, 0x368, 0x36c, 0x36f, 0x373, 0x379, 0x380, 0x386,
+    0x387, 0x399, 0x39b, 0x39c, 0x39e, 0x3a0, 0x3a4, 0x3ad,
+    0x3ae, 0x3b4, 0x3b5, 0x3b9, 0x3ba, 0x3c3, 0x3c4, 0x3d7,
+    0x3dc, 0x3e0, 0x3ec, 0x3f0, 0x3ff, 0x406, 0x407, 0x409,
+    0x40b, 0x40e, 0x411, 0x414, 0x41d, 0x41f, 0x422, 0x428,
+    0x42a, 0x42f, 0x430, 0x431, 0x434, 0x435, 0x437, 0x43a,
+    0x43f, 0x440, 0x442, 0x444, 0x445, 0x446, 0x448, 0x449,
+    0x44a, 0x44c, 0x44f, 0x452, 0x453, 0x454, 0x455, 0x457,
+    0x45c, 0x45d, 0x45f, 0x462, 0x463, 0x464, 0x466, 0x469,
+    0x46a, 0x46c, 0x46f, 0x470, 0x471, 0x472, 0x473, 0x475,
+    0x47b, 0x47d, 0x480, 0x48e, 0x48f, 0x491, 0x493, 0x494,
+    0x498, 0x49c, 0x49d, 0x49e, 0x49f, 0x4a1, 0x4a2, 0x4a3,
+    0x4a5, 0x4a8, 0x4ad, 0x4ae, 0x4b1, 0x4b2, 0x4b4, 0x4b9,
+    0x4be, 0x4bf, 0x4c0, 0x4c3, 0x4c4, 0x4c5, 0x4c6, 0x4c9,
+    0x4ca, 0x4cd, 0x4d4, 0x4d6, 0x4d9, 0x4e1, 0x4e5, 0x4e6,
+    0x4eb, 0x4ec, 0x4ed, 0x4ee, 0x4ef, 0x4f2, 0x4f3, 0x4f5,
+    0x4f7, 0x4f8, 0x4fe, 0x500, 0x503, 0x507, 0x514, 0x516,
+    0x51a, 0x51c, 0x51e, 0x51f, 0x520, 0x521, 0x522, 0x523,
+    0x524, 0x527, 0x52c, 0x52e, 0x533, 0x537, 0x53a, 0x53b,
+    0x53e, 0x540, 0x544, 0x54c, 0x54d, 0x54f, 0x551, 0x557,
+    0x55b, 0x561, 0x564, 0x565, 0x570, 0x575, 0x57d, 0x582,
+    0x585, 0x58f, 0x590, 0x591, 0x592, 0x595, 0x59a, 0x5ad,
+    0x5b5, 0x5b6, 0x5c5, 0x5cd, 0x5ce, 0x5d0, 0x5d3, 0x5d9,
+    0x5dc, 0x5dd, 0x5e4, 0x5e7, 0x5ed, 0x5ef, 0x5f1, 0x5f3,
+    0x5f7, 0x5fb, 0x5fc, 0x5fe, 0x601, 0x604, 0x606, 0x60c,
+    0x624, 0x631, 0x632, 0x64d, 0x64f, 0x652, 0x65b, 0x66b,
+    0x66c, 0x66e, 0x66f, 0x670, 0x672, 0x673, 0x674, 0x675,
+    0x676, 0x677, 0x678, 0x67a, 0x67d, 0x67e, 0x67f, 0x680,
+    0x681, 0x684, 0x685, 0x687, 0x68b, 0x68c, 0x68e, 0x690,
+    0x695, 0x698, 0x69b, 0x69c, 0x69e, 0x69f, 0x6a0, 0x6a2,
+    0x6a3, 0x6a4, 0x6a6, 0x6a7, 0x6aa, 0x6ae, 0x6b0, 0x6b2,
+    0x6b3, 0x6b4, 0x6b5, 0x6b6, 0x6b7, 0x6b8, 0x6b9, 0x6bb,
+    0x6bc, 0x6bd, 0x6be, 0x6bf, 0x6c0, 0x6c1, 0x6c5, 0x6c6,
+    0x6cb, 0x6ce, 0x6cf, 0x6d0, 0x6d1, 0x6d3, 0x6d4, 0x6d8,
+    0x6d9, 0x6da, 0x6dd, 0x6df, 0x6e0, 0x6e1, 0x6e2, 0x6e7,
+    0x6eb, 0x6ed, 0x6ee, 0x6f8, 0x6f9, 0x6fa, 0x6fc, 0x6ff,
+    0x700, 0x703, 0x709, 0x70b, 0x713, 0x714, 0x715, 0x716,
+    0x717, 0x71a, 0x71c, 0x71f, 0x721, 0x724, 0x725, 0x72a,
+    0x72c, 0x72f, 0x730, 0x731, 0x733, 0x735, 0x737, 0x738,
+    0x73d, 0x73f, 0x740, 0x742, 0x747, 0x74c, 0x74f, 0x753,
+    0x754, 0x755, 0x756, 0x757, 0x758, 0x759, 0x75a, 0x75b,
+    0x75c, 0x75d, 0x760, 0x763, 0x764, 0x765, 0x766, 0x769,
+    0x76a, 0x76b, 0x76c, 0x770, 0x774, 0x779, 0x77b, 0x77c,
+    0x77e, 0x780, 0x781, 0x789, 0x78a, 0x78c, 0x794, 0x795,
+    0x79a, 0x79c, 0x79d, 0x7a3, 0x7a7, 0x7a8, 0x7ab, 0x7ac,
+    0x7af, 0x7b1, 0x7b2, 0x7b3, 0x7b4, 0x7b5, 0x7b6, 0x7b7,
+    0x7bd, 0x7be, 0x7c4, 0x7c6, 0x7c7, 0x7c8, 0x7cc, 0x7ce,
+    0x7d0, 0x7d2, 0x7d3, 0x7d8, 0x7da, 0x7dc, 0x7df, 0x7e6,
+    0x7ed, 0x7f4, 0x7fc, 0x7ff, 0x800, 0x801, 0x803, 0x805,
+    0x808, 0x80b, 0x816, 0x81d, 0x81e, 0x821, 0x822, 0x829,
+    0x82f, 0x831, 0x836, 0x839, 0x83f, 0x841, 0x842, 0x844,
+    0x848, 0x849, 0x84f, 0x858, 0x859, 0x862, 0x865, 0x866,
+    0x867, 0x873, 0x876, 0x878, 0x884, 0x886, 0x887, 0x88a,
+    0x88f, 0x89d, 0x8b4, 0x8b8, 0x8d2, 0x8e0, 0x8e8, 0x8f6,
+    0x8f8, 0x8f9, 0x8fc, 0x8fd, 0x900, 0x901, 0x902, 0x903,
+    0x904, 0x906, 0x909, 0x90a, 0x90c, 0x90d, 0x90e, 0x90f,
+    0x912, 0x918, 0x919, 0x91c, 0x91d, 0x91e, 0x920, 0x921,
+    0x923, 0x927, 0x92a, 0x92b, 0x92c, 0x92f, 0x930, 0x931,
+    0x933, 0x934, 0x935, 0x936, 0x937, 0x938, 0x941, 0x942,
+    0x948, 0x949, 0x94c, 0x952, 0x953, 0x956, 0x957, 0x958,
+    0x95d, 0x95f, 0x960, 0x967, 0x96f, 0x970, 0x976, 0x979,
+    0x97c, 0x97d, 0x98d, 0x98e, 0x98f, 0x991, 0x993, 0x995,
+    0x996, 0x997, 0x998, 0x99a, 0x99b, 0x99f, 0x9a1, 0x9a2,
+    0x9a5, 0x9a6, 0x9aa, 0x9ab, 0x9ac, 0x9ae, 0x9af, 0x9b0,
+    0x9b1, 0x9b2, 0x9b4, 0x9b5, 0x9b7, 0x9b9, 0x9ba, 0x9bb,
+    0x9c0, 0x9c1, 0x9c2, 0x9c8, 0x9ce, 0x9d0, 0x9d1, 0x9d2,
+    0x9d3, 0x9d4, 0x9d9, 0x9e4, 0x9e5, 0x9ec, 0x9ed, 0x9ee,
+    0x9f1, 0x9f6, 0xa03, 0xa05, 0xa0f, 0xa11, 0xa12, 0xa15,
+    0xa19, 0xa1a, 0xa1b, 0xa1c, 0xa1d, 0xa1e, 0xa1f, 0xa23,
+    0xa25, 0xa26, 0xa2a, 0xa2c, 0xa2e, 0xa30, 0xa32, 0xa33,
+    0xa36, 0xa3a, 0xa3b, 0xa40, 0xa41, 0xa42, 0xa44, 0xa45,
+    0xa48, 0xa4a, 0xa4c, 0xa54, 0xa55, 0xa57, 0xa5b, 0xa6b,
+    0xa6d, 0xa6e, 0xa70, 0xa71, 0xa72, 0xa73, 0xa78, 0xa7c,
+    0xa7d, 0xa7f, 0xa81, 0xa84, 0xa85, 0xa87, 0xa88, 0xa8b,
+    0xa8c, 0xa8e, 0xa92, 0xa94, 0xa96, 0xa97, 0xa9b, 0xa9c,
+    0xa9d, 0xa9f, 0xaa0, 0xaa2, 0xaa3, 0xaa4, 0xaa5, 0xaa6,
+    0xaa7, 0xaab, 0xaad, 0xab0, 0xab2, 0xab3, 0xab4, 0xab7,
+    0xabc, 0xac3, 0xac5, 0xac8, 0xac9, 0xad0, 0xad2, 0xad7,
+    0xad8, 0xade, 0xadf, 0xae0, 0xae1, 0xae4, 0xae7, 0xae8,
+    0xaea, 0xaeb, 0xaec, 0xaed, 0xaf1, 0xaf2, 0xaf3, 0xaf4,
+    0xaf8, 0xafb, 0xafc, 0xaff, 0xb02, 0xb05, 0xb06, 0xb08,
+    0xb09, 0xb0c, 0xb10, 0xb13, 0xb16, 0xb18, 0xb19, 0xb1a,
+    0xb1b, 0xb1c, 0xb1d, 0xb1e, 0xb1f, 0xb20, 0xb21, 0xb25,
+    0xb28, 0xb29, 0xb2a, 0xb2d, 0xb2f, 0xb30, 0xb31, 0xb34,
+    0xb36, 0xb37, 0xb38, 0xb3b, 0xb3c, 0xb40, 0xb41, 0xb42,
+    0xb43, 0xb44, 0xb45, 0xb46, 0xb4a, 0xb50, 0xb56, 0xb57,
+    0xb5a, 0xb5c, 0xb5d, 0xb5e, 0xb66, 0xb68, 0xb6b, 0xb6d,
+    0xb70, 0xb74, 0xb75, 0xb78, 0xb7d, 0xb7e, 0xb7f, 0xb82,
+    0xb83, 0xb84, 0xb85, 0xb86, 0xb87, 0xb88, 0xb8a, 0xb8b,
+    0xb8e, 0xb91, 0xb93, 0xb94, 0xb95, 0xb96, 0xb97, 0xb98,
+    0xb9a, 0xb9e, 0xb9f, 0xba4, 0xba7, 0xba8, 0xbad, 0xbaf,
+    0xbb1, 0xbb5, 0xbb6, 0xbb8, 0xbba, 0xbbb, 0xbbe, 0xbc1,
+    0xbc3, 0xbc6, 0xbc7, 0xbc8, 0xbca, 0xbcc, 0xbcd, 0xbcf,
+    0xbd3, 0xbd6, 0xbd7, 0xbe0, 0xbe1, 0xbe5, 0xbe6, 0xbec,
+    0xbf0, 0xbf3, 0xbf5, 0xbf7, 0xbf8, 0xbfa, 0xbfb, 0xc01,
+    0xc02, 0xc03, 0xc04, 0xc06, 0xc07, 0xc08, 0xc09, 0xc0a,
+    0xc0b, 0xc0e, 0xc0f, 0xc11, 0xc14, 0xc15, 0xc1b, 0xc1c,
+    0xc21, 0xc23, 0xc24, 0xc28, 0xc29, 0xc2a, 0xc30, 0xc35,
+    0xc3a, 0xc3b, 0xc3e, 0xc3f, 0xc41, 0xc42, 0xc46, 0xc5a,
+    0xc63, 0xc65, 0xc67, 0xc69, 0xc6c, 0xc70, 0xc78, 0xc7d,
+    0xc82, 0xc83, 0xc8b, 0xc90, 0xc92, 0xca6, 0xca9, 0xcaf,
+    0xcb8, 0xcc2, 0xcc3, 0xcc4, 0xcc7, 0xcd2, 0xcd9, 0xcdd,
+    0xce3, 0xce5, 0xce6, 0xcec, 0xced, 0xcef, 0xd01, 0xd10,
+    0xd1a, 0xd21, 0xd23, 0xd25, 0xd26, 0xd27, 0xd28, 0xd29,
+    0xd2a, 0xd2b, 0xd2c, 0xd2d, 0xd30, 0xd31, 0xd32, 0xd33,
+    0xd35, 0xd36, 0xd3a, 0xd3c, 0xd3d, 0xd3f, 0xd40, 0xd45,
+    0xd47, 0xd49, 0xd4e, 0xd4f, 0xd52, 0xd58, 0xd59, 0xd5a,
+    0xd5b, 0xd5c, 0xd5e, 0xd62, 0xd63, 0xd64, 0xd66, 0xd67,
+    0xd68, 0xd69, 0xd6c, 0xd6d, 0xd6e, 0xd6f, 0xd73, 0xd76,
+    0xd7e, 0xd81, 0xd82, 0xd84, 0xd85, 0xd86, 0xd87, 0xd88,
+    0xd89, 0xd8a, 0xd8b, 0xd8e, 0xd91, 0xd94, 0xd97, 0xd99,
+    0xd9a, 0xd9b, 0xd9f, 0xda4, 0xda5, 0xdac, 0xdad, 0xdae,
+    0xdb0, 0xdb1, 0xdb2, 0xdb3, 0xdb5, 0xdb6, 0xdba, 0xdbb,
+    0xdbc, 0xdbd, 0xdbf, 0xdc0, 0xdc3, 0xdc6, 0xdc7, 0xdcc,
+    0xdd0, 0xdd4, 0xdd6, 0xdd7, 0xdd8, 0xdda, 0xddd, 0xddf,
+    0xde0, 0xde1, 0xde2, 0xde3, 0xde4, 0xde5, 0xde7, 0xde8,
+    0xde9, 0xdeb, 0xded, 0xdee, 0xdef, 0xdf1, 0xdf2, 0xdf3,
+    0xdf4, 0xdf5, 0xdf6, 0xdf7, 0xdfa, 0xdfd, 0xdfe, 0xe00,
+    0xe01, 0xe02, 0xe03, 0xe04, 0xe07, 0xe08, 0xe09, 0xe0a,
+    0xe0c, 0xe0e, 0xe0f, 0xe11, 0xe12, 0xe17, 0xe18, 0xe19,
+    0xe1a, 0xe1c, 0xe1d, 0xe22, 0xe23, 0xe24, 0xe29, 0xe2c,
+    0xe31, 0xe35, 0xe36, 0xe38, 0xe39, 0xe3a, 0xe3b, 0xe3c,
+    0xe3d, 0xe3e, 0xe3f, 0xe40, 0xe43, 0xe45, 0xe46, 0xe4a,
+    0xe4d, 0xe54, 0xe55, 0xe58, 0xe5d, 0xe5e, 0xe60, 0xe61,
+    0xe64, 0xe66, 0xe67, 0xe68, 0xe69, 0xe6a, 0xe6b, 0xe70,
+    0xe79, 0xe7a, 0xe7c, 0xe7d, 0xe7e, 0xe82, 0xe84, 0xe88,
+    0xe89, 0xe8c, 0xe91, 0xe92, 0xe95, 0xe96, 0xe9b, 0xe9d,
+    0xea2, 0xea3, 0xea4, 0xea5, 0xea7, 0xea9, 0xeaa, 0xeab,
+    0xead, 0xeb1, 0xeb3, 0xebb, 0xebd, 0xebe, 0xec0, 0xec2,
+    0xec3, 0xec4, 0xec5, 0xec7, 0xec8, 0xec9, 0xecb, 0xece,
+    0xecf, 0xed2, 0xed3, 0xed5, 0xed7, 0xed9, 0xedf, 0xee1,
+    0xee4, 0xee8, 0xee9, 0xeea, 0xeeb, 0xeed, 0xef1, 0xef9,
+    0xefb, 0xefc, 0xefe, 0xf04, 0xf05, 0xf08, 0xf0d, 0xf0f,
+    0xf11, 0xf13, 0xf18, 0xf1a, 0xf1b, 0xf1c, 0xf1d, 0xf20,
+    0xf26, 0xf27, 0xf2a, 0xf2b, 0xf2e, 0xf2f, 0xf36, 0xf37,
+    0xf39, 0xf3b, 0xf3c, 0xf41, 0xf45, 0xf47, 0xf48, 0xf4f,
+    0xf55, 0xf58, 0xf5a, 0xf5c, 0xf5f, 0xf60, 0xf61, 0xf62,
+    0xf63, 0xf65, 0xf6d, 0xf6f, 0xf73, 0xf79, 0xf82, 0xf84,
+    0xf88, 0xf93, 0xf94, 0xf95, 0xf9d, 0xf9f, 0xfa0, 0xfa2,
+    0xfac, 0xfad, 0xfb0, 0xfb1, 0xfb4, 0xfb9, 0xfbf, 0xfc4,
+    0xfc7, 0xfc8, 0xfc9, 0xfcb, 0xfd0, 0xfd2, 0xfd3, 0xfd5,
+    0xfd7, 0xfdb, 0xfdd, 0xfe0, 0xfe8, 0xfe9, 0xfeb, 0xfed,
+    0xff2, 0xff3, 0xff9, 0xffd, 0xfff, 0x1001, 0x101b, 0x1024,
+    0x102d, 0x1033, 0x1040, 0x1046, 0x1049, 0x104a, 0x104f, 0x1050,
+    0x1051, 0x1053, 0x1054, 0x1056, 0x1059, 0x105a, 0x1060, 0x1063,
+    0x1064, 0x1067, 0x106a, 0x106c, 0x1070, 0x1071, 0x1074, 0x1076,
+    0x1078, 0x1079, 0x107d, 0x107e, 0x1081, 0x1086, 0x1087, 0x108b,
+    0x108d, 0x108f, 0x1092, 0x10a2, 0x10a6, 0x10a7, 0x10ab, 0x10ac,
+    0x10ae, 0x10b2, 0x10b4, 0x10b6, 0x10b7, 0x10ba, 0x10bc, 0x10bf,
+    0x10c0, 0x10c2, 0x10c4, 0x10c6, 0x10c8, 0x10ca, 0x10cb, 0x10d4,
+    0x10d7, 0x10d8, 0x10dc, 0x10de, 0x10df, 0x10e0, 0x10e1, 0x10e6,
+    0x10e7, 0x10e9, 0x10ea, 0x10ed, 0x10f1, 0x10f2, 0x10fb, 0x10fd,
+    0x1100, 0x1101, 0x1102, 0x1103, 0x1104, 0x1107, 0x1108, 0x1109,
+    0x110a, 0x110b, 0x110c, 0x1111, 0x1112, 0x1115, 0x111b, 0x111d,
+    0x111e, 0x1121, 0x1125, 0x1127, 0x1129, 0x112a, 0x112e, 0x112f,
+    0x1130, 0x1134, 0x1138, 0x113a, 0x113b, 0x1140, 0x1142, 0x1143,
+    0x1148, 0x114a, 0x114c, 0x114f, 0x1150, 0x1151, 0x1157, 0x1159,
+    0x115c, 0x115e, 0x1166, 0x1167, 0x116a, 0x116d, 0x116e, 0x116f,
+    0x1170, 0x1171, 0x1172, 0x1175, 0x117a, 0x117c, 0x117f, 0x1181,
+    0x1183, 0x1189, 0x118a, 0x118b, 0x118f, 0x1191, 0x1192, 0x1195,
+    0x1199, 0x119d, 0x119f, 0x11a2, 0x11a7, 0x11ac, 0x11b1, 0x11b2,
+    0x11b8, 0x11c2, 0x11c3, 0x11c9, 0x11cf, 0x11d4, 0x11d9, 0x11f4,
+    0x11f6, 0x11f7, 0x11f8, 0x1201, 0x1204, 0x120b, 0x120d, 0x120e,
+    0x120f, 0x1212, 0x1214, 0x1217, 0x1219, 0x121a, 0x121b, 0x1223,
+    0x1224, 0x1225, 0x1226, 0x1228, 0x122b, 0x122f, 0x1230, 0x1232,
+    0x1236, 0x1238, 0x123a, 0x1241, 0x1243, 0x1245, 0x1246, 0x1247,
+    0x1248, 0x124a, 0x124c, 0x124f, 0x1250, 0x1255, 0x1258, 0x125b,
+    0x125d, 0x125e, 0x1261, 0x1263, 0x1264, 0x1267, 0x1269, 0x126a,
+    0x126b, 0x126c, 0x126e, 0x1271, 0x1277, 0x1279, 0x127a, 0x127b,
+    0x127c, 0x1280, 0x1283, 0x1284, 0x1285, 0x1288, 0x128a, 0x128b,
+    0x128d, 0x128e, 0x1290, 0x1292, 0x1297, 0x1299, 0x129a, 0x129c,
+    0x129f, 0x12a2, 0x12a4, 0x12a6, 0x12ab, 0x12b0, 0x12b2, 0x12b3,
+    0x12b5, 0x12b7, 0x12b8, 0x12b9, 0x12bd, 0x12be, 0x12c0, 0x12c2,
+    0x12c3, 0x12c5, 0x12c6, 0x12c8, 0x12ca, 0x12cb, 0x12ce, 0x12d0,
+    0x12d1, 0x12d2, 0x12d3, 0x12dc, 0x12de, 0x12df, 0x12ea, 0x12eb,
+    0x12ec, 0x12ed, 0x12ee, 0x12ef, 0x12f3, 0x12f4, 0x12f5, 0x12f7,
+    0x12f8, 0x12f9, 0x12fb, 0x12fd, 0x1300, 0x1304, 0x1307, 0x130a,
+    0x130b, 0x130c, 0x130e, 0x130f, 0x1318, 0x131a, 0x131b, 0x1320,
+    0x1322, 0x1323, 0x1324, 0x1325, 0x1326, 0x1327, 0x1329, 0x132a,
+    0x132c, 0x132e, 0x1331, 0x1332, 0x1338, 0x133c, 0x1344, 0x1345,
+    0x134d, 0x134e, 0x1352, 0x1353, 0x1354, 0x1357, 0x1358, 0x1359,
+    0x135b, 0x135c, 0x135d, 0x135e, 0x135f, 0x1360, 0x1361, 0x1363,
+    0x1364, 0x1365, 0x1367, 0x1369, 0x136b, 0x136c, 0x136e, 0x136f,
+    0x1370, 0x137b, 0x137c, 0x137d, 0x137e, 0x137f, 0x1380, 0x1381,
+    0x1382, 0x1383, 0x1384, 0x1386, 0x138f, 0x1391, 0x1392, 0x139c,
+    0x139e, 0x13a0, 0x13a1, 0x13aa, 0x13ae, 0x13b2, 0x13bd, 0x13c1,
+    0x13c2, 0x13c3, 0x13c8, 0x13ca, 0x13cb, 0x13ce, 0x13d0, 0x13db,
+    0x13dd, 0x13e4, 0x13e6, 0x13e8, 0x13ed, 0x13f0, 0x13f3, 0x13f5,
+    0x13fb, 0x13fe, 0x1409, 0x140b, 0x140c, 0x1410, 0x1414, 0x1415,
+    0x1417, 0x141c, 0x1420, 0x1426, 0x1428, 0x1429, 0x142b, 0x142d,
+    0x143a, 0x143b, 0x143f, 0x1448, 0x144b, 0x144f, 0x1454, 0x1458,
+    0x145a, 0x145d, 0x146f, 0x1472, 0x1475, 0x1478, 0x1479, 0x147b,
+    0x147e, 0x1481, 0x1486, 0x1489, 0x148c, 0x1492, 0x1493, 0x1494,
+    0x1497, 0x149b, 0x149d, 0x149f, 0x14a1, 0x14a2, 0x14a3, 0x14a4,
+    0x14a8, 0x14af, 0x14b0, 0x14b3, 0x14b6, 0x14b7, 0x14c2, 0x14c3,
+    0x14c6, 0x14c8, 0x14cc, 0x14cf, 0x14d2, 0x14d6, 0x14dc, 0x14e5,
+    0x14e7, 0x14e9, 0x14eb, 0x14ef, 0x14f6, 0x14fa, 0x14fb, 0x1508,
+    0x150d, 0x1518, 0x151a, 0x1525, 0x1532, 0x1533, 0x153a, 0x153c,
+    0x1543, 0x1545, 0x154a, 0x154c, 0x1550, 0x1558, 0x1559, 0x155f,
+    0x1562, 0x156b, 0x1573, 0x1574, 0x1576, 0x157c, 0x1580, 0x158c,
+    0x1594, 0x1597, 0x159b, 0x159f, 0x15a9, 0x15ab, 0x15ac, 0x15b2,
+    0x15bb, 0x15c4, 0x15c6, 0x15c7, 0x163b, 0x163c, 0x163d, 0x163e,
+    0x163f, 0x1642, 0x164d, 0x1652, 0x1654, 0x1655, 0x1659, 0x165e,
+    0x1661, 0x1662, 0x1664, 0x1667, 0x1674, 0x167d, 0x167e, 0x167f,
+    0x1680, 0x1681, 0x1682, 0x1685, 0x1694, 0x1696, 0x1697, 0x169c,
+    0x169d, 0x169e, 0x169f, 0x16a1, 0x16a2, 0x16a4, 0x16a5, 0x16a6,
+    0x16a8, 0x16ad, 0x16ae, 0x16b1, 0x16b5, 0x16b6, 0x16bc, 0x16c5,
+    0x16ce, 0x16cf, 0x16d0, 0x16d2, 0x16da, 0x16dc, 0x16dd, 0x16e0,
+    0x16e6, 0x16e8, 0x16ea, 0x16ed, 0x16ee, 0x16ef, 0x16f0, 0x16f1,
+    0x16f2, 0x16f4, 0x16f6, 0x16fc, 0x1705, 0x1706, 0x170a, 0x170e,
+    0x1710, 0x1714, 0x1718, 0x1720, 0x1721, 0x1722, 0x1728, 0x172a,
+    0x172b, 0x172c, 0x172e, 0x172f, 0x1730, 0x1731, 0x1733, 0x1734,
+    0x1735, 0x1736, 0x173a, 0x173c, 0x173d, 0x173f, 0x1741, 0x1742,
+    0x1743, 0x1744, 0x1745, 0x1749, 0x174a, 0x174b, 0x174d, 0x174f,
+    0x1750, 0x1753, 0x1758, 0x175b, 0x175c, 0x175d, 0x1761, 0x1762,
+    0x1764, 0x1765, 0x176b, 0x176f, 0x1770, 0x1772, 0x1776, 0x1777,
+    0x1778, 0x1779, 0x177a, 0x177b, 0x177c, 0x177f, 0x1783, 0x1784,
+    0x1785, 0x178b, 0x178d, 0x178f, 0x1791, 0x1794, 0x1798, 0x1799,
+    0x179c, 0x179d, 0x179e, 0x17a0, 0x17a1, 0x17a3, 0x17a4, 0x17a7,
+    0x17aa, 0x17ab, 0x17ae, 0x17af, 0x17b4, 0x17b6, 0x17ba, 0x17bc,
+    0x17be, 0x17bf, 0x17c0, 0x17c1, 0x17c2, 0x17c4, 0x17c5, 0x17c6,
+    0x17c8, 0x17c9, 0x17cc, 0x17cd, 0x17ce, 0x17d3, 0x17d4, 0x17d6,
+    0x17d7, 0x17d8, 0x17d9, 0x17da, 0x17df, 0x17e0, 0x17e4, 0x17e5,
+    0x17e7, 0x17eb, 0x17ee, 0x17ef, 0x17f0, 0x17f1, 0x17f2, 0x17f6,
+    0x17f9, 0x17fb, 0x17fc, 0x17fd, 0x17fe, 0x1800, 0x1803, 0x1805,
+    0x1806, 0x1809, 0x180a, 0x180b, 0x180c, 0x180e, 0x1810, 0x1811,
+    0x1812, 0x1813, 0x1815, 0x1816, 0x1817, 0x1818, 0x1819, 0x181c,
+    0x181f, 0x1822, 0x1826, 0x1827, 0x1829, 0x182d, 0x1832, 0x1834,
+    0x1835, 0x1836, 0x1839, 0x1840, 0x1842, 0x1845, 0x1846, 0x1849,
+    0x184c, 0x184d, 0x184e, 0x1850, 0x1854, 0x1856, 0x1857, 0x1858,
+    0x1859, 0x185c, 0x185e, 0x1860, 0x1861, 0x1862, 0x1863, 0x1865,
+    0x1866, 0x1868, 0x1869, 0x186a, 0x186c, 0x186d, 0x186e, 0x186f,
+    0x1874, 0x1875, 0x1877, 0x1879, 0x187b, 0x187e, 0x1881, 0x1884,
+    0x1885, 0x1889, 0x188a, 0x188f, 0x1892, 0x1893, 0x1897, 0x189d,
+    0x18a0, 0x18a3, 0x18a4, 0x18a7, 0x18a9, 0x18ac, 0x18ae, 0x18af,
+    0x18b0, 0x18b6, 0x18b8, 0x18b9, 0x18ba, 0x18bb, 0x18bc, 0x18be,
+    0x18bf, 0x18c1, 0x18c2, 0x18c3, 0x18c4, 0x18c5, 0x18c6, 0x18c9,
+    0x18ca, 0x18cd, 0x18d0, 0x18d3, 0x18da, 0x18db, 0x18df, 0x18e0,
+    0x18e1, 0x18e2, 0x18e6, 0x18e7, 0x18ec, 0x18f1, 0x18f3, 0x18f4,
+    0x18f8, 0x18f9, 0x18fb, 0x18fc, 0x18ff, 0x1901, 0x1906, 0x1907,
+    0x1909, 0x190c, 0x190e, 0x1912, 0x1914, 0x1916, 0x1917, 0x1920,
+    0x1925, 0x1927, 0x1928, 0x1929, 0x192b, 0x192c, 0x192f, 0x1931,
+    0x1932, 0x1935, 0x1938, 0x193b, 0x193c, 0x193e, 0x193f, 0x1940,
+    0x1944, 0x1946, 0x1948, 0x194a, 0x194d, 0x194f, 0x1953, 0x1955,
+    0x195e, 0x195f, 0x1968, 0x1969, 0x196e, 0x196f, 0x1971, 0x1973,
+    0x1976, 0x197a, 0x1986, 0x1989, 0x1999, 0x199a, 0x199e, 0x19a0,
+    0x19a1, 0x19a4, 0x19aa, 0x19ab, 0x19b3, 0x19b7, 0x19ba, 0x19bd,
+    0x19c0, 0x19c2, 0x19c5, 0x19ca, 0x19cc, 0x19cd, 0x19cf, 0x19d1,
+    0x19d2, 0x19d5, 0x19d6, 0x19d8, 0x19dc, 0x19dd, 0x19e2, 0x19e6,
+    0x19ea, 0x19ec, 0x19ee, 0x19ef, 0x19f0, 0x19f2, 0x19f5, 0x19f9,
+    0x19fa, 0x19fb, 0x19fc, 0x19fd, 0x19ff, 0x1a00, 0x1a01, 0x1a03,
+    0x1a04, 0x1a0f, 0x1a14, 0x1a1d, 0x1a21, 0x1a24, 0x1a2a, 0x1a2e,
+    0x1a2f, 0x1a30, 0x1a3b, 0x1a3f, 0x1a44, 0x1a45, 0x1a46, 0x1a48,
+    0x1a4a, 0x1a4c, 0x1a4e, 0x1a51, 0x1a59, 0x1a61, 0x1a62, 0x1a66,
+    0x1a68, 0x1a73, 0x1a77, 0x1a79, 0x1a7d, 0x1a81, 0x1a88, 0x1a89,
+    0x1a8d, 0x1a8f, 0x1a93, 0x1a95, 0x1a97, 0x1a9f, 0x1aa3, 0x1aa4,
+    0x1aa7, 0x1aa8, 0x1aa9, 0x1ab7, 0x1abc, 0x1ac2, 0x1ace, 0x1ad1,
+    0x1ad4, 0x1adb, 0x1add, 0x1ae4, 0x1aec, 0x1aed, 0x1af9, 0x1afb,
+    0x1afc, 0x1b09, 0x1b0a, 0x1b2c, 0x1b35, 0x1b36, 0x1b3e, 0x1b50,
+    0x1b54, 0x1b67, 0x1b6a, 0x1b79, 0x1b86, 0x1b87, 0x1b88, 0x1b8a,
+    0x1b8b, 0x1b90, 0x1b91, 0x1b93, 0x1b97, 0x1b99, 0x1b9a, 0x1b9b,
+    0x1ba0, 0x1ba4, 0x1ba5, 0x1ba9, 0x1bad, 0x1baf, 0x1bb0, 0x1bb1,
+    0x1bb4, 0x1bb7, 0x1bb8, 0x1bc6, 0x1bc7, 0x1bc8, 0x1bc9, 0x1bca,
+    0x1bcc, 0x1bce, 0x1bd2, 0x1bd3, 0x1bd4, 0x1bd6, 0x1bd7, 0x1bd8,
+    0x1bdb, 0x1bdc, 0x1bdd, 0x1bde, 0x1be3, 0x1be5, 0x1bf3, 0x1bf4,
+    0x1bf6, 0x1bfa, 0x1bff, 0x1c01, 0x1c02, 0x1c03, 0x1c04, 0x1c06,
+    0x1c07, 0x1c08, 0x1c0a, 0x1c12, 0x1c14, 0x1c18, 0x1c24, 0x1c25,
+    0x1c2b, 0x1c2e, 0x1c30, 0x1c31, 0x1c33, 0x1c34, 0x1c35, 0x1c41,
+    0x1c4a, 0x1c4b, 0x1c4c, 0x1c51, 0x1c60, 0x1c65, 0x1c67, 0x1c69,
+    0x1c77, 0x1c79, 0x1c7f, 0x1c81, 0x1c82, 0x1c83, 0x1c89, 0x1c8d,
+    0x1c8e, 0x1c93, 0x1c95, 0x1c98, 0x1c9f, 0x1ca5, 0x1caa, 0x1caf,
+    0x1cb3, 0x1cb4, 0x1cba, 0x1cbb, 0x1cc3, 0x1cc7, 0x1cce, 0x1cd0,
+    0x1cd4, 0x1cde, 0x1ce9, 0x1cef, 0x1cf0, 0x1cfb, 0x1d00, 0x1d02,
+    0x1d09, 0x1d14, 0x1d21, 0x1d38, 0x1d43, 0x1d45, 0x1d47, 0x1d4b,
+    0x1d4c, 0x1d50, 0x1d51, 0x1d52, 0x1d53, 0x1d54, 0x1d56, 0x1d58,
+    0x1d5a, 0x1d62, 0x1d63, 0x1d67, 0x1d68, 0x1d6d, 0x1d71, 0x1d74,
+    0x1d76, 0x1d78, 0x1d7a, 0x1d7c, 0x1d7d, 0x1d81, 0x1d82, 0x1d84,
+    0x1d89, 0x1d8a, 0x1d8d, 0x1d90, 0x1d94, 0x1d95, 0x1d99, 0x1d9a,
+    0x1d9b, 0x1d9c, 0x1d9f, 0x1da5, 0x1da6, 0x1da8, 0x1daa, 0x1dad,
+    0x1dba, 0x1dc7, 0x1dc8, 0x1dca, 0x1dcb, 0x1dcf, 0x1dd1, 0x1dd2,
+    0x1dd3, 0x1dd4, 0x1ddc, 0x1ddd, 0x1dde, 0x1ddf, 0x1de3, 0x1de8,
+    0x1de9, 0x1deb, 0x1ded, 0x1df2, 0x1df4, 0x1df9, 0x1dfb, 0x1dfc,
+    0x1e03, 0x1e04, 0x1e07, 0x1e08, 0x1e09, 0x1e0a, 0x1e0b, 0x1e0c,
+    0x1e0d, 0x1e0e, 0x1e0f, 0x1e12, 0x1e13, 0x1e15, 0x1e16, 0x1e17,
+    0x1e1c, 0x1e1e, 0x1e25, 0x1e29, 0x1e2e, 0x1e30, 0x1e31, 0x1e32,
+    0x1e36, 0x1e37, 0x1e38, 0x1e39, 0x1e3c, 0x1e3d, 0x1e40, 0x1e44,
+    0x1e45, 0x1e46, 0x1e47, 0x1e49, 0x1e4c, 0x1e4f, 0x1e52, 0x1e53,
+    0x1e54, 0x1e59, 0x1e5a, 0x1e68, 0x1e6b, 0x1e6d, 0x1e72, 0x1e7b,
+    0x1e87, 0x1e88, 0x1e8a, 0x1e99, 0x1e9f, 0x1ea2, 0x1ea4, 0x1ea6,
+    0x1ea9, 0x1eac, 0x1eb1, 0x1eb6, 0x1eba, 0x1ebd, 0x1ec4, 0x1ec6,
+    0x1ec9, 0x1eca, 0x1ecb, 0x1ecd, 0x1ece, 0x1ed2, 0x1ed5, 0x1ed6,
+    0x1edb, 0x1edd, 0x1ee3, 0x1ee4, 0x1ee5, 0x1ee8, 0x1eea, 0x1eeb,
+    0x1eec, 0x1ef4, 0x1ef9, 0x1efb, 0x1f00, 0x1f02, 0x1f04, 0x1f08,
+    0x1f0d, 0x1f1e, 0x1f20, 0x1f21, 0x1f24, 0x1f25, 0x1f2a, 0x1f2b,
+    0x1f35, 0x1f36, 0x1f3d, 0x1f40, 0x1f41, 0x1f43, 0x1f45, 0x1f47,
+    0x1f49, 0x1f4b, 0x1f4e, 0x1f4f, 0x1f50, 0x1f51, 0x1f57, 0x1f5c,
+    0x1f70, 0x1f72, 0x1f74, 0x1f75, 0x1f76, 0x1f77, 0x1f79, 0x1f7a,
+    0x1f88, 0x1f8b, 0x1f91, 0x1f92, 0x1f99, 0x1f9b, 0x1f9c, 0x1f9e,
+    0x1fa2, 0x1fa6, 0x1fa9, 0x1fab, 0x1fb7, 0x1fb9, 0x1fc2, 0x1fc3,
+    0x1fc4, 0x1fd5, 0x1fed, 0x1ff7, 0x1ff9, 0x1ffb, 0x1ffd, 0x1ffe,
+    0x1fff, 0x2001, 0x2009, 0x200a, 0x200f, 0x2011, 0x2012, 0x201a,
+    0x201f, 0x2028, 0x202a, 0x202c, 0x202e, 0x2033, 0x2034, 0x2035,
+    0x2037, 0x203a, 0x2040, 0x2043, 0x2044, 0x2046, 0x2047, 0x2048,
+    0x204a, 0x204b, 0x204c, 0x204d, 0x204e, 0x2050, 0x2052, 0x2053,
+    0x2055, 0x2056, 0x2059, 0x205b, 0x2060, 0x2063, 0x2066, 0x2067,
+    0x2069, 0x206a, 0x206f, 0x2074, 0x2075, 0x2076, 0x2077, 0x2080,
+    0x2081, 0x2085, 0x208d, 0x208f, 0x2093, 0x2094, 0x209a, 0x209e,
+    0x20a1, 0x20a6, 0x20aa, 0x20ac, 0x20ad, 0x20af, 0x20b1, 0x20b2,
+    0x20b4, 0x20b5, 0x20b8, 0x20ba, 0x20bb, 0x20bc, 0x20be, 0x20bf,
+    0x20c0, 0x20c6, 0x20c7, 0x20c9, 0x20ca, 0x20cb, 0x20cc, 0x20cd,
+    0x20ce, 0x20cf, 0x20d0, 0x20d3, 0x20d4, 0x20d7, 0x20d8, 0x20d9,
+    0x20dd, 0x20de, 0x20df, 0x20e0, 0x20e2, 0x20e3, 0x20e4, 0x20e5,
+    0x20e8, 0x20ed, 0x20ef, 0x20f0, 0x20f1, 0x20f3, 0x20f6, 0x20f9,
+    0x20fd, 0x20fe, 0x20ff, 0x2101, 0x2102, 0x2103, 0x2105, 0x2106,
+    0x210b, 0x210c, 0x210f, 0x2114, 0x2117, 0x211a, 0x211b, 0x211c,
+    0x211e, 0x2120, 0x2125, 0x2127, 0x212b, 0x2130, 0x2132, 0x2133,
+    0x2134, 0x2136, 0x213a, 0x213b, 0x213d, 0x213f, 0x2140, 0x2141,
+    0x2144, 0x2145, 0x2146, 0x2148, 0x214b, 0x214e, 0x214f, 0x2150,
+    0x2153, 0x2157, 0x2159, 0x215a, 0x215b, 0x215e, 0x2167, 0x2168,
+    0x216f, 0x2171, 0x2177, 0x2179, 0x217e, 0x2186, 0x218a, 0x2193,
+    0x2196, 0x2198, 0x2199, 0x219d, 0x219f, 0x21a1, 0x21a2, 0x21a3,
+    0x21a6, 0x21a9, 0x21ac, 0x21ae, 0x21b1, 0x21b4, 0x21bf, 0x21c9,
+    0x21cc, 0x21cd, 0x21cf, 0x21da, 0x21dd, 0x21e0, 0x21e1, 0x21e3,
+    0x21e5, 0x21e8, 0x21e9, 0x21ea, 0x21eb, 0x21ec, 0x21ed, 0x21ef,
+    0x21f1, 0x21f2, 0x21f3, 0x21f6, 0x21fa, 0x2200, 0x2209, 0x220a,
+    0x220c, 0x220d, 0x220f, 0x2213, 0x2214, 0x2217, 0x2219, 0x221c,
+    0x221f, 0x2222, 0x2223, 0x2224, 0x2226, 0x2228, 0x2234, 0x2235,
+    0x223a, 0x223b, 0x223d, 0x2241, 0x2243, 0x2244, 0x2248, 0x224a,
+    0x2250, 0x2251, 0x2252, 0x2253, 0x2255, 0x2257, 0x225b, 0x225c,
+    0x225e, 0x2262, 0x226b, 0x226c, 0x2275, 0x2276, 0x227c, 0x227d,
+    0x227e, 0x2280, 0x2281, 0x2283, 0x2286, 0x2287, 0x2294, 0x2298,
+    0x2299, 0x229a, 0x229b, 0x229f, 0x22a0, 0x22a7, 0x22a8, 0x22a9,
+    0x22ac, 0x22ad, 0x22ba, 0x22bb, 0x22bd, 0x22c0, 0x22c2, 0x22c4,
+    0x22c5, 0x22c7, 0x22cb, 0x22ce, 0x22d0, 0x22d6, 0x22d8, 0x22da,
+    0x22e8, 0x22f2, 0x22f6, 0x22f7, 0x22fd, 0x22fe, 0x2300, 0x2302,
+    0x2304, 0x2306, 0x2307, 0x2308, 0x2309, 0x230e, 0x2311, 0x2313,
+    0x2318, 0x2319, 0x231a, 0x231b, 0x231c, 0x231d, 0x2324, 0x2327,
+    0x2328, 0x232c, 0x232d, 0x232f, 0x2331, 0x2332, 0x2333, 0x2335,
+    0x2337, 0x2338, 0x233a, 0x233e, 0x2340, 0x2341, 0x2342, 0x2344,
+    0x2347, 0x2348, 0x234b, 0x234f, 0x2352, 0x2353, 0x2354, 0x2355,
+    0x2356, 0x2357, 0x2359, 0x235b, 0x2360, 0x2362, 0x2367, 0x2369,
+    0x236b, 0x236d, 0x2370, 0x2371, 0x2372, 0x2378, 0x2385, 0x2386,
+    0x2387, 0x2388, 0x2389, 0x2392, 0x2397, 0x23a2, 0x23a4, 0x23a7,
+    0x23a8, 0x23a9, 0x23ac, 0x23ae, 0x23b2, 0x23b3, 0x23b5, 0x23b6,
+    0x23b7, 0x23ba, 0x23bc, 0x23be, 0x23c0, 0x23c2, 0x23cb, 0x23cc,
+    0x23cd, 0x23ce, 0x23cf, 0x23d4, 0x23d9, 0x23dc, 0x23e0, 0x23e4,
+    0x23e5, 0x23e6, 0x23eb, 0x23ef, 0x23f0, 0x23f4, 0x2403, 0x2407,
+    0x240d, 0x240f, 0x2412, 0x2415, 0x241c, 0x2420, 0x242e, 0x2439,
+    0x243f, 0x244f, 0x2455, 0x2456, 0x2457, 0x2459, 0x245b, 0x245c,
+    0x2461, 0x2463, 0x2464, 0x246e, 0x2471, 0x2472, 0x2475, 0x2476,
+    0x2477, 0x2478, 0x2479, 0x247a, 0x247b, 0x247d, 0x2480, 0x2482,
+    0x2483, 0x2488, 0x248a, 0x2492, 0x2493, 0x2495, 0x249b, 0x249c,
+    0x249f, 0x24a0, 0x24a5, 0x24aa, 0x24b5, 0x24c2, 0x24ce, 0x24d4,
+    0x24d5, 0x24d6, 0x24d8, 0x24d9, 0x24db, 0x24dc, 0x24de, 0x24e1,
+    0x24e4, 0x24e6, 0x24e8, 0x24ec, 0x24ed, 0x24f0, 0x24f3, 0x24fa,
+    0x24fe, 0x24ff, 0x2501, 0x2502, 0x2504, 0x2506, 0x2508, 0x250a,
+    0x250b, 0x2513, 0x2516, 0x2518, 0x251b, 0x251d, 0x251e, 0x2521,
+    0x2526, 0x2528, 0x2529, 0x252f, 0x2532, 0x2535, 0x2539, 0x253b,
+    0x253e, 0x254e, 0x2552, 0x2554, 0x2556, 0x2557, 0x2558, 0x255a,
+    0x2561, 0x256c, 0x2572, 0x258b, 0x258f, 0x2591, 0x2592, 0x2593,
+    0x2594, 0x2595, 0x259a, 0x259b, 0x259c, 0x259e, 0x259f, 0x25a1,
+    0x25a3, 0x25a8, 0x25ac, 0x25ad, 0x25b0, 0x25b1, 0x25b2, 0x25b3,
+    0x25b7, 0x25b8, 0x25ba, 0x25bb, 0x25c0, 0x25c1, 0x25c3, 0x25c7,
+    0x25c8, 0x25ce, 0x25da, 0x25e6, 0x25f1, 0x25f4, 0x25f9, 0x25fa,
+    0x25fb, 0x25fe, 0x2600, 0x2601, 0x2608, 0x260a, 0x2614, 0x2615,
+    0x2618, 0x261a, 0x261e, 0x261f, 0x2621, 0x2623, 0x2625, 0x2626,
+    0x262a, 0x262c, 0x262f, 0x2630, 0x2634, 0x2636, 0x2639, 0x263b,
+    0x263f, 0x2640, 0x2641, 0x2643, 0x2645, 0x2646, 0x2647, 0x2649,
+    0x264c, 0x264e, 0x2653, 0x2655, 0x2657, 0x2659, 0x2660, 0x2662,
+    0x2664, 0x2666, 0x2667, 0x266a, 0x266b, 0x266c, 0x266d, 0x266f,
+    0x2671, 0x2673, 0x2675, 0x2676, 0x2678, 0x267b, 0x267d, 0x2689,
+    0x268c, 0x268d, 0x2690, 0x2692, 0x2694, 0x2696, 0x2699, 0x269b,
+    0x26a0, 0x26a8, 0x26ab, 0x26af, 0x26b0, 0x26b2, 0x26b7, 0x26b8,
+    0x26bc, 0x26bd, 0x26c1, 0x26c2, 0x26c3, 0x26c4, 0x26c5, 0x26c6,
+    0x26c7, 0x26c8, 0x26cc, 0x26cf, 0x26d3, 0x26dc, 0x26e1, 0x26e2,
+    0x26e7, 0x26ec, 0x26ee, 0x26f4, 0x26f5, 0x26f8, 0x26fc, 0x2700,
+    0x2701, 0x2705, 0x2709, 0x270c, 0x2712, 0x2717, 0x2719, 0x2722,
+    0x2726, 0x2727, 0x272a, 0x2731, 0x273a, 0x2741, 0x2742, 0x2745,
+    0x2753, 0x275a, 0x275b, 0x275c, 0x2768, 0x278e, 0x278f, 0x2796,
+    0x2797, 0x2798, 0x27a4, 0x27ac, 0x27ad, 0x27b0, 0x27b2, 0x27b3,
+    0x27b7, 0x27b8, 0x27b9, 0x27ba, 0x27bd, 0x27bf, 0x27c0, 0x27c5,
+    0x27c9, 0x27cc, 0x27cd, 0x27ce, 0x27d4, 0x27d7, 0x27d8, 0x27d9,
+    0x27dc, 0x27e0, 0x27e2, 0x27e3, 0x27e5, 0x27e7, 0x27e8, 0x27f0,
+    0x27f1, 0x27f2, 0x27f4, 0x27f7, 0x27fa, 0x27fb, 0x2803, 0x280a,
+    0x2813, 0x2816, 0x2825, 0x283b, 0x283d, 0x2842, 0x2846, 0x284a,
+    0x2889, 0x2892, 0x28c1, 0x28c9, 0x2956, 0x295c, 0x2962, 0x299d,
+    0x29b6
 };
 
-static const uint8_t glyph_id_ofs_list_10[] = {
+static const uint8_t glyph_id_ofs_list_9[] = {
     0, 1, 2, 3, 4, 5, 6, 7,
-    8, 9, 10, 11, 0, 12, 13, 14,
-    15, 16, 17, 18, 19, 20, 21, 22,
-    23, 24, 0, 25, 26, 27, 28, 29,
-    30, 31, 32, 0, 33, 34, 35, 36,
-    37, 38, 39, 40, 41, 42, 0, 43,
-    44, 45, 46, 47, 0, 48, 49, 50,
+    8, 9, 10, 11, 12, 13, 14, 0,
+    15, 16, 17, 18, 19, 0, 20, 21,
+    22, 23, 24, 25, 0, 0, 26, 27,
+    28, 29, 30, 31, 32, 33, 34, 35,
+    36, 37, 38, 39, 40, 41, 42, 43,
+    44, 45, 46, 47, 48, 49, 50, 0,
     51, 52, 53, 54, 55, 56, 57, 58,
-    59, 60, 0, 61, 62, 63, 64, 65,
-    66, 67, 0, 68, 69, 0, 70, 0,
-    71, 72, 73, 74, 75, 76, 77, 0,
-    78, 79, 80, 81, 82, 83, 84, 85,
-    86, 87, 88, 89, 90, 91, 92, 93,
-    0, 0, 94, 0, 95, 96, 0, 97,
-    98, 99, 100, 101, 102, 103, 104, 105,
-    106, 107, 108, 109, 0, 110, 111, 112,
-    113, 114, 115, 116, 117, 118, 119, 120,
-    121, 122, 123, 0, 124, 125, 126, 127,
-    128, 129, 130, 131, 132
+    59, 60, 61, 62, 63, 0, 64, 65,
+    66, 67, 68, 69, 70, 0, 71, 72,
+    73, 74, 75, 76, 77, 78, 79, 80,
+    81, 82, 0, 83, 84, 85, 86, 87,
+    88, 89, 90, 91, 92, 93, 94, 95,
+    96, 97, 98, 0, 99, 100, 101, 102,
+    103, 0, 104, 105, 106, 107, 108, 109,
+    110, 111, 112, 113, 114, 115, 116
 };
 
 static const uint16_t unicode_list_11[] = {
-    0x0, 0x2, 0xa, 0xc, 0xd, 0x15, 0x18, 0x19,
-    0x1c, 0x1d, 0x1f, 0x20, 0x22, 0x27, 0x29, 0x30,
-    0x32, 0x36, 0x39, 0x3a, 0x3c, 0x41, 0x45, 0x46,
-    0x49, 0x52, 0x54, 0x56, 0x59, 0x5c, 0x62, 0x65,
-    0x66, 0x67, 0x6c, 0x6f, 0x77, 0x78, 0x80, 0x81,
-    0x84, 0x85, 0x89, 0x92, 0x96, 0x9c, 0x9d, 0xa1,
-    0xa2, 0xa7, 0xa8, 0xa9, 0xad, 0xb1, 0xb6, 0xb9,
-    0xc3, 0xc4, 0xc8, 0xc9, 0xcb, 0xcd, 0xce, 0xd0,
-    0xd3, 0xd4, 0xd8, 0xda, 0xdc, 0xdd, 0xde, 0xdf,
-    0xe0, 0xe1, 0xe4, 0xe8, 0xea, 0xed, 0xee, 0xef,
-    0xf0, 0xf2, 0xf9, 0xfb, 0xfd, 0xfe, 0x100, 0x103,
-    0x105, 0x107, 0x10a, 0x10b, 0x10e, 0x112, 0x113, 0x114,
-    0x115, 0x11a, 0x11c, 0x122, 0x131, 0x132, 0x139, 0x147,
-    0x14b, 0x14c, 0x14e, 0x14f, 0x151, 0x153, 0x154, 0x160,
-    0x162, 0x163, 0x165, 0x167, 0x168, 0x169, 0x16a, 0x16c,
-    0x16d, 0x171, 0x172, 0x173, 0x175, 0x176, 0x177, 0x179,
-    0x17a, 0x17f, 0x182, 0x184, 0x185, 0x186, 0x187, 0x188,
-    0x189, 0x18a, 0x18c, 0x18e, 0x195, 0x196, 0x19e, 0x19f,
-    0x1a1, 0x1a2, 0x1a3, 0x1a4, 0x1a5, 0x1a6, 0x1a9, 0x1ac,
-    0x1ad, 0x1af, 0x1b0, 0x1b2, 0x1b3, 0x1b4, 0x1b5, 0x1b7,
-    0x1b8, 0x1b9, 0x1ba, 0x1bb, 0x1bc, 0x1be, 0x1c0, 0x1c2,
-    0x1c4, 0x1c5, 0x1ca, 0x1ce, 0x1d1, 0x1d2, 0x1d5, 0x1d6,
-    0x1d7, 0x1d8, 0x1d9, 0x1da, 0x1db, 0x1dc, 0x1de, 0x1e0,
-    0x1e2, 0x1ef, 0x1f4, 0x1f7, 0x1f9, 0x1fa, 0x1fe, 0x206,
-    0x20e, 0x210, 0x212, 0x213, 0x214, 0x218, 0x219, 0x21a,
-    0x21b, 0x21c, 0x21d, 0x221, 0x222, 0x228, 0x22d, 0x22f,
-    0x231, 0x235, 0x236, 0x238, 0x239, 0x23c, 0x241, 0x242,
-    0x243, 0x244, 0x245, 0x246, 0x247, 0x248, 0x250, 0x252,
-    0x257, 0x259, 0x260, 0x261, 0x263, 0x264, 0x265, 0x26e,
-    0x270, 0x272, 0x27b, 0x282, 0x283, 0x289, 0x28a, 0x28b,
-    0x28e, 0x292, 0x294, 0x2a4, 0x2ab, 0x2af, 0x2b2, 0x2b4,
-    0x2b5, 0x2bb, 0x2bc, 0x2c2, 0x2c3, 0x2c4, 0x2c6, 0x2c8,
-    0x2ca, 0x2cc, 0x2cd, 0x2ce, 0x2d4, 0x2d5, 0x2d8, 0x2da,
-    0x2dc, 0x2e3, 0x2e4, 0x2e6, 0x2e7, 0x2ea, 0x2eb, 0x2f0,
-    0x2f2, 0x2f3, 0x2f4, 0x2f8, 0x2f9, 0x2fc, 0x2fd, 0x2fe,
-    0x2ff, 0x300, 0x301, 0x302, 0x303, 0x306, 0x30c, 0x30f,
-    0x313, 0x320, 0x322, 0x330, 0x336, 0x337, 0x338, 0x33a,
-    0x33b, 0x33c, 0x342, 0x346, 0x347, 0x34a, 0x34c, 0x350,
-    0x352, 0x355, 0x356, 0x359, 0x35a, 0x35f, 0x361, 0x364,
-    0x365, 0x369, 0x36d, 0x36e, 0x370, 0x371, 0x372, 0x373,
-    0x374, 0x375, 0x376, 0x378, 0x379, 0x37b, 0x37c, 0x37f,
-    0x380, 0x381, 0x385, 0x386, 0x389, 0x38c, 0x38f, 0x390,
-    0x392, 0x393, 0x394, 0x395, 0x397, 0x399, 0x39a, 0x39c,
-    0x39d, 0x39f, 0x3a0, 0x3a3, 0x3a4, 0x3a9, 0x3ab, 0x3ac,
-    0x3ad, 0x3ae, 0x3b3, 0x3b7, 0x3b9, 0x3bf, 0x3c1, 0x3c3,
-    0x3c8, 0x3ca, 0x3cb, 0x3cc, 0x3cd, 0x3ce, 0x3d0, 0x3d1,
-    0x3d4, 0x3d6, 0x3d7, 0x3d9, 0x3db, 0x3dc, 0x3dd, 0x3df,
-    0x3e0, 0x3e2, 0x3e4, 0x3f0, 0x3f3, 0x3f4, 0x3f7, 0x3f9,
-    0x3fb, 0x3fd, 0x3fe, 0x400, 0x401, 0x404, 0x408, 0x40b,
-    0x40e, 0x40f, 0x411, 0x417, 0x418, 0x419, 0x41a, 0x422,
-    0x423, 0x424, 0x426, 0x427, 0x428, 0x429, 0x42b, 0x42c,
-    0x42d, 0x42e, 0x42f, 0x430, 0x431, 0x432, 0x433, 0x434,
-    0x435, 0x437, 0x43f, 0x440, 0x443, 0x444, 0x445, 0x44d,
-    0x44e, 0x451, 0x456, 0x45a, 0x45b, 0x460, 0x461, 0x463,
-    0x464, 0x466, 0x468, 0x470, 0x471, 0x472, 0x473, 0x478,
-    0x479, 0x47a, 0x47b, 0x47c, 0x47e, 0x47f, 0x480, 0x481,
-    0x482, 0x484, 0x485, 0x488, 0x489, 0x48a, 0x48d, 0x48f,
-    0x491, 0x492, 0x494, 0x497, 0x49c, 0x49e, 0x4a0, 0x4a4,
-    0x4a5, 0x4a8, 0x4a9, 0x4ad, 0x4b1, 0x4b2, 0x4b8, 0x4ba,
-    0x4c1, 0x4c5, 0x4cb, 0x4cc, 0x4d3, 0x4d4, 0x4d5, 0x4d6,
-    0x4d7, 0x4d9, 0x4e0, 0x4e4, 0x4e5, 0x4ec, 0x4ed, 0x4ee,
-    0x4ef, 0x4f0, 0x4f1, 0x500, 0x504, 0x505, 0x50e, 0x519,
-    0x51f, 0x529, 0x52b, 0x531, 0x533, 0x535, 0x53b, 0x53d,
-    0x542, 0x54a, 0x54f, 0x554, 0x556, 0x564, 0x567, 0x580,
-    0x585, 0x589, 0x592, 0x598, 0x59e, 0x5a7, 0x5ab, 0x5b4,
-    0x5c7, 0x5d4, 0x5d9, 0x5db, 0x5e2, 0x5e9, 0x5f4, 0x5ff,
-    0x600, 0x602, 0x603, 0x604, 0x605, 0x60b, 0x610, 0x611,
-    0x612, 0x61d, 0x626, 0x62c, 0x630, 0x638, 0x63a, 0x63c,
-    0x641, 0x642, 0x643, 0x646, 0x64c, 0x64d, 0x64f, 0x652,
-    0x657, 0x659, 0x663, 0x664, 0x669, 0x66c, 0x672, 0x676,
-    0x677, 0x678, 0x67f, 0x681, 0x691, 0x697, 0x698, 0x69b,
-    0x69d, 0x6a4, 0x6a8, 0x6ac, 0x6b7, 0x6be, 0x6c7, 0x6d3,
-    0x6de, 0x6e0, 0x6ef, 0x6f1, 0x700, 0x704, 0x716, 0x717,
-    0x718, 0x719, 0x71c, 0x722, 0x726, 0x733, 0x736, 0x739,
-    0x745, 0x748, 0x752, 0x753, 0x754, 0x755, 0x75b, 0x75d,
-    0x764, 0x76b, 0x76f, 0x770, 0x771, 0x772, 0x774, 0x777,
-    0x778, 0x779, 0x77c, 0x77e, 0x782, 0x788, 0x78c, 0x78e,
-    0x78f, 0x791, 0x792, 0x793, 0x796, 0x797, 0x798, 0x799,
-    0x79c, 0x7a0, 0x7a1, 0x7a3, 0x7a6, 0x7a7, 0x7ac, 0x7b1,
-    0x7b5, 0x7b6, 0x7b8, 0x7b9, 0x7ba, 0x7bb, 0x7bc, 0x7c0,
-    0x7c1, 0x7c6, 0x7c8, 0x7ca, 0x7cb, 0x7cf, 0x7d0, 0x7d1,
-    0x7d2, 0x7d5, 0x7da, 0x7db, 0x7dd, 0x7df, 0x7e0, 0x7e2,
-    0x7e6, 0x7e9, 0x7ea, 0x7eb, 0x7ed, 0x7f1, 0x7f6, 0x7f9,
-    0x7fc, 0x7ff, 0x803, 0x806, 0x807, 0x80f, 0x810, 0x811,
-    0x814, 0x816, 0x81b, 0x81f, 0x821, 0x828, 0x82b, 0x82c,
-    0x82d, 0x836, 0x838, 0x83c, 0x83e, 0x843, 0x844, 0x845,
-    0x846, 0x84a, 0x84b, 0x84d, 0x850, 0x853, 0x855, 0x85f,
-    0x868, 0x870, 0x873, 0x874, 0x875, 0x877, 0x87b, 0x87d,
-    0x882, 0x885, 0x888, 0x88e, 0x892, 0x893, 0x899, 0x89a,
-    0x8a3, 0x8a8, 0x8ad, 0x8b2, 0x8b6, 0x8c6, 0x8d2, 0x8db,
-    0x8dd, 0x8de, 0x8e9, 0x8ea, 0x8fa, 0x908, 0x90c, 0x90d,
-    0x914, 0x915, 0x91c, 0x91f, 0x921, 0x929, 0x92a, 0x92b,
-    0x92d, 0x930, 0x931, 0x933, 0x934, 0x936, 0x93a, 0x945,
-    0x946, 0x947, 0x94a, 0x94c, 0x950, 0x953, 0x955, 0x95a,
-    0x95e, 0x964, 0x96a, 0x973, 0x975, 0x979, 0x984, 0x98a,
-    0x98e, 0x991, 0x996, 0x99a, 0x99c, 0x99d, 0x9a0, 0x9a1,
-    0x9a5, 0x9a7, 0x9aa, 0x9ab, 0x9ac, 0x9ad, 0x9b0, 0x9b8,
-    0x9b9, 0x9bb, 0x9bc, 0x9c4, 0x9c6, 0x9ca, 0x9d2, 0x9d8,
-    0x9db, 0x9e1, 0x9e3, 0x9e9, 0x9ed, 0x9f2, 0x9f3, 0x9f8,
-    0x9fc, 0x9fe, 0xa09, 0xa0c, 0xa26, 0xa27, 0xa2e, 0xa43,
-    0xa47, 0xa49, 0xa4b, 0xa89, 0xa8a, 0xa8c, 0xa8d, 0xa8e,
-    0xa8f, 0xa91, 0xa92, 0xa93, 0xa94, 0xa96, 0xa97, 0xa98,
-    0xa99, 0xa9a, 0xa9e, 0xaa2, 0xaa4, 0xaa6, 0xaab, 0xaad,
-    0xaae, 0xab3, 0xab7, 0xabb, 0xac8, 0xacf, 0xb06, 0xb10,
-    0xb41, 0xb51, 0xb52, 0xb5b, 0xbcf, 0xbee, 0xc01, 0xc2e,
-    0xc34
+    0x0, 0x2, 0xa, 0xc, 0xd, 0x18, 0x19, 0x1c,
+    0x1d, 0x1f, 0x20, 0x22, 0x27, 0x29, 0x2a, 0x30,
+    0x31, 0x32, 0x36, 0x39, 0x3a, 0x3c, 0x41, 0x46,
+    0x49, 0x52, 0x54, 0x56, 0x5c, 0x62, 0x65, 0x66,
+    0x67, 0x69, 0x6c, 0x6f, 0x77, 0x78, 0x7a, 0x80,
+    0x81, 0x84, 0x85, 0x87, 0x89, 0x8d, 0x92, 0x94,
+    0x96, 0x9c, 0x9d, 0xa0, 0xa7, 0xa8, 0xa9, 0xad,
+    0xae, 0xb1, 0xb6, 0xb8, 0xb9, 0xbb, 0xc3, 0xc4,
+    0xc8, 0xc9, 0xcb, 0xcc, 0xcd, 0xce, 0xd3, 0xd4,
+    0xd5, 0xd8, 0xda, 0xdc, 0xdd, 0xde, 0xdf, 0xe0,
+    0xe1, 0xe4, 0xe8, 0xea, 0xed, 0xee, 0xef, 0xf0,
+    0xf1, 0xf2, 0xf9, 0xfb, 0xfd, 0xfe, 0xff, 0x100,
+    0x103, 0x105, 0x107, 0x10a, 0x10b, 0x10e, 0x112, 0x113,
+    0x114, 0x115, 0x11a, 0x11c, 0x120, 0x122, 0x131, 0x132,
+    0x139, 0x147, 0x148, 0x14b, 0x14c, 0x14e, 0x14f, 0x151,
+    0x153, 0x154, 0x15b, 0x15e, 0x160, 0x162, 0x163, 0x164,
+    0x165, 0x167, 0x168, 0x169, 0x16a, 0x16c, 0x16d, 0x171,
+    0x172, 0x173, 0x175, 0x176, 0x177, 0x179, 0x17a, 0x17c,
+    0x17f, 0x182, 0x184, 0x185, 0x186, 0x187, 0x188, 0x189,
+    0x18a, 0x18b, 0x18c, 0x18e, 0x194, 0x195, 0x196, 0x19e,
+    0x19f, 0x1a1, 0x1a2, 0x1a3, 0x1a4, 0x1a5, 0x1a6, 0x1a9,
+    0x1ac, 0x1ad, 0x1af, 0x1b0, 0x1b1, 0x1b2, 0x1b3, 0x1b4,
+    0x1b5, 0x1b7, 0x1b8, 0x1b9, 0x1ba, 0x1bb, 0x1bc, 0x1be,
+    0x1c0, 0x1c2, 0x1c4, 0x1c5, 0x1ca, 0x1ce, 0x1d1, 0x1d2,
+    0x1d5, 0x1d6, 0x1d7, 0x1d8, 0x1d9, 0x1da, 0x1db, 0x1dc,
+    0x1de, 0x1e0, 0x1e2, 0x1e6, 0x1f4, 0x1f7, 0x1f9, 0x1fa,
+    0x1fe, 0x200, 0x206, 0x20e, 0x210, 0x212, 0x213, 0x214,
+    0x218, 0x219, 0x21b, 0x21c, 0x21d, 0x221, 0x222, 0x228,
+    0x22d, 0x22f, 0x231, 0x235, 0x236, 0x238, 0x239, 0x23c,
+    0x241, 0x242, 0x243, 0x244, 0x245, 0x246, 0x247, 0x248,
+    0x24a, 0x250, 0x252, 0x257, 0x259, 0x260, 0x263, 0x264,
+    0x265, 0x26b, 0x26e, 0x270, 0x272, 0x27b, 0x282, 0x283,
+    0x288, 0x289, 0x28a, 0x28b, 0x28e, 0x292, 0x294, 0x2ab,
+    0x2af, 0x2b2, 0x2b4, 0x2b5, 0x2bb, 0x2bc, 0x2c3, 0x2c4,
+    0x2c6, 0x2c8, 0x2c9, 0x2ca, 0x2cc, 0x2cd, 0x2ce, 0x2d4,
+    0x2d5, 0x2d8, 0x2da, 0x2dc, 0x2e3, 0x2e4, 0x2e6, 0x2e7,
+    0x2e9, 0x2ea, 0x2eb, 0x2f0, 0x2f2, 0x2f3, 0x2f4, 0x2f5,
+    0x2f7, 0x2f8, 0x2f9, 0x2fb, 0x2fc, 0x2fd, 0x2fe, 0x2ff,
+    0x300, 0x301, 0x303, 0x306, 0x30c, 0x30f, 0x311, 0x313,
+    0x317, 0x320, 0x322, 0x327, 0x330, 0x336, 0x337, 0x338,
+    0x33a, 0x33b, 0x33c, 0x341, 0x342, 0x345, 0x346, 0x347,
+    0x34a, 0x34c
 };
 
 static const uint8_t glyph_id_ofs_list_12[] = {
-    0, 1, 2, 3, 4, 5, 6, 7,
-    8, 9, 10, 0, 11, 12, 13, 14,
-    0, 15, 16, 17, 18, 19, 20, 21,
-    22, 23, 0, 24, 25, 26, 27, 28,
-    29, 30, 31, 32, 33, 34, 0, 35,
-    36, 37, 38, 39, 40, 41, 42, 0,
-    43, 44, 45, 46, 47, 48, 49, 50,
-    51, 52, 53, 54, 55, 56, 57, 58,
-    59, 60, 61, 62, 63, 64, 65, 66,
-    67, 0, 68, 69, 70, 71, 72, 73,
-    74, 75, 76, 77, 78, 0, 79, 80,
-    81, 82, 83, 84, 0, 85, 86, 87,
-    88, 0, 89, 90, 91, 92, 93, 94,
-    0, 95, 96, 97, 98, 99, 100, 101,
-    102, 103, 104, 105, 106, 107, 108, 0,
-    109, 110, 111, 112, 113, 0, 114, 115,
-    116, 117, 118, 119, 120, 121, 122, 123,
-    124, 125, 0, 126, 127, 128, 129, 130,
-    131, 132, 133, 134, 135, 136, 137
+    0, 0, 1, 2, 0, 3, 4, 5,
+    0, 6, 7, 0, 0, 0, 0, 8,
+    9, 10, 0, 0, 11, 12, 0, 13,
+    0, 14, 0, 0, 15, 16, 17, 0,
+    18, 19, 20, 21, 22, 23, 24, 25,
+    26, 27, 0, 28, 29, 0, 0, 30,
+    31, 32, 0, 0, 0, 33, 34, 0,
+    0, 35, 0, 0, 36, 0, 0, 37,
+    38, 0, 39, 40, 41, 42, 43, 44,
+    0, 45, 46, 47, 48, 49, 0, 50,
+    51, 0, 0, 52, 53, 0, 54, 55,
+    56, 57, 0, 58, 59, 60, 61, 0,
+    0, 0, 0, 62, 0, 0, 0, 63,
+    0, 64, 0, 0, 65, 0, 0, 66,
+    0, 67, 0, 68, 0, 0, 0, 0,
+    0, 69, 70, 71, 72, 73, 74, 75,
+    76, 77, 0, 0, 78, 0, 79, 80,
+    0, 81, 0, 0, 82, 83, 0, 84,
+    0, 0, 85, 86, 87, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 88,
+    89, 0, 0, 90, 91, 92, 0, 93,
+    0, 94, 0, 95, 96, 97, 98, 0,
+    99, 100, 101, 0, 102, 0, 0, 0,
+    103, 0, 0, 104, 0, 0, 105, 106,
+    0, 107, 0, 0, 0, 0, 0, 108,
+    109, 110, 111, 0, 112, 0, 0, 0,
+    0, 0, 113, 114, 115, 0, 116, 117,
+    118, 119, 0, 120, 121, 122, 123, 124,
+    125, 126, 127, 128, 129, 130, 131, 132
 };
 
 static const uint16_t unicode_list_13[] = {
-    0x0, 0x5, 0x6, 0x8, 0xb, 0x14, 0x20, 0x21,
-    0x27, 0x29, 0x2a, 0x2f, 0x37, 0x38, 0x39, 0x41,
-    0x44, 0x48, 0x49, 0x4b, 0x53, 0x57, 0x73, 0x7f,
-    0xce
+    0x0, 0x1, 0x4, 0x5, 0x6, 0xe, 0xf, 0x12,
+    0x17, 0x1b, 0x1c, 0x21, 0x24, 0x25, 0x27, 0x29,
+    0x31, 0x32, 0x33, 0x34, 0x39, 0x3a, 0x3b, 0x3c,
+    0x3d, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x45, 0x46,
+    0x49, 0x4a, 0x4e, 0x50, 0x53, 0x55, 0x58, 0x5d,
+    0x5f, 0x61, 0x65, 0x66, 0x68, 0x69, 0x6a, 0x6e,
+    0x72, 0x73, 0x79, 0x7a, 0x7b, 0x81, 0x82, 0x86,
+    0x8a, 0x8c, 0x8d, 0x8f, 0x94, 0x95, 0x96, 0x97,
+    0x98, 0x9a, 0xa1, 0xa5, 0xa6, 0xad, 0xae, 0xaf,
+    0xb0, 0xb1, 0xba, 0xc1, 0xc5, 0xc6, 0xcf, 0xda,
+    0xe0, 0xe2, 0xe3, 0xe4, 0xe5, 0xea, 0xec, 0xf2,
+    0xf4, 0xf5, 0xf6, 0xfa, 0xfc, 0xfe, 0xff, 0x101,
+    0x103, 0x10b, 0x110, 0x111, 0x112, 0x114, 0x115, 0x117,
+    0x120, 0x122, 0x125, 0x12a, 0x138, 0x13b, 0x13d, 0x141,
+    0x142, 0x143, 0x146, 0x148, 0x14a, 0x14d, 0x152, 0x153,
+    0x156, 0x159, 0x15a, 0x15c, 0x15f, 0x166, 0x168, 0x169,
+    0x16c, 0x16e, 0x16f, 0x175, 0x179, 0x185, 0x188, 0x195,
+    0x19a, 0x19c, 0x1a0, 0x1a3, 0x1a8, 0x1aa, 0x1b4, 0x1b5,
+    0x1c0, 0x1c1, 0x1c2, 0x1c3, 0x1c4, 0x1c5, 0x1c6, 0x1cc,
+    0x1d1, 0x1d2, 0x1d3, 0x1df, 0x1e2, 0x1e7, 0x1ed, 0x1f1,
+    0x1fb, 0x1fd, 0x202, 0x203, 0x204, 0x207, 0x20d, 0x20e,
+    0x210, 0x218, 0x224, 0x225, 0x22d, 0x231, 0x233, 0x237,
+    0x238, 0x239, 0x240, 0x242, 0x24a, 0x252, 0x258, 0x259,
+    0x25c, 0x25e, 0x265, 0x26d, 0x272, 0x284, 0x288, 0x28e,
+    0x29a, 0x29f, 0x2b0, 0x2b2, 0x2c1, 0x2c5, 0x2d6, 0x2d7,
+    0x2d8, 0x2d9, 0x2da, 0x2dd, 0x2e3, 0x2e7, 0x2eb, 0x2f4,
+    0x2f5, 0x2f7, 0x2fa, 0x302, 0x303, 0x304, 0x305, 0x306,
+    0x307, 0x308, 0x309, 0x30a, 0x30b, 0x313, 0x314, 0x315,
+    0x316, 0x31c, 0x31e, 0x325, 0x326, 0x32c, 0x32d, 0x330,
+    0x331, 0x332, 0x333, 0x335, 0x338, 0x339, 0x33a, 0x33d,
+    0x33e, 0x33f, 0x343, 0x349, 0x34d, 0x34f, 0x350, 0x352,
+    0x353, 0x354, 0x357, 0x358, 0x359, 0x35a, 0x35d, 0x361,
+    0x362, 0x364, 0x367, 0x368, 0x36d, 0x372, 0x376, 0x377,
+    0x379, 0x37a, 0x37b, 0x37c, 0x37d, 0x381, 0x382, 0x387,
+    0x389, 0x38b, 0x38c, 0x390, 0x391, 0x392, 0x393, 0x396,
+    0x39b, 0x39c, 0x39e, 0x3a0, 0x3a1, 0x3a3, 0x3a5, 0x3a7,
+    0x3aa, 0x3ab, 0x3ac, 0x3ae, 0x3b2, 0x3b7, 0x3ba, 0x3bd,
+    0x3c0, 0x3c4, 0x3c7, 0x3c8, 0x3d0, 0x3d1, 0x3d2, 0x3d5,
+    0x3d7, 0x3dc, 0x3e0, 0x3e2, 0x3e9, 0x3ec, 0x3ed, 0x3ee,
+    0x3f7, 0x3f9, 0x3fd, 0x3ff, 0x404, 0x405, 0x406, 0x407,
+    0x40b, 0x40c, 0x40e, 0x411, 0x414, 0x416, 0x41c, 0x420,
+    0x428, 0x431, 0x434, 0x435, 0x436, 0x438, 0x43c, 0x43e,
+    0x443, 0x446, 0x449, 0x44f, 0x453, 0x454, 0x45a, 0x45b,
+    0x45c, 0x464, 0x469, 0x46e, 0x473, 0x477, 0x482, 0x487,
+    0x48c, 0x493, 0x49c, 0x49e, 0x49f, 0x4a4, 0x4aa, 0x4ab,
+    0x4bb, 0x4c2, 0x4c5, 0x4c9, 0x4cd, 0x4ce, 0x4d5, 0x4d6,
+    0x4dd, 0x4e0, 0x4e2, 0x4ea, 0x4eb, 0x4ec, 0x4ed, 0x4ee,
+    0x4f1, 0x4f2, 0x4f4, 0x4f5, 0x4f7, 0x4f9, 0x4fb, 0x500,
+    0x506, 0x507, 0x508, 0x50a, 0x50b, 0x50d, 0x50e, 0x511,
+    0x514, 0x516, 0x51b, 0x51f, 0x525, 0x52b, 0x52d, 0x534,
+    0x536, 0x53a, 0x540, 0x545, 0x54a, 0x54b, 0x54e, 0x54f,
+    0x552, 0x557, 0x55b, 0x55d, 0x55e, 0x561, 0x562, 0x568,
+    0x56b, 0x56c, 0x56d, 0x56e, 0x571, 0x579, 0x57a, 0x57c,
+    0x57d, 0x581, 0x582, 0x585, 0x587, 0x58b, 0x593, 0x599,
+    0x59b, 0x59c, 0x5a2, 0x5a3, 0x5a4, 0x5aa, 0x5ae, 0x5b3,
+    0x5b4, 0x5b9, 0x5bd, 0x5bf, 0x5ca, 0x5cd, 0x5e7, 0x5e8,
+    0x5ef, 0x604, 0x608, 0x60a, 0x60c, 0x60f, 0x64a, 0x64b,
+    0x64d, 0x64e, 0x64f, 0x650, 0x651, 0x652, 0x653, 0x654,
+    0x655, 0x657, 0x658, 0x659, 0x65a, 0x65b, 0x65f, 0x663,
+    0x665, 0x667, 0x66c, 0x66e, 0x66f, 0x674, 0x678, 0x67c,
+    0x689, 0x690, 0x6c7, 0x6d1, 0x702, 0x712, 0x713, 0x71c,
+    0x790, 0x7af, 0x7ef, 0x7f5
 };
 
 static const uint8_t glyph_id_ofs_list_14[] = {
-    0, 0, 1, 2, 3, 0, 4, 5,
-    6, 7, 8, 9, 10, 11, 12, 0,
-    13, 14, 15, 16, 17, 18, 19, 20,
-    21, 22, 0, 23, 24, 25, 26, 0,
-    27, 28, 0, 29, 30, 0, 31, 32,
-    33, 34, 35, 36, 37, 38, 39, 40,
-    41, 42, 43, 44, 0, 45, 46, 0,
-    0, 47, 0, 48, 0, 0, 49, 50,
-    0, 51, 0, 52, 53, 54, 55, 0,
-    0, 56, 0, 57, 58, 0, 0, 59,
-    60, 0, 61, 0, 0, 62, 0, 0,
-    63, 64, 65, 66, 67
+    0, 1, 2, 3, 4, 5, 6, 7,
+    8, 9, 10, 11, 0, 12, 13, 14,
+    15, 0, 16, 17, 18, 19, 20, 21,
+    22, 23, 24, 0, 25, 26, 27, 28,
+    29, 30, 31, 32, 33, 34, 35, 0,
+    36, 37, 38, 39, 40, 41, 42, 43
+};
+
+static const uint16_t unicode_list_19[] = {
+    0x0, 0x5, 0x6, 0x8, 0xb, 0x14, 0x19, 0x20,
+    0x21, 0x29, 0x2a, 0x32, 0x37, 0x38, 0x39, 0x41,
+    0x44, 0x48, 0x49, 0x4b, 0x53, 0x57, 0xdc, 0xdd,
+    0xde
 };
 
-static const uint16_t unicode_list_15[] = {
-    0x0, 0x3, 0x4, 0x9, 0xa, 0x13, 0x1e, 0x22,
-    0x30, 0x32, 0x34, 0x39, 0x3b, 0x3d, 0x3e, 0x42,
-    0x43, 0x45, 0x4a, 0x4b, 0x4d, 0x4e, 0x4f, 0x50,
-    0x55, 0x56, 0x59, 0x5a, 0x5c, 0x5d, 0x5e, 0x62,
-    0x63, 0x67, 0x69, 0x6b, 0x6e, 0x72, 0x74, 0x75,
-    0x76, 0x77, 0x78, 0x79, 0x7a, 0x84, 0x88, 0x89,
-    0x8b, 0x8e, 0x93, 0x9c, 0x9d, 0x9e, 0xa1, 0xa2,
-    0xa8, 0xa9, 0xab, 0xad, 0xae, 0xb0, 0xb4, 0xb8,
-    0xb9, 0xbc, 0xbf, 0xc0, 0xc1, 0xc3, 0xc6, 0xc7,
-    0xc8, 0xc9, 0xca, 0xd0, 0xd1, 0xd2, 0xd8, 0xe5,
-    0xe8, 0xeb, 0xec, 0xee, 0xef, 0xf1, 0xf3, 0xfa,
-    0xfb, 0xfc, 0xfd, 0xfe, 0x100, 0x104, 0x106, 0x10e,
-    0x10f, 0x11b, 0x11d, 0x12a, 0x12b, 0x12e, 0x131, 0x139,
-    0x19d, 0x1b7, 0x1e5, 0x1e6, 0x1e7, 0x1e8, 0x1ea, 0x1eb,
-    0x1ec, 0x1ed, 0x1ee, 0x1ef, 0x1f0, 0x1f3, 0x1f4, 0x1f7,
-    0x1fa, 0x1fb, 0x1fd, 0x1fe, 0x200, 0x201, 0x202, 0x203,
-    0x204, 0x205, 0x208, 0x209, 0x20a, 0x20c, 0x20d, 0x20e,
-    0x20f, 0x210, 0x212, 0x213, 0x214, 0x215, 0x216, 0x217,
-    0x218, 0x219, 0x21a, 0x21b, 0x21d, 0x21e, 0x222, 0x227,
-    0x228, 0x22a, 0x22f, 0x230, 0x231, 0x238, 0x23c, 0x23d,
-    0x240, 0x243, 0x244, 0x246, 0x247, 0x24d, 0x24f, 0x250,
-    0x252, 0x253, 0x257, 0x258, 0x25a, 0x25b, 0x25c, 0x25d,
-    0x25e, 0x261, 0x263, 0x264, 0x265, 0x267, 0x268, 0x269,
-    0x26a, 0x26c, 0x26f, 0x276, 0x277, 0x278, 0x27c, 0x27f,
-    0x280, 0x281, 0x283, 0x284, 0x285, 0x288, 0x289, 0x28a,
-    0x28c, 0x28e, 0x28f, 0x290, 0x291, 0x293, 0x296, 0x299,
-    0x29c, 0x29d, 0x29e, 0x2a0, 0x2a1, 0x2a5, 0x2ac, 0x2ad,
-    0x2ae, 0x2b4, 0x2b7, 0x2ba, 0x2bb, 0x2bd, 0x2c0, 0x2c1,
-    0x2c3, 0x2c6, 0x2ce, 0x2cf, 0x2d0, 0x2d1, 0x2d6, 0x2da,
-    0x2e1, 0x2e2, 0x2e4, 0x2e7, 0x2ec, 0x2ed, 0x2f3, 0x2f4,
-    0x2fe, 0x2ff, 0x300, 0x301, 0x302, 0x310, 0x312, 0x314,
-    0x316, 0x318, 0x31a, 0x31c, 0x320, 0x321, 0x322, 0x325,
-    0x329, 0x32b, 0x32e, 0x32f, 0x330, 0x332, 0x333, 0x334,
-    0x335, 0x337, 0x338, 0x339, 0x33a, 0x33c, 0x33d, 0x340,
-    0x344, 0x346, 0x349, 0x34d, 0x34e, 0x350, 0x352, 0x356,
-    0x359, 0x35a, 0x35b, 0x35c, 0x360, 0x365, 0x366, 0x367,
-    0x36a, 0x36c, 0x36e, 0x373, 0x377, 0x37c, 0x37d, 0x37e,
-    0x381, 0x383, 0x38b, 0x398, 0x39d, 0x3a1, 0x3a2, 0x3b0,
-    0x3b8, 0x3c5, 0x3c9, 0x3ca, 0x3cb, 0x3cc, 0x3cd, 0x3ce,
-    0x3cf, 0x3d1, 0x3d6, 0x3d9, 0x3dc, 0x3dd, 0x3e0, 0x3e1,
-    0x3e2, 0x3e3, 0x3e4, 0x3e8, 0x3e9, 0x3eb, 0x3ed, 0x3ee,
-    0x3ef, 0x3f0, 0x3f1, 0x3f3, 0x3f5, 0x3f6, 0x3f7, 0x3fc,
-    0x3fd, 0x3fe, 0x404, 0x406, 0x408, 0x40a, 0x40b, 0x40c,
-    0x40f, 0x410, 0x411, 0x419, 0x41a, 0x421, 0x429, 0x42a,
-    0x42c, 0x42d, 0x433, 0x434, 0x439, 0x440, 0x445, 0x446,
-    0x448, 0x449, 0x44b, 0x44c, 0x44d, 0x44e, 0x450, 0x45b,
-    0x4f3, 0x50d, 0x52d, 0x545, 0x547, 0x5e9, 0x60e, 0x649,
-    0x655, 0x6bd, 0x6ea
+static const uint16_t unicode_list_21[] = {
+    0x0, 0x1, 0x2, 0x3, 0x5, 0x6, 0x7, 0x8,
+    0x9, 0xa, 0xb, 0xd, 0xe, 0xf, 0x10, 0x11,
+    0x13, 0x14, 0x18, 0x1a, 0x1d, 0x20, 0x21, 0x22,
+    0x23, 0x24, 0x2e, 0x31, 0x32, 0x37, 0x38, 0x3e,
+    0x41, 0x4c, 0x50, 0x5e, 0x60, 0x61, 0x62, 0x65,
+    0x67, 0x69, 0x6b, 0x6c, 0x70, 0x71, 0x73, 0x78,
+    0x79, 0x7b, 0x7c, 0x7e, 0x83, 0x84, 0x87, 0x88,
+    0x8a, 0x8b, 0x8c, 0x90, 0x91, 0x95, 0x97, 0x98,
+    0x99, 0x9c, 0xa0, 0xa2, 0xa4, 0xa5, 0xa6, 0xa7,
+    0xa8, 0xaa, 0xb2, 0xb6, 0xb7, 0xb9, 0xbc, 0xc1,
+    0xca, 0xcb, 0xcc, 0xcf, 0xd0, 0xd6, 0xd7, 0xd9,
+    0xdb, 0xdc, 0xde, 0xe2, 0xe6, 0xe7, 0xea, 0xed,
+    0xee, 0xef, 0xf1, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8,
+    0xfe, 0xff, 0x106, 0x113, 0x116, 0x119, 0x11a, 0x11c,
+    0x11d, 0x11f, 0x121, 0x123, 0x129, 0x12c, 0x12e, 0x132,
+    0x134, 0x13c, 0x13d, 0x141, 0x149, 0x14b, 0x158, 0x159,
+    0x15c, 0x15f, 0x167, 0x17b, 0x213, 0x214, 0x215, 0x216
 };
 
-static const uint8_t glyph_id_ofs_list_16[] = {
+static const uint8_t glyph_id_ofs_list_23[] = {
     0, 1, 2, 3, 4, 5, 6, 7,
     8, 9, 10, 0, 11, 12, 13, 14,
-    15, 16, 0, 17, 18, 19, 0, 20,
+    15, 0, 16, 17, 18, 19, 20, 21,
+    22, 23, 24, 25, 0, 26, 27, 0,
+    0, 0, 28, 0, 0, 0, 0, 29,
+    30, 0, 31, 0, 0, 0, 0, 32,
+    33, 0, 0, 0, 0, 34, 0, 0,
+    35, 0, 0, 0, 36, 37, 0, 0,
+    38, 39, 0, 40, 41, 0, 42, 43,
+    0, 0, 0, 0, 0, 44, 0, 45,
+    46, 0, 47, 48, 49, 0, 0, 50,
+    51, 0, 52, 53, 54, 55, 56, 0,
+    0, 57, 0, 58, 59, 60, 0, 61,
+    62, 63, 64, 0, 65, 66, 0, 67,
+    0, 0, 68, 0, 0, 0, 69, 70,
+    71, 0, 0, 0, 72, 0, 0, 73,
+    74, 75, 76, 77, 78, 79, 0, 0,
+    80, 81, 82, 0, 83, 0, 84, 85,
+    86, 87, 0, 88, 0, 89, 90, 0,
+    0, 91, 92, 0, 93, 94, 95, 96,
+    97, 98
+};
+
+static const uint16_t unicode_list_24[] = {
+    0x0, 0x7, 0x8, 0x9, 0xf, 0x10, 0x12, 0x15,
+    0x16, 0x18, 0x1b, 0x1c, 0x1e, 0x21, 0x27, 0x29,
+    0x2a, 0x2b, 0x2c, 0x2d, 0x31, 0x32, 0x35, 0x3c,
+    0x3d, 0x3f, 0x42, 0x47, 0x48, 0x4e, 0x4f, 0x57,
+    0x59, 0x5a, 0x5c, 0x5d, 0x62, 0x65, 0x6b, 0x6d,
+    0x6f, 0x71, 0x73, 0x75, 0x77, 0x7b, 0x7c, 0x7d,
+    0x80, 0x84, 0x86, 0x88, 0x89, 0x8a, 0x8b, 0x8d,
+    0x8e, 0x8f, 0x90, 0x92, 0x93, 0x94, 0x95, 0x98,
+    0x9b, 0x9e, 0x9f, 0xa1, 0xa4, 0xa8, 0xa9, 0xaa,
+    0xab, 0xad, 0xb1, 0xb5, 0xb6, 0xb7, 0xbb, 0xbc,
+    0xc0, 0xc1, 0xc2, 0xc5, 0xc7, 0xc9, 0xce, 0xd2,
+    0xd7, 0xd8, 0xdc, 0xde, 0xf3, 0xf8, 0xfc, 0xfd,
+    0x109, 0x10b, 0x113, 0x11d, 0x120, 0x123, 0x124, 0x125,
+    0x126, 0x127, 0x128, 0x129, 0x12a, 0x12c, 0x131, 0x134,
+    0x137, 0x138, 0x13b, 0x13c, 0x13d, 0x13e, 0x13f, 0x143,
+    0x144, 0x146, 0x148, 0x149, 0x14a, 0x14b, 0x14c, 0x14e,
+    0x14f, 0x150, 0x151, 0x152, 0x153, 0x157, 0x158, 0x159,
+    0x15f, 0x161, 0x163, 0x165, 0x166, 0x167, 0x16a, 0x16b,
+    0x16c, 0x174, 0x175, 0x17c, 0x17d, 0x184, 0x187, 0x188,
+    0x189, 0x18e, 0x18f, 0x194, 0x1a1, 0x1a3, 0x1a4, 0x1a6,
+    0x1a7, 0x1a8, 0x1a9, 0x1ab, 0x1b6, 0x24e, 0x268, 0x288,
+    0x2a2, 0x318, 0x344, 0x369, 0x3a4, 0x3b0, 0x418, 0x445,
+    0x45f, 0x460, 0x461, 0x462, 0x463, 0x464, 0x465, 0x466,
+    0x467, 0x468, 0x469, 0x46a, 0x46c, 0x46d, 0x46e, 0x46f,
+    0x471
+};
+
+static const uint8_t glyph_id_ofs_list_26[] = {
+    0, 1, 2, 3, 4, 5, 6, 0,
+    7, 8, 9, 0, 0, 10, 11, 12,
+    13, 14, 0, 15, 16, 17, 18, 19,
+    20, 21, 22, 23, 24, 25
+};
+
+static const uint8_t glyph_id_ofs_list_29[] = {
+    0, 1, 2, 0, 3, 4, 5, 6,
+    7, 8, 0, 9, 10, 11, 12, 13,
+    14, 15, 16, 17, 18, 19, 0, 20,
     21, 22, 23, 24, 25, 26, 27, 28,
+    0, 29, 30, 31, 32, 33, 0, 34,
+    35, 36, 37, 0, 38, 39, 0, 40,
+    41, 42, 43, 44, 45, 46, 47, 48,
+    0, 49, 50, 51, 52, 0, 53, 54,
+    55, 56, 57, 0, 58, 59, 60, 61,
+    62, 63, 64, 65, 66, 67, 68, 69,
+    70, 0, 71, 72, 73, 74, 75, 0,
+    0, 76, 0, 0, 0, 0, 0, 0,
+    0, 0, 77
+};
+
+static const uint8_t glyph_id_ofs_list_30[] = {
+    0, 1, 2, 3, 0, 4, 5, 6,
+    7, 8, 9, 10, 11, 12, 13, 14,
+    15, 16, 17, 18, 19, 20, 21, 0,
+    22, 23, 24, 25, 26, 27, 28, 0,
     29, 30, 31, 32, 33, 34, 35, 36,
-    37, 38, 39, 40, 41, 0, 42, 43,
-    0, 44, 0, 45, 46, 47, 48, 49,
-    50, 51, 52, 53, 54, 55, 56, 57,
-    58, 0, 59, 60, 61, 62, 63, 64,
-    65, 0, 66, 67, 68, 0, 0, 69,
-    70, 71, 72, 73, 74, 75, 76, 77,
-    78, 79, 0, 80, 81, 82, 83, 0,
-    0, 84, 85, 86, 87, 88, 89, 90,
-    91, 92, 93, 94, 95, 96, 0, 97,
-    98, 99, 100, 101, 102, 103, 104, 0,
-    105, 106, 107, 108, 109, 110, 111, 112,
-    113, 114, 115, 116, 117, 118, 119, 0,
-    0, 120, 121, 122, 123, 124, 125, 126,
-    127, 128, 129, 130, 131, 132, 133, 134,
-    135, 136, 0, 137, 138, 139, 140, 141,
-    142, 0, 143, 144, 145, 146, 147, 148,
-    149, 150, 151, 152, 153, 0, 154, 155,
-    156, 157, 158, 159, 0, 160, 0, 0,
-    161, 162, 163, 164, 165, 0, 166, 167,
-    168, 169, 170, 171, 172, 173, 174, 175,
-    176, 177, 178, 179, 180, 181, 182, 0,
-    183, 184, 185, 0, 186, 187, 188, 189,
-    190, 0, 191, 0, 192, 193, 194, 195,
-    196, 197, 198, 199, 200, 201, 202, 203,
-    0, 204, 205
+    37, 38, 39, 0, 40, 41, 42, 43,
+    0, 44, 45, 0, 46, 47, 0, 48,
+    0, 49, 50, 0, 0, 0, 0, 0,
+    0, 0, 51, 0, 0, 0, 52, 0,
+    0, 53, 54, 55, 56, 57, 58, 0,
+    0, 0, 0, 59, 60, 61, 0, 62,
+    63, 0, 64, 0, 65, 66, 67, 68,
+    69, 70, 0, 71, 72, 73
 };
 
-static const uint16_t unicode_list_17[] = {
-    0x0, 0x1, 0x3, 0xc, 0x75, 0x76, 0x77, 0x7a,
-    0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x80, 0x81, 0x82,
-    0x83, 0x84, 0x85, 0x87, 0x89, 0x8b, 0x8c, 0x8d,
-    0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x97, 0x98,
-    0x9c, 0x9d, 0x9f, 0xa1, 0xa2, 0xa3, 0xa7, 0xa9,
-    0xac, 0xae, 0xb7, 0xbb, 0xbe, 0xbf, 0xc0, 0xc1,
-    0xc2, 0xc3, 0xc8, 0xc9, 0xca, 0xcc, 0xcd, 0xcf,
-    0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd8, 0xd9,
-    0xda, 0xdd, 0xe1, 0xe2, 0xe8, 0xec, 0xef, 0xf1,
-    0xf7, 0xf9, 0xff, 0x102, 0x103, 0x104, 0x10a, 0x112,
-    0x113, 0x115, 0x118, 0x11a, 0x11c, 0x11d, 0x121, 0x124,
-    0x125, 0x126, 0x129, 0x134, 0x137, 0x13d, 0x140, 0x143,
-    0x149, 0x14a, 0x14b, 0x14d, 0x14e, 0x151, 0x152, 0x153,
-    0x154, 0x156, 0x159, 0x15a, 0x15b, 0x15c, 0x15f, 0x162,
-    0x16d, 0x175, 0x177, 0x183, 0x184, 0x186, 0x18d, 0x191,
-    0x193, 0x194, 0x195, 0x196, 0x19a, 0x19b, 0x1a3, 0x1a9,
-    0x1bd, 0x1bf, 0x1c5, 0x1c6, 0x1cb, 0x1d5, 0x1df, 0x1e0,
-    0x1e3, 0x1e6, 0x1e8, 0x1eb, 0x1ed, 0x1ee, 0x1ef, 0x1f2,
-    0x1f6, 0x1fd, 0x200, 0x201, 0x203, 0x205, 0x207, 0x209,
-    0x20c, 0x212, 0x218, 0x21a, 0x21e, 0x21f, 0x225, 0x22d,
-    0x22e, 0x230, 0x234, 0x235, 0x238, 0x239, 0x23a, 0x23c,
-    0x241, 0x24f, 0x273, 0x274, 0x276, 0x277, 0x278, 0x279,
-    0x27a, 0x280, 0x282, 0x283, 0x2c6
+static const uint16_t unicode_list_31[] = {
+    0x0, 0x4, 0x5, 0xb, 0xf, 0x11, 0x12, 0x14,
+    0x17, 0x18, 0x19, 0x1a, 0x1c, 0x22, 0x24, 0x25,
+    0x26, 0x27, 0x35, 0x36, 0x38, 0x3b, 0x3d, 0x3f,
+    0x40, 0x44, 0x47, 0x48, 0x49, 0x4c, 0x57, 0x60,
+    0x63, 0x66, 0x69, 0x6c, 0x6d, 0x6e, 0x70, 0x71,
+    0x74, 0x75, 0x76, 0x77, 0x79, 0x7c, 0x7d, 0x7e,
+    0x7f, 0x82, 0x85, 0x90, 0x98, 0x99, 0x9a, 0x9f,
+    0xa3, 0xa6, 0xa7, 0xa9, 0xae, 0xb0, 0xb1, 0xb4,
+    0xb6, 0xb7, 0xb8, 0xb9, 0xbd, 0xbe, 0xbf, 0xc3,
+    0xc6, 0xcc, 0xce, 0xda, 0xdd, 0xe0, 0xe2, 0xe8,
+    0xe9, 0xee, 0x102, 0x103, 0x106, 0x109, 0x10b, 0x10e,
+    0x110, 0x111, 0x112, 0x115, 0x119, 0x123, 0x124, 0x126,
+    0x12c, 0x135, 0x13b, 0x13d, 0x141, 0x142, 0x144, 0x148,
+    0x150, 0x153, 0x15b, 0x15d, 0x15f, 0x162, 0x164, 0x196,
+    0x197, 0x199, 0x19a, 0x19b, 0x19c, 0x19d, 0x1a3, 0x1a5,
+    0x1a6
 };
 
-static const uint8_t glyph_id_ofs_list_19[] = {
-    0, 1, 2, 0, 3, 4, 0, 5,
-    6, 7, 8, 9, 10, 11, 0, 12,
-    13, 14, 15, 16, 0, 17, 18, 19,
-    20
+static const uint8_t glyph_id_ofs_list_33[] = {
+    0, 1, 0, 2, 3, 4, 0, 5,
+    6, 0, 7, 8, 9, 0, 10, 11,
+    12, 13, 14, 15, 16, 17, 18, 0,
+    19, 20, 21, 22
 };
 
-static const uint16_t unicode_list_20[] = {
-    0x0, 0x3, 0x5, 0x7, 0xa, 0xb, 0x10, 0x11,
-    0x19, 0x1a, 0x3f, 0x86
+static const uint16_t unicode_list_34[] = {
+    0x0, 0x3, 0x4, 0x5, 0x7, 0xa, 0xb, 0xc,
+    0x10, 0x11, 0x19, 0x1a, 0x3f, 0x42, 0x60, 0x86,
+    0x87
 };
 
-static const uint8_t glyph_id_ofs_list_21[] = {
-    0, 0, 1, 2, 3, 4, 5, 6,
-    7, 8, 9, 10, 11, 12, 0, 13,
-    14, 15, 16, 17, 18, 19, 0, 20,
-    21, 0, 22, 23, 24, 0, 25, 26,
-    27, 28, 29, 30, 0, 31, 32, 0,
-    33, 0, 34, 35, 0, 36, 37, 38,
-    0, 39, 40, 41, 42, 0, 0, 0,
+static const uint8_t glyph_id_ofs_list_35[] = {
+    0, 0, 1, 0, 2, 3, 4, 5,
+    6, 7, 8, 9, 10, 11, 12, 13,
+    0, 14, 15, 16, 17, 0, 0, 18,
+    0, 19, 20, 0, 21, 22, 23, 0,
+    0, 24, 25, 26, 27, 28, 0, 29,
+    30, 0, 31, 0, 32, 33, 34, 35,
+    36, 37, 38, 39, 40, 41, 42, 0,
     0, 0, 0, 0, 0, 0, 0, 0,
-    43
+    0, 0, 43, 0, 0, 44
 };
 
-static const uint8_t glyph_id_ofs_list_22[] = {
+static const uint8_t glyph_id_ofs_list_36[] = {
     0, 1, 2, 3, 4, 5, 0, 6,
     7, 8, 9, 10, 11, 12, 13, 14,
     15, 16, 17, 18, 19, 20, 21, 0,
     22, 23, 24, 25, 26, 0, 27, 28,
-    29, 0, 30, 31, 32, 33, 34, 35,
-    0, 0, 36, 37, 38, 0, 39, 40,
-    41, 42, 0, 43, 44, 45, 46, 47,
+    29, 0, 0, 30, 31, 32, 33, 34,
+    0, 0, 35, 36, 37, 0, 38, 39,
+    40, 41, 42, 43, 44, 45, 46, 47,
     48, 49, 0, 50, 51
 };
 
-static const uint16_t unicode_list_23[] = {
-    0x0, 0x6, 0x7, 0x8, 0xa, 0xc, 0x10, 0x11,
-    0x12, 0x15, 0x1b, 0x1c, 0x21, 0x23, 0x28, 0x29,
-    0x2f, 0x36, 0x3b, 0x3f, 0x49, 0x4b, 0x63, 0x6f,
-    0x7f, 0x82, 0x8c, 0x91, 0x92, 0x93, 0x94, 0x95,
-    0x96, 0x97, 0x98, 0x99, 0x9f, 0xa1, 0x13b, 0x179,
-    0x1cc
+static const uint16_t unicode_list_37[] = {
+    0x0, 0x1, 0x6, 0x7, 0x8, 0xa, 0xc, 0x10,
+    0x11, 0x12, 0x15, 0x1b, 0x1c, 0x21, 0x23, 0x28,
+    0x2f, 0x31, 0x36, 0x3b, 0x3d, 0x3f, 0x49, 0x4b,
+    0x53, 0x58, 0x5f, 0x63, 0x6f, 0x73, 0x7f, 0x82,
+    0x8b, 0x8c, 0x91, 0x92, 0x93, 0x94, 0x95, 0x97,
+    0x98, 0x99, 0x9d, 0x9f, 0xa1, 0xa4, 0x1cc
 };
 
-static const uint8_t glyph_id_ofs_list_24[] = {
-    0, 1, 2, 3, 0, 0, 4, 5,
-    6, 7, 8, 9, 10, 0, 11, 0,
-    0, 12, 13, 0, 0, 14, 0, 0,
-    0, 0, 0, 15, 16, 17, 0, 0,
-    18, 19, 20, 21, 22, 23, 24, 25,
-    26, 27, 28, 0, 29, 0, 30, 31,
-    0, 0, 32, 33, 34, 35, 36, 37,
-    38, 39, 40, 41, 42, 43, 44, 0,
-    0, 45, 0, 0, 46, 47, 0, 48,
-    49, 0, 50, 51, 0, 52, 53, 54,
-    55, 56, 0, 0, 57, 0, 58, 59,
-    0, 0, 60, 0, 0, 0, 61, 62,
-    63, 0, 64, 65, 0, 66
+static const uint8_t glyph_id_ofs_list_38[] = {
+    0, 0, 1, 2, 0, 0, 3, 4,
+    5, 6, 0, 0, 7, 0, 8, 9,
+    0, 10, 11, 12, 0, 13, 14, 0,
+    0, 0, 0, 15, 16, 17, 0, 18,
+    19, 20, 21, 22, 23, 24, 25, 26,
+    27, 28, 29, 0, 30, 0, 31, 32,
+    0, 33, 34, 35, 36, 37, 38, 39,
+    40, 41, 0, 42, 43, 44, 45, 0,
+    0, 0, 0, 0, 46, 47, 48, 49,
+    50, 0, 0, 51, 52, 53, 54, 55,
+    56, 57, 0, 0, 58, 59, 60, 61,
+    62, 63, 64, 0, 0, 65, 66, 67,
+    68, 0, 0, 69
 };
 
-static const uint8_t glyph_id_ofs_list_25[] = {
-    0, 1, 2, 3, 4, 0, 0, 5,
-    0, 6, 7, 8, 9, 10, 11, 12,
-    0, 13, 0, 14, 15, 0, 16, 0,
-    0, 17, 18, 19, 20, 21, 22, 23,
-    24, 0, 25, 26, 27, 28, 29, 30,
-    31, 32, 33, 34, 35, 36, 0, 37,
-    38, 39, 40, 0, 0, 0, 41, 0,
-    42, 43, 0, 44, 45, 0, 0, 46,
-    0, 0, 0, 0, 47, 48, 0, 49,
-    50, 51, 52, 53, 54, 55
+static const uint8_t glyph_id_ofs_list_39[] = {
+    0, 1, 2, 3, 4, 0, 5, 6,
+    0, 7, 8, 9, 10, 11, 12, 0,
+    13, 0, 14, 15, 16, 0, 17, 18,
+    19, 20, 21, 22, 0, 0, 23, 24,
+    25, 0, 26, 27, 28, 29, 30, 31,
+    32, 33, 34, 35, 36, 37, 0, 38,
+    39, 0, 40, 0, 0, 0, 41, 0,
+    42, 43, 0, 44, 45, 46, 0, 47,
+    0, 0, 0, 0, 48, 49, 0, 50,
+    51, 52, 53, 54, 55, 56, 57
 };
 
-static const uint16_t unicode_list_26[] = {
-    0x0, 0x3, 0x5, 0x11, 0x24, 0x2f, 0x31, 0x38,
-    0x4a, 0x4d, 0x4f, 0x55, 0x5b, 0x5f, 0x60, 0x61,
-    0x63, 0x66, 0x6b, 0x6f, 0x71, 0x72, 0x74, 0x77,
-    0x79, 0x7b, 0x81, 0x8d, 0x8e, 0x90, 0x9f, 0xa0,
-    0xab, 0xb2, 0xb4, 0xbb, 0xbe, 0xc1, 0xc9, 0xcb,
-    0xcd, 0xd0, 0xe2, 0x111, 0x112, 0x113, 0x115, 0x116,
-    0x117, 0x118, 0x119, 0x11a, 0x11b, 0x11c, 0x11d, 0x11e,
-    0x12b, 0x12c, 0x12d, 0x131, 0x132, 0x6093, 0x609e, 0x60ac,
-    0x60b1, 0x60f0
+static const uint16_t unicode_list_40[] = {
+    0x0, 0x1, 0x3, 0xe, 0xf, 0x12, 0x17, 0x18,
+    0x1b, 0x22, 0x23, 0x2d, 0x2f, 0x36, 0x44, 0x48,
+    0x4b, 0x4d, 0x4e, 0x54, 0x59, 0x5d, 0x5e, 0x5f,
+    0x61, 0x64, 0x68, 0x6b, 0x6c, 0x6d, 0x6f, 0x70,
+    0x72, 0x75, 0x77, 0x79, 0x7a, 0x7f, 0x89, 0x8b,
+    0x8c, 0x8e, 0x9b, 0x9d, 0x9e, 0xa0, 0xa3, 0xa7,
+    0xa9, 0xb0, 0xb2, 0xbc, 0xbf, 0xc7, 0xc9, 0xcb,
+    0xcd, 0xce, 0xd4, 0xe0, 0xe1, 0x10f, 0x110, 0x113,
+    0x114, 0x115, 0x116, 0x117, 0x118, 0x119, 0x11a, 0x11b,
+    0x11c, 0x129, 0x12a, 0x12b, 0x12f, 0x130, 0x6091, 0x609c,
+    0x60aa, 0x60af
 };
 
 /*Collect the unicode lists and glyph_id offsets*/
 static const lv_font_fmt_txt_cmap_t cmaps[] =
 {
     {
-        .range_start = 10, .range_length = 1, .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 = 33, .range_length = 28, .glyph_id_start = 2,
+        .range_start = 32, .range_length = 29, .glyph_id_start = 1,
         .unicode_list = NULL, .glyph_id_ofs_list = NULL, .list_length = 0, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY
     },
     {
@@ -177052,92 +188776,152 @@ static const lv_font_fmt_txt_cmap_t cmaps[] =
         .unicode_list = NULL, .glyph_id_ofs_list = NULL, .list_length = 0, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY
     },
     {
-        .range_start = 176, .range_length = 21267, .glyph_id_start = 93,
-        .unicode_list = unicode_list_5, .glyph_id_ofs_list = NULL, .list_length = 571, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
+        .range_start = 176, .range_length = 19796, .glyph_id_start = 93,
+        .unicode_list = unicode_list_4, .glyph_id_ofs_list = NULL, .list_length = 8, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
+    },
+    {
+        .range_start = 19975, .range_length = 241, .glyph_id_start = 101,
+        .unicode_list = NULL, .glyph_id_ofs_list = glyph_id_ofs_list_5, .list_length = 241, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_FULL
+    },
+    {
+        .range_start = 20219, .range_length = 1254, .glyph_id_start = 245,
+        .unicode_list = unicode_list_6, .glyph_id_ofs_list = NULL, .list_length = 486, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
+    },
+    {
+        .range_start = 21475, .range_length = 253, .glyph_id_start = 731,
+        .unicode_list = NULL, .glyph_id_ofs_list = glyph_id_ofs_list_7, .list_length = 253, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_FULL
+    },
+    {
+        .range_start = 21733, .range_length = 10679, .glyph_id_start = 889,
+        .unicode_list = unicode_list_8, .glyph_id_ofs_list = NULL, .list_length = 3401, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
+    },
+    {
+        .range_start = 32415, .range_length = 127, .glyph_id_start = 4290,
+        .unicode_list = NULL, .glyph_id_ofs_list = glyph_id_ofs_list_9, .list_length = 127, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_FULL
+    },
+    {
+        .range_start = 32543, .range_length = 24, .glyph_id_start = 4407,
+        .unicode_list = NULL, .glyph_id_ofs_list = NULL, .list_length = 0, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY
+    },
+    {
+        .range_start = 32568, .range_length = 845, .glyph_id_start = 4431,
+        .unicode_list = unicode_list_11, .glyph_id_ofs_list = NULL, .list_length = 330, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
+    },
+    {
+        .range_start = 33416, .range_length = 232, .glyph_id_start = 4761,
+        .unicode_list = NULL, .glyph_id_ofs_list = glyph_id_ofs_list_12, .list_length = 232, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_FULL
+    },
+    {
+        .range_start = 33655, .range_length = 2038, .glyph_id_start = 4894,
+        .unicode_list = unicode_list_13, .glyph_id_ofs_list = NULL, .list_length = 492, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
+    },
+    {
+        .range_start = 35744, .range_length = 48, .glyph_id_start = 5386,
+        .unicode_list = NULL, .glyph_id_ofs_list = glyph_id_ofs_list_14, .list_length = 48, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_FULL
+    },
+    {
+        .range_start = 35793, .range_length = 25, .glyph_id_start = 5430,
+        .unicode_list = NULL, .glyph_id_ofs_list = NULL, .list_length = 0, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY
+    },
+    {
+        .range_start = 35819, .range_length = 30, .glyph_id_start = 5455,
+        .unicode_list = NULL, .glyph_id_ofs_list = NULL, .list_length = 0, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY
+    },
+    {
+        .range_start = 35850, .range_length = 20, .glyph_id_start = 5485,
+        .unicode_list = NULL, .glyph_id_ofs_list = NULL, .list_length = 0, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY
+    },
+    {
+        .range_start = 35871, .range_length = 25, .glyph_id_start = 5505,
+        .unicode_list = NULL, .glyph_id_ofs_list = NULL, .list_length = 0, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY
+    },
+    {
+        .range_start = 35905, .range_length = 223, .glyph_id_start = 5530,
+        .unicode_list = unicode_list_19, .glyph_id_ofs_list = NULL, .list_length = 25, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
     },
     {
-        .range_start = 21448, .range_length = 149, .glyph_id_start = 664,
-        .unicode_list = NULL, .glyph_id_ofs_list = glyph_id_ofs_list_6, .list_length = 149, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_FULL
+        .range_start = 36129, .range_length = 48, .glyph_id_start = 5555,
+        .unicode_list = NULL, .glyph_id_ofs_list = NULL, .list_length = 0, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY
     },
     {
-        .range_start = 21602, .range_length = 6168, .glyph_id_start = 757,
-        .unicode_list = unicode_list_7, .glyph_id_ofs_list = NULL, .list_length = 1996, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
+        .range_start = 36179, .range_length = 535, .glyph_id_start = 5603,
+        .unicode_list = unicode_list_21, .glyph_id_ofs_list = NULL, .list_length = 136, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
     },
     {
-        .range_start = 27773, .range_length = 217, .glyph_id_start = 2753,
-        .unicode_list = NULL, .glyph_id_ofs_list = glyph_id_ofs_list_8, .list_length = 217, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_FULL
+        .range_start = 36715, .range_length = 21, .glyph_id_start = 5739,
+        .unicode_list = NULL, .glyph_id_ofs_list = NULL, .list_length = 0, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY
     },
     {
-        .range_start = 27993, .range_length = 4419, .glyph_id_start = 2879,
-        .unicode_list = unicode_list_9, .glyph_id_ofs_list = NULL, .list_length = 1191, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
+        .range_start = 36737, .range_length = 162, .glyph_id_start = 5760,
+        .unicode_list = NULL, .glyph_id_ofs_list = glyph_id_ofs_list_23, .list_length = 162, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_FULL
     },
     {
-        .range_start = 32418, .range_length = 149, .glyph_id_start = 4070,
-        .unicode_list = NULL, .glyph_id_ofs_list = glyph_id_ofs_list_10, .list_length = 149, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_FULL
+        .range_start = 36902, .range_length = 1138, .glyph_id_start = 5859,
+        .unicode_list = unicode_list_24, .glyph_id_ofs_list = NULL, .list_length = 193, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
     },
     {
-        .range_start = 32568, .range_length = 3125, .glyph_id_start = 4203,
-        .unicode_list = unicode_list_11, .glyph_id_ofs_list = NULL, .list_length = 841, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
+        .range_start = 38041, .range_length = 46, .glyph_id_start = 6052,
+        .unicode_list = NULL, .glyph_id_ofs_list = NULL, .list_length = 0, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY
     },
     {
-        .range_start = 35745, .range_length = 151, .glyph_id_start = 5044,
-        .unicode_list = NULL, .glyph_id_ofs_list = glyph_id_ofs_list_12, .list_length = 151, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_FULL
+        .range_start = 38088, .range_length = 30, .glyph_id_start = 6098,
+        .unicode_list = NULL, .glyph_id_ofs_list = glyph_id_ofs_list_26, .list_length = 30, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_FULL
     },
     {
-        .range_start = 35905, .range_length = 207, .glyph_id_start = 5182,
-        .unicode_list = unicode_list_13, .glyph_id_ofs_list = NULL, .list_length = 25, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
+        .range_start = 38119, .range_length = 20, .glyph_id_start = 6124,
+        .unicode_list = NULL, .glyph_id_ofs_list = NULL, .list_length = 0, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY
     },
     {
-        .range_start = 36123, .range_length = 93, .glyph_id_start = 5207,
-        .unicode_list = NULL, .glyph_id_ofs_list = glyph_id_ofs_list_14, .list_length = 93, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_FULL
+        .range_start = 38140, .range_length = 32, .glyph_id_start = 6144,
+        .unicode_list = NULL, .glyph_id_ofs_list = NULL, .list_length = 0, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY
     },
     {
-        .range_start = 36225, .range_length = 1771, .glyph_id_start = 5275,
-        .unicode_list = unicode_list_15, .glyph_id_ofs_list = NULL, .list_length = 379, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
+        .range_start = 38173, .range_length = 99, .glyph_id_start = 6176,
+        .unicode_list = NULL, .glyph_id_ofs_list = glyph_id_ofs_list_29, .list_length = 99, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_FULL
     },
     {
-        .range_start = 38022, .range_length = 235, .glyph_id_start = 5654,
-        .unicode_list = NULL, .glyph_id_ofs_list = glyph_id_ofs_list_16, .list_length = 235, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_FULL
+        .range_start = 38376, .range_length = 102, .glyph_id_start = 6254,
+        .unicode_list = NULL, .glyph_id_ofs_list = glyph_id_ofs_list_30, .list_length = 102, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_FULL
     },
     {
-        .range_start = 38259, .range_length = 711, .glyph_id_start = 5860,
-        .unicode_list = unicode_list_17, .glyph_id_ofs_list = NULL, .list_length = 181, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
+        .range_start = 38480, .range_length = 423, .glyph_id_start = 6328,
+        .unicode_list = unicode_list_31, .glyph_id_ofs_list = NULL, .list_length = 121, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
     },
     {
-        .range_start = 39029, .range_length = 25, .glyph_id_start = 6041,
+        .range_start = 39029, .range_length = 22, .glyph_id_start = 6449,
         .unicode_list = NULL, .glyph_id_ofs_list = NULL, .list_length = 0, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY
     },
     {
-        .range_start = 39055, .range_length = 25, .glyph_id_start = 6066,
-        .unicode_list = NULL, .glyph_id_ofs_list = glyph_id_ofs_list_19, .list_length = 25, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_FULL
+        .range_start = 39052, .range_length = 28, .glyph_id_start = 6471,
+        .unicode_list = NULL, .glyph_id_ofs_list = glyph_id_ofs_list_33, .list_length = 28, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_FULL
     },
     {
-        .range_start = 39118, .range_length = 135, .glyph_id_start = 6087,
-        .unicode_list = unicode_list_20, .glyph_id_ofs_list = NULL, .list_length = 12, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
+        .range_start = 39118, .range_length = 136, .glyph_id_start = 6494,
+        .unicode_list = unicode_list_34, .glyph_id_ofs_list = NULL, .list_length = 17, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
     },
     {
-        .range_start = 39269, .range_length = 65, .glyph_id_start = 6099,
-        .unicode_list = NULL, .glyph_id_ofs_list = glyph_id_ofs_list_21, .list_length = 65, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_FULL
+        .range_start = 39267, .range_length = 70, .glyph_id_start = 6511,
+        .unicode_list = NULL, .glyph_id_ofs_list = glyph_id_ofs_list_35, .list_length = 70, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_FULL
     },
     {
-        .range_start = 39532, .range_length = 61, .glyph_id_start = 6143,
-        .unicode_list = NULL, .glyph_id_ofs_list = glyph_id_ofs_list_22, .list_length = 61, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_FULL
+        .range_start = 39532, .range_length = 61, .glyph_id_start = 6556,
+        .unicode_list = NULL, .glyph_id_ofs_list = glyph_id_ofs_list_36, .list_length = 61, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_FULL
     },
     {
-        .range_start = 39600, .range_length = 461, .glyph_id_start = 6195,
-        .unicode_list = unicode_list_23, .glyph_id_ofs_list = NULL, .list_length = 41, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
+        .range_start = 39600, .range_length = 461, .glyph_id_start = 6608,
+        .unicode_list = unicode_list_37, .glyph_id_ofs_list = NULL, .list_length = 47, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
     },
     {
-        .range_start = 40063, .range_length = 102, .glyph_id_start = 6236,
-        .unicode_list = NULL, .glyph_id_ofs_list = glyph_id_ofs_list_24, .list_length = 102, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_FULL
+        .range_start = 40063, .range_length = 100, .glyph_id_start = 6655,
+        .unicode_list = NULL, .glyph_id_ofs_list = glyph_id_ofs_list_38, .list_length = 100, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_FULL
     },
     {
-        .range_start = 40479, .range_length = 78, .glyph_id_start = 6303,
-        .unicode_list = NULL, .glyph_id_ofs_list = glyph_id_ofs_list_25, .list_length = 78, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_FULL
+        .range_start = 40479, .range_length = 79, .glyph_id_start = 6725,
+        .unicode_list = NULL, .glyph_id_ofs_list = glyph_id_ofs_list_39, .list_length = 79, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_FULL
     },
     {
-        .range_start = 40558, .range_length = 24817, .glyph_id_start = 6359,
-        .unicode_list = unicode_list_26, .glyph_id_ofs_list = NULL, .list_length = 66, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
+        .range_start = 40560, .range_length = 24752, .glyph_id_start = 6783,
+        .unicode_list = unicode_list_40, .glyph_id_ofs_list = NULL, .list_length = 82, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
     }
 };
 
@@ -177727,7 +189511,7 @@ static lv_font_fmt_txt_dsc_t font_dsc = {
     .cmaps = cmaps,
     .kern_dsc = &kern_pairs,
     .kern_scale = 16,
-    .cmap_num = 27,
+    .cmap_num = 41,
     .bpp = 2,
     .kern_classes = 0,
     .bitmap_format = 0,
@@ -177761,9 +189545,6 @@ lv_font_t lv_font_21_light = {
     .dsc = &font_dsc           /*The custom font data. Will be accessed by `get_glyph_bitmap/dsc` */
 };
 
-#if (LV_FONT_FMT_TXT_LARGE == 0)
-#  error "Too large font or glyphs in LV_FONT_21_LIGHT. Enable LV_FONT_FMT_TXT_LARGE in lv_conf.h")
-#endif
 
 
 #endif /*#if LV_FONT_21_LIGHT*/
index 452cbe9..7a36f01 100644 (file)
@@ -73,7 +73,7 @@ static int32_t kern_pair_16_compare(const void * ref, const void * element);
 /**
  * Used as `get_glyph_bitmap` callback in LittelvGL's native font format if the font is uncompressed.
  * @param font pointer to font
- * @param unicode_letter an unicode letter which bitmap should be get
+ * @param unicode_letter a unicode letter which bitmap should be get
  * @return pointer to the bitmap or NULL if not found
  */
 const uint8_t * lv_font_get_bitmap_fmt_txt(const lv_font_t * font, uint32_t unicode_letter)
@@ -141,7 +141,7 @@ const uint8_t * lv_font_get_bitmap_fmt_txt(const lv_font_t * font, uint32_t unic
  * Used as `get_glyph_dsc` callback in LittelvGL's native font format if the font is uncompressed.
  * @param font_p pointer to font
  * @param dsc_out store the result descriptor here
- * @param letter an UNICODE letter code
+ * @param letter a UNICODE letter code
  * @return true: descriptor is successfully loaded into `dsc_out`.
  *         false: the letter was not found, no data is loaded to `dsc_out`
  */
index 9c9d422..86546a3 100644 (file)
@@ -170,7 +170,7 @@ typedef struct {
 
     /**
      * Store kerning values.
-     * Can be  `lv_font_fmt_txt_kern_pair_t *  or `lv_font_kern_classes_fmt_txt_t *`
+     * Can be `lv_font_fmt_txt_kern_pair_t *  or `lv_font_kern_classes_fmt_txt_t *`
      * depending on `kern_classes`
      */
     const void * kern_dsc;
@@ -204,7 +204,7 @@ typedef struct {
 /**
  * Used as `get_glyph_bitmap` callback in LittelvGL's native font format if the font is uncompressed.
  * @param font pointer to font
- * @param unicode_letter an unicode letter which bitmap should be get
+ * @param unicode_letter a unicode letter which bitmap should be get
  * @return pointer to the bitmap or NULL if not found
  */
 const uint8_t * lv_font_get_bitmap_fmt_txt(const lv_font_t * font, uint32_t letter);
@@ -213,7 +213,7 @@ const uint8_t * lv_font_get_bitmap_fmt_txt(const lv_font_t * font, uint32_t lett
  * Used as `get_glyph_dsc` callback in LittelvGL's native font format if the font is uncompressed.
  * @param font_p pointer to font
  * @param dsc_out store the result descriptor here
- * @param letter an UNICODE letter code
+ * @param letter a UNICODE letter code
  * @return true: descriptor is successfully loaded into `dsc_out`.
  *         false: the letter was not found, no data is loaded to `dsc_out`
  */
index 8c6617d..a08fb69 100644 (file)
@@ -1,17 +1,17 @@
 /*******************************************************************************
  * Size: 14 px
  * Bpp: 4
- * Opts: 
+ * Opts: --no-compress --no-prefilter --bpp 4 --size 14 --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,61507,61512,61515,61516,61517,61521,61522,61523,61524,61543,61544,61550,61552,61553,61556,61559,61560,61561,61563,61587,61589,61636,61637,61639,61641,61664,61671,61674,61683,61724,61732,61787,61931,62016,62017,62018,62019,62020,62087,62099,62212,62189,62810,63426,63650 --format lvgl -o lv_font_montserrat_14.c --force-fast-kern-format
  ******************************************************************************/
 
 #ifdef LV_LVGL_H_INCLUDE_SIMPLE
-#include "lvgl.h"
+    #include "lvgl.h"
 #else
 #include "lvgl/lvgl.h"
 #endif
 
 #ifndef LV_FONT_MONTSERRAT_14
-#define LV_FONT_MONTSERRAT_14 1
+    #define LV_FONT_MONTSERRAT_14 1
 #endif
 
 #if LV_FONT_MONTSERRAT_14
 static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     /* U+0020 " " */
 
+    /* U+0021 "!" */
+    0xe, 0xa0, 0xd9, 0xd, 0x90, 0xc8, 0xc, 0x80,
+    0xb7, 0xa, 0x60, 0x11, 0xb, 0x80, 0xd9,
+
+    /* U+0022 "\"" */
+    0x1f, 0x9, 0x91, 0xf0, 0x88, 0x1f, 0x8, 0x80,
+    0xf0, 0x88, 0x0, 0x0, 0x0,
+
+    /* U+0023 "#" */
+    0x0, 0xd, 0x20, 0x3c, 0x0, 0x0, 0xf, 0x0,
+    0x69, 0x0, 0x2f, 0xff, 0xff, 0xff, 0xf7, 0x1,
+    0x5c, 0x11, 0xa6, 0x10, 0x0, 0x69, 0x0, 0xc3,
+    0x0, 0x0, 0x88, 0x0, 0xd2, 0x0, 0x9f, 0xff,
+    0xff, 0xff, 0xf0, 0x12, 0xc5, 0x23, 0xe2, 0x20,
+    0x0, 0xd2, 0x3, 0xc0, 0x0, 0x0, 0xf0, 0x4,
+    0xb0, 0x0,
+
+    /* U+0024 "$" */
+    0x0, 0x0, 0x70, 0x0, 0x0, 0x0, 0xe, 0x0,
+    0x0, 0x0, 0x0, 0xe0, 0x0, 0x0, 0x19, 0xef,
+    0xea, 0x30, 0xc, 0xd6, 0xe6, 0xa7, 0x2, 0xf4,
+    0xe, 0x0, 0x0, 0x1f, 0x80, 0xe0, 0x0, 0x0,
+    0x6f, 0xef, 0x50, 0x0, 0x0, 0x16, 0xff, 0xe5,
+    0x0, 0x0, 0xe, 0xa, 0xf0, 0x1, 0x0, 0xe0,
+    0x5f, 0x13, 0xf8, 0x5e, 0x6e, 0xb0, 0x5, 0xcf,
+    0xfe, 0x91, 0x0, 0x0, 0xe, 0x0, 0x0, 0x0,
+    0x0, 0x70, 0x0, 0x0,
+
+    /* U+0025 "%" */
+    0x8, 0xdd, 0x30, 0x0, 0xa7, 0x0, 0x4b, 0x2,
+    0xd0, 0x4, 0xc0, 0x0, 0x77, 0x0, 0xd0, 0x1d,
+    0x20, 0x0, 0x4b, 0x3, 0xd0, 0xa7, 0x0, 0x0,
+    0x7, 0xdc, 0x34, 0xc4, 0xcc, 0x30, 0x0, 0x0,
+    0x1d, 0x2d, 0x22, 0xd0, 0x0, 0x0, 0xa6, 0x3b,
+    0x0, 0xb3, 0x0, 0x5, 0xc0, 0x3a, 0x0, 0xa3,
+    0x0, 0x1d, 0x20, 0xd, 0x0, 0xd0, 0x0, 0xa6,
+    0x0, 0x4, 0xcc, 0x40,
+
+    /* U+0026 "&" */
+    0x0, 0x4d, 0xfc, 0x30, 0x0, 0x0, 0xf7, 0x18,
+    0xc0, 0x0, 0x1, 0xf2, 0x5, 0xd0, 0x0, 0x0,
+    0xbb, 0x6e, 0x40, 0x0, 0x0, 0x5f, 0xf3, 0x0,
+    0x0, 0x7, 0xe6, 0xdb, 0x3, 0x80, 0x2f, 0x30,
+    0x1d, 0xba, 0xa0, 0x5f, 0x0, 0x1, 0xdf, 0x40,
+    0x1f, 0xb4, 0x48, 0xfe, 0xc0, 0x3, 0xbf, 0xfc,
+    0x40, 0xb2, 0x0, 0x0, 0x0, 0x0, 0x0,
+
+    /* U+0027 "'" */
+    0x1f, 0x1, 0xf0, 0x1f, 0x0, 0xf0, 0x0, 0x0,
+
+    /* U+0028 "(" */
+    0x3, 0xf1, 0xb, 0x90, 0xf, 0x40, 0x4f, 0x0,
+    0x7d, 0x0, 0x9b, 0x0, 0xaa, 0x0, 0xaa, 0x0,
+    0x9b, 0x0, 0x7d, 0x0, 0x4f, 0x0, 0xf, 0x40,
+    0xb, 0x90, 0x3, 0xf1,
+
+    /* U+0029 ")" */
+    0x5e, 0x0, 0xe, 0x60, 0x8, 0xc0, 0x4, 0xf0,
+    0x1, 0xf3, 0x0, 0xf5, 0x0, 0xe6, 0x0, 0xe6,
+    0x0, 0xf5, 0x1, 0xf3, 0x4, 0xf0, 0x8, 0xc0,
+    0xe, 0x60, 0x5e, 0x0,
+
+    /* U+002A "*" */
+    0x0, 0x93, 0x0, 0x88, 0xa6, 0xc2, 0x9, 0xfe,
+    0x40, 0x4d, 0xdd, 0xb1, 0x42, 0x93, 0x50, 0x0,
+    0x52, 0x0,
+
+    /* U+002B "+" */
+    0x0, 0x4, 0x50, 0x0, 0x0, 0x8, 0xa0, 0x0,
+    0x0, 0x8, 0xa0, 0x0, 0x1f, 0xff, 0xff, 0xf3,
+    0x3, 0x39, 0xb3, 0x30, 0x0, 0x8, 0xa0, 0x0,
+    0x0, 0x8, 0xa0, 0x0,
+
     /* U+002C "," */
-    0xb, 0x32, 0xf0, 0x6b, 0x9, 0x60,
+    0x1, 0x3, 0xf6, 0x1e, 0x60, 0xe1, 0x2c, 0x0,
 
     /* U+002D "-" */
-    0xef, 0xff, 0x11, 0x22, 0x20,
+    0x0, 0x0, 0x3, 0xff, 0xf9, 0x3, 0x33, 0x10,
 
     /* U+002E "." */
-    0xb, 0x40, 0xe6,
+    0x0, 0x3, 0xf5, 0x2e, 0x40,
+
+    /* U+002F "/" */
+    0x0, 0x0, 0xe, 0x40, 0x0, 0x4, 0xe0, 0x0,
+    0x0, 0x9a, 0x0, 0x0, 0xe, 0x40, 0x0, 0x4,
+    0xf0, 0x0, 0x0, 0x9a, 0x0, 0x0, 0xe, 0x40,
+    0x0, 0x3, 0xf0, 0x0, 0x0, 0x9a, 0x0, 0x0,
+    0xe, 0x50, 0x0, 0x3, 0xf0, 0x0, 0x0, 0x9a,
+    0x0, 0x0, 0xe, 0x50, 0x0, 0x3, 0xf0, 0x0,
+    0x0,
 
     /* U+0030 "0" */
-    0x0, 0x7e, 0xfb, 0x10, 0x7, 0xf5, 0x3c, 0xc0,
-    0xe, 0x70, 0x3, 0xf3, 0x2f, 0x20, 0x0, 0xe7,
-    0x5f, 0x0, 0x0, 0xd9, 0x5f, 0x0, 0x0, 0xc9,
-    0x5f, 0x0, 0x0, 0xc8, 0x3f, 0x20, 0x0, 0xe6,
-    0xf, 0x60, 0x3, 0xf2, 0x8, 0xe4, 0x3c, 0xa0,
-    0x0, 0x9f, 0xf9, 0x0,
+    0x0, 0x4c, 0xfe, 0x70, 0x0, 0x4f, 0xb6, 0x8f,
+    0x90, 0xd, 0xb0, 0x0, 0x5f, 0x32, 0xf4, 0x0,
+    0x0, 0xe7, 0x4f, 0x20, 0x0, 0xc, 0xa4, 0xf2,
+    0x0, 0x0, 0xca, 0x2f, 0x40, 0x0, 0xe, 0x70,
+    0xdb, 0x0, 0x5, 0xf2, 0x4, 0xfb, 0x68, 0xf9,
+    0x0, 0x4, 0xcf, 0xe7, 0x0,
 
     /* U+0031 "1" */
-    0x0, 0x2c, 0x33, 0xaf, 0xf3, 0x8a, 0x3f, 0x30,
-    0x1, 0xf3, 0x0, 0x1f, 0x30, 0x1, 0xf3, 0x0,
-    0x1f, 0x30, 0x1, 0xf3, 0x0, 0x1f, 0x30, 0x1,
-    0xf3, 0x0, 0x1f, 0x30,
+    0xef, 0xfb, 0x44, 0xcb, 0x0, 0xab, 0x0, 0xab,
+    0x0, 0xab, 0x0, 0xab, 0x0, 0xab, 0x0, 0xab,
+    0x0, 0xab, 0x0, 0xab,
 
     /* U+0032 "2" */
-    0x2, 0xbf, 0xea, 0x10, 0xb, 0x83, 0x4d, 0xc0,
-    0x1, 0x0, 0x4, 0xf1, 0x0, 0x0, 0x3, 0xf1,
-    0x0, 0x0, 0xa, 0xc0, 0x0, 0x0, 0x8f, 0x30,
-    0x0, 0x1b, 0xe3, 0x0, 0x1, 0xdb, 0x10, 0x0,
-    0xb, 0xa0, 0x0, 0x0, 0x1f, 0x73, 0x33, 0x31,
-    0x2f, 0xff, 0xff, 0xf7,
+    0x7, 0xdf, 0xea, 0x10, 0x8e, 0x85, 0x7e, 0xc0,
+    0x1, 0x0, 0x6, 0xf1, 0x0, 0x0, 0x6, 0xf0,
+    0x0, 0x0, 0xd, 0x90, 0x0, 0x0, 0xcc, 0x0,
+    0x0, 0x1c, 0xc0, 0x0, 0x1, 0xdb, 0x0, 0x0,
+    0x1d, 0xe5, 0x44, 0x42, 0x7f, 0xff, 0xff, 0xf9,
 
     /* U+0033 "3" */
-    0x4, 0xcf, 0xe8, 0x0, 0x7, 0x53, 0x6f, 0x70,
-    0x0, 0x0, 0xa, 0xc0, 0x0, 0x0, 0xa, 0xa0,
-    0x0, 0x0, 0x5f, 0x30, 0x0, 0xff, 0xf6, 0x0,
-    0x0, 0x23, 0x6e, 0x90, 0x0, 0x0, 0x5, 0xf1,
-    0x0, 0x0, 0x5, 0xf1, 0xa, 0x43, 0x5e, 0xb0,
-    0xa, 0xef, 0xd8, 0x0,
+    0x7f, 0xff, 0xff, 0xf0, 0x24, 0x44, 0x5f, 0x90,
+    0x0, 0x0, 0xbc, 0x0, 0x0, 0x9, 0xe1, 0x0,
+    0x0, 0x3f, 0xd8, 0x10, 0x0, 0x4, 0x6d, 0xd0,
+    0x0, 0x0, 0x2, 0xf4, 0x10, 0x0, 0x2, 0xf4,
+    0xbd, 0x75, 0x7d, 0xd0, 0x19, 0xdf, 0xea, 0x10,
 
     /* U+0034 "4" */
-    0x0, 0x0, 0x4f, 0x50, 0x0, 0x0, 0xdf, 0x50,
-    0x0, 0x7, 0xbf, 0x50, 0x0, 0x2f, 0x2f, 0x50,
-    0x0, 0xc7, 0xf, 0x50, 0x9, 0xc0, 0xf, 0x50,
-    0x6e, 0x10, 0xf, 0x50, 0xef, 0xff, 0xff, 0xfe,
-    0x22, 0x22, 0x2f, 0x72, 0x0, 0x0, 0xf, 0x50,
-    0x0, 0x0, 0xf, 0x50,
+    0x0, 0x0, 0xd, 0xa0, 0x0, 0x0, 0x0, 0xac,
+    0x0, 0x0, 0x0, 0x7, 0xe1, 0x0, 0x0, 0x0,
+    0x4f, 0x40, 0x10, 0x0, 0x2, 0xf6, 0x0, 0xf5,
+    0x0, 0x1d, 0xa0, 0x0, 0xf5, 0x0, 0x7f, 0xff,
+    0xff, 0xff, 0xf3, 0x13, 0x33, 0x33, 0xf7, 0x30,
+    0x0, 0x0, 0x0, 0xf5, 0x0, 0x0, 0x0, 0x0,
+    0xf5, 0x0,
 
     /* U+0035 "5" */
-    0x4f, 0xff, 0xfa, 0x6, 0xd3, 0x33, 0x20, 0x7c,
-    0x0, 0x0, 0x8, 0xa0, 0x0, 0x0, 0x9f, 0xfd,
-    0x80, 0x2, 0x33, 0x7f, 0xa0, 0x0, 0x0, 0x6f,
-    0x0, 0x0, 0x3, 0xf2, 0x0, 0x0, 0x6f, 0x9,
-    0x53, 0x6f, 0x80, 0x8e, 0xfd, 0x60, 0x0,
+    0x9, 0xff, 0xff, 0xf0, 0xa, 0xb4, 0x44, 0x40,
+    0xc, 0x80, 0x0, 0x0, 0xe, 0x70, 0x0, 0x0,
+    0xf, 0xff, 0xfc, 0x40, 0x3, 0x34, 0x5c, 0xf2,
+    0x0, 0x0, 0x0, 0xf7, 0x10, 0x0, 0x0, 0xf7,
+    0x8e, 0x85, 0x6c, 0xf1, 0x8, 0xdf, 0xfb, 0x30,
 
     /* U+0036 "6" */
-    0x0, 0x9, 0xef, 0xc0, 0x0, 0xcc, 0x43, 0x50,
-    0x7, 0xe0, 0x0, 0x0, 0xd, 0x70, 0x0, 0x0,
-    0xf, 0x6b, 0xec, 0x40, 0x2f, 0xd5, 0x39, 0xf2,
-    0x2f, 0x60, 0x0, 0xe7, 0x1f, 0x40, 0x0, 0xc9,
-    0xd, 0x80, 0x0, 0xe6, 0x6, 0xf6, 0x3a, 0xe1,
-    0x0, 0x7e, 0xfc, 0x20,
+    0x0, 0x2a, 0xef, 0xd5, 0x0, 0x3f, 0xd6, 0x57,
+    0x40, 0xc, 0xc0, 0x0, 0x0, 0x2, 0xf4, 0x0,
+    0x0, 0x0, 0x4f, 0x5b, 0xff, 0xa1, 0x4, 0xfe,
+    0x84, 0x5d, 0xd0, 0x3f, 0x80, 0x0, 0x3f, 0x30,
+    0xe8, 0x0, 0x3, 0xf2, 0x6, 0xf8, 0x45, 0xdc,
+    0x0, 0x5, 0xdf, 0xe9, 0x10,
 
     /* U+0037 "7" */
-    0x3f, 0xff, 0xff, 0xf7, 0x3, 0x33, 0x35, 0xf2,
-    0x0, 0x0, 0xa, 0xa0, 0x0, 0x0, 0x2f, 0x20,
-    0x0, 0x0, 0xab, 0x0, 0x0, 0x1, 0xf4, 0x0,
-    0x0, 0x7, 0xd0, 0x0, 0x0, 0xd, 0x80, 0x0,
-    0x0, 0x2f, 0x30, 0x0, 0x0, 0x6f, 0x0, 0x0,
-    0x0, 0x9c, 0x0, 0x0,
+    0x9f, 0xff, 0xff, 0xfd, 0x9d, 0x44, 0x44, 0xe9,
+    0x9c, 0x0, 0x4, 0xf2, 0x0, 0x0, 0xb, 0xb0,
+    0x0, 0x0, 0x2f, 0x40, 0x0, 0x0, 0xad, 0x0,
+    0x0, 0x1, 0xf6, 0x0, 0x0, 0x8, 0xe0, 0x0,
+    0x0, 0xe, 0x80, 0x0, 0x0, 0x6f, 0x10, 0x0,
 
     /* U+0038 "8" */
-    0x0, 0x9e, 0xfb, 0x20, 0x9, 0xd4, 0x3b, 0xd0,
-    0xd, 0x60, 0x2, 0xf0, 0x7, 0xc1, 0x9, 0xb0,
-    0x0, 0xcf, 0xfe, 0x10, 0x9, 0xd5, 0x4b, 0xc0,
-    0x2f, 0x30, 0x0, 0xf5, 0x4f, 0x0, 0x0, 0xc8,
-    0x3f, 0x30, 0x0, 0xe6, 0xc, 0xd4, 0x3b, 0xe1,
-    0x1, 0x9e, 0xfb, 0x20,
+    0x1, 0x9e, 0xfe, 0x91, 0x0, 0xbe, 0x63, 0x6e,
+    0xc0, 0xf, 0x60, 0x0, 0x6f, 0x0, 0xcc, 0x20,
+    0x2b, 0xc0, 0x2, 0xef, 0xff, 0xe2, 0x0, 0xdc,
+    0x42, 0x4c, 0xd0, 0x5f, 0x20, 0x0, 0x1f, 0x55,
+    0xf2, 0x0, 0x2, 0xf5, 0xe, 0xd5, 0x35, 0xde,
+    0x0, 0x1a, 0xef, 0xea, 0x10,
 
     /* U+0039 "9" */
-    0x0, 0x9e, 0xfa, 0x10, 0x9, 0xd4, 0x4d, 0xb0,
-    0x1f, 0x40, 0x3, 0xf2, 0x4f, 0x10, 0x0, 0xf6,
-    0x3f, 0x30, 0x0, 0xf7, 0xd, 0xc2, 0x1a, 0xf7,
-    0x3, 0xdf, 0xf8, 0xf5, 0x0, 0x2, 0x11, 0xf2,
-    0x0, 0x0, 0x8, 0xd0, 0x5, 0x33, 0x7f, 0x30,
-    0x8, 0xff, 0xc3, 0x0,
+    0x3, 0xbf, 0xea, 0x20, 0x2f, 0xa4, 0x4b, 0xe1,
+    0x8e, 0x0, 0x0, 0xe9, 0x9d, 0x0, 0x0, 0xdd,
+    0x4f, 0x71, 0x29, 0xff, 0x7, 0xff, 0xfc, 0x9e,
+    0x0, 0x2, 0x10, 0xac, 0x0, 0x0, 0x2, 0xf6,
+    0x7, 0x65, 0x8f, 0xb0, 0xa, 0xef, 0xd7, 0x0,
 
     /* U+003A ":" */
-    0xe, 0x60, 0xb4, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0xb, 0x40, 0xe6,
+    0x2e, 0x53, 0xf5, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x3f, 0x52, 0xe4,
+
+    /* U+003B ";" */
+    0x2e, 0x53, 0xf5, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x2e, 0x52, 0xf6, 0xd, 0x21, 0xd0, 0x1,
+    0x0,
+
+    /* U+003C "<" */
+    0x0, 0x0, 0x0, 0x31, 0x0, 0x0, 0x6c, 0xf2,
+    0x1, 0x8e, 0xd6, 0x0, 0xf, 0xc3, 0x0, 0x0,
+    0xa, 0xfb, 0x40, 0x0, 0x0, 0x17, 0xee, 0x70,
+    0x0, 0x0, 0x5, 0xc3, 0x0, 0x0, 0x0, 0x0,
+
+    /* U+003D "=" */
+    0x1f, 0xff, 0xff, 0xf3, 0x3, 0x33, 0x33, 0x30,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x1f, 0xff, 0xff, 0xf3, 0x3, 0x33, 0x33, 0x30,
+
+    /* U+003E ">" */
+    0x4, 0x0, 0x0, 0x0, 0xe, 0xd7, 0x10, 0x0,
+    0x0, 0x5c, 0xf9, 0x20, 0x0, 0x0, 0x2a, 0xf2,
+    0x0, 0x3, 0xaf, 0xb1, 0x6, 0xde, 0x82, 0x0,
+    0x1c, 0x60, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+
+    /* U+003F "?" */
+    0x7, 0xdf, 0xea, 0x10, 0x9e, 0x74, 0x6e, 0xc0,
+    0x1, 0x0, 0x6, 0xf0, 0x0, 0x0, 0x9, 0xc0,
+    0x0, 0x0, 0x8e, 0x20, 0x0, 0x6, 0xf2, 0x0,
+    0x0, 0x8, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xb, 0x80, 0x0, 0x0, 0xc, 0x90, 0x0,
+
+    /* U+0040 "@" */
+    0x0, 0x0, 0x6c, 0xef, 0xda, 0x40, 0x0, 0x0,
+    0x3d, 0xa4, 0x10, 0x16, 0xd9, 0x0, 0x1, 0xe5,
+    0x9, 0xee, 0x98, 0xca, 0x90, 0xa, 0x80, 0xbd,
+    0x43, 0xaf, 0xc0, 0xd3, 0xf, 0x13, 0xf2, 0x0,
+    0xc, 0xc0, 0x69, 0x3c, 0x6, 0xd0, 0x0, 0x7,
+    0xc0, 0x3b, 0x4b, 0x6, 0xd0, 0x0, 0x7, 0xc0,
+    0x2c, 0x3c, 0x3, 0xf2, 0x0, 0xc, 0xc0, 0x4a,
+    0xf, 0x10, 0xbd, 0x43, 0x9e, 0xe3, 0xc5, 0xa,
+    0x80, 0x9, 0xee, 0x91, 0xcf, 0x90, 0x1, 0xe5,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3d, 0xa4,
+    0x10, 0x28, 0x0, 0x0, 0x0, 0x0, 0x7c, 0xef,
+    0xd9, 0x10, 0x0,
 
     /* U+0041 "A" */
-    0x0, 0x0, 0xfd, 0x0, 0x0, 0x0, 0x5, 0xef,
-    0x30, 0x0, 0x0, 0xb, 0x9d, 0x90, 0x0, 0x0,
-    0x1f, 0x48, 0xe0, 0x0, 0x0, 0x7e, 0x2, 0xf4,
-    0x0, 0x0, 0xd9, 0x0, 0xda, 0x0, 0x3, 0xf4,
-    0x0, 0x8f, 0x10, 0x9, 0xff, 0xff, 0xff, 0x60,
-    0xe, 0xa3, 0x33, 0x3c, 0xc0, 0x4f, 0x30, 0x0,
-    0x6, 0xf2, 0xad, 0x0, 0x0, 0x0, 0xf8,
+    0x0, 0x0, 0xc, 0xf1, 0x0, 0x0, 0x0, 0x0,
+    0x3f, 0xd7, 0x0, 0x0, 0x0, 0x0, 0xb9, 0x6e,
+    0x0, 0x0, 0x0, 0x2, 0xf2, 0xe, 0x50, 0x0,
+    0x0, 0x9, 0xa0, 0x7, 0xd0, 0x0, 0x0, 0x1f,
+    0x30, 0x0, 0xf4, 0x0, 0x0, 0x7f, 0xff, 0xff,
+    0xfb, 0x0, 0x0, 0xe7, 0x33, 0x33, 0x4f, 0x20,
+    0x5, 0xf0, 0x0, 0x0, 0xc, 0x90, 0xc, 0x90,
+    0x0, 0x0, 0x6, 0xf1,
 
     /* U+0042 "B" */
-    0xaf, 0xff, 0xd5, 0x0, 0xac, 0x34, 0xaf, 0x30,
-    0xab, 0x0, 0xf, 0x70, 0xab, 0x0, 0xf, 0x60,
-    0xab, 0x1, 0x9d, 0x0, 0xaf, 0xff, 0xf5, 0x0,
-    0xac, 0x33, 0x7f, 0x80, 0xab, 0x0, 0x7, 0xf0,
-    0xab, 0x0, 0x8, 0xe0, 0xac, 0x34, 0x7f, 0x80,
-    0xaf, 0xff, 0xd7, 0x0,
+    0x8f, 0xff, 0xfe, 0xc4, 0x8, 0xe3, 0x33, 0x4b,
+    0xf2, 0x8e, 0x0, 0x0, 0x1f, 0x58, 0xe0, 0x0,
+    0x18, 0xf1, 0x8f, 0xff, 0xff, 0xf8, 0x8, 0xe3,
+    0x33, 0x37, 0xf6, 0x8e, 0x0, 0x0, 0x9, 0xc8,
+    0xe0, 0x0, 0x0, 0x9d, 0x8e, 0x33, 0x34, 0x7f,
+    0x78, 0xff, 0xff, 0xfd, 0x70,
 
     /* U+0043 "C" */
-    0x0, 0x5, 0xcf, 0xfd, 0x60, 0xa, 0xf9, 0x55,
-    0x77, 0x7, 0xf4, 0x0, 0x0, 0x0, 0xe8, 0x0,
-    0x0, 0x0, 0x3f, 0x30, 0x0, 0x0, 0x4, 0xf2,
-    0x0, 0x0, 0x0, 0x4f, 0x30, 0x0, 0x0, 0x1,
-    0xf7, 0x0, 0x0, 0x0, 0xa, 0xe2, 0x0, 0x0,
-    0x0, 0x1d, 0xf8, 0x45, 0x88, 0x0, 0x18, 0xdf,
-    0xec, 0x40,
+    0x0, 0x7, 0xcf, 0xfb, 0x40, 0x0, 0xcf, 0x96,
+    0x6a, 0xf5, 0xa, 0xe2, 0x0, 0x0, 0x30, 0x1f,
+    0x60, 0x0, 0x0, 0x0, 0x4f, 0x20, 0x0, 0x0,
+    0x0, 0x4f, 0x20, 0x0, 0x0, 0x0, 0x1f, 0x60,
+    0x0, 0x0, 0x0, 0xa, 0xe2, 0x0, 0x0, 0x30,
+    0x1, 0xcf, 0x96, 0x6a, 0xf5, 0x0, 0x7, 0xdf,
+    0xfb, 0x40,
 
     /* U+0044 "D" */
-    0xaf, 0xff, 0xea, 0x20, 0xa, 0xc4, 0x46, 0xbf,
-    0x60, 0xab, 0x0, 0x0, 0x7f, 0x3a, 0xb0, 0x0,
-    0x0, 0xca, 0xab, 0x0, 0x0, 0x8, 0xea, 0xb0,
-    0x0, 0x0, 0x7f, 0xab, 0x0, 0x0, 0x9, 0xda,
-    0xb0, 0x0, 0x0, 0xd9, 0xab, 0x0, 0x0, 0x8f,
-    0x2a, 0xc4, 0x46, 0xbf, 0x50, 0xaf, 0xff, 0xe9,
-    0x20, 0x0,
+    0x8f, 0xff, 0xfe, 0xa4, 0x0, 0x8e, 0x44, 0x46,
+    0xcf, 0x70, 0x8e, 0x0, 0x0, 0x7, 0xf3, 0x8e,
+    0x0, 0x0, 0x0, 0xda, 0x8e, 0x0, 0x0, 0x0,
+    0x9d, 0x8e, 0x0, 0x0, 0x0, 0x9d, 0x8e, 0x0,
+    0x0, 0x0, 0xda, 0x8e, 0x0, 0x0, 0x7, 0xf3,
+    0x8e, 0x44, 0x46, 0xbf, 0x70, 0x8f, 0xff, 0xfe,
+    0xa4, 0x0,
 
     /* U+0045 "E" */
-    0xaf, 0xff, 0xfd, 0xa, 0xc4, 0x44, 0x30, 0xab,
-    0x0, 0x0, 0xa, 0xb0, 0x0, 0x0, 0xab, 0x0,
-    0x0, 0xa, 0xff, 0xff, 0x80, 0xac, 0x33, 0x31,
-    0xa, 0xb0, 0x0, 0x0, 0xab, 0x0, 0x0, 0xa,
-    0xc4, 0x44, 0x40, 0xaf, 0xff, 0xff, 0x10,
+    0x8f, 0xff, 0xff, 0xf6, 0x8e, 0x44, 0x44, 0x41,
+    0x8e, 0x0, 0x0, 0x0, 0x8e, 0x0, 0x0, 0x0,
+    0x8f, 0xff, 0xff, 0xc0, 0x8e, 0x33, 0x33, 0x20,
+    0x8e, 0x0, 0x0, 0x0, 0x8e, 0x0, 0x0, 0x0,
+    0x8e, 0x44, 0x44, 0x42, 0x8f, 0xff, 0xff, 0xf9,
 
     /* U+0046 "F" */
-    0xaf, 0xff, 0xfd, 0xac, 0x44, 0x43, 0xab, 0x0,
-    0x0, 0xab, 0x0, 0x0, 0xab, 0x0, 0x0, 0xaf,
-    0xff, 0xf8, 0xac, 0x33, 0x31, 0xab, 0x0, 0x0,
-    0xab, 0x0, 0x0, 0xab, 0x0, 0x0, 0xab, 0x0,
-    0x0,
+    0x8f, 0xff, 0xff, 0xf6, 0x8e, 0x44, 0x44, 0x41,
+    0x8e, 0x0, 0x0, 0x0, 0x8e, 0x0, 0x0, 0x0,
+    0x8e, 0x0, 0x0, 0x0, 0x8f, 0xff, 0xff, 0xc0,
+    0x8e, 0x33, 0x33, 0x20, 0x8e, 0x0, 0x0, 0x0,
+    0x8e, 0x0, 0x0, 0x0, 0x8e, 0x0, 0x0, 0x0,
 
     /* U+0047 "G" */
-    0x0, 0x5, 0xbe, 0xfe, 0xa0, 0x0, 0x9f, 0x95,
-    0x57, 0xc1, 0x7, 0xf4, 0x0, 0x0, 0x0, 0xe,
-    0x80, 0x0, 0x0, 0x0, 0x3f, 0x30, 0x0, 0x0,
-    0x0, 0x4f, 0x20, 0x4, 0xff, 0xf6, 0x3f, 0x30,
-    0x1, 0x33, 0xf6, 0xf, 0x70, 0x0, 0x0, 0xf6,
-    0xa, 0xe2, 0x0, 0x0, 0xf6, 0x1, 0xde, 0x84,
-    0x58, 0xf6, 0x0, 0x8, 0xdf, 0xec, 0x60,
+    0x0, 0x7, 0xcf, 0xfc, 0x50, 0x0, 0xcf, 0x96,
+    0x6a, 0xf6, 0xa, 0xe2, 0x0, 0x0, 0x20, 0x1f,
+    0x60, 0x0, 0x0, 0x0, 0x4f, 0x20, 0x0, 0x0,
+    0x0, 0x4f, 0x20, 0x0, 0x0, 0xb9, 0x1f, 0x60,
+    0x0, 0x0, 0xb9, 0xa, 0xe3, 0x0, 0x0, 0xb9,
+    0x0, 0xcf, 0x96, 0x6a, 0xf8, 0x0, 0x7, 0xdf,
+    0xfc, 0x60,
 
     /* U+0048 "H" */
-    0xab, 0x0, 0x0, 0xe, 0x7a, 0xb0, 0x0, 0x0,
-    0xe7, 0xab, 0x0, 0x0, 0xe, 0x7a, 0xb0, 0x0,
-    0x0, 0xe7, 0xab, 0x0, 0x0, 0xe, 0x7a, 0xff,
-    0xff, 0xff, 0xf7, 0xac, 0x33, 0x33, 0x3e, 0x7a,
-    0xb0, 0x0, 0x0, 0xe7, 0xab, 0x0, 0x0, 0xe,
-    0x7a, 0xb0, 0x0, 0x0, 0xe7, 0xab, 0x0, 0x0,
-    0xe, 0x70,
+    0x8e, 0x0, 0x0, 0x8, 0xe8, 0xe0, 0x0, 0x0,
+    0x8e, 0x8e, 0x0, 0x0, 0x8, 0xe8, 0xe0, 0x0,
+    0x0, 0x8e, 0x8f, 0xff, 0xff, 0xff, 0xe8, 0xe3,
+    0x33, 0x33, 0x9e, 0x8e, 0x0, 0x0, 0x8, 0xe8,
+    0xe0, 0x0, 0x0, 0x8e, 0x8e, 0x0, 0x0, 0x8,
+    0xe8, 0xe0, 0x0, 0x0, 0x8e,
 
     /* U+0049 "I" */
-    0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab,
-    0xab, 0xab, 0xab,
+    0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e,
+    0x8e, 0x8e,
 
     /* U+004A "J" */
-    0x0, 0x1f, 0x40, 0x1, 0xf4, 0x0, 0x1f, 0x40,
-    0x1, 0xf4, 0x0, 0x1f, 0x40, 0x1, 0xf4, 0x0,
-    0x1f, 0x40, 0x2, 0xf3, 0x0, 0x5f, 0x15, 0x5d,
-    0xa0, 0xbf, 0xb1, 0x0,
+    0x2, 0xff, 0xff, 0xc0, 0x4, 0x44, 0xbc, 0x0,
+    0x0, 0x9, 0xc0, 0x0, 0x0, 0x9c, 0x0, 0x0,
+    0x9, 0xc0, 0x0, 0x0, 0x9c, 0x0, 0x0, 0x9,
+    0xc0, 0x20, 0x0, 0xba, 0xe, 0xb5, 0x8f, 0x60,
+    0x3c, 0xfe, 0x80,
 
     /* U+004B "K" */
-    0xab, 0x0, 0x8, 0xf3, 0xab, 0x0, 0x5f, 0x50,
-    0xab, 0x2, 0xf7, 0x0, 0xab, 0x1d, 0xa0, 0x0,
-    0xab, 0xbc, 0x0, 0x0, 0xae, 0xf6, 0x0, 0x0,
-    0xab, 0x8f, 0x30, 0x0, 0xab, 0xb, 0xe1, 0x0,
-    0xab, 0x1, 0xec, 0x0, 0xab, 0x0, 0x3f, 0xa0,
-    0xab, 0x0, 0x5, 0xf7,
+    0x8e, 0x0, 0x0, 0x4f, 0x50, 0x8e, 0x0, 0x4,
+    0xf6, 0x0, 0x8e, 0x0, 0x3f, 0x70, 0x0, 0x8e,
+    0x3, 0xf8, 0x0, 0x0, 0x8e, 0x2e, 0xc0, 0x0,
+    0x0, 0x8e, 0xec, 0xf6, 0x0, 0x0, 0x8f, 0xb0,
+    0x7f, 0x30, 0x0, 0x8e, 0x0, 0xa, 0xe1, 0x0,
+    0x8e, 0x0, 0x0, 0xcc, 0x0, 0x8e, 0x0, 0x0,
+    0x1e, 0xa0,
 
     /* U+004C "L" */
-    0xab, 0x0, 0x0, 0xab, 0x0, 0x0, 0xab, 0x0,
-    0x0, 0xab, 0x0, 0x0, 0xab, 0x0, 0x0, 0xab,
-    0x0, 0x0, 0xab, 0x0, 0x0, 0xab, 0x0, 0x0,
-    0xab, 0x0, 0x0, 0xac, 0x44, 0x43, 0xaf, 0xff,
-    0xff,
+    0x8e, 0x0, 0x0, 0x0, 0x8e, 0x0, 0x0, 0x0,
+    0x8e, 0x0, 0x0, 0x0, 0x8e, 0x0, 0x0, 0x0,
+    0x8e, 0x0, 0x0, 0x0, 0x8e, 0x0, 0x0, 0x0,
+    0x8e, 0x0, 0x0, 0x0, 0x8e, 0x0, 0x0, 0x0,
+    0x8e, 0x44, 0x44, 0x40, 0x8f, 0xff, 0xff, 0xf2,
 
     /* U+004D "M" */
-    0xaf, 0x60, 0x0, 0x0, 0xa, 0xf5, 0xaf, 0xd0,
-    0x0, 0x0, 0x1f, 0xf5, 0xac, 0xf4, 0x0, 0x0,
-    0x8c, 0xf5, 0xaa, 0xba, 0x0, 0x0, 0xe6, 0xf5,
-    0xaa, 0x4f, 0x10, 0x5, 0xe1, 0xf5, 0xaa, 0xd,
-    0x70, 0xc, 0x81, 0xf5, 0xaa, 0x7, 0xe0, 0x3f,
-    0x11, 0xf5, 0xaa, 0x1, 0xf5, 0xaa, 0x1, 0xf5,
-    0xaa, 0x0, 0x9b, 0xf3, 0x1, 0xf5, 0xaa, 0x0,
-    0x2f, 0xd0, 0x1, 0xf5, 0xaa, 0x0, 0xc, 0x60,
-    0x1, 0xf5,
+    0x8e, 0x0, 0x0, 0x0, 0x8, 0xe8, 0xf7, 0x0,
+    0x0, 0x2, 0xfe, 0x8f, 0xf1, 0x0, 0x0, 0xbf,
+    0xe8, 0xdc, 0xa0, 0x0, 0x4f, 0x9e, 0x8d, 0x2f,
+    0x30, 0xd, 0x87, 0xe8, 0xd0, 0x9c, 0x6, 0xe0,
+    0x7e, 0x8d, 0x1, 0xe7, 0xe5, 0x7, 0xe8, 0xd0,
+    0x6, 0xfc, 0x0, 0x7e, 0x8d, 0x0, 0xa, 0x20,
+    0x7, 0xe8, 0xd0, 0x0, 0x0, 0x0, 0x7e,
 
     /* U+004E "N" */
-    0xaf, 0x60, 0x0, 0x5, 0xf0, 0xaf, 0xe1, 0x0,
-    0x5, 0xf0, 0xab, 0xd9, 0x0, 0x5, 0xf0, 0xab,
-    0x4f, 0x30, 0x5, 0xf0, 0xab, 0xa, 0xd0, 0x5,
-    0xf0, 0xab, 0x1, 0xf7, 0x5, 0xf0, 0xab, 0x0,
-    0x6f, 0x15, 0xf0, 0xab, 0x0, 0xc, 0xb5, 0xf0,
-    0xab, 0x0, 0x2, 0xfa, 0xf0, 0xab, 0x0, 0x0,
-    0x8f, 0xf0, 0xab, 0x0, 0x0, 0xe, 0xf0,
+    0x8e, 0x10, 0x0, 0x8, 0xe8, 0xfc, 0x0, 0x0,
+    0x8e, 0x8f, 0xf9, 0x0, 0x8, 0xe8, 0xe6, 0xf6,
+    0x0, 0x8e, 0x8e, 0x9, 0xf3, 0x8, 0xe8, 0xe0,
+    0xc, 0xe1, 0x8e, 0x8e, 0x0, 0x1e, 0xb8, 0xe8,
+    0xe0, 0x0, 0x3f, 0xee, 0x8e, 0x0, 0x0, 0x6f,
+    0xe8, 0xe0, 0x0, 0x0, 0xae,
 
     /* U+004F "O" */
-    0x0, 0x7, 0xdf, 0xfb, 0x30, 0x0, 0xc, 0xf8,
-    0x45, 0xbf, 0x50, 0x9, 0xf2, 0x0, 0x0, 0xaf,
-    0x10, 0xf8, 0x0, 0x0, 0x1, 0xf7, 0x3f, 0x40,
-    0x0, 0x0, 0xd, 0xa4, 0xf2, 0x0, 0x0, 0x0,
-    0xbb, 0x3f, 0x40, 0x0, 0x0, 0xd, 0xa0, 0xf8,
-    0x0, 0x0, 0x1, 0xf6, 0xa, 0xf2, 0x0, 0x0,
-    0xae, 0x10, 0x1d, 0xe7, 0x45, 0xbf, 0x40, 0x0,
-    0x18, 0xdf, 0xea, 0x30, 0x0,
+    0x0, 0x7, 0xcf, 0xeb, 0x50, 0x0, 0x0, 0xcf,
+    0x96, 0x6b, 0xf9, 0x0, 0xa, 0xe2, 0x0, 0x0,
+    0x5f, 0x60, 0x1f, 0x60, 0x0, 0x0, 0xa, 0xd0,
+    0x4f, 0x20, 0x0, 0x0, 0x6, 0xf0, 0x4f, 0x20,
+    0x0, 0x0, 0x6, 0xf0, 0x1f, 0x60, 0x0, 0x0,
+    0xa, 0xd0, 0xa, 0xe2, 0x0, 0x0, 0x5f, 0x60,
+    0x0, 0xcf, 0x96, 0x6b, 0xfa, 0x0, 0x0, 0x7,
+    0xdf, 0xeb, 0x50, 0x0,
 
     /* U+0050 "P" */
-    0xaf, 0xff, 0xd6, 0xa, 0xc4, 0x49, 0xf6, 0xab,
-    0x0, 0xa, 0xda, 0xb0, 0x0, 0x7f, 0xab, 0x0,
-    0xa, 0xda, 0xb0, 0x17, 0xf6, 0xaf, 0xff, 0xf7,
-    0xa, 0xc3, 0x30, 0x0, 0xab, 0x0, 0x0, 0xa,
-    0xb0, 0x0, 0x0, 0xab, 0x0, 0x0, 0x0,
+    0x8f, 0xff, 0xfd, 0x70, 0x8, 0xe4, 0x45, 0x8f,
+    0xb0, 0x8e, 0x0, 0x0, 0x5f, 0x38, 0xe0, 0x0,
+    0x1, 0xf5, 0x8e, 0x0, 0x0, 0x3f, 0x48, 0xe0,
+    0x1, 0x4d, 0xd0, 0x8f, 0xff, 0xff, 0xb2, 0x8,
+    0xe3, 0x33, 0x10, 0x0, 0x8e, 0x0, 0x0, 0x0,
+    0x8, 0xe0, 0x0, 0x0, 0x0,
 
     /* U+0051 "Q" */
-    0x0, 0x7, 0xdf, 0xfb, 0x30, 0x0, 0x0, 0xcf,
-    0x84, 0x5b, 0xf5, 0x0, 0x9, 0xf2, 0x0, 0x0,
-    0xaf, 0x10, 0xf, 0x80, 0x0, 0x0, 0x1f, 0x70,
-    0x3f, 0x40, 0x0, 0x0, 0xd, 0xa0, 0x4f, 0x20,
-    0x0, 0x0, 0xb, 0xb0, 0x3f, 0x40, 0x0, 0x0,
-    0xd, 0xa0, 0xf, 0x80, 0x0, 0x0, 0x1f, 0x60,
-    0xa, 0xf2, 0x0, 0x0, 0xae, 0x10, 0x1, 0xde,
-    0x74, 0x5b, 0xf4, 0x0, 0x0, 0x18, 0xdf, 0xee,
-    0xe3, 0x0, 0x0, 0x0, 0x0, 0x0, 0xbf, 0x60,
-    0x0, 0x0, 0x0, 0x0, 0x7, 0x82,
+    0x0, 0x7, 0xcf, 0xeb, 0x50, 0x0, 0x0, 0xcf,
+    0x96, 0x6b, 0xf9, 0x0, 0xa, 0xe2, 0x0, 0x0,
+    0x5f, 0x60, 0x1f, 0x60, 0x0, 0x0, 0xa, 0xd0,
+    0x4f, 0x20, 0x0, 0x0, 0x6, 0xf0, 0x4f, 0x20,
+    0x0, 0x0, 0x5, 0xf0, 0x1f, 0x60, 0x0, 0x0,
+    0xa, 0xd0, 0xa, 0xe2, 0x0, 0x0, 0x5f, 0x60,
+    0x1, 0xdf, 0x85, 0x5a, 0xfa, 0x0, 0x0, 0x8,
+    0xdf, 0xfc, 0x50, 0x0, 0x0, 0x0, 0x1, 0xec,
+    0x21, 0x94, 0x0, 0x0, 0x0, 0x1b, 0xff, 0xc1,
+    0x0, 0x0, 0x0, 0x0, 0x12, 0x0,
 
     /* U+0052 "R" */
-    0xaf, 0xff, 0xd8, 0x0, 0xa, 0xc3, 0x47, 0xf8,
-    0x0, 0xab, 0x0, 0xa, 0xd0, 0xa, 0xb0, 0x0,
-    0xac, 0x0, 0xab, 0x0, 0x5f, 0x60, 0xa, 0xff,
-    0xfd, 0x40, 0x0, 0xac, 0x36, 0xf5, 0x0, 0xa,
-    0xb0, 0x7, 0xf1, 0x0, 0xab, 0x0, 0xd, 0xa0,
-    0xa, 0xb0, 0x0, 0x5f, 0x30, 0xab, 0x0, 0x0,
-    0xcc, 0x0,
+    0x8f, 0xff, 0xfd, 0x70, 0x8, 0xe4, 0x45, 0x8f,
+    0xb0, 0x8e, 0x0, 0x0, 0x5f, 0x38, 0xe0, 0x0,
+    0x1, 0xf5, 0x8e, 0x0, 0x0, 0x3f, 0x38, 0xe0,
+    0x1, 0x4d, 0xd0, 0x8f, 0xff, 0xff, 0xc2, 0x8,
+    0xe3, 0x33, 0xda, 0x0, 0x8e, 0x0, 0x2, 0xf6,
+    0x8, 0xe0, 0x0, 0x5, 0xf3,
 
     /* U+0053 "S" */
-    0x0, 0x7d, 0xfe, 0xb0, 0xb, 0xe6, 0x46, 0xa0,
-    0x1f, 0x60, 0x0, 0x0, 0xf, 0x80, 0x0, 0x0,
-    0x8, 0xfa, 0x20, 0x0, 0x0, 0x5e, 0xf8, 0x0,
-    0x0, 0x0, 0x6f, 0xb0, 0x0, 0x0, 0x4, 0xf4,
-    0x0, 0x0, 0x2, 0xf5, 0x2c, 0x64, 0x5c, 0xe1,
-    0xa, 0xef, 0xea, 0x20,
+    0x1, 0x9e, 0xfd, 0xa2, 0x0, 0xce, 0x64, 0x6b,
+    0x70, 0x2f, 0x40, 0x0, 0x0, 0x1, 0xf8, 0x0,
+    0x0, 0x0, 0x6, 0xfd, 0x95, 0x0, 0x0, 0x1,
+    0x6a, 0xee, 0x50, 0x0, 0x0, 0x0, 0x9f, 0x0,
+    0x20, 0x0, 0x5, 0xf1, 0x3f, 0xa5, 0x47, 0xeb,
+    0x0, 0x4b, 0xef, 0xe9, 0x10,
 
     /* U+0054 "T" */
-    0xbf, 0xff, 0xff, 0xfc, 0x24, 0x4b, 0xc4, 0x43,
-    0x0, 0xa, 0xb0, 0x0, 0x0, 0xa, 0xb0, 0x0,
-    0x0, 0xa, 0xb0, 0x0, 0x0, 0xa, 0xb0, 0x0,
-    0x0, 0xa, 0xb0, 0x0, 0x0, 0xa, 0xb0, 0x0,
-    0x0, 0xa, 0xb0, 0x0, 0x0, 0xa, 0xb0, 0x0,
-    0x0, 0xa, 0xb0, 0x0,
+    0xff, 0xff, 0xff, 0xff, 0x24, 0x44, 0xbd, 0x44,
+    0x40, 0x0, 0x9, 0xc0, 0x0, 0x0, 0x0, 0x9c,
+    0x0, 0x0, 0x0, 0x9, 0xc0, 0x0, 0x0, 0x0,
+    0x9c, 0x0, 0x0, 0x0, 0x9, 0xc0, 0x0, 0x0,
+    0x0, 0x9c, 0x0, 0x0, 0x0, 0x9, 0xc0, 0x0,
+    0x0, 0x0, 0x9c, 0x0, 0x0,
 
     /* U+0055 "U" */
-    0xc9, 0x0, 0x0, 0x2f, 0x3c, 0x90, 0x0, 0x2,
-    0xf3, 0xc9, 0x0, 0x0, 0x2f, 0x3c, 0x90, 0x0,
-    0x2, 0xf3, 0xc9, 0x0, 0x0, 0x2f, 0x3c, 0x90,
-    0x0, 0x2, 0xf3, 0xc9, 0x0, 0x0, 0x2f, 0x3b,
-    0xb0, 0x0, 0x4, 0xf2, 0x8f, 0x10, 0x0, 0x9e,
-    0x1, 0xfd, 0x65, 0x9f, 0x60, 0x3, 0xbf, 0xfd,
-    0x60, 0x0,
+    0x9c, 0x0, 0x0, 0xb, 0xa9, 0xc0, 0x0, 0x0,
+    0xba, 0x9c, 0x0, 0x0, 0xb, 0xa9, 0xc0, 0x0,
+    0x0, 0xba, 0x9c, 0x0, 0x0, 0xb, 0xa9, 0xc0,
+    0x0, 0x0, 0xba, 0x8e, 0x0, 0x0, 0xd, 0x94,
+    0xf4, 0x0, 0x3, 0xf5, 0xc, 0xf8, 0x68, 0xfd,
+    0x0, 0x9, 0xef, 0xe9, 0x10,
 
     /* U+0056 "V" */
-    0xbc, 0x0, 0x0, 0x4, 0xf2, 0x5f, 0x20, 0x0,
-    0xa, 0xc0, 0xf, 0x70, 0x0, 0xf, 0x70, 0xa,
-    0xc0, 0x0, 0x4f, 0x10, 0x5, 0xf2, 0x0, 0xac,
-    0x0, 0x0, 0xf7, 0x0, 0xf6, 0x0, 0x0, 0x9c,
-    0x5, 0xf1, 0x0, 0x0, 0x4f, 0x1a, 0xb0, 0x0,
-    0x0, 0xe, 0x7f, 0x50, 0x0, 0x0, 0x9, 0xef,
-    0x0, 0x0, 0x0, 0x3, 0xfa, 0x0, 0x0,
+    0xc, 0xb0, 0x0, 0x0, 0xa, 0xc0, 0x5f, 0x20,
+    0x0, 0x1, 0xf5, 0x0, 0xe9, 0x0, 0x0, 0x8e,
+    0x0, 0x8, 0xf0, 0x0, 0xe, 0x70, 0x0, 0x1f,
+    0x60, 0x5, 0xf1, 0x0, 0x0, 0xad, 0x0, 0xc9,
+    0x0, 0x0, 0x3, 0xf4, 0x3f, 0x30, 0x0, 0x0,
+    0xc, 0xba, 0xc0, 0x0, 0x0, 0x0, 0x5f, 0xf5,
+    0x0, 0x0, 0x0, 0x0, 0xee, 0x0, 0x0,
 
     /* U+0057 "W" */
-    0xad, 0x0, 0x0, 0x8f, 0x10, 0x0, 0x8e, 0x6,
-    0xf1, 0x0, 0xd, 0xf5, 0x0, 0xc, 0xa0, 0x1f,
-    0x50, 0x1, 0xfc, 0x90, 0x0, 0xf6, 0x0, 0xd9,
-    0x0, 0x6d, 0x8d, 0x0, 0x4f, 0x10, 0x8, 0xd0,
-    0xa, 0x93, 0xf1, 0x8, 0xd0, 0x0, 0x4f, 0x20,
-    0xe5, 0xf, 0x50, 0xc9, 0x0, 0x0, 0xf6, 0x3f,
-    0x0, 0xba, 0xf, 0x50, 0x0, 0xb, 0xa7, 0xc0,
-    0x6, 0xe4, 0xf0, 0x0, 0x0, 0x7e, 0xb8, 0x0,
-    0x2f, 0xac, 0x0, 0x0, 0x2, 0xff, 0x30, 0x0,
-    0xef, 0x80, 0x0, 0x0, 0xe, 0xf0, 0x0, 0x9,
-    0xf3, 0x0, 0x0,
+    0x6f, 0x10, 0x0, 0xd, 0xb0, 0x0, 0x2, 0xf2,
+    0x1f, 0x60, 0x0, 0x3f, 0xf1, 0x0, 0x8, 0xd0,
+    0xb, 0xb0, 0x0, 0x8b, 0xe6, 0x0, 0xd, 0x70,
+    0x6, 0xf0, 0x0, 0xe6, 0x9b, 0x0, 0x2f, 0x20,
+    0x1, 0xf5, 0x3, 0xf1, 0x4f, 0x10, 0x8d, 0x0,
+    0x0, 0xca, 0x9, 0xb0, 0xe, 0x60, 0xd8, 0x0,
+    0x0, 0x6f, 0xe, 0x60, 0x9, 0xb2, 0xf3, 0x0,
+    0x0, 0x1f, 0x9f, 0x10, 0x4, 0xf9, 0xd0, 0x0,
+    0x0, 0xc, 0xfb, 0x0, 0x0, 0xef, 0x80, 0x0,
+    0x0, 0x7, 0xf6, 0x0, 0x0, 0x9f, 0x30, 0x0,
 
     /* U+0058 "X" */
-    0x4f, 0x60, 0x0, 0x1f, 0x70, 0xae, 0x0, 0xa,
-    0xd0, 0x1, 0xf7, 0x3, 0xf4, 0x0, 0x7, 0xf1,
-    0xca, 0x0, 0x0, 0xd, 0xcf, 0x10, 0x0, 0x0,
-    0x7f, 0x90, 0x0, 0x0, 0xe, 0xcf, 0x20, 0x0,
-    0x9, 0xd0, 0xdb, 0x0, 0x3, 0xf5, 0x4, 0xf4,
-    0x0, 0xdb, 0x0, 0xb, 0xe0, 0x8f, 0x20, 0x0,
-    0x2f, 0x80,
+    0x3f, 0x50, 0x0, 0xd, 0xa0, 0x8, 0xf2, 0x0,
+    0x9d, 0x0, 0x0, 0xcc, 0x4, 0xf3, 0x0, 0x0,
+    0x2f, 0x9e, 0x70, 0x0, 0x0, 0x6, 0xfc, 0x0,
+    0x0, 0x0, 0x9, 0xfe, 0x10, 0x0, 0x0, 0x4f,
+    0x4d, 0xb0, 0x0, 0x1, 0xe8, 0x2, 0xf7, 0x0,
+    0xb, 0xd0, 0x0, 0x7f, 0x20, 0x7f, 0x20, 0x0,
+    0xb, 0xd0,
 
     /* U+0059 "Y" */
-    0xae, 0x0, 0x0, 0x5f, 0x22, 0xf6, 0x0, 0xc,
-    0x90, 0xa, 0xd0, 0x4, 0xf2, 0x0, 0x3f, 0x50,
-    0xc9, 0x0, 0x0, 0xbc, 0x4f, 0x20, 0x0, 0x3,
-    0xfd, 0x90, 0x0, 0x0, 0xb, 0xf2, 0x0, 0x0,
-    0x0, 0x7e, 0x0, 0x0, 0x0, 0x7, 0xe0, 0x0,
-    0x0, 0x0, 0x7e, 0x0, 0x0, 0x0, 0x7, 0xe0,
-    0x0, 0x0,
+    0xc, 0xb0, 0x0, 0x0, 0x9c, 0x0, 0x2f, 0x50,
+    0x0, 0x2f, 0x30, 0x0, 0x9e, 0x0, 0xc, 0x90,
+    0x0, 0x0, 0xe8, 0x5, 0xf1, 0x0, 0x0, 0x5,
+    0xf3, 0xe6, 0x0, 0x0, 0x0, 0xc, 0xfd, 0x0,
+    0x0, 0x0, 0x0, 0x3f, 0x40, 0x0, 0x0, 0x0,
+    0x2, 0xf3, 0x0, 0x0, 0x0, 0x0, 0x2f, 0x30,
+    0x0, 0x0, 0x0, 0x2, 0xf3, 0x0, 0x0,
 
     /* U+005A "Z" */
-    0x4f, 0xff, 0xff, 0xff, 0x41, 0x44, 0x44, 0x4e,
-    0xa0, 0x0, 0x0, 0x7, 0xe1, 0x0, 0x0, 0x2,
-    0xf5, 0x0, 0x0, 0x0, 0xcb, 0x0, 0x0, 0x0,
-    0x7e, 0x10, 0x0, 0x0, 0x2f, 0x60, 0x0, 0x0,
-    0xc, 0xb0, 0x0, 0x0, 0x6, 0xf1, 0x0, 0x0,
-    0x2, 0xf9, 0x44, 0x44, 0x40, 0xaf, 0xff, 0xff,
-    0xff, 0x30,
+    0x4f, 0xff, 0xff, 0xff, 0x91, 0x44, 0x44, 0x4a,
+    0xf3, 0x0, 0x0, 0x3, 0xf6, 0x0, 0x0, 0x1,
+    0xea, 0x0, 0x0, 0x0, 0xcc, 0x0, 0x0, 0x0,
+    0x9e, 0x10, 0x0, 0x0, 0x6f, 0x40, 0x0, 0x0,
+    0x3f, 0x70, 0x0, 0x0, 0x1e, 0xd4, 0x44, 0x44,
+    0x36, 0xff, 0xff, 0xff, 0xfc,
+
+    /* U+005B "[" */
+    0x8f, 0xf6, 0x8d, 0x31, 0x8d, 0x0, 0x8d, 0x0,
+    0x8d, 0x0, 0x8d, 0x0, 0x8d, 0x0, 0x8d, 0x0,
+    0x8d, 0x0, 0x8d, 0x0, 0x8d, 0x0, 0x8d, 0x0,
+    0x8d, 0x31, 0x8f, 0xf6,
+
+    /* U+005C "\\" */
+    0x5d, 0x0, 0x0, 0x0, 0xf2, 0x0, 0x0, 0xb,
+    0x80, 0x0, 0x0, 0x6d, 0x0, 0x0, 0x1, 0xf2,
+    0x0, 0x0, 0xb, 0x80, 0x0, 0x0, 0x6d, 0x0,
+    0x0, 0x1, 0xf2, 0x0, 0x0, 0xb, 0x70, 0x0,
+    0x0, 0x6d, 0x0, 0x0, 0x1, 0xf2, 0x0, 0x0,
+    0xb, 0x70, 0x0, 0x0, 0x6d, 0x0, 0x0, 0x1,
+    0xf2,
+
+    /* U+005D "]" */
+    0xbf, 0xf3, 0x25, 0xf3, 0x2, 0xf3, 0x2, 0xf3,
+    0x2, 0xf3, 0x2, 0xf3, 0x2, 0xf3, 0x2, 0xf3,
+    0x2, 0xf3, 0x2, 0xf3, 0x2, 0xf3, 0x2, 0xf3,
+    0x25, 0xf3, 0xbf, 0xf3,
+
+    /* U+005E "^" */
+    0x0, 0xad, 0x0, 0x0, 0x1e, 0xc4, 0x0, 0x8,
+    0x85, 0xa0, 0x0, 0xe2, 0xe, 0x10, 0x5b, 0x0,
+    0x97, 0xb, 0x50, 0x2, 0xe0,
+
+    /* U+005F "_" */
+    0xee, 0xee, 0xee, 0xe0,
+
+    /* U+0060 "`" */
+    0xb, 0xc0, 0x0, 0x9, 0xb0,
 
     /* U+0061 "a" */
-    0x4, 0xce, 0xe9, 0x0, 0x86, 0x24, 0xf6, 0x0,
-    0x0, 0xa, 0xa0, 0x17, 0xbd, 0xfb, 0x1e, 0xb5,
-    0x3a, 0xb4, 0xf0, 0x0, 0xbb, 0x3f, 0x40, 0x5f,
-    0xb0, 0x8e, 0xe9, 0xab,
+    0x4, 0xcf, 0xea, 0x10, 0xb, 0x74, 0x5d, 0xb0,
+    0x0, 0x0, 0x4, 0xf0, 0x4, 0xce, 0xee, 0xf2,
+    0x1f, 0x82, 0x14, 0xf2, 0x4f, 0x10, 0x4, 0xf2,
+    0x1f, 0x70, 0x3d, 0xf2, 0x4, 0xdf, 0xd7, 0xf2,
 
     /* U+0062 "b" */
-    0xc8, 0x0, 0x0, 0x0, 0xc8, 0x0, 0x0, 0x0,
-    0xc8, 0x0, 0x0, 0x0, 0xc8, 0x0, 0x0, 0x0,
-    0xc8, 0x7e, 0xfa, 0x10, 0xce, 0xa3, 0x5e, 0xa0,
-    0xcd, 0x0, 0x6, 0xf1, 0xc9, 0x0, 0x2, 0xf3,
-    0xc8, 0x0, 0x2, 0xf2, 0xca, 0x0, 0x6, 0xf0,
-    0xcf, 0x50, 0x3e, 0x70, 0xc9, 0xaf, 0xe8, 0x0,
+    0xba, 0x0, 0x0, 0x0, 0xba, 0x0, 0x0, 0x0,
+    0xba, 0x0, 0x0, 0x0, 0xba, 0x8e, 0xfc, 0x30,
+    0xbf, 0xd5, 0x4b, 0xf3, 0xbe, 0x10, 0x0, 0xca,
+    0xba, 0x0, 0x0, 0x7e, 0xba, 0x0, 0x0, 0x7e,
+    0xbe, 0x10, 0x0, 0xca, 0xbf, 0xd5, 0x5b, 0xf3,
+    0xb9, 0x8e, 0xfc, 0x30,
 
     /* U+0063 "c" */
-    0x0, 0x6d, 0xfe, 0x40, 0x7f, 0x73, 0x44, 0xf,
-    0x70, 0x0, 0x4, 0xf2, 0x0, 0x0, 0x4f, 0x20,
-    0x0, 0x1, 0xf6, 0x0, 0x0, 0x9, 0xf6, 0x35,
-    0x40, 0x8, 0xef, 0xd3,
+    0x0, 0x7d, 0xfd, 0x60, 0x9, 0xf7, 0x48, 0xf4,
+    0x2f, 0x50, 0x0, 0x20, 0x5f, 0x0, 0x0, 0x0,
+    0x5f, 0x0, 0x0, 0x0, 0x2f, 0x50, 0x0, 0x20,
+    0x9, 0xf7, 0x48, 0xf4, 0x0, 0x7d, 0xfd, 0x60,
 
     /* U+0064 "d" */
-    0x0, 0x0, 0x0, 0x9c, 0x0, 0x0, 0x0, 0x9c,
-    0x0, 0x0, 0x0, 0x9c, 0x0, 0x0, 0x0, 0x9c,
-    0x0, 0x8e, 0xfa, 0x9c, 0x8, 0xf6, 0x39, 0xfc,
-    0xf, 0x60, 0x0, 0xcc, 0x3f, 0x20, 0x0, 0x9c,
-    0x4f, 0x10, 0x0, 0x9c, 0x1f, 0x40, 0x0, 0xcc,
-    0xb, 0xd2, 0x7, 0xfc, 0x1, 0xbf, 0xe8, 0x9c,
+    0x0, 0x0, 0x0, 0x1f, 0x40, 0x0, 0x0, 0x1,
+    0xf4, 0x0, 0x0, 0x0, 0x1f, 0x40, 0x8, 0xef,
+    0xc4, 0xf4, 0xa, 0xf7, 0x48, 0xff, 0x42, 0xf5,
+    0x0, 0x7, 0xf4, 0x5f, 0x0, 0x0, 0x2f, 0x45,
+    0xf0, 0x0, 0x1, 0xf4, 0x2f, 0x50, 0x0, 0x6f,
+    0x40, 0xae, 0x63, 0x7e, 0xf4, 0x0, 0x8e, 0xfc,
+    0x4f, 0x40,
 
     /* U+0065 "e" */
-    0x0, 0x8e, 0xfb, 0x20, 0x8, 0xd4, 0x2a, 0xd0,
-    0x1f, 0x40, 0x1, 0xf3, 0x3f, 0xff, 0xff, 0xf5,
-    0x3f, 0x42, 0x22, 0x20, 0x1f, 0x50, 0x0, 0x0,
-    0xa, 0xe5, 0x25, 0x90, 0x0, 0x9e, 0xfd, 0x50,
+    0x0, 0x8e, 0xfc, 0x40, 0xa, 0xd5, 0x38, 0xf4,
+    0x2f, 0x20, 0x0, 0x8c, 0x5f, 0xee, 0xee, 0xff,
+    0x5f, 0x21, 0x11, 0x11, 0x2f, 0x70, 0x0, 0x10,
+    0x9, 0xf8, 0x46, 0xe4, 0x0, 0x7d, 0xfe, 0x80,
 
     /* U+0066 "f" */
-    0x0, 0x5d, 0xf1, 0x1, 0xf8, 0x30, 0x4, 0xf0,
-    0x0, 0x5, 0xf0, 0x0, 0x9f, 0xff, 0xc0, 0x16,
-    0xf2, 0x10, 0x5, 0xf0, 0x0, 0x5, 0xf0, 0x0,
-    0x5, 0xf0, 0x0, 0x5, 0xf0, 0x0, 0x5, 0xf0,
-    0x0, 0x5, 0xf0, 0x0,
+    0x0, 0x9e, 0xe3, 0x5, 0xf4, 0x41, 0x8, 0xc0,
+    0x0, 0xcf, 0xff, 0xf0, 0x29, 0xd3, 0x20, 0x8,
+    0xd0, 0x0, 0x8, 0xd0, 0x0, 0x8, 0xd0, 0x0,
+    0x8, 0xd0, 0x0, 0x8, 0xd0, 0x0, 0x8, 0xd0,
+    0x0,
 
     /* U+0067 "g" */
-    0x0, 0x8e, 0xf9, 0x9c, 0x8, 0xf6, 0x38, 0xfc,
-    0xf, 0x60, 0x0, 0xcc, 0x3f, 0x20, 0x0, 0x9c,
-    0x4f, 0x10, 0x0, 0x9c, 0x2f, 0x50, 0x0, 0xdc,
-    0xb, 0xe5, 0x3a, 0xec, 0x1, 0xaf, 0xe7, 0x9c,
-    0x0, 0x0, 0x0, 0xba, 0x0, 0x0, 0x1, 0xf7,
-    0xa, 0x63, 0x4c, 0xe1, 0x7, 0xdf, 0xea, 0x20,
+    0x0, 0x7e, 0xfc, 0x4e, 0x60, 0xaf, 0x74, 0x7f,
+    0xf6, 0x2f, 0x50, 0x0, 0x5f, 0x65, 0xf0, 0x0,
+    0x0, 0xf6, 0x5f, 0x0, 0x0, 0xf, 0x62, 0xf6,
+    0x0, 0x6, 0xf6, 0x9, 0xf7, 0x47, 0xff, 0x50,
+    0x7, 0xef, 0xc4, 0xf5, 0x0, 0x0, 0x0, 0x3f,
+    0x20, 0xcb, 0x64, 0x6e, 0xb0, 0x3, 0xae, 0xfd,
+    0x80, 0x0,
 
     /* U+0068 "h" */
-    0xc8, 0x0, 0x0, 0xc, 0x80, 0x0, 0x0, 0xc8,
-    0x0, 0x0, 0xc, 0x80, 0x0, 0x0, 0xc8, 0x8e,
-    0xe8, 0xc, 0xe8, 0x38, 0xf4, 0xcc, 0x0, 0xe,
-    0x7c, 0x80, 0x0, 0xc9, 0xc8, 0x0, 0xc, 0x9c,
-    0x80, 0x0, 0xc9, 0xc8, 0x0, 0xc, 0x9c, 0x80,
-    0x0, 0xc9,
+    0xba, 0x0, 0x0, 0x0, 0xba, 0x0, 0x0, 0x0,
+    0xba, 0x0, 0x0, 0x0, 0xba, 0x8e, 0xfb, 0x20,
+    0xbf, 0xc5, 0x6d, 0xd0, 0xbe, 0x0, 0x3, 0xf2,
+    0xba, 0x0, 0x0, 0xf4, 0xba, 0x0, 0x0, 0xf5,
+    0xba, 0x0, 0x0, 0xf5, 0xba, 0x0, 0x0, 0xf5,
+    0xba, 0x0, 0x0, 0xf5,
 
     /* U+0069 "i" */
-    0xc8, 0x85, 0x0, 0x0, 0xd8, 0xd8, 0xd8, 0xd8,
-    0xd8, 0xd8, 0xd8, 0xd8,
+    0xba, 0xa8, 0x0, 0xba, 0xba, 0xba, 0xba, 0xba,
+    0xba, 0xba, 0xba,
 
     /* U+006A "j" */
-    0x0, 0xb, 0x80, 0x0, 0x75, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0xc, 0x80, 0x0, 0xc8, 0x0,
-    0xc, 0x80, 0x0, 0xc8, 0x0, 0xc, 0x80, 0x0,
-    0xc8, 0x0, 0xc, 0x80, 0x0, 0xc8, 0x0, 0xd,
-    0x70, 0x0, 0xf5, 0x23, 0x9e, 0x5, 0xfd, 0x30,
+    0x0, 0xa, 0xb0, 0x0, 0x99, 0x0, 0x0, 0x0,
+    0x0, 0xab, 0x0, 0xa, 0xb0, 0x0, 0xab, 0x0,
+    0xa, 0xb0, 0x0, 0xab, 0x0, 0xa, 0xb0, 0x0,
+    0xab, 0x0, 0xa, 0xb0, 0x0, 0xaa, 0x6, 0x4e,
+    0x71, 0xdf, 0xa0,
 
     /* U+006B "k" */
-    0xc8, 0x0, 0x0, 0xc, 0x80, 0x0, 0x0, 0xc8,
-    0x0, 0x0, 0xc, 0x80, 0x0, 0x0, 0xc8, 0x0,
-    0xcd, 0x1c, 0x80, 0x9e, 0x10, 0xc8, 0x7f, 0x30,
-    0xc, 0xcf, 0x40, 0x0, 0xcb, 0xf8, 0x0, 0xc,
-    0x84, 0xf6, 0x0, 0xc8, 0x7, 0xf4, 0xc, 0x80,
-    0x9, 0xf3,
+    0xba, 0x0, 0x0, 0x0, 0xba, 0x0, 0x0, 0x0,
+    0xba, 0x0, 0x0, 0x0, 0xba, 0x0, 0x1c, 0xc0,
+    0xba, 0x1, 0xcc, 0x0, 0xba, 0x1c, 0xd1, 0x0,
+    0xbb, 0xcf, 0x60, 0x0, 0xbf, 0xdb, 0xe1, 0x0,
+    0xbd, 0x11, 0xdc, 0x0, 0xba, 0x0, 0x3f, 0x70,
+    0xba, 0x0, 0x7, 0xf3,
 
     /* U+006C "l" */
-    0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8,
-    0xd8, 0xd8, 0xd8, 0xd8,
+    0xba, 0xba, 0xba, 0xba, 0xba, 0xba, 0xba, 0xba,
+    0xba, 0xba, 0xba,
 
     /* U+006D "m" */
-    0xc9, 0x9f, 0xe5, 0x3c, 0xfc, 0x20, 0xcf, 0x40,
-    0x9f, 0xd2, 0xb, 0xc0, 0xca, 0x0, 0x1f, 0x70,
-    0x5, 0xf0, 0xc8, 0x0, 0xf, 0x50, 0x4, 0xf1,
-    0xc8, 0x0, 0xf, 0x50, 0x4, 0xf1, 0xc8, 0x0,
-    0xf, 0x50, 0x4, 0xf1, 0xc8, 0x0, 0xf, 0x50,
-    0x4, 0xf1, 0xc8, 0x0, 0xf, 0x50, 0x4, 0xf1,
+    0xb9, 0x9e, 0xfa, 0x15, 0xdf, 0xd4, 0xb, 0xfb,
+    0x45, 0xed, 0xe6, 0x4a, 0xf2, 0xbe, 0x0, 0x6,
+    0xf6, 0x0, 0xe, 0x7b, 0xa0, 0x0, 0x4f, 0x20,
+    0x0, 0xc9, 0xba, 0x0, 0x3, 0xf1, 0x0, 0xc,
+    0x9b, 0xa0, 0x0, 0x3f, 0x10, 0x0, 0xc9, 0xba,
+    0x0, 0x3, 0xf1, 0x0, 0xc, 0x9b, 0xa0, 0x0,
+    0x3f, 0x10, 0x0, 0xc9,
 
     /* U+006E "n" */
-    0xc8, 0x9e, 0xe8, 0xc, 0xf5, 0x5, 0xf4, 0xcb,
-    0x0, 0xd, 0x8c, 0x80, 0x0, 0xc9, 0xc8, 0x0,
-    0xc, 0x9c, 0x80, 0x0, 0xc9, 0xc8, 0x0, 0xc,
-    0x9c, 0x80, 0x0, 0xc9,
+    0xb9, 0x9e, 0xfb, 0x20, 0xbf, 0xb4, 0x5d, 0xd0,
+    0xbe, 0x0, 0x3, 0xf2, 0xba, 0x0, 0x0, 0xf4,
+    0xba, 0x0, 0x0, 0xf5, 0xba, 0x0, 0x0, 0xf5,
+    0xba, 0x0, 0x0, 0xf5, 0xba, 0x0, 0x0, 0xf5,
 
     /* U+006F "o" */
-    0x0, 0x7d, 0xfe, 0x70, 0x0, 0x9f, 0x63, 0x6f,
-    0x70, 0x1f, 0x60, 0x0, 0x7f, 0x4, 0xf2, 0x0,
-    0x3, 0xf2, 0x4f, 0x20, 0x0, 0x3f, 0x21, 0xf6,
-    0x0, 0x7, 0xe0, 0x9, 0xf6, 0x36, 0xf7, 0x0,
-    0x8, 0xef, 0xd6, 0x0,
+    0x0, 0x7d, 0xfd, 0x60, 0x0, 0x9f, 0x74, 0x8f,
+    0x70, 0x2f, 0x50, 0x0, 0x7f, 0x5, 0xf0, 0x0,
+    0x1, 0xf3, 0x5f, 0x0, 0x0, 0x2f, 0x32, 0xf5,
+    0x0, 0x7, 0xf0, 0x9, 0xf7, 0x48, 0xf7, 0x0,
+    0x7, 0xdf, 0xd6, 0x0,
 
     /* U+0070 "p" */
-    0xc8, 0x8e, 0xfa, 0x10, 0xcf, 0x70, 0x2d, 0xa0,
-    0xcb, 0x0, 0x4, 0xf1, 0xc8, 0x0, 0x2, 0xf3,
-    0xc8, 0x0, 0x3, 0xf2, 0xcb, 0x0, 0x7, 0xf0,
-    0xcf, 0x83, 0x6f, 0x80, 0xc8, 0x9f, 0xe8, 0x0,
-    0xc8, 0x0, 0x0, 0x0, 0xc8, 0x0, 0x0, 0x0,
-    0xc8, 0x0, 0x0, 0x0, 0xc8, 0x0, 0x0, 0x0,
+    0xb9, 0x8e, 0xfc, 0x30, 0xbf, 0xc4, 0x3a, 0xf3,
+    0xbe, 0x10, 0x0, 0xca, 0xba, 0x0, 0x0, 0x7e,
+    0xba, 0x0, 0x0, 0x7e, 0xbe, 0x10, 0x0, 0xca,
+    0xbf, 0xd5, 0x5b, 0xf3, 0xba, 0x7e, 0xfc, 0x30,
+    0xba, 0x0, 0x0, 0x0, 0xba, 0x0, 0x0, 0x0,
+    0xba, 0x0, 0x0, 0x0,
 
     /* U+0071 "q" */
-    0x0, 0x8e, 0xfa, 0x9c, 0x8, 0xe5, 0x38, 0xfc,
-    0x1f, 0x60, 0x0, 0xcc, 0x3f, 0x20, 0x0, 0x9c,
-    0x4f, 0x10, 0x0, 0x9c, 0x1f, 0x50, 0x0, 0xdc,
-    0xb, 0xe5, 0x3a, 0xec, 0x1, 0xbf, 0xe7, 0x9c,
-    0x0, 0x0, 0x0, 0x9c, 0x0, 0x0, 0x0, 0x9c,
-    0x0, 0x0, 0x0, 0x9c, 0x0, 0x0, 0x0, 0x9c,
+    0x0, 0x8e, 0xfc, 0x3f, 0x40, 0xaf, 0x74, 0x8e,
+    0xf4, 0x2f, 0x50, 0x0, 0x7f, 0x45, 0xf0, 0x0,
+    0x1, 0xf4, 0x5f, 0x0, 0x0, 0x2f, 0x42, 0xf5,
+    0x0, 0x7, 0xf4, 0xa, 0xf7, 0x48, 0xff, 0x40,
+    0x8, 0xef, 0xc4, 0xf4, 0x0, 0x0, 0x0, 0x1f,
+    0x40, 0x0, 0x0, 0x1, 0xf4, 0x0, 0x0, 0x0,
+    0x1f, 0x40,
 
     /* U+0072 "r" */
-    0x0, 0x0, 0xc, 0x8a, 0xf4, 0xce, 0x72, 0x1c,
-    0xc0, 0x0, 0xc9, 0x0, 0xc, 0x80, 0x0, 0xc8,
-    0x0, 0xc, 0x80, 0x0, 0xc8, 0x0, 0x0,
+    0xb9, 0x8e, 0x4b, 0xfd, 0x71, 0xbe, 0x10, 0xb,
+    0xb0, 0x0, 0xba, 0x0, 0xb, 0xa0, 0x0, 0xba,
+    0x0, 0xb, 0xa0, 0x0,
 
     /* U+0073 "s" */
-    0x3, 0xcf, 0xe6, 0xf, 0x82, 0x44, 0x2f, 0x40,
-    0x0, 0xb, 0xf9, 0x20, 0x0, 0x4c, 0xf5, 0x0,
-    0x0, 0xad, 0x27, 0x33, 0xca, 0x2c, 0xfe, 0xa1,
+    0x5, 0xdf, 0xea, 0x13, 0xf7, 0x35, 0xa0, 0x6f,
+    0x0, 0x0, 0x1, 0xee, 0x96, 0x10, 0x1, 0x6a,
+    0xef, 0x30, 0x0, 0x0, 0xd9, 0x6c, 0x64, 0x6f,
+    0x62, 0xae, 0xfd, 0x70,
 
     /* U+0074 "t" */
-    0x0, 0x20, 0x0, 0x5f, 0x0, 0x6, 0xf0, 0xb,
-    0xff, 0xfd, 0x17, 0xf2, 0x10, 0x6f, 0x0, 0x6,
-    0xf0, 0x0, 0x6f, 0x0, 0x6, 0xf0, 0x0, 0x4f,
-    0x53, 0x0, 0xaf, 0xb0,
+    0x8, 0xd0, 0x0, 0x8, 0xd0, 0x0, 0xcf, 0xff,
+    0xf0, 0x29, 0xd3, 0x20, 0x8, 0xd0, 0x0, 0x8,
+    0xd0, 0x0, 0x8, 0xd0, 0x0, 0x8, 0xd0, 0x0,
+    0x5, 0xf5, 0x51, 0x0, 0x9f, 0xe3,
 
     /* U+0075 "u" */
-    0xf6, 0x0, 0xe, 0x7f, 0x60, 0x0, 0xe7, 0xf6,
-    0x0, 0xe, 0x7f, 0x60, 0x0, 0xe7, 0xf6, 0x0,
-    0xe, 0x7d, 0x70, 0x1, 0xf7, 0x9d, 0x20, 0xaf,
-    0x71, 0xbf, 0xe5, 0xe7,
+    0xc8, 0x0, 0x2, 0xf3, 0xc8, 0x0, 0x2, 0xf3,
+    0xc8, 0x0, 0x2, 0xf3, 0xc8, 0x0, 0x2, 0xf3,
+    0xc9, 0x0, 0x3, 0xf3, 0xab, 0x0, 0x7, 0xf3,
+    0x5f, 0x83, 0x7e, 0xf3, 0x6, 0xdf, 0xc5, 0xf3,
 
     /* U+0076 "v" */
-    0xbb, 0x0, 0x4, 0xf1, 0x5f, 0x10, 0xa, 0xb0,
-    0xf, 0x50, 0xf, 0x50, 0xa, 0xb0, 0x4f, 0x0,
-    0x4, 0xf0, 0xa9, 0x0, 0x0, 0xe5, 0xf3, 0x0,
-    0x0, 0x9c, 0xd0, 0x0, 0x0, 0x3f, 0x70, 0x0,
+    0xd, 0x90, 0x0, 0xa, 0xa0, 0x6e, 0x0, 0x1,
+    0xf3, 0x0, 0xf5, 0x0, 0x7d, 0x0, 0x9, 0xc0,
+    0xe, 0x60, 0x0, 0x3f, 0x24, 0xf0, 0x0, 0x0,
+    0xc8, 0xb9, 0x0, 0x0, 0x6, 0xff, 0x30, 0x0,
+    0x0, 0xf, 0xc0, 0x0,
 
     /* U+0077 "w" */
-    0xbb, 0x0, 0x2f, 0x50, 0x8, 0xb6, 0xe0, 0x6,
-    0xfa, 0x0, 0xc7, 0x1f, 0x30, 0xb9, 0xe0, 0xf,
-    0x20, 0xd7, 0xf, 0x1f, 0x24, 0xe0, 0x8, 0xb4,
-    0xc0, 0xb6, 0x89, 0x0, 0x4f, 0x88, 0x6, 0xbc,
-    0x50, 0x0, 0xfe, 0x30, 0x2e, 0xf1, 0x0, 0xb,
-    0xe0, 0x0, 0xec, 0x0,
+    0xc8, 0x0, 0x6, 0xf1, 0x0, 0xd, 0x56, 0xd0,
+    0x0, 0xcf, 0x60, 0x3, 0xf0, 0x1f, 0x30, 0x2f,
+    0x9c, 0x0, 0x9a, 0x0, 0xb8, 0x7, 0xb2, 0xf1,
+    0xe, 0x40, 0x5, 0xe0, 0xd6, 0xc, 0x74, 0xe0,
+    0x0, 0xf, 0x6f, 0x0, 0x7c, 0x99, 0x0, 0x0,
+    0xaf, 0xa0, 0x1, 0xff, 0x40, 0x0, 0x5, 0xf4,
+    0x0, 0xb, 0xe0, 0x0,
 
     /* U+0078 "x" */
-    0x6f, 0x20, 0xd, 0x90, 0xca, 0x6, 0xe1, 0x3,
-    0xf3, 0xe5, 0x0, 0x9, 0xfb, 0x0, 0x0, 0x8f,
-    0xa0, 0x0, 0x3f, 0x4f, 0x50, 0xd, 0x90, 0x8e,
-    0x8, 0xe1, 0x0, 0xe9,
+    0x4f, 0x30, 0x7, 0xe1, 0x9, 0xd0, 0x2f, 0x40,
+    0x0, 0xd9, 0xd9, 0x0, 0x0, 0x3f, 0xd0, 0x0,
+    0x0, 0x4f, 0xe1, 0x0, 0x1, 0xe7, 0xbb, 0x0,
+    0xb, 0xb0, 0x1e, 0x70, 0x7e, 0x10, 0x5, 0xf3,
 
     /* U+0079 "y" */
-    0xbb, 0x0, 0x3, 0xf2, 0x5f, 0x10, 0x8, 0xc0,
-    0xf, 0x60, 0xd, 0x60, 0xa, 0xb0, 0x3f, 0x10,
-    0x4, 0xf0, 0x8b, 0x0, 0x0, 0xe5, 0xd5, 0x0,
-    0x0, 0x8c, 0xf0, 0x0, 0x0, 0x3f, 0x90, 0x0,
-    0x0, 0x1f, 0x30, 0x0, 0x0, 0x7d, 0x0, 0x0,
-    0x24, 0xe5, 0x0, 0x0, 0x9f, 0x80, 0x0, 0x0,
+    0xd, 0x90, 0x0, 0xa, 0xa0, 0x6f, 0x0, 0x1,
+    0xf3, 0x0, 0xf6, 0x0, 0x7d, 0x0, 0x9, 0xc0,
+    0xd, 0x60, 0x0, 0x2f, 0x34, 0xf0, 0x0, 0x0,
+    0xc9, 0xa9, 0x0, 0x0, 0x5, 0xff, 0x20, 0x0,
+    0x0, 0xe, 0xc0, 0x0, 0x0, 0x0, 0xe5, 0x0,
+    0x0, 0x94, 0xad, 0x0, 0x0, 0x1b, 0xfc, 0x20,
+    0x0, 0x0,
 
     /* U+007A "z" */
-    0x5f, 0xff, 0xff, 0x70, 0x22, 0x2b, 0xc0, 0x0,
-    0x4, 0xf2, 0x0, 0x1, 0xe7, 0x0, 0x0, 0xac,
-    0x0, 0x0, 0x5f, 0x20, 0x0, 0x1e, 0x82, 0x22,
-    0x1a, 0xff, 0xff, 0xf8
+    0x5f, 0xff, 0xff, 0xa1, 0x33, 0x37, 0xf4, 0x0,
+    0x1, 0xe7, 0x0, 0x0, 0xcb, 0x0, 0x0, 0x8e,
+    0x10, 0x0, 0x4f, 0x40, 0x0, 0x1e, 0xa3, 0x33,
+    0x26, 0xff, 0xff, 0xfc,
+
+    /* U+007B "{" */
+    0x0, 0x6e, 0xa0, 0xf, 0x92, 0x1, 0xf4, 0x0,
+    0x1f, 0x40, 0x1, 0xf4, 0x0, 0x3f, 0x30, 0x3f,
+    0xc0, 0x0, 0x6f, 0x30, 0x1, 0xf4, 0x0, 0x1f,
+    0x40, 0x1, 0xf4, 0x0, 0x1f, 0x40, 0x0, 0xfa,
+    0x20, 0x5, 0xea,
+
+    /* U+007C "|" */
+    0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b,
+    0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b,
+
+    /* U+007D "}" */
+    0xbe, 0x50, 0x2, 0xae, 0x0, 0x5, 0xf0, 0x0,
+    0x5f, 0x0, 0x5, 0xf0, 0x0, 0x4f, 0x10, 0x0,
+    0xdf, 0x10, 0x4f, 0x50, 0x5, 0xf0, 0x0, 0x5f,
+    0x0, 0x5, 0xf0, 0x0, 0x5f, 0x0, 0x2a, 0xe0,
+    0xb, 0xe4, 0x0,
+
+    /* U+007E "~" */
+    0x7, 0xec, 0x40, 0xb4, 0x1e, 0x25, 0xdf, 0xc0,
+    0x1, 0x0, 0x0, 0x0,
+
+    /* U+00B0 "°" */
+    0x4, 0xcc, 0x30, 0x2b, 0x1, 0xc0, 0x57, 0x0,
+    0x93, 0x2b, 0x1, 0xc0, 0x5, 0xcc, 0x30,
+
+    /* U+2022 "•" */
+    0x6, 0xa1, 0xf, 0xf6, 0xb, 0xe2,
+
+    /* U+F001 "" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x2, 0x7b, 0xfb, 0x0,
+    0x0, 0x0, 0x4, 0x9d, 0xff, 0xff, 0xd0, 0x0,
+    0x3, 0xaf, 0xff, 0xff, 0xff, 0xfd, 0x0, 0x0,
+    0xaf, 0xff, 0xff, 0xff, 0xdf, 0xd0, 0x0, 0xa,
+    0xff, 0xff, 0xb6, 0x10, 0xed, 0x0, 0x0, 0xaf,
+    0x94, 0x0, 0x0, 0xe, 0xd0, 0x0, 0xa, 0xf1,
+    0x0, 0x0, 0x0, 0xed, 0x0, 0x0, 0xaf, 0x10,
+    0x0, 0x0, 0xe, 0xd0, 0x0, 0xa, 0xf1, 0x0,
+    0x0, 0x45, 0xfd, 0x0, 0x0, 0xaf, 0x10, 0x1,
+    0xef, 0xff, 0xd0, 0x17, 0x9d, 0xf1, 0x0, 0x5f,
+    0xff, 0xfc, 0xe, 0xff, 0xff, 0x10, 0x0, 0xaf,
+    0xfd, 0x31, 0xff, 0xff, 0xe0, 0x0, 0x0, 0x1,
+    0x0, 0x3, 0xbd, 0xa3, 0x0, 0x0, 0x0, 0x0,
+    0x0,
+
+    /* U+F008 "" */
+    0x50, 0x18, 0x88, 0x88, 0x88, 0x84, 0x5, 0xfa,
+    0xbf, 0xdd, 0xdd, 0xdd, 0xfd, 0xaf, 0xe4, 0x7f,
+    0x10, 0x0, 0x0, 0xca, 0x4e, 0xe0, 0x4f, 0x10,
+    0x0, 0x0, 0xc8, 0xe, 0xfe, 0xef, 0x10, 0x0,
+    0x0, 0xcf, 0xef, 0xe0, 0x3f, 0xee, 0xee, 0xee,
+    0xf8, 0xe, 0xf6, 0x8f, 0x76, 0x66, 0x66, 0xeb,
+    0x6f, 0xf8, 0xaf, 0x10, 0x0, 0x0, 0xcc, 0x8f,
+    0xe0, 0x3f, 0x10, 0x0, 0x0, 0xc8, 0xe, 0xfc,
+    0xdf, 0x65, 0x55, 0x55, 0xee, 0xcf, 0xc2, 0x5f,
+    0xff, 0xff, 0xff, 0xf9, 0x2c,
+
+    /* U+F00B "" */
+    0x57, 0x75, 0x5, 0x77, 0x77, 0x77, 0x75, 0xff,
+    0xff, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0x2f, 0xff, 0xff, 0xff, 0xff, 0xef, 0xff, 0xe,
+    0xff, 0xff, 0xff, 0xfe, 0x1, 0x10, 0x0, 0x11,
+    0x11, 0x11, 0x10, 0xef, 0xfe, 0xe, 0xff, 0xff,
+    0xff, 0xfe, 0xff, 0xff, 0x2f, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0x1f, 0xff, 0xff, 0xff, 0xff,
+    0x68, 0x87, 0x7, 0x88, 0x88, 0x88, 0x86, 0x68,
+    0x87, 0x7, 0x88, 0x88, 0x88, 0x86, 0xff, 0xff,
+    0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x2f,
+    0xff, 0xff, 0xff, 0xff, 0xdf, 0xfd, 0xd, 0xff,
+    0xff, 0xff, 0xfd,
+
+    /* U+F00C "" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x50, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x1d, 0xf8, 0x0, 0x0,
+    0x0, 0x0, 0x1, 0xdf, 0xfd, 0x0, 0x0, 0x0,
+    0x0, 0x1d, 0xff, 0xe2, 0x2d, 0x60, 0x0, 0x1,
+    0xdf, 0xfe, 0x20, 0xdf, 0xf7, 0x0, 0x1d, 0xff,
+    0xe2, 0x0, 0x8f, 0xff, 0x71, 0xdf, 0xfe, 0x20,
+    0x0, 0x8, 0xff, 0xfe, 0xff, 0xe2, 0x0, 0x0,
+    0x0, 0x8f, 0xff, 0xfe, 0x20, 0x0, 0x0, 0x0,
+    0x8, 0xff, 0xe2, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x7d, 0x20, 0x0, 0x0, 0x0,
+
+    /* U+F00D "" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x7f, 0x60, 0x0,
+    0xb, 0xe2, 0xef, 0xf6, 0x0, 0xbf, 0xf8, 0x4f,
+    0xff, 0x6b, 0xff, 0xd1, 0x4, 0xff, 0xff, 0xfd,
+    0x10, 0x0, 0x5f, 0xff, 0xe1, 0x0, 0x0, 0xbf,
+    0xff, 0xf6, 0x0, 0xb, 0xff, 0xdf, 0xff, 0x60,
+    0xbf, 0xfd, 0x14, 0xff, 0xf5, 0xcf, 0xd1, 0x0,
+    0x4f, 0xf6, 0x17, 0x10, 0x0, 0x3, 0x60,
+
+    /* U+F011 "" */
+    0x0, 0x0, 0x0, 0x11, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x6f,
+    0x21, 0xff, 0x12, 0xf7, 0x0, 0x6, 0xff, 0x61,
+    0xff, 0x16, 0xff, 0x60, 0x1f, 0xf9, 0x1, 0xff,
+    0x10, 0x9f, 0xf1, 0x6f, 0xe0, 0x1, 0xff, 0x10,
+    0xe, 0xf6, 0xaf, 0x80, 0x1, 0xff, 0x10, 0x8,
+    0xfa, 0xcf, 0x60, 0x1, 0xff, 0x10, 0x6, 0xfc,
+    0xaf, 0x80, 0x0, 0xaa, 0x0, 0x8, 0xfb, 0x7f,
+    0xd0, 0x0, 0x0, 0x0, 0xd, 0xf7, 0x1f, 0xf8,
+    0x0, 0x0, 0x0, 0x8f, 0xf1, 0x7, 0xff, 0x91,
+    0x0, 0x2a, 0xff, 0x70, 0x0, 0x9f, 0xff, 0xee,
+    0xff, 0xf9, 0x0, 0x0, 0x5, 0xcf, 0xff, 0xfd,
+    0x50, 0x0, 0x0, 0x0, 0x2, 0x44, 0x20, 0x0,
+    0x0,
+
+    /* U+F013 "" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xa, 0xff, 0xa0, 0x0, 0x0, 0x0, 0x0,
+    0xc, 0xff, 0xc0, 0x0, 0x0, 0x3, 0xd6, 0xdf,
+    0xff, 0xfd, 0x6d, 0x30, 0xe, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xe0, 0x5f, 0xff, 0xff, 0xaa, 0xff,
+    0xff, 0xf5, 0x1a, 0xff, 0xf4, 0x0, 0x4f, 0xff,
+    0xa1, 0x3, 0xff, 0xd0, 0x0, 0xd, 0xff, 0x30,
+    0x4, 0xff, 0xf0, 0x0, 0xf, 0xff, 0x40, 0x4f,
+    0xff, 0xfb, 0x22, 0xbf, 0xff, 0xf4, 0x2f, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xf2, 0x9, 0xfe, 0xff,
+    0xff, 0xff, 0xef, 0x90, 0x0, 0x50, 0x5e, 0xff,
+    0xe5, 0x5, 0x0, 0x0, 0x0, 0xc, 0xff, 0xc0,
+    0x0, 0x0, 0x0, 0x0, 0x4, 0x77, 0x40, 0x0,
+    0x0,
+
+    /* U+F015 "" */
+    0x0, 0x0, 0x0, 0x3, 0x10, 0x3, 0x41, 0x0,
+    0x0, 0x0, 0x0, 0x9f, 0xf5, 0xd, 0xf5, 0x0,
+    0x0, 0x0, 0x1b, 0xfd, 0xff, 0x8d, 0xf5, 0x0,
+    0x0, 0x2, 0xdf, 0xb1, 0x2d, 0xff, 0xf5, 0x0,
+    0x0, 0x4f, 0xf8, 0x3e, 0xc2, 0xbf, 0xf5, 0x0,
+    0x7, 0xff, 0x55, 0xff, 0xfe, 0x39, 0xfe, 0x40,
+    0x9f, 0xe3, 0x8f, 0xff, 0xff, 0xf5, 0x6f, 0xf6,
+    0xac, 0x2a, 0xff, 0xff, 0xff, 0xff, 0x73, 0xe6,
+    0x0, 0x5f, 0xff, 0xff, 0xff, 0xff, 0xf1, 0x0,
+    0x0, 0x6f, 0xff, 0xd7, 0x7f, 0xff, 0xf2, 0x0,
+    0x0, 0x6f, 0xff, 0x90, 0xd, 0xff, 0xf2, 0x0,
+    0x0, 0x6f, 0xff, 0x90, 0xd, 0xff, 0xf2, 0x0,
+    0x0, 0x4f, 0xff, 0x70, 0xb, 0xff, 0xe1, 0x0,
+
+    /* U+F019 "" */
+    0x0, 0x0, 0x0, 0x33, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xb, 0xff, 0xb0, 0x0, 0x0, 0x0, 0x0,
+    0xc, 0xff, 0xc0, 0x0, 0x0, 0x0, 0x0, 0xc,
+    0xff, 0xc0, 0x0, 0x0, 0x0, 0x0, 0xc, 0xff,
+    0xc0, 0x0, 0x0, 0x0, 0x0, 0xc, 0xff, 0xc0,
+    0x0, 0x0, 0x0, 0x8f, 0xff, 0xff, 0xff, 0xf8,
+    0x0, 0x0, 0x2e, 0xff, 0xff, 0xff, 0xe2, 0x0,
+    0x0, 0x2, 0xef, 0xff, 0xfe, 0x20, 0x0, 0x0,
+    0x0, 0x2d, 0xff, 0xe2, 0x0, 0x0, 0x79, 0x99,
+    0x82, 0xde, 0x28, 0x99, 0x97, 0xff, 0xff, 0xfb,
+    0x22, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa,
+    0xb3, 0xcf, 0xac, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
+    0xca,
+
+    /* U+F01C "" */
+    0x0, 0x6, 0xbb, 0xbb, 0xbb, 0xba, 0x30, 0x0,
+    0x0, 0x4f, 0xff, 0xff, 0xff, 0xff, 0xe1, 0x0,
+    0x0, 0xef, 0x30, 0x0, 0x0, 0x6, 0xfb, 0x0,
+    0x9, 0xf8, 0x0, 0x0, 0x0, 0x0, 0xcf, 0x50,
+    0x4f, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x2f, 0xe1,
+    0xdf, 0x84, 0x42, 0x0, 0x0, 0x34, 0x4b, 0xf9,
+    0xff, 0xff, 0xfd, 0x0, 0x1, 0xff, 0xff, 0xfb,
+    0xff, 0xff, 0xff, 0x98, 0x8b, 0xff, 0xff, 0xfc,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb,
+    0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf6,
+
+    /* U+F021 "" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x33, 0x0,
+    0x1, 0x8d, 0xff, 0xc6, 0x0, 0xef, 0x0, 0x4e,
+    0xff, 0xff, 0xff, 0xe4, 0xdf, 0x4, 0xff, 0xb3,
+    0x0, 0x4c, 0xff, 0xff, 0xe, 0xf9, 0x0, 0x0,
+    0x0, 0x8f, 0xff, 0x6f, 0xc0, 0x0, 0x1, 0xff,
+    0xff, 0xff, 0x8e, 0x50, 0x0, 0x1, 0xde, 0xee,
+    0xed, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x22, 0x22, 0x22, 0x0, 0x0, 0x0, 0x21, 0xff,
+    0xff, 0xff, 0x10, 0x0, 0x8, 0xf8, 0xff, 0xfb,
+    0xbc, 0x10, 0x0, 0x1e, 0xf4, 0xff, 0xfc, 0x10,
+    0x0, 0x1, 0xdf, 0xc0, 0xfe, 0xef, 0xe8, 0x44,
+    0x8e, 0xfe, 0x10, 0xfe, 0x1a, 0xff, 0xff, 0xff,
+    0xc1, 0x0, 0xfd, 0x0, 0x28, 0xbb, 0x94, 0x0,
+    0x0,
+
+    /* U+F026 "" */
+    0x0, 0x0, 0x2, 0x70, 0x0, 0x2, 0xef, 0x0,
+    0x2, 0xef, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0x34, 0x47, 0xff, 0xf0,
+    0x0, 0x5, 0xff, 0x0, 0x0, 0x5, 0xc0, 0x0,
+    0x0, 0x0,
+
+    /* U+F027 "" */
+    0x0, 0x0, 0x2, 0x70, 0x0, 0x0, 0x0, 0x2,
+    0xef, 0x0, 0x0, 0x0, 0x2, 0xef, 0xf0, 0x0,
+    0xd, 0xff, 0xff, 0xff, 0x2, 0x20, 0xff, 0xff,
+    0xff, 0xf0, 0x8e, 0x1f, 0xff, 0xff, 0xff, 0x0,
+    0xe7, 0xff, 0xff, 0xff, 0xf0, 0x3f, 0x5f, 0xff,
+    0xff, 0xff, 0x8, 0x90, 0x34, 0x47, 0xff, 0xf0,
+    0x0, 0x0, 0x0, 0x5, 0xff, 0x0, 0x0, 0x0,
+    0x0, 0x5, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0,
+
+    /* U+F028 "" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0x70, 0x0,
+    0x0, 0x0, 0x2, 0x70, 0x0, 0x5, 0xfa, 0x0,
+    0x0, 0x0, 0x2e, 0xf0, 0x0, 0x81, 0x4f, 0x60,
+    0x0, 0x2, 0xef, 0xf0, 0x1, 0xdd, 0x7, 0xf0,
+    0xdf, 0xff, 0xff, 0xf0, 0x32, 0x1e, 0x80, 0xf6,
+    0xff, 0xff, 0xff, 0xf0, 0x8e, 0x27, 0xe0, 0xb9,
+    0xff, 0xff, 0xff, 0xf0, 0xe, 0x73, 0xf1, 0x9b,
+    0xff, 0xff, 0xff, 0xf0, 0x3f, 0x54, 0xf0, 0x9a,
+    0xff, 0xff, 0xff, 0xf0, 0x89, 0xa, 0xc0, 0xd8,
+    0x34, 0x47, 0xff, 0xf0, 0x0, 0x7f, 0x43, 0xf3,
+    0x0, 0x0, 0x5f, 0xf0, 0x2, 0xf6, 0xc, 0xb0,
+    0x0, 0x0, 0x5, 0xc0, 0x0, 0x0, 0xbf, 0x10,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x9, 0xe3, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x10, 0x0,
+
+    /* U+F03E "" */
+    0x37, 0x88, 0x88, 0x88, 0x88, 0x88, 0x73, 0xef,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0x32,
+    0xdf, 0xff, 0xff, 0xff, 0xff, 0xf9, 0x0, 0x7f,
+    0xff, 0xfd, 0xff, 0xff, 0xfd, 0x10, 0xcf, 0xff,
+    0xa0, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfa, 0x0,
+    0x7, 0xff, 0xff, 0xf3, 0x5f, 0xa0, 0x0, 0x0,
+    0xcf, 0xff, 0x30, 0x3, 0x0, 0x0, 0x0, 0xcf,
+    0xfc, 0x0, 0x0, 0x0, 0x0, 0x0, 0xcf, 0xff,
+    0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xff, 0xaf, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xf9,
+
+    /* U+F043 "" */
+    0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x1, 0xfa,
+    0x0, 0x0, 0x0, 0x6, 0xff, 0x10, 0x0, 0x0,
+    0xd, 0xff, 0x70, 0x0, 0x0, 0x6f, 0xff, 0xf1,
+    0x0, 0x1, 0xef, 0xff, 0xfa, 0x0, 0xb, 0xff,
+    0xff, 0xff, 0x60, 0x5f, 0xff, 0xff, 0xff, 0xe0,
+    0xcf, 0xff, 0xff, 0xff, 0xf6, 0xfe, 0xbf, 0xff,
+    0xff, 0xf9, 0xfd, 0x4f, 0xff, 0xff, 0xf9, 0xbf,
+    0x49, 0xff, 0xff, 0xf5, 0x3f, 0xe5, 0x2e, 0xff,
+    0xd0, 0x6, 0xff, 0xff, 0xfd, 0x20, 0x0, 0x28,
+    0xba, 0x60, 0x0,
+
+    /* U+F048 "" */
+    0x4, 0x30, 0x0, 0x0, 0x31, 0x1f, 0xe0, 0x0,
+    0x6, 0xf9, 0x1f, 0xe0, 0x0, 0x7f, 0xfa, 0x1f,
+    0xe0, 0x9, 0xff, 0xfa, 0x1f, 0xe0, 0xaf, 0xff,
+    0xfa, 0x1f, 0xeb, 0xff, 0xff, 0xfa, 0x1f, 0xff,
+    0xff, 0xff, 0xfa, 0x1f, 0xff, 0xff, 0xff, 0xfa,
+    0x1f, 0xe6, 0xff, 0xff, 0xfa, 0x1f, 0xe0, 0x5f,
+    0xff, 0xfa, 0x1f, 0xe0, 0x4, 0xff, 0xfa, 0x1f,
+    0xe0, 0x0, 0x3e, 0xfa, 0xf, 0xd0, 0x0, 0x2,
+    0xd7, 0x0, 0x0, 0x0, 0x0, 0x0,
+
+    /* U+F04B "" */
+    0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc, 0xfb,
+    0x20, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, 0x90,
+    0x0, 0x0, 0x0, 0xf, 0xff, 0xff, 0xe6, 0x0,
+    0x0, 0x0, 0xff, 0xff, 0xff, 0xfc, 0x30, 0x0,
+    0xf, 0xff, 0xff, 0xff, 0xff, 0x91, 0x0, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xe6, 0xf, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xf2, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xfd, 0xf, 0xff, 0xff, 0xff, 0xff, 0xf8,
+    0x0, 0xff, 0xff, 0xff, 0xff, 0xb2, 0x0, 0xf,
+    0xff, 0xff, 0xfd, 0x40, 0x0, 0x0, 0xff, 0xff,
+    0xf7, 0x0, 0x0, 0x0, 0xf, 0xff, 0xa1, 0x0,
+    0x0, 0x0, 0x0, 0x6a, 0x40, 0x0, 0x0, 0x0,
+    0x0, 0x0,
+
+    /* U+F04C "" */
+    0x14, 0x44, 0x20, 0x1, 0x44, 0x42, 0xd, 0xff,
+    0xff, 0x10, 0xdf, 0xff, 0xf1, 0xff, 0xff, 0xf3,
+    0xf, 0xff, 0xff, 0x3f, 0xff, 0xff, 0x40, 0xff,
+    0xff, 0xf4, 0xff, 0xff, 0xf4, 0xf, 0xff, 0xff,
+    0x4f, 0xff, 0xff, 0x40, 0xff, 0xff, 0xf4, 0xff,
+    0xff, 0xf4, 0xf, 0xff, 0xff, 0x4f, 0xff, 0xff,
+    0x40, 0xff, 0xff, 0xf4, 0xff, 0xff, 0xf4, 0xf,
+    0xff, 0xff, 0x4f, 0xff, 0xff, 0x40, 0xff, 0xff,
+    0xf4, 0xff, 0xff, 0xf4, 0xf, 0xff, 0xff, 0x4f,
+    0xff, 0xff, 0x30, 0xff, 0xff, 0xf3, 0x9f, 0xff,
+    0xc0, 0x9, 0xff, 0xfc, 0x0,
+
+    /* U+F04D "" */
+    0x14, 0x44, 0x44, 0x44, 0x44, 0x42, 0xd, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xf1, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xf4, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0x4f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf4, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0x4f, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xf4, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0x4f, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xf4, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x4f,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0x9f, 0xff,
+    0xff, 0xff, 0xff, 0xfc, 0x0,
+
+    /* U+F051 "" */
+    0x2, 0x10, 0x0, 0x0, 0x42, 0xf, 0xe2, 0x0,
+    0x3, 0xfb, 0xf, 0xfe, 0x30, 0x4, 0xfb, 0xf,
+    0xff, 0xf4, 0x4, 0xfb, 0xf, 0xff, 0xff, 0x54,
+    0xfb, 0xf, 0xff, 0xff, 0xfa, 0xfb, 0xf, 0xff,
+    0xff, 0xff, 0xfb, 0xf, 0xff, 0xff, 0xff, 0xfb,
+    0xf, 0xff, 0xff, 0xd6, 0xfb, 0xf, 0xff, 0xfd,
+    0x14, 0xfb, 0xf, 0xff, 0xc1, 0x4, 0xfb, 0xf,
+    0xfb, 0x0, 0x4, 0xfb, 0xc, 0xa0, 0x0, 0x3,
+    0xfa, 0x0, 0x0, 0x0, 0x0, 0x0,
+
+    /* U+F052 "" */
+    0x0, 0x0, 0x0, 0x12, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x3, 0xff, 0x60, 0x0, 0x0, 0x0, 0x0,
+    0x2e, 0xff, 0xf5, 0x0, 0x0, 0x0, 0x1, 0xef,
+    0xff, 0xff, 0x40, 0x0, 0x0, 0x1d, 0xff, 0xff,
+    0xff, 0xf3, 0x0, 0x0, 0xcf, 0xff, 0xff, 0xff,
+    0xfe, 0x20, 0xa, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xe0, 0xe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf2,
+    0x3, 0x99, 0x99, 0x99, 0x99, 0x99, 0x50, 0x5,
+    0x88, 0x88, 0x88, 0x88, 0x88, 0x70, 0xf, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xf3, 0xf, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xf4, 0xb, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xd1,
+
+    /* U+F053 "" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f,
+    0x90, 0x0, 0x0, 0x3f, 0xfc, 0x0, 0x0, 0x3f,
+    0xfd, 0x10, 0x0, 0x3f, 0xfd, 0x10, 0x0, 0x3f,
+    0xfd, 0x10, 0x0, 0x1f, 0xfd, 0x10, 0x0, 0x0,
+    0xcf, 0xf4, 0x0, 0x0, 0x0, 0xcf, 0xf4, 0x0,
+    0x0, 0x0, 0xcf, 0xf4, 0x0, 0x0, 0x0, 0xcf,
+    0xf4, 0x0, 0x0, 0x0, 0xcf, 0xe0, 0x0, 0x0,
+    0x0, 0xa4, 0x0,
+
+    /* U+F054 "" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0xcd, 0x10, 0x0,
+    0x0, 0x1f, 0xfd, 0x10, 0x0, 0x0, 0x3f, 0xfd,
+    0x10, 0x0, 0x0, 0x3f, 0xfd, 0x10, 0x0, 0x0,
+    0x3f, 0xfd, 0x10, 0x0, 0x0, 0x3f, 0xfd, 0x0,
+    0x0, 0x8, 0xff, 0x90, 0x0, 0x8, 0xff, 0x90,
+    0x0, 0x8, 0xff, 0x90, 0x0, 0x8, 0xff, 0x90,
+    0x0, 0x2, 0xff, 0x90, 0x0, 0x0, 0x7, 0x80,
+    0x0, 0x0, 0x0,
+
+    /* U+F067 "" */
+    0x0, 0x0, 0x4, 0x50, 0x0, 0x0, 0x0, 0x0,
+    0x2, 0xff, 0x60, 0x0, 0x0, 0x0, 0x0, 0x3f,
+    0xf7, 0x0, 0x0, 0x0, 0x0, 0x3, 0xff, 0x70,
+    0x0, 0x0, 0x0, 0x0, 0x3f, 0xf7, 0x0, 0x0,
+    0x6, 0x99, 0x9a, 0xff, 0xc9, 0x99, 0x80, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0x3d, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xf2, 0x1, 0x11, 0x3f, 0xf7,
+    0x11, 0x10, 0x0, 0x0, 0x3, 0xff, 0x70, 0x0,
+    0x0, 0x0, 0x0, 0x3f, 0xf7, 0x0, 0x0, 0x0,
+    0x0, 0x3, 0xff, 0x70, 0x0, 0x0, 0x0, 0x0,
+    0xc, 0xd3, 0x0, 0x0, 0x0,
+
+    /* U+F068 "" */
+    0x69, 0x99, 0x99, 0x99, 0x99, 0x98, 0xf, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xf3, 0xdf, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0x20, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0,
+
+    /* U+F06E "" */
+    0x0, 0x0, 0x1, 0x56, 0x64, 0x0, 0x0, 0x0,
+    0x0, 0x3, 0xbf, 0xfe, 0xef, 0xf9, 0x10, 0x0,
+    0x0, 0x7f, 0xfa, 0x10, 0x3, 0xdf, 0xe4, 0x0,
+    0x8, 0xff, 0xa0, 0x9, 0xb4, 0x1e, 0xff, 0x50,
+    0x4f, 0xff, 0x20, 0xb, 0xff, 0x26, 0xff, 0xe1,
+    0xef, 0xff, 0x9, 0xcf, 0xff, 0x63, 0xff, 0xfa,
+    0xbf, 0xff, 0x9, 0xff, 0xff, 0x54, 0xff, 0xf6,
+    0x1e, 0xff, 0x51, 0xdf, 0xfb, 0x9, 0xff, 0xb0,
+    0x3, 0xef, 0xe2, 0x4, 0x30, 0x5f, 0xfc, 0x10,
+    0x0, 0x2c, 0xff, 0x95, 0x6a, 0xff, 0x90, 0x0,
+    0x0, 0x0, 0x49, 0xdf, 0xfd, 0x92, 0x0, 0x0,
+
+    /* U+F070 "" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xcd, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x8f, 0xf5, 0x0, 0x14, 0x66, 0x40,
+    0x0, 0x0, 0x0, 0x4, 0xef, 0xac, 0xff, 0xef,
+    0xff, 0x91, 0x0, 0x0, 0x0, 0x1c, 0xff, 0xa1,
+    0x0, 0x4d, 0xfe, 0x30, 0x0, 0x0, 0x0, 0x9f,
+    0xf5, 0xab, 0x31, 0xef, 0xf4, 0x0, 0x7, 0xb1,
+    0x5, 0xff, 0xff, 0xe1, 0x7f, 0xfe, 0x10, 0xf,
+    0xfe, 0x30, 0x2d, 0xff, 0xf5, 0x4f, 0xff, 0x90,
+    0xc, 0xff, 0xe0, 0x0, 0xaf, 0xf6, 0x5f, 0xff,
+    0x60, 0x2, 0xff, 0xf4, 0x0, 0x6, 0xff, 0xef,
+    0xfb, 0x0, 0x0, 0x4f, 0xfd, 0x10, 0x0, 0x3e,
+    0xff, 0xc0, 0x0, 0x0, 0x2, 0xdf, 0xe8, 0x54,
+    0x1, 0xbf, 0xe3, 0x0, 0x0, 0x0, 0x5, 0xae,
+    0xff, 0x60, 0x7, 0xff, 0x60, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x4e, 0xf6, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xa1,
+
+    /* U+F071 "" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x3e, 0xd0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0xc, 0xff, 0x80, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x6, 0xff, 0xff, 0x20,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0xef, 0xff, 0xfb,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x8f, 0xfc, 0xcf,
+    0xf4, 0x0, 0x0, 0x0, 0x0, 0x2f, 0xfb, 0x0,
+    0xff, 0xd0, 0x0, 0x0, 0x0, 0xb, 0xff, 0xc0,
+    0xf, 0xff, 0x70, 0x0, 0x0, 0x4, 0xff, 0xfd,
+    0x1, 0xff, 0xff, 0x10, 0x0, 0x0, 0xdf, 0xff,
+    0xe0, 0x2f, 0xff, 0xfa, 0x0, 0x0, 0x7f, 0xff,
+    0xff, 0x9b, 0xff, 0xff, 0xf3, 0x0, 0x1f, 0xff,
+    0xff, 0xb0, 0xe, 0xff, 0xff, 0xc0, 0xa, 0xff,
+    0xff, 0xfe, 0x24, 0xff, 0xff, 0xff, 0x60, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0x6,
+    0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcb, 0x30,
+
+    /* U+F074 "" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x36, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x7f, 0x80, 0xdd, 0xdb,
+    0x0, 0x0, 0x8d, 0xef, 0xf8, 0xff, 0xff, 0xb0,
+    0x7, 0xff, 0xff, 0xfd, 0x55, 0x6f, 0xf4, 0x6f,
+    0xf8, 0xaf, 0xe2, 0x0, 0x5, 0x74, 0xff, 0x90,
+    0x7e, 0x20, 0x0, 0x0, 0x3f, 0xfa, 0x0, 0x0,
+    0x0, 0x0, 0x2, 0xef, 0xb2, 0x50, 0x4a, 0x0,
+    0x1, 0x2e, 0xfd, 0x1d, 0xf4, 0x8f, 0xb0, 0xff,
+    0xff, 0xd1, 0xb, 0xff, 0xff, 0xfb, 0xff, 0xfe,
+    0x20, 0x0, 0xcf, 0xff, 0xfb, 0x12, 0x21, 0x0,
+    0x0, 0x2, 0x9f, 0xc0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x5b, 0x0,
+
+    /* U+F077 "" */
+    0x0, 0x0, 0x7, 0xa0, 0x0, 0x0, 0x0, 0x0,
+    0x8, 0xff, 0xb0, 0x0, 0x0, 0x0, 0x8, 0xff,
+    0xff, 0xb0, 0x0, 0x0, 0x8, 0xff, 0x95, 0xff,
+    0xb0, 0x0, 0x8, 0xff, 0x90, 0x5, 0xff, 0xb0,
+    0x7, 0xff, 0x90, 0x0, 0x5, 0xff, 0xb0, 0x9f,
+    0x90, 0x0, 0x0, 0x5, 0xfd, 0x0, 0x40, 0x0,
+    0x0, 0x0, 0x3, 0x10,
+
+    /* U+F078 "" */
+    0x4c, 0x20, 0x0, 0x0, 0x0, 0xb6, 0xb, 0xfe,
+    0x20, 0x0, 0x0, 0xcf, 0xf0, 0x2e, 0xfe, 0x20,
+    0x0, 0xcf, 0xf4, 0x0, 0x2e, 0xfe, 0x20, 0xcf,
+    0xf4, 0x0, 0x0, 0x2e, 0xfe, 0xcf, 0xf4, 0x0,
+    0x0, 0x0, 0x2e, 0xff, 0xf4, 0x0, 0x0, 0x0,
+    0x0, 0x2e, 0xf4, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x13, 0x0, 0x0, 0x0,
+
+    /* U+F079 "" */
+    0x0, 0x8, 0x30, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xbf, 0xf3, 0x8, 0xbb, 0xbb, 0xbb,
+    0x90, 0x0, 0xb, 0xff, 0xff, 0x39, 0xff, 0xff,
+    0xff, 0xf1, 0x0, 0x8f, 0xcf, 0xcf, 0xf0, 0x0,
+    0x0, 0xa, 0xf1, 0x0, 0x38, 0x2f, 0x94, 0x80,
+    0x0, 0x0, 0xa, 0xf1, 0x0, 0x0, 0x2f, 0x90,
+    0x0, 0x0, 0x0, 0xa, 0xf1, 0x0, 0x0, 0x2f,
+    0x90, 0x0, 0x0, 0x3, 0xa, 0xf1, 0x30, 0x0,
+    0x2f, 0x90, 0x0, 0x0, 0x1f, 0xcb, 0xf8, 0xf8,
+    0x0, 0x2f, 0xeb, 0xbb, 0xbb, 0x39, 0xff, 0xff,
+    0xe2, 0x0, 0x1f, 0xff, 0xff, 0xff, 0xb0, 0x9f,
+    0xfd, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x8, 0xd1, 0x0,
+
+    /* U+F07B "" */
+    0x37, 0x88, 0x87, 0x0, 0x0, 0x0, 0x0, 0xef,
+    0xff, 0xff, 0xa0, 0x0, 0x0, 0x0, 0xff, 0xff,
+    0xff, 0xfd, 0xcc, 0xcc, 0xb6, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xaf, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xf9,
+
+    /* U+F093 "" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x1, 0xdd, 0x10, 0x0, 0x0, 0x0, 0x0,
+    0x1d, 0xff, 0xd1, 0x0, 0x0, 0x0, 0x1, 0xdf,
+    0xff, 0xfd, 0x10, 0x0, 0x0, 0x1d, 0xff, 0xff,
+    0xff, 0xd1, 0x0, 0x0, 0x9f, 0xff, 0xff, 0xff,
+    0xf9, 0x0, 0x0, 0x1, 0x1c, 0xff, 0xc1, 0x10,
+    0x0, 0x0, 0x0, 0xc, 0xff, 0xc0, 0x0, 0x0,
+    0x0, 0x0, 0xc, 0xff, 0xc0, 0x0, 0x0, 0x0,
+    0x0, 0xc, 0xff, 0xc0, 0x0, 0x0, 0x79, 0x99,
+    0x3b, 0xff, 0xb3, 0x99, 0x97, 0xff, 0xff, 0xb2,
+    0x44, 0x2b, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xdd,
+    0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa,
+    0xb3, 0xcf, 0xac, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
+    0xca,
+
+    /* U+F095 "" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x4, 0xff, 0xc7, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0xaf, 0xff, 0xf0, 0x0,
+    0x0, 0x0, 0x0, 0x1f, 0xff, 0xfd, 0x0, 0x0,
+    0x0, 0x0, 0x6, 0xff, 0xff, 0xc0, 0x0, 0x0,
+    0x0, 0x0, 0x8, 0xff, 0xf7, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xc, 0xff, 0x30, 0x0, 0x0, 0x0,
+    0x0, 0x4, 0xff, 0xc0, 0x0, 0x0, 0x0, 0x0,
+    0x1, 0xef, 0xf3, 0x0, 0x0, 0x4a, 0x30, 0x2,
+    0xdf, 0xf8, 0x0, 0x5, 0xdf, 0xfe, 0x15, 0xef,
+    0xfb, 0x0, 0x0, 0xef, 0xff, 0xff, 0xff, 0xfa,
+    0x0, 0x0, 0xb, 0xff, 0xff, 0xff, 0xf7, 0x0,
+    0x0, 0x0, 0x7f, 0xff, 0xff, 0xa2, 0x0, 0x0,
+    0x0, 0x2, 0xba, 0x85, 0x0, 0x0, 0x0, 0x0,
+    0x0,
+
+    /* U+F0C4 "" */
+    0x4, 0x86, 0x0, 0x0, 0x0, 0x10, 0x6, 0xff,
+    0xfa, 0x0, 0x2, 0xdf, 0xd1, 0xef, 0x3c, 0xf1,
+    0x1, 0xdf, 0xfa, 0xe, 0xe0, 0xaf, 0x21, 0xdf,
+    0xfa, 0x0, 0x9f, 0xef, 0xf6, 0xdf, 0xfa, 0x0,
+    0x0, 0x8d, 0xff, 0xff, 0xfb, 0x0, 0x0, 0x0,
+    0x6, 0xff, 0xfd, 0x0, 0x0, 0x0, 0x48, 0xef,
+    0xff, 0xf6, 0x0, 0x0, 0x6f, 0xff, 0xfb, 0xff,
+    0xf6, 0x0, 0xe, 0xf3, 0xcf, 0x23, 0xff, 0xf6,
+    0x0, 0xee, 0xa, 0xf2, 0x4, 0xff, 0xf6, 0x9,
+    0xfe, 0xfc, 0x0, 0x4, 0xff, 0xf1, 0x8, 0xda,
+    0x10, 0x0, 0x2, 0x62, 0x0,
+
+    /* U+F0C5 "" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x6f, 0xff, 0xf9, 0x87, 0x0, 0x0, 0x8, 0xff,
+    0xff, 0x98, 0xf7, 0x8, 0xa6, 0x8f, 0xff, 0xf9,
+    0x59, 0x90, 0xff, 0xa8, 0xff, 0xff, 0xfc, 0xcc,
+    0xf, 0xfa, 0x8f, 0xff, 0xff, 0xff, 0xf1, 0xff,
+    0xa8, 0xff, 0xff, 0xff, 0xff, 0x1f, 0xfa, 0x8f,
+    0xff, 0xff, 0xff, 0xf1, 0xff, 0xa8, 0xff, 0xff,
+    0xff, 0xff, 0x1f, 0xfa, 0x8f, 0xff, 0xff, 0xff,
+    0xf1, 0xff, 0xa8, 0xff, 0xff, 0xff, 0xff, 0x1f,
+    0xfa, 0x7f, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xe3,
+    0x12, 0x22, 0x22, 0x21, 0xf, 0xff, 0xff, 0xff,
+    0xf9, 0x0, 0x0, 0xac, 0xcc, 0xcc, 0xcb, 0x50,
+    0x0, 0x0,
+
+    /* U+F0C7 "" */
+    0x49, 0x99, 0x99, 0x99, 0x95, 0x0, 0xe, 0xff,
+    0xff, 0xff, 0xff, 0xf6, 0x0, 0xfd, 0x22, 0x22,
+    0x22, 0x4f, 0xf6, 0xf, 0xc0, 0x0, 0x0, 0x1,
+    0xff, 0xf3, 0xfc, 0x0, 0x0, 0x0, 0x1f, 0xff,
+    0x6f, 0xc0, 0x0, 0x0, 0x2, 0xff, 0xf6, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0x6f, 0xff, 0xff,
+    0xdc, 0xff, 0xff, 0xf6, 0xff, 0xff, 0xb0, 0x5,
+    0xff, 0xff, 0x6f, 0xff, 0xf6, 0x0, 0xf, 0xff,
+    0xf6, 0xff, 0xff, 0xc0, 0x6, 0xff, 0xff, 0x6f,
+    0xff, 0xff, 0xed, 0xff, 0xff, 0xf6, 0x9f, 0xff,
+    0xff, 0xff, 0xff, 0xfd, 0x10,
+
+    /* U+F0C9 "" */
+    0xcd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0x2f, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xf3, 0x12, 0x22, 0x22,
+    0x22, 0x22, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0xde,
+    0xee, 0xee, 0xee, 0xee, 0xee, 0x20, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xd, 0xee, 0xee, 0xee, 0xee, 0xee,
+    0xe2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x30,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+
+    /* U+F0E0 "" */
+    0x37, 0x88, 0x88, 0x88, 0x88, 0x88, 0x73, 0xef,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xef, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xfe, 0x1c, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xc1, 0xd2, 0x8f, 0xff, 0xff,
+    0xff, 0xf8, 0x2d, 0xff, 0x64, 0xef, 0xff, 0xfe,
+    0x45, 0xff, 0xff, 0xfa, 0x2b, 0xff, 0xb2, 0xaf,
+    0xff, 0xff, 0xff, 0xd3, 0x55, 0x3d, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xbb, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xaf, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xf9,
+
+    /* U+F0E7 "" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xff, 0xff,
+    0xf0, 0x0, 0x4, 0xff, 0xff, 0xd0, 0x0, 0x6,
+    0xff, 0xff, 0x80, 0x0, 0x8, 0xff, 0xff, 0x30,
+    0x0, 0xa, 0xff, 0xff, 0xaa, 0xa6, 0xc, 0xff,
+    0xff, 0xff, 0xf8, 0xe, 0xff, 0xff, 0xff, 0xe1,
+    0xb, 0xdd, 0xdf, 0xff, 0x60, 0x0, 0x0, 0x4f,
+    0xfd, 0x0, 0x0, 0x0, 0x7f, 0xf3, 0x0, 0x0,
+    0x0, 0xbf, 0xa0, 0x0, 0x0, 0x0, 0xff, 0x10,
+    0x0, 0x0, 0x3, 0xf8, 0x0, 0x0, 0x0, 0x3,
+    0xc0, 0x0, 0x0,
+
+    /* U+F0EA "" */
+    0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x4, 0x55,
+    0xef, 0xb5, 0x52, 0x0, 0x0, 0xff, 0xfd, 0x1f,
+    0xff, 0xb0, 0x0, 0xf, 0xff, 0xff, 0xff, 0xfc,
+    0x0, 0x0, 0xff, 0xff, 0x53, 0x33, 0x20, 0x0,
+    0xf, 0xff, 0x97, 0xff, 0xfb, 0x57, 0x0, 0xff,
+    0xf8, 0xaf, 0xff, 0xc6, 0xf8, 0xf, 0xff, 0x8a,
+    0xff, 0xfc, 0x4a, 0xa1, 0xff, 0xf8, 0xaf, 0xff,
+    0xe3, 0x22, 0xf, 0xff, 0x8a, 0xff, 0xff, 0xff,
+    0xf4, 0xff, 0xf8, 0xaf, 0xff, 0xff, 0xff, 0x4f,
+    0xff, 0x8a, 0xff, 0xff, 0xff, 0xf4, 0x35, 0x52,
+    0xaf, 0xff, 0xff, 0xff, 0x40, 0x0, 0xa, 0xff,
+    0xff, 0xff, 0xf4, 0x0, 0x0, 0x7f, 0xff, 0xff,
+    0xfe, 0x20,
+
+    /* U+F0F3 "" */
+    0x0, 0x0, 0x1, 0x10, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xaf, 0x0, 0x0, 0x0, 0x0, 0x1, 0x8f,
+    0xfa, 0x30, 0x0, 0x0, 0x2, 0xef, 0xff, 0xff,
+    0x50, 0x0, 0x0, 0xbf, 0xff, 0xff, 0xff, 0x10,
+    0x0, 0x1f, 0xff, 0xff, 0xff, 0xf5, 0x0, 0x3,
+    0xff, 0xff, 0xff, 0xff, 0x70, 0x0, 0x5f, 0xff,
+    0xff, 0xff, 0xf9, 0x0, 0x8, 0xff, 0xff, 0xff,
+    0xff, 0xc0, 0x0, 0xdf, 0xff, 0xff, 0xff, 0xff,
+    0x20, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xe,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xf2, 0x2, 0x22,
+    0x22, 0x22, 0x22, 0x21, 0x0, 0x0, 0x8, 0xff,
+    0xc0, 0x0, 0x0, 0x0, 0x0, 0x9, 0xa2, 0x0,
+    0x0, 0x0,
+
+    /* U+F11C "" */
+    0x5b, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xa3,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb,
+    0xfc, 0xc, 0x30, 0xe1, 0x1d, 0xd, 0x11, 0xfc,
+    0xfc, 0xb, 0x30, 0xe0, 0x1d, 0xd, 0x10, 0xfc,
+    0xff, 0xfe, 0xff, 0xef, 0xfe, 0xfe, 0xef, 0xfc,
+    0xff, 0xf1, 0x5a, 0x8, 0x70, 0xa0, 0x5f, 0xfc,
+    0xff, 0xf3, 0x7b, 0x29, 0x92, 0xc2, 0x7f, 0xfc,
+    0xff, 0xbf, 0xcb, 0xbb, 0xbb, 0xbf, 0xcb, 0xfc,
+    0xfc, 0xb, 0x20, 0x0, 0x0, 0xd, 0x0, 0xfc,
+    0xff, 0xcf, 0xcc, 0xcc, 0xcc, 0xcf, 0xcc, 0xfb,
+    0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf6,
+
+    /* U+F124 "" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x5, 0xdf, 0xb0,
+    0x0, 0x0, 0x0, 0x0, 0x7, 0xef, 0xff, 0xd0,
+    0x0, 0x0, 0x0, 0x18, 0xff, 0xff, 0xff, 0x70,
+    0x0, 0x0, 0x29, 0xff, 0xff, 0xff, 0xff, 0x0,
+    0x0, 0x3b, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x0,
+    0xa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf1, 0x0,
+    0xf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa0, 0x0,
+    0x4, 0x9a, 0xaa, 0xaf, 0xff, 0xff, 0x20, 0x0,
+    0x0, 0x0, 0x0, 0xe, 0xff, 0xfb, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0xe, 0xff, 0xf4, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0xe, 0xff, 0xc0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0xe, 0xff, 0x50, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0xd, 0xfd, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x4, 0xb3, 0x0, 0x0, 0x0,
+
+    /* U+F15B "" */
+    0x35, 0x55, 0x55, 0x2, 0x0, 0xf, 0xff, 0xff,
+    0xf2, 0xf4, 0x0, 0xff, 0xff, 0xff, 0x2f, 0xf4,
+    0xf, 0xff, 0xff, 0xf2, 0xff, 0xf3, 0xff, 0xff,
+    0xff, 0x32, 0x22, 0x1f, 0xff, 0xff, 0xff, 0xff,
+    0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xff,
+    0xff, 0xff, 0xff, 0xf8, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0x8f, 0xff, 0xff, 0xff,
+    0xff, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8f,
+    0xff, 0xff, 0xff, 0xff, 0xf8, 0x8a, 0xaa, 0xaa,
+    0xaa, 0xaa, 0x30,
+
+    /* U+F1EB "" */
+    0x0, 0x0, 0x0, 0x24, 0x55, 0x31, 0x0, 0x0,
+    0x0, 0x0, 0x3, 0xaf, 0xff, 0xff, 0xff, 0xc7,
+    0x0, 0x0, 0x2, 0xbf, 0xff, 0xfe, 0xde, 0xff,
+    0xff, 0xf6, 0x0, 0x5f, 0xff, 0xb5, 0x10, 0x0,
+    0x3, 0x8e, 0xff, 0xb0, 0xdf, 0xd3, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x8f, 0xf5, 0x18, 0x0, 0x5,
+    0xae, 0xfe, 0xc8, 0x10, 0x4, 0x60, 0x0, 0x2,
+    0xdf, 0xff, 0xff, 0xff, 0xf8, 0x0, 0x0, 0x0,
+    0xc, 0xff, 0x95, 0x34, 0x7d, 0xff, 0x40, 0x0,
+    0x0, 0x2, 0xa2, 0x0, 0x0, 0x0, 0x77, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x2, 0x96, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0xff, 0x50,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe, 0xff,
+    0x60, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5,
+    0xda, 0x0, 0x0, 0x0, 0x0,
+
+    /* U+F240 "" */
+    0x5b, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xba,
+    0x20, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0x90, 0xfc, 0x12, 0x22, 0x22, 0x22, 0x22,
+    0x22, 0xf, 0xf7, 0xfc, 0x5f, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0x2c, 0xfa, 0xfc, 0x5f, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0x21, 0xfa, 0xfc, 0x5f, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0x27, 0xfa, 0xfc, 0x26,
+    0x66, 0x66, 0x66, 0x66, 0x66, 0x1f, 0xfa, 0xfe,
+    0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbf, 0xb1,
+    0xaf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0x50, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0,
+
+    /* U+F241 "" */
+    0x5b, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xba,
+    0x20, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0x90, 0xfc, 0x12, 0x22, 0x22, 0x22, 0x21,
+    0x0, 0xf, 0xf7, 0xfc, 0x5f, 0xff, 0xff, 0xff,
+    0xf8, 0x0, 0xc, 0xfa, 0xfc, 0x5f, 0xff, 0xff,
+    0xff, 0xf8, 0x0, 0x1, 0xfa, 0xfc, 0x5f, 0xff,
+    0xff, 0xff, 0xf8, 0x0, 0x7, 0xfa, 0xfc, 0x26,
+    0x66, 0x66, 0x66, 0x63, 0x0, 0xf, 0xfa, 0xfe,
+    0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbf, 0xb1,
+    0xaf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0x50, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0,
+
+    /* U+F242 "" */
+    0x5b, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xba,
+    0x20, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0x90, 0xfc, 0x12, 0x22, 0x22, 0x10, 0x0,
+    0x0, 0xf, 0xf7, 0xfc, 0x5f, 0xff, 0xff, 0xd0,
+    0x0, 0x0, 0xc, 0xfa, 0xfc, 0x5f, 0xff, 0xff,
+    0xd0, 0x0, 0x0, 0x1, 0xfa, 0xfc, 0x5f, 0xff,
+    0xff, 0xd0, 0x0, 0x0, 0x7, 0xfa, 0xfc, 0x26,
+    0x66, 0x66, 0x50, 0x0, 0x0, 0xf, 0xfa, 0xfe,
+    0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbf, 0xb1,
+    0xaf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0x50, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0,
+
+    /* U+F243 "" */
+    0x5b, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xba,
+    0x20, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0x90, 0xfc, 0x12, 0x22, 0x0, 0x0, 0x0,
+    0x0, 0xf, 0xf7, 0xfc, 0x5f, 0xff, 0x30, 0x0,
+    0x0, 0x0, 0xc, 0xfa, 0xfc, 0x5f, 0xff, 0x30,
+    0x0, 0x0, 0x0, 0x1, 0xfa, 0xfc, 0x5f, 0xff,
+    0x30, 0x0, 0x0, 0x0, 0x7, 0xfa, 0xfc, 0x26,
+    0x66, 0x10, 0x0, 0x0, 0x0, 0xf, 0xfa, 0xfe,
+    0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbf, 0xb1,
+    0xaf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0x50, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0,
+
+    /* U+F244 "" */
+    0x5b, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xba,
+    0x20, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0x90, 0xfc, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xf, 0xf7, 0xfc, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xc, 0xfa, 0xfc, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x1, 0xfa, 0xfc, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x7, 0xfa, 0xfc, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xfa, 0xfe,
+    0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbf, 0xb1,
+    0xaf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0x50, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0,
+
+    /* U+F287 "" */
+    0x0, 0x0, 0x0, 0x0, 0x7, 0xb2, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0xa, 0xdf, 0xfa, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0xa9, 0x3d, 0xf5,
+    0x0, 0x0, 0x0, 0x4, 0x40, 0x2, 0xe0, 0x0,
+    0x10, 0x0, 0x0, 0x0, 0xaf, 0xf8, 0xb, 0x60,
+    0x0, 0x0, 0x0, 0x6c, 0x30, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xf4, 0xaf, 0xf9,
+    0x0, 0xc, 0x50, 0x0, 0x0, 0x6d, 0x40, 0x5,
+    0x50, 0x0, 0x4, 0xc0, 0x0, 0x0, 0x10, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0xc4, 0x3e, 0xe8, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x2e, 0xef, 0xfa,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4f,
+    0xfa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0,
+
+    /* U+F293 "" */
+    0x0, 0x0, 0x1, 0x10, 0x0, 0x0, 0x0, 0x7,
+    0xef, 0xff, 0xb3, 0x0, 0x0, 0xaf, 0xfd, 0x8f,
+    0xff, 0x20, 0x4, 0xff, 0xfd, 0x9, 0xff, 0xb0,
+    0xa, 0xfe, 0xfd, 0x12, 0xaf, 0xf0, 0xe, 0xf5,
+    0x5d, 0x2c, 0xe, 0xf3, 0xf, 0xff, 0x33, 0x12,
+    0x9f, 0xf5, 0xf, 0xff, 0xf3, 0x7, 0xff, 0xf6,
+    0xf, 0xff, 0xe2, 0x6, 0xff, 0xf6, 0xf, 0xfe,
+    0x24, 0x13, 0x7f, 0xf5, 0xd, 0xf5, 0x7d, 0x2c,
+    0xd, 0xf3, 0xa, 0xff, 0xfd, 0x11, 0xbf, 0xf0,
+    0x3, 0xff, 0xfe, 0xb, 0xff, 0xa0, 0x0, 0x7f,
+    0xfe, 0xbf, 0xfe, 0x10, 0x0, 0x3, 0xac, 0xdc,
+    0x81, 0x0,
+
+    /* U+F2ED "" */
+    0x0, 0x0, 0x34, 0x43, 0x0, 0x0, 0x5, 0x66,
+    0x7f, 0xff, 0xf9, 0x66, 0x50, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0x35, 0x66, 0x66, 0x66, 0x66,
+    0x66, 0x50, 0x1c, 0xcc, 0xcc, 0xcc, 0xcc, 0xc4,
+    0x2, 0xff, 0xff, 0xff, 0xff, 0xff, 0x60, 0x2f,
+    0xf3, 0xfb, 0x7f, 0x6d, 0xf6, 0x2, 0xff, 0x2f,
+    0xb7, 0xf5, 0xdf, 0x60, 0x2f, 0xf2, 0xfb, 0x7f,
+    0x5d, 0xf6, 0x2, 0xff, 0x2f, 0xb7, 0xf5, 0xdf,
+    0x60, 0x2f, 0xf2, 0xfb, 0x7f, 0x5d, 0xf6, 0x2,
+    0xff, 0x2f, 0xb7, 0xf5, 0xdf, 0x60, 0x2f, 0xf3,
+    0xfb, 0x7f, 0x6d, 0xf6, 0x1, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0x50, 0x7, 0xbc, 0xcc, 0xcc, 0xcc,
+    0x90, 0x0,
+
+    /* U+F304 "" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x20, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x4, 0xff, 0x50, 0x0,
+    0x0, 0x0, 0x0, 0x2, 0xff, 0xff, 0x50, 0x0,
+    0x0, 0x0, 0x4, 0x39, 0xff, 0xfe, 0x0, 0x0,
+    0x0, 0x4, 0xff, 0x39, 0xff, 0xa0, 0x0, 0x0,
+    0x4, 0xff, 0xff, 0x39, 0xb0, 0x0, 0x0, 0x4,
+    0xff, 0xff, 0xff, 0x20, 0x0, 0x0, 0x4, 0xff,
+    0xff, 0xff, 0xb0, 0x0, 0x0, 0x4, 0xff, 0xff,
+    0xff, 0xb0, 0x0, 0x0, 0x4, 0xff, 0xff, 0xff,
+    0xb0, 0x0, 0x0, 0x4, 0xff, 0xff, 0xff, 0xb0,
+    0x0, 0x0, 0x0, 0xbf, 0xff, 0xff, 0xb0, 0x0,
+    0x0, 0x0, 0xd, 0xff, 0xff, 0xb0, 0x0, 0x0,
+    0x0, 0x0, 0xff, 0xff, 0xb0, 0x0, 0x0, 0x0,
+    0x0, 0x9, 0xa8, 0x60, 0x0, 0x0, 0x0, 0x0,
+    0x0,
+
+    /* U+F55A "" */
+    0x0, 0x0, 0x17, 0x88, 0x88, 0x88, 0x88, 0x87,
+    0x40, 0x0, 0x2, 0xef, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xf4, 0x0, 0x3e, 0xff, 0xff, 0xcf, 0xff,
+    0xcf, 0xff, 0xf7, 0x3, 0xef, 0xff, 0xf9, 0x8,
+    0xf8, 0x9, 0xff, 0xf8, 0x3e, 0xff, 0xff, 0xfe,
+    0x20, 0x40, 0x2e, 0xff, 0xf8, 0xdf, 0xff, 0xff,
+    0xff, 0xe1, 0x1, 0xef, 0xff, 0xf8, 0x9f, 0xff,
+    0xff, 0xff, 0x80, 0x0, 0x8f, 0xff, 0xf8, 0x9,
+    0xff, 0xff, 0xf9, 0x2, 0xc2, 0x9, 0xff, 0xf8,
+    0x0, 0x9f, 0xff, 0xfe, 0x4e, 0xfe, 0x4e, 0xff,
+    0xf8, 0x0, 0x9, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xf7, 0x0, 0x0, 0x8f, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xc1,
+
+    /* U+F7C2 "" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xef,
+    0xff, 0xff, 0xe2, 0x3, 0xfb, 0xfb, 0xce, 0xbf,
+    0xa4, 0xff, 0x1d, 0x3, 0xa1, 0xfa, 0xff, 0xf1,
+    0xd0, 0x3a, 0x1f, 0xaf, 0xff, 0xff, 0xff, 0xff,
+    0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xaf, 0xff,
+    0xff, 0xff, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xaf, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xaf, 0xff, 0xff, 0xff,
+    0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xad,
+    0xff, 0xff, 0xff, 0xff, 0xf8, 0x29, 0xaa, 0xaa,
+    0xaa, 0xa8, 0x0,
+
+    /* U+F8A2 "" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0xf1, 0x0,
+    0x8, 0x20, 0x0, 0x0, 0x1, 0xff, 0x10, 0xb,
+    0xf7, 0x0, 0x0, 0x0, 0x2f, 0xf1, 0xc, 0xff,
+    0x94, 0x44, 0x44, 0x45, 0xff, 0x1b, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xf1, 0x8f, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xfd, 0x0, 0x7f, 0xf7, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x6f, 0x60, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x30, 0x0, 0x0,
+    0x0, 0x0, 0x0
 };
 
 
@@ -519,101 +1517,189 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
 
 static const lv_font_fmt_txt_glyph_dsc_t glyph_dsc[] = {
     {.bitmap_index = 0, .adv_w = 0, .box_w = 0, .box_h = 0, .ofs_x = 0, .ofs_y = 0} /* id = 0 reserved */,
-    {.bitmap_index = 0, .adv_w = 66, .box_w = 0, .box_h = 0, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 0, .adv_w = 54, .box_w = 3, .box_h = 4, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 6, .adv_w = 97, .box_w = 5, .box_h = 2, .ofs_x = 1, .ofs_y = 3},
-    {.bitmap_index = 11, .adv_w = 54, .box_w = 3, .box_h = 2, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 14, .adv_w = 131, .box_w = 8, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 58, .adv_w = 131, .box_w = 5, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 86, .adv_w = 131, .box_w = 8, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 130, .adv_w = 131, .box_w = 8, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 174, .adv_w = 131, .box_w = 8, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 218, .adv_w = 131, .box_w = 7, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 257, .adv_w = 131, .box_w = 8, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 301, .adv_w = 131, .box_w = 8, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 345, .adv_w = 131, .box_w = 8, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 389, .adv_w = 131, .box_w = 8, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 433, .adv_w = 54, .box_w = 3, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 445, .adv_w = 158, .box_w = 10, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 500, .adv_w = 141, .box_w = 8, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 544, .adv_w = 150, .box_w = 9, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 594, .adv_w = 171, .box_w = 9, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 644, .adv_w = 123, .box_w = 7, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 683, .adv_w = 119, .box_w = 6, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 716, .adv_w = 167, .box_w = 10, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 771, .adv_w = 173, .box_w = 9, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 821, .adv_w = 66, .box_w = 2, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 832, .adv_w = 89, .box_w = 5, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 860, .adv_w = 142, .box_w = 8, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 904, .adv_w = 115, .box_w = 6, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 937, .adv_w = 219, .box_w = 12, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 1003, .adv_w = 182, .box_w = 10, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 1058, .adv_w = 183, .box_w = 11, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 1119, .adv_w = 137, .box_w = 7, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 1158, .adv_w = 183, .box_w = 12, .box_h = 13, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 1236, .adv_w = 146, .box_w = 9, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 1286, .adv_w = 129, .box_w = 8, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 1330, .adv_w = 128, .box_w = 8, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 1374, .adv_w = 167, .box_w = 9, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 1424, .adv_w = 151, .box_w = 10, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 1479, .adv_w = 228, .box_w = 15, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 1562, .adv_w = 144, .box_w = 9, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 1612, .adv_w = 135, .box_w = 9, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 1662, .adv_w = 139, .box_w = 9, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 1712, .adv_w = 124, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 1740, .adv_w = 143, .box_w = 8, .box_h = 12, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 1788, .adv_w = 112, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 1816, .adv_w = 143, .box_w = 8, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 1864, .adv_w = 127, .box_w = 8, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 1896, .adv_w = 78, .box_w = 6, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 1932, .adv_w = 143, .box_w = 8, .box_h = 12, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 1980, .adv_w = 138, .box_w = 7, .box_h = 12, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 2022, .adv_w = 60, .box_w = 2, .box_h = 12, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 2034, .adv_w = 60, .box_w = 5, .box_h = 16, .ofs_x = -2, .ofs_y = -4},
-    {.bitmap_index = 2074, .adv_w = 122, .box_w = 7, .box_h = 12, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 2116, .adv_w = 60, .box_w = 2, .box_h = 12, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 2128, .adv_w = 210, .box_w = 12, .box_h = 8, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 2176, .adv_w = 138, .box_w = 7, .box_h = 8, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 2204, .adv_w = 142, .box_w = 9, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 2240, .adv_w = 143, .box_w = 8, .box_h = 12, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 2288, .adv_w = 143, .box_w = 8, .box_h = 12, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 2336, .adv_w = 86, .box_w = 5, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 2359, .adv_w = 104, .box_w = 6, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 2383, .adv_w = 83, .box_w = 5, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 2411, .adv_w = 138, .box_w = 7, .box_h = 8, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 2439, .adv_w = 118, .box_w = 8, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 2471, .adv_w = 177, .box_w = 11, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 2515, .adv_w = 114, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 2543, .adv_w = 119, .box_w = 8, .box_h = 12, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 2591, .adv_w = 110, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = 0}
+    {.bitmap_index = 0, .adv_w = 60, .box_w = 0, .box_h = 0, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 0, .adv_w = 60, .box_w = 3, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 15, .adv_w = 88, .box_w = 5, .box_h = 5, .ofs_x = 0, .ofs_y = 5},
+    {.bitmap_index = 28, .adv_w = 157, .box_w = 10, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 78, .adv_w = 139, .box_w = 9, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 146, .adv_w = 189, .box_w = 12, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 206, .adv_w = 154, .box_w = 10, .box_h = 11, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 261, .adv_w = 47, .box_w = 3, .box_h = 5, .ofs_x = 0, .ofs_y = 5},
+    {.bitmap_index = 269, .adv_w = 75, .box_w = 4, .box_h = 14, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 297, .adv_w = 76, .box_w = 4, .box_h = 14, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 325, .adv_w = 90, .box_w = 6, .box_h = 6, .ofs_x = 0, .ofs_y = 5},
+    {.bitmap_index = 343, .adv_w = 130, .box_w = 8, .box_h = 7, .ofs_x = 0, .ofs_y = 2},
+    {.bitmap_index = 371, .adv_w = 51, .box_w = 3, .box_h = 5, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 379, .adv_w = 86, .box_w = 5, .box_h = 3, .ofs_x = 0, .ofs_y = 3},
+    {.bitmap_index = 387, .adv_w = 51, .box_w = 3, .box_h = 3, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 392, .adv_w = 79, .box_w = 7, .box_h = 14, .ofs_x = -1, .ofs_y = -1},
+    {.bitmap_index = 441, .adv_w = 149, .box_w = 9, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 486, .adv_w = 83, .box_w = 4, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 506, .adv_w = 129, .box_w = 8, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 546, .adv_w = 128, .box_w = 8, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 586, .adv_w = 150, .box_w = 10, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 636, .adv_w = 129, .box_w = 8, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 676, .adv_w = 138, .box_w = 9, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 721, .adv_w = 134, .box_w = 8, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 761, .adv_w = 144, .box_w = 9, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 806, .adv_w = 138, .box_w = 8, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 846, .adv_w = 51, .box_w = 3, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 858, .adv_w = 51, .box_w = 3, .box_h = 11, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 875, .adv_w = 130, .box_w = 8, .box_h = 8, .ofs_x = 0, .ofs_y = 1},
+    {.bitmap_index = 907, .adv_w = 130, .box_w = 8, .box_h = 6, .ofs_x = 0, .ofs_y = 2},
+    {.bitmap_index = 931, .adv_w = 130, .box_w = 8, .box_h = 8, .ofs_x = 0, .ofs_y = 1},
+    {.bitmap_index = 963, .adv_w = 128, .box_w = 8, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 1003, .adv_w = 232, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1094, .adv_w = 164, .box_w = 12, .box_h = 10, .ofs_x = -1, .ofs_y = 0},
+    {.bitmap_index = 1154, .adv_w = 170, .box_w = 9, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 1199, .adv_w = 162, .box_w = 10, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 1249, .adv_w = 185, .box_w = 10, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 1299, .adv_w = 150, .box_w = 8, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 1339, .adv_w = 142, .box_w = 8, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 1379, .adv_w = 173, .box_w = 10, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 1429, .adv_w = 182, .box_w = 9, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 1474, .adv_w = 69, .box_w = 2, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 1484, .adv_w = 115, .box_w = 7, .box_h = 10, .ofs_x = -1, .ofs_y = 0},
+    {.bitmap_index = 1519, .adv_w = 161, .box_w = 10, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 1569, .adv_w = 133, .box_w = 8, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 1609, .adv_w = 214, .box_w = 11, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 1664, .adv_w = 182, .box_w = 9, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 1709, .adv_w = 188, .box_w = 12, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 1769, .adv_w = 162, .box_w = 9, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 1814, .adv_w = 188, .box_w = 12, .box_h = 13, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 1892, .adv_w = 163, .box_w = 9, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 1937, .adv_w = 139, .box_w = 9, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 1982, .adv_w = 131, .box_w = 9, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 2027, .adv_w = 177, .box_w = 9, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 2072, .adv_w = 159, .box_w = 11, .box_h = 10, .ofs_x = -1, .ofs_y = 0},
+    {.bitmap_index = 2127, .adv_w = 252, .box_w = 16, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 2207, .adv_w = 151, .box_w = 10, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 2257, .adv_w = 145, .box_w = 11, .box_h = 10, .ofs_x = -1, .ofs_y = 0},
+    {.bitmap_index = 2312, .adv_w = 147, .box_w = 9, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 2357, .adv_w = 75, .box_w = 4, .box_h = 14, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 2385, .adv_w = 79, .box_w = 7, .box_h = 14, .ofs_x = -1, .ofs_y = -1},
+    {.bitmap_index = 2434, .adv_w = 75, .box_w = 4, .box_h = 14, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 2462, .adv_w = 131, .box_w = 7, .box_h = 6, .ofs_x = 1, .ofs_y = 2},
+    {.bitmap_index = 2483, .adv_w = 112, .box_w = 7, .box_h = 1, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 2487, .adv_w = 134, .box_w = 5, .box_h = 2, .ofs_x = 1, .ofs_y = 9},
+    {.bitmap_index = 2492, .adv_w = 134, .box_w = 8, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 2524, .adv_w = 153, .box_w = 8, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 2568, .adv_w = 128, .box_w = 8, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 2600, .adv_w = 153, .box_w = 9, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 2650, .adv_w = 137, .box_w = 8, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 2682, .adv_w = 79, .box_w = 6, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 2715, .adv_w = 155, .box_w = 9, .box_h = 11, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 2765, .adv_w = 153, .box_w = 8, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 2809, .adv_w = 62, .box_w = 2, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 2820, .adv_w = 64, .box_w = 5, .box_h = 14, .ofs_x = -2, .ofs_y = -3},
+    {.bitmap_index = 2855, .adv_w = 138, .box_w = 8, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 2899, .adv_w = 62, .box_w = 2, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 2910, .adv_w = 237, .box_w = 13, .box_h = 8, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 2962, .adv_w = 153, .box_w = 8, .box_h = 8, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 2994, .adv_w = 142, .box_w = 9, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 3030, .adv_w = 153, .box_w = 8, .box_h = 11, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 3074, .adv_w = 153, .box_w = 9, .box_h = 11, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 3124, .adv_w = 92, .box_w = 5, .box_h = 8, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 3144, .adv_w = 112, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 3172, .adv_w = 93, .box_w = 6, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 3202, .adv_w = 152, .box_w = 8, .box_h = 8, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 3234, .adv_w = 125, .box_w = 9, .box_h = 8, .ofs_x = -1, .ofs_y = 0},
+    {.bitmap_index = 3270, .adv_w = 201, .box_w = 13, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 3322, .adv_w = 124, .box_w = 8, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 3354, .adv_w = 125, .box_w = 9, .box_h = 11, .ofs_x = -1, .ofs_y = -3},
+    {.bitmap_index = 3404, .adv_w = 117, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 3432, .adv_w = 79, .box_w = 5, .box_h = 14, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 3467, .adv_w = 67, .box_w = 2, .box_h = 14, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 3481, .adv_w = 79, .box_w = 5, .box_h = 14, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 3516, .adv_w = 130, .box_w = 8, .box_h = 3, .ofs_x = 0, .ofs_y = 3},
+    {.bitmap_index = 3528, .adv_w = 94, .box_w = 6, .box_h = 5, .ofs_x = 0, .ofs_y = 6},
+    {.bitmap_index = 3543, .adv_w = 70, .box_w = 4, .box_h = 3, .ofs_x = 0, .ofs_y = 3},
+    {.bitmap_index = 3549, .adv_w = 224, .box_w = 15, .box_h = 15, .ofs_x = -1, .ofs_y = -2},
+    {.bitmap_index = 3662, .adv_w = 224, .box_w = 14, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 3739, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 3830, .adv_w = 224, .box_w = 14, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 3907, .adv_w = 154, .box_w = 10, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 3962, .adv_w = 224, .box_w = 14, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 4067, .adv_w = 224, .box_w = 14, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 4172, .adv_w = 252, .box_w = 16, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 4276, .adv_w = 224, .box_w = 14, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 4381, .adv_w = 252, .box_w = 16, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 4469, .adv_w = 224, .box_w = 14, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 4574, .adv_w = 112, .box_w = 7, .box_h = 12, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 4616, .adv_w = 168, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 4682, .adv_w = 252, .box_w = 16, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 4794, .adv_w = 224, .box_w = 14, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 4871, .adv_w = 154, .box_w = 10, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 4946, .adv_w = 196, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 5016, .adv_w = 196, .box_w = 13, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 5114, .adv_w = 196, .box_w = 13, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 5199, .adv_w = 196, .box_w = 13, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 5284, .adv_w = 196, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 5354, .adv_w = 196, .box_w = 14, .box_h = 13, .ofs_x = -1, .ofs_y = -1},
+    {.bitmap_index = 5445, .adv_w = 140, .box_w = 9, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 5504, .adv_w = 140, .box_w = 9, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 5563, .adv_w = 196, .box_w = 13, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 5648, .adv_w = 196, .box_w = 13, .box_h = 4, .ofs_x = 0, .ofs_y = 3},
+    {.bitmap_index = 5674, .adv_w = 252, .box_w = 16, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 5762, .adv_w = 280, .box_w = 18, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 5897, .adv_w = 252, .box_w = 17, .box_h = 15, .ofs_x = -1, .ofs_y = -2},
+    {.bitmap_index = 6025, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 6116, .adv_w = 196, .box_w = 13, .box_h = 8, .ofs_x = 0, .ofs_y = 1},
+    {.bitmap_index = 6168, .adv_w = 196, .box_w = 13, .box_h = 8, .ofs_x = 0, .ofs_y = 1},
+    {.bitmap_index = 6220, .adv_w = 280, .box_w = 18, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 6319, .adv_w = 224, .box_w = 14, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 6396, .adv_w = 224, .box_w = 14, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 6501, .adv_w = 224, .box_w = 15, .box_h = 15, .ofs_x = -1, .ofs_y = -2},
+    {.bitmap_index = 6614, .adv_w = 196, .box_w = 13, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 6699, .adv_w = 196, .box_w = 13, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 6797, .adv_w = 196, .box_w = 13, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 6882, .adv_w = 196, .box_w = 13, .box_h = 12, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 6960, .adv_w = 224, .box_w = 14, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 7037, .adv_w = 140, .box_w = 10, .box_h = 15, .ofs_x = -1, .ofs_y = -2},
+    {.bitmap_index = 7112, .adv_w = 196, .box_w = 13, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 7210, .adv_w = 196, .box_w = 13, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 7308, .adv_w = 252, .box_w = 16, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 7396, .adv_w = 224, .box_w = 16, .box_h = 15, .ofs_x = -1, .ofs_y = -2},
+    {.bitmap_index = 7516, .adv_w = 168, .box_w = 11, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 7599, .adv_w = 280, .box_w = 18, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 7716, .adv_w = 280, .box_w = 18, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 7806, .adv_w = 280, .box_w = 18, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 7896, .adv_w = 280, .box_w = 18, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 7986, .adv_w = 280, .box_w = 18, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 8076, .adv_w = 280, .box_w = 18, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 8166, .adv_w = 280, .box_w = 18, .box_h = 12, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 8274, .adv_w = 196, .box_w = 12, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 8364, .adv_w = 196, .box_w = 13, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 8462, .adv_w = 224, .box_w = 15, .box_h = 15, .ofs_x = -1, .ofs_y = -2},
+    {.bitmap_index = 8575, .adv_w = 280, .box_w = 18, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 8674, .adv_w = 168, .box_w = 11, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 8757, .adv_w = 225, .box_w = 15, .box_h = 10, .ofs_x = 0, .ofs_y = 0}
 };
 
 /*---------------------
  *  CHARACTER MAPPING
  *--------------------*/
 
-static const uint16_t unicode_list_0[] = {
-    0x0, 0xc, 0xd, 0xe
+static const uint16_t unicode_list_1[] = {
+    0x0, 0x1f72, 0xef51, 0xef58, 0xef5b, 0xef5c, 0xef5d, 0xef61,
+    0xef63, 0xef65, 0xef69, 0xef6c, 0xef71, 0xef76, 0xef77, 0xef78,
+    0xef8e, 0xef93, 0xef98, 0xef9b, 0xef9c, 0xef9d, 0xefa1, 0xefa2,
+    0xefa3, 0xefa4, 0xefb7, 0xefb8, 0xefbe, 0xefc0, 0xefc1, 0xefc4,
+    0xefc7, 0xefc8, 0xefc9, 0xefcb, 0xefe3, 0xefe5, 0xf014, 0xf015,
+    0xf017, 0xf019, 0xf030, 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[] =
-{
+static const lv_font_fmt_txt_cmap_t cmaps[] = {
     {
-        .range_start = 32, .range_length = 15, .glyph_id_start = 1,
-        .unicode_list = unicode_list_0, .glyph_id_ofs_list = NULL, .list_length = 4, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
-    },
-    {
-        .range_start = 48, .range_length = 11, .glyph_id_start = 5,
+        .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 = 65, .range_length = 26, .glyph_id_start = 16,
-        .unicode_list = NULL, .glyph_id_ofs_list = NULL, .list_length = 0, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY
-    },
-    {
-        .range_start = 97, .range_length = 26, .glyph_id_start = 42,
-        .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 = 62, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
     }
 };
 
@@ -622,395 +1708,440 @@ static const lv_font_fmt_txt_cmap_t cmaps[] =
  *----------------*/
 
 
-/*Pair left and right glyphs for kerning*/
-static const uint8_t kern_pair_glyph_ids[] =
-{
-    16, 2,
-    16, 18,
-    16, 22,
-    16, 25,
-    16, 30,
-    16, 35,
-    16, 36,
-    16, 37,
-    16, 38,
-    16, 40,
-    16, 41,
-    16, 61,
-    16, 63,
-    16, 64,
-    16, 66,
-    17, 35,
-    17, 40,
-    18, 18,
-    18, 22,
-    18, 30,
-    18, 32,
-    19, 2,
-    19, 4,
-    19, 16,
-    19, 35,
-    19, 39,
-    19, 41,
-    20, 16,
-    20, 25,
-    20, 35,
-    20, 38,
-    20, 39,
-    21, 2,
-    21, 4,
-    21, 16,
-    21, 25,
-    21, 34,
-    21, 35,
-    21, 42,
-    21, 47,
-    22, 35,
-    22, 37,
-    22, 66,
-    25, 2,
-    25, 4,
-    25, 16,
-    25, 25,
-    25, 42,
-    26, 2,
-    26, 18,
-    26, 22,
-    26, 25,
-    26, 30,
-    26, 32,
-    26, 39,
-    26, 41,
-    26, 44,
-    26, 45,
-    26, 46,
-    26, 48,
-    26, 56,
-    26, 58,
-    26, 61,
-    26, 63,
-    26, 64,
-    26, 66,
-    27, 16,
-    27, 18,
-    27, 22,
-    27, 25,
-    27, 30,
-    27, 32,
-    27, 35,
-    27, 36,
-    27, 37,
-    27, 38,
-    27, 40,
-    27, 41,
-    27, 61,
-    27, 63,
-    27, 64,
-    27, 66,
-    30, 2,
-    30, 4,
-    30, 16,
-    30, 25,
-    30, 35,
-    30, 39,
-    30, 40,
-    30, 41,
-    31, 2,
-    31, 4,
-    31, 16,
-    31, 22,
-    31, 25,
-    31, 38,
-    31, 39,
-    31, 42,
-    31, 44,
-    31, 45,
-    31, 46,
-    31, 48,
-    31, 56,
-    31, 58,
-    32, 2,
-    32, 4,
-    32, 16,
-    32, 35,
-    32, 39,
-    32, 40,
-    32, 41,
-    33, 18,
-    33, 22,
-    33, 25,
-    33, 30,
-    33, 32,
-    33, 35,
-    33, 40,
-    33, 44,
-    33, 45,
-    33, 46,
-    33, 48,
-    33, 56,
-    33, 58,
-    34, 61,
-    34, 63,
-    34, 64,
-    34, 66,
-    35, 2,
-    35, 4,
-    35, 15,
-    35, 16,
-    35, 18,
-    35, 22,
-    35, 25,
-    35, 30,
-    35, 32,
-    35, 35,
-    35, 37,
-    35, 38,
-    35, 39,
-    35, 40,
-    35, 42,
-    35, 44,
-    35, 45,
-    35, 46,
-    35, 47,
-    35, 48,
-    35, 54,
-    35, 55,
-    35, 56,
-    35, 57,
-    35, 58,
-    35, 59,
-    35, 60,
-    35, 62,
-    35, 63,
-    35, 64,
-    35, 65,
-    35, 66,
-    35, 67,
-    36, 16,
-    37, 2,
-    37, 4,
-    37, 16,
-    37, 18,
-    37, 22,
-    37, 25,
-    37, 30,
-    37, 32,
-    37, 34,
-    37, 35,
-    37, 42,
-    37, 44,
-    37, 45,
-    37, 46,
-    37, 48,
-    37, 54,
-    37, 55,
-    37, 56,
-    37, 57,
-    37, 58,
-    37, 59,
-    37, 60,
-    37, 62,
-    38, 2,
-    38, 4,
-    38, 16,
-    38, 35,
-    38, 42,
-    38, 44,
-    38, 45,
-    38, 46,
-    38, 48,
-    38, 56,
-    38, 58,
-    39, 2,
-    39, 4,
-    39, 18,
-    39, 22,
-    39, 25,
-    39, 30,
-    39, 32,
-    39, 35,
-    40, 2,
-    40, 4,
-    40, 16,
-    40, 18,
-    40, 22,
-    40, 25,
-    40, 30,
-    40, 32,
-    40, 34,
-    40, 35,
-    40, 42,
-    40, 44,
-    40, 45,
-    40, 46,
-    40, 47,
-    40, 48,
-    40, 54,
-    40, 55,
-    40, 56,
-    40, 57,
-    40, 58,
-    40, 59,
-    40, 60,
-    40, 62,
-    41, 25,
-    41, 35,
-    41, 66,
-    43, 42,
-    43, 47,
-    43, 65,
-    44, 25,
-    44, 35,
-    44, 40,
-    47, 2,
-    47, 3,
-    47, 4,
-    47, 15,
-    47, 43,
-    47, 49,
-    47, 61,
-    47, 63,
-    47, 64,
-    47, 65,
-    47, 66,
-    48, 51,
-    51, 51,
-    52, 2,
-    52, 3,
-    52, 4,
-    52, 15,
-    52, 44,
-    52, 45,
-    52, 46,
-    52, 48,
-    52, 56,
-    52, 58,
-    52, 61,
-    56, 42,
-    56, 47,
-    56, 65,
-    57, 42,
-    57, 47,
-    57, 65,
-    58, 51,
-    59, 2,
-    59, 3,
-    59, 4,
-    59, 15,
-    59, 44,
-    59, 45,
-    59, 46,
-    59, 47,
-    59, 48,
-    59, 54,
-    59, 55,
-    59, 56,
-    59, 58,
-    59, 60,
-    59, 61,
-    59, 63,
-    59, 64,
-    59, 65,
-    59, 66,
-    59, 67,
-    61, 3,
-    61, 44,
-    61, 45,
-    61, 46,
-    61, 48,
-    61, 56,
-    61, 58,
-    61, 65,
-    63, 2,
-    63, 4,
-    63, 42,
-    63, 44,
-    63, 45,
-    63, 46,
-    63, 48,
-    63, 56,
-    63, 58,
-    64, 2,
-    64, 4,
-    64, 44,
-    64, 45,
-    64, 46,
-    64, 48,
-    64, 56,
-    64, 58,
-    65, 44,
-    65, 45,
-    65, 46,
-    65, 48,
-    65, 56,
-    65, 58,
-    66, 2,
-    66, 4,
-    66, 44,
-    66, 45,
-    66, 46,
-    66, 47,
-    66, 48,
-    66, 56,
-    66, 58,
-    66, 61
+/*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, 0, 0, 0
 };
 
-/* Kerning between the respective left and right glyphs
- * 4.4 format which needs to scaled with `kern_scale`*/
-static const int8_t kern_pair_values[] =
-{
-    8, -3, -3, 11, -3, -17, -3, -14,
-    -9, -18, 7, -3, -5, -3, -4, -11,
-    -8, -6, -6, -3, -6, -15, -15, -4,
-    -11, -6, -6, 1, 8, 0, 3, 1,
-    -18, -18, -16, -8, -3, 2, -9, 1,
-    -6, -3, -3, -12, -12, -4, -8, -3,
-    5, -11, -11, 11, -11, -11, 4, 5,
-    -3, -3, -3, -3, -3, -3, -6, -9,
-    -6, -11, 7, -8, -8, 12, -8, -8,
-    -13, -3, -14, -6, -15, 7, -3, -12,
-    -8, -9, -11, -11, -3, -1, -11, -4,
-    -3, -6, -38, -38, -19, -1, -15, 5,
-    -7, -8, -9, -9, -9, -9, -9, -9,
-    -11, -15, -3, -11, -4, -1, -6, -3,
-    -3, 7, -2, -2, -6, -5, -6, -6,
-    -7, -7, -7, -6, -8, -6, -3, -6,
-    -15, -21, -3, -18, -11, -11, -13, -11,
-    -11, 5, 5, 5, -1, 3, -26, -25,
-    -25, -25, -11, -25, -21, -21, -25, -21,
-    -25, -21, -18, -21, -12, -13, -21, -13,
-    -15, -5, -24, -27, -14, -5, -5, -8,
-    -1, -5, -3, 5, -17, -15, -15, -15,
-    -15, -9, -9, -15, -9, -15, -9, -8,
-    -9, -14, -15, -9, 5, -9, -6, -6,
-    -6, -6, -6, -6, 8, 7, -3, -3,
-    11, -3, -3, 4, -21, -23, -19, -5,
-    -5, -8, -5, -5, -3, 5, -24, -21,
-    -21, -21, -3, -21, -17, -17, -21, -17,
-    -21, -17, -16, -17, 10, 5, -6, -3,
-    -1, -3, 8, -12, -9, -15, -12, -15,
-    10, 2, 2, 4, 5, 5, 2, 4,
-    6, 4, 10, -16, 10, 10, -5, -3,
-    -5, -5, -5, -3, -2, -3, -4, -3,
-    -3, -4, -3, 12, -19, -15, -20, 10,
-    -3, -3, -3, 5, -3, 0, 0, -3,
-    -3, 2, 7, 10, 10, 7, 10, 5,
-    -13, -3, -3, -2, -2, -2, -2, 3,
-    -14, -15, -4, -1, -2, -1, -1, -1,
-    -2, -11, -12, -1, -1, -1, -1, -1,
-    -1, -2, -2, -2, -2, -2, -2, -12,
-    -15, -1, -1, -1, 0, -1, -1, -1,
-    1
+/*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, 0, 0, 0
 };
 
-/*Collect the kern pair's data in one place*/
-static const lv_font_fmt_txt_kern_pair_t kern_pairs =
-{
-    .glyph_ids = kern_pair_glyph_ids,
-    .values = kern_pair_values,
-    .pair_cnt = 329,
-    .glyph_ids_size = 0
+/*Kern values between classes*/
+static const int8_t kern_class_values[] = {
+    0, 1, 0, 0, 0, 0, 0, 0,
+    0, 1, 0, 0, 2, 0, 0, 0,
+    0, 2, 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, 1, 10, 0, 6, -5, 0, 0,
+    0, 0, -12, -13, 2, 11, 5, 4,
+    -9, 2, 11, 1, 9, 2, 7, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 13, 2, -2, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 4, 0, -7, 0, 0, 0, 0,
+    0, -4, 4, 4, 0, 0, -2, 0,
+    -2, 2, 0, -2, 0, -2, -1, -4,
+    0, 0, 0, 0, -2, 0, 0, -3,
+    -3, 0, 0, -2, 0, -4, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, -2,
+    -2, 0, -3, 0, -6, 0, -27, 0,
+    0, -4, 0, 4, 7, 0, 0, -4,
+    2, 2, 7, 4, -4, 4, 0, 0,
+    -13, 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, -6, -3, -11, 0, -9,
+    -2, 0, 0, 0, 0, 0, 9, 0,
+    -7, -2, -1, 1, 0, -4, 0, 0,
+    -2, -17, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, -18, -2, 9,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, -9, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 7,
+    0, 2, 0, 0, -4, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 9, 2,
+    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,
+    -8, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 2,
+    4, 2, 7, -2, 0, 0, 4, -2,
+    -7, -31, 2, 6, 4, 0, -3, 0,
+    8, 0, 7, 0, 7, 0, -21, 0,
+    -3, 7, 0, 7, -2, 4, 2, 0,
+    0, 1, -2, 0, 0, -4, 18, 0,
+    18, 0, 7, 0, 9, 3, 4, 7,
+    0, 0, 0, -8, 0, 0, 0, 0,
+    1, -2, 0, 2, -4, -3, -4, 2,
+    0, -2, 0, 0, 0, -9, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, -15, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 1, -12, 0, -14, 0, 0, 0,
+    0, -2, 0, 22, -3, -3, 2, 2,
+    -2, 0, -3, 2, 0, 0, -12, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, -22, 0, 2, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, -14, 0, 13, 0, 0, -8, 0,
+    7, 0, -15, -22, -15, -4, 7, 0,
+    0, -15, 0, 3, -5, 0, -3, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 6, 7, -27, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 11, 0, 2, 0, 0, 0,
+    0, 0, 2, 2, -3, -4, 0, -1,
+    -1, -2, 0, 0, -2, 0, 0, 0,
+    -4, 0, -2, 0, -5, -4, 0, -6,
+    -7, -7, -4, 0, -4, 0, -4, 0,
+    0, 0, 0, -2, 0, 0, 2, 0,
+    2, -2, 0, 1, 0, 0, 0, 2,
+    -2, 0, 0, 0, -2, 2, 2, -1,
+    0, 0, 0, -4, 0, -1, 0, 0,
+    0, 0, 0, 1, 0, 3, -2, 0,
+    -3, 0, -4, 0, 0, -2, 0, 7,
+    0, 0, -2, 0, 0, 0, 0, 0,
+    -1, 1, -2, -2, 0, 0, -2, 0,
+    -2, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, -1, -1, 0, -2, -3, 0,
+    0, 0, 0, 0, 1, 0, 0, -2,
+    0, -2, -2, -2, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, -1, 0, 0,
+    0, 0, -2, -3, 0, -3, 0, -7,
+    -2, -7, 4, 0, 0, -4, 2, 4,
+    6, 0, -6, -1, -3, 0, -1, -11,
+    2, -2, 2, -12, 2, 0, 0, 1,
+    -12, 0, -12, -2, -19, -2, 0, -11,
+    0, 4, 6, 0, 3, 0, 0, 0,
+    0, 0, 0, -4, -3, 0, -7, 0,
+    0, 0, -2, 0, 0, 0, -2, 0,
+    0, 0, 0, 0, -1, -1, 0, -1,
+    -3, 0, 0, 0, 0, 0, 0, 0,
+    -2, -2, 0, -2, -3, -2, 0, 0,
+    -2, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, -2, -2, 0, -3,
+    0, -2, 0, -4, 2, 0, 0, -3,
+    1, 2, 2, 0, 0, 0, 0, 0,
+    0, -2, 0, 0, 0, 0, 0, 2,
+    0, 0, -2, 0, -2, -2, -3, 0,
+    0, 0, 0, 0, 0, 0, 2, 0,
+    -2, 0, 0, 0, 0, -2, -3, 0,
+    -4, 0, 7, -2, 1, -7, 0, 0,
+    6, -11, -12, -9, -4, 2, 0, -2,
+    -15, -4, 0, -4, 0, -4, 3, -4,
+    -14, 0, -6, 0, 0, 1, -1, 2,
+    -2, 0, 2, 0, -7, -9, 0, -11,
+    -5, -5, -5, -7, -3, -6, 0, -4,
+    -6, 1, 0, 1, 0, -2, 0, 0,
+    0, 2, 0, 2, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, -2,
+    0, -1, 0, -1, -2, 0, -4, -5,
+    -5, -1, 0, -7, 0, 0, 0, 0,
+    0, 0, -2, 0, 0, 0, 0, 1,
+    -1, 0, 0, 0, 2, 0, 0, 0,
+    0, 0, 0, 0, 0, 11, 0, 0,
+    0, 0, 0, 0, 2, 0, 0, 0,
+    -2, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, -4, 0, 2, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, -2, 0, 0, 0,
+    -4, 0, 0, 0, 0, -11, -7, 0,
+    0, 0, -3, -11, 0, 0, -2, 2,
+    0, -6, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, -4, 0, 0, -4,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 2, 0, -4, 0,
+    0, 0, 0, 3, 0, 2, -4, -4,
+    0, -2, -2, -3, 0, 0, 0, 0,
+    0, 0, -7, 0, -2, 0, -3, -2,
+    0, -5, -6, -7, -2, 0, -4, 0,
+    -7, 0, 0, 0, 0, 18, 0, 0,
+    1, 0, 0, -3, 0, 2, 0, -10,
+    0, 0, 0, 0, 0, -21, -4, 7,
+    7, -2, -9, 0, 2, -3, 0, -11,
+    -1, -3, 2, -16, -2, 3, 0, 3,
+    -8, -3, -8, -7, -9, 0, 0, -13,
+    0, 13, 0, 0, -1, 0, 0, 0,
+    -1, -1, -2, -6, -7, 0, -21, 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, -2, 0, -1, -2, -3, 0, 0,
+    -4, 0, -2, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, -1, 0, -4, 0, 0, 4,
+    -1, 3, 0, -5, 2, -2, -1, -6,
+    -2, 0, -3, -2, -2, 0, -3, -4,
+    0, 0, -2, -1, -2, -4, -3, 0,
+    0, -2, 0, 2, -2, 0, -5, 0,
+    0, 0, -4, 0, -4, 0, -4, -4,
+    2, 0, 0, 0, 0, 0, 0, 0,
+    0, -4, 2, 0, -3, 0, -2, -3,
+    -7, -2, -2, -2, -1, -2, -3, -1,
+    0, 0, 0, 0, 0, -2, -2, -2,
+    0, 0, 0, 0, 3, -2, 0, -2,
+    0, 0, 0, -2, -3, -2, -2, -3,
+    -2, 0, 2, 9, -1, 0, -6, 0,
+    -2, 4, 0, -2, -9, -3, 3, 0,
+    0, -11, -4, 2, -4, 2, 0, -2,
+    -2, -7, 0, -3, 1, 0, 0, -4,
+    0, 0, 0, 2, 2, -4, -4, 0,
+    -4, -2, -3, -2, -2, 0, -4, 1,
+    -4, -4, 7, 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, -4, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 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, -2, -2,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, -3, 0, 0, -3,
+    0, 0, -2, -2, 0, 0, 0, 0,
+    -2, 0, 0, 0, 0, -1, 0, 0,
+    0, 0, 0, -2, 0, 0, 0, 0,
+    -3, 0, -4, 0, 0, 0, -7, 0,
+    2, -5, 4, 0, -2, -11, 0, 0,
+    -5, -2, 0, -9, -6, -6, 0, 0,
+    -10, -2, -9, -9, -11, 0, -6, 0,
+    2, 15, -3, 0, -5, -2, -1, -2,
+    -4, -6, -4, -8, -9, -5, -2, 0,
+    0, -2, 0, 1, 0, 0, -16, -2,
+    7, 5, -5, -8, 0, 1, -7, 0,
+    -11, -2, -2, 4, -21, -3, 1, 0,
+    0, -15, -3, -12, -2, -16, 0, 0,
+    -16, 0, 13, 1, 0, -2, 0, 0,
+    0, 0, -1, -2, -9, -2, 0, -15,
+    0, 0, 0, 0, -7, 0, -2, 0,
+    -1, -6, -11, 0, 0, -1, -3, -7,
+    -2, 0, -2, 0, 0, 0, 0, -10,
+    -2, -7, -7, -2, -4, -6, -2, -4,
+    0, -4, -2, -7, -3, 0, -3, -4,
+    -2, -4, 0, 1, 0, -2, -7, 0,
+    4, 0, -4, 0, 0, 0, 0, 3,
+    0, 2, -4, 9, 0, -2, -2, -3,
+    0, 0, 0, 0, 0, 0, -7, 0,
+    -2, 0, -3, -2, 0, -5, -6, -7,
+    -2, 0, -4, 2, 9, 0, 0, 0,
+    0, 18, 0, 0, 1, 0, 0, -3,
+    0, 2, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    -2, -4, 0, 0, 0, 0, 0, -1,
+    0, 0, 0, -2, -2, 0, 0, -4,
+    -2, 0, 0, -4, 0, 4, -1, 0,
+    0, 0, 0, 0, 0, 1, 0, 0,
+    0, 0, 3, 4, 2, -2, 0, -7,
+    -4, 0, 7, -7, -7, -4, -4, 9,
+    4, 2, -19, -2, 4, -2, 0, -2,
+    2, -2, -8, 0, -2, 2, -3, -2,
+    -7, -2, 0, 0, 7, 4, 0, -6,
+    0, -12, -3, 6, -3, -9, 1, -3,
+    -7, -7, -2, 9, 2, 0, -3, 0,
+    -6, 0, 2, 7, -5, -8, -9, -6,
+    7, 0, 1, -16, -2, 2, -4, -2,
+    -5, 0, -5, -8, -3, -3, -2, 0,
+    0, -5, -5, -2, 0, 7, 5, -2,
+    -12, 0, -12, -3, 0, -8, -13, -1,
+    -7, -4, -7, -6, 6, 0, 0, -3,
+    0, -4, -2, 0, -2, -4, 0, 4,
+    -7, 2, 0, 0, -12, 0, -2, -5,
+    -4, -2, -7, -6, -7, -5, 0, -7,
+    -2, -5, -4, -7, -2, 0, 0, 1,
+    11, -4, 0, -7, -2, 0, -2, -4,
+    -5, -6, -6, -9, -3, -4, 4, 0,
+    -3, 0, -11, -3, 1, 4, -7, -8,
+    -4, -7, 7, -2, 1, -21, -4, 4,
+    -5, -4, -8, 0, -7, -9, -3, -2,
+    -2, -2, -5, -7, -1, 0, 0, 7,
+    6, -2, -15, 0, -13, -5, 5, -9,
+    -15, -4, -8, -9, -11, -7, 4, 0,
+    0, 0, 0, -3, 0, 0, 2, -3,
+    4, 2, -4, 4, 0, 0, -7, -1,
+    0, -1, 0, 1, 1, -2, 0, 0,
+    0, 0, 0, 0, -2, 0, 0, 0,
+    0, 2, 7, 0, 0, -3, 0, 0,
+    0, 0, -2, -2, -3, 0, 0, 0,
+    1, 2, 0, 0, 0, 0, 2, 0,
+    -2, 0, 9, 0, 4, 1, 1, -3,
+    0, 4, 0, 0, 0, 2, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 7, 0, 6, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, -13, 0, -2, 4, 0, 7,
+    0, 0, 22, 3, -4, -4, 2, 2,
+    -2, 1, -11, 0, 0, 11, -13, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, -15, 9, 31, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, -13, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, -4, 0, 0, -4,
+    -2, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, -2, 0, -6, 0,
+    0, 1, 0, 0, 2, 29, -4, -2,
+    7, 6, -6, 2, 0, 0, 2, 2,
+    -3, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, -29, 6, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, -6,
+    0, 0, 0, -6, 0, 0, 0, 0,
+    -5, -1, 0, 0, 0, -5, 0, -3,
+    0, -11, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, -15, 0, 0,
+    0, 0, 1, 0, 0, 0, 0, 0,
+    0, -2, 0, 0, -4, 0, -3, 0,
+    -6, 0, 0, 0, -4, 2, -3, 0,
+    0, -6, -2, -5, 0, 0, -6, 0,
+    -2, 0, -11, 0, -2, 0, 0, -18,
+    -4, -9, -2, -8, 0, 0, -15, 0,
+    -6, -1, 0, 0, 0, 0, 0, 0,
+    0, 0, -3, -4, -2, -4, 0, 0,
+    0, 0, -5, 0, -5, 3, -2, 4,
+    0, -2, -5, -2, -4, -4, 0, -3,
+    -1, -2, 2, -6, -1, 0, 0, 0,
+    -20, -2, -3, 0, -5, 0, -2, -11,
+    -2, 0, 0, -2, -2, 0, 0, 0,
+    0, 2, 0, -2, -4, -2, 4, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 3, 0, 0, 0, 0, 0,
+    0, -5, 0, -2, 0, 0, 0, -4,
+    2, 0, 0, 0, -6, -2, -4, 0,
+    0, -6, 0, -2, 0, -11, 0, 0,
+    0, 0, -22, 0, -4, -8, -11, 0,
+    0, -15, 0, -2, -3, 0, 0, 0,
+    0, 0, 0, 0, 0, -2, -3, -1,
+    -3, 1, 0, 0, 4, -3, 0, 7,
+    11, -2, -2, -7, 3, 11, 4, 5,
+    -6, 3, 9, 3, 6, 5, 6, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 14, 11, -4, -2, 0, -2,
+    18, 10, 18, 0, 0, 0, 2, 0,
+    0, 8, 0, 0, -4, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, -2, 0,
+    0, 0, 0, 0, 0, 0, 0, 3,
+    0, 0, 0, 0, -19, -3, -2, -9,
+    -11, 0, 0, -15, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, -4, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, -2,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    3, 0, 0, 0, 0, -19, -3, -2,
+    -9, -11, 0, 0, -9, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    -2, 0, 0, 0, -5, 2, 0, -2,
+    2, 4, 2, -7, 0, 0, -2, 2,
+    0, 2, 0, 0, 0, 0, -6, 0,
+    -2, -2, -4, 0, -2, -9, 0, 14,
+    -2, 0, -5, -2, 0, -2, -4, 0,
+    -2, -6, -4, -3, 0, 0, 0, -4,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, -2, 0, 0, 0, 0, 0, 0,
+    0, 0, 3, 0, 0, 0, 0, -19,
+    -3, -2, -9, -11, 0, 0, -15, 0,
+    0, 0, 0, 0, 0, 11, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    -4, 0, -7, -3, -2, 7, -2, -2,
+    -9, 1, -1, 1, -2, -6, 0, 5,
+    0, 2, 1, 2, -5, -9, -3, 0,
+    -9, -4, -6, -9, -9, 0, -4, -4,
+    -3, -3, -2, -2, -3, -2, 0, -2,
+    -1, 3, 0, 3, -2, 0, 7, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, -2, -2, -2, 0, 0,
+    -6, 0, -1, 0, -4, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    -13, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, -2, -2, 0, -3,
+    0, 0, 0, 0, -2, 0, 0, -4,
+    -2, 2, 0, -4, -4, -2, 0, -6,
+    -2, -5, -2, -3, 0, -4, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, -15, 0, 7, 0, 0, -4, 0,
+    0, 0, 0, -3, 0, -2, 0, 0,
+    -1, 0, 0, -2, 0, -5, 0, 0,
+    9, -3, -7, -7, 2, 2, 2, 0,
+    -6, 2, 3, 2, 7, 2, 7, -2,
+    -6, 0, 0, -9, 0, 0, -7, -6,
+    0, 0, -4, 0, -3, -4, 0, -3,
+    0, -3, 0, -2, 3, 0, -2, -7,
+    -2, 8, 0, 0, -2, 0, -4, 0,
+    0, 3, -5, 0, 2, -2, 2, 0,
+    0, -7, 0, -2, -1, 0, -2, 2,
+    -2, 0, 0, 0, -9, -3, -5, 0,
+    -7, 0, 0, -11, 0, 8, -2, 0,
+    -4, 0, 1, 0, -2, 0, -2, -7,
+    0, -2, 2, 0, 0, 0, 0, -2,
+    0, 0, 2, -3, 1, 0, 0, -3,
+    -2, 0, -3, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, -14, 0, 5, 0,
+    0, -2, 0, 0, 0, 0, 0, 0,
+    -2, -2, 0, 0, 0, 4, 0, 5,
+    0, 0, 0, 0, 0, -14, -13, 1,
+    10, 7, 4, -9, 2, 9, 0, 8,
+    0, 4, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 12, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0
+};
+
+
+/*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,
 };
 
 /*--------------------
@@ -1027,11 +2158,11 @@ static lv_font_fmt_txt_dsc_t font_dsc = {
     .glyph_bitmap = glyph_bitmap,
     .glyph_dsc = glyph_dsc,
     .cmaps = cmaps,
-    .kern_dsc = &kern_pairs,
+    .kern_dsc = &kern_classes,
     .kern_scale = 16,
-    .cmap_num = 4,
+    .cmap_num = 2,
     .bpp = 4,
-    .kern_classes = 0,
+    .kern_classes = 1,
     .bitmap_format = 0,
 #if LV_VERSION_CHECK(8, 0, 0)
     .cache = &cache
@@ -1052,12 +2183,12 @@ lv_font_t lv_font_montserrat_14 = {
     .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 = 16,          /*The maximum line height required by the font*/
-    .base_line = 4,             /*Baseline measured from the bottom of the line*/
+    .base_line = 3,             /*Baseline measured from the bottom of the line*/
 #if !(LVGL_VERSION_MAJOR == 6 && LVGL_VERSION_MINOR == 0)
     .subpx = LV_FONT_SUBPX_NONE,
 #endif
 #if LV_VERSION_CHECK(7, 4, 0) || LVGL_VERSION_MAJOR >= 8
-    .underline_position = -2,
+    .underline_position = -1,
     .underline_thickness = 1,
 #endif
     .dsc = &font_dsc           /*The custom font data. Will be accessed by `get_glyph_bitmap/dsc` */
index 663e0bc..c35ec2d 100644 (file)
@@ -1,3 +1,8 @@
-lvgl_SRCS  += $(LVGL_DIR_NAME)/src/hal/lv_hal_disp.c
-lvgl_SRCS  += $(LVGL_DIR_NAME)/src/hal/lv_hal_indev.c
-lvgl_SRCS  += $(LVGL_DIR_NAME)/src/hal/lv_hal_tick.c
+CSRCS += lv_hal_disp.c
+CSRCS += lv_hal_indev.c
+CSRCS += lv_hal_tick.c
+
+DEPPATH += --dep-path $(LVGL_DIR)/$(LVGL_DIR_NAME)/src/hal
+VPATH += :$(LVGL_DIR)/$(LVGL_DIR_NAME)/src/hal
+
+CFLAGS += "-I$(LVGL_DIR)/$(LVGL_DIR_NAME)/src/hal"
index 9a8e42d..0cebc33 100644 (file)
 #include "../draw/sw/lv_draw_sw.h"
 #include "../draw/sdl/lv_draw_sdl.h"
 #include "../draw/stm32_dma2d/lv_gpu_stm32_dma2d.h"
+#include "../draw/swm341_dma2d/lv_gpu_swm341_dma2d.h"
+#include "../draw/arm2d/lv_gpu_arm2d.h"
+#include "../draw/nxp/vglite/lv_draw_vglite.h"
+#include "../draw/nxp/pxp/lv_draw_pxp.h"
+#include "../draw/renesas/lv_gpu_d2_ra6m3.h"
 
 #if LV_USE_THEME_DEFAULT
     #include "../extra/themes/default/lv_theme_default.h"
@@ -87,27 +92,38 @@ void lv_disp_drv_init(lv_disp_drv_t * driver)
     driver->offset_x         = 0;
     driver->offset_y         = 0;
     driver->antialiasing     = LV_COLOR_DEPTH > 8 ? 1 : 0;
-    driver->screen_transp    = LV_COLOR_SCREEN_TRANSP;
+    driver->screen_transp    = 0;
     driver->dpi              = LV_DPI_DEF;
     driver->color_chroma_key = LV_COLOR_CHROMA_KEY;
 
-
-#if LV_USE_GPU_STM32_DMA2D
+#if LV_USE_GPU_RA6M3_G2D
+    driver->draw_ctx_init = lv_draw_ra6m3_2d_ctx_init;
+    driver->draw_ctx_deinit = lv_draw_ra6m3_2d_ctx_init;
+    driver->draw_ctx_size = sizeof(lv_draw_ra6m3_dma2d_ctx_t);
+#elif LV_USE_GPU_STM32_DMA2D
     driver->draw_ctx_init = lv_draw_stm32_dma2d_ctx_init;
     driver->draw_ctx_deinit = lv_draw_stm32_dma2d_ctx_init;
     driver->draw_ctx_size = sizeof(lv_draw_stm32_dma2d_ctx_t);
-#elif LV_USE_GPU_NXP_PXP
-    driver->draw_ctx_init = lv_draw_nxp_pxp_init;
-    driver->draw_ctx_deinit = lv_draw_nxp_pxp_init;
-    driver->draw_ctx_size = sizeof(lv_draw_nxp_pxp_t);
+#elif LV_USE_GPU_SWM341_DMA2D
+    driver->draw_ctx_init = lv_draw_swm341_dma2d_ctx_init;
+    driver->draw_ctx_deinit = lv_draw_swm341_dma2d_ctx_init;
+    driver->draw_ctx_size = sizeof(lv_draw_swm341_dma2d_ctx_t);
 #elif LV_USE_GPU_NXP_VG_LITE
-    driver->draw_ctx_init = lv_draw_nxp_vglite_init;
-    driver->draw_ctx_deinit = lv_draw_nxp_vglite_init;
-    driver->draw_ctx_size = sizeof(lv_draw_nxp_vglite_t);
+    driver->draw_ctx_init = lv_draw_vglite_ctx_init;
+    driver->draw_ctx_deinit = lv_draw_vglite_ctx_deinit;
+    driver->draw_ctx_size = sizeof(lv_draw_vglite_ctx_t);
+#elif LV_USE_GPU_NXP_PXP
+    driver->draw_ctx_init = lv_draw_pxp_ctx_init;
+    driver->draw_ctx_deinit = lv_draw_pxp_ctx_deinit;
+    driver->draw_ctx_size = sizeof(lv_draw_pxp_ctx_t);
 #elif LV_USE_GPU_SDL
     driver->draw_ctx_init = lv_draw_sdl_init_ctx;
     driver->draw_ctx_deinit = lv_draw_sdl_deinit_ctx;
     driver->draw_ctx_size = sizeof(lv_draw_sdl_ctx_t);
+#elif LV_USE_GPU_ARM2D
+    driver->draw_ctx_init = lv_draw_arm2d_ctx_init;
+    driver->draw_ctx_deinit = lv_draw_arm2d_ctx_init;
+    driver->draw_ctx_size = sizeof(lv_draw_arm2d_ctx_t);
 #else
     driver->draw_ctx_init = lv_draw_sw_init_ctx;
     driver->draw_ctx_deinit = lv_draw_sw_init_ctx;
@@ -150,8 +166,8 @@ void lv_disp_draw_buf_init(lv_disp_draw_buf_t * draw_buf, void * buf1, void * bu
 lv_disp_t * lv_disp_drv_register(lv_disp_drv_t * driver)
 {
     lv_disp_t * disp = _lv_ll_ins_head(&LV_GC_ROOT(_lv_disp_ll));
+    LV_ASSERT_MALLOC(disp);
     if(!disp) {
-        LV_ASSERT_MALLOC(disp);
         return NULL;
     }
 
@@ -168,6 +184,8 @@ lv_disp_t * lv_disp_drv_register(lv_disp_drv_t * driver)
 
     disp->driver = driver;
 
+    disp->inv_en_cnt = 1;
+
     lv_disp_t * disp_def_tmp = disp_def;
     disp_def                 = disp; /*Temporarily change the default screen to create the default screens on the
                                         new display*/
@@ -497,18 +515,6 @@ lv_coord_t lv_disp_get_dpi(const lv_disp_t * disp)
  */
 LV_ATTRIBUTE_FLUSH_READY void lv_disp_flush_ready(lv_disp_drv_t * disp_drv)
 {
-    /*If the screen is transparent initialize it when the flushing is ready*/
-#if LV_COLOR_SCREEN_TRANSP
-    if(disp_drv->screen_transp) {
-        if(disp_drv->clear_cb) {
-            disp_drv->clear_cb(disp_drv, disp_drv->draw_buf->buf_act, disp_drv->draw_buf->size);
-        }
-        else {
-            lv_memset_00(disp_drv->draw_buf->buf_act, disp_drv->draw_buf->size * sizeof(lv_color32_t));
-        }
-    }
-#endif
-
     disp_drv->draw_buf->flushing = 0;
     disp_drv->draw_buf->flushing_last = 0;
 }
@@ -677,28 +683,35 @@ static void set_px_alpha_generic(lv_img_dsc_t * d, lv_coord_t x, lv_coord_t y, l
     lv_img_buf_set_px_alpha(d, x, y, br);
 }
 
-static void set_px_true_color_alpha(lv_disp_drv_t * disp_drv, uint8_t * buf, lv_coord_t buf_w, lv_coord_t x,
-                                    lv_coord_t y,
+static void set_px_true_color_alpha(lv_disp_drv_t * disp_drv, uint8_t * buf, lv_coord_t buf_w,
+                                    lv_coord_t x, lv_coord_t y,
                                     lv_color_t color, lv_opa_t opa)
 {
     (void) disp_drv; /*Unused*/
 
-    if(opa <= LV_OPA_MIN) return;
-    lv_img_dsc_t d;
-    d.data = buf;
-    d.header.always_zero = 0;
-    d.header.h = 1;    /*Doesn't matter*/;
-    d.header.w = buf_w;
-    d.header.cf = LV_IMG_CF_TRUE_COLOR_ALPHA;
-
-    lv_color_t bg_color = lv_img_buf_get_px_color(&d, x, y, lv_color_black());
-    lv_opa_t bg_opa = lv_img_buf_get_px_alpha(&d, x, y);
+    uint8_t * buf_px = buf + (buf_w * y * LV_IMG_PX_SIZE_ALPHA_BYTE + x * LV_IMG_PX_SIZE_ALPHA_BYTE);
 
-    lv_opa_t res_opa;
+    lv_color_t bg_color;
     lv_color_t res_color;
+    lv_opa_t bg_opa = buf_px[LV_IMG_PX_SIZE_ALPHA_BYTE - 1];
+#if LV_COLOR_DEPTH == 8 || LV_COLOR_DEPTH == 1
+    bg_color.full = buf_px[0];
+    lv_color_mix_with_alpha(bg_color, bg_opa, color, opa, &res_color, &buf_px[2]);
+    if(buf_px[1] <= LV_OPA_MIN) return;
+    buf_px[0] = res_color.full;
+#elif LV_COLOR_DEPTH == 16
+    bg_color.full = buf_px[0] + (buf_px[1] << 8);
+    lv_color_mix_with_alpha(bg_color, bg_opa, color, opa, &res_color, &buf_px[2]);
+    if(buf_px[2] <= LV_OPA_MIN) return;
+    buf_px[0] = res_color.full & 0xff;
+    buf_px[1] = res_color.full >> 8;
+#elif LV_COLOR_DEPTH == 32
+    bg_color = *((lv_color_t *)buf_px);
+    lv_color_mix_with_alpha(bg_color, bg_opa, color, opa, &res_color, &buf_px[3]);
+    if(buf_px[3] <= LV_OPA_MIN) return;
+    buf_px[0] = res_color.ch.blue;
+    buf_px[1] = res_color.ch.green;
+    buf_px[2] = res_color.ch.red;
+#endif
 
-    lv_color_mix_with_alpha(bg_color, bg_opa, color, opa, &res_color, &res_opa);
-
-    lv_img_buf_set_px_alpha(&d, x, y, res_opa);
-    lv_img_buf_set_px_color(&d, x, y, res_color);
 }
index 6abbab1..d3425fe 100644 (file)
@@ -133,6 +133,9 @@ typedef struct _lv_disp_drv_t {
     /** OPTIONAL: called when driver parameters are updated */
     void (*drv_update_cb)(struct _lv_disp_drv_t * disp_drv);
 
+    /** OPTIONAL: called when start rendering */
+    void (*render_start_cb)(struct _lv_disp_drv_t * disp_drv);
+
     /** On CHROMA_KEYED images this color will be transparent.
      * `LV_COLOR_CHROMA_KEY` by default. (lv_conf.h)*/
     lv_color_t color_chroma_key;
@@ -170,8 +173,11 @@ typedef struct _lv_disp_t {
     struct _lv_obj_t * top_layer;   /**< @see lv_disp_get_layer_top*/
     struct _lv_obj_t * sys_layer;   /**< @see lv_disp_get_layer_sys*/
     uint32_t screen_cnt;
+uint8_t draw_prev_over_act  :
+    1;          /**< 1: Draw previous screen over active screen*/
 uint8_t del_prev  :
     1;          /**< 1: Automatically delete the previous screen when the screen load animation is ready*/
+    uint8_t rendering_in_progress : 1; /**< 1: The current screen rendering is in progress*/
 
     lv_opa_t bg_opa;                /**<Opacity of the background color or wallpaper*/
     lv_color_t bg_color;            /**< Default display color when screens are transparent*/
@@ -181,6 +187,7 @@ uint8_t del_prev  :
     lv_area_t inv_areas[LV_INV_BUF_SIZE];
     uint8_t inv_area_joined[LV_INV_BUF_SIZE];
     uint16_t inv_p;
+    int32_t inv_en_cnt;
 
     /*Miscellaneous data*/
     uint32_t last_activity_time;        /**< Last time when there was activity on this display*/
index 4d77083..c3661e4 100644 (file)
@@ -75,7 +75,6 @@ void lv_indev_drv_init(lv_indev_drv_t * driver)
  */
 lv_indev_t * lv_indev_drv_register(lv_indev_drv_t * driver)
 {
-
     if(driver->disp == NULL) driver->disp = lv_disp_get_default();
 
     if(driver->disp == NULL) {
@@ -85,8 +84,8 @@ lv_indev_t * lv_indev_drv_register(lv_indev_drv_t * driver)
     }
 
     lv_indev_t * indev = _lv_ll_ins_head(&LV_GC_ROOT(_lv_indev_ll));
+    LV_ASSERT_MALLOC(indev);
     if(!indev) {
-        LV_ASSERT_MALLOC(indev);
         return NULL;
     }
 
index f3fcf3f..5bbcf53 100644 (file)
@@ -27,18 +27,10 @@ extern "C" {
  *********************/
 
 /*Drag threshold in pixels*/
-#if defined(BOARD_EC800MCN_GA_ALIPAY) || defined(BOARD_EC600NCN_LF_ALIPAY) || defined(BOARD_EG810MCN_GA_ALIPAY)
-#define LV_INDEV_DEF_SCROLL_LIMIT         1
-#else
 #define LV_INDEV_DEF_SCROLL_LIMIT         10
-#endif
 
 /*Drag throw slow-down in [%]. Greater value -> faster slow-down*/
-#if defined(BOARD_EC800MCN_GA_ALIPAY) || defined(BOARD_EC600NCN_LF_ALIPAY) || defined(BOARD_EG810MCN_GA_ALIPAY)
-#define LV_INDEV_DEF_SCROLL_THROW         1
-#else
 #define LV_INDEV_DEF_SCROLL_THROW         10
-#endif
 
 /*Long press time in milliseconds.
  *Time to send `LV_EVENT_LONG_PRESSSED`)*/
@@ -50,18 +42,10 @@ extern "C" {
 
 
 /*Gesture threshold in pixels*/
-#if defined(BOARD_EC800MCN_GA_ALIPAY) || defined(BOARD_EC600NCN_LF_ALIPAY) || defined(BOARD_EG810MCN_GA_ALIPAY)
-#define LV_INDEV_DEF_GESTURE_LIMIT         10
-#else
-#define LV_INDEV_DEF_GESTURE_LIMIT         50
-#endif
+#define LV_INDEV_DEF_GESTURE_LIMIT        50
 
 /*Gesture min velocity at release before swipe (pixels)*/
-#if defined(BOARD_EC800MCN_GA_ALIPAY) || defined(BOARD_EC600NCN_LF_ALIPAY) || defined(BOARD_EG810MCN_GA_ALIPAY)
-#define LV_INDEV_DEF_GESTURE_MIN_VELOCITY         1
-#else
-#define LV_INDEV_DEF_GESTURE_MIN_VELOCITY         3
-#endif
+#define LV_INDEV_DEF_GESTURE_MIN_VELOCITY 3
 
 
 /**********************
@@ -157,6 +141,7 @@ typedef struct _lv_indev_proc_t {
         struct {
             /*Pointer and button data*/
             lv_point_t act_point; /**< Current point of input device.*/
+            lv_point_t indev_point;
             lv_point_t last_point; /**< Last point of input device.*/
             lv_point_t last_raw_point; /**< Last point read from read_cb. */
             lv_point_t vect; /**< Difference between `act_point` and `last_point`.*/
index ebc1057..a625ba9 100644 (file)
     #else
         #include "../../lv_conf.h"                /*Else assume lv_conf.h is next to the lvgl folder*/
     #endif
+    #if !defined(LV_CONF_H) && !defined(LV_CONF_SUPPRESS_DEFINE_CHECK)
+        /* #include will sometimes silently fail when __has_include is used */
+        /* https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80753 */
+        #pragma message("Possible failure to include lv_conf.h, please read the comment in this file if you get errors")
+    #endif
 #endif
 
 #ifdef CONFIG_LV_COLOR_DEPTH
@@ -74,9 +79,9 @@
     #endif
 #endif
 
-/*Enable more complex drawing routines to manage screens transparency.
- *Can be used if the UI is above another layer, e.g. an OSD menu or video player.
- *Requires `LV_COLOR_DEPTH = 32` colors and the screen's `bg_opa` should be set to non LV_OPA_COVER value*/
+/*Enable features to draw on transparent background.
+ *It's required if opa, and transform_* style properties are used.
+ *Can be also used if the UI is above another layer, e.g. an OSD menu or video player.*/
 #ifndef LV_COLOR_SCREEN_TRANSP
     #ifdef CONFIG_LV_COLOR_SCREEN_TRANSP
         #define LV_COLOR_SCREEN_TRANSP CONFIG_LV_COLOR_SCREEN_TRANSP
@@ -91,7 +96,7 @@
     #ifdef CONFIG_LV_COLOR_MIX_ROUND_OFS
         #define LV_COLOR_MIX_ROUND_OFS CONFIG_LV_COLOR_MIX_ROUND_OFS
     #else
-        #define LV_COLOR_MIX_ROUND_OFS (LV_COLOR_DEPTH == 32 ? 0: 128)
+        #define LV_COLOR_MIX_ROUND_OFS 0
     #endif
 #endif
 
     #endif
     /*Instead of an address give a memory allocator that will be called to get a memory pool for LVGL. E.g. my_malloc*/
     #if LV_MEM_ADR == 0
-        //#define LV_MEM_POOL_INCLUDE your_alloc_library  /* Uncomment if using an external allocator*/
-        //#define LV_MEM_POOL_ALLOC   your_alloc          /* Uncomment if using an external allocator*/
+        #ifndef LV_MEM_POOL_INCLUDE
+            #ifdef CONFIG_LV_MEM_POOL_INCLUDE
+                #define LV_MEM_POOL_INCLUDE CONFIG_LV_MEM_POOL_INCLUDE
+            #else
+                #undef LV_MEM_POOL_INCLUDE
+            #endif
+        #endif
+        #ifndef LV_MEM_POOL_ALLOC
+            #ifdef CONFIG_LV_MEM_POOL_ALLOC
+                #define LV_MEM_POOL_ALLOC CONFIG_LV_MEM_POOL_ALLOC
+            #else
+                #undef LV_MEM_POOL_ALLOC
+            #endif
+        #endif
     #endif
 
 #else       /*LV_MEM_CUSTOM*/
             #define LV_TICK_CUSTOM_SYS_TIME_EXPR (millis())    /*Expression evaluating to current system time in ms*/
         #endif
     #endif
+    /*If using lvgl as ESP32 component*/
+    // #define LV_TICK_CUSTOM_INCLUDE "esp_timer.h"
+    // #define LV_TICK_CUSTOM_SYS_TIME_EXPR ((esp_timer_get_time() / 1000LL))
 #endif   /*LV_TICK_CUSTOM*/
 
 /*Default Dot Per Inch. Used to initialize default sizes such as widgets sized, style paddings.
     #endif
 #endif /*LV_DRAW_COMPLEX*/
 
+/**
+ * "Simple layers" are used when a widget has `style_opa < 255` to buffer the widget into a layer
+ * and blend it as an image with the given opacity.
+ * Note that `bg_opa`, `text_opa` etc don't require buffering into layer)
+ * The widget can be buffered in smaller chunks to avoid using large buffers.
+ *
+ * - LV_LAYER_SIMPLE_BUF_SIZE: [bytes] the optimal target buffer size. LVGL will try to allocate it
+ * - LV_LAYER_SIMPLE_FALLBACK_BUF_SIZE: [bytes]  used if `LV_LAYER_SIMPLE_BUF_SIZE` couldn't be allocated.
+ *
+ * Both buffer sizes are in bytes.
+ * "Transformed layers" (where transform_angle/zoom properties are used) use larger buffers
+ * and can't be drawn in chunks. So these settings affects only widgets with opacity.
+ */
+#ifndef LV_LAYER_SIMPLE_BUF_SIZE
+    #ifdef CONFIG_LV_LAYER_SIMPLE_BUF_SIZE
+        #define LV_LAYER_SIMPLE_BUF_SIZE CONFIG_LV_LAYER_SIMPLE_BUF_SIZE
+    #else
+        #define LV_LAYER_SIMPLE_BUF_SIZE          (24 * 1024)
+    #endif
+#endif
+#ifndef LV_LAYER_SIMPLE_FALLBACK_BUF_SIZE
+    #ifdef CONFIG_LV_LAYER_SIMPLE_FALLBACK_BUF_SIZE
+        #define LV_LAYER_SIMPLE_FALLBACK_BUF_SIZE CONFIG_LV_LAYER_SIMPLE_FALLBACK_BUF_SIZE
+    #else
+        #define LV_LAYER_SIMPLE_FALLBACK_BUF_SIZE (3 * 1024)
+    #endif
+#endif
+
 /*Default image cache size. Image caching keeps the images opened.
  *If only the built-in image formats are used there is no real advantage of caching. (I.e. if no new image decoder is added)
  *With complex image decoders (e.g. PNG or JPG) caching can save the continuous open/decode of images.
     #ifdef CONFIG_LV_IMG_CACHE_DEF_SIZE
         #define LV_IMG_CACHE_DEF_SIZE CONFIG_LV_IMG_CACHE_DEF_SIZE
     #else
-        #define LV_IMG_CACHE_DEF_SIZE   0
+        #define LV_IMG_CACHE_DEF_SIZE 0
     #endif
 #endif
 
     #ifdef CONFIG_LV_GRADIENT_MAX_STOPS
         #define LV_GRADIENT_MAX_STOPS CONFIG_LV_GRADIENT_MAX_STOPS
     #else
-        #define LV_GRADIENT_MAX_STOPS       2
+        #define LV_GRADIENT_MAX_STOPS 2
     #endif
 #endif
 
     #ifdef CONFIG_LV_GRAD_CACHE_DEF_SIZE
         #define LV_GRAD_CACHE_DEF_SIZE CONFIG_LV_GRAD_CACHE_DEF_SIZE
     #else
-        #define LV_GRAD_CACHE_DEF_SIZE      0
+        #define LV_GRAD_CACHE_DEF_SIZE 0
     #endif
 #endif
 
     #ifdef CONFIG_LV_DITHER_GRADIENT
         #define LV_DITHER_GRADIENT CONFIG_LV_DITHER_GRADIENT
     #else
-        #define LV_DITHER_GRADIENT      0
+        #define LV_DITHER_GRADIENT 0
     #endif
 #endif
 #if LV_DITHER_GRADIENT
         #ifdef CONFIG_LV_DITHER_ERROR_DIFFUSION
             #define LV_DITHER_ERROR_DIFFUSION CONFIG_LV_DITHER_ERROR_DIFFUSION
         #else
-            #define LV_DITHER_ERROR_DIFFUSION   0
+            #define LV_DITHER_ERROR_DIFFUSION 0
         #endif
     #endif
 #endif
  * GPU
  *-----------*/
 
+/*Use Arm's 2D acceleration library Arm-2D */
+#ifndef LV_USE_GPU_ARM2D
+    #ifdef CONFIG_LV_USE_GPU_ARM2D
+        #define LV_USE_GPU_ARM2D CONFIG_LV_USE_GPU_ARM2D
+    #else
+        #define LV_USE_GPU_ARM2D 0
+    #endif
+#endif
+
 /*Use STM32's DMA2D (aka Chrom Art) GPU*/
 #ifndef LV_USE_GPU_STM32_DMA2D
     #ifdef CONFIG_LV_USE_GPU_STM32_DMA2D
 #endif
 #if LV_USE_GPU_STM32_DMA2D
     /*Must be defined to include path of CMSIS header of target processor
-    e.g. "stm32f769xx.h" or "stm32f429xx.h"*/
+    e.g. "stm32f7xx.h" or "stm32f4xx.h"*/
     #ifndef LV_GPU_DMA2D_CMSIS_INCLUDE
         #ifdef CONFIG_LV_GPU_DMA2D_CMSIS_INCLUDE
             #define LV_GPU_DMA2D_CMSIS_INCLUDE CONFIG_LV_GPU_DMA2D_CMSIS_INCLUDE
     #endif
 #endif
 
+/*Enable RA6M3 G2D GPU*/
+#ifndef LV_USE_GPU_RA6M3_G2D
+    #ifdef CONFIG_LV_USE_GPU_RA6M3_G2D
+        #define LV_USE_GPU_RA6M3_G2D CONFIG_LV_USE_GPU_RA6M3_G2D
+    #else
+        #define LV_USE_GPU_RA6M3_G2D 0
+    #endif
+#endif
+#if LV_USE_GPU_RA6M3_G2D
+    /*include path of target processor
+    e.g. "hal_data.h"*/
+    #ifndef LV_GPU_RA6M3_G2D_INCLUDE
+        #ifdef CONFIG_LV_GPU_RA6M3_G2D_INCLUDE
+            #define LV_GPU_RA6M3_G2D_INCLUDE CONFIG_LV_GPU_RA6M3_G2D_INCLUDE
+        #else
+            #define LV_GPU_RA6M3_G2D_INCLUDE "hal_data.h"
+        #endif
+    #endif
+#endif
+
+/*Use SWM341's DMA2D GPU*/
+#ifndef LV_USE_GPU_SWM341_DMA2D
+    #ifdef CONFIG_LV_USE_GPU_SWM341_DMA2D
+        #define LV_USE_GPU_SWM341_DMA2D CONFIG_LV_USE_GPU_SWM341_DMA2D
+    #else
+        #define LV_USE_GPU_SWM341_DMA2D 0
+    #endif
+#endif
+#if LV_USE_GPU_SWM341_DMA2D
+    #ifndef LV_GPU_SWM341_DMA2D_INCLUDE
+        #ifdef CONFIG_LV_GPU_SWM341_DMA2D_INCLUDE
+            #define LV_GPU_SWM341_DMA2D_INCLUDE CONFIG_LV_GPU_SWM341_DMA2D_INCLUDE
+        #else
+            #define LV_GPU_SWM341_DMA2D_INCLUDE "SWM341.h"
+        #endif
+    #endif
+#endif
+
 /*Use NXP's PXP GPU iMX RTxxx platforms*/
 #ifndef LV_USE_GPU_NXP_PXP
     #ifdef CONFIG_LV_USE_GPU_NXP_PXP
 /*Enable asserts if an operation is failed or an invalid data is found.
  *If LV_USE_LOG is enabled an error message will be printed on failure*/
 #ifndef LV_USE_ASSERT_NULL
-    #ifdef CONFIG_LV_USE_ASSERT_NULL
-        #define LV_USE_ASSERT_NULL CONFIG_LV_USE_ASSERT_NULL
+    #ifdef _LV_KCONFIG_PRESENT
+        #ifdef CONFIG_LV_USE_ASSERT_NULL
+            #define LV_USE_ASSERT_NULL CONFIG_LV_USE_ASSERT_NULL
+        #else
+            #define LV_USE_ASSERT_NULL 0
+        #endif
     #else
         #define LV_USE_ASSERT_NULL          1   /*Check if the parameter is NULL. (Very fast, recommended)*/
     #endif
 #endif
 #ifndef LV_USE_ASSERT_MALLOC
-    #ifdef CONFIG_LV_USE_ASSERT_MALLOC
-        #define LV_USE_ASSERT_MALLOC CONFIG_LV_USE_ASSERT_MALLOC
+    #ifdef _LV_KCONFIG_PRESENT
+        #ifdef CONFIG_LV_USE_ASSERT_MALLOC
+            #define LV_USE_ASSERT_MALLOC CONFIG_LV_USE_ASSERT_MALLOC
+        #else
+            #define LV_USE_ASSERT_MALLOC 0
+        #endif
     #else
         #define LV_USE_ASSERT_MALLOC        1   /*Checks is the memory is successfully allocated or no. (Very fast, recommended)*/
     #endif
     #endif
 #endif
 
+/*Enable drawing placeholders when glyph dsc is not found*/
+#ifndef LV_USE_FONT_PLACEHOLDER
+    #ifdef _LV_KCONFIG_PRESENT
+        #ifdef CONFIG_LV_USE_FONT_PLACEHOLDER
+            #define LV_USE_FONT_PLACEHOLDER CONFIG_LV_USE_FONT_PLACEHOLDER
+        #else
+            #define LV_USE_FONT_PLACEHOLDER 0
+        #endif
+    #else
+        #define LV_USE_FONT_PLACEHOLDER 1
+    #endif
+#endif
+
 /*=================
  *  TEXT SETTINGS
  *=================*/
     #endif
 #endif
 
-#ifndef LV_USE_ANIMIMG
-    #ifdef _LV_KCONFIG_PRESENT
-        #ifdef CONFIG_LV_USE_ANIMIMG
-            #define LV_USE_ANIMIMG CONFIG_LV_USE_ANIMIMG
-        #else
-            #define LV_USE_ANIMIMG 0
-        #endif
-    #else
-        #define LV_USE_ANIMIMG    1
-    #endif
-#endif
-
 #ifndef LV_USE_BAR
     #ifdef _LV_KCONFIG_PRESENT
         #ifdef CONFIG_LV_USE_BAR
 #endif
 
 #ifndef LV_USE_DROPDOWN
-    #ifdef CONFIG_LV_USE_DROPDOWN
-        #define LV_USE_DROPDOWN CONFIG_LV_USE_DROPDOWN
+    #ifdef _LV_KCONFIG_PRESENT
+        #ifdef CONFIG_LV_USE_DROPDOWN
+            #define LV_USE_DROPDOWN CONFIG_LV_USE_DROPDOWN
+        #else
+            #define LV_USE_DROPDOWN 0
+        #endif
     #else
         #define LV_USE_DROPDOWN   1   /*Requires: lv_label*/
     #endif
 #endif
 
 #ifndef LV_USE_IMG
-    #ifdef CONFIG_LV_USE_IMG
-        #define LV_USE_IMG CONFIG_LV_USE_IMG
+    #ifdef _LV_KCONFIG_PRESENT
+        #ifdef CONFIG_LV_USE_IMG
+            #define LV_USE_IMG CONFIG_LV_USE_IMG
+        #else
+            #define LV_USE_IMG 0
+        #endif
     #else
         #define LV_USE_IMG        1   /*Requires: lv_label*/
     #endif
 #endif
 #if LV_USE_LABEL
     #ifndef LV_LABEL_TEXT_SELECTION
-        #ifdef CONFIG_LV_LABEL_TEXT_SELECTION
-            #define LV_LABEL_TEXT_SELECTION CONFIG_LV_LABEL_TEXT_SELECTION
+        #ifdef _LV_KCONFIG_PRESENT
+            #ifdef CONFIG_LV_LABEL_TEXT_SELECTION
+                #define LV_LABEL_TEXT_SELECTION CONFIG_LV_LABEL_TEXT_SELECTION
+            #else
+                #define LV_LABEL_TEXT_SELECTION 0
+            #endif
         #else
             #define LV_LABEL_TEXT_SELECTION 1 /*Enable selecting text of the label*/
         #endif
     #endif
     #ifndef LV_LABEL_LONG_TXT_HINT
-        #ifdef CONFIG_LV_LABEL_LONG_TXT_HINT
-            #define LV_LABEL_LONG_TXT_HINT CONFIG_LV_LABEL_LONG_TXT_HINT
+        #ifdef _LV_KCONFIG_PRESENT
+            #ifdef CONFIG_LV_LABEL_LONG_TXT_HINT
+                #define LV_LABEL_LONG_TXT_HINT CONFIG_LV_LABEL_LONG_TXT_HINT
+            #else
+                #define LV_LABEL_LONG_TXT_HINT 0
+            #endif
         #else
             #define LV_LABEL_LONG_TXT_HINT 1  /*Store some extra info in labels to speed up drawing of very long texts*/
         #endif
 #endif
 
 #ifndef LV_USE_ROLLER
-    #ifdef CONFIG_LV_USE_ROLLER
-        #define LV_USE_ROLLER CONFIG_LV_USE_ROLLER
+    #ifdef _LV_KCONFIG_PRESENT
+        #ifdef CONFIG_LV_USE_ROLLER
+            #define LV_USE_ROLLER CONFIG_LV_USE_ROLLER
+        #else
+            #define LV_USE_ROLLER 0
+        #endif
     #else
         #define LV_USE_ROLLER     1   /*Requires: lv_label*/
     #endif
 #endif
 
 #ifndef LV_USE_SLIDER
-    #ifdef CONFIG_LV_USE_SLIDER
-        #define LV_USE_SLIDER CONFIG_LV_USE_SLIDER
+    #ifdef _LV_KCONFIG_PRESENT
+        #ifdef CONFIG_LV_USE_SLIDER
+            #define LV_USE_SLIDER CONFIG_LV_USE_SLIDER
+        #else
+            #define LV_USE_SLIDER 0
+        #endif
     #else
         #define LV_USE_SLIDER     1   /*Requires: lv_bar*/
     #endif
 #endif
 
 #ifndef LV_USE_TEXTAREA
-    #ifdef CONFIG_LV_USE_TEXTAREA
-        #define LV_USE_TEXTAREA CONFIG_LV_USE_TEXTAREA
+    #ifdef _LV_KCONFIG_PRESENT
+        #ifdef CONFIG_LV_USE_TEXTAREA
+            #define LV_USE_TEXTAREA CONFIG_LV_USE_TEXTAREA
+        #else
+            #define LV_USE_TEXTAREA 0
+        #endif
     #else
         #define LV_USE_TEXTAREA   1   /*Requires: lv_label*/
     #endif
 /*-----------
  * Widgets
  *----------*/
+#ifndef LV_USE_ANIMIMG
+    #ifdef _LV_KCONFIG_PRESENT
+        #ifdef CONFIG_LV_USE_ANIMIMG
+            #define LV_USE_ANIMIMG CONFIG_LV_USE_ANIMIMG
+        #else
+            #define LV_USE_ANIMIMG 0
+        #endif
+    #else
+        #define LV_USE_ANIMIMG    1
+    #endif
+#endif
+
 #ifndef LV_USE_CALENDAR
     #ifdef _LV_KCONFIG_PRESENT
         #ifdef CONFIG_LV_USE_CALENDAR
     #endif
 #endif
 
+#ifndef LV_USE_SPAN
+    #ifdef _LV_KCONFIG_PRESENT
+        #ifdef CONFIG_LV_USE_SPAN
+            #define LV_USE_SPAN CONFIG_LV_USE_SPAN
+        #else
+            #define LV_USE_SPAN 0
+        #endif
+    #else
+        #define LV_USE_SPAN       1
+    #endif
+#endif
+#if LV_USE_SPAN
+    /*A line text can contain maximum num of span descriptor */
+    #ifndef LV_SPAN_SNIPPET_STACK_SIZE
+        #ifdef CONFIG_LV_SPAN_SNIPPET_STACK_SIZE
+            #define LV_SPAN_SNIPPET_STACK_SIZE CONFIG_LV_SPAN_SNIPPET_STACK_SIZE
+        #else
+            #define LV_SPAN_SNIPPET_STACK_SIZE 64
+        #endif
+    #endif
+#endif
+
 #ifndef LV_USE_SPINBOX
     #ifdef _LV_KCONFIG_PRESENT
         #ifdef CONFIG_LV_USE_SPINBOX
     #endif
 #endif
 
-#ifndef LV_USE_SPAN
-    #ifdef _LV_KCONFIG_PRESENT
-        #ifdef CONFIG_LV_USE_SPAN
-            #define LV_USE_SPAN CONFIG_LV_USE_SPAN
-        #else
-            #define LV_USE_SPAN 0
-        #endif
-    #else
-        #define LV_USE_SPAN       1
-    #endif
-#endif
-#if LV_USE_SPAN
-    /*A line text can contain maximum num of span descriptor */
-    #ifndef LV_SPAN_SNIPPET_STACK_SIZE
-        #ifdef CONFIG_LV_SPAN_SNIPPET_STACK_SIZE
-            #define LV_SPAN_SNIPPET_STACK_SIZE CONFIG_LV_SPAN_SNIPPET_STACK_SIZE
-        #else
-            #define LV_SPAN_SNIPPET_STACK_SIZE 64
-        #endif
-    #endif
-#endif
-
 /*-----------
  * Themes
  *----------*/
         #ifdef CONFIG_LV_FS_STDIO_CACHE_SIZE
             #define LV_FS_STDIO_CACHE_SIZE CONFIG_LV_FS_STDIO_CACHE_SIZE
         #else
-            #define LV_FS_STDIO_CACHE_SIZE  0   /*>0 to cache this number of bytes in lv_fs_read()*/
+            #define LV_FS_STDIO_CACHE_SIZE 0    /*>0 to cache this number of bytes in lv_fs_read()*/
         #endif
     #endif
 #endif
         #ifdef CONFIG_LV_FS_POSIX_CACHE_SIZE
             #define LV_FS_POSIX_CACHE_SIZE CONFIG_LV_FS_POSIX_CACHE_SIZE
         #else
-            #define LV_FS_POSIX_CACHE_SIZE  0   /*>0 to cache this number of bytes in lv_fs_read()*/
+            #define LV_FS_POSIX_CACHE_SIZE 0    /*>0 to cache this number of bytes in lv_fs_read()*/
         #endif
     #endif
 #endif
         #ifdef CONFIG_LV_FS_WIN32_LETTER
             #define LV_FS_WIN32_LETTER CONFIG_LV_FS_WIN32_LETTER
         #else
-            #define LV_FS_WIN32_LETTER  '\0'    /*Set an upper cased letter on which the drive will accessible (e.g. 'A')*/
+            #define LV_FS_WIN32_LETTER '\0'     /*Set an upper cased letter on which the drive will accessible (e.g. 'A')*/
         #endif
     #endif
     #ifndef LV_FS_WIN32_PATH
     #ifdef CONFIG_LV_USE_FS_FATFS
         #define LV_USE_FS_FATFS CONFIG_LV_USE_FS_FATFS
     #else
-        #define LV_USE_FS_FATFS  0
+        #define LV_USE_FS_FATFS 0
     #endif
 #endif
 #if LV_USE_FS_FATFS
     #ifdef CONFIG_LV_USE_FFMPEG
         #define LV_USE_FFMPEG CONFIG_LV_USE_FFMPEG
     #else
-        #define LV_USE_FFMPEG  0
+        #define LV_USE_FFMPEG 0
     #endif
 #endif
 #if LV_USE_FFMPEG
     /*Dump input information to stderr*/
-    #ifndef LV_FFMPEG_AV_DUMP_FORMAT
-        #ifdef CONFIG_LV_FFMPEG_AV_DUMP_FORMAT
-            #define LV_FFMPEG_AV_DUMP_FORMAT CONFIG_LV_FFMPEG_AV_DUMP_FORMAT
+    #ifndef LV_FFMPEG_DUMP_FORMAT
+        #ifdef CONFIG_LV_FFMPEG_DUMP_FORMAT
+            #define LV_FFMPEG_DUMP_FORMAT CONFIG_LV_FFMPEG_DUMP_FORMAT
         #else
-            #define LV_FFMPEG_AV_DUMP_FORMAT 0
+            #define LV_FFMPEG_DUMP_FORMAT 0
         #endif
     #endif
 #endif
     #ifdef CONFIG_LV_USE_MONKEY
         #define LV_USE_MONKEY CONFIG_LV_USE_MONKEY
     #else
-        #define LV_USE_MONKEY   0
+        #define LV_USE_MONKEY 0
     #endif
 #endif
 
     #ifdef CONFIG_LV_USE_GRIDNAV
         #define LV_USE_GRIDNAV CONFIG_LV_USE_GRIDNAV
     #else
-        #define LV_USE_GRIDNAV  0
+        #define LV_USE_GRIDNAV 0
+    #endif
+#endif
+
+/*1: Enable lv_obj fragment*/
+#ifndef LV_USE_FRAGMENT
+    #ifdef CONFIG_LV_USE_FRAGMENT
+        #define LV_USE_FRAGMENT CONFIG_LV_USE_FRAGMENT
+    #else
+        #define LV_USE_FRAGMENT 0
+    #endif
+#endif
+
+/*1: Support using images as font in label or span widgets */
+#ifndef LV_USE_IMGFONT
+    #ifdef CONFIG_LV_USE_IMGFONT
+        #define LV_USE_IMGFONT CONFIG_LV_USE_IMGFONT
+    #else
+        #define LV_USE_IMGFONT 0
     #endif
 #endif
 
+/*1: Enable a published subscriber based messaging system */
+#ifndef LV_USE_MSG
+    #ifdef CONFIG_LV_USE_MSG
+        #define LV_USE_MSG CONFIG_LV_USE_MSG
+    #else
+        #define LV_USE_MSG 0
+    #endif
+#endif
+
+/*1: Enable Pinyin input method*/
+/*Requires: lv_keyboard*/
+#ifndef LV_USE_IME_PINYIN
+    #ifdef CONFIG_LV_USE_IME_PINYIN
+        #define LV_USE_IME_PINYIN CONFIG_LV_USE_IME_PINYIN
+    #else
+        #define LV_USE_IME_PINYIN 0
+    #endif
+#endif
+#if LV_USE_IME_PINYIN
+    /*1: Use default thesaurus*/
+    /*If you do not use the default thesaurus, be sure to use `lv_ime_pinyin` after setting the thesauruss*/
+    #ifndef LV_IME_PINYIN_USE_DEFAULT_DICT
+        #ifdef _LV_KCONFIG_PRESENT
+            #ifdef CONFIG_LV_IME_PINYIN_USE_DEFAULT_DICT
+                #define LV_IME_PINYIN_USE_DEFAULT_DICT CONFIG_LV_IME_PINYIN_USE_DEFAULT_DICT
+            #else
+                #define LV_IME_PINYIN_USE_DEFAULT_DICT 0
+            #endif
+        #else
+            #define LV_IME_PINYIN_USE_DEFAULT_DICT 1
+        #endif
+    #endif
+    /*Set the maximum number of candidate panels that can be displayed*/
+    /*This needs to be adjusted according to the size of the screen*/
+    #ifndef LV_IME_PINYIN_CAND_TEXT_NUM
+        #ifdef CONFIG_LV_IME_PINYIN_CAND_TEXT_NUM
+            #define LV_IME_PINYIN_CAND_TEXT_NUM CONFIG_LV_IME_PINYIN_CAND_TEXT_NUM
+        #else
+            #define LV_IME_PINYIN_CAND_TEXT_NUM 6
+        #endif
+    #endif
+
+    /*Use 9 key input(k9)*/
+    #ifndef LV_IME_PINYIN_USE_K9_MODE
+        #ifdef _LV_KCONFIG_PRESENT
+            #ifdef CONFIG_LV_IME_PINYIN_USE_K9_MODE
+                #define LV_IME_PINYIN_USE_K9_MODE CONFIG_LV_IME_PINYIN_USE_K9_MODE
+            #else
+                #define LV_IME_PINYIN_USE_K9_MODE 0
+            #endif
+        #else
+            #define LV_IME_PINYIN_USE_K9_MODE      1
+        #endif
+    #endif
+    #if LV_IME_PINYIN_USE_K9_MODE == 1
+        #ifndef LV_IME_PINYIN_K9_CAND_TEXT_NUM
+            #ifdef CONFIG_LV_IME_PINYIN_K9_CAND_TEXT_NUM
+                #define LV_IME_PINYIN_K9_CAND_TEXT_NUM CONFIG_LV_IME_PINYIN_K9_CAND_TEXT_NUM
+            #else
+                #define LV_IME_PINYIN_K9_CAND_TEXT_NUM 3
+            #endif
+        #endif
+    #endif // LV_IME_PINYIN_USE_K9_MODE
+#endif
+
 /*==================
 * EXAMPLES
 *==================*/
     #ifdef CONFIG_LV_USE_DEMO_WIDGETS
         #define LV_USE_DEMO_WIDGETS CONFIG_LV_USE_DEMO_WIDGETS
     #else
-        #define LV_USE_DEMO_WIDGETS        0
+        #define LV_USE_DEMO_WIDGETS 0
     #endif
 #endif
 #if LV_USE_DEMO_WIDGETS
     #ifdef CONFIG_LV_DEMO_WIDGETS_SLIDESHOW
         #define LV_DEMO_WIDGETS_SLIDESHOW CONFIG_LV_DEMO_WIDGETS_SLIDESHOW
     #else
-        #define LV_DEMO_WIDGETS_SLIDESHOW  0
+        #define LV_DEMO_WIDGETS_SLIDESHOW 0
     #endif
 #endif
 #endif
     #ifdef CONFIG_LV_USE_DEMO_KEYPAD_AND_ENCODER
         #define LV_USE_DEMO_KEYPAD_AND_ENCODER CONFIG_LV_USE_DEMO_KEYPAD_AND_ENCODER
     #else
-        #define LV_USE_DEMO_KEYPAD_AND_ENCODER     0
+        #define LV_USE_DEMO_KEYPAD_AND_ENCODER 0
     #endif
 #endif
 
     #ifdef CONFIG_LV_USE_DEMO_BENCHMARK
         #define LV_USE_DEMO_BENCHMARK CONFIG_LV_USE_DEMO_BENCHMARK
     #else
-        #define LV_USE_DEMO_BENCHMARK   0
+        #define LV_USE_DEMO_BENCHMARK 0
     #endif
 #endif
+#if LV_USE_DEMO_BENCHMARK
+/*Use RGB565A8 images with 16 bit color depth instead of ARGB8565*/
+#ifndef LV_DEMO_BENCHMARK_RGB565A8
+    #ifdef CONFIG_LV_DEMO_BENCHMARK_RGB565A8
+        #define LV_DEMO_BENCHMARK_RGB565A8 CONFIG_LV_DEMO_BENCHMARK_RGB565A8
+    #else
+        #define LV_DEMO_BENCHMARK_RGB565A8 0
+    #endif
+#endif
+#endif
 
 /*Stress test for LVGL*/
 #ifndef LV_USE_DEMO_STRESS
     #ifdef CONFIG_LV_USE_DEMO_STRESS
         #define LV_USE_DEMO_STRESS CONFIG_LV_USE_DEMO_STRESS
     #else
-        #define LV_USE_DEMO_STRESS      0
+        #define LV_USE_DEMO_STRESS 0
     #endif
 #endif
 
     #ifdef CONFIG_LV_USE_DEMO_MUSIC
         #define LV_USE_DEMO_MUSIC CONFIG_LV_USE_DEMO_MUSIC
     #else
-        #define LV_USE_DEMO_MUSIC       0
+        #define LV_USE_DEMO_MUSIC 0
     #endif
 #endif
 #if LV_USE_DEMO_MUSIC
-#ifndef LV_DEMO_MUSIC_SQUARE
-    #ifdef CONFIG_LV_DEMO_MUSIC_SQUARE
-        #define LV_DEMO_MUSIC_SQUARE CONFIG_LV_DEMO_MUSIC_SQUARE
-    #else
-        #define LV_DEMO_MUSIC_SQUARE       0
+    #ifndef LV_DEMO_MUSIC_SQUARE
+        #ifdef CONFIG_LV_DEMO_MUSIC_SQUARE
+            #define LV_DEMO_MUSIC_SQUARE CONFIG_LV_DEMO_MUSIC_SQUARE
+        #else
+            #define LV_DEMO_MUSIC_SQUARE    0
+        #endif
     #endif
-#endif
-#ifndef LV_DEMO_MUSIC_LANDSCAPE
-    #ifdef CONFIG_LV_DEMO_MUSIC_LANDSCAPE
-        #define LV_DEMO_MUSIC_LANDSCAPE CONFIG_LV_DEMO_MUSIC_LANDSCAPE
-    #else
-        #define LV_DEMO_MUSIC_LANDSCAPE    0
+    #ifndef LV_DEMO_MUSIC_LANDSCAPE
+        #ifdef CONFIG_LV_DEMO_MUSIC_LANDSCAPE
+            #define LV_DEMO_MUSIC_LANDSCAPE CONFIG_LV_DEMO_MUSIC_LANDSCAPE
+        #else
+            #define LV_DEMO_MUSIC_LANDSCAPE 0
+        #endif
     #endif
-#endif
-#ifndef LV_DEMO_MUSIC_ROUND
-    #ifdef CONFIG_LV_DEMO_MUSIC_ROUND
-        #define LV_DEMO_MUSIC_ROUND CONFIG_LV_DEMO_MUSIC_ROUND
-    #else
-        #define LV_DEMO_MUSIC_ROUND        0
+    #ifndef LV_DEMO_MUSIC_ROUND
+        #ifdef CONFIG_LV_DEMO_MUSIC_ROUND
+            #define LV_DEMO_MUSIC_ROUND CONFIG_LV_DEMO_MUSIC_ROUND
+        #else
+            #define LV_DEMO_MUSIC_ROUND     0
+        #endif
     #endif
-#endif
-#ifndef LV_DEMO_MUSIC_LARGE
-    #ifdef CONFIG_LV_DEMO_MUSIC_LARGE
-        #define LV_DEMO_MUSIC_LARGE CONFIG_LV_DEMO_MUSIC_LARGE
-    #else
-        #define LV_DEMO_MUSIC_LARGE        0
+    #ifndef LV_DEMO_MUSIC_LARGE
+        #ifdef CONFIG_LV_DEMO_MUSIC_LARGE
+            #define LV_DEMO_MUSIC_LARGE CONFIG_LV_DEMO_MUSIC_LARGE
+        #else
+            #define LV_DEMO_MUSIC_LARGE     0
+        #endif
     #endif
-#endif
-#ifndef LV_DEMO_MUSIC_AUTO_PLAY
-    #ifdef CONFIG_LV_DEMO_MUSIC_AUTO_PLAY
-        #define LV_DEMO_MUSIC_AUTO_PLAY CONFIG_LV_DEMO_MUSIC_AUTO_PLAY
-    #else
-        #define LV_DEMO_MUSIC_AUTO_PLAY    0
+    #ifndef LV_DEMO_MUSIC_AUTO_PLAY
+        #ifdef CONFIG_LV_DEMO_MUSIC_AUTO_PLAY
+            #define LV_DEMO_MUSIC_AUTO_PLAY CONFIG_LV_DEMO_MUSIC_AUTO_PLAY
+        #else
+            #define LV_DEMO_MUSIC_AUTO_PLAY 0
+        #endif
     #endif
 #endif
-#endif
 
 
 
index 7424789..7742fe7 100644 (file)
@@ -41,6 +41,50 @@ extern "C" {
 #  define CONFIG_LV_MEM_SIZE (CONFIG_LV_MEM_SIZE_KILOBYTES * 1024U)
 #endif
 
+/*------------------
+ * MONITOR POSITION
+ *-----------------*/
+
+#ifdef CONFIG_LV_PERF_MONITOR_ALIGN_TOP_LEFT
+#  define CONFIG_LV_USE_PERF_MONITOR_POS LV_ALIGN_TOP_LEFT
+#elif defined(CONFIG_LV_USE_PERF_MONITOR_ALIGN_TOP_MID)
+#  define CONFIG_LV_USE_PERF_MONITOR_POS LV_ALIGN_TOP_MID
+#elif defined(CONFIG_LV_PERF_MONITOR_ALIGN_TOP_RIGHT)
+#  define CONFIG_LV_USE_PERF_MONITOR_POS LV_ALIGN_TOP_RIGHT
+#elif defined(CONFIG_LV_PERF_MONITOR_ALIGN_BOTTOM_LEFT)
+#  define CONFIG_LV_USE_PERF_MONITOR_POS LV_ALIGN_BOTTOM_LEFT
+#elif defined(CONFIG_LV_PERF_MONITOR_ALIGN_BOTTOM_MID)
+#  define CONFIG_LV_USE_PERF_MONITOR_POS LV_ALIGN_BOTTOM_MID
+#elif defined(CONFIG_LV_PERF_MONITOR_ALIGN_BOTTOM_RIGHT)
+#  define CONFIG_LV_USE_PERF_MONITOR_POS LV_ALIGN_BOTTOM_RIGHT
+#elif defined(CONFIG_LV_PERF_MONITOR_ALIGN_LEFT_MID)
+#  define CONFIG_LV_USE_PERF_MONITOR_POS LV_ALIGN_LEFT_MID
+#elif defined(CONFIG_LV_PERF_MONITOR_ALIGN_RIGHT_MID)
+#  define CONFIG_LV_USE_PERF_MONITOR_POS LV_ALIGN_RIGHT_MID
+#elif defined(CONFIG_LV_PERF_MONITOR_ALIGN_CENTER)
+#  define CONFIG_LV_USE_PERF_MONITOR_POS LV_ALIGN_CENTER
+#endif
+
+#ifdef CONFIG_LV_MEM_MONITOR_ALIGN_TOP_LEFT
+#  define CONFIG_LV_USE_MEM_MONITOR_POS LV_ALIGN_TOP_LEFT
+#elif defined(CONFIG_LV_USE_MEM_MONITOR_ALIGN_TOP_MID)
+#  define CONFIG_LV_USE_MEM_MONITOR_POS LV_ALIGN_TOP_MID
+#elif defined(CONFIG_LV_MEM_MONITOR_ALIGN_TOP_RIGHT)
+#  define CONFIG_LV_USE_MEM_MONITOR_POS LV_ALIGN_TOP_RIGHT
+#elif defined(CONFIG_LV_MEM_MONITOR_ALIGN_BOTTOM_LEFT)
+#  define CONFIG_LV_USE_MEM_MONITOR_POS LV_ALIGN_BOTTOM_LEFT
+#elif defined(CONFIG_LV_MEM_MONITOR_ALIGN_BOTTOM_MID)
+#  define CONFIG_LV_USE_MEM_MONITOR_POS LV_ALIGN_BOTTOM_MID
+#elif defined(CONFIG_LV_MEM_MONITOR_ALIGN_BOTTOM_RIGHT)
+#  define CONFIG_LV_USE_MEM_MONITOR_POS LV_ALIGN_BOTTOM_RIGHT
+#elif defined(CONFIG_LV_MEM_MONITOR_ALIGN_LEFT_MID)
+#  define CONFIG_LV_USE_MEM_MONITOR_POS LV_ALIGN_LEFT_MID
+#elif defined(CONFIG_LV_MEM_MONITOR_ALIGN_RIGHT_MID)
+#  define CONFIG_LV_USE_MEM_MONITOR_POS LV_ALIGN_RIGHT_MID
+#elif defined(CONFIG_LV_MEM_MONITOR_ALIGN_CENTER)
+#  define CONFIG_LV_USE_MEM_MONITOR_POS LV_ALIGN_CENTER
+#endif
+
 /********************
  * FONT SELECTION
  *******************/
@@ -131,50 +175,6 @@ extern "C" {
 #  define CONFIG_LV_BIDI_BASE_DIR_DEF LV_BASE_DIR_AUTO
 #endif
 
-/*------------------
- * MONITOR POSITION
- *-----------------*/
-
-#ifdef CONFIG_LV_PERF_MONITOR_ALIGN_TOP_LEFT
-#  define CONFIG_LV_USE_PERF_MONITOR_POS LV_ALIGN_TOP_LEFT
-#elif defined(CONFIG_LV_USE_PERF_MONITOR_ALIGN_TOP_MID)
-#  define CONFIG_LV_USE_PERF_MONITOR_POS LV_ALIGN_TOP_MID
-#elif defined(CONFIG_LV_PERF_MONITOR_ALIGN_TOP_RIGHT)
-#  define CONFIG_LV_USE_PERF_MONITOR_POS LV_ALIGN_TOP_RIGHT
-#elif defined(CONFIG_LV_PERF_MONITOR_ALIGN_BOTTOM_LEFT)
-#  define CONFIG_LV_USE_PERF_MONITOR_POS LV_ALIGN_BOTTOM_LEFT
-#elif defined(CONFIG_LV_PERF_MONITOR_ALIGN_BOTTOM_MID)
-#  define CONFIG_LV_USE_PERF_MONITOR_POS LV_ALIGN_BOTTOM_MID
-#elif defined(CONFIG_LV_PERF_MONITOR_ALIGN_BOTTOM_RIGHT)
-#  define CONFIG_LV_USE_PERF_MONITOR_POS LV_ALIGN_BOTTOM_RIGHT
-#elif defined(CONFIG_LV_PERF_MONITOR_ALIGN_LEFT_MID)
-#  define CONFIG_LV_USE_PERF_MONITOR_POS LV_ALIGN_LEFT_MID
-#elif defined(CONFIG_LV_PERF_MONITOR_ALIGN_RIGHT_MID)
-#  define CONFIG_LV_USE_PERF_MONITOR_POS LV_ALIGN_RIGHT_MID
-#elif defined(CONFIG_LV_PERF_MONITOR_ALIGN_CENTER)
-#  define CONFIG_LV_USE_PERF_MONITOR_POS LV_ALIGN_CENTER
-#endif
-
-#ifdef CONFIG_LV_MEM_MONITOR_ALIGN_TOP_LEFT
-#  define CONFIG_LV_USE_MEM_MONITOR_POS LV_ALIGN_TOP_LEFT
-#elif defined(CONFIG_LV_USE_MEM_MONITOR_ALIGN_TOP_MID)
-#  define CONFIG_LV_USE_MEM_MONITOR_POS LV_ALIGN_TOP_MID
-#elif defined(CONFIG_LV_MEM_MONITOR_ALIGN_TOP_RIGHT)
-#  define CONFIG_LV_USE_MEM_MONITOR_POS LV_ALIGN_TOP_RIGHT
-#elif defined(CONFIG_LV_MEM_MONITOR_ALIGN_BOTTOM_LEFT)
-#  define CONFIG_LV_USE_MEM_MONITOR_POS LV_ALIGN_BOTTOM_LEFT
-#elif defined(CONFIG_LV_MEM_MONITOR_ALIGN_BOTTOM_MID)
-#  define CONFIG_LV_USE_MEM_MONITOR_POS LV_ALIGN_BOTTOM_MID
-#elif defined(CONFIG_LV_MEM_MONITOR_ALIGN_BOTTOM_RIGHT)
-#  define CONFIG_LV_USE_MEM_MONITOR_POS LV_ALIGN_BOTTOM_RIGHT
-#elif defined(CONFIG_LV_MEM_MONITOR_ALIGN_LEFT_MID)
-#  define CONFIG_LV_USE_MEM_MONITOR_POS LV_ALIGN_LEFT_MID
-#elif defined(CONFIG_LV_MEM_MONITOR_ALIGN_RIGHT_MID)
-#  define CONFIG_LV_USE_MEM_MONITOR_POS LV_ALIGN_RIGHT_MID
-#elif defined(CONFIG_LV_MEM_MONITOR_ALIGN_CENTER)
-#  define CONFIG_LV_USE_MEM_MONITOR_POS LV_ALIGN_CENTER
-#endif
-
 #ifdef __cplusplus
 } /*extern "C"*/
 #endif
index ecb9584..4e4253a 100644 (file)
@@ -147,6 +147,7 @@ bool lv_anim_del(void * var, lv_anim_exec_xcb_t exec_cb)
 
         if((a->var == var || var == NULL) && (a->exec_cb == exec_cb || exec_cb == NULL)) {
             _lv_ll_remove(&LV_GC_ROOT(_lv_anim_ll), a);
+            if(a->deleted_cb != NULL) a->deleted_cb(a);
             lv_mem_free(a);
             anim_mark_list_change(); /*Read by `anim_timer`. It need to know if a delete occurred in
                                        the linked list*/
@@ -177,6 +178,11 @@ lv_anim_t * lv_anim_get(void * var, lv_anim_exec_xcb_t exec_cb)
     return NULL;
 }
 
+struct _lv_timer_t * lv_anim_get_timer(void)
+{
+    return _lv_anim_tmr;
+}
+
 uint16_t lv_anim_count_running(void)
 {
     uint16_t cnt = 0;
@@ -429,6 +435,7 @@ static void anim_ready_handler(lv_anim_t * a)
 
         /*Call the callback function at the end*/
         if(a->ready_cb != NULL) a->ready_cb(a);
+        if(a->deleted_cb != NULL) a->deleted_cb(a);
         lv_mem_free(a);
     }
     /*If the animation is not deleted then restart it*/
index 18317eb..faef727 100644 (file)
@@ -40,6 +40,7 @@ typedef enum {
 } lv_anim_enable_t;
 
 struct _lv_anim_t;
+struct _lv_timer_t;
 
 /** Get the current value during an animation*/
 typedef int32_t (*lv_anim_path_cb_t)(const struct _lv_anim_t *);
@@ -65,12 +66,16 @@ typedef void (*lv_anim_start_cb_t)(struct _lv_anim_t *);
 /** Callback used when the animation values are relative to get the current value*/
 typedef int32_t (*lv_anim_get_value_cb_t)(struct _lv_anim_t *);
 
+/** Callback used when the animation is deleted*/
+typedef void (*lv_anim_deleted_cb_t)(struct _lv_anim_t *);
+
 /** Describes an animation*/
 typedef struct _lv_anim_t {
     void * var;                          /**<Variable to animate*/
     lv_anim_exec_xcb_t exec_cb;          /**< Function to execute to animate*/
     lv_anim_start_cb_t start_cb;         /**< Call it when the animation is starts (considering `delay`)*/
     lv_anim_ready_cb_t ready_cb;         /**< Call it when the animation is ready*/
+    lv_anim_deleted_cb_t deleted_cb;     /**< Call it when the animation is deleted*/
     lv_anim_get_value_cb_t get_value_cb; /**< Get the current value in relative mode*/
 #if LV_USE_USER_DATA
     void * user_data; /**< Custom user data*/
@@ -224,6 +229,16 @@ static inline void lv_anim_set_ready_cb(lv_anim_t * a, lv_anim_ready_cb_t ready_
     a->ready_cb = ready_cb;
 }
 
+/**
+ * Set a function call when the animation is deleted.
+ * @param a         pointer to an initialized `lv_anim_t` variable
+ * @param deleted_cb  a function call when the animation is deleted
+ */
+static inline void lv_anim_set_deleted_cb(lv_anim_t * a, lv_anim_deleted_cb_t deleted_cb)
+{
+    a->deleted_cb = deleted_cb;
+}
+
 /**
  * Make the animation to play back to when the forward direction is ready
  * @param a         pointer to an initialized `lv_anim_t` variable
@@ -345,6 +360,12 @@ void lv_anim_del_all(void);
  */
 lv_anim_t * lv_anim_get(void * var, lv_anim_exec_xcb_t exec_cb);
 
+/**
+ * Get global animation refresher timer.
+ * @return pointer to the animation refresher timer.
+ */
+struct _lv_timer_t * lv_anim_get_timer(void);
+
 /**
  * Delete an animation by getting the animated variable from `a`.
  * Only animations with `exec_cb` will be deleted.
index 7c66a9b..c0221f7 100644 (file)
@@ -456,6 +456,59 @@ void lv_area_align(const lv_area_t * base, lv_area_t * to_align, lv_align_t alig
     to_align->y2 = to_align->y1 + h - 1;
 }
 
+#define _LV_TRANSFORM_TRIGO_SHIFT 10
+void lv_point_transform(lv_point_t * p, int32_t angle, int32_t zoom, const lv_point_t * pivot)
+{
+    if(angle == 0 && zoom == 256) {
+        return;
+    }
+
+    p->x -= pivot->x;
+    p->y -= pivot->y;
+
+    if(angle == 0) {
+        p->x = (((int32_t)(p->x) * zoom) >> 8) + pivot->x;
+        p->y = (((int32_t)(p->y) * zoom) >> 8) + pivot->y;
+        return;
+    }
+
+    static int32_t angle_prev = INT32_MIN;
+    static int32_t sinma;
+    static int32_t cosma;
+    if(angle_prev != angle) {
+        int32_t angle_limited = angle;
+        if(angle_limited > 3600) angle_limited -= 3600;
+        if(angle_limited < 0) angle_limited += 3600;
+
+        int32_t angle_low = angle_limited / 10;
+        int32_t angle_high = angle_low + 1;
+        int32_t angle_rem = angle_limited  - (angle_low * 10);
+
+        int32_t s1 = lv_trigo_sin(angle_low);
+        int32_t s2 = lv_trigo_sin(angle_high);
+
+        int32_t c1 = lv_trigo_sin(angle_low + 90);
+        int32_t c2 = lv_trigo_sin(angle_high + 90);
+
+        sinma = (s1 * (10 - angle_rem) + s2 * angle_rem) / 10;
+        cosma = (c1 * (10 - angle_rem) + c2 * angle_rem) / 10;
+        sinma = sinma >> (LV_TRIGO_SHIFT - _LV_TRANSFORM_TRIGO_SHIFT);
+        cosma = cosma >> (LV_TRIGO_SHIFT - _LV_TRANSFORM_TRIGO_SHIFT);
+        angle_prev = angle;
+    }
+    int32_t x = p->x;
+    int32_t y = p->y;
+    if(zoom == 256) {
+        p->x = ((cosma * x - sinma * y) >> _LV_TRANSFORM_TRIGO_SHIFT) + pivot->x;
+        p->y = ((sinma * x + cosma * y) >> _LV_TRANSFORM_TRIGO_SHIFT) + pivot->y;
+    }
+    else {
+        p->x = (((cosma * x - sinma * y) * zoom) >> (_LV_TRANSFORM_TRIGO_SHIFT + 8)) + pivot->x;
+        p->y = (((sinma * x + cosma * y) * zoom) >> (_LV_TRANSFORM_TRIGO_SHIFT + 8)) + pivot->y;
+    }
+}
+
+
 /**********************
  *   STATIC FUNCTIONS
  **********************/
index 542d86b..137931a 100644 (file)
@@ -236,6 +236,8 @@ bool _lv_area_is_equal(const lv_area_t * a, const lv_area_t * b);
  */
 void lv_area_align(const lv_area_t * base, lv_area_t * to_align, lv_align_t align, lv_coord_t ofs_x, lv_coord_t ofs_y);
 
+void lv_point_transform(lv_point_t * p, int32_t angle, int32_t zoom, const lv_point_t * pivot);
+
 /**********************
  *      MACROS
  **********************/
index 45a0431..c4941e8 100644 (file)
@@ -65,6 +65,33 @@ lv_res_t lv_async_call(lv_async_cb_t async_xcb, void * user_data)
     return LV_RES_OK;
 }
 
+lv_res_t lv_async_call_cancel(lv_async_cb_t async_xcb, void * user_data)
+{
+    lv_timer_t * timer = lv_timer_get_next(NULL);
+    lv_res_t res = LV_RES_INV;
+
+    while(timer != NULL) {
+        /*Find the next timer node*/
+        lv_timer_t * timer_next = lv_timer_get_next(timer);
+
+        /*Find async timer callback*/
+        if(timer->timer_cb == lv_async_timer_cb) {
+            lv_async_info_t * info = (lv_async_info_t *)timer->user_data;
+
+            /*Match user function callback and user data*/
+            if(info->cb == async_xcb && info->user_data == user_data) {
+                lv_timer_del(timer);
+                lv_mem_free(info);
+                res = LV_RES_OK;
+            }
+        }
+
+        timer = timer_next;
+    }
+
+    return res;
+}
+
 /**********************
  *   STATIC FUNCTIONS
  **********************/
index 3e6cb63..4ad5756 100644 (file)
@@ -43,6 +43,13 @@ typedef void (*lv_async_cb_t)(void *);
  */
 lv_res_t lv_async_call(lv_async_cb_t async_xcb, void * user_data);
 
+/**
+ * Cancel an asynchronous function call
+ * @param async_xcb a callback which is the task itself.
+ * @param user_data custom parameter
+ */
+lv_res_t lv_async_call_cancel(lv_async_cb_t async_xcb, void * user_data);
+
 /**********************
  *      MACROS
  **********************/
index b207f9d..70af1c4 100644 (file)
@@ -339,7 +339,7 @@ static uint32_t lv_bidi_get_next_paragraph(const char * txt)
 
 /**
  * Get the direction of a character
- * @param letter an Unicode character
+ * @param letter a Unicode character
  * @return `LV_BASE_DIR_RTL/LTR/WEAK/NEUTRAL`
  */
 static lv_base_dir_t lv_bidi_get_letter_dir(uint32_t letter)
@@ -352,7 +352,7 @@ static lv_base_dir_t lv_bidi_get_letter_dir(uint32_t letter)
 }
 /**
  * Tell whether a character is weak or not
- * @param letter an Unicode character
+ * @param letter a Unicode character
  * @return true/false
  */
 static bool lv_bidi_letter_is_weak(uint32_t letter)
@@ -371,12 +371,11 @@ static bool lv_bidi_letter_is_weak(uint32_t letter)
 }
 /**
  * Tell whether a character is RTL or not
- * @param letter an Unicode character
+ * @param letter a Unicode character
  * @return true/false
  */
 static bool lv_bidi_letter_is_rtl(uint32_t letter)
 {
-    if(letter >= 0x5d0 && letter <= 0x5ea) return true;
     if(letter == 0x202E) return true;               /*Unicode of LV_BIDI_RLO*/
 
     /*Check for Persian and Arabic characters [https://en.wikipedia.org/wiki/Arabic_script_in_Unicode]*/
@@ -384,12 +383,16 @@ static bool lv_bidi_letter_is_rtl(uint32_t letter)
     if(letter >= 0xFB50 && letter <= 0xFDFF) return true;
     if(letter >= 0xFE70 && letter <= 0xFEFF) return true;
 
+    /*Check for Hebrew characters [https://en.wikipedia.org/wiki/Unicode_and_HTML_for_the_Hebrew_alphabet]*/
+    if(letter >= 0x590 && letter <= 0x5FF) return true;
+    if(letter >= 0xFB1D && letter <= 0xFB4F) return true;
+
     return false;
 }
 
 /**
  * Tell whether a character is neutral or not
- * @param letter an Unicode character
+ * @param letter a Unicode character
  * @return true/false
  */
 static bool lv_bidi_letter_is_neutral(uint32_t letter)
index 37445cc..5ff7b1a 100644 (file)
@@ -23,10 +23,6 @@ extern "C" {
 #error "LV_COLOR_DEPTH 24 is deprecated. Use LV_COLOR_DEPTH 32 instead (lv_conf.h)"
 #endif
 
-#if LV_COLOR_DEPTH != 32 && LV_COLOR_SCREEN_TRANSP != 0
-#error "LV_COLOR_SCREEN_TRANSP requires LV_COLOR_DEPTH == 32. Set it in lv_conf.h"
-#endif
-
 #if LV_COLOR_DEPTH != 16 && LV_COLOR_16_SWAP != 0
 #error "LV_COLOR_16_SWAP requires LV_COLOR_DEPTH == 16. Set it in lv_conf.h"
 #endif
@@ -444,14 +440,21 @@ LV_ATTRIBUTE_FAST_MEM static inline lv_color_t lv_color_mix(lv_color_t c1, lv_co
 {
     lv_color_t ret;
 
-#if LV_COLOR_DEPTH == 16 && LV_COLOR_16_SWAP == 0
+#if LV_COLOR_DEPTH == 16 && LV_COLOR_MIX_ROUND_OFS == 0
+#if LV_COLOR_16_SWAP == 1
+    c1.full = c1.full << 8 | c1.full >> 8;
+    c2.full = c2.full << 8 | c2.full >> 8;
+#endif
     /*Source: https://stackoverflow.com/a/50012418/1999969*/
-    mix = (mix + 4) >> 3;
+    mix = (uint32_t)((uint32_t)mix + 4) >> 3;
     uint32_t bg = (uint32_t)((uint32_t)c2.full | ((uint32_t)c2.full << 16)) &
                   0x7E0F81F; /*0b00000111111000001111100000011111*/
     uint32_t fg = (uint32_t)((uint32_t)c1.full | ((uint32_t)c1.full << 16)) & 0x7E0F81F;
     uint32_t result = ((((fg - bg) * mix) >> 5) + bg) & 0x7E0F81F;
     ret.full = (uint16_t)((result >> 16) | result);
+#if LV_COLOR_16_SWAP == 1
+    ret.full = ret.full << 8 | ret.full >> 8;
+#endif
 #elif LV_COLOR_DEPTH != 1
     /*LV_COLOR_DEPTH == 8, 16 or 32*/
     LV_COLOR_SET_R(ret, LV_UDIV255((uint16_t)LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) *
@@ -676,7 +679,7 @@ lv_color_hsv_t lv_color_rgb_to_hsv(uint8_t r8, uint8_t g8, uint8_t b8);
 lv_color_hsv_t lv_color_to_hsv(lv_color_t color);
 
 /**
- * Just a wrapper around LV_COLOR_CHROMA_KEY because it might be more convenient to use a function is some cases
+ * Just a wrapper around LV_COLOR_CHROMA_KEY because it might be more convenient to use a function in some cases
  * @return LV_COLOR_CHROMA_KEY
  */
 static inline lv_color_t lv_color_chroma_key(void)
index 5a7afc5..52f3ce0 100644 (file)
@@ -95,6 +95,8 @@ lv_fs_res_t lv_fs_open(lv_fs_file_t * file_p, const char * path, lv_fs_mode_t mo
         file_p->cache = lv_mem_alloc(sizeof(lv_fs_file_cache_t));
         LV_ASSERT_MALLOC(file_p->cache);
         lv_memset_00(file_p->cache, sizeof(lv_fs_file_cache_t));
+        file_p->cache->start = UINT32_MAX;  /*Set an invalid range by default*/
+        file_p->cache->end = UINT32_MAX - 1;
     }
 
     return LV_FS_RES_OK;
@@ -138,40 +140,38 @@ static lv_fs_res_t lv_fs_read_cached(lv_fs_file_t * file_p, char * buf, uint32_t
 
     if(start <= file_position && file_position < end) {
         /* Data can be read from cache buffer */
-
         uint16_t buffer_offset = file_position - start;
-        uint16_t buffer_remaining_length = buffer_size - buffer_offset;
+        uint32_t buffer_remaining_length = LV_MIN((uint32_t)buffer_size - buffer_offset, (uint32_t)end - file_position);
 
         if(btr <= buffer_remaining_length) {
             /*Data is in cache buffer, and buffer end not reached, no need to read from FS*/
             lv_memcpy(buf, buffer + buffer_offset, btr);
+            *br = btr;
         }
         else {
             /*First part of data is in cache buffer, but we need to read rest of data from FS*/
             lv_memcpy(buf, buffer + buffer_offset, buffer_remaining_length);
 
+            uint32_t bytes_read_to_buffer = 0;
             if(btr > buffer_size) {
                 /*If remaining data chuck is bigger than buffer size, then do not use cache, instead read it directly from FS*/
                 res = file_p->drv->read_cb(file_p->drv, file_p->file_d, (void *)(buf + buffer_remaining_length),
-                                           btr - buffer_remaining_length, br);
+                                           btr - buffer_remaining_length, &bytes_read_to_buffer);
             }
             else {
                 /*If remaining data chunk is smaller than buffer size, then read into cache buffer*/
-                uint32_t bytes_read_to_buffer = 0;
-
-                /*Read into cache buffer:*/
                 res = file_p->drv->read_cb(file_p->drv, file_p->file_d, (void *)buffer, buffer_size, &bytes_read_to_buffer);
-                file_p->cache->start = file_p->cache->end + 1;
+                file_p->cache->start = file_p->cache->end;
                 file_p->cache->end = file_p->cache->start + bytes_read_to_buffer;
 
-                uint16_t data_chunk_remaining = btr - buffer_remaining_length;
-                memcpy(buf + buffer_remaining_length, buffer, data_chunk_remaining);
+                uint16_t data_chunk_remaining = LV_MIN(btr - buffer_remaining_length, bytes_read_to_buffer);
+                lv_memcpy(buf + buffer_remaining_length, buffer, data_chunk_remaining);
             }
+            *br = LV_MIN(buffer_remaining_length + bytes_read_to_buffer, btr);
         }
     }
     else {
         /*Data is not in cache buffer*/
-
         if(btr > buffer_size) {
             /*If bigger data is requested, then do not use cache, instead read it directly*/
             res = file_p->drv->read_cb(file_p->drv, file_p->file_d, (void *)buf, btr, br);
@@ -189,13 +189,14 @@ static lv_fs_res_t lv_fs_read_cached(lv_fs_file_t * file_p, char * buf, uint32_t
             file_p->cache->start = file_position;
             file_p->cache->end = file_p->cache->start + bytes_read_to_buffer;
 
-            memcpy(buf, buffer, btr);
+            *br = LV_MIN(btr, bytes_read_to_buffer);
+            lv_memcpy(buf, buffer, *br);
+
         }
     }
 
     if(res == LV_FS_RES_OK) {
-        *br = btr;
-        file_p->cache->file_position += btr;
+        file_p->cache->file_position += *br;
     }
 
     return res;
index 0a9b241..9f65e1b 100644 (file)
@@ -176,8 +176,8 @@ lv_fs_res_t lv_fs_read(lv_fs_file_t * file_p, void * buf, uint32_t btr, uint32_t
  * Write into a file
  * @param file_p    pointer to a lv_fs_file_t variable
  * @param buf       pointer to a buffer with the bytes to write
- * @param btr       Bytes To Write
- * @param br        the number of real written bytes (Bytes Written). NULL if unused.
+ * @param btw       Bytes To Write
+ * @param bw        the number of real written bytes (Bytes Written). NULL if unused.
  * @return          LV_FS_RES_OK or any error from lv_fs_res_t enum
  */
 lv_fs_res_t lv_fs_write(lv_fs_file_t * file_p, const void * buf, uint32_t btw, uint32_t * bw);
index 7551252..9d7d1bb 100644 (file)
@@ -59,7 +59,8 @@ extern "C" {
     LV_DISPATCH(f, void * , _lv_theme_default_styles)                                                  \
     LV_DISPATCH(f, void * , _lv_theme_basic_styles)                                                  \
     LV_DISPATCH_COND(f, uint8_t *, _lv_font_decompr_buf, LV_USE_FONT_COMPRESSED, 1)                    \
-    LV_DISPATCH(f, uint8_t * , _lv_grad_cache_mem)
+    LV_DISPATCH(f, uint8_t * , _lv_grad_cache_mem)                                                     \
+    LV_DISPATCH(f, uint8_t * , _lv_style_custom_prop_flag_lookup_table)
 
 #define LV_DEFINE_ROOT(root_type, root_name) root_type root_name;
 #define LV_ROOTS LV_ITERATE_ROOTS(LV_DEFINE_ROOT)
index c84647c..e758231 100644 (file)
@@ -286,7 +286,7 @@ void * _lv_ll_get_next(const lv_ll_t * ll_p, const void * n_act)
 }
 
 /**
- * Return with the pointer of the previous node after 'n_act'
+ * Return with the pointer of the previous node before 'n_act'
  * @param ll_p pointer to linked list
  * @param n_act pointer a node
  * @return pointer to the previous node
index 63441d6..d79463f 100644 (file)
@@ -112,12 +112,29 @@ void _lv_log_add(lv_log_level_t level, const char * file, int line, const char *
     }
 }
 
-void lv_log(const char * buf)
+void lv_log(const char * format, ...)
 {
+    if(LV_LOG_LEVEL >= LV_LOG_LEVEL_NONE) return; /* disable log */
+
+    va_list args;
+    va_start(args, format);
+
 #if LV_LOG_PRINTF
-    puts(buf);
+    vprintf(format, args);
+#else
+    if(custom_print_cb) {
+        char buf[512];
+#if LV_SPRINTF_CUSTOM
+        lv_vsnprintf(buf, sizeof(buf), format, args);
+#else
+        lv_vaformat_t vaf = {format, &args};
+        lv_snprintf(buf, sizeof(buf), "%pV", (void *)&vaf);
+#endif
+        custom_print_cb(buf);
+    }
 #endif
-    if(custom_print_cb) custom_print_cb(buf);
+
+    va_end(args);
 }
 
 /**********************
index 41dce3b..9a00993 100644 (file)
@@ -24,11 +24,6 @@ extern "C" {
 
 /*Possible log level. For compatibility declare it independently from `LV_USE_LOG`*/
 
-#include "helios_debug.h"
-
-#define LV_LOG_USER1(msg, ...)      custom_log(lv_helios, msg, ##__VA_ARGS__)
-
-
 #define LV_LOG_LEVEL_TRACE 0 /**< A lot of logs to give detailed information*/
 #define LV_LOG_LEVEL_INFO  1 /**< Log important events*/
 #define LV_LOG_LEVEL_WARN  2 /**< Log if something unwanted happened but didn't caused problem*/
@@ -71,9 +66,10 @@ void lv_log_register_print_cb(lv_log_print_g_cb_t print_cb);
 /**
  * Print a log message via `printf` if enabled with `LV_LOG_PRINTF` in `lv_conf.h`
  * and/or a print callback if registered with `lv_log_register_print_cb`
- * @param buf       a string message to print
+ * @param format    printf-like format string
+ * @param ...       parameters for `format`
  */
-void lv_log(const char * buf);
+void lv_log(const char * format, ...) LV_FORMAT_ATTRIBUTE(1, 2);
 
 /**
  * Add a log
@@ -92,7 +88,7 @@ void _lv_log_add(lv_log_level_t level, const char * file, int line,
  **********************/
 #ifndef LV_LOG_TRACE
 #  if LV_LOG_LEVEL <= LV_LOG_LEVEL_TRACE
-#    define LV_LOG_TRACE LV_LOG_USER1
+#    define LV_LOG_TRACE(...) _lv_log_add(LV_LOG_LEVEL_TRACE, __FILE__, __LINE__, __func__, __VA_ARGS__)
 #  else
 #    define LV_LOG_TRACE(...) do {}while(0)
 #  endif
@@ -100,7 +96,7 @@ void _lv_log_add(lv_log_level_t level, const char * file, int line,
 
 #ifndef LV_LOG_INFO
 #  if LV_LOG_LEVEL <= LV_LOG_LEVEL_INFO
-#    define LV_LOG_INFO LV_LOG_USER1
+#    define LV_LOG_INFO(...) _lv_log_add(LV_LOG_LEVEL_INFO, __FILE__, __LINE__, __func__, __VA_ARGS__)
 #  else
 #    define LV_LOG_INFO(...) do {}while(0)
 #  endif
@@ -108,7 +104,7 @@ void _lv_log_add(lv_log_level_t level, const char * file, int line,
 
 #ifndef LV_LOG_WARN
 #  if LV_LOG_LEVEL <= LV_LOG_LEVEL_WARN
-#    define LV_LOG_WARN LV_LOG_USER1
+#    define LV_LOG_WARN(...) _lv_log_add(LV_LOG_LEVEL_WARN, __FILE__, __LINE__, __func__, __VA_ARGS__)
 #  else
 #    define LV_LOG_WARN(...) do {}while(0)
 #  endif
@@ -116,7 +112,7 @@ void _lv_log_add(lv_log_level_t level, const char * file, int line,
 
 #ifndef LV_LOG_ERROR
 #  if LV_LOG_LEVEL <= LV_LOG_LEVEL_ERROR
-#    define LV_LOG_ERROR LV_LOG_USER1
+#    define LV_LOG_ERROR(...) _lv_log_add(LV_LOG_LEVEL_ERROR, __FILE__, __LINE__, __func__, __VA_ARGS__)
 #  else
 #    define LV_LOG_ERROR(...) do {}while(0)
 #  endif
@@ -124,12 +120,20 @@ void _lv_log_add(lv_log_level_t level, const char * file, int line,
 
 #ifndef LV_LOG_USER
 #  if LV_LOG_LEVEL <= LV_LOG_LEVEL_USER
-#    define LV_LOG_USER LV_LOG_USER1
+#    define LV_LOG_USER(...) _lv_log_add(LV_LOG_LEVEL_USER, __FILE__, __LINE__, __func__, __VA_ARGS__)
 #  else
 #    define LV_LOG_USER(...) do {}while(0)
 #  endif
 #endif
 
+#ifndef LV_LOG
+#  if LV_LOG_LEVEL < LV_LOG_LEVEL_NONE
+#    define LV_LOG(...) lv_log(__VA_ARGS__)
+#  else
+#    define LV_LOG(...) do {} while(0)
+#  endif
+#endif
+
 #else /*LV_USE_LOG*/
 
 /*Do nothing if `LV_USE_LOG 0`*/
@@ -139,6 +143,8 @@ void _lv_log_add(lv_log_level_t level, const char * file, int line,
 #define LV_LOG_WARN(...) do {}while(0)
 #define LV_LOG_ERROR(...) do {}while(0)
 #define LV_LOG_USER(...) do {}while(0)
+#define LV_LOG(...) do {}while(0)
+
 #endif /*LV_USE_LOG*/
 
 #ifdef __cplusplus
index 0dcbc44..6ff8390 100644 (file)
@@ -48,13 +48,6 @@ static int lv_lru_cmp_keys(lv_lru_item_t * item, const void * key, uint32_t key_
 /** remove an item and push it to the free items queue */
 static void lv_lru_remove_item(lv_lru_t * cache, lv_lru_item_t * prev, lv_lru_item_t * item, uint32_t hash_index);
 
-/**
- * remove the least recently used item
- *
- * @todo we can optimise this by finding the n lru items, where n = required_space / average_length
- */
-static void lv_lru_remove_lru_item(lv_lru_t * cache);
-
 /** pop an existing item off the free queue, or create a new one */
 static lv_lru_item_t * lv_lru_pop_or_create_item(lv_lru_t * cache);
 
@@ -152,7 +145,7 @@ lv_lru_res_t lv_lru_set(lv_lru_t * cache, const void * key, size_t key_length, v
 
     // see if the key already exists
     uint32_t hash_index = lv_lru_hash(cache, key, key_length);
-    size_t required = 0;
+    int required = 0;
     lv_lru_item_t * item = NULL, *prev = NULL;
     item = cache->items[hash_index];
 
@@ -163,7 +156,7 @@ lv_lru_res_t lv_lru_set(lv_lru_t * cache, const void * key, size_t key_length, v
 
     if(item) {
         // update the value and value_lengths
-        required = (size_t)(value_length - item->value_length);
+        required = (int)(value_length - item->value_length);
         cache->value_free(item->value);
         item->value = value;
         item->value_length = value_length;
@@ -177,7 +170,7 @@ lv_lru_res_t lv_lru_set(lv_lru_t * cache, const void * key, size_t key_length, v
         memcpy(item->key, key, key_length);
         item->value_length = value_length;
         item->key_length = key_length;
-        required = (size_t) value_length;
+        required = (int) value_length;
 
         if(prev)
             prev->next = item;
@@ -241,6 +234,34 @@ lv_lru_res_t lv_lru_remove(lv_lru_t * cache, const void * key, size_t key_size)
     return LV_LRU_OK;
 }
 
+void lv_lru_remove_lru_item(lv_lru_t * cache)
+{
+    lv_lru_item_t * min_item = NULL, *min_prev = NULL;
+    lv_lru_item_t * item = NULL, *prev = NULL;
+    uint32_t i = 0, min_index = -1;
+    uint64_t min_access_count = -1;
+
+    for(; i < cache->hash_table_size; i++) {
+        item = cache->items[i];
+        prev = NULL;
+
+        while(item) {
+            if(item->access_count < min_access_count || (int64_t) min_access_count == -1) {
+                min_access_count = item->access_count;
+                min_item = item;
+                min_prev = prev;
+                min_index = i;
+            }
+            prev = item;
+            item = item->next;
+        }
+    }
+
+    if(min_item) {
+        lv_lru_remove_item(cache, min_prev, min_item, min_index);
+    }
+}
+
 /**********************
  *   STATIC FUNCTIONS
  **********************/
@@ -282,18 +303,22 @@ static uint32_t lv_lru_hash(lv_lru_t * cache, const void * key, uint32_t key_len
 
 static int lv_lru_cmp_keys(lv_lru_item_t * item, const void * key, uint32_t key_length)
 {
-    if(key_length != item->key_length)
+    if(key_length != item->key_length) {
         return 1;
-    else
+    }
+    else {
         return memcmp(key, item->key, key_length);
+    }
 }
 
 static void lv_lru_remove_item(lv_lru_t * cache, lv_lru_item_t * prev, lv_lru_item_t * item, uint32_t hash_index)
 {
-    if(prev)
+    if(prev) {
         prev->next = item->next;
-    else
+    }
+    else {
         cache->items[hash_index] = (lv_lru_item_t *) item->next;
+    }
 
     // free memory and update the free memory counter
     cache->free_memory += item->value_length;
@@ -306,33 +331,6 @@ static void lv_lru_remove_item(lv_lru_t * cache, lv_lru_item_t * prev, lv_lru_it
     cache->free_items = item;
 }
 
-static void lv_lru_remove_lru_item(lv_lru_t * cache)
-{
-    lv_lru_item_t * min_item = NULL, *min_prev = NULL;
-    lv_lru_item_t * item = NULL, *prev = NULL;
-    uint32_t i = 0, min_index = -1;
-    uint64_t min_access_count = -1;
-
-    for(; i < cache->hash_table_size; i++) {
-        item = cache->items[i];
-        prev = NULL;
-
-        while(item) {
-            if(item->access_count < min_access_count || (int64_t) min_access_count == -1) {
-                min_access_count = item->access_count;
-                min_item = item;
-                min_prev = prev;
-                min_index = i;
-            }
-            prev = item;
-            item = item->next;
-        }
-    }
-
-    if(min_item)
-        lv_lru_remove_item(cache, min_prev, min_item, min_index);
-}
-
 static lv_lru_item_t * lv_lru_pop_or_create_item(lv_lru_t * cache)
 {
     lv_lru_item_t * item = NULL;
index 07d3bd3..2d0134e 100644 (file)
@@ -71,6 +71,12 @@ lv_lru_res_t lv_lru_get(lv_lru_t * cache, const void * key, size_t key_size, voi
 
 lv_lru_res_t lv_lru_remove(lv_lru_t * cache, const void * key, size_t key_size);
 
+/**
+ * remove the least recently used item
+ *
+ * @todo we can optimise this by finding the n lru items, where n = required_space / average_length
+ */
+void lv_lru_remove_lru_item(lv_lru_t * cache);
 /**********************
  *      MACROS
  **********************/
index 2144a50..bfb3934 100644 (file)
@@ -235,8 +235,11 @@ int64_t lv_pow(int64_t base, int8_t exp)
  */
 int32_t lv_map(int32_t x, int32_t min_in, int32_t max_in, int32_t min_out, int32_t max_out)
 {
-    if(x >= max_in) return max_out;
-    if(x <= min_in) return min_out;
+    if(max_in >= min_in && x >= max_in) return max_out;
+    if(max_in >= min_in && x <= min_in) return min_out;
+
+    if(max_in <= min_in && x <= max_in) return max_out;
+    if(max_in <= min_in && x >= min_in) return min_out;
 
     /**
      * The equation should be:
index 91d5067..b7c602f 100644 (file)
@@ -55,6 +55,8 @@
  **********************/
 #if LV_MEM_CUSTOM == 0
     static lv_tlsf_t tlsf;
+    static uint32_t cur_used;
+    static uint32_t max_used;
 #endif
 
 static uint32_t zero_mem = ZERO_MEM_SENTINEL; /*Give the address of this variable if 0 byte should be allocated*/
@@ -135,12 +137,14 @@ void * lv_mem_alloc(size_t size)
 #endif
 
     if(alloc == NULL) {
-        LV_LOG_ERROR("couldn't allocate memory (%lu bytes)", (unsigned long)size);
+        LV_LOG_INFO("couldn't allocate memory (%lu bytes)", (unsigned long)size);
+#if LV_LOG_LEVEL <= LV_LOG_LEVEL_INFO
         lv_mem_monitor_t mon;
         lv_mem_monitor(&mon);
-        LV_LOG_ERROR("used: %6d (%3d %%), frag: %3d %%, biggest free: %6d",
-                     (int)(mon.total_size - mon.free_size), mon.used_pct, mon.frag_pct,
-                     (int)mon.free_biggest_size);
+        LV_LOG_INFO("used: %6d (%3d %%), frag: %3d %%, biggest free: %6d",
+                    (int)(mon.total_size - mon.free_size), mon.used_pct, mon.frag_pct,
+                    (int)mon.free_biggest_size);
+#endif
     }
 #if LV_MEM_ADD_JUNK
     else {
@@ -148,7 +152,13 @@ void * lv_mem_alloc(size_t size)
     }
 #endif
 
-    MEM_TRACE("allocated at %p", alloc);
+    if(alloc) {
+#if LV_MEM_CUSTOM == 0
+        cur_used += size;
+        max_used = LV_MAX(cur_used, max_used);
+#endif
+        MEM_TRACE("allocated at %p", alloc);
+    }
     return alloc;
 }
 
@@ -166,7 +176,9 @@ void lv_mem_free(void * data)
 #  if LV_MEM_ADD_JUNK
     lv_memset(data, 0xbb, lv_tlsf_block_size(data));
 #  endif
-    lv_tlsf_free(tlsf, data);
+    size_t size = lv_tlsf_free(tlsf, data);
+    if(cur_used > size) cur_used -= size;
+    else cur_used = 0;
 #else
     LV_MEM_CUSTOM_FREE(data);
 #endif
@@ -250,6 +262,8 @@ void lv_mem_monitor(lv_mem_monitor_t * mon_p)
         mon_p->frag_pct = 0; /*no fragmentation if all the RAM is used*/
     }
 
+    mon_p->max_used = max_used;
+
     MEM_TRACE("finished");
 #endif
 }
index 99c7d9b..1dfd4ee 100644 (file)
@@ -1,22 +1,26 @@
-lvgl_SRCS  += $(LVGL_DIR_NAME)/src/misc/lv_anim.c
-lvgl_SRCS  += $(LVGL_DIR_NAME)/src/misc/lv_anim_timeline.c
-lvgl_SRCS  += $(LVGL_DIR_NAME)/src/misc/lv_area.c
-lvgl_SRCS  += $(LVGL_DIR_NAME)/src/misc/lv_async.c
-lvgl_SRCS  += $(LVGL_DIR_NAME)/src/misc/lv_bidi.c
-lvgl_SRCS  += $(LVGL_DIR_NAME)/src/misc/lv_color.c
-lvgl_SRCS  += $(LVGL_DIR_NAME)/src/misc/lv_fs.c
-lvgl_SRCS  += $(LVGL_DIR_NAME)/src/misc/lv_gc.c
-lvgl_SRCS  += $(LVGL_DIR_NAME)/src/misc/lv_ll.c
-lvgl_SRCS  += $(LVGL_DIR_NAME)/src/misc/lv_log.c
-lvgl_SRCS  += $(LVGL_DIR_NAME)/src/misc/lv_lru.c
-lvgl_SRCS  += $(LVGL_DIR_NAME)/src/misc/lv_math.c
-lvgl_SRCS  += $(LVGL_DIR_NAME)/src/misc/lv_mem.c
-lvgl_SRCS  += $(LVGL_DIR_NAME)/src/misc/lv_printf.c
-lvgl_SRCS  += $(LVGL_DIR_NAME)/src/misc/lv_style.c
-lvgl_SRCS  += $(LVGL_DIR_NAME)/src/misc/lv_style_gen.c
-lvgl_SRCS  += $(LVGL_DIR_NAME)/src/misc/lv_timer.c
-lvgl_SRCS  += $(LVGL_DIR_NAME)/src/misc/lv_tlsf.c
-lvgl_SRCS  += $(LVGL_DIR_NAME)/src/misc/lv_txt.c
-lvgl_SRCS  += $(LVGL_DIR_NAME)/src/misc/lv_txt_ap.c
-lvgl_SRCS  += $(LVGL_DIR_NAME)/src/misc/lv_utils.c
+CSRCS += lv_anim.c
+CSRCS += lv_anim_timeline.c
+CSRCS += lv_area.c
+CSRCS += lv_async.c
+CSRCS += lv_bidi.c
+CSRCS += lv_color.c
+CSRCS += lv_fs.c
+CSRCS += lv_gc.c
+CSRCS += lv_ll.c
+CSRCS += lv_log.c
+CSRCS += lv_lru.c
+CSRCS += lv_math.c
+CSRCS += lv_mem.c
+CSRCS += lv_printf.c
+CSRCS += lv_style.c
+CSRCS += lv_style_gen.c
+CSRCS += lv_timer.c
+CSRCS += lv_tlsf.c
+CSRCS += lv_txt.c
+CSRCS += lv_txt_ap.c
+CSRCS += lv_utils.c
 
+DEPPATH += --dep-path $(LVGL_DIR)/$(LVGL_DIR_NAME)/src/misc
+VPATH += :$(LVGL_DIR)/$(LVGL_DIR_NAME)/src/misc
+
+CFLAGS += "-I$(LVGL_DIR)/$(LVGL_DIR_NAME)/src/misc"
index 8b065a8..419c29e 100644 (file)
@@ -7,7 +7,10 @@
  *      INCLUDES
  *********************/
 #include "lv_style.h"
+#include "../misc/lv_gc.h"
 #include "../misc/lv_mem.h"
+#include "lv_assert.h"
+#include "lv_types.h"
 
 /*********************
  *      DEFINES
  *  STATIC PROTOTYPES
  **********************/
 
+static void lv_style_set_prop_internal(lv_style_t * style, lv_style_prop_t prop_and_meta, lv_style_value_t value,
+                                       void (*value_adjustment_helper)(lv_style_prop_t, lv_style_value_t, uint16_t *, lv_style_value_t *));
+static void lv_style_set_prop_helper(lv_style_prop_t prop, lv_style_value_t value, uint16_t * prop_storage,
+                                     lv_style_value_t * value_storage);
+static void lv_style_set_prop_meta_helper(lv_style_prop_t prop, lv_style_value_t value, uint16_t * prop_storage,
+                                          lv_style_value_t * value_storage);
+
 /**********************
  *  GLOBAL VARIABLES
  **********************/
 
+const uint8_t _lv_style_builtin_prop_flag_lookup_table[_LV_STYLE_NUM_BUILT_IN_PROPS] = {
+    [LV_STYLE_WIDTH] =                    LV_STYLE_PROP_LAYOUT_REFR,
+    [LV_STYLE_MIN_WIDTH] =                LV_STYLE_PROP_LAYOUT_REFR,
+    [LV_STYLE_MAX_WIDTH] =                LV_STYLE_PROP_LAYOUT_REFR,
+    [LV_STYLE_HEIGHT] =                   LV_STYLE_PROP_LAYOUT_REFR,
+    [LV_STYLE_MIN_HEIGHT] =               LV_STYLE_PROP_LAYOUT_REFR,
+    [LV_STYLE_MAX_HEIGHT] =               LV_STYLE_PROP_LAYOUT_REFR,
+    [LV_STYLE_X] =                        LV_STYLE_PROP_LAYOUT_REFR,
+    [LV_STYLE_Y] =                        LV_STYLE_PROP_LAYOUT_REFR,
+    [LV_STYLE_ALIGN] =                    LV_STYLE_PROP_LAYOUT_REFR,
+    [LV_STYLE_TRANSFORM_WIDTH] =           LV_STYLE_PROP_EXT_DRAW,
+    [LV_STYLE_TRANSFORM_HEIGHT] =          LV_STYLE_PROP_EXT_DRAW,
+    [LV_STYLE_TRANSLATE_X] =               LV_STYLE_PROP_LAYOUT_REFR | LV_STYLE_PROP_PARENT_LAYOUT_REFR,
+    [LV_STYLE_TRANSLATE_Y] =               LV_STYLE_PROP_LAYOUT_REFR | LV_STYLE_PROP_PARENT_LAYOUT_REFR,
+    [LV_STYLE_TRANSFORM_ZOOM] =            LV_STYLE_PROP_EXT_DRAW | LV_STYLE_PROP_LAYER_REFR,
+    [LV_STYLE_TRANSFORM_ANGLE] =           LV_STYLE_PROP_EXT_DRAW | LV_STYLE_PROP_LAYER_REFR,
+
+    [LV_STYLE_PAD_TOP] =                   LV_STYLE_PROP_EXT_DRAW | LV_STYLE_PROP_LAYOUT_REFR,
+    [LV_STYLE_PAD_BOTTOM] =                LV_STYLE_PROP_EXT_DRAW | LV_STYLE_PROP_LAYOUT_REFR,
+    [LV_STYLE_PAD_LEFT] =                  LV_STYLE_PROP_EXT_DRAW | LV_STYLE_PROP_LAYOUT_REFR,
+    [LV_STYLE_PAD_RIGHT] =                 LV_STYLE_PROP_EXT_DRAW | LV_STYLE_PROP_LAYOUT_REFR,
+    [LV_STYLE_PAD_ROW] =                   LV_STYLE_PROP_EXT_DRAW | LV_STYLE_PROP_LAYOUT_REFR,
+    [LV_STYLE_PAD_COLUMN] =                LV_STYLE_PROP_EXT_DRAW | LV_STYLE_PROP_LAYOUT_REFR,
+
+    [LV_STYLE_BG_COLOR] = 0,
+    [LV_STYLE_BG_OPA] = 0,
+    [LV_STYLE_BG_GRAD_COLOR] = 0,
+    [LV_STYLE_BG_GRAD_DIR] = 0,
+    [LV_STYLE_BG_MAIN_STOP] = 0,
+    [LV_STYLE_BG_GRAD_STOP] = 0,
+    [LV_STYLE_BG_GRAD] = 0,
+    [LV_STYLE_BG_DITHER_MODE] = 0,
+
+    [LV_STYLE_BG_IMG_SRC] =                LV_STYLE_PROP_EXT_DRAW,
+    [LV_STYLE_BG_IMG_OPA] = 0,
+    [LV_STYLE_BG_IMG_RECOLOR] = 0,
+    [LV_STYLE_BG_IMG_RECOLOR_OPA] = 0,
+    [LV_STYLE_BG_IMG_TILED] = 0,
+
+    [LV_STYLE_BORDER_COLOR] = 0,
+    [LV_STYLE_BORDER_OPA] = 0,
+    [LV_STYLE_BORDER_WIDTH] =              LV_STYLE_PROP_LAYOUT_REFR,
+    [LV_STYLE_BORDER_SIDE] = 0,
+    [LV_STYLE_BORDER_POST] = 0,
+
+    [LV_STYLE_OUTLINE_WIDTH] =             LV_STYLE_PROP_EXT_DRAW,
+    [LV_STYLE_OUTLINE_COLOR] = 0,
+    [LV_STYLE_OUTLINE_OPA] =               LV_STYLE_PROP_EXT_DRAW,
+    [LV_STYLE_OUTLINE_PAD] =               LV_STYLE_PROP_EXT_DRAW,
+
+    [LV_STYLE_SHADOW_WIDTH] =              LV_STYLE_PROP_EXT_DRAW,
+    [LV_STYLE_SHADOW_OFS_X] =              LV_STYLE_PROP_EXT_DRAW,
+    [LV_STYLE_SHADOW_OFS_Y] =              LV_STYLE_PROP_EXT_DRAW,
+    [LV_STYLE_SHADOW_SPREAD] =             LV_STYLE_PROP_EXT_DRAW,
+    [LV_STYLE_SHADOW_COLOR] = 0,
+    [LV_STYLE_SHADOW_OPA] =                LV_STYLE_PROP_EXT_DRAW,
+
+    [LV_STYLE_IMG_OPA] = 0,
+    [LV_STYLE_IMG_RECOLOR] = 0,
+    [LV_STYLE_IMG_RECOLOR_OPA] = 0,
+
+    [LV_STYLE_LINE_WIDTH] =                LV_STYLE_PROP_EXT_DRAW,
+    [LV_STYLE_LINE_DASH_WIDTH] = 0,
+    [LV_STYLE_LINE_DASH_GAP] = 0,
+    [LV_STYLE_LINE_ROUNDED] = 0,
+    [LV_STYLE_LINE_COLOR] = 0,
+    [LV_STYLE_LINE_OPA] = 0,
+
+    [LV_STYLE_ARC_WIDTH] =                 LV_STYLE_PROP_EXT_DRAW,
+    [LV_STYLE_ARC_ROUNDED] = 0,
+    [LV_STYLE_ARC_COLOR] = 0,
+    [LV_STYLE_ARC_OPA] = 0,
+    [LV_STYLE_ARC_IMG_SRC] = 0,
+
+    [LV_STYLE_TEXT_COLOR] =                LV_STYLE_PROP_INHERIT,
+    [LV_STYLE_TEXT_OPA] =                  LV_STYLE_PROP_INHERIT,
+    [LV_STYLE_TEXT_FONT] =                 LV_STYLE_PROP_INHERIT | LV_STYLE_PROP_LAYOUT_REFR,
+    [LV_STYLE_TEXT_LETTER_SPACE] =         LV_STYLE_PROP_INHERIT | LV_STYLE_PROP_LAYOUT_REFR,
+    [LV_STYLE_TEXT_LINE_SPACE] =           LV_STYLE_PROP_INHERIT | LV_STYLE_PROP_LAYOUT_REFR,
+    [LV_STYLE_TEXT_DECOR] =                LV_STYLE_PROP_INHERIT,
+    [LV_STYLE_TEXT_ALIGN] =                LV_STYLE_PROP_INHERIT | LV_STYLE_PROP_LAYOUT_REFR,
+
+    [LV_STYLE_RADIUS] = 0,
+    [LV_STYLE_CLIP_CORNER] = 0,
+    [LV_STYLE_OPA] =                       LV_STYLE_PROP_LAYER_REFR,
+    [LV_STYLE_COLOR_FILTER_DSC] =          LV_STYLE_PROP_INHERIT,
+    [LV_STYLE_COLOR_FILTER_OPA] =          LV_STYLE_PROP_INHERIT,
+    [LV_STYLE_ANIM_TIME] = 0,
+    [LV_STYLE_ANIM_SPEED] = 0,
+    [LV_STYLE_TRANSITION] = 0,
+    [LV_STYLE_BLEND_MODE] =                LV_STYLE_PROP_LAYER_REFR,
+    [LV_STYLE_LAYOUT] =                    LV_STYLE_PROP_LAYOUT_REFR,
+    [LV_STYLE_BASE_DIR] =                  LV_STYLE_PROP_INHERIT | LV_STYLE_PROP_LAYOUT_REFR,
+};
+
+uint32_t _lv_style_custom_prop_flag_lookup_table_size = 0;
+
 /**********************
  *  STATIC VARIABLES
  **********************/
 
+static uint16_t last_custom_prop_id = (uint16_t)_LV_STYLE_LAST_BUILT_IN_PROP;
+static const lv_style_value_t null_style_value = { .num = 0 };
+
 /**********************
  *      MACROS
  **********************/
@@ -55,7 +165,7 @@ void lv_style_reset(lv_style_t * style)
 {
     LV_ASSERT_STYLE(style);
 
-    if(style->is_const) {
+    if(style->prop1 == LV_STYLE_PROP_ANY) {
         LV_LOG_ERROR("Cannot reset const style");
         return;
     }
@@ -67,18 +177,52 @@ void lv_style_reset(lv_style_t * style)
 #endif
 }
 
-lv_style_prop_t lv_style_register_prop(void)
+lv_style_prop_t lv_style_register_prop(uint8_t flag)
+{
+    if(LV_GC_ROOT(_lv_style_custom_prop_flag_lookup_table) == NULL) {
+        _lv_style_custom_prop_flag_lookup_table_size = 0;
+        last_custom_prop_id = (uint16_t)_LV_STYLE_LAST_BUILT_IN_PROP;
+    }
+
+    if(((last_custom_prop_id + 1) & LV_STYLE_PROP_META_MASK) != 0) {
+        LV_LOG_ERROR("No more custom property IDs available");
+        return LV_STYLE_PROP_INV;
+    }
+
+    /*
+     * Allocate the lookup table if it's not yet available.
+     */
+    size_t required_size = (last_custom_prop_id + 1 - _LV_STYLE_LAST_BUILT_IN_PROP);
+    if(_lv_style_custom_prop_flag_lookup_table_size < required_size) {
+        /* Round required_size up to the nearest 32-byte value */
+        required_size = (required_size + 31) & ~31;
+        LV_ASSERT_MSG(required_size > 0, "required size has become 0?");
+        uint8_t * old_p = LV_GC_ROOT(_lv_style_custom_prop_flag_lookup_table);
+        uint8_t * new_p = lv_mem_realloc(old_p, required_size * sizeof(uint8_t));
+        if(new_p == NULL) {
+            LV_LOG_ERROR("Unable to allocate space for custom property lookup table");
+            return LV_STYLE_PROP_INV;
+        }
+        LV_GC_ROOT(_lv_style_custom_prop_flag_lookup_table) = new_p;
+        _lv_style_custom_prop_flag_lookup_table_size = required_size;
+    }
+    last_custom_prop_id++;
+    /* This should never happen - we should bail out above */
+    LV_ASSERT_NULL(LV_GC_ROOT(_lv_style_custom_prop_flag_lookup_table));
+    LV_GC_ROOT(_lv_style_custom_prop_flag_lookup_table)[last_custom_prop_id - _LV_STYLE_NUM_BUILT_IN_PROPS] = flag;
+    return last_custom_prop_id;
+}
+
+lv_style_prop_t lv_style_get_num_custom_props(void)
 {
-    static uint16_t act_id = (uint16_t)_LV_STYLE_LAST_BUILT_IN_PROP;
-    act_id++;
-    return act_id;
+    return last_custom_prop_id - _LV_STYLE_LAST_BUILT_IN_PROP;
 }
 
 bool lv_style_remove_prop(lv_style_t * style, lv_style_prop_t prop)
 {
     LV_ASSERT_STYLE(style);
 
-    if(style->is_const) {
+    if(style->prop1 == LV_STYLE_PROP_ANY) {
         LV_LOG_ERROR("Cannot remove prop from const style");
         return false;
     }
@@ -86,7 +230,7 @@ bool lv_style_remove_prop(lv_style_t * style, lv_style_prop_t prop)
     if(style->prop_cnt == 0)  return false;
 
     if(style->prop_cnt == 1) {
-        if(style->prop1 == prop) {
+        if(LV_STYLE_PROP_ID_MASK(style->prop1) == prop) {
             style->prop1 = LV_STYLE_PROP_INV;
             style->prop_cnt = 0;
             return true;
@@ -98,7 +242,7 @@ bool lv_style_remove_prop(lv_style_t * style, lv_style_prop_t prop)
     uint16_t * old_props = (uint16_t *)tmp;
     uint32_t i;
     for(i = 0; i < style->prop_cnt; i++) {
-        if(old_props[i] == prop) {
+        if(LV_STYLE_PROP_ID_MASK(old_props[i]) == prop) {
             lv_style_value_t * old_values = (lv_style_value_t *)style->v_p.values_and_props;
 
             if(style->prop_cnt == 2) {
@@ -137,78 +281,15 @@ bool lv_style_remove_prop(lv_style_t * style, lv_style_prop_t prop)
 
 void lv_style_set_prop(lv_style_t * style, lv_style_prop_t prop, lv_style_value_t value)
 {
-    LV_ASSERT_STYLE(style);
-
-    if(style->is_const) {
-        LV_LOG_ERROR("Cannot set property of constant style");
-        return;
-    }
-
-    if(style->prop_cnt > 1) {
-        uint8_t * tmp = style->v_p.values_and_props + style->prop_cnt * sizeof(lv_style_value_t);
-        uint16_t * props = (uint16_t *)tmp;
-        int32_t i;
-        for(i = style->prop_cnt - 1; i >= 0; i--) {
-            if(props[i] == prop) {
-                lv_style_value_t * values = (lv_style_value_t *)style->v_p.values_and_props;
-                values[i] = value;
-                return;
-            }
-        }
-
-        size_t size = (style->prop_cnt + 1) * (sizeof(lv_style_value_t) + sizeof(uint16_t));
-        uint8_t * values_and_props = lv_mem_realloc(style->v_p.values_and_props, size);
-        if(values_and_props == NULL) return;
-        style->v_p.values_and_props = values_and_props;
-
-        tmp = values_and_props + style->prop_cnt * sizeof(lv_style_value_t);
-        props = (uint16_t *)tmp;
-        /*Shift all props to make place for the value before them*/
-        for(i = style->prop_cnt - 1; i >= 0; i--) {
-            props[i + sizeof(lv_style_value_t) / sizeof(uint16_t)] = props[i];
-        }
-        style->prop_cnt++;
-
-        /*Go to the new position wit the props*/
-        tmp = values_and_props + style->prop_cnt * sizeof(lv_style_value_t);
-        props = (uint16_t *)tmp;
-        lv_style_value_t * values = (lv_style_value_t *)values_and_props;
-
-        /*Set the new property and value*/
-        props[style->prop_cnt - 1] = prop;
-        values[style->prop_cnt - 1] = value;
-    }
-    else if(style->prop_cnt == 1) {
-        if(style->prop1 == prop) {
-            style->v_p.value1 = value;
-            return;
-        }
-        size_t size = (style->prop_cnt + 1) * (sizeof(lv_style_value_t) + sizeof(uint16_t));
-        uint8_t * values_and_props = lv_mem_alloc(size);
-        if(values_and_props == NULL) return;
-        lv_style_value_t value_tmp = style->v_p.value1;
-        style->v_p.values_and_props = values_and_props;
-        style->prop_cnt++;
-
-        uint8_t * tmp = values_and_props + style->prop_cnt * sizeof(lv_style_value_t);
-        uint16_t * props = (uint16_t *)tmp;
-        lv_style_value_t * values = (lv_style_value_t *)values_and_props;
-        props[0] = style->prop1;
-        props[1] = prop;
-        values[0] = value_tmp;
-        values[1] = value;
-    }
-    else {
-        style->prop_cnt = 1;
-        style->prop1 = prop;
-        style->v_p.value1 = value;
-    }
+    lv_style_set_prop_internal(style, prop, value, lv_style_set_prop_helper);
+}
 
-    uint8_t group = _lv_style_get_prop_group(prop);
-    style->has_group |= 1 << group;
+void lv_style_set_prop_meta(lv_style_t * style, lv_style_prop_t prop, uint16_t meta)
+{
+    lv_style_set_prop_internal(style, prop | meta, null_style_value, lv_style_set_prop_meta_helper);
 }
 
-lv_res_t lv_style_get_prop(const lv_style_t * style, lv_style_prop_t prop, lv_style_value_t * value)
+lv_style_res_t lv_style_get_prop(const lv_style_t * style, lv_style_prop_t prop, lv_style_value_t * value)
 {
     return lv_style_get_prop_inlined(style, prop, value);
 }
@@ -295,6 +376,110 @@ uint8_t _lv_style_get_prop_group(lv_style_prop_t prop)
     return (uint8_t)group;
 }
 
+uint8_t _lv_style_prop_lookup_flags(lv_style_prop_t prop)
+{
+    extern const uint8_t _lv_style_builtin_prop_flag_lookup_table[];
+    extern uint32_t _lv_style_custom_prop_flag_lookup_table_size;
+    if(prop == LV_STYLE_PROP_ANY) return LV_STYLE_PROP_ALL; /*Any prop can have any flags*/
+    if(prop == LV_STYLE_PROP_INV) return 0;
+
+    if(prop < _LV_STYLE_NUM_BUILT_IN_PROPS)
+        return _lv_style_builtin_prop_flag_lookup_table[prop];
+    prop -= _LV_STYLE_NUM_BUILT_IN_PROPS;
+    if(LV_GC_ROOT(_lv_style_custom_prop_flag_lookup_table) != NULL && prop < _lv_style_custom_prop_flag_lookup_table_size)
+        return LV_GC_ROOT(_lv_style_custom_prop_flag_lookup_table)[prop];
+    return 0;
+}
+
 /**********************
  *   STATIC FUNCTIONS
  **********************/
+
+static void lv_style_set_prop_helper(lv_style_prop_t prop, lv_style_value_t value, uint16_t * prop_storage,
+                                     lv_style_value_t * value_storage)
+{
+    *prop_storage = prop;
+    *value_storage = value;
+}
+
+static void lv_style_set_prop_meta_helper(lv_style_prop_t prop, lv_style_value_t value, uint16_t * prop_storage,
+                                          lv_style_value_t * value_storage)
+{
+    LV_UNUSED(value);
+    LV_UNUSED(value_storage);
+    *prop_storage = prop; /* meta is OR-ed into the prop ID already */
+}
+
+static void lv_style_set_prop_internal(lv_style_t * style, lv_style_prop_t prop_and_meta, lv_style_value_t value,
+                                       void (*value_adjustment_helper)(lv_style_prop_t, lv_style_value_t, uint16_t *, lv_style_value_t *))
+{
+    LV_ASSERT_STYLE(style);
+
+    if(style->prop1 == LV_STYLE_PROP_ANY) {
+        LV_LOG_ERROR("Cannot set property of constant style");
+        return;
+    }
+
+    lv_style_prop_t prop_id = LV_STYLE_PROP_ID_MASK(prop_and_meta);
+
+    if(style->prop_cnt > 1) {
+        uint8_t * tmp = style->v_p.values_and_props + style->prop_cnt * sizeof(lv_style_value_t);
+        uint16_t * props = (uint16_t *)tmp;
+        int32_t i;
+        for(i = style->prop_cnt - 1; i >= 0; i--) {
+            if(LV_STYLE_PROP_ID_MASK(props[i]) == prop_id) {
+                lv_style_value_t * values = (lv_style_value_t *)style->v_p.values_and_props;
+                value_adjustment_helper(prop_and_meta, value, &props[i], &values[i]);
+                return;
+            }
+        }
+
+        size_t size = (style->prop_cnt + 1) * (sizeof(lv_style_value_t) + sizeof(uint16_t));
+        uint8_t * values_and_props = lv_mem_realloc(style->v_p.values_and_props, size);
+        if(values_and_props == NULL) return;
+        style->v_p.values_and_props = values_and_props;
+
+        tmp = values_and_props + style->prop_cnt * sizeof(lv_style_value_t);
+        props = (uint16_t *)tmp;
+        /*Shift all props to make place for the value before them*/
+        for(i = style->prop_cnt - 1; i >= 0; i--) {
+            props[i + sizeof(lv_style_value_t) / sizeof(uint16_t)] = props[i];
+        }
+        style->prop_cnt++;
+
+        /*Go to the new position wit the props*/
+        tmp = values_and_props + style->prop_cnt * sizeof(lv_style_value_t);
+        props = (uint16_t *)tmp;
+        lv_style_value_t * values = (lv_style_value_t *)values_and_props;
+
+        /*Set the new property and value*/
+        value_adjustment_helper(prop_and_meta, value, &props[style->prop_cnt - 1], &values[style->prop_cnt - 1]);
+    }
+    else if(style->prop_cnt == 1) {
+        if(LV_STYLE_PROP_ID_MASK(style->prop1) == prop_id) {
+            value_adjustment_helper(prop_and_meta, value, &style->prop1, &style->v_p.value1);
+            return;
+        }
+        size_t size = (style->prop_cnt + 1) * (sizeof(lv_style_value_t) + sizeof(uint16_t));
+        uint8_t * values_and_props = lv_mem_alloc(size);
+        if(values_and_props == NULL) return;
+        lv_style_value_t value_tmp = style->v_p.value1;
+        style->v_p.values_and_props = values_and_props;
+        style->prop_cnt++;
+
+        uint8_t * tmp = values_and_props + style->prop_cnt * sizeof(lv_style_value_t);
+        uint16_t * props = (uint16_t *)tmp;
+        lv_style_value_t * values = (lv_style_value_t *)values_and_props;
+        props[0] = style->prop1;
+        values[0] = value_tmp;
+        value_adjustment_helper(prop_and_meta, value, &props[1], &values[1]);
+    }
+    else {
+        style->prop_cnt = 1;
+        value_adjustment_helper(prop_and_meta, value, &style->prop1, &style->v_p.value1);
+    }
+
+    uint8_t group = _lv_style_get_prop_group(prop_id);
+    style->has_group |= 1 << group;
+}
+
index 6ec97cb..5cf0b19 100644 (file)
@@ -31,13 +31,17 @@ extern "C" {
 #define LV_STYLE_SENTINEL_VALUE     0xAABBCCDD
 
 /**
- * Flags for style properties
+ * Flags for style behavior
+ *
+ * The rest of the flags will have _FLAG added to their name in v9.
  */
-#define LV_STYLE_PROP_INHERIT               (1 << 10)  /*Inherited*/
-#define LV_STYLE_PROP_EXT_DRAW              (1 << 11)  /*Requires ext. draw size update when changed*/
-#define LV_STYLE_PROP_LAYOUT_REFR           (1 << 12)  /*Requires layout update when changed*/
-#define LV_STYLE_PROP_PARENT_LAYOUT_REFR    (1 << 13)  /*Requires layout update on parent when changed*/
-#define LV_STYLE_PROP_FILTER                (1 << 14)  /*Apply color filter*/
+#define LV_STYLE_PROP_FLAG_NONE             (0)
+#define LV_STYLE_PROP_INHERIT               (1 << 0)  /*Inherited*/
+#define LV_STYLE_PROP_EXT_DRAW              (1 << 1)  /*Requires ext. draw size update when changed*/
+#define LV_STYLE_PROP_LAYOUT_REFR           (1 << 2)  /*Requires layout update when changed*/
+#define LV_STYLE_PROP_PARENT_LAYOUT_REFR    (1 << 3)  /*Requires layout update on parent when changed*/
+#define LV_STYLE_PROP_LAYER_REFR            (1 << 4)  /*Affects layer handling*/
+#define LV_STYLE_PROP_ALL                   (0x1F)     /*Indicating all flags*/
 
 /**
  * Other constants
@@ -45,17 +49,32 @@ extern "C" {
 #define LV_IMG_ZOOM_NONE            256        /*Value for not zooming the image*/
 LV_EXPORT_CONST_INT(LV_IMG_ZOOM_NONE);
 
+// *INDENT-OFF*
 #if LV_USE_ASSERT_STYLE
-#define LV_STYLE_CONST_INIT(var_name, prop_array) const lv_style_t var_name = { .sentinel = LV_STYLE_SENTINEL_VALUE, .v_p = { .const_props = prop_array }, .has_group = 0xFF, .is_const = 1 }
+#define LV_STYLE_CONST_INIT(var_name, prop_array)                       \
+    const lv_style_t var_name = {                                       \
+        .sentinel = LV_STYLE_SENTINEL_VALUE,                            \
+        .v_p = { .const_props = prop_array },                           \
+        .has_group = 0xFF,                                              \
+        .prop1 = LV_STYLE_PROP_ANY,                                     \
+        .prop_cnt = (sizeof(prop_array) / sizeof((prop_array)[0])),     \
+    }
 #else
-#define LV_STYLE_CONST_INIT(var_name, prop_array) const lv_style_t var_name = { .v_p = { .const_props = prop_array }, .has_group = 0xFF, .is_const = 1 }
+#define LV_STYLE_CONST_INIT(var_name, prop_array)                       \
+    const lv_style_t var_name = {                                       \
+        .v_p = { .const_props = prop_array },                           \
+        .has_group = 0xFF,                                              \
+        .prop1 = LV_STYLE_PROP_ANY,                                     \
+        .prop_cnt = (sizeof(prop_array) / sizeof((prop_array)[0])),     \
+    }
 #endif
+// *INDENT-ON*
 
-/** On simple system, don't waste resources on gradients */
-#if !defined(LV_DRAW_COMPLEX) || !defined(LV_GRADIENT_MAX_STOPS)
-#define LV_GRADIENT_MAX_STOPS 2
-#endif
+#define LV_STYLE_PROP_META_INHERIT 0x8000
+#define LV_STYLE_PROP_META_INITIAL 0x4000
+#define LV_STYLE_PROP_META_MASK (LV_STYLE_PROP_META_INHERIT | LV_STYLE_PROP_META_INITIAL)
 
+#define LV_STYLE_PROP_ID_MASK(prop) ((lv_style_prop_t)((prop) & ~LV_STYLE_PROP_META_MASK))
 
 /**********************
  *      TYPEDEFS
@@ -153,126 +172,125 @@ typedef union {
 
 /**
  * Enumeration of all built in style properties
+ *
+ * Props are split into groups of 16. When adding a new prop to a group, ensure it does not overflow into the next one.
  */
 typedef enum {
-    LV_STYLE_PROP_INV                = 0,
+    LV_STYLE_PROP_INV               = 0,
 
     /*Group 0*/
-    LV_STYLE_WIDTH                   = 1 | LV_STYLE_PROP_LAYOUT_REFR,
-    LV_STYLE_MIN_WIDTH               = 2 | LV_STYLE_PROP_LAYOUT_REFR,
-    LV_STYLE_MAX_WIDTH               = 3 | LV_STYLE_PROP_LAYOUT_REFR,
-    LV_STYLE_HEIGHT                  = 4 | LV_STYLE_PROP_LAYOUT_REFR,
-    LV_STYLE_MIN_HEIGHT              = 5 | LV_STYLE_PROP_LAYOUT_REFR,
-    LV_STYLE_MAX_HEIGHT              = 6 | LV_STYLE_PROP_LAYOUT_REFR,
-    LV_STYLE_X                       = 7 | LV_STYLE_PROP_LAYOUT_REFR,
-    LV_STYLE_Y                       = 8 | LV_STYLE_PROP_LAYOUT_REFR,
-    LV_STYLE_ALIGN                   = 9 | LV_STYLE_PROP_LAYOUT_REFR,
-    LV_STYLE_TRANSFORM_WIDTH         = 10 | LV_STYLE_PROP_EXT_DRAW,
-    LV_STYLE_TRANSFORM_HEIGHT        = 11 | LV_STYLE_PROP_EXT_DRAW,
-    LV_STYLE_TRANSLATE_X             = 12 | LV_STYLE_PROP_LAYOUT_REFR | LV_STYLE_PROP_PARENT_LAYOUT_REFR,
-    LV_STYLE_TRANSLATE_Y             = 13 | LV_STYLE_PROP_LAYOUT_REFR | LV_STYLE_PROP_PARENT_LAYOUT_REFR,
-    LV_STYLE_TRANSFORM_ZOOM          = 14 | LV_STYLE_PROP_EXT_DRAW | LV_STYLE_PROP_LAYOUT_REFR | LV_STYLE_PROP_PARENT_LAYOUT_REFR,
-    LV_STYLE_TRANSFORM_ANGLE         = 15 | LV_STYLE_PROP_EXT_DRAW | LV_STYLE_PROP_LAYOUT_REFR | LV_STYLE_PROP_PARENT_LAYOUT_REFR,
+    LV_STYLE_WIDTH                  = 1,
+    LV_STYLE_MIN_WIDTH              = 2,
+    LV_STYLE_MAX_WIDTH              = 3,
+    LV_STYLE_HEIGHT                 = 4,
+    LV_STYLE_MIN_HEIGHT             = 5,
+    LV_STYLE_MAX_HEIGHT             = 6,
+    LV_STYLE_X                      = 7,
+    LV_STYLE_Y                      = 8,
+    LV_STYLE_ALIGN                  = 9,
+    LV_STYLE_LAYOUT                 = 10,
+    LV_STYLE_RADIUS                 = 11,
 
     /*Group 1*/
-    LV_STYLE_PAD_TOP                 = 16 | LV_STYLE_PROP_EXT_DRAW | LV_STYLE_PROP_LAYOUT_REFR,
-    LV_STYLE_PAD_BOTTOM              = 17 | LV_STYLE_PROP_EXT_DRAW | LV_STYLE_PROP_LAYOUT_REFR,
-    LV_STYLE_PAD_LEFT                = 18 | LV_STYLE_PROP_EXT_DRAW | LV_STYLE_PROP_LAYOUT_REFR,
-    LV_STYLE_PAD_RIGHT               = 19 | LV_STYLE_PROP_EXT_DRAW | LV_STYLE_PROP_LAYOUT_REFR,
-    LV_STYLE_PAD_ROW                 = 20 | LV_STYLE_PROP_EXT_DRAW | LV_STYLE_PROP_LAYOUT_REFR,
-    LV_STYLE_PAD_COLUMN              = 21 | LV_STYLE_PROP_EXT_DRAW | LV_STYLE_PROP_LAYOUT_REFR,
+    LV_STYLE_PAD_TOP                = 16,
+    LV_STYLE_PAD_BOTTOM             = 17,
+    LV_STYLE_PAD_LEFT               = 18,
+    LV_STYLE_PAD_RIGHT              = 19,
+    LV_STYLE_PAD_ROW                = 20,
+    LV_STYLE_PAD_COLUMN             = 21,
+    LV_STYLE_BASE_DIR               = 22,
+    LV_STYLE_CLIP_CORNER            = 23,
 
     /*Group 2*/
-    LV_STYLE_BG_COLOR                = 32,
-    LV_STYLE_BG_COLOR_FILTERED       = 32 | LV_STYLE_PROP_FILTER,
-    LV_STYLE_BG_OPA                  = 33,
-    LV_STYLE_BG_GRAD_COLOR           = 34,
-    LV_STYLE_BG_GRAD_COLOR_FILTERED  = 34 | LV_STYLE_PROP_FILTER,
-    LV_STYLE_BG_GRAD_DIR             = 35,
-    LV_STYLE_BG_MAIN_STOP            = 36,
-    LV_STYLE_BG_GRAD_STOP            = 37,
-    LV_STYLE_BG_GRAD                 = 38,
-    LV_STYLE_BG_DITHER_MODE          = 39,
-
-
-    LV_STYLE_BG_IMG_SRC              = 40 | LV_STYLE_PROP_EXT_DRAW,
-    LV_STYLE_BG_IMG_OPA              = 41,
-    LV_STYLE_BG_IMG_RECOLOR          = 42,
-    LV_STYLE_BG_IMG_RECOLOR_FILTERED = 42 | LV_STYLE_PROP_FILTER,
-    LV_STYLE_BG_IMG_RECOLOR_OPA      = 43,
-    LV_STYLE_BG_IMG_TILED            = 44,
+    LV_STYLE_BG_COLOR               = 32,
+    LV_STYLE_BG_OPA                 = 33,
+    LV_STYLE_BG_GRAD_COLOR          = 34,
+    LV_STYLE_BG_GRAD_DIR            = 35,
+    LV_STYLE_BG_MAIN_STOP           = 36,
+    LV_STYLE_BG_GRAD_STOP           = 37,
+    LV_STYLE_BG_GRAD                = 38,
+    LV_STYLE_BG_DITHER_MODE         = 39,
+    LV_STYLE_BG_IMG_SRC             = 40,
+    LV_STYLE_BG_IMG_OPA             = 41,
+    LV_STYLE_BG_IMG_RECOLOR         = 42,
+    LV_STYLE_BG_IMG_RECOLOR_OPA     = 43,
+    LV_STYLE_BG_IMG_TILED           = 44,
 
     /*Group 3*/
-    LV_STYLE_BORDER_COLOR            = 48,
-    LV_STYLE_BORDER_COLOR_FILTERED   = 48 | LV_STYLE_PROP_FILTER,
-    LV_STYLE_BORDER_OPA              = 49,
-    LV_STYLE_BORDER_WIDTH            = 50 | LV_STYLE_PROP_LAYOUT_REFR,
-    LV_STYLE_BORDER_SIDE             = 51,
-    LV_STYLE_BORDER_POST             = 52,
-
-    LV_STYLE_OUTLINE_WIDTH           = 58 | LV_STYLE_PROP_EXT_DRAW,
-    LV_STYLE_OUTLINE_COLOR           = 59,
-    LV_STYLE_OUTLINE_COLOR_FILTERED  = 59 | LV_STYLE_PROP_FILTER,
-    LV_STYLE_OUTLINE_OPA             = 60 | LV_STYLE_PROP_EXT_DRAW,
-    LV_STYLE_OUTLINE_PAD             = 61 | LV_STYLE_PROP_EXT_DRAW,
+    LV_STYLE_BORDER_COLOR           = 48,
+    LV_STYLE_BORDER_OPA             = 49,
+    LV_STYLE_BORDER_WIDTH           = 50,
+    LV_STYLE_BORDER_SIDE            = 51,
+    LV_STYLE_BORDER_POST            = 52,
+    LV_STYLE_OUTLINE_WIDTH          = 53,
+    LV_STYLE_OUTLINE_COLOR          = 54,
+    LV_STYLE_OUTLINE_OPA            = 55,
+    LV_STYLE_OUTLINE_PAD            = 56,
 
     /*Group 4*/
-    LV_STYLE_SHADOW_WIDTH            = 64 | LV_STYLE_PROP_EXT_DRAW,
-    LV_STYLE_SHADOW_OFS_X            = 65 | LV_STYLE_PROP_EXT_DRAW,
-    LV_STYLE_SHADOW_OFS_Y            = 66 | LV_STYLE_PROP_EXT_DRAW,
-    LV_STYLE_SHADOW_SPREAD           = 67 | LV_STYLE_PROP_EXT_DRAW,
-    LV_STYLE_SHADOW_COLOR            = 68,
-    LV_STYLE_SHADOW_COLOR_FILTERED   = 68 | LV_STYLE_PROP_FILTER,
-    LV_STYLE_SHADOW_OPA              = 69 | LV_STYLE_PROP_EXT_DRAW,
-
-    LV_STYLE_IMG_OPA                 = 70,
-    LV_STYLE_IMG_RECOLOR             = 71,
-    LV_STYLE_IMG_RECOLOR_FILTERED    = 71 | LV_STYLE_PROP_FILTER,
-    LV_STYLE_IMG_RECOLOR_OPA         = 72,
-
-    LV_STYLE_LINE_WIDTH              = 73 | LV_STYLE_PROP_EXT_DRAW,
-    LV_STYLE_LINE_DASH_WIDTH         = 74,
-    LV_STYLE_LINE_DASH_GAP           = 75,
-    LV_STYLE_LINE_ROUNDED            = 76,
-    LV_STYLE_LINE_COLOR              = 77,
-    LV_STYLE_LINE_COLOR_FILTERED     = 77 | LV_STYLE_PROP_FILTER,
-    LV_STYLE_LINE_OPA                = 78,
+    LV_STYLE_SHADOW_WIDTH           = 64,
+    LV_STYLE_SHADOW_OFS_X           = 65,
+    LV_STYLE_SHADOW_OFS_Y           = 66,
+    LV_STYLE_SHADOW_SPREAD          = 67,
+    LV_STYLE_SHADOW_COLOR           = 68,
+    LV_STYLE_SHADOW_OPA             = 69,
+    LV_STYLE_IMG_OPA                = 70,
+    LV_STYLE_IMG_RECOLOR            = 71,
+    LV_STYLE_IMG_RECOLOR_OPA        = 72,
+    LV_STYLE_LINE_WIDTH             = 73,
+    LV_STYLE_LINE_DASH_WIDTH        = 74,
+    LV_STYLE_LINE_DASH_GAP          = 75,
+    LV_STYLE_LINE_ROUNDED           = 76,
+    LV_STYLE_LINE_COLOR             = 77,
+    LV_STYLE_LINE_OPA               = 78,
 
     /*Group 5*/
-    LV_STYLE_ARC_WIDTH               = 80 | LV_STYLE_PROP_EXT_DRAW,
-    LV_STYLE_ARC_ROUNDED             = 81,
-    LV_STYLE_ARC_COLOR               = 82,
-    LV_STYLE_ARC_COLOR_FILTERED      = 82 | LV_STYLE_PROP_FILTER,
-    LV_STYLE_ARC_OPA                 = 83,
-    LV_STYLE_ARC_IMG_SRC             = 84,
-
-    LV_STYLE_TEXT_COLOR              = 87 | LV_STYLE_PROP_INHERIT,
-    LV_STYLE_TEXT_COLOR_FILTERED     = 87 | LV_STYLE_PROP_INHERIT | LV_STYLE_PROP_FILTER,
-    LV_STYLE_TEXT_OPA                = 88 | LV_STYLE_PROP_INHERIT,
-    LV_STYLE_TEXT_FONT               = 89 | LV_STYLE_PROP_INHERIT | LV_STYLE_PROP_LAYOUT_REFR,
-    LV_STYLE_TEXT_LETTER_SPACE       = 90 | LV_STYLE_PROP_INHERIT | LV_STYLE_PROP_LAYOUT_REFR,
-    LV_STYLE_TEXT_LINE_SPACE         = 91 | LV_STYLE_PROP_INHERIT | LV_STYLE_PROP_LAYOUT_REFR,
-    LV_STYLE_TEXT_DECOR              = 92 | LV_STYLE_PROP_INHERIT,
-    LV_STYLE_TEXT_ALIGN              = 93 | LV_STYLE_PROP_INHERIT | LV_STYLE_PROP_LAYOUT_REFR,
+    LV_STYLE_ARC_WIDTH              = 80,
+    LV_STYLE_ARC_ROUNDED            = 81,
+    LV_STYLE_ARC_COLOR              = 82,
+    LV_STYLE_ARC_OPA                = 83,
+    LV_STYLE_ARC_IMG_SRC            = 84,
+    LV_STYLE_TEXT_COLOR             = 85,
+    LV_STYLE_TEXT_OPA               = 86,
+    LV_STYLE_TEXT_FONT              = 87,
+    LV_STYLE_TEXT_LETTER_SPACE      = 88,
+    LV_STYLE_TEXT_LINE_SPACE        = 89,
+    LV_STYLE_TEXT_DECOR             = 90,
+    LV_STYLE_TEXT_ALIGN             = 91,
 
     /*Group 6*/
-    LV_STYLE_RADIUS                  = 96,
-    LV_STYLE_CLIP_CORNER             = 97,
-    LV_STYLE_OPA                     = 98 | LV_STYLE_PROP_INHERIT,
-    LV_STYLE_COLOR_FILTER_DSC        = 99,
-    LV_STYLE_COLOR_FILTER_OPA        = 100,
-    LV_STYLE_ANIM_TIME               = 101,
-    LV_STYLE_ANIM_SPEED              = 102,
-    LV_STYLE_TRANSITION              = 103,
-    LV_STYLE_BLEND_MODE              = 104,
-    LV_STYLE_LAYOUT                  = 105 | LV_STYLE_PROP_LAYOUT_REFR,
-    LV_STYLE_BASE_DIR                = 106 | LV_STYLE_PROP_INHERIT | LV_STYLE_PROP_LAYOUT_REFR,
+    LV_STYLE_OPA                    = 96,
+    LV_STYLE_COLOR_FILTER_DSC       = 97,
+    LV_STYLE_COLOR_FILTER_OPA       = 98,
+    LV_STYLE_ANIM                   = 99,
+    LV_STYLE_ANIM_TIME              = 100,
+    LV_STYLE_ANIM_SPEED             = 101,
+    LV_STYLE_TRANSITION             = 102,
+    LV_STYLE_BLEND_MODE             = 103,
+    LV_STYLE_TRANSFORM_WIDTH        = 104,
+    LV_STYLE_TRANSFORM_HEIGHT       = 105,
+    LV_STYLE_TRANSLATE_X            = 106,
+    LV_STYLE_TRANSLATE_Y            = 107,
+    LV_STYLE_TRANSFORM_ZOOM         = 108,
+    LV_STYLE_TRANSFORM_ANGLE        = 109,
+    LV_STYLE_TRANSFORM_PIVOT_X      = 110,
+    LV_STYLE_TRANSFORM_PIVOT_Y      = 111,
 
     _LV_STYLE_LAST_BUILT_IN_PROP     = 111,
+    _LV_STYLE_NUM_BUILT_IN_PROPS     = _LV_STYLE_LAST_BUILT_IN_PROP + 1,
 
-    LV_STYLE_PROP_ANY                = 0xFFFF
+    LV_STYLE_PROP_ANY                = 0xFFFF,
+    _LV_STYLE_PROP_CONST             = 0xFFFF /* magic value for const styles */
 } lv_style_prop_t;
 
+enum {
+    LV_STYLE_RES_NOT_FOUND,
+    LV_STYLE_RES_FOUND,
+    LV_STYLE_RES_INHERIT
+};
+
+typedef uint8_t lv_style_res_t;
+
 /**
  * Descriptor for style transitions
  */
@@ -311,8 +329,7 @@ typedef struct {
         const lv_style_const_prop_t * const_props;
     } v_p;
 
-    uint16_t prop1 : 15;
-    uint16_t is_const : 1;
+    uint16_t prop1;
     uint8_t has_group;
     uint8_t prop_cnt;
 } lv_style_t;
@@ -339,7 +356,7 @@ void lv_style_reset(lv_style_t * style);
 
 /**
  * Register a new style property for custom usage
- * @return a new property ID.
+ * @return a new property ID, or LV_STYLE_PROP_INV if there are no more available.
  * @example
  * lv_style_prop_t MY_PROP;
  * static inline void lv_style_set_my_prop(lv_style_t * style, lv_color_t value) {
@@ -350,7 +367,12 @@ void lv_style_reset(lv_style_t * style);
  * ...
  * lv_style_set_my_prop(&style1, lv_palette_main(LV_PALETTE_RED));
  */
-lv_style_prop_t lv_style_register_prop(void);
+lv_style_prop_t lv_style_register_prop(uint8_t flag);
+
+/**
+ * Get the number of custom properties that have been registered thus far.
+ */
+lv_style_prop_t lv_style_get_num_custom_props(void);
 
 /**
  * Remove a property from a style
@@ -370,6 +392,15 @@ bool lv_style_remove_prop(lv_style_t * style, lv_style_prop_t prop);
  */
 void lv_style_set_prop(lv_style_t * style, lv_style_prop_t prop, lv_style_value_t value);
 
+/**
+ * Set a special meta state for a property in a style.
+ * This function shouldn't be used directly by the user.
+ * @param style pointer to style
+ * @param prop the ID of a property (e.g. `LV_STYLE_BG_COLOR`)
+ * @param meta the meta value to attach to the property in the style
+ */
+void lv_style_set_prop_meta(lv_style_t * style, lv_style_prop_t prop, uint16_t meta);
+
 /**
  * Get the value of a property
  * @param style pointer to a style
@@ -379,8 +410,30 @@ void lv_style_set_prop(lv_style_t * style, lv_style_prop_t prop, lv_style_value_
  *         LV_RES_OK: the property was fond, and `value` is set accordingly
  * @note For performance reasons there are no sanity check on `style`
  */
-lv_res_t lv_style_get_prop(const lv_style_t * style, lv_style_prop_t prop, lv_style_value_t * value);
+lv_style_res_t lv_style_get_prop(const lv_style_t * style, lv_style_prop_t prop, lv_style_value_t * value);
+
+/**
+ * Initialize a transition descriptor.
+ * @param tr        pointer to a transition descriptor to initialize
+ * @param props     an array with the properties to transition. The last element must be zero.
+ * @param path_cb   an animation path (ease) callback. If `NULL` liner path will be used.
+ * @param time      duration of the transition in [ms]
+ * @param delay     delay before the transition in [ms]
+ * @param user_data any custom data that will be saved in the transition animation and will be available when `path_cb` is called
+ * @example
+ * const static lv_style_prop_t trans_props[] = { LV_STYLE_BG_OPA, LV_STYLE_BG_COLOR, 0 };
+ *  static lv_style_transition_dsc_t trans1;
+ *  lv_style_transition_dsc_init(&trans1, trans_props, NULL, 300, 0, NULL);
+ */
+void lv_style_transition_dsc_init(lv_style_transition_dsc_t * tr, const lv_style_prop_t props[],
+                                  lv_anim_path_cb_t path_cb, uint32_t time, uint32_t delay, void * user_data);
 
+/**
+ * Get the default value of a property
+ * @param prop the ID of a property
+ * @return the default value
+ */
+lv_style_value_t lv_style_prop_get_default(lv_style_prop_t prop);
 
 /**
  * Get the value of a property
@@ -392,64 +445,56 @@ lv_res_t lv_style_get_prop(const lv_style_t * style, lv_style_prop_t prop, lv_st
  * @note For performance reasons there are no sanity check on `style`
  * @note This function is the same as ::lv_style_get_prop but inlined. Use it only on performance critical places
  */
-static inline lv_res_t lv_style_get_prop_inlined(const lv_style_t * style, lv_style_prop_t prop,
-                                                 lv_style_value_t * value)
+static inline lv_style_res_t lv_style_get_prop_inlined(const lv_style_t * style, lv_style_prop_t prop,
+                                                       lv_style_value_t * value)
 {
-    if(style->is_const) {
+    if(style->prop1 == LV_STYLE_PROP_ANY) {
         const lv_style_const_prop_t * const_prop;
-        for(const_prop = style->v_p.const_props; const_prop->prop != LV_STYLE_PROP_INV; const_prop++) {
-            if(const_prop->prop == prop) {
-                *value = const_prop->value;
-                return LV_RES_OK;
+        uint32_t i;
+        for(i = 0; i < style->prop_cnt; i++) {
+            const_prop = style->v_p.const_props + i;
+            lv_style_prop_t prop_id = LV_STYLE_PROP_ID_MASK(const_prop->prop);
+            if(prop_id == prop) {
+                if(const_prop->prop & LV_STYLE_PROP_META_INHERIT)
+                    return LV_STYLE_RES_INHERIT;
+                *value = (const_prop->prop & LV_STYLE_PROP_META_INITIAL) ? lv_style_prop_get_default(prop_id) : const_prop->value;
+                return LV_STYLE_RES_FOUND;
             }
         }
-        return LV_RES_INV;
+        return LV_STYLE_RES_NOT_FOUND;
     }
 
-    if(style->prop_cnt == 0) return LV_RES_INV;
+    if(style->prop_cnt == 0) return LV_STYLE_RES_NOT_FOUND;
 
     if(style->prop_cnt > 1) {
         uint8_t * tmp = style->v_p.values_and_props + style->prop_cnt * sizeof(lv_style_value_t);
         uint16_t * props = (uint16_t *)tmp;
         uint32_t i;
         for(i = 0; i < style->prop_cnt; i++) {
-            if(props[i] == prop) {
-                lv_style_value_t * values = (lv_style_value_t *)style->v_p.values_and_props;
-                *value = values[i];
-                return LV_RES_OK;
+            lv_style_prop_t prop_id = LV_STYLE_PROP_ID_MASK(props[i]);
+            if(prop_id == prop) {
+                if(props[i] & LV_STYLE_PROP_META_INHERIT)
+                    return LV_STYLE_RES_INHERIT;
+                if(props[i] & LV_STYLE_PROP_META_INITIAL)
+                    *value = lv_style_prop_get_default(prop_id);
+                else {
+                    lv_style_value_t * values = (lv_style_value_t *)style->v_p.values_and_props;
+                    *value = values[i];
+                }
+                return LV_STYLE_RES_FOUND;
             }
         }
     }
-    else if(style->prop1 == prop) {
-        *value = style->v_p.value1;
-        return LV_RES_OK;
+    else if(LV_STYLE_PROP_ID_MASK(style->prop1) == prop) {
+        if(style->prop1 & LV_STYLE_PROP_META_INHERIT)
+            return LV_STYLE_RES_INHERIT;
+        *value = (style->prop1 & LV_STYLE_PROP_META_INITIAL) ? lv_style_prop_get_default(LV_STYLE_PROP_ID_MASK(
+                                                                                             style->prop1)) : style->v_p.value1;
+        return LV_STYLE_RES_FOUND;
     }
-    return LV_RES_INV;
+    return LV_STYLE_RES_NOT_FOUND;
 }
 
-/**
- * Initialize a transition descriptor.
- * @param tr        pointer to a transition descriptor to initialize
- * @param props     an array with the properties to transition. The last element must be zero.
- * @param path_cb   an animation path (ease) callback. If `NULL` liner path will be used.
- * @param time      duration of the transition in [ms]
- * @param delay     delay before the transition in [ms]
- * @param user_data any custom data that will be saved in the transition animation and will be available when `path_cb` is called
- * @example
- * const static lv_style_prop_t trans_props[] = { LV_STYLE_BG_OPA, LV_STYLE_BG_COLOR, 0 };
- *  static lv_style_transition_dsc_t trans1;
- *  lv_style_transition_dsc_init(&trans1, trans_props, NULL, 300, 0, NULL);
- */
-void lv_style_transition_dsc_init(lv_style_transition_dsc_t * tr, const lv_style_prop_t props[],
-                                  lv_anim_path_cb_t path_cb, uint32_t time, uint32_t delay, void * user_data);
-
-/**
- * Get the default value of a property
- * @param prop the ID of a property
- * @return the default value
- */
-lv_style_value_t lv_style_prop_get_default(lv_style_prop_t prop);
-
 /**
  * Checks if a style is empty (has no properties)
  * @param style pointer to a style
@@ -465,6 +510,14 @@ bool lv_style_is_empty(const lv_style_t * style);
  */
 uint8_t _lv_style_get_prop_group(lv_style_prop_t prop);
 
+/**
+ * Get the flags of a built-in or custom property.
+ *
+ * @param prop a style property
+ * @return the flags of the property
+ */
+uint8_t _lv_style_prop_lookup_flags(lv_style_prop_t prop);
+
 #include "lv_style_gen.h"
 
 static inline void lv_style_set_size(lv_style_t * style, lv_coord_t value)
@@ -499,6 +552,20 @@ static inline void lv_style_set_pad_gap(lv_style_t * style, lv_coord_t value)
     lv_style_set_pad_column(style, value);
 }
 
+/**
+ * @brief Check if the style property has a specified behavioral flag.
+ *
+ * Do not pass multiple flags to this function as backwards-compatibility is not guaranteed
+ * for that.
+ *
+ * @param prop Property ID
+ * @param flag Flag
+ * @return true if the flag is set for this property
+ */
+static inline bool lv_style_prop_has_flag(lv_style_prop_t prop, uint8_t flag)
+{
+    return _lv_style_prop_lookup_flags(prop) & flag;
+}
 
 /*************************
  *    GLOBAL VARIABLES
index b806a99..13d8560 100644 (file)
@@ -120,6 +120,22 @@ void lv_style_set_transform_angle(lv_style_t * style, lv_coord_t value)
     lv_style_set_prop(style, LV_STYLE_TRANSFORM_ANGLE, v);
 }
 
+void lv_style_set_transform_pivot_x(lv_style_t * style, lv_coord_t value)
+{
+    lv_style_value_t v = {
+        .num = (int32_t)value
+    };
+    lv_style_set_prop(style, LV_STYLE_TRANSFORM_PIVOT_X, v);
+}
+
+void lv_style_set_transform_pivot_y(lv_style_t * style, lv_coord_t value)
+{
+    lv_style_value_t v = {
+        .num = (int32_t)value
+    };
+    lv_style_set_prop(style, LV_STYLE_TRANSFORM_PIVOT_Y, v);
+}
+
 void lv_style_set_pad_top(lv_style_t * style, lv_coord_t value)
 {
     lv_style_value_t v = {
@@ -176,14 +192,6 @@ void lv_style_set_bg_color(lv_style_t * style, lv_color_t value)
     lv_style_set_prop(style, LV_STYLE_BG_COLOR, v);
 }
 
-void lv_style_set_bg_color_filtered(lv_style_t * style, lv_color_t value)
-{
-    lv_style_value_t v = {
-        .color = value
-    };
-    lv_style_set_prop(style, LV_STYLE_BG_COLOR_FILTERED, v);
-}
-
 void lv_style_set_bg_opa(lv_style_t * style, lv_opa_t value)
 {
     lv_style_value_t v = {
@@ -200,14 +208,6 @@ void lv_style_set_bg_grad_color(lv_style_t * style, lv_color_t value)
     lv_style_set_prop(style, LV_STYLE_BG_GRAD_COLOR, v);
 }
 
-void lv_style_set_bg_grad_color_filtered(lv_style_t * style, lv_color_t value)
-{
-    lv_style_value_t v = {
-        .color = value
-    };
-    lv_style_set_prop(style, LV_STYLE_BG_GRAD_COLOR_FILTERED, v);
-}
-
 void lv_style_set_bg_grad_dir(lv_style_t * style, lv_grad_dir_t value)
 {
     lv_style_value_t v = {
@@ -272,14 +272,6 @@ void lv_style_set_bg_img_recolor(lv_style_t * style, lv_color_t value)
     lv_style_set_prop(style, LV_STYLE_BG_IMG_RECOLOR, v);
 }
 
-void lv_style_set_bg_img_recolor_filtered(lv_style_t * style, lv_color_t value)
-{
-    lv_style_value_t v = {
-        .color = value
-    };
-    lv_style_set_prop(style, LV_STYLE_BG_IMG_RECOLOR_FILTERED, v);
-}
-
 void lv_style_set_bg_img_recolor_opa(lv_style_t * style, lv_opa_t value)
 {
     lv_style_value_t v = {
@@ -304,14 +296,6 @@ void lv_style_set_border_color(lv_style_t * style, lv_color_t value)
     lv_style_set_prop(style, LV_STYLE_BORDER_COLOR, v);
 }
 
-void lv_style_set_border_color_filtered(lv_style_t * style, lv_color_t value)
-{
-    lv_style_value_t v = {
-        .color = value
-    };
-    lv_style_set_prop(style, LV_STYLE_BORDER_COLOR_FILTERED, v);
-}
-
 void lv_style_set_border_opa(lv_style_t * style, lv_opa_t value)
 {
     lv_style_value_t v = {
@@ -360,14 +344,6 @@ void lv_style_set_outline_color(lv_style_t * style, lv_color_t value)
     lv_style_set_prop(style, LV_STYLE_OUTLINE_COLOR, v);
 }
 
-void lv_style_set_outline_color_filtered(lv_style_t * style, lv_color_t value)
-{
-    lv_style_value_t v = {
-        .color = value
-    };
-    lv_style_set_prop(style, LV_STYLE_OUTLINE_COLOR_FILTERED, v);
-}
-
 void lv_style_set_outline_opa(lv_style_t * style, lv_opa_t value)
 {
     lv_style_value_t v = {
@@ -424,14 +400,6 @@ void lv_style_set_shadow_color(lv_style_t * style, lv_color_t value)
     lv_style_set_prop(style, LV_STYLE_SHADOW_COLOR, v);
 }
 
-void lv_style_set_shadow_color_filtered(lv_style_t * style, lv_color_t value)
-{
-    lv_style_value_t v = {
-        .color = value
-    };
-    lv_style_set_prop(style, LV_STYLE_SHADOW_COLOR_FILTERED, v);
-}
-
 void lv_style_set_shadow_opa(lv_style_t * style, lv_opa_t value)
 {
     lv_style_value_t v = {
@@ -456,14 +424,6 @@ void lv_style_set_img_recolor(lv_style_t * style, lv_color_t value)
     lv_style_set_prop(style, LV_STYLE_IMG_RECOLOR, v);
 }
 
-void lv_style_set_img_recolor_filtered(lv_style_t * style, lv_color_t value)
-{
-    lv_style_value_t v = {
-        .color = value
-    };
-    lv_style_set_prop(style, LV_STYLE_IMG_RECOLOR_FILTERED, v);
-}
-
 void lv_style_set_img_recolor_opa(lv_style_t * style, lv_opa_t value)
 {
     lv_style_value_t v = {
@@ -512,14 +472,6 @@ void lv_style_set_line_color(lv_style_t * style, lv_color_t value)
     lv_style_set_prop(style, LV_STYLE_LINE_COLOR, v);
 }
 
-void lv_style_set_line_color_filtered(lv_style_t * style, lv_color_t value)
-{
-    lv_style_value_t v = {
-        .color = value
-    };
-    lv_style_set_prop(style, LV_STYLE_LINE_COLOR_FILTERED, v);
-}
-
 void lv_style_set_line_opa(lv_style_t * style, lv_opa_t value)
 {
     lv_style_value_t v = {
@@ -552,14 +504,6 @@ void lv_style_set_arc_color(lv_style_t * style, lv_color_t value)
     lv_style_set_prop(style, LV_STYLE_ARC_COLOR, v);
 }
 
-void lv_style_set_arc_color_filtered(lv_style_t * style, lv_color_t value)
-{
-    lv_style_value_t v = {
-        .color = value
-    };
-    lv_style_set_prop(style, LV_STYLE_ARC_COLOR_FILTERED, v);
-}
-
 void lv_style_set_arc_opa(lv_style_t * style, lv_opa_t value)
 {
     lv_style_value_t v = {
@@ -584,14 +528,6 @@ void lv_style_set_text_color(lv_style_t * style, lv_color_t value)
     lv_style_set_prop(style, LV_STYLE_TEXT_COLOR, v);
 }
 
-void lv_style_set_text_color_filtered(lv_style_t * style, lv_color_t value)
-{
-    lv_style_value_t v = {
-        .color = value
-    };
-    lv_style_set_prop(style, LV_STYLE_TEXT_COLOR_FILTERED, v);
-}
-
 void lv_style_set_text_opa(lv_style_t * style, lv_opa_t value)
 {
     lv_style_value_t v = {
@@ -680,6 +616,14 @@ void lv_style_set_color_filter_opa(lv_style_t * style, lv_opa_t value)
     lv_style_set_prop(style, LV_STYLE_COLOR_FILTER_OPA, v);
 }
 
+void lv_style_set_anim(lv_style_t * style, const lv_anim_t * value)
+{
+    lv_style_value_t v = {
+        .ptr = value
+    };
+    lv_style_set_prop(style, LV_STYLE_ANIM, v);
+}
+
 void lv_style_set_anim_time(lv_style_t * style, uint32_t value)
 {
     lv_style_value_t v = {
index 04e1f1a..8bf3b68 100644 (file)
@@ -13,6 +13,8 @@ void lv_style_set_translate_x(lv_style_t * style, lv_coord_t value);
 void lv_style_set_translate_y(lv_style_t * style, lv_coord_t value);
 void lv_style_set_transform_zoom(lv_style_t * style, lv_coord_t value);
 void lv_style_set_transform_angle(lv_style_t * style, lv_coord_t value);
+void lv_style_set_transform_pivot_x(lv_style_t * style, lv_coord_t value);
+void lv_style_set_transform_pivot_y(lv_style_t * style, lv_coord_t value);
 void lv_style_set_pad_top(lv_style_t * style, lv_coord_t value);
 void lv_style_set_pad_bottom(lv_style_t * style, lv_coord_t value);
 void lv_style_set_pad_left(lv_style_t * style, lv_coord_t value);
@@ -20,10 +22,8 @@ void lv_style_set_pad_right(lv_style_t * style, lv_coord_t value);
 void lv_style_set_pad_row(lv_style_t * style, lv_coord_t value);
 void lv_style_set_pad_column(lv_style_t * style, lv_coord_t value);
 void lv_style_set_bg_color(lv_style_t * style, lv_color_t value);
-void lv_style_set_bg_color_filtered(lv_style_t * style, lv_color_t value);
 void lv_style_set_bg_opa(lv_style_t * style, lv_opa_t value);
 void lv_style_set_bg_grad_color(lv_style_t * style, lv_color_t value);
-void lv_style_set_bg_grad_color_filtered(lv_style_t * style, lv_color_t value);
 void lv_style_set_bg_grad_dir(lv_style_t * style, lv_grad_dir_t value);
 void lv_style_set_bg_main_stop(lv_style_t * style, lv_coord_t value);
 void lv_style_set_bg_grad_stop(lv_style_t * style, lv_coord_t value);
@@ -32,18 +32,15 @@ void lv_style_set_bg_dither_mode(lv_style_t * style, lv_dither_mode_t value);
 void lv_style_set_bg_img_src(lv_style_t * style, const void * value);
 void lv_style_set_bg_img_opa(lv_style_t * style, lv_opa_t value);
 void lv_style_set_bg_img_recolor(lv_style_t * style, lv_color_t value);
-void lv_style_set_bg_img_recolor_filtered(lv_style_t * style, lv_color_t value);
 void lv_style_set_bg_img_recolor_opa(lv_style_t * style, lv_opa_t value);
 void lv_style_set_bg_img_tiled(lv_style_t * style, bool value);
 void lv_style_set_border_color(lv_style_t * style, lv_color_t value);
-void lv_style_set_border_color_filtered(lv_style_t * style, lv_color_t value);
 void lv_style_set_border_opa(lv_style_t * style, lv_opa_t value);
 void lv_style_set_border_width(lv_style_t * style, lv_coord_t value);
 void lv_style_set_border_side(lv_style_t * style, lv_border_side_t value);
 void lv_style_set_border_post(lv_style_t * style, bool value);
 void lv_style_set_outline_width(lv_style_t * style, lv_coord_t value);
 void lv_style_set_outline_color(lv_style_t * style, lv_color_t value);
-void lv_style_set_outline_color_filtered(lv_style_t * style, lv_color_t value);
 void lv_style_set_outline_opa(lv_style_t * style, lv_opa_t value);
 void lv_style_set_outline_pad(lv_style_t * style, lv_coord_t value);
 void lv_style_set_shadow_width(lv_style_t * style, lv_coord_t value);
@@ -51,27 +48,22 @@ void lv_style_set_shadow_ofs_x(lv_style_t * style, lv_coord_t value);
 void lv_style_set_shadow_ofs_y(lv_style_t * style, lv_coord_t value);
 void lv_style_set_shadow_spread(lv_style_t * style, lv_coord_t value);
 void lv_style_set_shadow_color(lv_style_t * style, lv_color_t value);
-void lv_style_set_shadow_color_filtered(lv_style_t * style, lv_color_t value);
 void lv_style_set_shadow_opa(lv_style_t * style, lv_opa_t value);
 void lv_style_set_img_opa(lv_style_t * style, lv_opa_t value);
 void lv_style_set_img_recolor(lv_style_t * style, lv_color_t value);
-void lv_style_set_img_recolor_filtered(lv_style_t * style, lv_color_t value);
 void lv_style_set_img_recolor_opa(lv_style_t * style, lv_opa_t value);
 void lv_style_set_line_width(lv_style_t * style, lv_coord_t value);
 void lv_style_set_line_dash_width(lv_style_t * style, lv_coord_t value);
 void lv_style_set_line_dash_gap(lv_style_t * style, lv_coord_t value);
 void lv_style_set_line_rounded(lv_style_t * style, bool value);
 void lv_style_set_line_color(lv_style_t * style, lv_color_t value);
-void lv_style_set_line_color_filtered(lv_style_t * style, lv_color_t value);
 void lv_style_set_line_opa(lv_style_t * style, lv_opa_t value);
 void lv_style_set_arc_width(lv_style_t * style, lv_coord_t value);
 void lv_style_set_arc_rounded(lv_style_t * style, bool value);
 void lv_style_set_arc_color(lv_style_t * style, lv_color_t value);
-void lv_style_set_arc_color_filtered(lv_style_t * style, lv_color_t value);
 void lv_style_set_arc_opa(lv_style_t * style, lv_opa_t value);
 void lv_style_set_arc_img_src(lv_style_t * style, const void * value);
 void lv_style_set_text_color(lv_style_t * style, lv_color_t value);
-void lv_style_set_text_color_filtered(lv_style_t * style, lv_color_t value);
 void lv_style_set_text_opa(lv_style_t * style, lv_opa_t value);
 void lv_style_set_text_font(lv_style_t * style, const lv_font_t * value);
 void lv_style_set_text_letter_space(lv_style_t * style, lv_coord_t value);
@@ -83,6 +75,7 @@ void lv_style_set_clip_corner(lv_style_t * style, bool value);
 void lv_style_set_opa(lv_style_t * style, lv_opa_t value);
 void lv_style_set_color_filter_dsc(lv_style_t * style, const lv_color_filter_dsc_t * value);
 void lv_style_set_color_filter_opa(lv_style_t * style, lv_opa_t value);
+void lv_style_set_anim(lv_style_t * style, const lv_anim_t * value);
 void lv_style_set_anim_time(lv_style_t * style, uint32_t value);
 void lv_style_set_anim_speed(lv_style_t * style, uint32_t value);
 void lv_style_set_transition(lv_style_t * style, const lv_style_transition_dsc_t * value);
@@ -165,6 +158,16 @@ void lv_style_set_base_dir(lv_style_t * style, lv_base_dir_t value);
         .prop = LV_STYLE_TRANSFORM_ANGLE, .value = { .num = (int32_t)val } \
     }
 
+#define LV_STYLE_CONST_TRANSFORM_PIVOT_X(val) \
+    { \
+        .prop = LV_STYLE_TRANSFORM_PIVOT_X, .value = { .num = (int32_t)val } \
+    }
+
+#define LV_STYLE_CONST_TRANSFORM_PIVOT_Y(val) \
+    { \
+        .prop = LV_STYLE_TRANSFORM_PIVOT_Y, .value = { .num = (int32_t)val } \
+    }
+
 #define LV_STYLE_CONST_PAD_TOP(val) \
     { \
         .prop = LV_STYLE_PAD_TOP, .value = { .num = (int32_t)val } \
@@ -200,11 +203,6 @@ void lv_style_set_base_dir(lv_style_t * style, lv_base_dir_t value);
         .prop = LV_STYLE_BG_COLOR, .value = { .color = val } \
     }
 
-#define LV_STYLE_CONST_BG_COLOR_FILTERED(val) \
-    { \
-        .prop = LV_STYLE_BG_COLOR_FILTERED, .value = { .color = val } \
-    }
-
 #define LV_STYLE_CONST_BG_OPA(val) \
     { \
         .prop = LV_STYLE_BG_OPA, .value = { .num = (int32_t)val } \
@@ -215,11 +213,6 @@ void lv_style_set_base_dir(lv_style_t * style, lv_base_dir_t value);
         .prop = LV_STYLE_BG_GRAD_COLOR, .value = { .color = val } \
     }
 
-#define LV_STYLE_CONST_BG_GRAD_COLOR_FILTERED(val) \
-    { \
-        .prop = LV_STYLE_BG_GRAD_COLOR_FILTERED, .value = { .color = val } \
-    }
-
 #define LV_STYLE_CONST_BG_GRAD_DIR(val) \
     { \
         .prop = LV_STYLE_BG_GRAD_DIR, .value = { .num = (int32_t)val } \
@@ -260,11 +253,6 @@ void lv_style_set_base_dir(lv_style_t * style, lv_base_dir_t value);
         .prop = LV_STYLE_BG_IMG_RECOLOR, .value = { .color = val } \
     }
 
-#define LV_STYLE_CONST_BG_IMG_RECOLOR_FILTERED(val) \
-    { \
-        .prop = LV_STYLE_BG_IMG_RECOLOR_FILTERED, .value = { .color = val } \
-    }
-
 #define LV_STYLE_CONST_BG_IMG_RECOLOR_OPA(val) \
     { \
         .prop = LV_STYLE_BG_IMG_RECOLOR_OPA, .value = { .num = (int32_t)val } \
@@ -280,11 +268,6 @@ void lv_style_set_base_dir(lv_style_t * style, lv_base_dir_t value);
         .prop = LV_STYLE_BORDER_COLOR, .value = { .color = val } \
     }
 
-#define LV_STYLE_CONST_BORDER_COLOR_FILTERED(val) \
-    { \
-        .prop = LV_STYLE_BORDER_COLOR_FILTERED, .value = { .color = val } \
-    }
-
 #define LV_STYLE_CONST_BORDER_OPA(val) \
     { \
         .prop = LV_STYLE_BORDER_OPA, .value = { .num = (int32_t)val } \
@@ -315,11 +298,6 @@ void lv_style_set_base_dir(lv_style_t * style, lv_base_dir_t value);
         .prop = LV_STYLE_OUTLINE_COLOR, .value = { .color = val } \
     }
 
-#define LV_STYLE_CONST_OUTLINE_COLOR_FILTERED(val) \
-    { \
-        .prop = LV_STYLE_OUTLINE_COLOR_FILTERED, .value = { .color = val } \
-    }
-
 #define LV_STYLE_CONST_OUTLINE_OPA(val) \
     { \
         .prop = LV_STYLE_OUTLINE_OPA, .value = { .num = (int32_t)val } \
@@ -355,11 +333,6 @@ void lv_style_set_base_dir(lv_style_t * style, lv_base_dir_t value);
         .prop = LV_STYLE_SHADOW_COLOR, .value = { .color = val } \
     }
 
-#define LV_STYLE_CONST_SHADOW_COLOR_FILTERED(val) \
-    { \
-        .prop = LV_STYLE_SHADOW_COLOR_FILTERED, .value = { .color = val } \
-    }
-
 #define LV_STYLE_CONST_SHADOW_OPA(val) \
     { \
         .prop = LV_STYLE_SHADOW_OPA, .value = { .num = (int32_t)val } \
@@ -375,11 +348,6 @@ void lv_style_set_base_dir(lv_style_t * style, lv_base_dir_t value);
         .prop = LV_STYLE_IMG_RECOLOR, .value = { .color = val } \
     }
 
-#define LV_STYLE_CONST_IMG_RECOLOR_FILTERED(val) \
-    { \
-        .prop = LV_STYLE_IMG_RECOLOR_FILTERED, .value = { .color = val } \
-    }
-
 #define LV_STYLE_CONST_IMG_RECOLOR_OPA(val) \
     { \
         .prop = LV_STYLE_IMG_RECOLOR_OPA, .value = { .num = (int32_t)val } \
@@ -410,11 +378,6 @@ void lv_style_set_base_dir(lv_style_t * style, lv_base_dir_t value);
         .prop = LV_STYLE_LINE_COLOR, .value = { .color = val } \
     }
 
-#define LV_STYLE_CONST_LINE_COLOR_FILTERED(val) \
-    { \
-        .prop = LV_STYLE_LINE_COLOR_FILTERED, .value = { .color = val } \
-    }
-
 #define LV_STYLE_CONST_LINE_OPA(val) \
     { \
         .prop = LV_STYLE_LINE_OPA, .value = { .num = (int32_t)val } \
@@ -435,11 +398,6 @@ void lv_style_set_base_dir(lv_style_t * style, lv_base_dir_t value);
         .prop = LV_STYLE_ARC_COLOR, .value = { .color = val } \
     }
 
-#define LV_STYLE_CONST_ARC_COLOR_FILTERED(val) \
-    { \
-        .prop = LV_STYLE_ARC_COLOR_FILTERED, .value = { .color = val } \
-    }
-
 #define LV_STYLE_CONST_ARC_OPA(val) \
     { \
         .prop = LV_STYLE_ARC_OPA, .value = { .num = (int32_t)val } \
@@ -455,11 +413,6 @@ void lv_style_set_base_dir(lv_style_t * style, lv_base_dir_t value);
         .prop = LV_STYLE_TEXT_COLOR, .value = { .color = val } \
     }
 
-#define LV_STYLE_CONST_TEXT_COLOR_FILTERED(val) \
-    { \
-        .prop = LV_STYLE_TEXT_COLOR_FILTERED, .value = { .color = val } \
-    }
-
 #define LV_STYLE_CONST_TEXT_OPA(val) \
     { \
         .prop = LV_STYLE_TEXT_OPA, .value = { .num = (int32_t)val } \
@@ -515,6 +468,11 @@ void lv_style_set_base_dir(lv_style_t * style, lv_base_dir_t value);
         .prop = LV_STYLE_COLOR_FILTER_OPA, .value = { .num = (int32_t)val } \
     }
 
+#define LV_STYLE_CONST_ANIM(val) \
+    { \
+        .prop = LV_STYLE_ANIM, .value = { .ptr = val } \
+    }
+
 #define LV_STYLE_CONST_ANIM_TIME(val) \
     { \
         .prop = LV_STYLE_ANIM_TIME, .value = { .num = (int32_t)val } \
index 51be3cf..d3253c7 100644 (file)
@@ -64,6 +64,8 @@ void _lv_timer_core_init(void)
  * Call it periodically to handle lv_timers.
  * @return the time after which it must be called again
  */
+#include "helios_debug.h"
+#define lv_timer_log(msg, ...)      custom_log("lv_timer_log", msg, ##__VA_ARGS__)
 LV_ATTRIBUTE_TIMER_HANDLER uint32_t lv_timer_handler(void)
 {
     TIMER_TRACE("begin");
@@ -72,11 +74,13 @@ LV_ATTRIBUTE_TIMER_HANDLER uint32_t lv_timer_handler(void)
     static bool already_running = false;
     if(already_running) {
         TIMER_TRACE("already running, concurrent calls are not allow, returning");
-        //return 1;
+        lv_timer_log("lv_timer_handler:ERROR1:already_running:%d",already_running);
+        return 1;
     }
     already_running = true;
 
     if(lv_timer_run == false) {
+        lv_timer_log("lv_timer_handler:ERROR2:already_running:%d",already_running);
         already_running = false; /*Release mutex*/
         return 1;
     }
index ce94c7b..a9a8e50 100644 (file)
@@ -13,6 +13,7 @@ extern "C" {
  *      INCLUDES
  *********************/
 #include "../lv_conf_internal.h"
+#include "../hal/lv_hal_tick.h"
 
 #include <stdint.h>
 #include <stdbool.h>
@@ -68,6 +69,24 @@ LV_ATTRIBUTE_TIMER_HANDLER uint32_t lv_timer_handler(void);
 
 //! @endcond
 
+/**
+ * Call it in the super-loop of main() or threads. It will run lv_timer_handler()
+ * with a given period in ms. You can use it with sleep or delay in OS environment.
+ * This function is used to simplify the porting.
+ * @param __ms the period for running lv_timer_handler()
+ */
+static inline LV_ATTRIBUTE_TIMER_HANDLER uint32_t lv_timer_handler_run_in_period(uint32_t ms)
+{
+    static uint32_t last_tick = 0;
+    uint32_t curr_tick = lv_tick_get();
+
+    if((curr_tick - last_tick) >= (ms)) {
+        last_tick = curr_tick;
+        return lv_timer_handler();
+    }
+    return 1;
+}
+
 /**
  * Create an "empty" timer. It needs to initialized with at least
  * `lv_timer_set_cb` and `lv_timer_set_period`
index 64197f9..27e0a46 100644 (file)
@@ -1157,18 +1157,22 @@ void * lv_tlsf_memalign(lv_tlsf_t tlsf, size_t align, size_t size)
     return block_prepare_used(control, block, adjust);
 }
 
-void lv_tlsf_free(lv_tlsf_t tlsf, const void * ptr)
+size_t lv_tlsf_free(lv_tlsf_t tlsf, const void * ptr)
 {
+    size_t size = 0;
     /* Don't attempt to free a NULL pointer. */
     if(ptr) {
         control_t * control = tlsf_cast(control_t *, tlsf);
         block_header_t * block = block_from_ptr(ptr);
         tlsf_assert(!block_is_free(block) && "block already marked as free");
+        size = block->size;
         block_mark_as_free(block);
         block = block_merge_prev(control, block);
         block = block_merge_next(control, block);
         block_insert(control, block);
     }
+
+    return size;
 }
 
 /*
@@ -1204,6 +1208,10 @@ void * lv_tlsf_realloc(lv_tlsf_t tlsf, void * ptr, size_t size)
         const size_t cursize = block_size(block);
         const size_t combined = cursize + block_size(next) + block_header_overhead;
         const size_t adjust = adjust_request_size(size, ALIGN_SIZE);
+        if(size > cursize && adjust == 0) {
+            /* The request is probably too large, fail */
+            return NULL;
+        }
 
         tlsf_assert(!block_is_free(block) && "block already marked as free");
 
index 9380ee8..f12590b 100644 (file)
@@ -66,7 +66,7 @@ void lv_tlsf_remove_pool(lv_tlsf_t tlsf, lv_pool_t pool);
 void * lv_tlsf_malloc(lv_tlsf_t tlsf, size_t bytes);
 void * lv_tlsf_memalign(lv_tlsf_t tlsf, size_t align, size_t bytes);
 void * lv_tlsf_realloc(lv_tlsf_t tlsf, void * ptr, size_t size);
-void lv_tlsf_free(lv_tlsf_t tlsf, const void * ptr);
+size_t lv_tlsf_free(lv_tlsf_t tlsf, const void * ptr);
 
 /* Returns internal block size, not original request size */
 size_t lv_tlsf_block_size(void * ptr);
index 3879b48..da7eca0 100644 (file)
@@ -161,9 +161,10 @@ void lv_txt_get_size(lv_point_t * size_res, const char * text, const lv_font_t *
  * @param txt a '\0' terminated string
  * @param font pointer to a font
  * @param letter_space letter space
- * @param max_width max with of the text (break the lines to fit this size) Set CORD_MAX to avoid line breaks
+ * @param max_width max width of the text (break the lines to fit this size). Set COORD_MAX to avoid line breaks
  * @param flags settings for the text from 'txt_flag_type' enum
  * @param[out] word_w_ptr width (in pixels) of the parsed word. May be NULL.
+ * @param cmd_state pointer to a txt_cmd_state_t variable which stores the current state of command processing
  * @param force Force return the fraction of the word that can fit in the provided space.
  * @return the index of the first char of the next word (in byte index not letter index. With UTF-8 they are different)
  */
@@ -519,8 +520,8 @@ static uint8_t lv_txt_utf8_size(const char * str)
 }
 
 /**
- * Convert an Unicode letter to UTF-8.
- * @param letter_uni an Unicode letter
+ * Convert a Unicode letter to UTF-8.
+ * @param letter_uni a Unicode letter
  * @return UTF-8 coded character in Little Endian to be compatible with C chars (e.g. 'Á', 'Ű')
  */
 static uint32_t lv_txt_unicode_to_utf8(uint32_t letter_uni)
@@ -546,6 +547,9 @@ static uint32_t lv_txt_unicode_to_utf8(uint32_t letter_uni)
         bytes[2] = ((letter_uni >> 6) & 0x3F) | 0x80;
         bytes[3] = ((letter_uni >> 0) & 0x3F) | 0x80;
     }
+    else {
+        return 0;
+    }
 
     uint32_t * res_p = (uint32_t *)bytes;
     return *res_p;
@@ -761,8 +765,8 @@ static uint8_t lv_txt_iso8859_1_size(const char * str)
 }
 
 /**
- * Convert an Unicode letter to ISO8859-1.
- * @param letter_uni an Unicode letter
+ * Convert a Unicode letter to ISO8859-1.
+ * @param letter_uni a Unicode letter
  * @return ISO8859-1 coded character in Little Endian to be compatible with C chars (e.g. 'Á', 'Ű')
  */
 static uint32_t lv_txt_unicode_to_iso8859_1(uint32_t letter_uni)
@@ -794,7 +798,7 @@ static uint32_t lv_txt_iso8859_1_conv_wc(uint32_t c)
  */
 static uint32_t lv_txt_iso8859_1_next(const char * txt, uint32_t * i)
 {
-    if(i == NULL) return txt[1]; /*Get the next char*/
+    if(i == NULL) return txt[0]; /*Get the next char*/
 
     uint8_t letter = txt[*i];
     (*i)++;
index 4f134ab..46050dc 100644 (file)
@@ -77,7 +77,7 @@ typedef uint8_t lv_text_align_t;
  * @param letter_space letter space of the text
  * @param line_space line space of the text
  * @param flags settings for the text from ::lv_text_flag_t
- * @param max_width max with of the text (break the lines to fit this size) Set CORD_MAX to avoid
+ * @param max_width max width of the text (break the lines to fit this size). Set COORD_MAX to avoid
  * line breaks
  */
 void lv_txt_get_size(lv_point_t * size_res, const char * text, const lv_font_t * font, lv_coord_t letter_space,
@@ -88,7 +88,7 @@ void lv_txt_get_size(lv_point_t * size_res, const char * text, const lv_font_t *
  * @param txt a '\0' terminated string
  * @param font pointer to a font
  * @param letter_space letter space
- * @param max_width max with of the text (break the lines to fit this size) Set CORD_MAX to avoid
+ * @param max_width max width of the text (break the lines to fit this size). Set COORD_MAX to avoid
  * line breaks
  * @param used_width When used_width != NULL, save the width of this line if
  * flag == LV_TEXT_FLAG_NONE, otherwise save -1.
@@ -195,8 +195,8 @@ static inline bool _lv_txt_is_break_char(uint32_t letter)
 extern uint8_t (*_lv_txt_encoded_size)(const char *);
 
 /**
- * Convert an Unicode letter to encoded
- * @param letter_uni an Unicode letter
+ * Convert a Unicode letter to encoded
+ * @param letter_uni a Unicode letter
  * @return Encoded character in Little Endian to be compatible with C chars (e.g. 'Á', 'Ü')
  */
 extern uint32_t (*_lv_txt_unicode_to_encoded)(uint32_t);
index 9f8ef4c..84aee10 100644 (file)
@@ -77,7 +77,7 @@ typedef uint32_t lv_uintptr_t;
 #define _LV_CONCAT3(x, y, z) x ## y ## z
 #define LV_CONCAT3(x, y, z) _LV_CONCAT3(x, y, z)
 
-#if defined(PYCPARSER)
+#if defined(PYCPARSER) || defined(__CC_ARM)
 #define LV_FORMAT_ATTRIBUTE(fmtstr, vararg)
 #elif defined(__GNUC__) && ((__GNUC__ == 4 && __GNUC_MINOR__ >= 4) || __GNUC__ > 4)
 #define LV_FORMAT_ATTRIBUTE(fmtstr, vararg) __attribute__((format(gnu_printf, fmtstr, vararg)))
index 99ffb1f..848c20a 100644 (file)
@@ -35,9 +35,11 @@ static void lv_arc_draw(lv_event_t * e);
 static void lv_arc_event(const lv_obj_class_t * class_p, lv_event_t * e);
 static void inv_arc_area(lv_obj_t * arc, uint16_t start_angle, uint16_t end_angle, lv_part_t part);
 static void inv_knob_area(lv_obj_t * obj);
-static void get_center(lv_obj_t * obj, lv_point_t * center, lv_coord_t * arc_r);
+static void get_center(const lv_obj_t * obj, lv_point_t * center, lv_coord_t * arc_r);
+static lv_coord_t get_angle(const lv_obj_t * obj);
 static void get_knob_area(lv_obj_t * arc, const lv_point_t * center, lv_coord_t r, lv_area_t * knob_area);
 static void value_update(lv_obj_t * arc);
+static lv_coord_t knob_get_extra_size(lv_obj_t * obj);
 
 /**********************
  *  STATIC VARIABLES
@@ -317,6 +319,60 @@ lv_arc_mode_t lv_arc_get_mode(const lv_obj_t * obj)
     return ((lv_arc_t *) obj)->type;
 }
 
+/*=====================
+ * Other functions
+ *====================*/
+
+
+void lv_arc_align_obj_to_angle(const lv_obj_t * obj, lv_obj_t * obj_to_align, lv_coord_t r_offset)
+{
+    LV_ASSERT_OBJ(obj, MY_CLASS);
+    LV_ASSERT_NULL(obj_to_align);
+
+    lv_obj_update_layout(obj);
+
+    lv_point_t center;
+    lv_coord_t arc_r;
+    get_center(obj, &center, &arc_r);
+    lv_coord_t indic_width = lv_obj_get_style_arc_width(obj, LV_PART_INDICATOR);
+    lv_coord_t indic_width_half = indic_width / 2;
+    arc_r -= indic_width_half;
+    arc_r += r_offset;
+
+    uint16_t angle = get_angle(obj);
+    lv_coord_t knob_x = (arc_r * lv_trigo_sin(angle + 90)) >> LV_TRIGO_SHIFT;
+    lv_coord_t knob_y = (arc_r * lv_trigo_sin(angle)) >> LV_TRIGO_SHIFT;
+    lv_obj_align_to(obj_to_align, obj, LV_ALIGN_CENTER, knob_x, knob_y);
+}
+
+void lv_arc_rotate_obj_to_angle(const lv_obj_t * obj, lv_obj_t * obj_to_rotate, lv_coord_t r_offset)
+{
+    LV_ASSERT_OBJ(obj, MY_CLASS);
+    LV_ASSERT_NULL(obj_to_rotate);
+
+    lv_obj_update_layout(obj);
+
+    lv_point_t center;
+    lv_coord_t arc_r;
+    get_center(obj, &center, &arc_r);
+    lv_coord_t indic_width = lv_obj_get_style_arc_width(obj, LV_PART_INDICATOR);
+    lv_coord_t indic_width_half = indic_width / 2;
+    arc_r -= indic_width_half;
+
+    arc_r += r_offset;
+    lv_obj_align_to(obj_to_rotate, obj, LV_ALIGN_CENTER, 0, -arc_r);
+
+    lv_obj_update_layout(obj);
+
+    uint16_t angle = get_angle(obj);
+    lv_coord_t pivot_x = obj_to_rotate->coords.x1 - center.x;
+    lv_coord_t pivot_y = obj_to_rotate->coords.y1 - center.y;
+    lv_obj_set_style_transform_pivot_x(obj_to_rotate, -pivot_x, 0);
+    lv_obj_set_style_transform_pivot_y(obj_to_rotate, -pivot_y, 0);
+    lv_obj_set_style_transform_angle(obj_to_rotate, angle * 10 + 900, 0);
+}
+
+
 /**********************
  *   STATIC FUNCTIONS
  **********************/
@@ -345,7 +401,7 @@ static void lv_arc_constructor(const lv_obj_class_t * class_p, lv_obj_t * obj)
     arc->last_angle = arc->indic_angle_end;
 
     lv_obj_add_flag(obj, LV_OBJ_FLAG_CLICKABLE);
-    lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLL_CHAIN);
+    lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLL_CHAIN | LV_OBJ_FLAG_SCROLLABLE);
     lv_obj_set_ext_click_area(obj, LV_DPI_DEF / 10);
 
 
@@ -545,8 +601,11 @@ static void lv_arc_event(const lv_obj_class_t * class_p, lv_event_t * e)
         lv_coord_t knob_bottom = lv_obj_get_style_pad_bottom(obj, LV_PART_KNOB);
         lv_coord_t knob_pad = LV_MAX4(knob_left, knob_right, knob_top, knob_bottom) + 2;
 
+        lv_coord_t knob_extra_size = knob_pad - bg_pad;
+        knob_extra_size += knob_get_extra_size(obj);
+
         lv_coord_t * s = lv_event_get_param(e);
-        *s = LV_MAX(*s, knob_pad - bg_pad);
+        *s = LV_MAX(*s, knob_extra_size);
     }
     else if(code == LV_EVENT_DRAW_MAIN) {
         lv_arc_draw(e);
@@ -661,6 +720,7 @@ static void inv_arc_area(lv_obj_t * obj, uint16_t start_angle, uint16_t end_angl
 
     lv_area_t inv_area;
     lv_draw_arc_get_area(c.x, c.y, r, start_angle, end_angle, w, rounded, &inv_area);
+
     lv_obj_invalidate_area(obj, &inv_area);
 }
 
@@ -672,10 +732,17 @@ static void inv_knob_area(lv_obj_t * obj)
 
     lv_area_t a;
     get_knob_area(obj, &c, r, &a);
+
+    lv_coord_t knob_extra_size = knob_get_extra_size(obj);
+
+    if(knob_extra_size > 0) {
+        lv_area_increase(&a, knob_extra_size, knob_extra_size);
+    }
+
     lv_obj_invalidate_area(obj, &a);
 }
 
-static void get_center(lv_obj_t * obj, lv_point_t * center, lv_coord_t * arc_r)
+static void get_center(const lv_obj_t * obj, lv_point_t * center, lv_coord_t * arc_r)
 {
     lv_coord_t left_bg = lv_obj_get_style_pad_left(obj, LV_PART_MAIN);
     lv_coord_t right_bg = lv_obj_get_style_pad_right(obj, LV_PART_MAIN);
@@ -691,15 +758,9 @@ static void get_center(lv_obj_t * obj, lv_point_t * center, lv_coord_t * arc_r)
     if(arc_r) *arc_r = r;
 }
 
-static void get_knob_area(lv_obj_t * obj, const lv_point_t * center, lv_coord_t r, lv_area_t * knob_area)
+static lv_coord_t get_angle(const lv_obj_t * obj)
 {
-    LV_ASSERT_OBJ(obj, MY_CLASS);
     lv_arc_t * arc = (lv_arc_t *)obj;
-
-    lv_coord_t indic_width = lv_obj_get_style_arc_width(obj, LV_PART_INDICATOR);
-    lv_coord_t indic_width_half = indic_width / 2;
-    r -= indic_width_half;
-
     uint16_t angle = arc->rotation;
     if(arc->type == LV_ARC_MODE_NORMAL) {
         angle += arc->indic_angle_end;
@@ -708,10 +769,28 @@ static void get_knob_area(lv_obj_t * obj, const lv_point_t * center, lv_coord_t
         angle += arc->indic_angle_start;
     }
     else if(arc->type == LV_ARC_MODE_SYMMETRICAL) {
-        int32_t range_midpoint = (int32_t)(arc->min_value + arc->max_value) / 2;
-        if(arc->value < range_midpoint) angle += arc->indic_angle_start;
-        else angle += arc->indic_angle_end;
+        int16_t bg_end = arc->bg_angle_end;
+        if(arc->bg_angle_end < arc->bg_angle_start) bg_end = arc->bg_angle_end + 360;
+        int16_t indic_end = arc->indic_angle_end;
+        if(arc->indic_angle_end < arc->indic_angle_start) indic_end = arc->indic_angle_end + 360;
+
+        int32_t angle_midpoint = (int32_t)(arc->bg_angle_start + bg_end) / 2;
+        if(arc->indic_angle_start < angle_midpoint) angle += arc->indic_angle_start;
+        else if(indic_end > angle_midpoint) angle += arc->indic_angle_end;
+        else angle += angle_midpoint;
     }
+
+    return angle;
+}
+
+
+static void get_knob_area(lv_obj_t * obj, const lv_point_t * center, lv_coord_t r, lv_area_t * knob_area)
+{
+    lv_coord_t indic_width = lv_obj_get_style_arc_width(obj, LV_PART_INDICATOR);
+    lv_coord_t indic_width_half = indic_width / 2;
+    r -= indic_width_half;
+
+    lv_coord_t angle = get_angle(obj);
     lv_coord_t knob_x = (r * lv_trigo_sin(angle + 90)) >> LV_TRIGO_SHIFT;
     lv_coord_t knob_y = (r * lv_trigo_sin(angle)) >> LV_TRIGO_SHIFT;
 
@@ -759,12 +838,13 @@ static void value_update(lv_obj_t * obj)
             }
             break;
         case LV_ARC_MODE_REVERSE:
-            angle = lv_map(arc->value, arc->min_value, arc->max_value, arc->bg_angle_start, bg_end);
+            angle = lv_map(arc->value, arc->min_value, arc->max_value, bg_end, arc->bg_angle_start);
             lv_arc_set_angles(obj, angle, arc->bg_angle_end);
             break;
         case LV_ARC_MODE_NORMAL:
             angle = lv_map(arc->value, arc->min_value, arc->max_value, arc->bg_angle_start, bg_end);
             lv_arc_set_angles(obj, arc->bg_angle_start, angle);
+
             break;
         default:
             LV_LOG_WARN("Invalid mode: %d", arc->type);
@@ -773,4 +853,19 @@ static void value_update(lv_obj_t * obj)
     arc->last_angle = angle; /*Cache angle for slew rate limiting*/
 }
 
+static lv_coord_t knob_get_extra_size(lv_obj_t * obj)
+{
+    lv_coord_t knob_shadow_size = 0;
+    knob_shadow_size += lv_obj_get_style_shadow_width(obj, LV_PART_KNOB);
+    knob_shadow_size += lv_obj_get_style_shadow_spread(obj, LV_PART_KNOB);
+    knob_shadow_size += LV_ABS(lv_obj_get_style_shadow_ofs_x(obj, LV_PART_KNOB));
+    knob_shadow_size += LV_ABS(lv_obj_get_style_shadow_ofs_y(obj, LV_PART_KNOB));
+
+    lv_coord_t knob_outline_size = 0;
+    knob_outline_size += lv_obj_get_style_outline_width(obj, LV_PART_KNOB);
+    knob_outline_size += lv_obj_get_style_outline_pad(obj, LV_PART_KNOB);
+
+    return LV_MAX(knob_shadow_size, knob_outline_size);
+}
+
 #endif
index 8ec39a4..fd53fc1 100644 (file)
@@ -85,83 +85,83 @@ lv_obj_t * lv_arc_create(lv_obj_t * parent);
 
 /**
  * Set the start angle of an arc. 0 deg: right, 90 bottom, etc.
- * @param arc   pointer to an arc object
+ * @param obj   pointer to an arc object
  * @param start the start angle
  */
-void lv_arc_set_start_angle(lv_obj_t * arc, uint16_t start);
+void lv_arc_set_start_angle(lv_obj_t * obj, uint16_t start);
 
 /**
  * Set the end angle of an arc. 0 deg: right, 90 bottom, etc.
- * @param arc   pointer to an arc object
+ * @param obj   pointer to an arc object
  * @param end   the end angle
  */
-void lv_arc_set_end_angle(lv_obj_t * arc, uint16_t end);
+void lv_arc_set_end_angle(lv_obj_t * obj, uint16_t end);
 
 /**
  * Set the start and end angles
- * @param arc   pointer to an arc object
+ * @param obj   pointer to an arc object
  * @param start the start angle
  * @param end   the end angle
  */
-void lv_arc_set_angles(lv_obj_t * arc, uint16_t start, uint16_t end);
+void lv_arc_set_angles(lv_obj_t * obj, uint16_t start, uint16_t end);
 
 /**
  * Set the start angle of an arc background. 0 deg: right, 90 bottom, etc.
- * @param arc   pointer to an arc object
+ * @param obj   pointer to an arc object
  * @param start the start angle
  */
-void lv_arc_set_bg_start_angle(lv_obj_t * arc, uint16_t start);
+void lv_arc_set_bg_start_angle(lv_obj_t * obj, uint16_t start);
 
 /**
  * Set the start angle of an arc background. 0 deg: right, 90 bottom etc.
- * @param arc   pointer to an arc object
+ * @param obj   pointer to an arc object
  * @param end   the end angle
  */
-void lv_arc_set_bg_end_angle(lv_obj_t * arc, uint16_t end);
+void lv_arc_set_bg_end_angle(lv_obj_t * obj, uint16_t end);
 
 /**
  * Set the start and end angles of the arc background
- * @param arc   pointer to an arc object
+ * @param obj   pointer to an arc object
  * @param start the start angle
  * @param end   the end angle
  */
-void lv_arc_set_bg_angles(lv_obj_t * arc, uint16_t start, uint16_t end);
+void lv_arc_set_bg_angles(lv_obj_t * obj, uint16_t start, uint16_t end);
 
 /**
  * Set the rotation for the whole arc
- * @param arc       pointer to an arc object
+ * @param obj       pointer to an arc object
  * @param rotation  rotation angle
  */
-void lv_arc_set_rotation(lv_obj_t * arc, uint16_t rotation);
+void lv_arc_set_rotation(lv_obj_t * obj, uint16_t rotation);
 
 /**
  * Set the type of arc.
- * @param arc   pointer to arc object
+ * @param obj   pointer to arc object
  * @param mode  arc's mode
  */
-void lv_arc_set_mode(lv_obj_t * arc, lv_arc_mode_t type);
+void lv_arc_set_mode(lv_obj_t * obj, lv_arc_mode_t type);
 
 /**
  * Set a new value on the arc
- * @param arc   pointer to an arc object
+ * @param obj   pointer to an arc object
  * @param value new value
  */
-void lv_arc_set_value(lv_obj_t * arc, int16_t value);
+void lv_arc_set_value(lv_obj_t * obj, int16_t value);
 
 /**
  * Set minimum and the maximum values of an arc
- * @param arc   pointer to the arc object
+ * @param obj   pointer to the arc object
  * @param min   minimum value
  * @param max   maximum value
  */
-void lv_arc_set_range(lv_obj_t * arc, int16_t min, int16_t max);
+void lv_arc_set_range(lv_obj_t * obj, int16_t min, int16_t max);
 
 /**
  * Set a change rate to limit the speed how fast the arc should reach the pressed point.
- * @param arc       pointer to an arc object
+ * @param obj       pointer to an arc object
  * @param rate      the change rate
  */
-void lv_arc_set_change_rate(lv_obj_t * arc, uint16_t rate);
+void lv_arc_set_change_rate(lv_obj_t * obj, uint16_t rate);
 
 /*=====================
  * Getter functions
@@ -169,56 +169,56 @@ void lv_arc_set_change_rate(lv_obj_t * arc, uint16_t rate);
 
 /**
  * Get the start angle of an arc.
- * @param arc   pointer to an arc object
+ * @param obj   pointer to an arc object
  * @return      the start angle [0..360]
  */
 uint16_t lv_arc_get_angle_start(lv_obj_t * obj);
 
 /**
  * Get the end angle of an arc.
- * @param arc   pointer to an arc object
+ * @param obj   pointer to an arc object
  * @return      the end angle [0..360]
  */
 uint16_t lv_arc_get_angle_end(lv_obj_t * obj);
 
 /**
  * Get the start angle of an arc background.
- * @param arc   pointer to an arc object
- * @return the  start angle [0..360]
+ * @param obj   pointer to an arc object
+ * @return      the  start angle [0..360]
  */
 uint16_t lv_arc_get_bg_angle_start(lv_obj_t * obj);
 
 /**
  * Get the end angle of an arc background.
- * @param arc   pointer to an arc object
+ * @param obj   pointer to an arc object
  * @return      the end angle [0..360]
  */
 uint16_t lv_arc_get_bg_angle_end(lv_obj_t * obj);
 
 /**
  * Get the value of an arc
- * @param arc       pointer to an arc object
- * @return the      value of the arc
+ * @param obj       pointer to an arc object
+ * @return          the value of the arc
  */
 int16_t lv_arc_get_value(const lv_obj_t * obj);
 
 /**
  * Get the minimum value of an arc
- * @param arc   pointer to an arc object
+ * @param obj   pointer to an arc object
  * @return      the minimum value of the arc
  */
 int16_t lv_arc_get_min_value(const lv_obj_t * obj);
 
 /**
  * Get the maximum value of an arc
- * @param arc   pointer to an arc object
+ * @param obj   pointer to an arc object
  * @return      the maximum value of the arc
  */
 int16_t lv_arc_get_max_value(const lv_obj_t * obj);
 
 /**
  * Get whether the arc is type or not.
- * @param arc       pointer to an arc object
+ * @param obj       pointer to an arc object
  * @return          arc's mode
  */
 lv_arc_mode_t lv_arc_get_mode(const lv_obj_t * obj);
@@ -227,6 +227,22 @@ lv_arc_mode_t lv_arc_get_mode(const lv_obj_t * obj);
  * Other functions
  *====================*/
 
+/**
+ * Align an object to the current position of the arc (knob)
+ * @param obj           pointer to an arc object
+ * @param obj_to_align  pointer to an object to align
+ * @param r_offset      consider the radius larger with this value (< 0: for smaller radius)
+ */
+void lv_arc_align_obj_to_angle(const lv_obj_t * obj, lv_obj_t * obj_to_align, lv_coord_t r_offset);
+
+/**
+ * Rotate an object to the current position of the arc (knob)
+ * @param obj           pointer to an arc object
+ * @param obj_to_align  pointer to an object to rotate
+ * @param r_offset      consider the radius larger with this value (< 0: for smaller radius)
+ */
+void lv_arc_rotate_obj_to_angle(const lv_obj_t * obj, lv_obj_t * obj_to_rotate, lv_coord_t r_offset);
+
 /**********************
  *      MACROS
  **********************/
index 0da2a98..a057618 100644 (file)
@@ -571,6 +571,8 @@ static void lv_bar_set_value_with_anim(lv_obj_t * obj, int32_t new_value, int32_
                                        _lv_bar_anim_t * anim_info, lv_anim_enable_t en)
 {
     if(en == LV_ANIM_OFF) {
+        lv_anim_del(anim_info, NULL);
+        anim_info->anim_state = LV_BAR_ANIM_STATE_INV;
         *value_ptr = new_value;
         lv_obj_invalidate((lv_obj_t *)obj);
     }
index 62f86f7..8902d8b 100644 (file)
@@ -23,7 +23,7 @@
 #define MY_CLASS &lv_btnmatrix_class
 
 #define BTN_EXTRA_CLICK_AREA_MAX (LV_DPI_DEF / 10)
-#define LV_BTNMATRIX_WIDTH_MASK 0x0007
+#define LV_BTNMATRIX_WIDTH_MASK 0x000F
 
 /**********************
  *      TYPEDEFS
@@ -399,13 +399,10 @@ static void lv_btnmatrix_event(const lv_obj_class_t * class_p, lv_event_t * e)
     lv_point_t p;
 
     if(code == LV_EVENT_REFR_EXT_DRAW_SIZE) {
-        lv_coord_t * s = lv_event_get_param(e);
         if(has_popovers_in_top_row(obj)) {
             /*reserve one row worth of extra space to account for popovers in the top row*/
-            *s = btnm->row_cnt > 0 ? lv_obj_get_content_height(obj) / btnm->row_cnt : 0;
-        }
-        else {
-            *s = 0;
+            lv_coord_t s = btnm->row_cnt > 0 ? lv_obj_get_content_height(obj) / btnm->row_cnt : 0;
+            lv_event_set_ext_draw_size(e, s);
         }
     }
     if(code == LV_EVENT_STYLE_CHANGED) {
index cf586d7..2edf202 100644 (file)
@@ -32,18 +32,19 @@ LV_EXPORT_CONST_INT(LV_BTNMATRIX_BTN_NONE);
 /** Type to store button control bits (disabled, hidden etc.)
  * The first 3 bits are used to store the width*/
 enum {
-    _LV_BTNMATRIX_WIDTH     = 0x0007,      /**< Reserved to stire the size units*/
-    LV_BTNMATRIX_CTRL_HIDDEN     = 0x0008, /**< Button hidden*/
-    LV_BTNMATRIX_CTRL_NO_REPEAT  = 0x0010, /**< Do not repeat press this button.*/
-    LV_BTNMATRIX_CTRL_DISABLED   = 0x0020, /**< Disable this button.*/
-    LV_BTNMATRIX_CTRL_CHECKABLE  = 0x0040, /**< The button can be toggled.*/
-    LV_BTNMATRIX_CTRL_CHECKED    = 0x0080, /**< Button is currently toggled (e.g. checked).*/
-    LV_BTNMATRIX_CTRL_CLICK_TRIG = 0x0100, /**< 1: Send LV_EVENT_VALUE_CHANGE on CLICK, 0: Send LV_EVENT_VALUE_CHANGE on PRESS*/
-    LV_BTNMATRIX_CTRL_POPOVER    = 0x0200, /**< Show a popover when pressing this key*/
-    LV_BTNMATRIX_CTRL_RECOLOR    = 0x1000, /**< Enable text recoloring with `#color`*/
-    _LV_BTNMATRIX_CTRL_RESERVED  = 0x2000, /**< Reserved for later use*/
-    LV_BTNMATRIX_CTRL_CUSTOM_1   = 0x4000, /**< Custom free to use flag*/
-    LV_BTNMATRIX_CTRL_CUSTOM_2   = 0x8000, /**< Custom free to use flag*/
+    _LV_BTNMATRIX_WIDTH            = 0x000F, /**< Reserved to store the size units*/
+    LV_BTNMATRIX_CTRL_HIDDEN       = 0x0010, /**< Button hidden*/
+    LV_BTNMATRIX_CTRL_NO_REPEAT    = 0x0020, /**< Do not repeat press this button.*/
+    LV_BTNMATRIX_CTRL_DISABLED     = 0x0040, /**< Disable this button.*/
+    LV_BTNMATRIX_CTRL_CHECKABLE    = 0x0080, /**< The button can be toggled.*/
+    LV_BTNMATRIX_CTRL_CHECKED      = 0x0100, /**< Button is currently toggled (e.g. checked).*/
+    LV_BTNMATRIX_CTRL_CLICK_TRIG   = 0x0200, /**< 1: Send LV_EVENT_VALUE_CHANGE on CLICK, 0: Send LV_EVENT_VALUE_CHANGE on PRESS*/
+    LV_BTNMATRIX_CTRL_POPOVER      = 0x0400, /**< Show a popover when pressing this key*/
+    LV_BTNMATRIX_CTRL_RECOLOR      = 0x0800, /**< Enable text recoloring with `#color`*/
+    _LV_BTNMATRIX_CTRL_RESERVED_1  = 0x1000, /**< Reserved for later use*/
+    _LV_BTNMATRIX_CTRL_RESERVED_2  = 0x2000, /**< Reserved for later use*/
+    LV_BTNMATRIX_CTRL_CUSTOM_1     = 0x4000, /**< Custom free to use flag*/
+    LV_BTNMATRIX_CTRL_CUSTOM_2     = 0x8000, /**< Custom free to use flag*/
 };
 
 typedef uint16_t lv_btnmatrix_ctrl_t;
@@ -163,7 +164,7 @@ void lv_btnmatrix_set_btn_width(lv_obj_t * obj, uint16_t btn_id, uint8_t width);
 /**
  * Make the button matrix like a selector widget (only one button may be checked at a time).
  * `LV_BTNMATRIX_CTRL_CHECKABLE` must be enabled on the buttons to be selected using
- *  `lv_btnmatrix_set_ctrl()` or `lv_btnmatrix_set_btn_ctrl_all()`.
+ * `lv_btnmatrix_set_ctrl()` or `lv_btnmatrix_set_btn_ctrl_all()`.
  * @param obj       pointer to a button matrix object
  * @param en        whether "one check" mode is enabled
  */
index a55429b..1f94927 100644 (file)
@@ -76,6 +76,7 @@ void lv_canvas_set_buffer(lv_obj_t * obj, void * buf, lv_coord_t w, lv_coord_t h
     canvas->dsc.data      = buf;
 
     lv_img_set_src(obj, &canvas->dsc);
+    lv_img_cache_invalidate_src(&canvas->dsc);
 }
 
 void lv_canvas_set_px_color(lv_obj_t * obj, lv_coord_t x, lv_coord_t y, lv_color_t c)
@@ -157,98 +158,60 @@ void lv_canvas_copy_buf(lv_obj_t * obj, const void * to_copy, lv_coord_t x, lv_c
     }
 }
 
-void lv_canvas_transform(lv_obj_t * obj, lv_img_dsc_t * img, int16_t angle, uint16_t zoom, lv_coord_t offset_x,
+void lv_canvas_transform(lv_obj_t * obj, lv_img_dsc_t * src_img, int16_t angle, uint16_t zoom, lv_coord_t offset_x,
                          lv_coord_t offset_y,
                          int32_t pivot_x, int32_t pivot_y, bool antialias)
 {
 #if LV_DRAW_COMPLEX
     LV_ASSERT_OBJ(obj, MY_CLASS);
-    LV_ASSERT_NULL(img);
+    LV_ASSERT_NULL(src_img);
 
     lv_canvas_t * canvas = (lv_canvas_t *)obj;
-    lv_color_t color = lv_obj_get_style_img_recolor(obj, LV_PART_MAIN);
-
-    int32_t dest_width  = canvas->dsc.header.w;
-    int32_t dest_height = canvas->dsc.header.h;
+    lv_img_dsc_t * dest_img = &canvas->dsc;
 
     int32_t x;
     int32_t y;
-    bool ret;
-
-    lv_img_transform_dsc_t dsc;
-    dsc.cfg.angle = angle;
-    dsc.cfg.zoom = zoom;
-    dsc.cfg.src = img->data;
-    dsc.cfg.src_w = img->header.w;
-    dsc.cfg.src_h = img->header.h;
-    dsc.cfg.cf = img->header.cf;
-    dsc.cfg.pivot_x = pivot_x;
-    dsc.cfg.pivot_y = pivot_y;
-    dsc.cfg.color = color;
-    dsc.cfg.antialias = antialias;
-    _lv_img_buf_transform_init(&dsc);
-
-    for(y = -offset_y; y < dest_height - offset_y; y++) {
-        for(x = -offset_x; x < dest_width - offset_x; x++) {
-
-            ret = _lv_img_buf_transform(&dsc, x, y);
-
-            if(ret == false) continue;
-
-            if(x + offset_x >= 0 && x + offset_x < dest_width && y + offset_y >= 0 && y + offset_y < dest_height) {
-                /*If the image has no alpha channel just simple set the result color on the canvas*/
-                if(lv_img_cf_has_alpha(img->header.cf) == false) {
-                    lv_img_buf_set_px_color(&canvas->dsc, x + offset_x, y + offset_y, dsc.res.color);
-                }
-                else {
-                    lv_color_t bg_color = lv_img_buf_get_px_color(&canvas->dsc, x + offset_x, y + offset_y, dsc.cfg.color);
-
-                    /*If the canvas has no alpha but the image has mix the image's color with
-                     * canvas*/
-                    if(lv_img_cf_has_alpha(canvas->dsc.header.cf) == false) {
-                        if(dsc.res.opa < LV_OPA_MAX) dsc.res.color = lv_color_mix(dsc.res.color, bg_color, dsc.res.opa);
-                        lv_img_buf_set_px_color(&canvas->dsc, x + offset_x, y + offset_y, dsc.res.color);
-                    }
-                    /*Both the image and canvas has alpha channel. Some extra calculation is
-                       required*/
-                    else {
-                        lv_opa_t bg_opa = lv_img_buf_get_px_alpha(&canvas->dsc, x + offset_x, y + offset_y);
-                        /*Pick the foreground if it's fully opaque or the Background is fully
-                         *transparent*/
-                        if(dsc.res.opa >= LV_OPA_MAX || bg_opa <= LV_OPA_MIN) {
-                            lv_img_buf_set_px_color(&canvas->dsc, x + offset_x, y + offset_y, dsc.res.color);
-                            lv_img_buf_set_px_alpha(&canvas->dsc, x + offset_x, y + offset_y, dsc.res.opa);
-                        }
-                        /*Opaque background: use simple mix*/
-                        else if(bg_opa >= LV_OPA_MAX) {
-                            lv_img_buf_set_px_color(&canvas->dsc, x + offset_x, y + offset_y,
-                                                    lv_color_mix(dsc.res.color, bg_color, dsc.res.opa));
-                        }
-                        /*Both colors have alpha. Expensive calculation need to be applied*/
-                        else {
-
-                            /*Info:
-                             * https://en.wikipedia.org/wiki/Alpha_compositing#Analytical_derivation_of_the_over_operator*/
-                            lv_opa_t opa_res_2 = 255 - ((uint16_t)((uint16_t)(255 - dsc.res.opa) * (255 - bg_opa)) >> 8);
-                            if(opa_res_2 == 0) {
-                                opa_res_2 = 1; /*never happens, just to be sure*/
-                            }
-                            lv_opa_t ratio = (uint16_t)((uint16_t)dsc.res.opa * 255) / opa_res_2;
-
-                            lv_img_buf_set_px_color(&canvas->dsc, x + offset_x, y + offset_y,
-                                                    lv_color_mix(dsc.res.color, bg_color, ratio));
-                            lv_img_buf_set_px_alpha(&canvas->dsc, x + offset_x, y + offset_y, opa_res_2);
-                        }
-                    }
+
+    lv_draw_img_dsc_t draw_dsc;
+    lv_draw_img_dsc_init(&draw_dsc);
+    draw_dsc.angle = angle;
+    draw_dsc.zoom = zoom;
+    draw_dsc.pivot.x = pivot_x;
+    draw_dsc.pivot.y = pivot_y;
+    draw_dsc.antialias = antialias;
+
+    lv_area_t dest_area;
+    dest_area.x1 = -offset_x;
+    dest_area.x2 = dest_area.x1 + dest_img->header.w - 1;
+    dest_area.y1 = -offset_y;
+    dest_area.y2 = -offset_y;
+
+    lv_color_t * cbuf = lv_mem_alloc(dest_img->header.w * sizeof(lv_color_t));
+    lv_opa_t * abuf = lv_mem_alloc(dest_img->header.w * sizeof(lv_opa_t));
+    for(y = 0; y < dest_img->header.h; y++) {
+        if(y + offset_y >= 0) {
+            lv_draw_sw_transform(NULL, &dest_area, src_img->data, src_img->header.w, src_img->header.h, src_img->header.w,
+                                 &draw_dsc, canvas->dsc.header.cf, cbuf, abuf);
+
+            for(x = 0; x < dest_img->header.w; x++) {
+                if(abuf[x]) {
+                    lv_img_buf_set_px_color(dest_img, x, y, cbuf[x]);
+                    lv_img_buf_set_px_alpha(dest_img, x, y, abuf[x]);
                 }
             }
+
+            dest_area.y1++;
+            dest_area.y2++;
         }
     }
+    lv_mem_free(cbuf);
+    lv_mem_free(abuf);
 
     lv_obj_invalidate(obj);
+
 #else
     LV_UNUSED(obj);
-    LV_UNUSED(img);
+    LV_UNUSED(src_img);
     LV_UNUSED(angle);
     LV_UNUSED(zoom);
     LV_UNUSED(offset_x);
@@ -856,6 +819,9 @@ static void init_fake_disp(lv_obj_t * canvas, lv_disp_t * disp, lv_disp_drv_t *
     draw_ctx->buf = (void *)dsc->data;
 
     lv_disp_drv_use_generic_set_px_cb(disp->driver, dsc->header.cf);
+    if(LV_COLOR_SCREEN_TRANSP && dsc->header.cf != LV_IMG_CF_TRUE_COLOR_ALPHA) {
+        drv->screen_transp = 0;
+    }
 }
 
 static void deinit_fake_disp(lv_obj_t * canvas, lv_disp_t * disp)
index e7e6503..241d177 100644 (file)
@@ -398,6 +398,26 @@ void lv_dropdown_get_selected_str(const lv_obj_t * obj, char * buf, uint32_t buf
     buf[c] = '\0';
 }
 
+int32_t lv_dropdown_get_option_index(lv_obj_t * obj, const char * option)
+{
+    const char * opts = lv_dropdown_get_options(obj);
+    uint32_t char_i = 0;
+    uint32_t opt_i = 0;
+    const char * start = opts;
+
+    while(start[char_i] != '\0') {
+        for(char_i = 0; (start[char_i] != '\n') && (start[char_i] != '\0'); char_i++);
+
+        if(memcmp(start, option, LV_MIN(strlen(option), char_i)) == 0) return opt_i;
+        start = &start[char_i];
+        if(start[0] == '\n') start++;
+        opt_i++;
+    }
+
+    return -1;
+}
+
+
 const char * lv_dropdown_get_symbol(lv_obj_t * obj)
 {
     LV_ASSERT_OBJ(obj, MY_CLASS);
@@ -515,7 +535,7 @@ void lv_dropdown_open(lv_obj_t * dropdown_obj)
             lv_obj_align(label, LV_ALIGN_TOP_RIGHT, 0, 0);
             break;
         case LV_TEXT_ALIGN_CENTER:
-            lv_obj_align(label, LV_ALIGN_CENTER, 0, 0);
+            lv_obj_align(label, LV_ALIGN_TOP_MID, 0, 0);
             break;
 
     }
index 63412f7..0c55e86 100644 (file)
@@ -189,6 +189,14 @@ uint16_t lv_dropdown_get_option_cnt(const lv_obj_t * obj);
  */
 void lv_dropdown_get_selected_str(const lv_obj_t * obj, char * buf, uint32_t buf_size);
 
+/**
+ * Get the index of an option.
+ * @param obj       pointer to drop-down object
+ * @param option    an option as string
+ * @return          index of `option` in the list of all options. -1 if not found.
+ */
+int32_t lv_dropdown_get_option_index(lv_obj_t * obj, const char * option);
+
 /**
  * Get the symbol on the drop-down list. Typically a down caret or arrow.
  * @param obj       pointer to drop-down list object
index 7a1f255..3246e4a 100644 (file)
@@ -9,6 +9,7 @@
 #include "lv_img.h"
 #if LV_USE_IMG != 0
 
+#include "../core/lv_disp.h"
 #include "../misc/lv_assert.h"
 #include "../draw/lv_img_decoder.h"
 #include "../misc/lv_fs.h"
@@ -134,7 +135,7 @@ void lv_img_set_src(lv_obj_t * obj, const void * src)
     }
 
     if(src_type == LV_IMG_SRC_SYMBOL) {
-        /*`lv_img_dsc_get_info` couldn't set the with and height of a font so set it here*/
+        /*`lv_img_dsc_get_info` couldn't set the width and height of a font so set it here*/
         const lv_font_t * font = lv_obj_get_style_text_font(obj, LV_PART_MAIN);
         lv_coord_t letter_space = lv_obj_get_style_text_letter_space(obj, LV_PART_MAIN);
         lv_coord_t line_space = lv_obj_get_style_text_line_space(obj, LV_PART_MAIN);
@@ -165,8 +166,6 @@ void lv_img_set_offset_x(lv_obj_t * obj, lv_coord_t x)
 
     lv_img_t * img = (lv_img_t *)obj;
 
-    x = x % img->w;
-
     img->offset.x = x;
     lv_obj_invalidate(obj);
 }
@@ -177,29 +176,23 @@ void lv_img_set_offset_y(lv_obj_t * obj, lv_coord_t y)
 
     lv_img_t * img = (lv_img_t *)obj;
 
-    y = y % img->h;
-
     img->offset.y = y;
     lv_obj_invalidate(obj);
 }
 
 void lv_img_set_angle(lv_obj_t * obj, int16_t angle)
 {
-    if(angle < 0 || angle >= 3600) angle = angle % 3600;
+    while(angle >= 3600) angle -= 3600;
+    while(angle < 0) angle += 3600;
 
     lv_img_t * img = (lv_img_t *)obj;
     if(angle == img->angle) return;
 
-    lv_coord_t transf_zoom = lv_obj_get_style_transform_zoom(obj, LV_PART_MAIN);
-    transf_zoom = ((int32_t)transf_zoom * img->zoom) >> 8;
-
-    lv_coord_t transf_angle = lv_obj_get_style_transform_angle(obj, LV_PART_MAIN);
-
     lv_obj_update_layout(obj);  /*Be sure the object's size is calculated*/
     lv_coord_t w = lv_obj_get_width(obj);
     lv_coord_t h = lv_obj_get_height(obj);
     lv_area_t a;
-    _lv_img_buf_get_transformed_area(&a, w, h, transf_angle + img->angle, transf_zoom, &img->pivot);
+    _lv_img_buf_get_transformed_area(&a, w, h, img->angle, img->zoom, &img->pivot);
     a.x1 += obj->coords.x1;
     a.y1 += obj->coords.y1;
     a.x2 += obj->coords.x1;
@@ -207,9 +200,15 @@ void lv_img_set_angle(lv_obj_t * obj, int16_t angle)
     lv_obj_invalidate_area(obj, &a);
 
     img->angle = angle;
+
+    /* Disable invalidations because lv_obj_refresh_ext_draw_size would invalidate
+     * the whole ext draw area */
+    lv_disp_t * disp = lv_obj_get_disp(obj);
+    lv_disp_enable_invalidation(disp, false);
     lv_obj_refresh_ext_draw_size(obj);
+    lv_disp_enable_invalidation(disp, true);
 
-    _lv_img_buf_get_transformed_area(&a, w, h, transf_angle + img->angle, transf_zoom, &img->pivot);
+    _lv_img_buf_get_transformed_area(&a, w, h, img->angle, img->zoom, &img->pivot);
     a.x1 += obj->coords.x1;
     a.y1 += obj->coords.y1;
     a.x2 += obj->coords.x1;
@@ -222,17 +221,11 @@ void lv_img_set_pivot(lv_obj_t * obj, lv_coord_t x, lv_coord_t y)
     lv_img_t * img = (lv_img_t *)obj;
     if(img->pivot.x == x && img->pivot.y == y) return;
 
-    lv_coord_t transf_zoom = lv_obj_get_style_transform_zoom(obj, LV_PART_MAIN);
-    transf_zoom = ((int32_t)transf_zoom * img->zoom) >> 8;
-
-    lv_coord_t transf_angle = lv_obj_get_style_transform_angle(obj, LV_PART_MAIN);
-    transf_angle += img->angle;
-
     lv_obj_update_layout(obj);  /*Be sure the object's size is calculated*/
     lv_coord_t w = lv_obj_get_width(obj);
     lv_coord_t h = lv_obj_get_height(obj);
     lv_area_t a;
-    _lv_img_buf_get_transformed_area(&a, w, h, transf_angle, transf_zoom, &img->pivot);
+    _lv_img_buf_get_transformed_area(&a, w, h, img->angle, img->zoom, &img->pivot);
     a.x1 += obj->coords.x1;
     a.y1 += obj->coords.y1;
     a.x2 += obj->coords.x1;
@@ -241,9 +234,15 @@ void lv_img_set_pivot(lv_obj_t * obj, lv_coord_t x, lv_coord_t y)
 
     img->pivot.x = x;
     img->pivot.y = y;
+
+    /* Disable invalidations because lv_obj_refresh_ext_draw_size would invalidate
+     * the whole ext draw area */
+    lv_disp_t * disp = lv_obj_get_disp(obj);
+    lv_disp_enable_invalidation(disp, false);
     lv_obj_refresh_ext_draw_size(obj);
+    lv_disp_enable_invalidation(disp, true);
 
-    _lv_img_buf_get_transformed_area(&a, w, h, transf_angle, transf_zoom, &img->pivot);
+    _lv_img_buf_get_transformed_area(&a, w, h, img->angle, img->zoom, &img->pivot);
     a.x1 += obj->coords.x1;
     a.y1 += obj->coords.y1;
     a.x2 += obj->coords.x1;
@@ -258,16 +257,11 @@ void lv_img_set_zoom(lv_obj_t * obj, uint16_t zoom)
 
     if(zoom == 0) zoom = 1;
 
-    lv_coord_t transf_zoom = lv_obj_get_style_transform_zoom(obj, LV_PART_MAIN);
-
-    lv_coord_t transf_angle = lv_obj_get_style_transform_angle(obj, LV_PART_MAIN);
-    transf_angle += img->angle;
-
     lv_obj_update_layout(obj);  /*Be sure the object's size is calculated*/
     lv_coord_t w = lv_obj_get_width(obj);
     lv_coord_t h = lv_obj_get_height(obj);
     lv_area_t a;
-    _lv_img_buf_get_transformed_area(&a, w, h, transf_angle, ((int32_t)transf_zoom * img->zoom) >> 8, &img->pivot);
+    _lv_img_buf_get_transformed_area(&a, w, h, img->angle, img->zoom >> 8, &img->pivot);
     a.x1 += obj->coords.x1 - 1;
     a.y1 += obj->coords.y1 - 1;
     a.x2 += obj->coords.x1 + 1;
@@ -275,9 +269,15 @@ void lv_img_set_zoom(lv_obj_t * obj, uint16_t zoom)
     lv_obj_invalidate_area(obj, &a);
 
     img->zoom = zoom;
+
+    /* Disable invalidations because lv_obj_refresh_ext_draw_size would invalidate
+     * the whole ext draw area */
+    lv_disp_t * disp = lv_obj_get_disp(obj);
+    lv_disp_enable_invalidation(disp, false);
     lv_obj_refresh_ext_draw_size(obj);
+    lv_disp_enable_invalidation(disp, true);
 
-    _lv_img_buf_get_transformed_area(&a, w, h, transf_angle, ((int32_t)transf_zoom * img->zoom) >> 8, &img->pivot);
+    _lv_img_buf_get_transformed_area(&a, w, h, img->angle, img->zoom, &img->pivot);
     a.x1 += obj->coords.x1 - 1;
     a.y1 += obj->coords.y1 - 1;
     a.x2 += obj->coords.x1 + 1;
@@ -424,14 +424,10 @@ static lv_point_t lv_img_get_transformed_size(lv_obj_t * obj)
 {
     lv_img_t * img = (lv_img_t *)obj;
 
-    int32_t zoom_final = lv_obj_get_style_transform_zoom(obj, LV_PART_MAIN);
-    zoom_final = (zoom_final * img->zoom) >> 8;
-    int32_t angle_final = lv_obj_get_style_transform_angle(obj, LV_PART_MAIN);
-    angle_final += img->angle;
 
     lv_area_t area_transform;
     _lv_img_buf_get_transformed_area(&area_transform, img->w, img->h,
-                                     angle_final, zoom_final, &img->pivot);
+                                     img->angle, img->zoom, &img->pivot);
 
     return (lv_point_t) {
         lv_area_get_width(&area_transform), lv_area_get_height(&area_transform)
@@ -467,42 +463,31 @@ static void lv_img_event(const lv_obj_class_t * class_p, lv_event_t * e)
     else if(code == LV_EVENT_REFR_EXT_DRAW_SIZE) {
 
         lv_coord_t * s = lv_event_get_param(e);
-        lv_coord_t transf_zoom = lv_obj_get_style_transform_zoom(obj, LV_PART_MAIN);
-        transf_zoom = ((int32_t)transf_zoom * img->zoom) >> 8;
-
-        lv_coord_t transf_angle = lv_obj_get_style_transform_angle(obj, LV_PART_MAIN);
-        transf_angle += img->angle;
 
         /*If the image has angle provide enough room for the rotated corners*/
-        if(transf_angle || transf_zoom != LV_IMG_ZOOM_NONE) {
+        if(img->angle || img->zoom != LV_IMG_ZOOM_NONE) {
             lv_area_t a;
             lv_coord_t w = lv_obj_get_width(obj);
             lv_coord_t h = lv_obj_get_height(obj);
-            _lv_img_buf_get_transformed_area(&a, w, h, transf_angle, transf_zoom, &img->pivot);
-            lv_coord_t pad_ori = *s;
-            *s = LV_MAX(*s, pad_ori - a.x1);
-            *s = LV_MAX(*s, pad_ori - a.y1);
-            *s = LV_MAX(*s, pad_ori + a.x2 - w);
-            *s = LV_MAX(*s, pad_ori + a.y2 - h);
+            _lv_img_buf_get_transformed_area(&a, w, h, img->angle, img->zoom, &img->pivot);
+            *s = LV_MAX(*s, -a.x1);
+            *s = LV_MAX(*s, -a.y1);
+            *s = LV_MAX(*s, a.x2 - w);
+            *s = LV_MAX(*s, a.y2 - h);
         }
     }
     else if(code == LV_EVENT_HIT_TEST) {
         lv_hit_test_info_t * info = lv_event_get_param(e);
-        lv_coord_t zoom = lv_obj_get_style_transform_zoom(obj, LV_PART_MAIN);
-        zoom = (zoom * img->zoom) >> 8;
-
-        lv_coord_t angle = lv_obj_get_style_transform_angle(obj, LV_PART_MAIN);
-        angle += img->angle;
 
         /*If the object is exactly image sized (not cropped, not mosaic) and transformed
          *perform hit test on its transformed area*/
         if(img->w == lv_obj_get_width(obj) && img->h == lv_obj_get_height(obj) &&
-           (zoom != LV_IMG_ZOOM_NONE || angle != 0 || img->pivot.x != img->w / 2 || img->pivot.y != img->h / 2)) {
+           (img->zoom != LV_IMG_ZOOM_NONE || img->angle != 0 || img->pivot.x != img->w / 2 || img->pivot.y != img->h / 2)) {
 
             lv_coord_t w = lv_obj_get_width(obj);
             lv_coord_t h = lv_obj_get_height(obj);
             lv_area_t coords;
-            _lv_img_buf_get_transformed_area(&coords, w, h, angle, zoom, &img->pivot);
+            _lv_img_buf_get_transformed_area(&coords, w, h, img->angle, img->zoom, &img->pivot);
             coords.x1 += obj->coords.x1;
             coords.y1 += obj->coords.y1;
             coords.x2 += obj->coords.x1;
@@ -556,19 +541,13 @@ static void draw_img(lv_event_t * e)
             return;
         }
 
-        int32_t angle_final = lv_obj_get_style_transform_angle(obj, LV_PART_MAIN);
-        angle_final += img->angle;
-
-        if(angle_final != 0) {
+        if(img->angle != 0) {
             info->res = LV_COVER_RES_NOT_COVER;
             return;
         }
 
-        int32_t zoom_final = lv_obj_get_style_transform_zoom(obj, LV_PART_MAIN);
-        zoom_final = (zoom_final * img->zoom) >> 8;
-
         const lv_area_t * clip_area = lv_event_get_param(e);
-        if(zoom_final == LV_IMG_ZOOM_NONE) {
+        if(img->zoom == LV_IMG_ZOOM_NONE) {
             if(_lv_area_is_in(clip_area, &obj->coords, 0) == false) {
                 info->res = LV_COVER_RES_NOT_COVER;
                 return;
@@ -576,7 +555,7 @@ static void draw_img(lv_event_t * e)
         }
         else {
             lv_area_t a;
-            _lv_img_buf_get_transformed_area(&a, lv_obj_get_width(obj), lv_obj_get_height(obj), 0, zoom_final, &img->pivot);
+            _lv_img_buf_get_transformed_area(&a, lv_obj_get_width(obj), lv_obj_get_height(obj), 0, img->zoom, &img->pivot);
             a.x1 += obj->coords.x1;
             a.y1 += obj->coords.y1;
             a.x2 += obj->coords.x1;
@@ -590,12 +569,6 @@ static void draw_img(lv_event_t * e)
     }
     else if(code == LV_EVENT_DRAW_MAIN || code == LV_EVENT_DRAW_POST) {
 
-        int32_t zoom_final = lv_obj_get_style_transform_zoom(obj, LV_PART_MAIN);
-        zoom_final = (zoom_final * img->zoom) >> 8;
-
-        int32_t angle_final = lv_obj_get_style_transform_angle(obj, LV_PART_MAIN);
-        angle_final += img->angle;
-
         lv_coord_t obj_w = lv_obj_get_width(obj);
         lv_coord_t obj_h = lv_obj_get_height(obj);
 
@@ -616,7 +589,7 @@ static void draw_img(lv_event_t * e)
         }
         else {
             _lv_img_buf_get_transformed_area(&bg_coords, obj_w, obj_h,
-                                             angle_final, zoom_final, &bg_pivot);
+                                             img->angle, img->zoom, &bg_pivot);
 
             /*Modify the coordinates to draw the background for the rotated and scaled coordinates*/
             bg_coords.x1 += obj->coords.x1;
@@ -636,7 +609,7 @@ static void draw_img(lv_event_t * e)
 
         if(code == LV_EVENT_DRAW_MAIN) {
             if(img->h == 0 || img->w == 0) return;
-            if(zoom_final == 0) return;
+            if(img->zoom == 0) return;
 
             lv_draw_ctx_t * draw_ctx = lv_event_get_draw_ctx(e);
 
@@ -666,8 +639,8 @@ static void draw_img(lv_event_t * e)
                 lv_draw_img_dsc_init(&img_dsc);
                 lv_obj_init_draw_img_dsc(obj, LV_PART_MAIN, &img_dsc);
 
-                img_dsc.zoom = zoom_final;
-                img_dsc.angle = angle_final;
+                img_dsc.zoom = img->zoom;
+                img_dsc.angle = img->angle;
                 img_dsc.pivot.x = img->pivot.x;
                 img_dsc.pivot.y = img->pivot.y;
                 img_dsc.antialias = img->antialias;
@@ -683,12 +656,14 @@ static void draw_img(lv_event_t * e)
                 draw_ctx->clip_area = &img_clip_area;
 
                 lv_area_t coords_tmp;
-                coords_tmp.y1 = img_max_area.y1 + img->offset.y;
+                lv_coord_t offset_x = img->offset.x % img->w;
+                lv_coord_t offset_y = img->offset.y % img->h;
+                coords_tmp.y1 = img_max_area.y1 + offset_y;
                 if(coords_tmp.y1 > img_max_area.y1) coords_tmp.y1 -= img->h;
                 coords_tmp.y2 = coords_tmp.y1 + img->h - 1;
 
                 for(; coords_tmp.y1 < img_max_area.y2; coords_tmp.y1 += img_size_final.y, coords_tmp.y2 += img_size_final.y) {
-                    coords_tmp.x1 = img_max_area.x1 + img->offset.x;
+                    coords_tmp.x1 = img_max_area.x1 + offset_x;
                     if(coords_tmp.x1 > img_max_area.x1) coords_tmp.x1 -= img->w;
                     coords_tmp.x2 = coords_tmp.x1 + img->w - 1;
 
index 2a00564..eb76c8d 100644 (file)
@@ -17,6 +17,11 @@ extern "C" {
 
 #if LV_USE_IMG != 0
 
+/*Testing of dependencies*/
+#if LV_USE_LABEL == 0
+#error "lv_img: lv_label is required. Enable it in lv_conf.h (LV_USE_LABEL 1)"
+#endif
+
 #include "../core/lv_obj.h"
 #include "../misc/lv_fs.h"
 #include "../draw/lv_draw.h"
@@ -109,6 +114,7 @@ void lv_img_set_offset_y(lv_obj_t * obj, lv_coord_t y);
 /**
  * Set the rotation angle of the image.
  * The image will be rotated around the set pivot set by `lv_img_set_pivot()`
+ * Note that indexed and alpha only images can't be transformed.
  * @param obj       pointer to an image object
  * @param angle     rotation angle in degree with 0.1 degree resolution (0..3600: clock wise)
  */
@@ -116,7 +122,7 @@ void lv_img_set_angle(lv_obj_t * obj, int16_t angle);
 
 /**
  * Set the rotation center of the image.
- * The image will be rotated around this point
+ * The image will be rotated around this point.
  * @param obj       pointer to an image object
  * @param x         rotation center x of the image
  * @param y         rotation center y of the image
@@ -126,6 +132,7 @@ void lv_img_set_pivot(lv_obj_t * obj, lv_coord_t x, lv_coord_t y);
 
 /**
  * Set the zoom factor of the image.
+ * Note that indexed and alpha only images can't be transformed.
  * @param img       pointer to an image object
  * @param zoom      the zoom factor.
  * @example 256 or LV_ZOOM_IMG_NONE for no zoom
index 0b8a165..f4fbe01 100644 (file)
@@ -1,4 +1,4 @@
-/**
+/**
  * @file lv_label.c
  *
  */
@@ -1021,6 +1021,7 @@ static void lv_label_refr_text(lv_obj_t * obj)
     }
     /*In roll inf. mode keep the size but start offset animations*/
     else if(label->long_mode == LV_LABEL_LONG_SCROLL_CIRCULAR) {
+        const lv_anim_t * anim_template = lv_obj_get_style_anim(obj, LV_PART_MAIN);
         uint16_t anim_speed = lv_obj_get_style_anim_speed(obj, LV_PART_MAIN);
         if(anim_speed == 0) anim_speed = LV_LABEL_DEF_SCROLL_SPEED;
         lv_anim_t a;
@@ -1055,8 +1056,14 @@ static void lv_label_refr_text(lv_obj_t * obj)
 
             lv_anim_t * anim_cur = lv_anim_get(obj, set_ofs_x_anim);
             int32_t act_time = anim_cur ? anim_cur->act_time : 0;
-            if(act_time < a.time) {
-                a.act_time = act_time;      /*To keep the old position*/
+
+            /*If a template animation exists, consider it's start delay and repeat delay*/
+            if(anim_template) {
+                a.act_time = anim_template->act_time;
+                a.repeat_delay = anim_template->repeat_delay;
+            }
+            else if(act_time < a.time) {
+                a.act_time = act_time;      /*To keep the old position when the label text is updated mid-scrolling*/
                 a.early_apply = 0;
             }
 
@@ -1076,8 +1083,14 @@ static void lv_label_refr_text(lv_obj_t * obj)
 
             lv_anim_t * anim_cur = lv_anim_get(obj, set_ofs_y_anim);
             int32_t act_time = anim_cur ? anim_cur->act_time : 0;
-            if(act_time < a.time) {
-                a.act_time = act_time;      /*To keep the old position*/
+
+            /*If a template animation exists, consider it's start delay and repeat delay*/
+            if(anim_template) {
+                a.act_time = anim_template->act_time;
+                a.repeat_delay = anim_template->repeat_delay;
+            }
+            else if(act_time < a.time) {
+                a.act_time = act_time;      /*To keep the old position when the label text is updated mid-scrolling*/
                 a.early_apply = 0;
             }
 
index 342e004..b31a63e 100644 (file)
@@ -142,7 +142,7 @@ void lv_label_set_text_sel_start(lv_obj_t * obj, uint32_t index);
 /**
  * Set where text selection should end
  * @param obj       pointer to a label object
- * @param index     character index where selection should end.  `LV_LABEL_TEXT_SELECTION_OFF` for no selection
+ * @param index     character index where selection should end. `LV_LABEL_TEXT_SELECTION_OFF` for no selection
  */
 void lv_label_set_text_sel_end(lv_obj_t * obj, uint32_t index);
 
index 6bb6cd9..df32bd0 100644 (file)
@@ -83,7 +83,7 @@ void lv_line_set_y_invert(lv_obj_t * obj, bool en)
     lv_line_t * line = (lv_line_t *)obj;
     if(line->y_inv == en) return;
 
-    line->y_inv = en == false ? 0 : 1;
+    line->y_inv = en ? 1U : 0U;
 
     lv_obj_invalidate(obj);
 }
@@ -98,7 +98,7 @@ bool lv_line_get_y_invert(const lv_obj_t * obj)
 
     lv_line_t * line = (lv_line_t *)obj;
 
-    return line->y_inv == 0 ? false : true;
+    return line->y_inv == 1U;
 }
 
 /**********************
@@ -143,22 +143,23 @@ static void lv_line_event(const lv_obj_class_t * class_p, lv_event_t * e)
     else if(code == LV_EVENT_GET_SELF_SIZE) {
         lv_line_t * line = (lv_line_t *)obj;
 
+        if(line->point_num == 0 || line->point_array == NULL) return;
+
         lv_point_t * p = lv_event_get_param(e);
         lv_coord_t w = 0;
         lv_coord_t h = 0;
-        if(line->point_num > 0) {
-            uint16_t i;
-            for(i = 0; i < line->point_num; i++) {
-                w = LV_MAX(line->point_array[i].x, w);
-                h = LV_MAX(line->point_array[i].y, h);
-            }
 
-            lv_coord_t line_width = lv_obj_get_style_line_width(obj, LV_PART_MAIN);
-            w += line_width;
-            h += line_width;
-            p->x = w;
-            p->y = h;
+        uint16_t i;
+        for(i = 0; i < line->point_num; i++) {
+            w = LV_MAX(line->point_array[i].x, w);
+            h = LV_MAX(line->point_array[i].y, h);
         }
+
+        lv_coord_t line_width = lv_obj_get_style_line_width(obj, LV_PART_MAIN);
+        w += line_width;
+        h += line_width;
+        p->x = w;
+        p->y = h;
     }
     else if(code == LV_EVENT_DRAW_MAIN) {
         lv_line_t * line = (lv_line_t *)obj;
@@ -170,18 +171,17 @@ static void lv_line_event(const lv_obj_class_t * class_p, lv_event_t * e)
         lv_obj_get_coords(obj, &area);
         lv_coord_t x_ofs = area.x1 - lv_obj_get_scroll_x(obj);
         lv_coord_t y_ofs = area.y1 - lv_obj_get_scroll_y(obj);
-        lv_point_t p1;
-        lv_point_t p2;
         lv_coord_t h = lv_obj_get_height(obj);
-        uint16_t i;
 
         lv_draw_line_dsc_t line_dsc;
         lv_draw_line_dsc_init(&line_dsc);
         lv_obj_init_draw_line_dsc(obj, LV_PART_MAIN, &line_dsc);
 
         /*Read all points and draw the lines*/
+        uint16_t i;
         for(i = 0; i < line->point_num - 1; i++) {
-
+            lv_point_t p1;
+            lv_point_t p2;
             p1.x = line->point_array[i].x + x_ofs;
             p2.x = line->point_array[i + 1].x + x_ofs;
 
index 2ec5473..54fa248 100644 (file)
@@ -30,7 +30,7 @@ extern "C" {
 /*Data of line*/
 typedef struct {
     lv_obj_t obj;
-    lv_point_t * point_array;     /**< Pointer to an array with the points of the line*/
+    const lv_point_t * point_array;     /**< Pointer to an array with the points of the line*/
     uint16_t point_num;                 /**< Number of points in 'point_array'*/
     uint8_t y_inv : 1;                  /**< 1: y == 0 will be on the bottom*/
 } lv_line_t;
index d66f859..f79e882 100644 (file)
@@ -161,17 +161,20 @@ void lv_roller_set_selected(lv_obj_t * obj, uint16_t sel_opt, lv_anim_enable_t a
 
     /*In infinite mode interpret the new ID relative to the currently visible "page"*/
     if(roller->mode == LV_ROLLER_MODE_INFINITE) {
-        int32_t sel_opt_signed = sel_opt;
-        uint16_t page = roller->sel_opt_id / LV_ROLLER_INF_PAGES;
-
-        /*`sel_opt` should be less than the number of options set by the user.
-         *If it's more then probably it's a reference from not the first page
-         *so normalize `sel_opt`*/
-        if(page != 0) {
-            sel_opt_signed -= page * LV_ROLLER_INF_PAGES;
+        uint32_t real_option_cnt = roller->option_cnt / LV_ROLLER_INF_PAGES;
+        uint16_t current_page = roller->sel_opt_id / real_option_cnt;
+        /*Set by the user to e.g. 0, 1, 2, 3...
+         *Upscale the value to the current page*/
+        if(sel_opt < real_option_cnt) {
+            uint16_t act_opt = roller->sel_opt_id - current_page * real_option_cnt;
+            int32_t sel_opt_signed = sel_opt;
+            /*Huge jump? Probably from last to first or first to last option.*/
+            if(LV_ABS((int16_t)act_opt - sel_opt) > real_option_cnt / 2) {
+                if(act_opt > sel_opt) sel_opt_signed += real_option_cnt;
+                else sel_opt_signed -= real_option_cnt;
+            }
+            sel_opt = sel_opt_signed + real_option_cnt * current_page;
         }
-
-        sel_opt = page * LV_ROLLER_INF_PAGES + sel_opt_signed;
     }
 
     roller->sel_opt_id     = sel_opt < roller->option_cnt ? sel_opt : roller->option_cnt - 1;
@@ -474,6 +477,7 @@ static void draw_main(lv_event_t * e)
         area_ok = _lv_area_intersect(&mask_sel, draw_ctx->clip_area, &sel_area);
         if(area_ok) {
             lv_obj_t * label = get_label(obj);
+            if(lv_label_get_recolor(label)) label_dsc.flag |= LV_TEXT_FLAG_RECOLOR;
 
             /*Get the size of the "selected text"*/
             lv_point_t res_p;
@@ -526,6 +530,8 @@ static void draw_label(lv_event_t * e)
     lv_draw_label_dsc_t label_draw_dsc;
     lv_draw_label_dsc_init(&label_draw_dsc);
     lv_obj_init_draw_label_dsc(roller, LV_PART_MAIN, &label_draw_dsc);
+    if(lv_label_get_recolor(label_obj)) label_draw_dsc.flag |= LV_TEXT_FLAG_RECOLOR;
+
     lv_draw_ctx_t * draw_ctx = lv_event_get_draw_ctx(e);
 
     /*If the roller has shadow or outline it has some ext. draw size
index d90001d..14411de 100644 (file)
@@ -17,6 +17,11 @@ extern "C" {
 
 #if LV_USE_ROLLER != 0
 
+/*Testing of dependencies*/
+#if LV_USE_LABEL == 0
+#error "lv_roller: lv_label is required. Enable it in lv_conf.h (LV_USE_ROLLER 1)"
+#endif
+
 #include "../core/lv_obj.h"
 #include "lv_label.h"
 
index 82f6fee..98711da 100644 (file)
@@ -22,7 +22,7 @@
  *********************/
 #define MY_CLASS &lv_slider_class
 
-#define LV_SLIDER_KNOB_COORD(hor, is_rtl, area) (hor ? (is_rtl ? area.x1 : area.x2) : (is_rtl ? area.y1 : area.y2))
+#define LV_SLIDER_KNOB_COORD(is_rtl, area) (is_rtl ? area.x1 : area.x2)
 
 /**********************
  *      TYPEDEFS
@@ -33,8 +33,9 @@
  **********************/
 static void lv_slider_constructor(const lv_obj_class_t * class_p, lv_obj_t * obj);
 static void lv_slider_event(const lv_obj_class_t * class_p, lv_event_t * e);
-static void position_knob(lv_obj_t * obj, lv_area_t * knob_area, lv_coord_t knob_size, bool hor);
+static void position_knob(lv_obj_t * obj, lv_area_t * knob_area, const lv_coord_t knob_size, const bool hor);
 static void draw_knob(lv_event_t * e);
+static bool is_slider_horizontal(lv_obj_t * obj);
 
 /**********************
  *  STATIC VARIABLES
@@ -83,8 +84,8 @@ static void lv_slider_constructor(const lv_obj_class_t * class_p, lv_obj_t * obj
 
     /*Initialize the allocated 'slider'*/
     slider->value_to_set = NULL;
-    slider->dragging = 0;
-    slider->left_knob_focus = 0;
+    slider->dragging = 0U;
+    slider->left_knob_focus = 0U;
 
     lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLL_CHAIN);
     lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE);
@@ -194,40 +195,40 @@ static void lv_slider_event(const lv_obj_class_t * class_p, lv_event_t * e)
 
         lv_point_t p;
         lv_indev_get_point(indev, &p);
-        lv_base_dir_t base_dir = lv_obj_get_style_base_dir(obj, LV_PART_MAIN);
-
-        lv_coord_t w = lv_obj_get_width(obj);
-        lv_coord_t h = lv_obj_get_height(obj);
-
-        lv_coord_t bg_left = lv_obj_get_style_pad_left(obj,   LV_PART_MAIN);
-        lv_coord_t bg_right = lv_obj_get_style_pad_right(obj,  LV_PART_MAIN);
-        lv_coord_t bg_top = lv_obj_get_style_pad_top(obj,    LV_PART_MAIN);
-        lv_coord_t bg_bottom = lv_obj_get_style_pad_bottom(obj, LV_PART_MAIN);
-
-        int32_t range = slider->bar.max_value - slider->bar.min_value;
         int32_t new_value = 0;
-        int32_t real_max_value = slider->bar.max_value;
-        int32_t real_min_value = slider->bar.min_value;
 
-        if(w >= h) {
-            lv_coord_t indic_w = w - bg_left - bg_right;
-            if(base_dir == LV_BASE_DIR_RTL) {
-                new_value = (obj->coords.x2 - bg_right) - p.x; /*Make the point relative to the indicator*/
+        const int32_t range = slider->bar.max_value - slider->bar.min_value;
+        if(is_slider_horizontal(obj)) {
+            const lv_coord_t bg_left = lv_obj_get_style_pad_left(obj, LV_PART_MAIN);
+            const lv_coord_t bg_right = lv_obj_get_style_pad_right(obj, LV_PART_MAIN);
+            const lv_coord_t w = lv_obj_get_width(obj);
+            const lv_coord_t indic_w = w - bg_left - bg_right;
+
+            if(lv_obj_get_style_base_dir(obj, LV_PART_MAIN) == LV_BASE_DIR_RTL) {
+                /*Make the point relative to the indicator*/
+                new_value = (obj->coords.x2 - bg_right) - p.x;
             }
             else {
-                new_value = p.x - (obj->coords.x1 + bg_left); /*Make the point relative to the indicator*/
+                /*Make the point relative to the indicator*/
+                new_value = p.x - (obj->coords.x1 + bg_left);
             }
-            new_value = (new_value * range) / indic_w;
+            new_value = (new_value * range + indic_w / 2) / indic_w;
             new_value += slider->bar.min_value;
         }
         else {
-            lv_coord_t indic_h = h - bg_bottom - bg_top;
-            new_value = p.y - (obj->coords.y2 + bg_bottom); /*Make the point relative to the indicator*/
-            new_value = (-new_value * range) / indic_h;
+            const lv_coord_t bg_top = lv_obj_get_style_pad_top(obj, LV_PART_MAIN);
+            const lv_coord_t bg_bottom = lv_obj_get_style_pad_bottom(obj, LV_PART_MAIN);
+            const lv_coord_t h = lv_obj_get_height(obj);
+            const lv_coord_t indic_h = h - bg_bottom - bg_top;
+
+            /*Make the point relative to the indicator*/
+            new_value = p.y - (obj->coords.y2 + bg_bottom);
+            new_value = (-new_value * range + indic_h / 2) / indic_h;
             new_value += slider->bar.min_value;
-
         }
 
+        int32_t real_max_value = slider->bar.max_value;
+        int32_t real_min_value = slider->bar.min_value;
         /*Figure out the min. and max. for this mode*/
         if(slider->value_to_set == &slider->bar.start_value) {
             real_max_value = slider->bar.cur_value;
@@ -236,11 +237,14 @@ static void lv_slider_event(const lv_obj_class_t * class_p, lv_event_t * e)
             real_min_value = slider->bar.start_value;
         }
 
-        if(new_value < real_min_value) new_value = real_min_value;
-        else if(new_value > real_max_value) new_value = real_max_value;
+        new_value = LV_CLAMP(real_min_value, new_value, real_max_value);
         if(*slider->value_to_set != new_value) {
-            *slider->value_to_set = new_value;
-            lv_obj_invalidate(obj);
+            if(slider->value_to_set == &slider->bar.start_value) {
+                lv_bar_set_start_value(obj, new_value, LV_ANIM_ON);
+            }
+            else {
+                lv_bar_set_value(obj, new_value, LV_ANIM_ON);
+            }
             res = lv_event_send(obj, LV_EVENT_VALUE_CHANGED, NULL);
             if(res != LV_RES_OK) return;
         }
@@ -308,17 +312,17 @@ static void lv_slider_event(const lv_obj_class_t * class_p, lv_event_t * e)
         if(c == LV_KEY_RIGHT || c == LV_KEY_UP) {
             if(!slider->left_knob_focus) lv_slider_set_value(obj, lv_slider_get_value(obj) + 1, LV_ANIM_ON);
             else lv_slider_set_left_value(obj, lv_slider_get_left_value(obj) + 1, LV_ANIM_ON);
-
-            res = lv_event_send(obj, LV_EVENT_VALUE_CHANGED, NULL);
-            if(res != LV_RES_OK) return;
         }
         else if(c == LV_KEY_LEFT || c == LV_KEY_DOWN) {
             if(!slider->left_knob_focus) lv_slider_set_value(obj, lv_slider_get_value(obj) - 1, LV_ANIM_ON);
             else lv_slider_set_left_value(obj, lv_slider_get_left_value(obj) - 1, LV_ANIM_ON);
-
-            res = lv_event_send(obj, LV_EVENT_VALUE_CHANGED, NULL);
-            if(res != LV_RES_OK) return;
         }
+        else {
+            return;
+        }
+
+        res = lv_event_send(obj, LV_EVENT_VALUE_CHANGED, NULL);
+        if(res != LV_RES_OK) return;
     }
     else if(code == LV_EVENT_DRAW_MAIN) {
         draw_knob(e);
@@ -330,51 +334,33 @@ static void draw_knob(lv_event_t * e)
     lv_obj_t * obj = lv_event_get_target(e);
     lv_slider_t * slider = (lv_slider_t *)obj;
     lv_draw_ctx_t * draw_ctx = lv_event_get_draw_ctx(e);
-    lv_base_dir_t base_dir = lv_obj_get_style_base_dir(obj, LV_PART_MAIN);
 
-    lv_coord_t objw = lv_obj_get_width(obj);
-    lv_coord_t objh = lv_obj_get_height(obj);
-    bool hor = objw >= objh ? true : false;
-    lv_coord_t knob_size = hor ? objh : objw;
-    bool sym = false;
-    if(slider->bar.mode == LV_BAR_MODE_SYMMETRICAL && slider->bar.min_value < 0 && slider->bar.max_value > 0) sym = true;
+    const bool is_rtl = LV_BASE_DIR_RTL == lv_obj_get_style_base_dir(obj, LV_PART_MAIN);
+    const bool is_horizontal = is_slider_horizontal(obj);
 
     lv_area_t knob_area;
-
-    /*Horizontal*/
-    if(hor) {
-        if(!sym) {
-            knob_area.x1 = LV_SLIDER_KNOB_COORD(hor, base_dir == LV_BASE_DIR_RTL, slider->bar.indic_area);
-        }
-        else {
-            if(slider->bar.cur_value >= 0) {
-                knob_area.x1 = LV_SLIDER_KNOB_COORD(hor, base_dir == LV_BASE_DIR_RTL, slider->bar.indic_area);
-            }
-            else {
-                knob_area.x1 = LV_SLIDER_KNOB_COORD(hor, base_dir != LV_BASE_DIR_RTL, slider->bar.indic_area);
-            }
-        }
+    lv_coord_t knob_size;
+    bool is_symmetrical = false;
+    if(slider->bar.mode == LV_BAR_MODE_SYMMETRICAL && slider->bar.min_value < 0 &&
+       slider->bar.max_value > 0) is_symmetrical = true;
+
+    if(is_horizontal) {
+        knob_size = lv_obj_get_height(obj);
+        if(is_symmetrical && slider->bar.cur_value < 0) knob_area.x1 = slider->bar.indic_area.x1;
+        else knob_area.x1 = LV_SLIDER_KNOB_COORD(is_rtl, slider->bar.indic_area);
     }
-    /*Vertical*/
     else {
-        if(!sym) {
-            knob_area.y1 = slider->bar.indic_area.y1;
-        }
-        else {
-            if(slider->bar.cur_value >= 0) {
-                knob_area.y1 = slider->bar.indic_area.y1;
-            }
-            else {
-                knob_area.y1 = slider->bar.indic_area.y2;
-            }
-        }
+        knob_size = lv_obj_get_width(obj);
+        if(is_symmetrical && slider->bar.cur_value < 0) knob_area.y1 = slider->bar.indic_area.y2;
+        else knob_area.y1 = slider->bar.indic_area.y1;
     }
 
     lv_draw_rect_dsc_t knob_rect_dsc;
     lv_draw_rect_dsc_init(&knob_rect_dsc);
     lv_obj_init_draw_rect_dsc(obj, LV_PART_KNOB, &knob_rect_dsc);
-
-    position_knob(obj, &knob_area, knob_size, hor);
+    /* Update knob area with knob style */
+    position_knob(obj, &knob_area, knob_size, is_horizontal);
+    /* Update right knob area with calculated knob area */
     lv_area_copy(&slider->right_knob_area, &knob_area);
 
     lv_obj_draw_part_dsc_t part_draw_dsc;
@@ -395,19 +381,20 @@ static void draw_knob(lv_event_t * e)
         /*Save the draw part_draw_dsc. because it can be modified in the event*/
         lv_draw_rect_dsc_t knob_rect_dsc_tmp;
         lv_memcpy(&knob_rect_dsc_tmp, &knob_rect_dsc, sizeof(lv_draw_rect_dsc_t));
-
+        /* Draw the right knob */
         lv_event_send(obj, LV_EVENT_DRAW_PART_BEGIN, &part_draw_dsc);
         lv_draw_rect(draw_ctx, &knob_rect_dsc, &slider->right_knob_area);
         lv_event_send(obj, LV_EVENT_DRAW_PART_END, &part_draw_dsc);
 
-        /*Draw a second knob for the start_value side*/
-        if(hor) {
-            knob_area.x1 = LV_SLIDER_KNOB_COORD(hor, base_dir != LV_BASE_DIR_RTL, slider->bar.indic_area);
+        /*Calculate the second knob area*/
+        if(is_horizontal) {
+            /*use !is_rtl to get the other knob*/
+            knob_area.x1 = LV_SLIDER_KNOB_COORD(!is_rtl, slider->bar.indic_area);
         }
         else {
             knob_area.y1 = slider->bar.indic_area.y2;
         }
-        position_knob(obj, &knob_area, knob_size, hor);
+        position_knob(obj, &knob_area, knob_size, is_horizontal);
         lv_area_copy(&slider->left_knob_area, &knob_area);
 
         lv_memcpy(&knob_rect_dsc, &knob_rect_dsc_tmp, sizeof(lv_draw_rect_dsc_t));
@@ -422,9 +409,8 @@ static void draw_knob(lv_event_t * e)
     }
 }
 
-static void position_knob(lv_obj_t * obj, lv_area_t * knob_area, lv_coord_t knob_size, bool hor)
+static void position_knob(lv_obj_t * obj, lv_area_t * knob_area, const lv_coord_t knob_size, const bool hor)
 {
-
     if(hor) {
         knob_area->x1 -= (knob_size >> 1);
         knob_area->x2 = knob_area->x1 + knob_size - 1;
@@ -438,9 +424,9 @@ static void position_knob(lv_obj_t * obj, lv_area_t * knob_area, lv_coord_t knob
         knob_area->x2 = obj->coords.x2;
     }
 
-    lv_coord_t knob_left = lv_obj_get_style_pad_left(obj,   LV_PART_KNOB);
-    lv_coord_t knob_right = lv_obj_get_style_pad_right(obj,  LV_PART_KNOB);
-    lv_coord_t knob_top = lv_obj_get_style_pad_top(obj,    LV_PART_KNOB);
+    lv_coord_t knob_left = lv_obj_get_style_pad_left(obj, LV_PART_KNOB);
+    lv_coord_t knob_right = lv_obj_get_style_pad_right(obj, LV_PART_KNOB);
+    lv_coord_t knob_top = lv_obj_get_style_pad_top(obj, LV_PART_KNOB);
     lv_coord_t knob_bottom = lv_obj_get_style_pad_bottom(obj, LV_PART_KNOB);
 
     lv_coord_t transf_w = lv_obj_get_style_transform_width(obj, LV_PART_KNOB);
@@ -453,4 +439,9 @@ static void position_knob(lv_obj_t * obj, lv_area_t * knob_area, lv_coord_t knob
     knob_area->y2 += knob_bottom + transf_h;
 }
 
+static bool is_slider_horizontal(lv_obj_t * obj)
+{
+    return lv_obj_get_width(obj) >= lv_obj_get_height(obj);
+}
+
 #endif
index 1b03215..f789e8d 100644 (file)
@@ -36,8 +36,18 @@ static void draw_main(lv_event_t * e);
 static lv_coord_t get_row_height(lv_obj_t * obj, uint16_t row_id, const lv_font_t * font,
                                  lv_coord_t letter_space, lv_coord_t line_space,
                                  lv_coord_t cell_left, lv_coord_t cell_right, lv_coord_t cell_top, lv_coord_t cell_bottom);
-static void refr_size(lv_obj_t * obj, uint32_t strat_row);
+static void refr_size_form_row(lv_obj_t * obj, uint32_t start_row);
+static void refr_cell_size(lv_obj_t * obj, uint32_t row, uint32_t col);
 static lv_res_t get_pressed_cell(lv_obj_t * obj, uint16_t * row, uint16_t * col);
+static size_t get_cell_txt_len(const char * txt);
+static void copy_cell_txt(char * dst, const char * txt);
+static void get_cell_area(lv_obj_t * obj, uint16_t row, uint16_t col, lv_area_t * area);
+static void scroll_to_selected_cell(lv_obj_t * obj);
+
+static inline bool is_cell_empty(void * cell)
+{
+    return cell == NULL;
+}
 
 /**********************
  *  STATIC VARIABLES
@@ -90,25 +100,16 @@ void lv_table_set_cell_value(lv_obj_t * obj, uint16_t row, uint16_t col, const c
     /*Save the control byte*/
     if(table->cell_data[cell]) ctrl = table->cell_data[cell][0];
 
-#if LV_USE_ARABIC_PERSIAN_CHARS
-    /*Get the size of the Arabic text and process it*/
-    size_t len_ap = _lv_txt_ap_calc_bytes_cnt(txt);
-    table->cell_data[cell] = lv_mem_realloc(table->cell_data[cell], len_ap + 1);
-    LV_ASSERT_MALLOC(table->cell_data[cell]);
-    if(table->cell_data[cell] == NULL) return;
+    size_t to_allocate = get_cell_txt_len(txt);
 
-    _lv_txt_ap_proc(txt, &table->cell_data[cell][1]);
-#else
-    table->cell_data[cell] = lv_mem_realloc(table->cell_data[cell], strlen(txt) + 2); /*+1: trailing '\0; +1: format byte*/
+    table->cell_data[cell] = lv_mem_realloc(table->cell_data[cell], to_allocate);
     LV_ASSERT_MALLOC(table->cell_data[cell]);
+    if(table->cell_data[cell] == NULL) return;
 
-    strcpy(table->cell_data[cell] + 1, txt);  /*+1 to skip the format byte*/
-#endif
+    copy_cell_txt(table->cell_data[cell], txt);
 
     table->cell_data[cell][0] = ctrl;
-    refr_size(obj, row);
-
-    lv_obj_invalidate(obj);
+    refr_cell_size(obj, row, col);
 }
 
 void lv_table_set_cell_value_fmt(lv_obj_t * obj, uint16_t row, uint16_t col, const char * fmt, ...)
@@ -118,8 +119,7 @@ void lv_table_set_cell_value_fmt(lv_obj_t * obj, uint16_t row, uint16_t col, con
 
     lv_table_t * table = (lv_table_t *)obj;
     if(col >= table->col_cnt) {
-        LV_LOG_WARN("lv_table_set_cell_value: invalid column");
-        return;
+        lv_table_set_col_cnt(obj, col + 1);
     }
 
     /*Auto expand*/
@@ -180,26 +180,7 @@ void lv_table_set_cell_value_fmt(lv_obj_t * obj, uint16_t row, uint16_t col, con
 
     table->cell_data[cell][0] = ctrl;
 
-    /*Refresh the row height*/
-    lv_coord_t cell_left = lv_obj_get_style_pad_left(obj, LV_PART_ITEMS);
-    lv_coord_t cell_right = lv_obj_get_style_pad_right(obj, LV_PART_ITEMS);
-    lv_coord_t cell_top = lv_obj_get_style_pad_top(obj, LV_PART_ITEMS);
-    lv_coord_t cell_bottom = lv_obj_get_style_pad_bottom(obj, LV_PART_ITEMS);
-
-    lv_coord_t letter_space = lv_obj_get_style_text_letter_space(obj, LV_PART_ITEMS);
-    lv_coord_t line_space = lv_obj_get_style_text_line_space(obj, LV_PART_ITEMS);
-    const lv_font_t * font = lv_obj_get_style_text_font(obj, LV_PART_ITEMS);
-
-    lv_coord_t h = get_row_height(obj, row, font, letter_space, line_space,
-                                  cell_left, cell_right, cell_top, cell_bottom);
-
-
-    lv_coord_t minh = lv_obj_get_style_min_height(obj, LV_PART_ITEMS);
-    lv_coord_t maxh = lv_obj_get_style_max_height(obj, LV_PART_ITEMS);
-
-    table->row_h[row] = LV_CLAMP(minh, h, maxh);
-
-    lv_obj_invalidate(obj);
+    refr_cell_size(obj, row, col);
 }
 
 void lv_table_set_row_cnt(lv_obj_t * obj, uint16_t row_cnt)
@@ -207,6 +188,9 @@ void lv_table_set_row_cnt(lv_obj_t * obj, uint16_t row_cnt)
     LV_ASSERT_OBJ(obj, MY_CLASS);
 
     lv_table_t * table = (lv_table_t *)obj;
+
+    if(table->row_cnt == row_cnt) return;
+
     uint16_t old_row_cnt = table->row_cnt;
     table->row_cnt         = row_cnt;
 
@@ -235,7 +219,7 @@ void lv_table_set_row_cnt(lv_obj_t * obj, uint16_t row_cnt)
         lv_memset_00(&table->cell_data[old_cell_cnt], (new_cell_cnt - old_cell_cnt) * sizeof(table->cell_data[0]));
     }
 
-    refr_size(obj, 0) ;
+    refr_size_form_row(obj, 0);
 }
 
 void lv_table_set_col_cnt(lv_obj_t * obj, uint16_t col_cnt)
@@ -243,35 +227,18 @@ void lv_table_set_col_cnt(lv_obj_t * obj, uint16_t col_cnt)
     LV_ASSERT_OBJ(obj, MY_CLASS);
 
     lv_table_t * table = (lv_table_t *)obj;
+
+    if(table->col_cnt == col_cnt) return;
+
     uint16_t old_col_cnt = table->col_cnt;
     table->col_cnt         = col_cnt;
-    table->col_w = lv_mem_realloc(table->col_w, col_cnt * sizeof(table->row_h[0]));
-    LV_ASSERT_MALLOC(table->col_w);
-    if(table->col_w == NULL) return;
-
-    /*Free the unused cells*/
-    if(old_col_cnt > col_cnt) {
-        uint16_t old_cell_cnt = old_col_cnt * table->row_cnt;
-        uint32_t new_cell_cnt = table->col_cnt * table->row_cnt;
-        uint32_t i;
-        for(i = new_cell_cnt; i < old_cell_cnt; i++) {
-            lv_mem_free(table->cell_data[i]);
-        }
-    }
 
     char ** new_cell_data = lv_mem_alloc(table->row_cnt * table->col_cnt * sizeof(char *));
     LV_ASSERT_MALLOC(new_cell_data);
     if(new_cell_data == NULL) return;
     uint32_t new_cell_cnt = table->col_cnt * table->row_cnt;
-    lv_memset_00(new_cell_data, new_cell_cnt * sizeof(table->cell_data[0]));
 
-    /*Initialize the new fields*/
-    if(old_col_cnt < col_cnt) {
-        uint32_t col;
-        for(col = old_col_cnt; col < col_cnt; col++) {
-            table->col_w[col] = LV_DPI_DEF;
-        }
-    }
+    lv_memset_00(new_cell_data, new_cell_cnt * sizeof(table->cell_data[0]));
 
     /*The new column(s) messes up the mapping of `cell_data`*/
     uint32_t old_col_start;
@@ -284,13 +251,31 @@ void lv_table_set_col_cnt(lv_obj_t * obj, uint16_t col_cnt)
 
         lv_memcpy_small(&new_cell_data[new_col_start], &table->cell_data[old_col_start],
                         sizeof(new_cell_data[0]) * min_col_cnt);
+
+        /*Free the old cells (only if the table becomes smaller)*/
+        int32_t i;
+        for(i = 0; i < (int32_t)old_col_cnt - col_cnt; i++) {
+            uint32_t idx = old_col_start + min_col_cnt + i;
+            lv_mem_free(table->cell_data[idx]);
+            table->cell_data[idx] = NULL;
+        }
     }
 
     lv_mem_free(table->cell_data);
     table->cell_data = new_cell_data;
 
+    /*Initialize the new column widths if any*/
+    table->col_w = lv_mem_realloc(table->col_w, col_cnt * sizeof(table->col_w[0]));
+    LV_ASSERT_MALLOC(table->col_w);
+    if(table->col_w == NULL) return;
+
+    uint32_t col;
+    for(col = old_col_cnt; col < col_cnt; col++) {
+        table->col_w[col] = LV_DPI_DEF;
+    }
+
 
-    refr_size(obj, 0) ;
+    refr_size_form_row(obj, 0) ;
 }
 
 void lv_table_set_col_width(lv_obj_t * obj, uint16_t col_id, lv_coord_t w)
@@ -303,7 +288,7 @@ void lv_table_set_col_width(lv_obj_t * obj, uint16_t col_id, lv_coord_t w)
     if(col_id >= table->col_cnt) lv_table_set_col_cnt(obj, col_id + 1);
 
     table->col_w[col_id] = w;
-    refr_size(obj, 0) ;
+    refr_size_form_row(obj, 0);
 }
 
 void lv_table_add_cell_ctrl(lv_obj_t * obj, uint16_t row, uint16_t col, lv_table_cell_ctrl_t ctrl)
@@ -318,7 +303,7 @@ void lv_table_add_cell_ctrl(lv_obj_t * obj, uint16_t row, uint16_t col, lv_table
 
     uint32_t cell = row * table->col_cnt + col;
 
-    if(table->cell_data[cell] == NULL) {
+    if(is_cell_empty(table->cell_data[cell])) {
         table->cell_data[cell]    = lv_mem_alloc(2); /*+1: trailing '\0; +1: format byte*/
         LV_ASSERT_MALLOC(table->cell_data[cell]);
         if(table->cell_data[cell] == NULL) return;
@@ -342,7 +327,7 @@ void lv_table_clear_cell_ctrl(lv_obj_t * obj, uint16_t row, uint16_t col, lv_tab
 
     uint32_t cell = row * table->col_cnt + col;
 
-    if(table->cell_data[cell] == NULL) {
+    if(is_cell_empty(table->cell_data[cell])) {
         table->cell_data[cell]    = lv_mem_alloc(2); /*+1: trailing '\0; +1: format byte*/
         LV_ASSERT_MALLOC(table->cell_data[cell]);
         if(table->cell_data[cell] == NULL) return;
@@ -364,12 +349,12 @@ const char * lv_table_get_cell_value(lv_obj_t * obj, uint16_t row, uint16_t col)
 
     lv_table_t * table = (lv_table_t *)obj;
     if(row >= table->row_cnt || col >= table->col_cnt) {
-        LV_LOG_WARN("lv_table_set_cell_value: invalid row or column");
+        LV_LOG_WARN("invalid row or column");
         return "";
     }
     uint32_t cell = row * table->col_cnt + col;
 
-    if(table->cell_data[cell] == NULL) return "";
+    if(is_cell_empty(table->cell_data[cell])) return "";
 
     return &table->cell_data[cell][1]; /*Skip the format byte*/
 }
@@ -415,8 +400,8 @@ bool lv_table_has_cell_ctrl(lv_obj_t * obj, uint16_t row, uint16_t col, lv_table
     }
     uint32_t cell = row * table->col_cnt + col;
 
-    if(table->cell_data[cell] == NULL) return false;
-    else return (table->cell_data[cell][0] & ctrl) == ctrl ? true : false;
+    if(is_cell_empty(table->cell_data[cell])) return false;
+    else return (table->cell_data[cell][0] & ctrl) == ctrl;
 }
 
 void lv_table_get_selected_cell(lv_obj_t * obj, uint16_t * row, uint16_t * col)
@@ -482,7 +467,7 @@ static void lv_table_event(const lv_obj_class_t * class_p, lv_event_t * e)
     lv_table_t * table = (lv_table_t *)obj;
 
     if(code == LV_EVENT_STYLE_CHANGED) {
-        refr_size(obj, 0);
+        refr_size_form_row(obj, 0);
     }
     else if(code == LV_EVENT_GET_SELF_SIZE) {
         lv_point_t * p = lv_event_get_param(e);
@@ -532,6 +517,7 @@ static void lv_table_event(const lv_obj_class_t * class_p, lv_event_t * e)
         if(col == LV_TABLE_CELL_NONE || row == LV_TABLE_CELL_NONE) {
             table->col_act = 0;
             table->row_act = 0;
+            scroll_to_selected_cell(obj);
             lv_obj_invalidate(obj);
             return;
         }
@@ -576,6 +562,8 @@ static void lv_table_event(const lv_obj_class_t * class_p, lv_event_t * e)
             table->row_act = row;
             lv_obj_invalidate(obj);
 
+            scroll_to_selected_cell(obj);
+
             res = lv_event_send(obj, LV_EVENT_VALUE_CHANGED, NULL);
             if(res != LV_RES_OK) return;
         }
@@ -599,8 +587,6 @@ static void draw_main(lv_event_t * e)
 
     lv_point_t txt_size;
     lv_area_t cell_area;
-    lv_area_t txt_area;
-    lv_text_flag_t txt_flags;
 
     lv_coord_t border_width = lv_obj_get_style_border_width(obj, LV_PART_MAIN);
     lv_coord_t bg_top = lv_obj_get_style_pad_top(obj, LV_PART_MAIN);
@@ -608,11 +594,6 @@ static void draw_main(lv_event_t * e)
     lv_coord_t bg_left = lv_obj_get_style_pad_left(obj, LV_PART_MAIN);
     lv_coord_t bg_right = lv_obj_get_style_pad_right(obj, LV_PART_MAIN);
 
-    lv_coord_t cell_left = lv_obj_get_style_pad_left(obj, LV_PART_ITEMS);
-    lv_coord_t cell_right = lv_obj_get_style_pad_right(obj, LV_PART_ITEMS);
-    lv_coord_t cell_top = lv_obj_get_style_pad_top(obj, LV_PART_ITEMS);
-    lv_coord_t cell_bottom = lv_obj_get_style_pad_bottom(obj, LV_PART_ITEMS);
-
     lv_state_t state_ori = obj->state;
     obj->state = LV_STATE_DEFAULT;
     obj->skip_trans = 1;
@@ -634,7 +615,7 @@ static void draw_main(lv_event_t * e)
 
     cell_area.y2 = obj->coords.y1 + bg_top - 1 - lv_obj_get_scroll_y(obj) + border_width;
     lv_coord_t scroll_x = lv_obj_get_scroll_x(obj) ;
-    bool rtl = lv_obj_get_style_base_dir(obj, LV_PART_MAIN) == LV_BASE_DIR_RTL ? true : false;
+    bool rtl = lv_obj_get_style_base_dir(obj, LV_PART_MAIN) == LV_BASE_DIR_RTL;
 
     /*Handle custom drawer*/
     lv_obj_draw_part_dsc_t part_draw_dsc;
@@ -671,15 +652,16 @@ static void draw_main(lv_event_t * e)
 
             uint16_t col_merge = 0;
             for(col_merge = 0; col_merge + col < table->col_cnt - 1; col_merge++) {
-                if(table->cell_data[cell + col_merge]) {
-                    char * next_cell_data = table->cell_data[cell + col_merge];
-                    if(next_cell_data) ctrl = next_cell_data[0];
-                    if(ctrl & LV_TABLE_CELL_CTRL_MERGE_RIGHT)
-                        if(rtl) cell_area.x1 -= table->col_w[col + col_merge + 1];
-                        else cell_area.x2 += table->col_w[col + col_merge + 1];
-                    else {
-                        break;
-                    }
+                char * next_cell_data = table->cell_data[cell + col_merge];
+
+                if(is_cell_empty(next_cell_data)) break;
+
+                lv_table_cell_ctrl_t merge_ctrl = (lv_table_cell_ctrl_t) next_cell_data[0];
+                if(merge_ctrl & LV_TABLE_CELL_CTRL_MERGE_RIGHT) {
+                    lv_coord_t offset = table->col_w[col + col_merge + 1];
+
+                    if(rtl) cell_area.x1 -= offset;
+                    else cell_area.x2 += offset;
                 }
                 else {
                     break;
@@ -741,6 +723,13 @@ static void draw_main(lv_event_t * e)
             lv_draw_rect(draw_ctx, &rect_dsc_act, &cell_area_border);
 
             if(table->cell_data[cell]) {
+                const lv_coord_t cell_left = lv_obj_get_style_pad_left(obj, LV_PART_ITEMS);
+                const lv_coord_t cell_right = lv_obj_get_style_pad_right(obj, LV_PART_ITEMS);
+                const lv_coord_t cell_top = lv_obj_get_style_pad_top(obj, LV_PART_ITEMS);
+                const lv_coord_t cell_bottom = lv_obj_get_style_pad_bottom(obj, LV_PART_ITEMS);
+                lv_text_flag_t txt_flags = LV_TEXT_FLAG_NONE;
+                lv_area_t txt_area;
+
                 txt_area.x1 = cell_area.x1 + cell_left;
                 txt_area.x2 = cell_area.x2 - cell_right;
                 txt_area.y1 = cell_area.y1 + cell_top;
@@ -749,7 +738,6 @@ static void draw_main(lv_event_t * e)
                 /*Align the content to the middle if not cropped*/
                 bool crop = ctrl & LV_TABLE_CELL_CTRL_TEXT_CROP ? true : false;
                 if(crop) txt_flags = LV_TEXT_FLAG_EXPAND;
-                else txt_flags = LV_TEXT_FLAG_NONE;
 
                 lv_txt_get_size(&txt_size, table->cell_data[cell] + 1, label_dsc_def.font,
                                 label_dsc_act.letter_space, label_dsc_act.line_space,
@@ -781,31 +769,66 @@ static void draw_main(lv_event_t * e)
     draw_ctx->clip_area = clip_area_ori;
 }
 
-static void refr_size(lv_obj_t * obj, uint32_t strat_row)
+/* Refreshes size of the table starting from @start_row row */
+static void refr_size_form_row(lv_obj_t * obj, uint32_t start_row)
 {
-    lv_table_t * table = (lv_table_t *)obj;
+    const lv_coord_t cell_pad_left = lv_obj_get_style_pad_left(obj, LV_PART_ITEMS);
+    const lv_coord_t cell_pad_right = lv_obj_get_style_pad_right(obj, LV_PART_ITEMS);
+    const lv_coord_t cell_pad_top = lv_obj_get_style_pad_top(obj, LV_PART_ITEMS);
+    const lv_coord_t cell_pad_bottom = lv_obj_get_style_pad_bottom(obj, LV_PART_ITEMS);
 
+    lv_coord_t letter_space = lv_obj_get_style_text_letter_space(obj, LV_PART_ITEMS);
+    lv_coord_t line_space = lv_obj_get_style_text_line_space(obj, LV_PART_ITEMS);
+    const lv_font_t * font = lv_obj_get_style_text_font(obj, LV_PART_ITEMS);
+
+    const lv_coord_t minh = lv_obj_get_style_min_height(obj, LV_PART_ITEMS);
+    const lv_coord_t maxh = lv_obj_get_style_max_height(obj, LV_PART_ITEMS);
+
+    lv_table_t * table = (lv_table_t *)obj;
     uint32_t i;
+    for(i = start_row; i < table->row_cnt; i++) {
+        lv_coord_t calculated_height = get_row_height(obj, i, font, letter_space, line_space,
+                                                      cell_pad_left, cell_pad_right, cell_pad_top, cell_pad_bottom);
+        table->row_h[i] = LV_CLAMP(minh, calculated_height, maxh);
+    }
+
+    lv_obj_refresh_self_size(obj);
+    lv_obj_invalidate(obj);
+}
 
-    lv_coord_t cell_left = lv_obj_get_style_pad_left(obj, LV_PART_ITEMS);
-    lv_coord_t cell_right = lv_obj_get_style_pad_right(obj, LV_PART_ITEMS);
-    lv_coord_t cell_top = lv_obj_get_style_pad_top(obj, LV_PART_ITEMS);
-    lv_coord_t cell_bottom = lv_obj_get_style_pad_bottom(obj, LV_PART_ITEMS);
+
+static void refr_cell_size(lv_obj_t * obj, uint32_t row, uint32_t col)
+{
+    const lv_coord_t cell_pad_left = lv_obj_get_style_pad_left(obj, LV_PART_ITEMS);
+    const lv_coord_t cell_pad_right = lv_obj_get_style_pad_right(obj, LV_PART_ITEMS);
+    const lv_coord_t cell_pad_top = lv_obj_get_style_pad_top(obj, LV_PART_ITEMS);
+    const lv_coord_t cell_pad_bottom = lv_obj_get_style_pad_bottom(obj, LV_PART_ITEMS);
 
     lv_coord_t letter_space = lv_obj_get_style_text_letter_space(obj, LV_PART_ITEMS);
     lv_coord_t line_space = lv_obj_get_style_text_line_space(obj, LV_PART_ITEMS);
     const lv_font_t * font = lv_obj_get_style_text_font(obj, LV_PART_ITEMS);
 
-    lv_coord_t minh = lv_obj_get_style_min_height(obj, LV_PART_ITEMS);
-    lv_coord_t maxh = lv_obj_get_style_max_height(obj, LV_PART_ITEMS);
+    const lv_coord_t minh = lv_obj_get_style_min_height(obj, LV_PART_ITEMS);
+    const lv_coord_t maxh = lv_obj_get_style_max_height(obj, LV_PART_ITEMS);
 
-    for(i = strat_row; i < table->row_cnt; i++) {
-        table->row_h[i] = get_row_height(obj, i, font, letter_space, line_space,
-                                         cell_left, cell_right, cell_top, cell_bottom);
-        table->row_h[i] = LV_CLAMP(minh, table->row_h[i], maxh);
+    lv_table_t * table = (lv_table_t *)obj;
+    lv_coord_t calculated_height = get_row_height(obj, row, font, letter_space, line_space,
+                                                  cell_pad_left, cell_pad_right, cell_pad_top, cell_pad_bottom);
+
+    lv_coord_t prev_row_size = table->row_h[row];
+    table->row_h[row] = LV_CLAMP(minh, calculated_height, maxh);
+
+    /*If the row height havn't changed invalidate only this cell*/
+    if(prev_row_size == table->row_h[row]) {
+        lv_area_t cell_area;
+        get_cell_area(obj, row, col, &cell_area);
+        lv_area_move(&cell_area, obj->coords.x1, obj->coords.y1);
+        lv_obj_invalidate_area(obj, &cell_area);
+    }
+    else {
+        lv_obj_refresh_self_size(obj);
+        lv_obj_invalidate(obj);
     }
-
-    lv_obj_refresh_self_size(obj) ;
 }
 
 static lv_coord_t get_row_height(lv_obj_t * obj, uint16_t row_id, const lv_font_t * font,
@@ -813,53 +836,60 @@ static lv_coord_t get_row_height(lv_obj_t * obj, uint16_t row_id, const lv_font_
                                  lv_coord_t cell_left, lv_coord_t cell_right, lv_coord_t cell_top, lv_coord_t cell_bottom)
 {
     lv_table_t * table = (lv_table_t *)obj;
-    lv_point_t txt_size;
-    lv_coord_t txt_w;
 
+    lv_coord_t h_max = lv_font_get_line_height(font) + cell_top + cell_bottom;
+    /* Calculate the cell_data index where to start */
     uint16_t row_start = row_id * table->col_cnt;
+
+    /* Traverse the cells in the row_id row */
     uint16_t cell;
     uint16_t col;
-    lv_coord_t h_max = lv_font_get_line_height(font) + cell_top + cell_bottom;
-
     for(cell = row_start, col = 0; cell < row_start + table->col_cnt; cell++, col++) {
-        if(table->cell_data[cell] != NULL) {
-            txt_w              = table->col_w[col];
-            uint16_t col_merge = 0;
-            for(col_merge = 0; col_merge + col < table->col_cnt - 1; col_merge++) {
+        char * cell_data = table->cell_data[cell];
 
-                if(table->cell_data[cell + col_merge] != NULL) {
-                    lv_table_cell_ctrl_t ctrl = 0;
-                    char * next_cell_data = table->cell_data[cell + col_merge];
-                    if(next_cell_data) ctrl = next_cell_data[0];
-                    if(ctrl & LV_TABLE_CELL_CTRL_MERGE_RIGHT)
-                        txt_w += table->col_w[col + col_merge + 1];
-                    else
-                        break;
-                }
-                else {
-                    break;
-                }
-            }
+        if(is_cell_empty(cell_data)) {
+            continue;
+        }
 
-            lv_table_cell_ctrl_t ctrl = 0;
-            if(table->cell_data[cell]) ctrl = table->cell_data[cell][0];
+        lv_coord_t txt_w = table->col_w[col];
+
+        /* Traverse the current row from the first until the penultimate column.
+         * Increment the text width if the cell has the LV_TABLE_CELL_CTRL_MERGE_RIGHT control,
+         * exit the traversal when the current cell control is not LV_TABLE_CELL_CTRL_MERGE_RIGHT */
+        uint16_t col_merge = 0;
+        for(col_merge = 0; col_merge + col < table->col_cnt - 1; col_merge++) {
+            char * next_cell_data = table->cell_data[cell + col_merge];
+
+            if(is_cell_empty(next_cell_data)) break;
 
-            /*With text crop assume 1 line*/
-            if(ctrl & LV_TABLE_CELL_CTRL_TEXT_CROP) {
-                h_max = LV_MAX(lv_font_get_line_height(font) + cell_top + cell_bottom,
-                               h_max);
+            lv_table_cell_ctrl_t ctrl = (lv_table_cell_ctrl_t) next_cell_data[0];
+            if(ctrl & LV_TABLE_CELL_CTRL_MERGE_RIGHT) {
+                txt_w += table->col_w[col + col_merge + 1];
             }
-            /*Without text crop calculate the height of the text in the cell*/
             else {
-                txt_w -= cell_left + cell_right;
+                break;
+            }
+        }
 
-                lv_txt_get_size(&txt_size, table->cell_data[cell] + 1, font,
-                                letter_space, line_space, txt_w, LV_TEXT_FLAG_NONE);
+        lv_table_cell_ctrl_t ctrl = (lv_table_cell_ctrl_t) cell_data[0];
 
-                h_max = LV_MAX(txt_size.y + cell_top + cell_bottom, h_max);
-                cell += col_merge;
-                col += col_merge;
-            }
+        /*When cropping the text we can assume the row height is equal to the line height*/
+        if(ctrl & LV_TABLE_CELL_CTRL_TEXT_CROP) {
+            h_max = LV_MAX(lv_font_get_line_height(font) + cell_top + cell_bottom,
+                           h_max);
+        }
+        /*Else we have to calculate the height of the cell text*/
+        else {
+            lv_point_t txt_size;
+            txt_w -= cell_left + cell_right;
+
+            lv_txt_get_size(&txt_size, table->cell_data[cell] + 1, font,
+                            letter_space, line_space, txt_w, LV_TEXT_FLAG_NONE);
+
+            h_max = LV_MAX(txt_size.y + cell_top + cell_bottom, h_max);
+            /*Skip until one element after the last merged column*/
+            cell += col_merge;
+            col += col_merge;
         }
     }
 
@@ -917,5 +947,87 @@ static lv_res_t get_pressed_cell(lv_obj_t * obj, uint16_t * row, uint16_t * col)
     return LV_RES_OK;
 }
 
+/* Returns number of bytes to allocate based on chars configuration */
+static size_t get_cell_txt_len(const char * txt)
+{
+    size_t retval = 0;
 
+#if LV_USE_ARABIC_PERSIAN_CHARS
+    retval = _lv_txt_ap_calc_bytes_cnt(txt) + 1;
+#else
+    /* cell_data layout: [ctrl][txt][trailing '\0' terminator]
+     * +2 because of the trailing '\0' and the ctrl */
+    retval = strlen(txt) + 2;
+#endif
+
+    return retval;
+}
+
+/* Copy txt into dst skipping the format byte */
+static void copy_cell_txt(char * dst, const char * txt)
+{
+#if LV_USE_ARABIC_PERSIAN_CHARS
+    _lv_txt_ap_proc(txt, &dst[1]);
+#else
+    strcpy(&dst[1], txt);
+#endif
+}
+
+static void get_cell_area(lv_obj_t * obj, uint16_t row, uint16_t col, lv_area_t * area)
+{
+    lv_table_t * table = (lv_table_t *)obj;
+
+    uint32_t c;
+    area->x1 = 0;
+    for(c = 0; c < col; c++) {
+        area->x1 += table->col_w[c];
+    }
+
+    bool rtl = lv_obj_get_style_base_dir(obj, LV_PART_MAIN) == LV_BASE_DIR_RTL;
+    if(rtl) {
+        area->x1 += lv_obj_get_scroll_x(obj);
+        lv_coord_t w = lv_obj_get_width(obj);
+        area->x2 = w - area->x1 - lv_obj_get_style_pad_right(obj, 0);
+        area->x1 = area->x2 - table->col_w[col];
+    }
+    else {
+        area->x1 -= lv_obj_get_scroll_x(obj);
+        area->x1 += lv_obj_get_style_pad_left(obj, 0);
+        area->x2 = area->x1 + table->col_w[col] - 1;
+    }
+
+    uint32_t r;
+    area->y1 = 0;
+    for(r = 0; r < row; r++) {
+        area->y1 += table->row_h[r];
+    }
+
+    area->y1 += lv_obj_get_style_pad_top(obj, 0);
+    area->y1 -= lv_obj_get_scroll_y(obj);
+    area->y2 = area->y1 + table->row_h[row] - 1;
+
+}
+
+
+static void scroll_to_selected_cell(lv_obj_t * obj)
+{
+    lv_table_t * table = (lv_table_t *)obj;
+
+    lv_area_t a;
+    get_cell_area(obj, table->row_act, table->col_act, &a);
+    if(a.x1 < 0) {
+        lv_obj_scroll_by_bounded(obj, -a.x1, 0, LV_ANIM_ON);
+    }
+    else if(a.x2 > lv_obj_get_width(obj)) {
+        lv_obj_scroll_by_bounded(obj, lv_obj_get_width(obj) - a.x2, 0, LV_ANIM_ON);
+    }
+
+    if(a.y1 < 0) {
+        lv_obj_scroll_by_bounded(obj, 0, -a.y1, LV_ANIM_ON);
+    }
+    else if(a.y2 > lv_obj_get_height(obj)) {
+        lv_obj_scroll_by_bounded(obj, 0, lv_obj_get_height(obj) - a.y2, LV_ANIM_ON);
+    }
+
+}
 #endif
index 0dff383..4d497e6 100644 (file)
@@ -34,6 +34,7 @@
 #endif
 
 #define LV_TEXTAREA_PWD_BULLET_UNICODE      0x2022
+#define IGNORE_KERNING                      '\0'
 
 /**********************
  *      TYPEDEFS
@@ -57,6 +58,8 @@ static void update_cursor_position_on_click(lv_event_t * e);
 static lv_res_t insert_handler(lv_obj_t * obj, const char * txt);
 static void draw_placeholder(lv_event_t * e);
 static void draw_cursor(lv_event_t * e);
+static void auto_hide_characters(lv_obj_t * obj);
+static inline bool is_valid_but_non_printable_char(const uint32_t letter);
 
 /**********************
  *  STATIC VARIABLES
@@ -100,13 +103,16 @@ void lv_textarea_add_char(lv_obj_t * obj, uint32_t c)
 
     lv_textarea_t * ta = (lv_textarea_t *)obj;
 
-    const char * letter_buf;
+    if(ta->one_line && (c == '\n' || c == '\r')) {
+        LV_LOG_INFO("Text area: line break ignored in one-line mode");
+        return;
+    }
 
     uint32_t u32_buf[2];
     u32_buf[0] = c;
     u32_buf[1] = 0;
 
-    letter_buf = (char *)&u32_buf;
+    const char * letter_buf = (char *)&u32_buf;
 
 #if LV_BIG_ENDIAN_SYSTEM
     if(c != 0) while(*letter_buf == 0) ++letter_buf;
@@ -115,11 +121,6 @@ void lv_textarea_add_char(lv_obj_t * obj, uint32_t c)
     lv_res_t res = insert_handler(obj, letter_buf);
     if(res != LV_RES_OK) return;
 
-    if(ta->one_line && (c == '\n' || c == '\r')) {
-        LV_LOG_INFO("Text area: line break ignored in one-line mode");
-        return;
-    }
-
     uint32_t c_uni = _lv_txt_encoded_next((const char *)&c, NULL);
 
     if(char_is_accepted(obj, c_uni) == false) {
@@ -127,7 +128,7 @@ void lv_textarea_add_char(lv_obj_t * obj, uint32_t c)
         return;
     }
 
-    if(ta->pwd_mode != 0) pwd_char_hider(obj); /*Make sure all the current text contains only '*'*/
+    if(ta->pwd_mode) pwd_char_hider(obj); /*Make sure all the current text contains only '*'*/
 
     /*If the textarea is empty, invalidate it to hide the placeholder*/
     if(ta->placeholder_txt) {
@@ -136,30 +137,19 @@ void lv_textarea_add_char(lv_obj_t * obj, uint32_t c)
     }
 
     lv_label_ins_text(ta->label, ta->cursor.pos, letter_buf); /*Insert the character*/
-    lv_textarea_clear_selection(obj);                                                /*Clear selection*/
+    lv_textarea_clear_selection(obj); /*Clear selection*/
 
-    if(ta->pwd_mode != 0) {
-        ta->pwd_tmp = lv_mem_realloc(ta->pwd_tmp, strlen(ta->pwd_tmp) + strlen(letter_buf) + 1); /*+2: the new char + \0*/
+    if(ta->pwd_mode) {
+        /*+2: the new char + \0*/
+        size_t realloc_size = strlen(ta->pwd_tmp) + strlen(letter_buf) + 1;
+        ta->pwd_tmp = lv_mem_realloc(ta->pwd_tmp, realloc_size);
         LV_ASSERT_MALLOC(ta->pwd_tmp);
         if(ta->pwd_tmp == NULL) return;
 
         _lv_txt_ins(ta->pwd_tmp, ta->cursor.pos, (const char *)letter_buf);
 
         /*Auto hide characters*/
-        if(ta->pwd_show_time == 0) {
-            pwd_char_hider(obj);
-        }
-        else {
-            lv_anim_t a;
-            lv_anim_init(&a);
-            lv_anim_set_var(&a, ta);
-            lv_anim_set_exec_cb(&a, pwd_char_hider_anim);
-            lv_anim_set_time(&a, ta->pwd_show_time);
-            lv_anim_set_values(&a, 0, 1);
-            lv_anim_set_path_cb(&a, lv_anim_path_step);
-            lv_anim_set_ready_cb(&a, pwd_char_hider_anim_ready);
-            lv_anim_start(&a);
-        }
+        auto_hide_characters(obj);
     }
 
     /*Move the cursor after the new character*/
@@ -175,7 +165,7 @@ void lv_textarea_add_text(lv_obj_t * obj, const char * txt)
 
     lv_textarea_t * ta = (lv_textarea_t *)obj;
 
-    if(ta->pwd_mode != 0) pwd_char_hider(obj); /*Make sure all the current text contains only '*'*/
+    if(ta->pwd_mode) pwd_char_hider(obj); /*Make sure all the current text contains only '*'*/
 
     /*Add the character one-by-one if not all characters are accepted or there is character limit.*/
     if(lv_textarea_get_accepted_chars(obj) || lv_textarea_get_max_length(obj)) {
@@ -200,28 +190,16 @@ void lv_textarea_add_text(lv_obj_t * obj, const char * txt)
     lv_label_ins_text(ta->label, ta->cursor.pos, txt);
     lv_textarea_clear_selection(obj);
 
-    if(ta->pwd_mode != 0) {
-        ta->pwd_tmp = lv_mem_realloc(ta->pwd_tmp, strlen(ta->pwd_tmp) + strlen(txt) + 1);
+    if(ta->pwd_mode) {
+        size_t realloc_size = strlen(ta->pwd_tmp) + strlen(txt) + 1;
+        ta->pwd_tmp = lv_mem_realloc(ta->pwd_tmp, realloc_size);
         LV_ASSERT_MALLOC(ta->pwd_tmp);
         if(ta->pwd_tmp == NULL) return;
 
         _lv_txt_ins(ta->pwd_tmp, ta->cursor.pos, txt);
 
         /*Auto hide characters*/
-        if(ta->pwd_show_time == 0) {
-            pwd_char_hider(obj);
-        }
-        else {
-            lv_anim_t a;
-            lv_anim_init(&a);
-            lv_anim_set_var(&a, ta);
-            lv_anim_set_exec_cb(&a, pwd_char_hider_anim);
-            lv_anim_set_time(&a, ta->pwd_show_time);
-            lv_anim_set_values(&a, 0, 1);
-            lv_anim_set_path_cb(&a, lv_anim_path_step);
-            lv_anim_set_ready_cb(&a, pwd_char_hider_anim_ready);
-            lv_anim_start(&a);
-        }
+        auto_hide_characters(obj);
     }
 
     /*Move the cursor after the new text*/
@@ -259,7 +237,7 @@ void lv_textarea_del_char(lv_obj_t * obj)
         if(txt[0] == '\0') lv_obj_invalidate(obj);
     }
 
-    if(ta->pwd_mode != 0) {
+    if(ta->pwd_mode) {
         _lv_txt_cut(ta->pwd_tmp, ta->cursor.pos - 1, 1);
 
         ta->pwd_tmp = lv_mem_realloc(ta->pwd_tmp, strlen(ta->pwd_tmp) + 1);
@@ -301,7 +279,7 @@ void lv_textarea_set_text(lv_obj_t * obj, const char * txt)
     if(lv_textarea_get_accepted_chars(obj) || lv_textarea_get_max_length(obj)) {
         lv_label_set_text(ta->label, "");
         lv_textarea_set_cursor_pos(obj, LV_TEXTAREA_CURSOR_LAST);
-        if(ta->pwd_mode != 0) {
+        if(ta->pwd_mode) {
             ta->pwd_tmp[0] = '\0'; /*Clear the password too*/
         }
         uint32_t i = 0;
@@ -321,27 +299,14 @@ void lv_textarea_set_text(lv_obj_t * obj, const char * txt)
         if(txt_act[0] == '\0') lv_obj_invalidate(obj);
     }
 
-    if(ta->pwd_mode != 0) {
+    if(ta->pwd_mode) {
         ta->pwd_tmp = lv_mem_realloc(ta->pwd_tmp, strlen(txt) + 1);
         LV_ASSERT_MALLOC(ta->pwd_tmp);
         if(ta->pwd_tmp == NULL) return;
         strcpy(ta->pwd_tmp, txt);
 
         /*Auto hide characters*/
-        if(ta->pwd_show_time == 0) {
-            pwd_char_hider(obj);
-        }
-        else {
-            lv_anim_t a;
-            lv_anim_init(&a);
-            lv_anim_set_var(&a, ta);
-            lv_anim_set_exec_cb(&a, pwd_char_hider_anim);
-            lv_anim_set_time(&a, ta->pwd_show_time);
-            lv_anim_set_values(&a, 0, 1);
-            lv_anim_set_path_cb(&a, lv_anim_path_step);
-            lv_anim_set_ready_cb(&a, pwd_char_hider_anim_ready);
-            lv_anim_start(&a);
-        }
+        auto_hide_characters(obj);
     }
 
     lv_event_send(obj, LV_EVENT_VALUE_CHANGED, NULL);
@@ -355,29 +320,22 @@ void lv_textarea_set_placeholder_text(lv_obj_t * obj, const char * txt)
     lv_textarea_t * ta = (lv_textarea_t *)obj;
 
     size_t txt_len = strlen(txt);
-
-    if(txt_len == 0) {
-        if(ta->placeholder_txt) {
-            lv_mem_free(ta->placeholder_txt);
-            ta->placeholder_txt = NULL;
-        }
+    if((txt_len == 0) && (ta->placeholder_txt)) {
+        lv_mem_free(ta->placeholder_txt);
+        ta->placeholder_txt = NULL;
     }
     else {
-
         /*Allocate memory for the placeholder_txt text*/
-        if(ta->placeholder_txt == NULL) {
-            ta->placeholder_txt = lv_mem_alloc(txt_len + 1);
-        }
-        else {
-            ta->placeholder_txt = lv_mem_realloc(ta->placeholder_txt, txt_len + 1);
-
-        }
+        /*NOTE: Using special realloc behavior, malloc-like when data_p is NULL*/
+        ta->placeholder_txt = lv_mem_realloc(ta->placeholder_txt, txt_len + 1);
         LV_ASSERT_MALLOC(ta->placeholder_txt);
         if(ta->placeholder_txt == NULL) {
             LV_LOG_ERROR("lv_textarea_set_placeholder_text: couldn't allocate memory for placeholder");
             return;
         }
+
         strcpy(ta->placeholder_txt, txt);
+        ta->placeholder_txt[txt_len] = '\0';
     }
 
     lv_obj_invalidate(obj);
@@ -440,7 +398,7 @@ void lv_textarea_set_cursor_click_pos(lv_obj_t * obj, bool en)
     LV_ASSERT_OBJ(obj, MY_CLASS);
 
     lv_textarea_t * ta = (lv_textarea_t *)obj;
-    ta->cursor.click_pos = en ? 1 : 0;
+    ta->cursor.click_pos = en ? 1U : 0U;
 }
 
 void lv_textarea_set_password_mode(lv_obj_t * obj, bool en)
@@ -450,11 +408,12 @@ void lv_textarea_set_password_mode(lv_obj_t * obj, bool en)
     lv_textarea_t * ta = (lv_textarea_t *)obj;
     if(ta->pwd_mode == en) return;
 
-    ta->pwd_mode = en == false ? 0 : 1;
+    ta->pwd_mode = en ? 1U : 0U;
     /*Pwd mode is now enabled*/
-    if(en != false) {
-        char * txt   = lv_label_get_text(ta->label);
+    if(en) {
+        char * txt = lv_label_get_text(ta->label);
         size_t len = strlen(txt);
+
         ta->pwd_tmp = lv_mem_alloc(len + 1);
         LV_ASSERT_MALLOC(ta->pwd_tmp);
         if(ta->pwd_tmp == NULL) return;
@@ -476,6 +435,36 @@ void lv_textarea_set_password_mode(lv_obj_t * obj, bool en)
     refr_cursor_area(obj);
 }
 
+void lv_textarea_set_password_bullet(lv_obj_t * obj, const char * bullet)
+{
+    LV_ASSERT_OBJ(obj, MY_CLASS);
+    LV_ASSERT_NULL(bullet);
+
+    lv_textarea_t * ta = (lv_textarea_t *)obj;
+
+    if(!bullet && (ta->pwd_bullet)) {
+        lv_mem_free(ta->pwd_bullet);
+        ta->pwd_bullet = NULL;
+    }
+    else {
+        size_t txt_len = strlen(bullet);
+
+        /*Allocate memory for the pwd_bullet text*/
+        /*NOTE: Using special realloc behavior, malloc-like when data_p is NULL*/
+        ta->pwd_bullet = lv_mem_realloc(ta->pwd_bullet, txt_len + 1);
+        LV_ASSERT_MALLOC(ta->pwd_bullet);
+        if(ta->pwd_bullet == NULL) {
+            LV_LOG_ERROR("lv_textarea_set_password_bullet: couldn't allocate memory for bullet");
+            return;
+        }
+
+        strcpy(ta->pwd_bullet, bullet);
+        ta->pwd_bullet[txt_len] = '\0';
+    }
+
+    lv_obj_invalidate(obj);
+}
+
 void lv_textarea_set_one_line(lv_obj_t * obj, bool en)
 {
     LV_ASSERT_OBJ(obj, MY_CLASS);
@@ -483,21 +472,21 @@ void lv_textarea_set_one_line(lv_obj_t * obj, bool en)
     lv_textarea_t * ta = (lv_textarea_t *)obj;
     if(ta->one_line == en) return;
 
-    if(en) {
-        ta->one_line = 1;
-        lv_obj_set_width(ta->label, LV_SIZE_CONTENT);
-        lv_obj_set_style_min_width(ta->label, lv_pct(100), 0);
+    ta->one_line = en ? 1U : 0U;
+    lv_coord_t width = en ? LV_SIZE_CONTENT : lv_pct(100);
+    lv_coord_t min_width_value = en ? lv_pct(100) : 0;
+
+    lv_obj_set_width(ta->label, width);
+    lv_obj_set_style_min_width(ta->label, min_width_value, 0);
 
+    if(en) {
         lv_obj_set_height(obj, LV_SIZE_CONTENT);
-        lv_obj_scroll_to(obj, 0, 0, LV_ANIM_OFF);
     }
     else {
-        ta->one_line = 0;
-        lv_obj_set_width(ta->label, lv_pct(100));
-        lv_obj_set_style_min_width(ta->label, 0, 0);
         lv_obj_remove_local_style_prop(obj, LV_STYLE_HEIGHT, LV_PART_MAIN);
-        lv_obj_scroll_to(obj, 0, 0, LV_ANIM_OFF);
     }
+
+    lv_obj_scroll_to(obj, 0, 0, LV_ANIM_OFF);
 }
 
 void lv_textarea_set_accepted_chars(lv_obj_t * obj, const char * list)
@@ -628,7 +617,24 @@ bool lv_textarea_get_password_mode(const lv_obj_t * obj)
     LV_ASSERT_OBJ(obj, MY_CLASS);
 
     lv_textarea_t * ta = (lv_textarea_t *)obj;
-    return ta->pwd_mode == 0 ? false : true;
+    return ta->pwd_mode == 1U;
+}
+
+const char * lv_textarea_get_password_bullet(lv_obj_t * obj)
+{
+    LV_ASSERT_OBJ(obj, MY_CLASS);
+
+    lv_textarea_t * ta = (lv_textarea_t *)obj;
+
+    if(ta->pwd_bullet) return ta->pwd_bullet;
+
+    lv_font_glyph_dsc_t g;
+    const lv_font_t * font = lv_obj_get_style_text_font(obj, LV_PART_MAIN);
+
+    /*If the textarea's font has the bullet character use it else fallback to "*"*/
+    if(lv_font_get_glyph_dsc(font, &g, LV_TEXTAREA_PWD_BULLET_UNICODE, 0))
+        return LV_SYMBOL_BULLET;
+    return "*";
 }
 
 bool lv_textarea_get_one_line(const lv_obj_t * obj)
@@ -636,7 +642,7 @@ bool lv_textarea_get_one_line(const lv_obj_t * obj)
     LV_ASSERT_OBJ(obj, MY_CLASS);
 
     lv_textarea_t * ta = (lv_textarea_t *)obj;
-    return ta->one_line == 0 ? false : true;
+    return ta->one_line == 1U;
 }
 
 const char * lv_textarea_get_accepted_chars(lv_obj_t * obj)
@@ -805,6 +811,7 @@ static void lv_textarea_constructor(const lv_obj_class_t * class_p, lv_obj_t * o
 
     ta->pwd_mode          = 0;
     ta->pwd_tmp           = NULL;
+    ta->pwd_bullet        = NULL;
     ta->pwd_show_time     = LV_TEXTAREA_DEF_PWD_SHOW_TIME;
     ta->accepted_chars    = NULL;
     ta->max_length        = 0;
@@ -841,6 +848,10 @@ static void lv_textarea_destructor(const lv_obj_class_t * class_p, lv_obj_t * ob
         lv_mem_free(ta->pwd_tmp);
         ta->pwd_tmp = NULL;
     }
+    if(ta->pwd_bullet != NULL) {
+        lv_mem_free(ta->pwd_bullet);
+        ta->pwd_bullet = NULL;
+    }
     if(ta->placeholder_txt != NULL) {
         lv_mem_free(ta->placeholder_txt);
         ta->placeholder_txt = NULL;
@@ -922,7 +933,7 @@ static void cursor_blink_anim_cb(void * obj, int32_t show)
 {
     lv_textarea_t * ta = (lv_textarea_t *)obj;
     if(show != ta->cursor.show) {
-        ta->cursor.show = show == 0 ? 0 : 1;
+        ta->cursor.show = show ? 1U : 0U;
         lv_area_t area_tmp;
         lv_area_copy(&area_tmp, &ta->cursor.area);
         area_tmp.x1 += ta->label->coords.x1;
@@ -963,67 +974,56 @@ static void pwd_char_hider_anim_ready(lv_anim_t * a)
 static void pwd_char_hider(lv_obj_t * obj)
 {
     lv_textarea_t * ta = (lv_textarea_t *)obj;
-    if(ta->pwd_mode != 0) {
-        char * txt  = lv_label_get_text(ta->label);
-        int32_t enc_len = _lv_txt_get_encoded_length(txt);
-        if(enc_len == 0) return;
-
-        /*If the textarea's font has "bullet" character use it else fallback to "*"*/
-        const lv_font_t * font = lv_obj_get_style_text_font(obj, LV_PART_MAIN);
-        lv_font_glyph_dsc_t g;
-        bool has_bullet;
-        has_bullet = lv_font_get_glyph_dsc(font, &g, LV_TEXTAREA_PWD_BULLET_UNICODE, 0);
-        const char * bullet;
-        if(has_bullet) bullet = LV_SYMBOL_BULLET;
-        else bullet = "*";
-
-        size_t bullet_len = strlen(bullet);
-        char * txt_tmp = lv_mem_buf_get(enc_len * bullet_len + 1);
-        int32_t i;
-        for(i = 0; i < enc_len; i++) {
-            lv_memcpy(&txt_tmp[i * bullet_len], bullet, bullet_len);
-        }
+    if(ta->pwd_mode == 0) {
+        return;
+    }
 
-        txt_tmp[i * bullet_len] = '\0';
+    /* When ta->label is empty we get 0 back */
+    char * txt = lv_label_get_text(ta->label);
+    uint32_t enc_len = _lv_txt_get_encoded_length(txt);
+    if(enc_len == 0) return;
 
-        lv_label_set_text(ta->label, txt_tmp);
-        lv_mem_buf_release(txt_tmp);
-        refr_cursor_area(obj);
+    const char * bullet = lv_textarea_get_password_bullet(obj);
+    const size_t bullet_len = strlen(bullet);
+    char * txt_tmp = lv_mem_buf_get(enc_len * bullet_len + 1);
+
+    uint32_t i;
+    for(i = 0; i < enc_len; i++) {
+        lv_memcpy(&txt_tmp[i * bullet_len], bullet, bullet_len);
     }
+    txt_tmp[i * bullet_len] = '\0';
+
+    lv_label_set_text(ta->label, txt_tmp);
+    lv_mem_buf_release(txt_tmp);
+
+    refr_cursor_area(obj);
 }
 
 /**
- * Test an unicode character if it is accepted or not. Checks max length and accepted char list.
+ * Test a unicode character if it is accepted or not. Checks max length and accepted char list.
  * @param ta pointer to a test area object
- * @param c an unicode character
+ * @param c a unicode character
  * @return true: accepted; false: rejected
  */
 static bool char_is_accepted(lv_obj_t * obj, uint32_t c)
 {
     lv_textarea_t * ta = (lv_textarea_t *)obj;
 
-    /*If no restriction accept it*/
-    if((ta->accepted_chars == NULL || ta->accepted_chars[0] == '\0') && ta->max_length == 0) return true;
-
     /*Too many characters?*/
     if(ta->max_length > 0 && _lv_txt_get_encoded_length(lv_textarea_get_text(obj)) >= ta->max_length) {
         return false;
     }
 
+    if(ta->accepted_chars == NULL || ta->accepted_chars[0] == '\0') return true;
     /*Accepted character?*/
-    if(ta->accepted_chars) {
-        uint32_t i = 0;
-
-        while(ta->accepted_chars[i] != '\0') {
-            uint32_t a = _lv_txt_encoded_next(ta->accepted_chars, &i);
-            if(a == c) return true; /*Accepted*/
-        }
+    uint32_t i = 0;
 
-        return false; /*The character wasn't in the list*/
-    }
-    else {
-        return true; /*If the accepted char list in not specified the accept the character*/
+    while(ta->accepted_chars[i] != '\0') {
+        uint32_t a = _lv_txt_encoded_next(ta->accepted_chars, &i);
+        if(a == c) return true; /*Accepted*/
     }
+
+    return false; /*The character wasn't in the list*/
 }
 
 static void start_cursor_blink(lv_obj_t * obj)
@@ -1058,22 +1058,17 @@ static void refr_cursor_area(lv_obj_t * obj)
     uint32_t cur_pos = lv_textarea_get_cursor_pos(obj);
     const char * txt = lv_label_get_text(ta->label);
 
-    uint32_t byte_pos;
-    byte_pos = _lv_txt_encoded_get_byte_id(txt, cur_pos);
-
+    uint32_t byte_pos = _lv_txt_encoded_get_byte_id(txt, cur_pos);
     uint32_t letter = _lv_txt_encoded_next(&txt[byte_pos], NULL);
 
-    lv_coord_t letter_h = lv_font_get_line_height(font);
-
+    /* Letter height and width */
+    const lv_coord_t letter_h = lv_font_get_line_height(font);
     /*Set letter_w (set not 0 on non printable but valid chars)*/
-    lv_coord_t letter_w;
-    if(letter == '\0' || letter == '\n' || letter == '\r') {
-        letter_w = lv_font_get_glyph_width(font, ' ', '\0');
-    }
-    else {
-        /*`letter_next` parameter is '\0' to ignore kerning*/
-        letter_w = lv_font_get_glyph_width(font, letter, '\0');
+    uint32_t letter_space = letter;
+    if(is_valid_but_non_printable_char(letter)) {
+        letter_space = ' ';
     }
+    lv_coord_t letter_w = lv_font_get_glyph_width(font, letter_space, IGNORE_KERNING);
 
     lv_point_t letter_pos;
     lv_label_get_letter_pos(ta->label, cur_pos, &letter_pos);
@@ -1081,8 +1076,9 @@ static void refr_cursor_area(lv_obj_t * obj)
     lv_text_align_t align = lv_obj_calculate_style_text_align(ta->label, LV_PART_MAIN, lv_label_get_text(ta->label));
 
     /*If the cursor is out of the text (most right) draw it to the next line*/
-    if(letter_pos.x + ta->label->coords.x1 + letter_w > ta->label->coords.x2 && ta->one_line == 0 &&
-       align != LV_TEXT_ALIGN_RIGHT) {
+    if(((letter_pos.x + ta->label->coords.x1) + letter_w > ta->label->coords.x2) &&
+       (ta->one_line == 0 && align != LV_TEXT_ALIGN_RIGHT)) {
+
         letter_pos.x = 0;
         letter_pos.y += letter_h + line_space;
 
@@ -1091,12 +1087,11 @@ static void refr_cursor_area(lv_obj_t * obj)
             letter = _lv_txt_encoded_next(&txt[byte_pos], NULL);
         }
 
-        if(letter == '\0' || letter == '\n' || letter == '\r') {
-            letter_w = lv_font_get_glyph_width(font, ' ', '\0');
-        }
-        else {
-            letter_w = lv_font_get_glyph_width(font, letter, '\0');
+        uint32_t tmp = letter;
+        if(is_valid_but_non_printable_char(letter)) {
+            tmp = ' ';
         }
+        letter_w = lv_font_get_glyph_width(font, tmp, IGNORE_KERNING);
     }
 
     /*Save the byte position. It is required to draw `LV_CURSOR_BLOCK`*/
@@ -1139,7 +1134,6 @@ static void update_cursor_position_on_click(lv_event_t * e)
     lv_indev_t * click_source = lv_indev_get_act();
     if(click_source == NULL) return;
 
-    lv_event_code_t code = lv_event_get_code(e);
     lv_obj_t * obj = lv_event_get_target(e);
     lv_textarea_t * ta = (lv_textarea_t *)obj;
     if(ta->cursor.click_pos == 0) return;
@@ -1161,26 +1155,27 @@ static void update_cursor_position_on_click(lv_event_t * e)
     rel_pos.x = point_act.x - label_coords.x1;
     rel_pos.y = point_act.y - label_coords.y1;
 
-    lv_coord_t label_width = lv_obj_get_width(ta->label);
+    const lv_event_code_t code = lv_event_get_code(e);
 
-    uint16_t char_id_at_click;
+    lv_coord_t label_width = lv_obj_get_width(ta->label);
+    uint16_t char_id_at_click = 0;
 
 #if LV_LABEL_TEXT_SELECTION
     lv_label_t * label_data = (lv_label_t *)ta->label;
-    bool click_outside_label;
+    bool click_outside_label = false;
     /*Check if the click happened on the left side of the area outside the label*/
     if(rel_pos.x < 0) {
         char_id_at_click = 0;
-        click_outside_label       = true;
+        click_outside_label = true;
     }
     /*Check if the click happened on the right side of the area outside the label*/
     else if(rel_pos.x >= label_width) {
         char_id_at_click = LV_TEXTAREA_CURSOR_LAST;
-        click_outside_label       = true;
+        click_outside_label = true;
     }
     else {
         char_id_at_click = lv_label_get_letter_on(ta->label, &rel_pos);
-        click_outside_label       = !lv_label_is_char_under_pos(ta->label, &rel_pos);
+        click_outside_label = !lv_label_is_char_under_pos(ta->label, &rel_pos);
     }
 
     if(ta->text_sel_en) {
@@ -1250,13 +1245,18 @@ static void update_cursor_position_on_click(lv_event_t * e)
 #endif
 }
 
+/* Returns LV_RES_OK when no operation were performed
+ * Returns LV_RES_INV when a user defined text was inserted */
 static lv_res_t insert_handler(lv_obj_t * obj, const char * txt)
 {
     ta_insert_replace = NULL;
     lv_event_send(obj, LV_EVENT_INSERT, (char *)txt);
-    if(ta_insert_replace) {
-        if(ta_insert_replace[0] == '\0') return LV_RES_INV; /*Drop this text*/
 
+    /* Drop txt if insert replace is set to '\0' */
+    if(ta_insert_replace && ta_insert_replace[0] == '\0')
+        return LV_RES_INV;
+
+    if(ta_insert_replace) {
         /*Add the replaced text directly it's different from the original*/
         if(strcmp(ta_insert_replace, txt)) {
             lv_textarea_add_text(obj, ta_insert_replace);
@@ -1338,4 +1338,33 @@ static void draw_cursor(lv_event_t * e)
     }
 }
 
+static void auto_hide_characters(lv_obj_t * obj)
+{
+    lv_textarea_t * ta = (lv_textarea_t *) obj;
+
+    if(ta->pwd_show_time == 0) {
+        pwd_char_hider(obj);
+    }
+    else {
+        lv_anim_t a;
+        lv_anim_init(&a);
+        lv_anim_set_var(&a, ta);
+        lv_anim_set_exec_cb(&a, pwd_char_hider_anim);
+        lv_anim_set_time(&a, ta->pwd_show_time);
+        lv_anim_set_values(&a, 0, 1);
+        lv_anim_set_path_cb(&a, lv_anim_path_step);
+        lv_anim_set_ready_cb(&a, pwd_char_hider_anim_ready);
+        lv_anim_start(&a);
+    }
+}
+
+static inline bool is_valid_but_non_printable_char(const uint32_t letter)
+{
+    if(letter == '\0' || letter == '\n' || letter == '\r') {
+        return true;
+    }
+
+    return false;
+}
+
 #endif
index 219e272..4b3289b 100644 (file)
@@ -42,6 +42,7 @@ typedef struct {
     lv_obj_t * label;            /*Label of the text area*/
     char * placeholder_txt;      /*Place holder label. only visible if text is an empty string*/
     char * pwd_tmp;              /*Used to store the original text in password mode*/
+    char * pwd_bullet;           /*Replacement characters displayed in password mode*/
     const char * accepted_chars; /*Only these characters will be accepted. NULL: accept all*/
     uint32_t max_length;         /*The max. number of characters. 0: no limit*/
     uint16_t pwd_show_time;      /*Time to show characters in password mode before change them to '*'*/
@@ -154,6 +155,13 @@ void lv_textarea_set_cursor_click_pos(lv_obj_t * obj, bool en);
  */
 void lv_textarea_set_password_mode(lv_obj_t * obj, bool en);
 
+/**
+ * Set the replacement characters to show in password mode
+ * @param obj       pointer to a text area object
+ * @param bullet    pointer to the replacement text
+ */
+void lv_textarea_set_password_bullet(lv_obj_t * obj, const char * bullet);
+
 /**
  * Configure the text area to one line or back to normal
  * @param obj       pointer to a text area object
@@ -254,6 +262,13 @@ bool lv_textarea_get_cursor_click_pos(lv_obj_t * obj);
  */
 bool lv_textarea_get_password_mode(const lv_obj_t * obj);
 
+/**
+ * Get the replacement characters to show in password mode
+ * @param obj       pointer to a text area object
+ * @return          pointer to the replacement text
+ */
+const char * lv_textarea_get_password_bullet(lv_obj_t * obj);
+
 /**
  * Get the one line configuration attribute
  * @param obj       pointer to a text area object
index 2bba43c..4e62dc5 100644 (file)
@@ -1,15 +1,20 @@
-lvgl_SRCS  += $(LVGL_DIR_NAME)/src/widgets//lv_arc.c
-lvgl_SRCS  += $(LVGL_DIR_NAME)/src/widgets//lv_bar.c
-lvgl_SRCS  += $(LVGL_DIR_NAME)/src/widgets//lv_btn.c
-lvgl_SRCS  += $(LVGL_DIR_NAME)/src/widgets//lv_btnmatrix.c
-lvgl_SRCS  += $(LVGL_DIR_NAME)/src/widgets//lv_canvas.c
-lvgl_SRCS  += $(LVGL_DIR_NAME)/src/widgets//lv_checkbox.c
-lvgl_SRCS  += $(LVGL_DIR_NAME)/src/widgets//lv_dropdown.c
-lvgl_SRCS  += $(LVGL_DIR_NAME)/src/widgets//lv_img.c
-lvgl_SRCS  += $(LVGL_DIR_NAME)/src/widgets//lv_label.c
-lvgl_SRCS  += $(LVGL_DIR_NAME)/src/widgets//lv_line.c
-lvgl_SRCS  += $(LVGL_DIR_NAME)/src/widgets//lv_roller.c
-lvgl_SRCS  += $(LVGL_DIR_NAME)/src/widgets//lv_slider.c
-lvgl_SRCS  += $(LVGL_DIR_NAME)/src/widgets//lv_switch.c
-lvgl_SRCS  += $(LVGL_DIR_NAME)/src/widgets//lv_table.c
-lvgl_SRCS  += $(LVGL_DIR_NAME)/src/widgets//lv_textarea.c
+CSRCS += lv_arc.c
+CSRCS += lv_bar.c
+CSRCS += lv_btn.c
+CSRCS += lv_btnmatrix.c
+CSRCS += lv_canvas.c
+CSRCS += lv_checkbox.c
+CSRCS += lv_dropdown.c
+CSRCS += lv_img.c
+CSRCS += lv_label.c
+CSRCS += lv_line.c
+CSRCS += lv_roller.c
+CSRCS += lv_slider.c
+CSRCS += lv_switch.c
+CSRCS += lv_table.c
+CSRCS += lv_textarea.c
+
+DEPPATH += --dep-path $(LVGL_DIR)/$(LVGL_DIR_NAME)/src/widgets
+VPATH += :$(LVGL_DIR)/$(LVGL_DIR_NAME)/src/widgets
+
+CFLAGS += "-I$(LVGL_DIR)/$(LVGL_DIR_NAME)/src/widgets"
index 730fe91..2f8250d 100644 (file)
@@ -97,7 +97,7 @@ set(LVGL_TEST_OPTIONS_16BIT
 
 set(LVGL_TEST_OPTIONS_16BIT_SWAP
     -DLV_COLOR_DEPTH=16
-    -DLV_COLOR_16_SWAP=1  
+    -DLV_COLOR_16_SWAP=1
     -DLV_MEM_SIZE=65536
     -DLV_DPI_DEF=40
     -DLV_DRAW_COMPLEX=1
@@ -123,7 +123,7 @@ set(LVGL_TEST_OPTIONS_16BIT_SWAP
     -DLV_USE_GIF=1
     -DLV_USE_QRCODE=1
 )
-  
+
 set(LVGL_TEST_OPTIONS_FULL_32BIT
     -DLV_COLOR_DEPTH=32
     -DLV_MEM_SIZE=8388608
@@ -181,16 +181,19 @@ set(LVGL_TEST_OPTIONS_FULL_32BIT
     ${LVGL_TEST_COMMON_EXAMPLE_OPTIONS}
     -DLV_FONT_DEFAULT=&lv_font_montserrat_24
     -DLV_USE_FS_STDIO=1
-    -DLV_FS_STDIO_LETTER='A' 
-    -DLV_USE_FS_POSIX=1 
+    -DLV_FS_STDIO_LETTER='A'
+    -DLV_USE_FS_POSIX=1
     -DLV_FS_POSIX_LETTER='B'
     -DLV_USE_PNG=1
     -DLV_USE_BMP=1
     -DLV_USE_SJPG=1
     -DLV_USE_GIF=1
     -DLV_USE_QRCODE=1
+    -DLV_USE_FRAGMENT=1
+    -DLV_USE_IMGFONT=1
+    -DLV_USE_MSG=1
 )
-  
+
 set(LVGL_TEST_OPTIONS_TEST_COMMON
     --coverage
     -DLV_COLOR_DEPTH=32
@@ -227,6 +230,12 @@ set(LVGL_TEST_OPTIONS_TEST_COMMON
     -DLV_USE_BIDI=1
     -DLV_USE_ARABIC_PERSIAN_CHARS=1
     -DLV_LABEL_TEXT_SELECTION=1
+    -DLV_USE_FS_STDIO=1
+    -DLV_FS_STDIO_LETTER='A'
+    -DLV_FS_STDIO_CACHE_SIZE=100
+    -DLV_USE_FS_POSIX=1
+    -DLV_FS_POSIX_LETTER='B'
+    -DLV_FS_POSIX_CACHE_SIZE=0
     ${LVGL_TEST_COMMON_EXAMPLE_OPTIONS}
     -DLV_FONT_DEFAULT=&lv_font_montserrat_14
     -Wno-unused-but-set-variable # unused variables are common in the dual-heap arrangement
@@ -274,7 +283,7 @@ set(COMPILE_OPTIONS
     -pedantic-errors
     -Wall
     -Wclobbered
-    -Wdeprecated 
+    -Wdeprecated
     -Wdouble-promotion
     -Wempty-body
     -Werror
@@ -359,7 +368,7 @@ foreach( test_case_fname ${TEST_CASE_FILES} )
     target_compile_options(${test_name} PUBLIC ${LVGL_TESTFILE_COMPILE_OPTIONS})
 
     add_test(
-        NAME ${test_name} 
+        NAME ${test_name}
         WORKING_DIRECTORY ${LVGL_TEST_DIR}
         COMMAND ${test_name})
 endforeach( test_case_fname ${TEST_CASE_FILES} )
index 373bebe..a7703b9 100644 (file)
@@ -23,15 +23,15 @@ For full information on running tests run: `./tests/main.py --help`.
 
 ## Running automatically
 
-GitHub's CI automatically runs these tests on pushes and pull requests to `master` and `releasev8.*` branches. 
+GitHub's CI automatically runs these tests on pushes and pull requests to `master` and `releasev8.*` branches.
 
 ## Directory structure
 - `src` Source files of the tests
     - `test_cases` The written tests,
     - `test_runners` Generated automatically from the files in `test_cases`.
-    - other miscellaneous files and folders 
+    - other miscellaneous files and folders
 - `ref_imgs` - Reference images for screenshot compare
-- `report` - Coverage report. Generated if the `report` flag was passed to `./main.py` 
+- `report` - Coverage report. Generated if the `report` flag was passed to `./main.py`
 - `unity` Source files of the test engine
 
 ## Add new tests
@@ -43,13 +43,13 @@ New test needs to be added into the `src/test_cases` folder. The name of the fil
 See the list of asserts [here](https://github.com/ThrowTheSwitch/Unity/blob/master/docs/UnityAssertionsReference.md).
 
 There are some custom, LVGL specific asserts:
-- `TEST_ASSERT_EQUAL_SCREENSHOT("image1.png")` Render the active screen and compare its content with an image in the `ref_imgs` folder. 
-If the compare fails `lvgl/test_screenshot_error.h` is created with the content of the frame buffer as an image. 
+- `TEST_ASSERT_EQUAL_SCREENSHOT("image1.png")` Render the active screen and compare its content with an image in the `ref_imgs` folder.
+If the compare fails `lvgl/test_screenshot_error.h` is created with the content of the frame buffer as an image.
 To see the that image `#include "test_screenshot_error.h"` and call `test_screenshot_error_show();`.
 - `TEST_ASSERT_EQUAL_COLOR(color1, color2)` Compare two colors.
 
 ### Adding new reference images
-The reference images can be taken by copy-pasting the test code in to LVGL simulator and saving the screen. 
+The reference images can be taken by copy-pasting the test code in to LVGL simulator and saving the screen.
 LVGL needs to
 - 800x480 resolution
 - 32 bit color depth
index 654ba0e..efdfbe6 100644 (file)
@@ -123,7 +123,7 @@ def run_tests(options_name):
 
     os.chdir(get_build_dir(options_name))
     subprocess.check_call(
-        ['ctest', '--parallel', str(os.cpu_count()), '--output-on-failure'])
+        ['ctest', '--timeout', '30', '--parallel', str(os.cpu_count()), '--output-on-failure'])
 
 
 def generate_code_coverage_report():
@@ -164,7 +164,7 @@ if __name__ == "__main__":
     parser = argparse.ArgumentParser(
         description='Build and/or run LVGL tests.', epilog=epilog)
     parser.add_argument('--build-options', nargs=1,
-                        help='''the build option name to build or run. When 
+                        help='''the build option name to build or run. When
                         omitted all build configurations are used.
                         ''')
     parser.add_argument('--clean', action='store_true', default=False,
index a1e8557..d47fe63 100644 (file)
@@ -6,6 +6,8 @@
 #ifndef LV_TEST_CONF_H
 #define LV_TEST_CONF_H
 
+#define LV_CONF_SUPPRESS_DEFINE_CHECK 1
+
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -18,6 +20,9 @@ extern "C" {
  *      DEFINES
  *********************/
 
+void lv_test_assert_fail(void);
+#define LV_ASSERT_HANDLER lv_test_assert_fail();
+
 /**********************
  *      TYPEDEFS
  **********************/
index ba3e392..1ac6808 100644 (file)
@@ -15,7 +15,7 @@ static bool mouse_pressed;
 static bool key_pressed;
 static bool enc_pressed;
 
-void lv_test_mouse_read_cb(lv_indev_drv_t * drv, lv_indev_data_t * data) 
+void lv_test_mouse_read_cb(lv_indev_drv_t * drv, lv_indev_data_t * data)
 {
   LV_UNUSED(drv);
   data->point.x = x_act;
@@ -26,7 +26,7 @@ void lv_test_mouse_read_cb(lv_indev_drv_t * drv, lv_indev_data_t * data)
 void lv_test_mouse_move_to(lv_coord_t x, lv_coord_t y)
 {
   x_act = x;
-  y_act = y;  
+  y_act = y;
 }
 
 void lv_test_mouse_move_by(lv_coord_t x, lv_coord_t y)
@@ -46,7 +46,7 @@ void lv_test_mouse_release(void)
 }
 
 void lv_test_mouse_click_at(lv_coord_t x, lv_coord_t y)
-{ 
+{
   lv_test_mouse_release();
   lv_test_indev_wait(50);
   lv_test_mouse_move_to(x, y);
@@ -57,7 +57,7 @@ void lv_test_mouse_click_at(lv_coord_t x, lv_coord_t y)
 }
 
 
-void lv_test_keypad_read_cb(lv_indev_drv_t * drv, lv_indev_data_t * data) 
+void lv_test_keypad_read_cb(lv_indev_drv_t * drv, lv_indev_data_t * data)
 {
   LV_UNUSED(drv);
   data->key = key_act;
@@ -86,7 +86,7 @@ void lv_test_key_hit(uint32_t k)
   lv_test_indev_wait(50);
 }
 
-void lv_test_encoder_read_cb(lv_indev_drv_t * drv, lv_indev_data_t * data) 
+void lv_test_encoder_read_cb(lv_indev_drv_t * drv, lv_indev_data_t * data)
 {
   LV_UNUSED(drv);
   data->enc_diff = diff_act;
index 4a88899..2a0508f 100644 (file)
@@ -23,15 +23,22 @@ void lv_test_key_press(uint32_t k);
 void lv_test_key_release(void);
 void lv_test_key_hit(uint32_t k);
 
-
+/* encoder read callback */
 void lv_test_encoder_read_cb(lv_indev_drv_t * drv, lv_indev_data_t * data) ;
 
+/* Simulate encoder rotation, use positive parameter to rotate to the right
+ * and negative to rotate to the left */
 void lv_test_encoder_add_diff(int32_t d);
+/* Same as lv_test_encoder_add_diff but with additional delay */
 void lv_test_encoder_turn(int32_t d);
+/* Set encoder to pressed */
 void lv_test_encoder_press(void);
+/* Set encoder to released */
 void lv_test_encoder_release(void);
+/* Simulate release+press+release (including delays) */
 void lv_test_encoder_click(void);
 
+/* Simulate delay */
 void lv_test_indev_wait(uint32_t ms);
 
 extern lv_indev_t * lv_test_mouse_indev;
index f93fb79..8c15602 100644 (file)
@@ -5,6 +5,7 @@
 #include <sys/time.h>
 #include <stdio.h>
 #include <stdlib.h>
+#include "../unity/unity.h"
 
 #define HOR_RES 800
 #define VER_RES 480
@@ -30,65 +31,6 @@ void lv_test_deinit(void)
     lv_mem_deinit();
 }
 
-static void * open_cb(lv_fs_drv_t * drv, const char * path, lv_fs_mode_t mode)
-{
-    (void) drv;
-    (void) mode;
-
-    FILE * fp = fopen(path, "rb"); // only reading is supported
-
-    return fp;
-}
-
-static lv_fs_res_t close_cb(lv_fs_drv_t * drv, void * file_p)
-{
-    (void) drv;
-
-    fclose(file_p);
-    return LV_FS_RES_OK;
-}
-
-static lv_fs_res_t read_cb(lv_fs_drv_t * drv, void * file_p, void * buf, uint32_t btr, uint32_t * br)
-{
-    (void) drv;
-
-    *br = fread(buf, 1, btr, file_p);
-    return (*br <= 0) ? LV_FS_RES_UNKNOWN : LV_FS_RES_OK;
-}
-
-static lv_fs_res_t seek_cb(lv_fs_drv_t * drv, void * file_p, uint32_t pos, lv_fs_whence_t w)
-{
-    (void) drv;
-
-    uint32_t w2;
-    switch(w) {
-    case LV_FS_SEEK_SET:
-        w2 = SEEK_SET;
-        break;
-    case LV_FS_SEEK_CUR:
-        w2 = SEEK_CUR;
-        break;
-    case LV_FS_SEEK_END:
-        w2 = SEEK_END;
-        break;
-    default:
-        w2 = SEEK_SET;
-    }
-
-    fseek (file_p, pos, w2);
-
-    return LV_FS_RES_OK;
-}
-
-static lv_fs_res_t tell_cb(lv_fs_drv_t * drv, void * file_p, uint32_t * pos_p)
-{
-    (void) drv;
-
-    *pos_p = ftell(file_p);
-
-    return LV_FS_RES_OK;
-}
-
 static void hal_init(void)
 {
     static lv_disp_draw_buf_t draw_buf;
@@ -102,13 +44,13 @@ static void hal_init(void)
     disp_drv.hor_res = HOR_RES;
     disp_drv.ver_res = VER_RES;
     lv_disp_drv_register(&disp_drv);
-    
+
     static lv_indev_drv_t indev_mouse_drv;
     lv_indev_drv_init(&indev_mouse_drv);
     indev_mouse_drv.type = LV_INDEV_TYPE_POINTER;
     indev_mouse_drv.read_cb = lv_test_mouse_read_cb;
     lv_test_mouse_indev = lv_indev_drv_register(&indev_mouse_drv);
-    
+
     static lv_indev_drv_t indev_keypad_drv;
     lv_indev_drv_init(&indev_keypad_drv);
     indev_keypad_drv.type = LV_INDEV_TYPE_KEYPAD;
@@ -120,19 +62,6 @@ static void hal_init(void)
     indev_encoder_drv.type = LV_INDEV_TYPE_ENCODER;
     indev_encoder_drv.read_cb = lv_test_encoder_read_cb;
     lv_test_encoder_indev = lv_indev_drv_register(&indev_encoder_drv);
-
-
-    static lv_fs_drv_t drv;
-    lv_fs_drv_init(&drv);                     /*Basic initialization*/
-
-    drv.letter = 'F';                         /*An uppercase letter to identify the drive*/
-    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*/
 }
 
 static void dummy_flush_cb(lv_disp_drv_t * disp_drv, const lv_area_t * area, lv_color_t * color_p)
@@ -163,4 +92,9 @@ uint32_t custom_tick_get(void)
     return time_ms;
 }
 
+void lv_test_assert_fail(void)
+{
+    TEST_FAIL();
+}
+
 #endif
index 4c75437..adb3037 100644 (file)
@@ -15,8 +15,8 @@ void test_arc_should_update_angles_when_changing_to_symmetrical_mode(void);
 void test_arc_should_update_angles_when_changing_to_symmetrical_mode_value_more_than_middle_range(void);
 void test_arc_angles_when_reversed(void);
 
-static lv_obj_t *active_screen = NULL;
-static lv_obj_t *arc = NULL;
+static lv_obj_t * active_screen = NULL;
+static lv_obj_t * arc = NULL;
 static uint32_t event_cnt;
 
 static void dummy_event_cb(lv_event_t * e);
@@ -105,17 +105,17 @@ void test_arc_should_update_angles_when_changing_to_symmetrical_mode_value_more_
 /* See #2522 for more information */
 void test_arc_angles_when_reversed(void)
 {
-    uint16_t expected_start_angle = 36;
+    uint16_t expected_start_angle = 54;
     uint16_t expected_end_angle = 90;
     int16_t expected_value = 40;
 
-    lv_obj_t *arcBlack;
+    lv_obj_t * arcBlack;
     arcBlack = lv_arc_create(lv_scr_act());
 
     lv_arc_set_mode(arcBlack, LV_ARC_MODE_REVERSE);
 
     lv_arc_set_bg_angles(arcBlack, 0, 90);
-    
+
     lv_arc_set_value(arcBlack, expected_value);
 
     TEST_ASSERT_EQUAL_UINT16(expected_start_angle, lv_arc_get_angle_start(arcBlack));
@@ -131,22 +131,22 @@ void test_arc_click_area_with_adv_hittest(void)
     lv_obj_add_flag(arc, LV_OBJ_FLAG_ADV_HITTEST);
     lv_obj_add_event_cb(arc, dummy_event_cb, LV_EVENT_VALUE_CHANGED, NULL);
     lv_obj_set_ext_click_area(arc, 5);
-      
+
     /*No click detected at the middle*/
     event_cnt = 0;
     lv_test_mouse_click_at(50, 50);
     TEST_ASSERT_EQUAL_UINT32(0, event_cnt);
-    
+
     /*No click close to the radius - bg_arc - ext_click_area*/
     event_cnt = 0;
     lv_test_mouse_click_at(83, 50);
     TEST_ASSERT_EQUAL_UINT32(0, event_cnt);
-    
+
     /*Click on the radius - bg_arc - ext_click_area*/
     event_cnt = 0;
     lv_test_mouse_click_at(86, 50);
     TEST_ASSERT_GREATER_THAN(0, event_cnt);
-    
+
     /*Click on the radius + ext_click_area*/
     event_cnt = 0;
     lv_test_mouse_click_at(104, 50);
@@ -158,10 +158,10 @@ void test_arc_click_area_with_adv_hittest(void)
     TEST_ASSERT_EQUAL_UINT32(0, event_cnt);
 }
 
-static void dummy_event_cb(lv_event_t * e) 
+static void dummy_event_cb(lv_event_t * e)
 {
-  LV_UNUSED(e);
-  event_cnt++;
+    LV_UNUSED(e);
+    event_cnt++;
 }
 
 #endif
index 9dde698..14eacbe 100644 (file)
@@ -5,8 +5,8 @@
 
 #include "lv_test_indev.h"
 
-static lv_obj_t *active_screen = NULL;
-static lv_obj_t *bar = NULL;
+static lv_obj_t * active_screen = NULL;
+static lv_obj_t * bar = NULL;
 
 void setUp(void)
 {
@@ -67,7 +67,7 @@ void test_bar_should_update_indicator_right_coordinate_based_on_bar_value(void)
     lv_test_indev_wait(50);
 
     int32_t actual_coord = lv_area_get_width(&bar_ptr->indic_area);
-    
+
     /* Calculate bar indicator right coordinate, using rule of 3 */
     lv_coord_t bar_max_value = lv_bar_get_max_value(bar);
     lv_coord_t indicator_part_width = lv_obj_get_content_width(bar);
index d265580..1d98570 100644 (file)
@@ -12,16 +12,16 @@ void test_checkbox_should_have_default_text_when_created(void);
 void test_checkbox_should_return_dinamically_allocated_text(void);
 void test_checkbox_should_allocate_memory_for_static_text(void);
 
-static lv_obj_t *active_screen = NULL;
-static lv_obj_t *checkbox = NULL;
+static lv_obj_t * active_screen = NULL;
+static lv_obj_t * checkbox = NULL;
 
 static volatile bool event_called = false;
 
-static void event_handler(lv_event_t *e)
+static void event_handler(lv_event_t * e)
 {
     lv_event_code_t code = lv_event_get_code(e);
 
-    if (LV_EVENT_VALUE_CHANGED == code) {
+    if(LV_EVENT_VALUE_CHANGED == code) {
         event_called = true;
     }
 }
@@ -38,20 +38,20 @@ void test_checkbox_should_call_event_handler_on_click_when_enabled(void)
 {
     active_screen = lv_scr_act();
     checkbox = lv_checkbox_create(active_screen);
-    
+
     lv_obj_add_state(checkbox, LV_STATE_CHECKED);
     lv_obj_add_event_cb(checkbox, event_handler, LV_EVENT_ALL, NULL);
 
     lv_test_mouse_click_at(checkbox->coords.x1, checkbox->coords.y1);
 
     TEST_ASSERT_TRUE(event_called);
-    
+
     event_called = false;
 }
 
 void test_checkbox_should_have_default_text_when_created(void)
 {
-    const char *default_text = "Check box";
+    const char * default_text = "Check box";
 
     active_screen = lv_scr_act();
     checkbox = lv_checkbox_create(active_screen);
@@ -62,7 +62,7 @@ void test_checkbox_should_have_default_text_when_created(void)
 
 void test_checkbox_should_return_dinamically_allocated_text(void)
 {
-    const char *message = "Hello World!";
+    const char * message = "Hello World!";
 
     active_screen = lv_scr_act();
     checkbox = lv_checkbox_create(active_screen);
@@ -76,7 +76,7 @@ void test_checkbox_should_return_dinamically_allocated_text(void)
 void test_checkbox_should_allocate_memory_for_static_text(void)
 {
     uint32_t initial_available_memory = 0;
-    const char *static_text = "Keep me while you exist";
+    const char * static_text = "Keep me while you exist";
 
     lv_mem_monitor_t m1;
     lv_mem_monitor(&m1);
index b995fc4..13672de 100644 (file)
@@ -7,13 +7,13 @@ void test_config(void);
 
 void test_config(void)
 {
-  TEST_ASSERT_EQUAL(130, LV_DPI_DEF);
-  TEST_ASSERT_EQUAL(130, lv_disp_get_dpi(NULL));
-  TEST_ASSERT_EQUAL(800, LV_HOR_RES);
-  TEST_ASSERT_EQUAL(800, lv_disp_get_hor_res(NULL));
-  TEST_ASSERT_EQUAL(480, LV_VER_RES);
-  TEST_ASSERT_EQUAL(480, lv_disp_get_ver_res(NULL));
-  TEST_ASSERT_EQUAL(32, LV_COLOR_DEPTH);
+    TEST_ASSERT_EQUAL(130, LV_DPI_DEF);
+    TEST_ASSERT_EQUAL(130, lv_disp_get_dpi(NULL));
+    TEST_ASSERT_EQUAL(800, LV_HOR_RES);
+    TEST_ASSERT_EQUAL(800, lv_disp_get_hor_res(NULL));
+    TEST_ASSERT_EQUAL(480, LV_VER_RES);
+    TEST_ASSERT_EQUAL(480, lv_disp_get_ver_res(NULL));
+    TEST_ASSERT_EQUAL(32, LV_COLOR_DEPTH);
 }
 
 #endif
index b8e4a76..929ae3b 100644 (file)
@@ -10,7 +10,7 @@
 static void loop_through_stress_test(void)
 {
 #if LV_USE_DEMO_STRESS
-    lv_test_indev_wait(LV_DEMO_STRESS_TIME_STEP*33); /* FIXME: remove magic number of states */
+    lv_test_indev_wait(LV_DEMO_STRESS_TIME_STEP * 33); /* FIXME: remove magic number of states */
 #endif
 }
 void test_demo_stress(void)
index 07a2586..a49cc1d 100644 (file)
@@ -16,411 +16,411 @@ void tearDown(void)
 }
 void test_dropdown_create_delete(void)
 {
-  lv_dropdown_create(lv_scr_act());
-  TEST_ASSERT_EQUAL(2, lv_obj_get_child_cnt(lv_scr_act()));
-  
-  lv_obj_t * dd2 = lv_dropdown_create(lv_scr_act());
-  lv_obj_set_pos(dd2, 200, 0);
-  TEST_ASSERT_EQUAL(4, lv_obj_get_child_cnt(lv_scr_act()));
-  TEST_ASSERT_FALSE(lv_dropdown_is_open(dd2));
-  lv_dropdown_open(dd2);
-  TEST_ASSERT_EQUAL(4, lv_obj_get_child_cnt(lv_scr_act()));
-  TEST_ASSERT_TRUE(lv_dropdown_is_open(dd2));
-  lv_dropdown_open(dd2);    /*Try to open again*/
-  TEST_ASSERT_EQUAL(4, lv_obj_get_child_cnt(lv_scr_act()));
-
-  lv_obj_t * dd3 = lv_dropdown_create(lv_scr_act());
-  lv_obj_set_pos(dd3, 400, 0);
-  TEST_ASSERT_EQUAL(6, lv_obj_get_child_cnt(lv_scr_act()));
-  lv_dropdown_open(dd3);
-  TEST_ASSERT_EQUAL(6, lv_obj_get_child_cnt(lv_scr_act()));
-  lv_dropdown_close(dd3);
-  TEST_ASSERT_EQUAL(6, lv_obj_get_child_cnt(lv_scr_act()));
-  lv_dropdown_close(dd3);   /*Try to close again*/
-  TEST_ASSERT_EQUAL(6, lv_obj_get_child_cnt(lv_scr_act()));
-  
-  lv_obj_del(dd2);
-  TEST_ASSERT_EQUAL(4, lv_obj_get_child_cnt(lv_scr_act()));
- 
-  lv_obj_clean(lv_scr_act());
-  TEST_ASSERT_EQUAL(0, lv_obj_get_child_cnt(lv_scr_act()));
+    lv_dropdown_create(lv_scr_act());
+    TEST_ASSERT_EQUAL(2, lv_obj_get_child_cnt(lv_scr_act()));
+
+    lv_obj_t * dd2 = lv_dropdown_create(lv_scr_act());
+    lv_obj_set_pos(dd2, 200, 0);
+    TEST_ASSERT_EQUAL(4, lv_obj_get_child_cnt(lv_scr_act()));
+    TEST_ASSERT_FALSE(lv_dropdown_is_open(dd2));
+    lv_dropdown_open(dd2);
+    TEST_ASSERT_EQUAL(4, lv_obj_get_child_cnt(lv_scr_act()));
+    TEST_ASSERT_TRUE(lv_dropdown_is_open(dd2));
+    lv_dropdown_open(dd2);    /*Try to open again*/
+    TEST_ASSERT_EQUAL(4, lv_obj_get_child_cnt(lv_scr_act()));
+
+    lv_obj_t * dd3 = lv_dropdown_create(lv_scr_act());
+    lv_obj_set_pos(dd3, 400, 0);
+    TEST_ASSERT_EQUAL(6, lv_obj_get_child_cnt(lv_scr_act()));
+    lv_dropdown_open(dd3);
+    TEST_ASSERT_EQUAL(6, lv_obj_get_child_cnt(lv_scr_act()));
+    lv_dropdown_close(dd3);
+    TEST_ASSERT_EQUAL(6, lv_obj_get_child_cnt(lv_scr_act()));
+    lv_dropdown_close(dd3);   /*Try to close again*/
+    TEST_ASSERT_EQUAL(6, lv_obj_get_child_cnt(lv_scr_act()));
+
+    lv_obj_del(dd2);
+    TEST_ASSERT_EQUAL(4, lv_obj_get_child_cnt(lv_scr_act()));
+
+    lv_obj_clean(lv_scr_act());
+    TEST_ASSERT_EQUAL(0, lv_obj_get_child_cnt(lv_scr_act()));
 
 }
 
 void test_dropdown_set_options(void)
 {
 
-  lv_mem_monitor_t m1;
-  lv_mem_monitor(&m1);
-
-  lv_obj_t * dd1 = lv_dropdown_create(lv_scr_act());
-  TEST_ASSERT_EQUAL_STRING("Option 1\nOption 2\nOption 3", lv_dropdown_get_options(dd1));
-  TEST_ASSERT_EQUAL(3, lv_dropdown_get_option_cnt(dd1));
-  
-  lv_dropdown_set_options(dd1, "a1\nb2\nc3\nd4\ne5\nf6");
-  TEST_ASSERT_EQUAL_STRING("a1\nb2\nc3\nd4\ne5\nf6", lv_dropdown_get_options(dd1));
-  TEST_ASSERT_EQUAL(6, lv_dropdown_get_option_cnt(dd1));
-  
-  lv_obj_set_width(dd1, 200);
-  lv_dropdown_open(dd1);
-  lv_obj_update_layout(dd1);
-  TEST_ASSERT_EQUAL(200, lv_obj_get_width(lv_dropdown_get_list(dd1)));
-  
-  lv_dropdown_close(dd1);
-
-  lv_dropdown_add_option(dd1, "x0", 0);
-  TEST_ASSERT_EQUAL_STRING("x0\na1\nb2\nc3\nd4\ne5\nf6", lv_dropdown_get_options(dd1));
-  TEST_ASSERT_EQUAL(7, lv_dropdown_get_option_cnt(dd1));
-  
-  lv_dropdown_add_option(dd1, "y0", 3);
-  TEST_ASSERT_EQUAL_STRING("x0\na1\nb2\ny0\nc3\nd4\ne5\nf6", lv_dropdown_get_options(dd1));
-  TEST_ASSERT_EQUAL(8, lv_dropdown_get_option_cnt(dd1));
-  
-  lv_dropdown_add_option(dd1, "z0", LV_DROPDOWN_POS_LAST);
-  TEST_ASSERT_EQUAL_STRING("x0\na1\nb2\ny0\nc3\nd4\ne5\nf6\nz0", lv_dropdown_get_options(dd1));
-  TEST_ASSERT_EQUAL(9, lv_dropdown_get_option_cnt(dd1));
-
-  lv_dropdown_clear_options(dd1);
-  TEST_ASSERT_EQUAL_STRING("", lv_dropdown_get_options(dd1));
-  TEST_ASSERT_EQUAL(0, lv_dropdown_get_option_cnt(dd1));
-
-  lv_dropdown_set_options(dd1, "o1\no2"); /*Just to add some content before lv_dropdown_set_options_static*/
-
-  lv_dropdown_set_options_static(dd1, "a1\nb2\nc3\nd4\ne5\nf6");
-  TEST_ASSERT_EQUAL_STRING("a1\nb2\nc3\nd4\ne5\nf6", lv_dropdown_get_options(dd1));
-  TEST_ASSERT_EQUAL(6, lv_dropdown_get_option_cnt(dd1));
-
-  lv_dropdown_add_option(dd1, "x0", 0);
-  TEST_ASSERT_EQUAL_STRING("x0\na1\nb2\nc3\nd4\ne5\nf6", lv_dropdown_get_options(dd1));
-  TEST_ASSERT_EQUAL(7, lv_dropdown_get_option_cnt(dd1));
-  
-  lv_dropdown_add_option(dd1, "y0", 3);
-  TEST_ASSERT_EQUAL_STRING("x0\na1\nb2\ny0\nc3\nd4\ne5\nf6", lv_dropdown_get_options(dd1));
-  TEST_ASSERT_EQUAL(8, lv_dropdown_get_option_cnt(dd1));
-  
-  lv_dropdown_add_option(dd1, "z0", LV_DROPDOWN_POS_LAST);
-  TEST_ASSERT_EQUAL_STRING("x0\na1\nb2\ny0\nc3\nd4\ne5\nf6\nz0", lv_dropdown_get_options(dd1));
-  TEST_ASSERT_EQUAL(9, lv_dropdown_get_option_cnt(dd1));
-
-  lv_dropdown_clear_options(dd1);
-  TEST_ASSERT_EQUAL_STRING("", lv_dropdown_get_options(dd1));
-  TEST_ASSERT_EQUAL(0, lv_dropdown_get_option_cnt(dd1));
-
-  lv_obj_del(dd1);
-
-  lv_mem_monitor_t m2;
-  lv_mem_monitor(&m2);
-  TEST_ASSERT_UINT32_WITHIN(48, m1.free_size, m2.free_size);
+    lv_mem_monitor_t m1;
+    lv_mem_monitor(&m1);
+
+    lv_obj_t * dd1 = lv_dropdown_create(lv_scr_act());
+    TEST_ASSERT_EQUAL_STRING("Option 1\nOption 2\nOption 3", lv_dropdown_get_options(dd1));
+    TEST_ASSERT_EQUAL(3, lv_dropdown_get_option_cnt(dd1));
+
+    lv_dropdown_set_options(dd1, "a1\nb2\nc3\nd4\ne5\nf6");
+    TEST_ASSERT_EQUAL_STRING("a1\nb2\nc3\nd4\ne5\nf6", lv_dropdown_get_options(dd1));
+    TEST_ASSERT_EQUAL(6, lv_dropdown_get_option_cnt(dd1));
+
+    lv_obj_set_width(dd1, 200);
+    lv_dropdown_open(dd1);
+    lv_obj_update_layout(dd1);
+    TEST_ASSERT_EQUAL(200, lv_obj_get_width(lv_dropdown_get_list(dd1)));
+
+    lv_dropdown_close(dd1);
+
+    lv_dropdown_add_option(dd1, "x0", 0);
+    TEST_ASSERT_EQUAL_STRING("x0\na1\nb2\nc3\nd4\ne5\nf6", lv_dropdown_get_options(dd1));
+    TEST_ASSERT_EQUAL(7, lv_dropdown_get_option_cnt(dd1));
+
+    lv_dropdown_add_option(dd1, "y0", 3);
+    TEST_ASSERT_EQUAL_STRING("x0\na1\nb2\ny0\nc3\nd4\ne5\nf6", lv_dropdown_get_options(dd1));
+    TEST_ASSERT_EQUAL(8, lv_dropdown_get_option_cnt(dd1));
+
+    lv_dropdown_add_option(dd1, "z0", LV_DROPDOWN_POS_LAST);
+    TEST_ASSERT_EQUAL_STRING("x0\na1\nb2\ny0\nc3\nd4\ne5\nf6\nz0", lv_dropdown_get_options(dd1));
+    TEST_ASSERT_EQUAL(9, lv_dropdown_get_option_cnt(dd1));
+
+    lv_dropdown_clear_options(dd1);
+    TEST_ASSERT_EQUAL_STRING("", lv_dropdown_get_options(dd1));
+    TEST_ASSERT_EQUAL(0, lv_dropdown_get_option_cnt(dd1));
+
+    lv_dropdown_set_options(dd1, "o1\no2"); /*Just to add some content before lv_dropdown_set_options_static*/
+
+    lv_dropdown_set_options_static(dd1, "a1\nb2\nc3\nd4\ne5\nf6");
+    TEST_ASSERT_EQUAL_STRING("a1\nb2\nc3\nd4\ne5\nf6", lv_dropdown_get_options(dd1));
+    TEST_ASSERT_EQUAL(6, lv_dropdown_get_option_cnt(dd1));
+
+    lv_dropdown_add_option(dd1, "x0", 0);
+    TEST_ASSERT_EQUAL_STRING("x0\na1\nb2\nc3\nd4\ne5\nf6", lv_dropdown_get_options(dd1));
+    TEST_ASSERT_EQUAL(7, lv_dropdown_get_option_cnt(dd1));
+
+    lv_dropdown_add_option(dd1, "y0", 3);
+    TEST_ASSERT_EQUAL_STRING("x0\na1\nb2\ny0\nc3\nd4\ne5\nf6", lv_dropdown_get_options(dd1));
+    TEST_ASSERT_EQUAL(8, lv_dropdown_get_option_cnt(dd1));
+
+    lv_dropdown_add_option(dd1, "z0", LV_DROPDOWN_POS_LAST);
+    TEST_ASSERT_EQUAL_STRING("x0\na1\nb2\ny0\nc3\nd4\ne5\nf6\nz0", lv_dropdown_get_options(dd1));
+    TEST_ASSERT_EQUAL(9, lv_dropdown_get_option_cnt(dd1));
+
+    lv_dropdown_clear_options(dd1);
+    TEST_ASSERT_EQUAL_STRING("", lv_dropdown_get_options(dd1));
+    TEST_ASSERT_EQUAL(0, lv_dropdown_get_option_cnt(dd1));
+
+    lv_obj_del(dd1);
+
+    lv_mem_monitor_t m2;
+    lv_mem_monitor(&m2);
+    TEST_ASSERT_UINT32_WITHIN(48, m1.free_size, m2.free_size);
 }
 
 void test_dropdown_select(void)
 {
-  lv_obj_t * dd1 = lv_dropdown_create(lv_scr_act());
-  lv_dropdown_set_selected(dd1, 2);
-  
-  TEST_ASSERT_EQUAL(2, lv_dropdown_get_selected(dd1));
-  
-  char buf[32];
-  memset(buf, 0x00, sizeof(buf));
-  lv_dropdown_get_selected_str(dd1, buf, sizeof(buf));  
-  TEST_ASSERT_EQUAL_STRING("Option 3", buf);
-  
-  memset(buf, 0x00, sizeof(buf));
-  lv_dropdown_get_selected_str(dd1, buf, 4);
-  TEST_ASSERT_EQUAL_STRING("Opt", buf);
-
-  /*Out of range*/
-  lv_dropdown_set_selected(dd1, 3);
-  TEST_ASSERT_EQUAL(2, lv_dropdown_get_selected(dd1));
+    lv_obj_t * dd1 = lv_dropdown_create(lv_scr_act());
+    lv_dropdown_set_selected(dd1, 2);
+
+    TEST_ASSERT_EQUAL(2, lv_dropdown_get_selected(dd1));
+
+    char buf[32];
+    memset(buf, 0x00, sizeof(buf));
+    lv_dropdown_get_selected_str(dd1, buf, sizeof(buf));
+    TEST_ASSERT_EQUAL_STRING("Option 3", buf);
+
+    memset(buf, 0x00, sizeof(buf));
+    lv_dropdown_get_selected_str(dd1, buf, 4);
+    TEST_ASSERT_EQUAL_STRING("Opt", buf);
+
+    /*Out of range*/
+    lv_dropdown_set_selected(dd1, 3);
+    TEST_ASSERT_EQUAL(2, lv_dropdown_get_selected(dd1));
 }
 
 void test_dropdown_click(void)
 {
-  lv_obj_clean(lv_scr_act());
-  lv_obj_t * dd1 = lv_dropdown_create(lv_scr_act());
-  lv_obj_update_layout(dd1);
-  
-  TEST_ASSERT_FALSE(lv_dropdown_is_open(dd1));
-  lv_test_mouse_click_at(dd1->coords.x1 + 5, dd1->coords.y1 + 5); 
-  TEST_ASSERT_TRUE(lv_dropdown_is_open(dd1));
-    
-  lv_obj_t * list = lv_dropdown_get_list(dd1);
-  TEST_ASSERT_EQUAL(0, lv_dropdown_get_selected(dd1));
-  lv_test_mouse_click_at(list->coords.x1 + 5, list->coords.y2 - 25);
-  TEST_ASSERT_EQUAL(2, lv_dropdown_get_selected(dd1));
-  TEST_ASSERT_FALSE(lv_dropdown_is_open(dd1));
+    lv_obj_clean(lv_scr_act());
+    lv_obj_t * dd1 = lv_dropdown_create(lv_scr_act());
+    lv_obj_update_layout(dd1);
+
+    TEST_ASSERT_FALSE(lv_dropdown_is_open(dd1));
+    lv_test_mouse_click_at(dd1->coords.x1 + 5, dd1->coords.y1 + 5);
+    TEST_ASSERT_TRUE(lv_dropdown_is_open(dd1));
+
+    lv_obj_t * list = lv_dropdown_get_list(dd1);
+    TEST_ASSERT_EQUAL(0, lv_dropdown_get_selected(dd1));
+    lv_test_mouse_click_at(list->coords.x1 + 5, list->coords.y2 - 25);
+    TEST_ASSERT_EQUAL(2, lv_dropdown_get_selected(dd1));
+    TEST_ASSERT_FALSE(lv_dropdown_is_open(dd1));
 }
 
 static uint32_t event_cnt;
-static void dd_event(lv_event_t * e) 
+static void dd_event(lv_event_t * e)
 {
-  LV_UNUSED(e);
-  event_cnt++;
+    LV_UNUSED(e);
+    event_cnt++;
 }
 
 void test_dropdown_keypad(void)
 {
-  lv_obj_clean(lv_scr_act());
-
-  lv_group_t * g = lv_group_create();
-  lv_indev_set_group(lv_test_keypad_indev, g);
-
-  lv_obj_t * dd1 = lv_dropdown_create(lv_scr_act());
-  lv_obj_set_pos(dd1, 20, 20);
-  lv_dropdown_set_options(dd1, "1\n2\n3\n4\n5\n6\n7\n8");
-  lv_group_add_obj(g, dd1);
-  lv_obj_add_event_cb(dd1, dd_event, LV_EVENT_VALUE_CHANGED, NULL);
-  
-  lv_obj_t * dd2 = lv_dropdown_create(lv_scr_act());
-  lv_obj_set_pos(dd2, 300, 20);
-  lv_group_add_obj(g, dd2);
-    
-  event_cnt = 0;  
-    
-  TEST_ASSERT_FALSE(lv_dropdown_is_open(dd1));
-  TEST_ASSERT_FALSE(lv_dropdown_is_open(dd2));
-  lv_test_key_hit(LV_KEY_ENTER); 
-  TEST_ASSERT_TRUE(lv_dropdown_is_open(dd1));
-  TEST_ASSERT_FALSE(lv_dropdown_is_open(dd2));
-  
-  lv_test_key_hit(LV_KEY_DOWN);
-  lv_test_key_hit(LV_KEY_RIGHT);  /*Same as down*/
-  lv_test_key_hit(LV_KEY_ENTER); 
-  TEST_ASSERT_FALSE(lv_dropdown_is_open(dd1));
-  TEST_ASSERT_EQUAL(2, lv_dropdown_get_selected(dd1));
-  TEST_ASSERT_EQUAL(1, event_cnt);
-  
-  lv_test_key_hit(LV_KEY_DOWN); /*Open the list too*/
-  TEST_ASSERT_NOT_NULL(lv_dropdown_get_list(dd1));
-  lv_test_key_hit(LV_KEY_DOWN);
-  lv_test_key_hit(LV_KEY_ENTER); 
-  TEST_ASSERT_FALSE(lv_dropdown_is_open(dd1));
-  TEST_ASSERT_EQUAL(3, lv_dropdown_get_selected(dd1));
-  TEST_ASSERT_EQUAL(2, event_cnt);
-  
-  lv_test_key_hit(LV_KEY_RIGHT); /*Open the list too*/
-  TEST_ASSERT_NOT_NULL(lv_dropdown_get_list(dd1));
-  lv_test_key_hit(LV_KEY_RIGHT);
-  lv_test_key_hit(LV_KEY_ENTER); 
-  TEST_ASSERT_FALSE(lv_dropdown_is_open(dd1));
-  TEST_ASSERT_EQUAL(4, lv_dropdown_get_selected(dd1));
-  TEST_ASSERT_EQUAL(3, event_cnt);
-  
-  lv_test_key_hit(LV_KEY_LEFT); /*Open the list too*/
-  TEST_ASSERT_TRUE(lv_dropdown_is_open(dd1));
-  lv_test_key_hit(LV_KEY_LEFT);
-  lv_test_key_hit(LV_KEY_ENTER); 
-  TEST_ASSERT_FALSE(lv_dropdown_is_open(dd1));
-  TEST_ASSERT_EQUAL(3, lv_dropdown_get_selected(dd1));
-  TEST_ASSERT_EQUAL(4, event_cnt);
-  
-  lv_test_key_hit(LV_KEY_UP); /*Open the list too*/
-  TEST_ASSERT_NOT_NULL(lv_dropdown_get_list(dd1));
-  lv_test_key_hit(LV_KEY_UP); 
-  lv_test_key_hit(LV_KEY_ENTER); 
-  TEST_ASSERT_FALSE(lv_dropdown_is_open(dd1));
-  TEST_ASSERT_EQUAL(2, lv_dropdown_get_selected(dd1));
-  TEST_ASSERT_EQUAL(5, event_cnt);
-  
-  lv_test_key_hit(LV_KEY_UP); 
-  lv_test_key_hit(LV_KEY_UP); 
-  lv_test_key_hit(LV_KEY_UP); 
-  lv_test_key_hit(LV_KEY_UP); 
-  lv_test_key_hit(LV_KEY_ENTER); 
-  TEST_ASSERT_FALSE(lv_dropdown_is_open(dd1));
-  TEST_ASSERT_EQUAL(0, lv_dropdown_get_selected(dd1));
-  TEST_ASSERT_EQUAL(6, event_cnt);
-  
-  lv_test_key_hit(LV_KEY_DOWN);
-  lv_test_key_hit(LV_KEY_DOWN);
-  lv_test_key_hit(LV_KEY_DOWN);
-  lv_test_key_hit(LV_KEY_DOWN);
-  lv_test_key_hit(LV_KEY_DOWN);
-  lv_test_key_hit(LV_KEY_DOWN);
-  lv_test_key_hit(LV_KEY_DOWN); 
-  lv_test_key_hit(LV_KEY_DOWN);
-  lv_test_key_hit(LV_KEY_DOWN); 
-  lv_test_key_hit(LV_KEY_ENTER); 
-  TEST_ASSERT_FALSE(lv_dropdown_is_open(dd1));
-  TEST_ASSERT_EQUAL(7, lv_dropdown_get_selected(dd1));
-  TEST_ASSERT_EQUAL(7, event_cnt);
-  
-  lv_test_key_hit(LV_KEY_ENTER); 
-  TEST_ASSERT_TRUE(lv_dropdown_is_open(dd1));
-  
-  lv_test_key_hit(LV_KEY_NEXT); 
-  TEST_ASSERT_FALSE(lv_dropdown_is_open(dd1));
-  TEST_ASSERT_FALSE(lv_dropdown_is_open(dd2));
-  
-  lv_test_key_hit(LV_KEY_ENTER); 
-  TEST_ASSERT_FALSE(lv_dropdown_is_open(dd1));
-  TEST_ASSERT_NOT_NULL(lv_dropdown_get_list(dd2));
-  
-  lv_indev_set_group(lv_test_keypad_indev, NULL);
-  lv_group_del(g);
+    lv_obj_clean(lv_scr_act());
+
+    lv_group_t * g = lv_group_create();
+    lv_indev_set_group(lv_test_keypad_indev, g);
+
+    lv_obj_t * dd1 = lv_dropdown_create(lv_scr_act());
+    lv_obj_set_pos(dd1, 20, 20);
+    lv_dropdown_set_options(dd1, "1\n2\n3\n4\n5\n6\n7\n8");
+    lv_group_add_obj(g, dd1);
+    lv_obj_add_event_cb(dd1, dd_event, LV_EVENT_VALUE_CHANGED, NULL);
+
+    lv_obj_t * dd2 = lv_dropdown_create(lv_scr_act());
+    lv_obj_set_pos(dd2, 300, 20);
+    lv_group_add_obj(g, dd2);
+
+    event_cnt = 0;
+
+    TEST_ASSERT_FALSE(lv_dropdown_is_open(dd1));
+    TEST_ASSERT_FALSE(lv_dropdown_is_open(dd2));
+    lv_test_key_hit(LV_KEY_ENTER);
+    TEST_ASSERT_TRUE(lv_dropdown_is_open(dd1));
+    TEST_ASSERT_FALSE(lv_dropdown_is_open(dd2));
+
+    lv_test_key_hit(LV_KEY_DOWN);
+    lv_test_key_hit(LV_KEY_RIGHT);  /*Same as down*/
+    lv_test_key_hit(LV_KEY_ENTER);
+    TEST_ASSERT_FALSE(lv_dropdown_is_open(dd1));
+    TEST_ASSERT_EQUAL(2, lv_dropdown_get_selected(dd1));
+    TEST_ASSERT_EQUAL(1, event_cnt);
+
+    lv_test_key_hit(LV_KEY_DOWN); /*Open the list too*/
+    TEST_ASSERT_NOT_NULL(lv_dropdown_get_list(dd1));
+    lv_test_key_hit(LV_KEY_DOWN);
+    lv_test_key_hit(LV_KEY_ENTER);
+    TEST_ASSERT_FALSE(lv_dropdown_is_open(dd1));
+    TEST_ASSERT_EQUAL(3, lv_dropdown_get_selected(dd1));
+    TEST_ASSERT_EQUAL(2, event_cnt);
+
+    lv_test_key_hit(LV_KEY_RIGHT); /*Open the list too*/
+    TEST_ASSERT_NOT_NULL(lv_dropdown_get_list(dd1));
+    lv_test_key_hit(LV_KEY_RIGHT);
+    lv_test_key_hit(LV_KEY_ENTER);
+    TEST_ASSERT_FALSE(lv_dropdown_is_open(dd1));
+    TEST_ASSERT_EQUAL(4, lv_dropdown_get_selected(dd1));
+    TEST_ASSERT_EQUAL(3, event_cnt);
+
+    lv_test_key_hit(LV_KEY_LEFT); /*Open the list too*/
+    TEST_ASSERT_TRUE(lv_dropdown_is_open(dd1));
+    lv_test_key_hit(LV_KEY_LEFT);
+    lv_test_key_hit(LV_KEY_ENTER);
+    TEST_ASSERT_FALSE(lv_dropdown_is_open(dd1));
+    TEST_ASSERT_EQUAL(3, lv_dropdown_get_selected(dd1));
+    TEST_ASSERT_EQUAL(4, event_cnt);
+
+    lv_test_key_hit(LV_KEY_UP); /*Open the list too*/
+    TEST_ASSERT_NOT_NULL(lv_dropdown_get_list(dd1));
+    lv_test_key_hit(LV_KEY_UP);
+    lv_test_key_hit(LV_KEY_ENTER);
+    TEST_ASSERT_FALSE(lv_dropdown_is_open(dd1));
+    TEST_ASSERT_EQUAL(2, lv_dropdown_get_selected(dd1));
+    TEST_ASSERT_EQUAL(5, event_cnt);
+
+    lv_test_key_hit(LV_KEY_UP);
+    lv_test_key_hit(LV_KEY_UP);
+    lv_test_key_hit(LV_KEY_UP);
+    lv_test_key_hit(LV_KEY_UP);
+    lv_test_key_hit(LV_KEY_ENTER);
+    TEST_ASSERT_FALSE(lv_dropdown_is_open(dd1));
+    TEST_ASSERT_EQUAL(0, lv_dropdown_get_selected(dd1));
+    TEST_ASSERT_EQUAL(6, event_cnt);
+
+    lv_test_key_hit(LV_KEY_DOWN);
+    lv_test_key_hit(LV_KEY_DOWN);
+    lv_test_key_hit(LV_KEY_DOWN);
+    lv_test_key_hit(LV_KEY_DOWN);
+    lv_test_key_hit(LV_KEY_DOWN);
+    lv_test_key_hit(LV_KEY_DOWN);
+    lv_test_key_hit(LV_KEY_DOWN);
+    lv_test_key_hit(LV_KEY_DOWN);
+    lv_test_key_hit(LV_KEY_DOWN);
+    lv_test_key_hit(LV_KEY_ENTER);
+    TEST_ASSERT_FALSE(lv_dropdown_is_open(dd1));
+    TEST_ASSERT_EQUAL(7, lv_dropdown_get_selected(dd1));
+    TEST_ASSERT_EQUAL(7, event_cnt);
+
+    lv_test_key_hit(LV_KEY_ENTER);
+    TEST_ASSERT_TRUE(lv_dropdown_is_open(dd1));
+
+    lv_test_key_hit(LV_KEY_NEXT);
+    TEST_ASSERT_FALSE(lv_dropdown_is_open(dd1));
+    TEST_ASSERT_FALSE(lv_dropdown_is_open(dd2));
+
+    lv_test_key_hit(LV_KEY_ENTER);
+    TEST_ASSERT_FALSE(lv_dropdown_is_open(dd1));
+    TEST_ASSERT_NOT_NULL(lv_dropdown_get_list(dd2));
+
+    lv_indev_set_group(lv_test_keypad_indev, NULL);
+    lv_group_del(g);
 }
 
 
 void test_dropdown_encoder(void)
 {
-  lv_obj_clean(lv_scr_act());
-
-  lv_group_t * g = lv_group_create();
-  lv_indev_set_group(lv_test_encoder_indev, g);
-
-  lv_obj_t * dd1 = lv_dropdown_create(lv_scr_act());
-  lv_obj_set_pos(dd1, 20, 20);
-  lv_dropdown_set_options(dd1, "1\n2\n3\n4\n5\n6\n7\n8");
-  lv_group_add_obj(g, dd1);
-  lv_obj_add_event_cb(dd1, dd_event, LV_EVENT_VALUE_CHANGED, NULL);
-  
-  lv_obj_t * dd2 = lv_dropdown_create(lv_scr_act());
-  lv_obj_set_pos(dd2, 300, 20);
-  lv_group_add_obj(g, dd2);
-    
-  event_cnt = 0;  
-    
-  TEST_ASSERT_FALSE(lv_dropdown_is_open(dd1));
-  TEST_ASSERT_FALSE(lv_dropdown_is_open(dd2));
-  lv_test_encoder_click(); 
-  TEST_ASSERT_TRUE(lv_dropdown_is_open(dd1));
-  TEST_ASSERT_FALSE(lv_dropdown_is_open(dd2));
-  
-  lv_test_encoder_turn(5);
-  lv_test_encoder_click(); 
-  TEST_ASSERT_FALSE(lv_dropdown_is_open(dd1));
-  TEST_ASSERT_EQUAL(5, lv_dropdown_get_selected(dd1));
-  TEST_ASSERT_EQUAL(1, event_cnt);
-  
-  lv_test_encoder_click(); 
-  lv_test_encoder_turn(-1);
-  lv_test_encoder_click(); 
-  TEST_ASSERT_EQUAL(4, lv_dropdown_get_selected(dd1));
-  TEST_ASSERT_EQUAL(2, event_cnt);
-
-  lv_test_encoder_click(); 
-  lv_test_encoder_turn(2);
-  lv_test_encoder_press(); 
-  lv_test_indev_wait(1000);  //Long press
-  lv_test_encoder_release(); 
-  lv_test_indev_wait(50);
-  TEST_ASSERT_FALSE(lv_dropdown_is_open(dd1));
-  TEST_ASSERT_EQUAL(4, lv_dropdown_get_selected(dd1));
-  TEST_ASSERT_EQUAL(2, event_cnt);
-  
-  lv_test_encoder_turn(1);
-  lv_test_encoder_click();
-  TEST_ASSERT_FALSE(lv_dropdown_is_open(dd1));
-  TEST_ASSERT_TRUE(lv_dropdown_is_open(dd2));
-  
-  lv_indev_set_group(lv_test_encoder_indev, NULL);
-  lv_group_del(g);
+    lv_obj_clean(lv_scr_act());
+
+    lv_group_t * g = lv_group_create();
+    lv_indev_set_group(lv_test_encoder_indev, g);
+
+    lv_obj_t * dd1 = lv_dropdown_create(lv_scr_act());
+    lv_obj_set_pos(dd1, 20, 20);
+    lv_dropdown_set_options(dd1, "1\n2\n3\n4\n5\n6\n7\n8");
+    lv_group_add_obj(g, dd1);
+    lv_obj_add_event_cb(dd1, dd_event, LV_EVENT_VALUE_CHANGED, NULL);
+
+    lv_obj_t * dd2 = lv_dropdown_create(lv_scr_act());
+    lv_obj_set_pos(dd2, 300, 20);
+    lv_group_add_obj(g, dd2);
+
+    event_cnt = 0;
+
+    TEST_ASSERT_FALSE(lv_dropdown_is_open(dd1));
+    TEST_ASSERT_FALSE(lv_dropdown_is_open(dd2));
+    lv_test_encoder_click();
+    TEST_ASSERT_TRUE(lv_dropdown_is_open(dd1));
+    TEST_ASSERT_FALSE(lv_dropdown_is_open(dd2));
+
+    lv_test_encoder_turn(5);
+    lv_test_encoder_click();
+    TEST_ASSERT_FALSE(lv_dropdown_is_open(dd1));
+    TEST_ASSERT_EQUAL(5, lv_dropdown_get_selected(dd1));
+    TEST_ASSERT_EQUAL(1, event_cnt);
+
+    lv_test_encoder_click();
+    lv_test_encoder_turn(-1);
+    lv_test_encoder_click();
+    TEST_ASSERT_EQUAL(4, lv_dropdown_get_selected(dd1));
+    TEST_ASSERT_EQUAL(2, event_cnt);
+
+    lv_test_encoder_click();
+    lv_test_encoder_turn(2);
+    lv_test_encoder_press();
+    lv_test_indev_wait(1000);  //Long press
+    lv_test_encoder_release();
+    lv_test_indev_wait(50);
+    TEST_ASSERT_FALSE(lv_dropdown_is_open(dd1));
+    TEST_ASSERT_EQUAL(4, lv_dropdown_get_selected(dd1));
+    TEST_ASSERT_EQUAL(2, event_cnt);
+
+    lv_test_encoder_turn(1);
+    lv_test_encoder_click();
+    TEST_ASSERT_FALSE(lv_dropdown_is_open(dd1));
+    TEST_ASSERT_TRUE(lv_dropdown_is_open(dd2));
+
+    lv_indev_set_group(lv_test_encoder_indev, NULL);
+    lv_group_del(g);
 }
 
 
 void test_dropdown_render_1(void)
 {
-  lv_obj_clean(lv_scr_act());
-
-  lv_obj_t * dd1 = lv_dropdown_create(lv_scr_act());
-  lv_obj_set_pos(dd1, 10, 10);
-  lv_dropdown_set_selected(dd1, 1);
-
-  lv_obj_t * dd2 = lv_dropdown_create(lv_scr_act());
-  lv_obj_set_pos(dd2, 200, 10);
-  lv_obj_set_width(dd2, 200);
-  lv_dropdown_set_selected(dd2, 2);
-  lv_dropdown_open(dd2);
-  TEST_ASSERT_TRUE(lv_dropdown_get_selected_highlight(dd2));
-  lv_dropdown_set_selected_highlight(dd2, false);
-  TEST_ASSERT_FALSE(lv_dropdown_get_selected_highlight(dd2)); 
-
-  lv_obj_t * dd3 = lv_dropdown_create(lv_scr_act());
-  lv_obj_set_style_pad_hor(dd3, 5, 0);
-  lv_obj_set_style_pad_ver(dd3, 20, 0);
-  lv_obj_set_pos(dd3, 500, 150);
-  TEST_ASSERT_EQUAL_PTR(NULL, lv_dropdown_get_text(dd3));
-  lv_dropdown_set_text(dd3, "A text");
-  TEST_ASSERT_EQUAL_STRING("A text", lv_dropdown_get_text(dd3));
-  
-  lv_dropdown_set_selected(dd3, 2);
-  
-  TEST_ASSERT_EQUAL(LV_DIR_BOTTOM, lv_dropdown_get_dir(dd3));
-  lv_dropdown_set_dir(dd3, LV_DIR_LEFT);
-  TEST_ASSERT_EQUAL(LV_DIR_LEFT, lv_dropdown_get_dir(dd3));
-  
-  TEST_ASSERT_EQUAL_STRING(LV_SYMBOL_DOWN, lv_dropdown_get_symbol(dd3));
-  lv_dropdown_set_symbol(dd3, LV_SYMBOL_LEFT);
-  TEST_ASSERT_EQUAL_STRING(LV_SYMBOL_LEFT, lv_dropdown_get_symbol(dd3));
-
-  lv_dropdown_set_options(dd3, "a0\na1\na2\na3\na4\na5\na6\na7\na8\na9\na10\na11\na12\na13\na14\na15\na16");
-  lv_dropdown_open(dd3);
-  lv_dropdown_set_selected(dd3, 3);
-  lv_obj_t * list = lv_dropdown_get_list(dd3);
-  lv_obj_set_style_text_line_space(list, 5, 0);
-  lv_obj_set_style_bg_color(list, lv_color_hex3(0xf00), LV_PART_SELECTED | LV_STATE_CHECKED);
-
-  
-  TEST_ASSERT_EQUAL_SCREENSHOT("dropdown_1.png");
+    lv_obj_clean(lv_scr_act());
+
+    lv_obj_t * dd1 = lv_dropdown_create(lv_scr_act());
+    lv_obj_set_pos(dd1, 10, 10);
+    lv_dropdown_set_selected(dd1, 1);
+
+    lv_obj_t * dd2 = lv_dropdown_create(lv_scr_act());
+    lv_obj_set_pos(dd2, 200, 10);
+    lv_obj_set_width(dd2, 200);
+    lv_dropdown_set_selected(dd2, 2);
+    lv_dropdown_open(dd2);
+    TEST_ASSERT_TRUE(lv_dropdown_get_selected_highlight(dd2));
+    lv_dropdown_set_selected_highlight(dd2, false);
+    TEST_ASSERT_FALSE(lv_dropdown_get_selected_highlight(dd2));
+
+    lv_obj_t * dd3 = lv_dropdown_create(lv_scr_act());
+    lv_obj_set_style_pad_hor(dd3, 5, 0);
+    lv_obj_set_style_pad_ver(dd3, 20, 0);
+    lv_obj_set_pos(dd3, 500, 150);
+    TEST_ASSERT_EQUAL_PTR(NULL, lv_dropdown_get_text(dd3));
+    lv_dropdown_set_text(dd3, "A text");
+    TEST_ASSERT_EQUAL_STRING("A text", lv_dropdown_get_text(dd3));
+
+    lv_dropdown_set_selected(dd3, 2);
+
+    TEST_ASSERT_EQUAL(LV_DIR_BOTTOM, lv_dropdown_get_dir(dd3));
+    lv_dropdown_set_dir(dd3, LV_DIR_LEFT);
+    TEST_ASSERT_EQUAL(LV_DIR_LEFT, lv_dropdown_get_dir(dd3));
+
+    TEST_ASSERT_EQUAL_STRING(LV_SYMBOL_DOWN, lv_dropdown_get_symbol(dd3));
+    lv_dropdown_set_symbol(dd3, LV_SYMBOL_LEFT);
+    TEST_ASSERT_EQUAL_STRING(LV_SYMBOL_LEFT, lv_dropdown_get_symbol(dd3));
+
+    lv_dropdown_set_options(dd3, "a0\na1\na2\na3\na4\na5\na6\na7\na8\na9\na10\na11\na12\na13\na14\na15\na16");
+    lv_dropdown_open(dd3);
+    lv_dropdown_set_selected(dd3, 3);
+    lv_obj_t * list = lv_dropdown_get_list(dd3);
+    lv_obj_set_style_text_line_space(list, 5, 0);
+    lv_obj_set_style_bg_color(list, lv_color_hex3(0xf00), LV_PART_SELECTED | LV_STATE_CHECKED);
+
+
+    TEST_ASSERT_EQUAL_SCREENSHOT("dropdown_1.png");
 }
 
 void test_dropdown_render_2(void)
 {
-  lv_obj_clean(lv_scr_act());
-  LV_IMG_DECLARE(img_caret_down);
-  lv_obj_t * dd1 = lv_dropdown_create(lv_scr_act());
-  lv_dropdown_set_text(dd1, "Short");
-  lv_dropdown_set_options(dd1, "1\n2");
-  lv_dropdown_set_symbol(dd1, &img_caret_down);
-  lv_dropdown_open(dd1);
-
-  lv_obj_t * dd2 = lv_dropdown_create(lv_scr_act());
-  lv_dropdown_set_text(dd2, "Go Up");
-  lv_dropdown_set_options(dd2, "1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15");
-  lv_dropdown_set_symbol(dd2, NULL);
-  lv_obj_align(dd2, LV_ALIGN_LEFT_MID, 150, 50);
-  lv_dropdown_open(dd2);
-
-  lv_obj_t * dd3 = lv_dropdown_create(lv_scr_act());
-  lv_dropdown_set_text(dd3, "Limit Down");
-  lv_dropdown_set_options(dd3, "1aaaaaaaaaaaaaaaa\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15");
-  lv_obj_align(dd3, LV_ALIGN_LEFT_MID, 300, -10);
-  lv_dropdown_open(dd3);
-
-  lv_obj_t * dd4 = lv_dropdown_create(lv_scr_act());
-  lv_dropdown_set_text(dd4, "Limit Top");
-  lv_dropdown_set_options(dd4, "1aaaaaaaaaaaaaaaa\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15");
-  lv_obj_align(dd4, LV_ALIGN_LEFT_MID, 450, 10);
-  lv_dropdown_set_dir(dd4, LV_DIR_TOP);
-  lv_dropdown_set_symbol(dd4, LV_SYMBOL_UP);
-  lv_dropdown_open(dd4);
-
-  lv_obj_t * dd5 = lv_dropdown_create(lv_scr_act());
-  lv_dropdown_set_text(dd5, "Go Down");
-  lv_dropdown_set_options(dd5, "1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15");
-  lv_dropdown_set_dir(dd5, LV_DIR_TOP);
-  lv_dropdown_set_symbol(dd5, LV_SYMBOL_UP);
-  lv_obj_align(dd5, LV_ALIGN_LEFT_MID, 650, -200);
-  lv_dropdown_open(dd5);
-
-  lv_obj_t * dd6 = lv_dropdown_create(lv_scr_act());
-  lv_dropdown_set_text(dd6, "Right");
-  lv_dropdown_set_options(dd6, "1aaa\n2aa\n3aa");
-  lv_dropdown_set_dir(dd6, LV_DIR_RIGHT);
-  lv_dropdown_set_symbol(dd6, LV_SYMBOL_RIGHT);
-  lv_obj_align(dd6, LV_ALIGN_BOTTOM_LEFT, 20, -20);
-  lv_dropdown_open(dd6);
-  lv_obj_set_style_text_align(lv_dropdown_get_list(dd6), LV_TEXT_ALIGN_RIGHT, 0);
-
-  lv_obj_t * dd7 = lv_dropdown_create(lv_scr_act());
-  lv_dropdown_set_text(dd7, "Left");
-  lv_dropdown_set_options(dd7, "1aaa\n2\n3");
-  lv_dropdown_set_dir(dd7, LV_DIR_LEFT);
-  lv_dropdown_set_symbol(dd7, LV_SYMBOL_LEFT);
-  lv_obj_align(dd7, LV_ALIGN_BOTTOM_RIGHT, -20, -20);
-  lv_dropdown_open(dd7);
-  
-  TEST_ASSERT_EQUAL_SCREENSHOT("dropdown_2.png");
+    lv_obj_clean(lv_scr_act());
+    LV_IMG_DECLARE(img_caret_down);
+    lv_obj_t * dd1 = lv_dropdown_create(lv_scr_act());
+    lv_dropdown_set_text(dd1, "Short");
+    lv_dropdown_set_options(dd1, "1\n2");
+    lv_dropdown_set_symbol(dd1, &img_caret_down);
+    lv_dropdown_open(dd1);
+
+    lv_obj_t * dd2 = lv_dropdown_create(lv_scr_act());
+    lv_dropdown_set_text(dd2, "Go Up");
+    lv_dropdown_set_options(dd2, "1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15");
+    lv_dropdown_set_symbol(dd2, NULL);
+    lv_obj_align(dd2, LV_ALIGN_LEFT_MID, 150, 50);
+    lv_dropdown_open(dd2);
+
+    lv_obj_t * dd3 = lv_dropdown_create(lv_scr_act());
+    lv_dropdown_set_text(dd3, "Limit Down");
+    lv_dropdown_set_options(dd3, "1aaaaaaaaaaaaaaaa\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15");
+    lv_obj_align(dd3, LV_ALIGN_LEFT_MID, 300, -10);
+    lv_dropdown_open(dd3);
+
+    lv_obj_t * dd4 = lv_dropdown_create(lv_scr_act());
+    lv_dropdown_set_text(dd4, "Limit Top");
+    lv_dropdown_set_options(dd4, "1aaaaaaaaaaaaaaaa\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15");
+    lv_obj_align(dd4, LV_ALIGN_LEFT_MID, 450, 10);
+    lv_dropdown_set_dir(dd4, LV_DIR_TOP);
+    lv_dropdown_set_symbol(dd4, LV_SYMBOL_UP);
+    lv_dropdown_open(dd4);
+
+    lv_obj_t * dd5 = lv_dropdown_create(lv_scr_act());
+    lv_dropdown_set_text(dd5, "Go Down");
+    lv_dropdown_set_options(dd5, "1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15");
+    lv_dropdown_set_dir(dd5, LV_DIR_TOP);
+    lv_dropdown_set_symbol(dd5, LV_SYMBOL_UP);
+    lv_obj_align(dd5, LV_ALIGN_LEFT_MID, 650, -200);
+    lv_dropdown_open(dd5);
+
+    lv_obj_t * dd6 = lv_dropdown_create(lv_scr_act());
+    lv_dropdown_set_text(dd6, "Right");
+    lv_dropdown_set_options(dd6, "1aaa\n2aa\n3aa");
+    lv_dropdown_set_dir(dd6, LV_DIR_RIGHT);
+    lv_dropdown_set_symbol(dd6, LV_SYMBOL_RIGHT);
+    lv_obj_align(dd6, LV_ALIGN_BOTTOM_LEFT, 20, -20);
+    lv_dropdown_open(dd6);
+    lv_obj_set_style_text_align(lv_dropdown_get_list(dd6), LV_TEXT_ALIGN_RIGHT, 0);
+
+    lv_obj_t * dd7 = lv_dropdown_create(lv_scr_act());
+    lv_dropdown_set_text(dd7, "Left");
+    lv_dropdown_set_options(dd7, "1aaa\n2\n3");
+    lv_dropdown_set_dir(dd7, LV_DIR_LEFT);
+    lv_dropdown_set_symbol(dd7, LV_SYMBOL_LEFT);
+    lv_obj_align(dd7, LV_ALIGN_BOTTOM_RIGHT, -20, -20);
+    lv_dropdown_open(dd7);
+
+    TEST_ASSERT_EQUAL_SCREENSHOT("dropdown_2.png");
 }
 
 /* See #2893 */
index e6af8ba..0ef4186 100644 (file)
@@ -3,7 +3,7 @@
 
 #include "unity/unity.h"
 
-static void event_object_deletion_cb(const lv_obj_class_t *cls, lv_event_t *e)
+static void event_object_deletion_cb(const lv_obj_class_t * cls, lv_event_t * e)
 {
     LV_UNUSED(cls);
     if(lv_event_get_code(e) == LV_EVENT_VALUE_CHANGED) {
index 20af189..c1675bb 100644 (file)
@@ -45,9 +45,23 @@ extern lv_font_t font_3;
 
 void test_font_loader(void)
 {
-    lv_font_t * font_1_bin = lv_font_load("F:src/test_fonts/font_1.fnt");
-    lv_font_t * font_2_bin = lv_font_load("F:src/test_fonts/font_2.fnt");
-    lv_font_t * font_3_bin = lv_font_load("F:src/test_fonts/font_3.fnt");
+    /*Test with cahce ('A' has cache)*/
+    lv_font_t * font_1_bin = lv_font_load("A:src/test_fonts/font_1.fnt");
+    lv_font_t * font_2_bin = lv_font_load("A:src/test_fonts/font_2.fnt");
+    lv_font_t * font_3_bin = lv_font_load("A:src/test_fonts/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);
+
+    /*Test with cahce ('B' has NO cache)*/
+    font_1_bin = lv_font_load("B:src/test_fonts/font_1.fnt");
+    font_2_bin = lv_font_load("B:src/test_fonts/font_2.fnt");
+    font_3_bin = lv_font_load("B:src/test_fonts/font_3.fnt");
 
     compare_fonts(&font_1, font_1_bin);
     compare_fonts(&font_2, font_2_bin);
@@ -63,10 +77,10 @@ static int compare_fonts(lv_font_t * f1, lv_font_t * f2)
     TEST_ASSERT_NOT_NULL_MESSAGE(f1, "font not null");
     TEST_ASSERT_NOT_NULL_MESSAGE(f2, "font not null");
 
-//    Skip these test because -Wpedantic tells
-//    ISO C forbids passing argument 1 of ‘lv_test_assert_ptr_eq’ between function pointer and ‘void *’
-//    TEST_ASSERT_EQUAL_PTR_MESSAGE(f1->get_glyph_dsc, f2->get_glyph_dsc, "glyph_dsc");
-//    TEST_ASSERT_EQUAL_PTR_MESSAGE(f1->get_glyph_bitmap, f2->get_glyph_bitmap, "glyph_bitmap");
+    //    Skip these test because -Wpedantic tells
+    //    ISO C forbids passing argument 1 of ‘TEST_ASSERT_EQUAL_PTR_MESSAGE’ between function pointer and ‘void *’
+    //    TEST_ASSERT_EQUAL_PTR_MESSAGE(f1->get_glyph_dsc, f2->get_glyph_dsc, "glyph_dsc");
+    //    TEST_ASSERT_EQUAL_PTR_MESSAGE(f1->get_glyph_bitmap, f2->get_glyph_bitmap, "glyph_bitmap");
 
     TEST_ASSERT_EQUAL_INT_MESSAGE(f1->line_height, f2->line_height, "line_height");
     TEST_ASSERT_EQUAL_INT_MESSAGE(f1->base_line, f2->base_line, "base_line");
@@ -96,10 +110,10 @@ static int compare_fonts(lv_font_t * f1, lv_font_t * f2)
             TEST_ASSERT_TRUE_MESSAGE(cmaps1->unicode_list && cmaps2->unicode_list, "unicode_list");
 
             TEST_ASSERT_EQUAL_UINT8_ARRAY_MESSAGE(
-                    (uint8_t *)cmaps1->unicode_list,
-                    (uint8_t *)cmaps2->unicode_list,
-                    sizeof(uint16_t) * cmaps1->list_length,
-                    "unicode_list");
+                (uint8_t *)cmaps1->unicode_list,
+                (uint8_t *)cmaps2->unicode_list,
+                sizeof(uint16_t) * cmaps1->list_length,
+                "unicode_list");
             total_glyphs += cmaps1->list_length;
         }
         else {
@@ -119,45 +133,45 @@ static int compare_fonts(lv_font_t * f1, lv_font_t * f2)
     }
 
     // kern_dsc
-    if (dsc1->kern_classes == 1 && dsc2->kern_classes == 1) {
+    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) {
+        if(kern1 != NULL && kern2 != NULL) {
             TEST_ASSERT_EQUAL_INT_MESSAGE(kern1->right_class_cnt, kern2->right_class_cnt, "right_class_cnt");
             TEST_ASSERT_EQUAL_INT_MESSAGE(kern1->left_class_cnt, kern2->left_class_cnt, "left_class_cnt");
 
             TEST_ASSERT_EQUAL_UINT8_ARRAY_MESSAGE(
-                    (uint8_t *)kern1->left_class_mapping,
-                    (uint8_t *)kern2->left_class_mapping,
-                    kern1->left_class_cnt,
-                    "left_class_mapping");
+                (uint8_t *)kern1->left_class_mapping,
+                (uint8_t *)kern2->left_class_mapping,
+                kern1->left_class_cnt,
+                "left_class_mapping");
 
             TEST_ASSERT_EQUAL_UINT8_ARRAY_MESSAGE(
-                    (uint8_t *)kern1->right_class_mapping,
-                    (uint8_t *)kern2->right_class_mapping,
-                    kern1->right_class_cnt,
-                    "right_class_mapping");
+                (uint8_t *)kern1->right_class_mapping,
+                (uint8_t *)kern2->right_class_mapping,
+                kern1->right_class_cnt,
+                "right_class_mapping");
 
             TEST_ASSERT_EQUAL_UINT8_ARRAY_MESSAGE(
-                    (uint8_t *)kern1->class_pair_values,
-                    (uint8_t *)kern2->class_pair_values,
-                    kern1->right_class_cnt * kern1->left_class_cnt,
-                    "class_pair_values");
+                (uint8_t *)kern1->class_pair_values,
+                (uint8_t *)kern2->class_pair_values,
+                kern1->right_class_cnt * kern1->left_class_cnt,
+                "class_pair_values");
         }
         else {
             TEST_ASSERT_EQUAL_PTR_MESSAGE(kern1, kern2, "kern");
         }
     }
-    else if (dsc1->kern_classes == 0 && dsc2->kern_classes == 0) {
+    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) {
+        if(kern1 != NULL && kern2 != NULL) {
             TEST_ASSERT_EQUAL_INT_MESSAGE(kern1->glyph_ids_size, kern2->glyph_ids_size, "glyph_ids_size");
             TEST_ASSERT_EQUAL_INT_MESSAGE(kern1->pair_cnt, kern2->pair_cnt, "pair_cnt");
 
             int ids_size;
 
-            if (kern1->glyph_ids_size == 0) {
+            if(kern1->glyph_ids_size == 0) {
                 ids_size = sizeof(int8_t) * 2 * kern1->pair_cnt;
             }
             else {
@@ -166,10 +180,10 @@ static int compare_fonts(lv_font_t * f1, lv_font_t * f2)
 
             TEST_ASSERT_EQUAL_UINT8_ARRAY_MESSAGE(kern1->glyph_ids, kern2->glyph_ids, ids_size, "glyph_ids");
             TEST_ASSERT_EQUAL_UINT8_ARRAY_MESSAGE(
-                    (uint8_t * ) kern1->values,
-                    (uint8_t * ) kern2->values,
-                    kern1->pair_cnt,
-                    "glyph_values");
+                (uint8_t *) kern1->values,
+                (uint8_t *) kern2->values,
+                kern1->pair_cnt,
+                "glyph_values");
         }
     }
 
@@ -177,14 +191,14 @@ static int compare_fonts(lv_font_t * f1, lv_font_t * f2)
     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(i < total_glyphs - 1) {
+            int size1 = glyph_dsc1[i + 1].bitmap_index - glyph_dsc1[i].bitmap_index;
 
-            if (size1 > 0) {
+            if(size1 > 0) {
                 TEST_ASSERT_EQUAL_UINT8_ARRAY_MESSAGE(
-                        dsc1->glyph_bitmap + glyph_dsc1[i].bitmap_index,
-                        dsc2->glyph_bitmap + glyph_dsc2[i].bitmap_index,
-                        size1 - 1, "glyph_bitmap");
+                    dsc1->glyph_bitmap + glyph_dsc1[i].bitmap_index,
+                    dsc2->glyph_bitmap + glyph_dsc2[i].bitmap_index,
+                    size1 - 1, "glyph_bitmap");
             }
         }
         TEST_ASSERT_EQUAL_INT_MESSAGE(glyph_dsc1[i].adv_w, glyph_dsc2[i].adv_w, "adv_w");
index f5eb0a4..73bdb0f 100644 (file)
@@ -8,32 +8,32 @@ void test_obj_tree_2(void);
 
 void test_obj_tree_1(void)
 {
-  TEST_ASSERT_EQUAL(lv_obj_get_child_cnt(lv_scr_act()), 0);
+    TEST_ASSERT_EQUAL(lv_obj_get_child_cnt(lv_scr_act()), 0);
 }
 
 void test_obj_tree_2(void)
 {
 
-  lv_obj_create(lv_scr_act());
-  lv_obj_t * o2 = lv_obj_create(lv_scr_act());
-  lv_obj_create(lv_scr_act());
-  TEST_ASSERT_EQUAL(lv_obj_get_child_cnt(lv_scr_act()), 3);
-  
-  lv_obj_del(o2);
-  TEST_ASSERT_EQUAL(lv_obj_get_child_cnt(lv_scr_act()), 2);
-  
-  lv_obj_clean(lv_scr_act());
-  TEST_ASSERT_EQUAL(lv_obj_get_child_cnt(lv_scr_act()), 0);
-  
- lv_color_t c1 = lv_color_hex(0x444444);
- lv_color_t c2 = lv_color_hex3(0x444);
- TEST_ASSERT_EQUAL_COLOR(c1, c2);
- 
- lv_obj_remove_style_all(lv_scr_act());
- lv_obj_set_style_bg_color(lv_scr_act(), lv_color_hex(0x112233), 0);
- lv_obj_set_style_bg_opa(lv_scr_act(), LV_OPA_COVER, 0);
- 
- //TEST_ASSERT_EQUAL_SCREENSHOT("scr1.png")
+    lv_obj_create(lv_scr_act());
+    lv_obj_t * o2 = lv_obj_create(lv_scr_act());
+    lv_obj_create(lv_scr_act());
+    TEST_ASSERT_EQUAL(lv_obj_get_child_cnt(lv_scr_act()), 3);
+
+    lv_obj_del(o2);
+    TEST_ASSERT_EQUAL(lv_obj_get_child_cnt(lv_scr_act()), 2);
+
+    lv_obj_clean(lv_scr_act());
+    TEST_ASSERT_EQUAL(lv_obj_get_child_cnt(lv_scr_act()), 0);
+
+    lv_color_t c1 = lv_color_hex(0x444444);
+    lv_color_t c2 = lv_color_hex3(0x444);
+    TEST_ASSERT_EQUAL_COLOR(c1, c2);
+
+    lv_obj_remove_style_all(lv_scr_act());
+    lv_obj_set_style_bg_color(lv_scr_act(), lv_color_hex(0x112233), 0);
+    lv_obj_set_style_bg_opa(lv_scr_act(), LV_OPA_COVER, 0);
+
+    //TEST_ASSERT_EQUAL_SCREENSHOT("scr1.png")
 }
 
 #endif
index 5ac10d6..0c87b31 100644 (file)
@@ -15,7 +15,7 @@ void test_snapshot_should_not_leak_memory(void)
     uint32_t final_available_memory = 0;
     lv_mem_monitor_t monitor;
 
-    lv_img_dsc_t *snapshots[NUM_SNAPSHOTS] = {NULL};
+    lv_img_dsc_t * snapshots[NUM_SNAPSHOTS] = {NULL};
 
     lv_mem_monitor(&monitor);
     initial_available_memory = monitor.free_size;
@@ -24,11 +24,11 @@ void test_snapshot_should_not_leak_memory(void)
         snapshots[idx] = lv_snapshot_take(lv_scr_act(), LV_IMG_CF_TRUE_COLOR_ALPHA);
         TEST_ASSERT_NOT_NULL(snapshots[idx]);
     }
-    
+
     for(idx = 0; idx < NUM_SNAPSHOTS; idx++) {
         lv_snapshot_free(snapshots[idx]);
     }
-    
+
     lv_mem_monitor(&monitor);
     final_available_memory = monitor.free_size;
 
index 4ad5ad2..76c1724 100644 (file)
@@ -40,4 +40,70 @@ void test_gradient_vertical_misalignment(void)
     }
 }
 
+void test_custom_prop_ids(void)
+{
+    uint8_t fake_flag = 0;
+    uint32_t initial_custom_props = lv_style_get_num_custom_props();
+    uint32_t max_props_to_register = 64;
+    for(uint32_t i = 0; i < max_props_to_register; i++) {
+        lv_style_prop_t prop = lv_style_register_prop(fake_flag);
+        /* Should have a higher index than the last built-in prop */
+        TEST_ASSERT_GREATER_THAN(_LV_STYLE_LAST_BUILT_IN_PROP, prop);
+        if(i == 0) {
+            /* Should be equal to the first expected index of a custom prop */
+            TEST_ASSERT_EQUAL(_LV_STYLE_NUM_BUILT_IN_PROPS + initial_custom_props, prop);
+        }
+        /*We should find our flags*/
+        TEST_ASSERT_EQUAL(fake_flag, _lv_style_prop_lookup_flags(prop));
+        if(fake_flag == 0xff)
+            fake_flag = 0;
+        else
+            fake_flag++;
+    }
+    TEST_ASSERT_EQUAL(initial_custom_props + max_props_to_register, lv_style_get_num_custom_props());
+    /*
+     * Check that the resizing algorithm works correctly, given that 64 props
+     * were registered + whatever's built-in. A failure here may just indicate
+     * that LVGL registers more built-in properties now and this needs adjustment.
+     */
+    extern uint32_t _lv_style_custom_prop_flag_lookup_table_size;
+    TEST_ASSERT_EQUAL(_lv_style_custom_prop_flag_lookup_table_size, 96);
+}
+
+void test_inherit_meta(void)
+{
+    lv_obj_t * parent = lv_obj_create(lv_scr_act());
+    lv_obj_t * child = lv_obj_create(parent);
+    lv_obj_t * grandchild = lv_label_create(child);
+    lv_obj_set_style_text_color(parent, lv_color_hex(0xff0000), LV_PART_MAIN);
+    lv_obj_set_local_style_prop_meta(child, LV_STYLE_TEXT_COLOR, LV_STYLE_PROP_META_INHERIT, LV_PART_MAIN);
+    TEST_ASSERT_EQUAL_HEX(lv_color_hex(0xff0000).full, lv_obj_get_style_text_color(grandchild, LV_PART_MAIN).full);
+}
+
+void test_id_meta_overrun(void)
+{
+    /* Test that property ID registration is blocked once the ID reaches into the meta bits */
+    lv_style_prop_t prop_id;
+    do {
+        prop_id = lv_style_register_prop(0);
+        if(prop_id != LV_STYLE_PROP_INV) {
+            TEST_ASSERT_EQUAL(0, prop_id & LV_STYLE_PROP_META_MASK);
+        }
+    } while(prop_id != LV_STYLE_PROP_INV);
+}
+
+void test_inherit_meta_with_lower_precedence_style(void)
+{
+    lv_obj_t * parent = lv_obj_create(lv_scr_act());
+    lv_obj_t * child = lv_obj_create(parent);
+    lv_obj_t * grandchild = lv_label_create(child);
+    lv_obj_set_style_text_color(parent, lv_color_hex(0xff0000), LV_PART_MAIN);
+    lv_style_t style;
+    lv_style_init(&style);
+    lv_style_set_text_color(&style, lv_color_hex(0xffffff));
+    lv_obj_set_local_style_prop_meta(child, LV_STYLE_TEXT_COLOR, LV_STYLE_PROP_META_INHERIT, LV_PART_MAIN);
+    lv_obj_add_style(child, &style, LV_PART_MAIN);
+    TEST_ASSERT_EQUAL_HEX(lv_color_hex(0xff0000).full, lv_obj_get_style_text_color(grandchild, LV_PART_MAIN).full);
+}
+
 #endif
index 07048ba..cfb4a1c 100644 (file)
@@ -9,8 +9,8 @@
 #define SWITCHES_CNT    10
 
 uint8_t value_changed_event_cnt = 0;
-lv_obj_t *scr = NULL;
-lv_obj_t *sw = NULL;
+lv_obj_t * scr = NULL;
+lv_obj_t * sw = NULL;
 
 void setUp(void)
 {
@@ -30,11 +30,11 @@ static void mouse_click_on_switch(void)
     lv_test_mouse_click_at(sw->coords.x1, sw->coords.y1);
 }
 
-static void event_handler(lv_event_t *e)
+static void event_handler(lv_event_t * e)
 {
     lv_event_code_t event = lv_event_get_code(e);
 
-    if (LV_EVENT_VALUE_CHANGED == event) {
+    if(LV_EVENT_VALUE_CHANGED == event) {
         value_changed_event_cnt++;
     }
 
@@ -52,23 +52,23 @@ void test_switch_should_not_leak_memory_after_deletion(void)
     uint32_t initial_available_memory = 0;
     uint32_t final_available_memory = 0;
     lv_mem_monitor_t monitor;
-    lv_obj_t *switches[SWITCHES_CNT] = {NULL};
+    lv_obj_t * switches[SWITCHES_CNT] = {NULL};
 
     lv_mem_monitor(&monitor);
     initial_available_memory = monitor.free_size;
-    
-    for (idx = 0; idx < SWITCHES_CNT; idx++) {
+
+    for(idx = 0; idx < SWITCHES_CNT; idx++) {
         switches[idx] = lv_switch_create(scr);
     }
-    
-    for (idx = 0; idx < SWITCHES_CNT; idx++) {
+
+    for(idx = 0; idx < SWITCHES_CNT; idx++) {
         lv_obj_del(switches[idx]);
     }
-    
+
     lv_mem_monitor(&monitor);
     final_available_memory = monitor.free_size;
 
-    LV_HEAP_CHECK(TEST_ASSERT_LESS_THAN(initial_available_memory, final_available_memory));
+    LV_HEAP_CHECK(TEST_ASSERT_LESS_OR_EQUAL(initial_available_memory, final_available_memory));
 }
 
 void test_switch_animation(void)
index 6dbad90..a855396 100644 (file)
@@ -73,8 +73,8 @@ void test_txt_should_identify_space_after_parameter(void)
 
 void test_txt_should_insert_string_into_another(void)
 {
-    const char *msg = "Hello ";
-    const char *suffix = "World";
+    const char * msg = "Hello ";
+    const char * suffix = "World";
     char target[20] = {0};
     size_t msg_len = strlen(msg);
 
@@ -87,7 +87,7 @@ void test_txt_should_insert_string_into_another(void)
 
 void test_txt_should_handle_null_pointers_when_inserting(void)
 {
-    const char *msg = "Hello ";
+    const char * msg = "Hello ";
     char target[20] = {0};
     size_t msg_len = strlen(msg);
 
@@ -194,7 +194,7 @@ void test_txt_get_encoded_next_detect_invalid_4_byte_input(void)
 /* See #2615 for more information */
 void test_txt_next_line_should_handle_empty_string(void)
 {
-    const lv_font_t *font_ptr = NULL;
+    const lv_font_t * font_ptr = NULL;
     lv_coord_t letter_space = 0;
     lv_coord_t max_width = 0;
     lv_text_flag_t flag = LV_TEXT_FLAG_NONE;
index 657c0ef..6906bd2 100644 (file)
@@ -73,7 +73,7 @@ bool lv_test_assert_img_eq(const char * fn_ref)
 
   lv_obj_invalidate(lv_scr_act());
   lv_refr_now(NULL);
-  
+
   extern lv_color_t test_fb[];
 
   screen_buf = (uint8_t *)test_fb;
@@ -85,18 +85,17 @@ bool lv_test_assert_img_eq(const char * fn_ref)
   int x, y, i_buf = 0;
   for (y = 0; y < p.height; y++) {
     png_byte* row = p.row_pointers[y];
-    //printf("\n");
-      
+
     for (x = 0; x < p.width; x++) {
       ptr_ref = &(row[x*3]);
       ptr_act = &(screen_buf[i_buf*4]);
-      
+
       uint32_t ref_px = 0;
       uint32_t act_px = 0;
       memcpy(&ref_px, ptr_ref, 3);
       memcpy(&act_px, ptr_act, 3);
       //printf("0xFF%06x, ", act_px);
-      
+
       uint8_t act_swap[3] = {ptr_act[2], ptr_act[1], ptr_act[0]};
 
       if(memcmp(act_swap, ptr_ref, 3) != 0) {
@@ -108,19 +107,17 @@ bool lv_test_assert_img_eq(const char * fn_ref)
     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);
-      TEST_PRINTF("Diff in %s at (%d;%d), %x instead of %x)", fn_ref, x, y, act_px, ref_px);
-      
+
       FILE * f = fopen("../test_screenshot_error.h", "w");
-      
+
+      fprintf(f, "//Diff in %s at (%d;%d), %x instead of %x)\n\n", fn_ref, x, y, act_px, ref_px);
       fprintf(f, "static const uint32_t test_screenshot_error_data[] = {\n");
-      
+
       i_buf = 0;
       for (y = 0; y < 480; y++) {
         fprintf(f, "\n");
@@ -133,7 +130,7 @@ bool lv_test_assert_img_eq(const char * fn_ref)
         }
       }
       fprintf(f, "};\n\n");
-      
+
       fprintf(f, "static lv_img_dsc_t test_screenshot_error_dsc = { \n"
       "  .header.w = 800,\n"
       "  .header.h = 480,\n"
@@ -146,14 +143,16 @@ bool lv_test_assert_img_eq(const char * fn_ref)
       "  lv_obj_t * img = lv_img_create(lv_scr_act());\n"
       "  lv_img_set_src(img, &test_screenshot_error_dsc);\n"
       "}\n");
-      
+
       fclose(f);
-      
-      return false;
+
   }
-  
-  return true;
-  
+
+
+  png_release(&p);
+
+  return !err;
+
 }
 
 /**********************
@@ -170,13 +169,13 @@ static int read_png_file(png_img_t * p, const char* file_name)
        TEST_PRINTF("%s", "PNG file %s could not be opened for reading");
         return -1;
     }
-    
+
     size_t rcnt = fread(header, 1, 8, fp);
     if (rcnt != 8 || png_sig_cmp((png_const_bytep)header, 0, 8)) {
         TEST_PRINTF("%s is not recognized as a PNG file", file_name);
         return -1;
     }
-    
+
     /*initialize stuff*/
     p->png_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL);
 
@@ -184,7 +183,7 @@ static int read_png_file(png_img_t * p, const char* file_name)
         TEST_PRINTF("%s", "png_create_read_struct failed");
         return -1;
     }
-    
+
     p->info_ptr = png_create_info_struct(p->png_ptr);
     if (!p->info_ptr) {
         TEST_PRINTF("%s", "png_create_info_struct failed");
@@ -228,7 +227,7 @@ 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);
 
     png_destroy_read_struct(&p->png_ptr, &p->info_ptr, NULL);
index f3d168c..0d30cee 100644 (file)
@@ -6,7 +6,7 @@
 extern "C" {
 #endif
 
-#include <stdbool.h> 
+#include <stdbool.h>
 #include "../../lvgl.h"
 
 bool lv_test_assert_img_eq(const char * fn_ref);
@@ -21,14 +21,14 @@ bool lv_test_assert_img_eq(const char * fn_ref);
                                                               TEST_IGNORE_MESSAGE("Requires 800x480 resolution"); \
                                                             } else {                                              \
                                                               TEST_ASSERT(lv_test_assert_img_eq(path));            \
-                                                            }                                                      
-                                                      
+                                                            }
+
 #  define TEST_ASSERT_EQUAL_SCREENSHOT_MESSAGE(path, msg)    if(LV_HOR_RES != 800 || LV_VER_RES != 480) {             \
                                                               TEST_PRINTF(msg);                                       \
                                                               TEST_IGNORE_MESSAGE("Requires 800x480 resolution");     \
                                                             } else {                                                  \
                                                               TEST_ASSERT_MESSAGE(lv_test_assert_img_eq(path), msg);  \
-                                                            }   
+                                                            }
 #endif
 
 #  define TEST_ASSERT_EQUAL_COLOR(c1, c2)                   TEST_ASSERT_EQUAL_UINT32(c1.full, c2.full)
index f7addb3..ff5ef9d 100644 (file)
@@ -270,6 +270,8 @@ QPY_SRCS = \
         ports/quectel/core/source/modG711.c \
         ports/quectel/core/source/modG729.c \
         ports/quectel/core/source/modcan_mcp2515.c \
+        ports/quectel/core/source/modextuart_wk2114.c \
+        ports/quectel/core/source/modextgpio_aw9523.c \
         ports/quectel/core/source/modalipay.c \
         ports/quectel/core/source/machine_key.c \
         ports/quectel/core/source/lpm_wakeup.c \
@@ -278,7 +280,7 @@ QPY_SRCS = \
         ports/quectel/core/source/machine_soft_spi.c \
         ports/quectel/core/source/modwlan.c\
         ports/quectel/core/source/code128_p.c \
-        
+        ports/quectel/core/source/machine_one_wire.c
         
 ifeq ($(CONFIG_QUECTHING), y)
 ifeq ($(strip $(PLAT)),RDA)
@@ -372,6 +374,8 @@ lib/lvgl/src/draw/lv_draw_label.c \
 lib/lvgl/src/draw/lv_draw_line.c \
 lib/lvgl/src/draw/lv_draw_mask.c \
 lib/lvgl/src/draw/lv_draw_rect.c \
+lib/lvgl/src/draw/lv_draw_transform.c \
+lib/lvgl/src/draw/lv_draw_layer.c \
 lib/lvgl/src/draw/lv_draw_triangle.c \
 lib/lvgl/src/draw/lv_img_buf.c \
 lib/lvgl/src/draw/lv_img_cache.c \
@@ -399,6 +403,8 @@ lib/lvgl/src/draw/sw/lv_draw_sw_rect.c \
 lib/lvgl/src/draw/sw/lv_draw_sw_polygon.c \
 lib/lvgl/src/draw/sw/lv_draw_sw_gradient.c \
 lib/lvgl/src/draw/sw/lv_draw_sw_dither.c \
+lib/lvgl/src/draw/sw/lv_draw_sw_transform.c \
+lib/lvgl/src/draw/sw/lv_draw_sw_layer.c \
 lib/lvgl/src/font/lv_font.c \
 lib/lvgl/src/font/lv_font_fmt_txt.c \
 lib/lvgl/src/font/lv_font_loader.c \
@@ -647,9 +653,7 @@ endif
 $(NAME)_COMPONENTS += utilities
 
 
-ifeq ($(CONFIG_AUDIO), y)
 $(NAME)_COMPONENTS += components/audio
-endif
 
 ifneq (,$(filter y,$(CONFIG_SPINAND) $(CONFIG_SPI_SDCARD)))
 $(NAME)_COMPONENTS += components/fs
index 9ec310f..2ac844c 100644 (file)
@@ -114,6 +114,8 @@ def setAutoConnect(profileID, enable):
 def setPDPContext(profileID, ipType, apn, username, password, authType):
     if profileID < 1 or profileID > 3:
         raise ValueError("invalid value, profileID should be in [1,3].")
+    if authType < 0 or authType >3:
+        raise ValueError("invalid value, authType should be in [0,3].")
     # Users can set apn, username, and password to None. 
     # When it is set to None, it means that the original values will not be changed and the original values will be used instead.
     if apn is None or username is None or password is None:
@@ -127,10 +129,10 @@ def setPDPContext(profileID, ipType, apn, username, password, authType):
         if password is None:
             password = pdp_context[3]
 
-    # if len(username) == 0 & len(password) == 0 & authType != 0:
-    #     authType = 0
-    # if (len(username) != 0 | len(password) != 0) & authType == 0:
-    #     authType = 2
+    if len(username) == 0 and len(password) == 0 and authType != 0:
+        authType = 0
+    if (len(username) != 0 or len(password) != 0) and authType == 0:
+        authType = 2
     return dial.setPDPContext(profileID, ipType, apn, username, password, authType)
 
 
diff --git a/2.sdk/Helios_SDK/services/microPython/ports/quectel/core/source/SL_Watch_Pedo_Kcal_Wrist_Sleep_Sway_L_Algorithm.h b/2.sdk/Helios_SDK/services/microPython/ports/quectel/core/source/SL_Watch_Pedo_Kcal_Wrist_Sleep_Sway_L_Algorithm.h
deleted file mode 100644 (file)
index 5f15c09..0000000
+++ /dev/null
@@ -1,356 +0,0 @@
-/* 
-Copyright (c) 2017 Silan MEMS. All Rights Reserved.
-*/
-
-#ifndef SL_Watch_PEDO_KCAL_WRIST_SLEEP_SWAY_L_ALGO_DRV__H__
-#define SL_Watch_PEDO_KCAL_WRIST_SLEEP_SWAY_L_ALGO_DRV__H__
-
-#define SL_Sensor_Algo_Release_Enable 0x01
-//0x00: for debug
-//0x01: release version
-
-/***ʹÓÃÇý¶¯Ç°Çë¸ù¾Ýʵ¼Ê½ÓÏßÇé¿öÅäÖÃ******/
-/**SC7A20µÄSDO ½Å½ÓµØ£º  0****************/
-/**SC7A20µÄSDO ½Å½ÓµçÔ´£º1****************/
-#define SL_SC7A20_SDO_VDD_GND            1
-/*****************************************/
-
-/***ʹÓÃÇý¶¯Ç°Çë¸ù¾Ýʵ¼ÊIICÇé¿ö½øÐÐÅäÖÃ***/
-/**SC7A20µÄIIC ½Ó¿ÚµØÖ·ÀàÐÍ 7bits£º  0****/
-/**SC7A20µÄIIC ½Ó¿ÚµØÖ·ÀàÐÍ 8bits£º  1****/
-#define SL_SC7A20_IIC_7BITS_8BITS        1
-/*****************************************/
-
-#if SL_SC7A20_SDO_VDD_GND==0
-#define SL_SC7A20_IIC_7BITS_ADDR        0x18
-#define SL_SC7A20_IIC_8BITS_WRITE_ADDR  0x30
-#define SL_SC7A20_IIC_8BITS_READ_ADDR   0x31
-#else
-#define SL_SC7A20_IIC_7BITS_ADDR        0x19
-#define SL_SC7A20_IIC_8BITS_WRITE_ADDR  0x32
-#define SL_SC7A20_IIC_8BITS_READ_ADDR   0x33
-#endif
-
-#if SL_SC7A20_IIC_7BITS_8BITS==0
-#define SL_SC7A20_IIC_ADDRESS        SL_SC7A20_IIC_7BITS_ADDR
-#else
-#define SL_SC7A20_IIC_WRITE_ADDRESS  SL_SC7A20_IIC_8BITS_WRITE_ADDR
-#define SL_SC7A20_IIC_READ_ADDRESS   SL_SC7A20_IIC_8BITS_READ_ADDR
-#endif
-
-#define SL_SC7A20_CHIP_ID_ADDR       (unsigned char)0x0F
-#define SL_SC7A20_CHIP_ID_VALUE      (unsigned char)0x11
-#define SL_SC7A20_VERSION_ADDR       (unsigned char)0x70       
-#define SL_SC7A20_VERSION_VALUE      (unsigned char)0x11
-#define SL_SC7A20E_VERSION_VALUE     (unsigned char)0x26
-
-// typedef enum {FALSE = 0,TRUE = !FALSE} bool;
-// ;
-/********¿Í»§ÐèÒª½øÐеÄIIC½Ó¿Ú·â°üº¯Êý****************/
-extern unsigned char SL_SC7A20_I2c_Spi_Write(bool sl_spi_iic,unsigned char reg, unsigned char dat);
-extern unsigned char SL_SC7A20_I2c_Spi_Read(bool sl_spi_iic,unsigned char reg, unsigned char len, unsigned char *buf);
-/**SL_SC7A20_I2c_Spi_Write º¯ÊýÖУ¬ sl_spi_iic:0=spi  1=i2c  Reg£º¼Ä´æÆ÷µØÖ·   dat£º¼Ä´æÆ÷µÄÅäÖÃÖµ*******************/
-/**SL_SC7A20_I2c_Spi_Write º¯Êý ÊÇÒ»¸öµ¥´ÎдµÄº¯Êý*******************************************************************/
-/***SL_SC7A20_I2c_Spi_Read º¯ÊýÖУ¬ sl_spi_iic:0=spi  1=i2c Reg Í¬ÉÏ£¬len:¶ÁÈ¡Êý¾Ý³¤¶È£¬buf:´æ´¢Êý¾ÝÊ×µØÖ·£¨Ö¸Õ룩***/
-/***SL_SC7A20_I2c_Spi_Read º¯Êý ÊÇ¿ÉÒÔ½øÐе¥´Î¶Á»ò¶à´ÎÁ¬Ðø¶ÁÈ¡µÄº¯Êý*************************************************/
-
-/*************Çý¶¯³õʼ»¯º¯Êý**************/
-signed char SL_SC7A20_Driver_Init(bool Sl_spi_iic_init,unsigned char Sl_pull_up_mode);
-/***ÊäÈë²ÎÊý:1,Sl_spi_iic_init:0-1***2,PULL_UP_MODE:0x00 0x08 0x04 0x0c********/
-/****Sl_spi_iic_init=0£ºSPI MODE, Sl_pull_up_mode config failed****************/
-/****Sl_spi_iic_init=1£ºIIC MODE***********************************************/
-/****Sl_pull_up_mode=0x00: SDO  I2C  pull up***********************************/
-/****Sl_pull_up_mode=0x08: I2C  pull up and  SDO  open drain*******************/
-/****Sl_pull_up_mode=0x04: SDO  pull up and  I2C  open drain*******************/
-/****Sl_pull_up_mode=0x0C: SDO  I2C  open drain********************************/
-/****SDO½Å½ÓµØ£¬ÍƼö¹Ø±ÕSDOÄÚ²¿ÉÏÀ­µç×è****************************************/
-/****SPIͨѶ£¬ÍƼö¹Ø±ÕSDA£¬SCLÄÚ²¿ÉÏÀ­µç×裬SDOÄÚ²¿ÉÏÀ­µç×è»á×Ô¶¯¹Ø±Õ**********/
-
-/*************·µ»ØÊý¾ÝÇé¿öÈçÏÂ*****************/
-/**return : 0x11/0x26 ±íʾCHIP ID Õý³£*********/
-/**return : 0         ±íʾ¶ÁÈ¡Òì³£*************/
-/**return :-1;        SPI Í¨ÐÅÎÊÌâ*************/
-/**return :-2;        IIC Í¨ÐÅÎÊÌâ*************/
-/**return :-3;        Á¬Ðø¶ÁÈ¡ Í¨ÐÅÎÊÌâ********/
-
-/***************Ö´ÐÐË㷨ǰÐèÒª¶ÁÈ¡FIFOÊý¾Ý*****/
-/***************FIFOÊý¾Ý¶ÁÈ¡ºó£¬FIFO»áÇå¿Õ*****/
-/***************ËùÒÔFIFOÖ»Äܶ¨Ê±¶Áȡһ´Î*******/
-unsigned char SL_SC7A20_Read_FIFO(void);
-/**return : FIFO_LEN    ±íʾÊý×鳤¶È***********/
-
-
-/****˵Ã÷:¸Ãº¯ÊýÐèÒª¶¨Ê±Ö´ÐÐ,´Ó¶ø±£Ö¤Ëã·¨Ö´Ðе½Î»**/
-/***************Ö´ÐÐËã·¨»ñÈ¡¼Æ²½½á¹û***************/
-unsigned int SL_Watch_Kcal_Pedo_Algo(bool sl_music_motor_en);
-/***sl_music_motor_en=0: Âí´ïµç»úºÍÒôÀÖ¹¦ÄÜδ´ò¿ª**/
-/***sl_music_motor_en=1: Âí´ïµç»úºÍÒôÀÖ¹¦ÄÜÒÑ´ò¿ª**/
-/**************»ñÈ¡µ±ÌìµÄµ±Ç°¼Æ²½Öµ****************/
-/*************Êä³öÊý¾ÝΪ£º¼Æ²½Öµ(²½)***************/
-
-/***************»ñÈ¡ÈýÖáԭʼÊý¾Ý***************/
-unsigned char SL_SC7A20_GET_FIFO_Buf(signed short *sl_x_buf,signed short *sl_y_buf,signed short *sl_z_buf,bool filter_en);
-/****************Ö´ÐÐËã·¨ºóÖ´ÐиÃÃüÁî**********/
-/**x_buf  y_buf  z_buf : ³¤¶È32µÄÊý×éÊ×µØÖ·****/
-/**filter_en£º0 µÍͨÂ˲¨½ûÖ¹ 1£ºµÍͨÂ˲¨Ê¹ÄÜ***/
-/****************·µ»ØÊý¾ÝÇé¿öÈçÏÂ**************/
-/**return : FIFO_LEN    ±íʾÊý×鳤¶È***********/
-
-
-/******************¸´Î»¼Æ²½Öµ************************/
-void SL_Pedo_Kcal_ResetStepCount(void);
-/**********ÊäÈëÊý¾ÝΪ£ºÎÞ******Êä³öÊý¾ÝΪ£ºÎÞ********/
-/*ʹÓ÷½·¨: ÏµÍ³Ê±¼äµ½µÚ¶þÌìʱ£¬µ÷Óøú¯ÊýÇå³ý¼Æ²½Öµ*/
-
-/*******************¼Æ²½×´Ì¬¸´Î»**********************/
-void SL_Pedo_WorkMode_Reset(void);
-/******************ÊäÈë²ÎÊý£ºÎÞ***********************/
-/******************Êä³öÖµ²ÎÊý£ºÎÞ*********************/
-
-/******************Éý¼¶ºó£¬ÉèÖüƲ½Öµ,¾àÀë,ÈÈÁ¿************************/
-/******************Éý¼¶ºó£¬ÇëÔÚ³õʼ»¯º¯Êýºó£¬Ôö¼Ó¸Ãº¯Êý****************/
-void SL_Pedo_StepCount_Set(unsigned int sl_pedo_value,unsigned int sl_dis_value,unsigned int sl_kcal_value);
-/**********ÊäÈëÊý¾ÝΪ£ºsl_pedo_value  ¼Æ²½Öµ*****/
-/**********ÊäÈëÊý¾ÝΪ£ºsl_dis_value   ¾àÀëÖµ*****/
-/**********ÊäÈëÊý¾ÝΪ£ºsl_kcal_value  ÈÈÁ¿Öµ*****/
-
-/******************¼Æ²½ÁéÃô¶ÈÉèÖÃ********************/
-void SL_PEDO_TH_SET(unsigned char sl_pedo_amp,unsigned char sl_pedo_th,unsigned char sl_pedo_weak,unsigned char sl_zcr_lel,unsigned char sl_scope_lel);
-/******sl_pedo_amp>4&&sl_pedo_amp<201**************************/
-/******sl_pedo_amp:ԽСÁéÃô¶ÈÔ½¸ß£¬Ô½ÈÝÒ׼Ʋ½******************/
-/******sl_pedo_amp:Ô½´óÁéÃô¶ÈÔ½¸ß£¬Ô½ÄѼƲ½********************/
-/******sl_pedo_amp:ĬÈÏÖµ26£¬²»ÉèÖþÍÊÇ26**********************/
-
-/******sl_pedo_th>5&&sl_pedo_th<50*****************************/
-/******sl_pedo_th:ԽСÁéÃô¶ÈÔ½¸ß£¬Ô½ÈÝÒ׼Ʋ½*******************/
-/******sl_pedo_th:Ô½´óÁéÃô¶ÈÔ½¸ß£¬Ô½ÄѼƲ½*********************/
-/******sl_pedo_th:ĬÈÏÖµ10£¬²»ÉèÖþÍÊÇ10***********************/
-
-/******sl_pedo_weak>=0&&sl_pedo_weak<6*************************/
-/******sl_pedo_th:0,²»´ò¿ªÇá΢×ß·¼Æ²½¹¦ÄÜ*********************/
-/******sl_pedo_th:1,´ò¿ªÇá΢×ß·¼Æ²½¹¦ÄÜ***********************/
-/******sl_pedo_th:2,´ò¿ªÇá΢×ß·¼Æ²½¹¦ÄÜ***********************/
-/******sl_pedo_th:3,´ò¿ªÇá΢×ß·¼Æ²½¹¦ÄÜ***********************/
-/******sl_pedo_th:4,´ò¿ªÇá΢×ß·¼Æ²½¹¦ÄÜ***********************/
-/******sl_pedo_th:5,´ò¿ªÇá΢×ß·¼Æ²½¹¦ÄÜ***********************/
-/******sl_pedo_th:ĬÈÏÖµ0,ÉèÖõÄÖµÔ½´ó£¬¼ì²â¼Æ²½µÄÔ½ÁéÃô*******/
-
-/*****sl_zcr_lel>=0&&sl_zcr_lel<=255***************************/
-/*****sl_zcr_lel:ĬÈÏÖµ=20,ÉèÖõÄֵԽС£¬Ô½ÈÝÒׯÁ±ÎÀ®°ÈÕð¶¯****/
-/*****Ò»¶¨Ê±¼äÄڵĹýÁãÂʼÆËã***********************************/
-
-/*****sl_scope_lel>=0&&sl_scope_lel<=255***********************/
-/*****ÕûÌåÊý¾Ý·ù¶ÈãÐÖµ*****************************************/
-
-
-/*******¼Æ²½Ö÷ÖáÉèÖÃ****************/
-void SL_PEDO_SET_AXIS(unsigned char sl_xyz);
-/***sl_xyz:0  xÖá*******************/
-/***sl_xyz:1  yÖá*******************/
-/***sl_xyz:2  zÖá*******************/
-/***sl_xyz:3  Ëã·¨¾ö¶¨**************/
-
-/*ÉèÖÃÔ˶¯¼ì²â·ù¶ÈãÐÖµºÍʱ¼äãÐÖµ****/
-void SL_PEDO_INT_SET(unsigned char V_TH,unsigned char T_TH,bool INT_EN);
-/***V_TH:0  0-127************************************/
-/***T_TH:1  0-127************************************/
-/***INT_EN:0 ¹Ø±ÕÖжϹ¦ÄÜ£¬1£¬´ò¿ªÖжÏ״̬¼à²â¹¦ÄÜ***/
-/***USE AOI2 INT*************************************/
-
-/*ÉèÖÃÔ˶¯×´Ì¬¶ÁÈ¡******************/
-bool SL_INT_STATUS_READ(void);
-/*0£º  Ã»ÓÐÔ˶¯*********************/
-/*1£º  ÓÐÔ˶¯***********************/
-/*¹Ø±ÕÖжϹ¦ÄÜÇé¿öÏ£¬Ò»Ö±Êä³ö1*****/
-
-/***********¹Ø±ÕIICÉ豸**************/
-/***********Power down º¯Êý**********/
-/********²»Ê¹ÓøÃÉ豸Çé¿öÏÂ**********/
-/****ÈçÐèÖØÆô£¬Ê¹ÓÃÇý¶¯³õʼ»¯º¯Êý****/
-bool  SL_SC7A20_Power_Down(void);
-/*************ÊäÈë²ÎÊý:ÎÞ************/
-/**********·µ»Ø²ÎÊýÇé¿ö˵Ã÷**********/
-/**return  1: Power Down Success*****/
-/**return  0: Power Down Fail********/
-
-
-/*********´«¸ÐÆ÷µÄ¹¤×÷ƵÂÊÉèÖÃ***********/
-void SC7A20_ODR_SET(bool sl_odr);//10 50/25
-/**sl_odr:0 10Hz(SC7A20E) 25Hz(SC7A20)***/
-/**sl_odr:1 25Hz(SC7A20E) 50Hz(SC7A20)***/
-
-
-
-
-/*************³õʼ»¯¸öÈ˲ÎÊý*************/
-/**²ÎÊý³õʼ»¯£¬ÓÃÓÚÈÈÁ¿£¬¾àÀë¼ÆËã********/
-void SL_Pedo_Person_Inf_Init(unsigned char *Person_Inf_Init);
-/*********ÊäÈëÖ¸Õë²ÎÊý·Ö±ðÊÇ:Éí¸ß ÌåÖØ ÄêÁä ÐÔ±ð***¾ÙÀý:178,60,26 1*********/
-/**Éí¸ß·¶Î§:  30cm ~ 250cm  ***********/
-/**ÌåÖØ·¶Î§:  10Kg ~ 200Kg  ***********/
-/**ÄêÁ䷶Χ:  3Ëê  ~ 150Ëê  ***********/
-/**ÐÔ±ð·¶Î§:  0 ~ 1    0:Å® 1:ÄР  ****/
-
-/*********************»ñÈ¡Ô˶¯×´Ì¬Öµ**********************/
-unsigned char SL_Pedo_GetMotion_Status(void);
-/**********ÊäÈëÊý¾ÝΪ£ºÎÞ*********************************/
-/**********Êä³öÊý¾ÝΪ£º0 ~ 3 *****************************/
-/**Êä³öÊý¾ÝΪ£º0   *¾²Ö¹»ò¾²×ø**********/
-/**Êä³öÊý¾ÝΪ£º1   *Âý×ß»òÉ¢²½**********/
-/**Êä³öÊý¾ÝΪ£º2   *Õý³£×ß·************/
-/**Êä³öÊý¾ÝΪ£º3   *Åܲ½»ò¾çÁÒÔ˶¯******/
-
-/**************»ñÈ¡½ØÖ¹µ±Ç°µ±ÌìµÄÐÐ×ß¾àÀë*****************/
-unsigned int SL_Pedo_Step_Get_Distance(void);
-/*******************ÊäÈëÊý¾ÝΪ£ºÎÞ************************/
-/*******************Êä³öÊý¾ÝΪ£ºµ±ÌìÐÐ×ß¾àÀë *************/
-/*******************µ¥Î»:       ·ÖÃ×(dm)******************/
-
-/**************»ñÈ¡½ØÖ¹µ±Ç°µ±ÌìµÄÈÈÁ¿ÏûºÄ*****************/
-unsigned int SL_Pedo_Step_Get_KCal(void);
-/*******************ÊäÈëÊý¾ÝΪ£ºÎÞ************************/
-/*******************Êä³öÊý¾ÝΪ£ºµ±ÌìÈÈÁ¿ÏûºÄÖµ ***********/
-/*********µ¥Î»: ´ó¿¨     1¸öµ¥Î»=0.1´ó¿¨******************/
-
-/**************»ñÈ¡×î½üÒ»¶Îʱ¼äµÄ×ß·ƽ¾ù·ù¶È*************/
-unsigned short SL_Pedo_Step_Get_Avg_Amp(void);
-/********************ÊäÈëÊý¾ÝΪ£ºÎÞ***********************/
-/***********************1LSB¡ÖXXXmg************************/
-
-/***********************»ñÈ¡µ±Ç°×ß·ƽ¾ù²½Æµ**************/
-unsigned char SL_Pedo_Step_Get_Step_Per_Min(void);
-/********************ÊäÈëÊý¾ÝΪ£ºÎÞ***********************/
-/********************Êä³öÊý¾ÝΪ£ºXXX²½/·ÖÖÓ **************/
-
-/***********************»ñÈ¡µ±Ç°µÄÔ˶¯µÈ¼¶****************/
-unsigned char SL_Pedo_Step_Get_Motion_Degree(void);
-/********************ÊäÈëÊý¾ÝΪ£ºÎÞ***********************/
-/********************Êä³öÊý¾ÝΪ£º0-25 ********************/
-
-
-/**********̧ÊÖÁÁÆÁËã·¨**********/
-
-/*****************̧ÊÖÁÁÆÁËã·¨³õʼ»¯º¯Êý****************/
-void SL_Turn_Wrist_Init(unsigned char *SL_Turn_Wrist_Para);
-/************ÊäÈë²ÎÊý£º*************/
-/******SL_Turn_Wrist_Para[0]:¼ÓËٶȼÆÌùƬλÖÃÉèÖà 0--7********/
-/******SL_Turn_Wrist_Para[1]:̧ÊÖÁÁÆÁÁéÃô¶ÈÉèÖà   1--5********/
-/******SL_Turn_Wrist_Para[2]:ˮƽ̧ÊÖÁÁÆÁʹÄÜ¿ØÖÆÎ»0--1********/
-
-/*************ÈýÖá¼ÓËٶȼÆÌùƬλÖÃÉèÖÃ*************************/
-/***SL_Turn_Wrist_Para[0]£ºÉ趨ֵµÄ·¶Î§Îª: 0 ~ 7 **************/
-/***Çë²Î¿¼Îĵµ:Silan_MEMS_ÊÖ»·Ë㷨˵Ã÷Êé_V1.1.pdf**************/
-
-/***SL_Turn_Wrist_Para[1]:É趨ֵµÄ·¶Î§Îª: 1 ~ 5 **/
-/*********ĬÈÏֵΪ£º3   ÖеÈÁéÃô¶È****************/
-/*********É趨ֵΪ£º1   ×îµÍÁéÃô¶È****************/
-/*********ĬÈÏֵΪ£º5   ×î¸ßÁéÃô¶È****************/
-/*********É趨ֵΪ£º1(×î³Ù¶Û)~5(×îÁéÃô)***********/
-
-/******SL_Turn_Wrist_Para[2]:ˮƽ̧ÊÖÁÁÆÁʹÄÜ¿ØÖÆÎ»0--1*******/
-/******0£º½ûֹˮƽ̧ÊÖ¹¦ÄÜ********/
-/******1£ºÊ¹ÄÜˮƽ̧ÊÖ¹¦ÄÜ********/
-
-
-
-/*****************̧ÊÖÁÁÆÁ״̬»ñÈ¡º¯Êý****************/
-signed char SL_Watch_Wrist_Algo(void);
-/***********ÊäÈë²ÎÊý£ºÎÞ***********/
-/***********·µ»Ø²ÎÊýÇé¿ö˵Ã÷*******/
-/**Return:  2     ±¸×¢ËµÃ÷:ÆÁÄ»µãÁÁºóÐèÒª¹Ø±Õ*********/
-/**Return:  1     ±¸×¢ËµÃ÷:ÆÁÄ»ÐèÒªµãÁÁ***************/
-/**Return:  0     ±¸×¢ËµÃ÷:ÆÁÄ»²»ÐèÒªµãÁÁ*************/
-/**Return: -1     ±¸×¢ËµÃ÷:δ³õʼ»¯»ò³õʼ»¯Ê§°Ü*******/
-
-/*****************̧ÊÖÁÁÆÁ״̬¸´Î»********************/
-//void SL_Turn_Wrist_WorkMode_Reset(void);
-/******************ÊäÈë²ÎÊý£ºÎÞ***********************/
-/******************Êä³öÖµ²ÎÊý£ºÎÞ*********************/
-
-
-//3-12
-//1-10
-//0-10
-/******************˯Ãß²ÎÊýÉèÖÃ********************/
-void SL_Sleep_Para(unsigned char adom_time_th,unsigned char sleep_vpp_th,unsigned char sleep_time_th);
-/**************************Åå´÷¼ì²âµÄʱ³¤***********************/
-/******adom_time_th:0-255 min***********************************/
-/******adom_time_th:δ»î¶¯µÄʱ¼ä£¬´óÓÚÉèÖÃãÐÖµ²ÅÄÜÈÏΪδÅå´÷****/
-/******adom_time_th:ÉèÖÃֵԽС£¬Ô½ÈÝÒ׳öÏÖδÅå´÷Çé¿ö************/
-
-/**************************˯ÃßÖмäµããÐÖµ***********************/
-/******sleep_vpp_th:ԽСÁéÃô¶ÈÔ½¸ß£¬Ô½ÈÝÒ×˯Ãß״̬Çл»**********/
-/******sleep_vpp_th:Ô½´óÁéÃô¶ÈÔ½µÍ£¬Ô½ÄÑ˯Ãß״̬Çл»************/
-/******sleep_vpp_th:ĬÈÏÖµ10£¬²»ÉèÖþÍÊÇ10**********************/
-
-/**************************״̬Çл»×îСʱ¼ä*********************/
-/******sleep_time_th:¸ÃֵԽС£¬Ë¯Ãß״̬Çл»µÄËùÐèʱ¼ä¾ÍÔ½¶Ì*****/
-/******sleep_time_th:¸ÃÖµÔ½´ó£¬Ë¯Ãß״̬Çл»µÄËùÐèʱ¼ä¾ÍÔ½³¤*****/
-/******sleep_time_th:ĬÈÏÖµ1£¬²»ÉèÖþÍÊÇ1***********************/
-
-
-/***************»ñÈ¡µ±Ç°µÄ˯Ãß״̬*****************/
-unsigned char SL_Sleep_GetStatus(unsigned char SL_Sys_Time);
-/*******SL_Sys_Time£ºµ±Ç°µÄʱ¼ä£¬ÒÔСʱΪµ¥Î»******/
-/*******È«ÌìµÄÊäÈëʱ¼ä·¶Î§Îª£º0-23 ****************/
-/***************Êä³öÊý¾Ý·¶Î§£º0-7******************/
-/***************0£ºÇåÐÑ״̬************************/
-/***************7£ºÉî¶È˯Ãß************************/
-
-/***************»ñÈ¡µ±Ç°µÄ»î¶¯µÈ¼¶*****************/
-unsigned char SL_Sleep_Active_Degree(unsigned char mode);
-/***************mode£º0 ¶¨Ê±Æ÷0.5sÖе÷ÓÃ***********/
-/***************mode£º1 ¶¨Ê±Æ÷1minÖе÷ÓÃ***********/
-/***************Êä³öÊý¾Ý·¶Î§£º0-255****************/
-/***************0£º¾²Ö¹****************************/
-/*************255£ºÔ˶¯****************************/
-
-unsigned char SL_Sleep_Get_Active_Degree(void);
-/***************mode£º0 ¶¨Ê±Æ÷0.5sÖе÷ÓÃ***********/
-/***************mode£º1 ¶¨Ê±Æ÷1minÖе÷ÓÃ***********/
-/***************Êä³öÊý¾Ý·¶Î§£º0-255****************/
-/***************0£º¾²Ö¹****************************/
-/*************255£ºÔ˶¯****************************/
-
-/***************»ñÈ¡µ±Ç°µÄÅå´÷µÄÇé¿ö***************/
-unsigned char SL_Adom_GetStatus(void);
-/***************0£ºÎ´Åå´÷**************************/
-/***************1£ºÒÑÅå´÷**************************/
-
-/***************»ñÈ¡µ±Ç°µÄÅå´÷µÄÇé¿ö***************/
-unsigned char SL_In_Sleep_Status(void);
-/***************0£ºout sleep**********************/
-/***************1£ºin sleep***********************/
-
-/**************************·­×ª¹¦ÄÜ************************/
-bool SL_Get_Clock_Status(bool open_close);
-/***********ÊäÈë²ÎÊý£ºsensor_pos***********/
-/****sensor_pos:1 open  ¼ì²âÊÇ·ñÒª¹Ø±ÕʱÊäÈë 1*************/
-/****sensor_pos:0 close ¹Ø±ÕÄÖÁåʱʱ    ÊäÈë 0*************/
-/*********************·µ»Ø²ÎÊýÇé¿ö˵Ã÷*********************/
-/***********************·­×ª¹¦Äܼì²â***********************/
-/**Return:  1     ±¸×¢ËµÃ÷:ÆÁÄ»ÒÑ·­×ª£¬¹Ø±ÕÄÖÖÓ************/
-/**Return:  0     ±¸×¢ËµÃ÷:ÆÁĻδ·­×ª£¬²»¹Ø±ÕÄÖÖÓ**********/
-
-
-/**************************Ò¡»Î¹¦ÄÜ************************/
-bool SL_Get_Phone_Answer_Status(unsigned char Sway_Degree,unsigned char Sway_Num);
-/***********ÊäÈë²ÎÊý£ºÒ¡»ÎµÈ¼¶0--10  Ò¡»ÎÊýÁ¿0--10***********************/
-/***Ò¡»ÎµÈ¼¶£ºÉèÖÃֵԽС£¬ÐèÒªÒ¡»ÎµÄ·ù¶ÈԽС£¬Ô½ÈÝÒ×´¥·¢½ÓÌý¶¯×÷*********/
-/***Ò¡»ÎÊýÁ¿£ºÉèÖÃֵԽС£¬ÐèÒªÒ¡»ÎµÄ´ÎÊýÔ½ÉÙ£¬Ô½ÈÝÒ×´¥·¢½ÓÌý¶¯×÷*********/
-/***********·µ»Ø²ÎÊýÇé¿ö˵Ã÷*******************************/
-/**Return:  1     ±¸×¢ËµÃ÷:Ò¡»Î¶¯×÷³ÉÁ¢£¬½ÓÌýµç»°**********/
-/**Return:  0     ±¸×¢ËµÃ÷:Ò¡»Î¶¯×÷²»³ÉÁ¢£¬²»½ÓÌýµç»°******/
-
-
-/************¼Ó²âÏîÄ¿¿Í»§¶Ë²âÊÔ***********/
-/***³õʼ»¯µÄʱºòµ÷ÓÃÓÃÓÚÅжÏFIFOÊÇ·ñÕý³£**/
-bool SL_SC7A20_FIFO_TEST(void);
-/*************ÊäÈë²ÎÊý:ÎÞ*****************/
-/*************·µ»ØÊý¾ÝÇé¿öÈçÏÂ************/
-/**return :1  FIFO Òì³£*******************/
-/**return :0  FIFO Õý³£*******************/
-#endif/****SL_Watch_ALGO_DRV__H__*********/
-
-
-
diff --git a/2.sdk/Helios_SDK/services/microPython/ports/quectel/core/source/SL_Watch_Pedo_Kcal_Wrist_Sleep_Sway_L_Application.h b/2.sdk/Helios_SDK/services/microPython/ports/quectel/core/source/SL_Watch_Pedo_Kcal_Wrist_Sleep_Sway_L_Application.h
deleted file mode 100644 (file)
index d5a6983..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-
-#ifndef SL_Watch_Pedo_Kcal_Wrist_Sleep_Sway_L_Application__H__
-#define SL_Watch_Pedo_Kcal_Wrist_Sleep_Sway_L_Application__H__
-
-
-extern signed char   SL_SC7A20_PEDO_KCAL_WRIST_SLEEP_SWAY_L_INIT(void);
-extern unsigned int  SL_SC7A20_PEDO_KCAL_WRIST_SLEEP_SWAY_L_ALGO(void);
-
-
-#endif
index 4c544f4..9ff5e08 100644 (file)
@@ -274,6 +274,33 @@ int asynch_open_pa_init(void) {
        return ret;
 }
 
+#if defined(BOARD_EC600MCN_CC_EXT) || defined(BOARD_EC600MCN_LF_SLPOC) || defined(BOARD_EC600MCN_LE_POC_QS)
+
+void user_audio_speakerpa_callback(unsigned int event)
+{
+       HELIOS_AUDIO_LOG("g_gpio_pa{%d],event[%d]\n",g_gpio_pa, event);
+       if(g_gpio_pa != -1)
+       {
+               if (event == 1)
+               {
+                       //打开PA
+                       audio_open_power_amplifier();
+                       HELIOS_AUDIO_LOG("audio set high, event 1.\r\n");
+           } else {
+              //关闭PA
+                   set_clk_low();
+                       HELIOS_AUDIO_LOG("audio set low, event 0.\r\n");
+               }
+       }
+       if (g_audio_speakerpa_callback)
+       {
+               mp_sched_schedule_ex(g_audio_speakerpa_callback, mp_obj_new_int(event));
+       }
+}
+
+#else
+
+
 void user_audio_speakerpa_callback(unsigned int event)
 {
        uint8_t pa_ctrl;
@@ -308,6 +335,8 @@ void user_audio_speakerpa_callback(unsigned int event)
        }
 }
 
+#endif
+
 #if defined (PLAT_ASR) || defined(PLAT_Unisoc) || defined(PLAT_ASR_1606) || defined(PLAT_Unisoc_8850) || defined(PLAT_EIGEN)  || defined(PLAT_Unisoc_8910_R05)
 STATIC mp_obj_t helios_set_pa(size_t n_args, const mp_obj_t *args)
 {
@@ -338,6 +367,9 @@ STATIC mp_obj_t helios_set_pa(size_t n_args, const mp_obj_t *args)
        ret = Helios_GPIO_Init(g_gpio_pa, &gpio_struct);//Helios_Audio_SetPa(g_gpio_pa);
        if (ret != 0)
        {
+#if defined(BOARD_EC600MCN_CC_EXT) || defined(BOARD_EC600MCN_LF_SLPOC)
+               Helios_Audio_SetPaCallback(HELIOS_OUTPUT_RECEIVER, user_audio_speakerpa_callback);
+#endif
                return mp_obj_new_int(0);
        }
        return mp_obj_new_int(1);
@@ -529,7 +561,11 @@ STATIC mp_obj_t audio_make_new(const mp_obj_type_t *type, size_t n_args, size_t
        #if defined(PLAT_ASR) || defined(PLAT_Unisoc) || defined(PLAT_ASR_1606) || defined(PLAT_EIGEN) || defined(PLAT_Unisoc_8850) || defined(PLAT_Unisoc_8910_R05)
 #if CONFIG_AUDIO
        extern int Helios_Audio_SetPaCallback_py(Helios_AudOutputType type, helios_audio_pa_cb_t cb);
+#if defined(BOARD_EC600MCN_CC_EXT) || defined(BOARD_EC600MCN_LF_SLPOC)
+       Helios_Audio_SetPaCallback((Helios_AudOutputType)device, user_audio_speakerpa_callback);
+#else
        Helios_Audio_SetPaCallback_py((Helios_AudOutputType)device, user_audio_speakerpa_callback);
+#endif
 #else
        Helios_Audio_SetPaCallback((Helios_AudOutputType)device, user_audio_speakerpa_callback);
 #endif
index b81326f..5e9786d 100644 (file)
@@ -292,6 +292,33 @@ void qpy_callback_deal_thread(void * args_in)
                                }
                 break;
                                #endif
+                #if MICROPY_QPY_MODULE_EXTUART_WK2114
+                               case CALLBACK_TYPE_ID_WK2114:
+                               {
+                                       st_CallBack_Wk2114 *cb_msg = (st_CallBack_Wk2114 *)msg.msg;
+                    mp_obj_t key_list[3] = {
+                                       mp_obj_new_int(cb_msg->int_type),
+                                       mp_obj_new_int(cb_msg->port),
+                        mp_obj_new_int(cb_msg->read_lenth),
+                               };
+                               arg = mp_obj_new_list(3, key_list);
+                           mp_sched_schedule_ex(&cb_msg->callback,  arg);
+                               }
+                break;
+                               #endif
+                #if MICROPY_QPY_MODULE_EXTGPIO_AW9523
+                               case CALLBACK_TYPE_ID_AW9523:
+                               {
+                    st_CallBack_AW9523 *cb_msg = (st_CallBack_AW9523 *)msg.msg;
+                    mp_obj_t aw9523_list[2] = {
+                                       mp_obj_new_int(cb_msg->pin_no),
+                                       mp_obj_new_int(cb_msg->pin_level),
+                               };
+                               arg = mp_obj_new_list(2, aw9523_list);
+                           mp_sched_schedule_ex(&cb_msg->callback,  arg);
+                               }
+                break;
+                               #endif
                 case CALLBACK_TYPE_ID_TP:
                                {
                     st_CallBack_TP *cb_msg = (st_CallBack_TP *)msg.msg;
@@ -323,6 +350,10 @@ void qpy_callback_deal_thread(void * args_in)
                                st_CallBack_LoadBoundMeth *cb_msg = (st_CallBack_LoadBoundMeth *)msg.msg;
                                mp_obj_t cb = mp_load_attr(cb_msg->callback->method_self, cb_msg->callback->method_name);
 
+#if 0
+                    #if defined(PLAT_ASR) || defined(PLAT_ASR_1606) || defined(PLAT_ASR_1803s)
+                    int rc = Helios_Critical_Enter();
+                    #endif
                                st_CallBack_LoadBoundMeth *loadmeth_para_head = (st_CallBack_LoadBoundMeth *)MP_STATE_PORT(loadmeth_para);
                                st_CallBack_LoadBoundMeth *loadmeth_para_tmp = loadmeth_para_head;
                                for(;loadmeth_para_head != NULL; loadmeth_para_head = loadmeth_para_head->next)
@@ -341,6 +372,10 @@ void qpy_callback_deal_thread(void * args_in)
                         }
                         loadmeth_para_tmp = loadmeth_para_head;
                                }
+                               #if defined(PLAT_ASR) || defined(PLAT_ASR_1606) || defined(PLAT_ASR_1803s)
+                               Helios_Critical_Exit(rc);
+                               #endif
+#endif                    
                     mp_call_function_1_protected(cb, cb_msg->arg);
                                break;
                            }
@@ -401,19 +436,24 @@ void qpy_callback_deal_thread(void * args_in)
                 break;
             }
             
+            if(msg.msg) {
+                   free(msg.msg);
+               }
+            memset(&msg, 0, sizeof(st_CallBack_Deal));
 
             //@20220826 将callback deal 队列中的所有回调函数执行完
             while(!mp_sched_empty()) {
                 MICROPY_EVENT_POLL_HOOK
             }
-               if(msg.msg) {
-                   free(msg.msg);
-               }
-            memset(&msg, 0, sizeof(st_CallBack_Deal));
+               
                nlr_pop();
                }
                else
                {
+                   if(msg.msg) {
+                   free(msg.msg);
+               }
+            memset(&msg, 0, sizeof(st_CallBack_Deal));
             mp_obj_print_exception(&mp_plat_print, MP_OBJ_FROM_PTR(nlr.ret_val));
                }
     }
index 80d9bca..bf6ad96 100644 (file)
@@ -66,6 +66,12 @@ enum {
 #endif
 #if MICROPY_QPY_SENSOR_HANDMIC_KEY
        CALLBACK_TYPE_ID_HANDMIC_KEY,
+#endif
+#if MICROPY_QPY_MODULE_EXTUART_WK2114
+       CALLBACK_TYPE_ID_WK2114,
+#endif
+#if MICROPY_QPY_MODULE_EXTGPIO_AW9523
+       CALLBACK_TYPE_ID_AW9523,
 #endif
     CALLBACK_TYPE_ID_TP,
     CALLBACK_TYPE_ID_Gsensor,
@@ -128,6 +134,19 @@ typedef struct{
     c_callback_t callback;
 }st_CallBack_Handmic;
 
+typedef struct{
+    uint32_t int_type;
+    uint32_t port;
+    uint32_t read_lenth;
+    c_callback_t callback;
+}st_CallBack_Wk2114;
+
+typedef struct{
+    uint8_t pin_no;
+    uint8_t pin_level;
+    c_callback_t callback;
+}st_CallBack_AW9523;
+
 enum {
     POC_CAL_ELEM_INT,
     POC_CAL_ELEM_STR,
index 0a669e1..32eb07f 100644 (file)
@@ -297,8 +297,8 @@ STATIC const mp_rom_map_elem_t machine_spi_locals_dict_table[] = {
 #if !defined(BOARD_EC800GCN_GA)      
     { MP_ROM_QSTR(MP_QSTR_SPI0), MP_ROM_INT(HELIOS_SPI0) },
 #endif         
-#if !defined(PLAT_RDA) && !defined(BOARD_EG915UEU_AB) && !defined(BOARD_EG915NEU_AC) \
-       && !defined(BOARD_EG915NEU_AG) && !defined(BOARD_EG912UGL_AA) && !defined(PLAT_ECR6600)
+#if !defined(PLAT_RDA) && !defined(BOARD_EG915NEU_AC) \
+       && !defined(BOARD_EG915NEU_AG) && !defined(PLAT_ECR6600)
     { MP_ROM_QSTR(MP_QSTR_SPI1), MP_ROM_INT(HELIOS_SPI1) },
 #endif
 #if defined(PLAT_ASR)     
index 00c75f4..19cde32 100644 (file)
@@ -160,7 +160,7 @@ STATIC const mp_rom_map_elem_t machine_i2c_locals_dict_table[] = {
     { MP_ROM_QSTR(MP_QSTR_I2C1),       MP_ROM_INT(HELIOS_I2C1) },
 #endif        
 #if !defined(PLAT_RDA) && !defined(BOARD_EC800NCN_LA) && !defined(BOARD_EC800NCN_LA_VOLTE) \
-       && !defined(BOARD_EC600GCN_LD) && !defined(BOARD_EG915NEU_AC) && !defined(BOARD_EG915NEU_AG) \
+       && !defined(BOARD_EC600GCN_LD) && !defined(BOARD_EC600GCN_LD_YM)&& !defined(BOARD_EG915NEU_AC) && !defined(BOARD_EG915NEU_AG) \
        && !defined(BOARD_EG912UGL_AA) && !defined(BOARD_EC600ECN_LC) && !defined(BOARD_EC800ECN_LC) && !defined(BOARD_EC800ECN_LC_WDF)
     { MP_ROM_QSTR(MP_QSTR_I2C2),       MP_ROM_INT(HELIOS_I2C2) },
 #if !defined(PLAT_Qualcomm) && !defined(BOARD_EC800MCN_LA) && !defined(BOARD_EC800MCN_GA) \
index 6c681bb..b73df1e 100644 (file)
@@ -55,6 +55,8 @@
 #endif
 
 const mp_obj_type_t machine_simulation_i2c_type;
+Helios_Mutex_t Helios_i2c_simu_Mutex;
+
 
 typedef struct _machine_simu_i2c_obj_t
 {
@@ -394,7 +396,7 @@ mp_obj_t machine_simu_i2c_make_new(const mp_obj_type_t *type, size_t n_args, siz
     }
 
     machine_simu_i2c_obj_t *self = m_new_obj(machine_simu_i2c_obj_t);
-    cur_i2c = self;
+
 
     self->base.type = &machine_simulation_i2c_type;
     self->scl_gpio = i2c_scl;
@@ -404,6 +406,14 @@ mp_obj_t machine_simu_i2c_make_new(const mp_obj_type_t *type, size_t n_args, siz
        self->sleep_us = (uint32_t)(500000/freq);
        
        HELIOS_IIC_SIMULATION_LOG("sleep_us:%d\n", self->sleep_us);
+       if(0 == Helios_i2c_simu_Mutex)
+       {
+               Helios_i2c_simu_Mutex = Helios_Mutex_Create();
+       }
+       if(0 ==  Helios_i2c_simu_Mutex)
+       {
+               mp_raise_ValueError("Helios_i2c_simu_Mutex Creation failed");
+       }
 
     return MP_OBJ_FROM_PTR(self);
 }
@@ -414,6 +424,7 @@ STATIC const mp_arg_t machine_i2c_mem_allowed_args[] = {
     {MP_QSTR_databuf, MP_ARG_REQUIRED | MP_ARG_OBJ, {.u_obj = MP_OBJ_NULL}},
     {MP_QSTR_datasize, MP_ARG_REQUIRED | MP_ARG_INT, {.u_int = 8}},
 };
+
 STATIC mp_obj_t machine_i2c_write_mem(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args)
 {
     enum
@@ -427,9 +438,10 @@ STATIC mp_obj_t machine_i2c_write_mem(size_t n_args, const mp_obj_t *pos_args, m
     mp_arg_val_t args[MP_ARRAY_SIZE(machine_i2c_mem_allowed_args)];
     mp_arg_parse_all(n_args - 1, pos_args + 1, kw_args,
                      MP_ARRAY_SIZE(machine_i2c_mem_allowed_args), machine_i2c_mem_allowed_args, args);
-
+       Helios_Mutex_Lock(Helios_i2c_simu_Mutex,HELIOS_WAIT_FOREVER);
     machine_simu_i2c_obj_t *self = (machine_simu_i2c_obj_t *)MP_OBJ_TO_PTR(pos_args[0]);
-
+       cur_i2c = self;
+       
     mp_buffer_info_t regaddr_bufinfo;
     mp_get_buffer_raise(args[ARG_regaddr].u_obj, &regaddr_bufinfo, MP_BUFFER_READ);
     int regaddr_length = args[ARG_regaddr_len].u_int;
@@ -443,7 +455,8 @@ STATIC mp_obj_t machine_i2c_write_mem(size_t n_args, const mp_obj_t *pos_args, m
     // do the transfer
        
     int ret = i2c_write((uint8_t)args[ARG_slaveaddr].u_int, (uint8_t *)regaddr_bufinfo.buf, (size_t)regaddr_length, (void *)bufinfo.buf, (size_t)length);
-    if (ret < 0)
+       Helios_Mutex_Unlock(Helios_i2c_simu_Mutex);
+       if (ret < 0)
     {
         ret = -1;
         return mp_obj_new_int(ret);
@@ -475,9 +488,10 @@ STATIC mp_obj_t machine_i2c_read_mem(size_t n_args, const mp_obj_t *pos_args, mp
     mp_arg_val_t args[MP_ARRAY_SIZE(machine_i2c_mem_allowed_read_args)];
     mp_arg_parse_all(n_args - 1, pos_args + 1, kw_args,
                      MP_ARRAY_SIZE(machine_i2c_mem_allowed_read_args), machine_i2c_mem_allowed_read_args, args);
-
+       Helios_Mutex_Lock(Helios_i2c_simu_Mutex,HELIOS_WAIT_FOREVER);
     machine_simu_i2c_obj_t *self = (machine_simu_i2c_obj_t *)MP_OBJ_TO_PTR(pos_args[0]);
-
+       cur_i2c = self;
+       
     mp_buffer_info_t regaddr_bufinfo;
     mp_get_buffer_raise(args[ARG_regaddr].u_obj, &regaddr_bufinfo, MP_BUFFER_READ);
     int regaddr_length = args[ARG_regaddr_len].u_int;
@@ -492,7 +506,8 @@ STATIC mp_obj_t machine_i2c_read_mem(size_t n_args, const mp_obj_t *pos_args, mp
     //                                                 args[ARG_datasize].u_int);
     // do the transfer
     int ret = i2c_read((uint8_t)args[ARG_slaveaddr].u_int, (uint8_t *)regaddr_bufinfo.buf, (size_t)regaddr_length, (uint8_t *)bufinfo.buf, (size_t)length, (uint32_t)args[ARG_dalay].u_int);
-    if (ret < 0)
+       Helios_Mutex_Unlock(Helios_i2c_simu_Mutex);
+       if (ret < 0)
     {
         ret = -1;
         return mp_obj_new_int(ret);
index dd4a173..b5c3ea4 100644 (file)
@@ -62,55 +62,100 @@ typedef struct
 
 
 #define TIMER_TIME_10_MS 10
+#define TIMER_TIME_5_MS 5
+
 typedef void(*extint_handler_t)(void);
 enum {
        HELIOS_EXTINT_RISING,
        HELIOS_EXTINT_FALLING,
 };
 
+static Helios_Thread_t thread_id = 0;
+static Helios_MsgQ_t key_queue = 0;
+typedef struct 
+{
+    uint8_t pin;
+       uint8_t edge;
+}Key_Msg;
 
-STATIC machine_key_obj_t *machine_key_obj[HELIOS_GPIOMAX] = {NULL};
 
-static key_count_t key_extint_count[HELIOS_GPIOMAX] = {0};
+STATIC machine_key_obj_t *machine_key_obj[HELIOS_GPIOMAX] = {NULL};
 
 
 #define KEY_EINT_HANDLER_DEF(n) handler##n
 #define KEY_PLAT_EINT_HANDLER_DEF(n) BOOST_PP_REPEAT_1(n,KEY_EINT_HANDLER_DEF)
 
-static void key_extint_event_proc(machine_key_obj_t *self, int edge);
+
+/*when both edge enable,read pin level in handle may not the real(get level api run need time ,
+level may have changed before),so the trig egde judged error .
+delay 10ms read pin level in order to deal with the jitter of key
+*/
+int timer_debuonce[HELIOS_GPIOMAX] = {0};
+static void debounce_timer_isr(uint32_t p) 
+{
+       Key_Msg msg; 
+       machine_key_obj_t *pt = (machine_key_obj_t *)p;
+       int edge = HELIOS_EXTINT_RISING;
+       if(pt->mode != HELIOS_EDGE_BOTH)
+       {
+               return;
+       }
+       if(Helios_GPIO_GetLevel((Helios_GPIONum)(pt->pin)) == 0)                                    
+       {                                                                                                                                                               
+               edge = HELIOS_EXTINT_FALLING;                                                                                          
+       }                                                                                   
+       
+       if(pt->callback.cb != mp_const_none &&                               
+                           ((mp_sched_num_pending() < MICROPY_SCHEDULER_DEPTH)))                       
+               {                                                                                                   
+                       if(key_queue && thread_id)                                                                      
+                       {
+                               msg.pin = pt->pin;                                                                                              
+                               msg.edge = edge;                                                                                                
+                               Helios_MsgQ_Put(key_queue, (void *)&msg, sizeof(Key_Msg), HELIOS_NO_WAIT);
+                       }                                           
+               }                                                                                                                                                                   
+               Helios_ExtInt_Enable(pt->pin);                                       
+}                                                                                                                                                                                      
+
+
+
 
 #define KEY_HANDLER_FUN(X)                                                                                                                             \
 static void handler##X(void)                                                           \
-{                                                                                                                                                                                      \
-       int edge = HELIOS_EXTINT_RISING;                                                        \
+{                                                                                                                                                                              \
+       int edge = HELIOS_EXTINT_RISING;                                                                                                                \
        if(machine_key_obj[X]->mode == HELIOS_EDGE_RISING)                                                          \
-       {                                                                                       \
-               key_extint_count[X].rising_count++;                                              \
+       {                                                                                     \
        }                                                                                               \
        else if(machine_key_obj[X]->mode == HELIOS_EDGE_FALLING)                              \
        {                                                                                       \
                edge = HELIOS_EXTINT_FALLING;                                                       \
-               key_extint_count[X].falling_count++;                                             \
        }                                                                                       \
        else                                                                                    \
        {                                                                                                                                                                       \
-               if(Helios_GPIO_GetLevel((Helios_GPIONum)X) == 0)                                    \
-               {                                                                                                                                                               \
-                       edge = HELIOS_EXTINT_FALLING;                                                   \
-                       key_extint_count[X].falling_count++;                                         \
-               }                                                                                   \
-               else                                                                                \
-               {                                                                                                                                                               \
-            key_extint_count[X].rising_count++;                                          \
-               }                                                                                   \
+               if(timer_debuonce[X] == 0)                                                                                                      \
+               {                                                                                                                                                               \
+                       timer_debuonce[X] = Helios_Timer_init((void* )debounce_timer_isr, (void*)machine_key_obj[X]);\
+               }                                                                                                                                                                                               \
+               Helios_Timer_Start(timer_debuonce[X], TIMER_TIME_10_MS, 0);                                                                     \
        }                                                                                           \
-                                                                                                                                                                                       \
-       if (machine_key_obj[X]->callback.cb != mp_const_none &&                               \
-                   ((mp_sched_num_pending() < MICROPY_SCHEDULER_DEPTH)))                       \
-       {                                                                                                   \
-               key_extint_event_proc(machine_key_obj[X],edge);                                     \
-       }                                                                                                                                                                   \
-       Helios_ExtInt_Enable(machine_key_obj[X]->pin);                                       \
+                                                                                                                                                                                               \
+       if(machine_key_obj[X]->mode != HELIOS_EDGE_BOTH)                                                                                                \
+       {                                                                                          \
+               if (machine_key_obj[X]->callback.cb != mp_const_none &&                               \
+                           ((mp_sched_num_pending() < MICROPY_SCHEDULER_DEPTH)))                       \
+               {                                                                                                   \
+                       if(key_queue && thread_id)                                                                      \
+                       {                                                                                                                                                               \
+                               Key_Msg msg;                                                                                                                            \
+                               msg.pin = X;                                                                                            \
+                               msg.edge = edge;                                                                                                \
+                               Helios_MsgQ_Put(key_queue, (void *)&msg, sizeof(Key_Msg), HELIOS_NO_WAIT);\
+                       }                                                                                                                                                                       \
+               }                                                                                                                                                                   \
+               Helios_ExtInt_Enable(machine_key_obj[X]->pin);                                       \
+       }                                                                                                                                                                                       \
 }                                                                                           
 
 
@@ -199,6 +244,7 @@ static void timer_isr(uint32_t p)
                //判断长按
                if(pt->press_time * 10 >= pt->time_parameter.timer_long_press * 1000)//按下时长达到长按时间
                {
+                       //HELIOS_KEY_LOG("8\r\n");
                        //长按事件上报
                        st_CallBack_Key *msg = malloc(sizeof(st_CallBack_Key));
                    if(NULL != msg) 
@@ -221,6 +267,7 @@ static void timer_isr(uint32_t p)
                pt->wait_double_click_time++;
                if(pt->wait_double_click_time * 10 > pt->time_parameter.timer_double_click_int)//等待时间内 没有再次按下,上报单击事件
                {
+                       //HELIOS_KEY_LOG("9\r\n");
                        //单击事件上报
                        st_CallBack_Key *msg = malloc(sizeof(st_CallBack_Key));
                    if(NULL != msg) 
@@ -241,100 +288,105 @@ static void timer_isr(uint32_t p)
 }
 
 //外部中断发生时调用
-static void key_extint_event_proc(machine_key_obj_t *p, int edge)
+static void key_extint_event_proc(void * argv)
 {
-       if(p == NULL)
+       Key_Msg msg; 
+       while(1)
        {
-               return;
-       }
-       //0 press:l 1 press:h   0:edge:ris  1:edge:fall
-       if(p->press_lvl ^ edge) //按下
-       {
-#ifdef PLAT_EIGEN
-               Helios_ExtIntStruct extint_struct = {0};
-               extint_struct.gpio_trigger = HELIOS_EDGE_TRIGGER;
-               extint_struct.gpio_edge = p->press_lvl == HELIOS_LVL_LOW? HELIOS_EDGE_RISING: HELIOS_EDGE_FALLING;
-               extint_struct.gpio_debounce = HELIOS_DEBOUNCE_EN;
-               extint_struct.gpio_pull = p->pull;
-               extint_struct.eint_cb = NULL;
-               extint_struct.wakeup_eint_cb = key_extint_handler[p->pin];
-
-               Helios_ExtInt_Init(p->pin, &extint_struct);
-               //Helios_ExtInt_Enable(p->pin);
-#endif
-               if(p->status == STATUS_INIT)//第一次按下
-               {
-                       if(p->timer == 0)
-                       {
-                               p->timer = Helios_Timer_init((void* )timer_isr, (void*)p);
-                       }
-                       //开始计时
-                       Helios_Timer_Start(p->timer, TIMER_TIME_10_MS, 1);
-                       p->status = STATUS_PRESS_FIRST;
-               }
-               else if(p->status == STATUS_WAIT_DOUBLE_CLICK)//双击动作
+               Helios_MsgQ_Get(key_queue, (void *)&msg, sizeof(Key_Msg), HELIOS_WAIT_FOREVER);
+               machine_key_obj_t *p = machine_key_obj[msg.pin];
+               int edge = msg.edge;
+               //HELIOS_KEY_LOG("edge:%d\r\n",edge);
+               //0 press:l 1 press:h   0:edge:ris  1:edge:fall
+               if(p->press_lvl ^ edge) //按下
                {
-                       if(p->wait_double_click_time >= 2)//双击间隔小于20ms 认为是抖动
-                       {
-                               //上报双击事件
-                               st_CallBack_Key *msg = malloc(sizeof(st_CallBack_Key));
-                           if(NULL != msg) 
-                               {
-                                       msg->gpio_number = p->pin;
-                                       msg->key_event = EVENT_DOUBLE_CLICK;
-                               msg->callback = p->callback;
-                           qpy_send_msg_to_callback_deal_thread(CALLBACK_TYPE_ID_KEY, msg);
-                       }       
-                               //状态清零
-                               p->status = STATUS_INIT;
-                               p->wait_double_click_time = 0;
-                               Helios_Timer_Stop(p->timer);
-                               //Helios_Timer_Deinit(p->timer);
-                               //p->timer = 0;
-                       }
-               }
-       }
-       else //松开
-       {
 #ifdef PLAT_EIGEN
-               Helios_ExtIntStruct extint_struct = {0};
-               extint_struct.gpio_trigger = HELIOS_EDGE_TRIGGER;
-               extint_struct.gpio_edge = p->press_lvl == HELIOS_LVL_LOW? HELIOS_EDGE_FALLING: HELIOS_EDGE_RISING;
-               extint_struct.gpio_debounce = HELIOS_DEBOUNCE_EN;
-               extint_struct.gpio_pull = p->pull;
-               extint_struct.eint_cb = NULL;
-               extint_struct.wakeup_eint_cb = key_extint_handler[p->pin];
-
-               Helios_ExtInt_Init(p->pin, &extint_struct);
-               //Helios_ExtInt_Enable(p->pin);
+                       Helios_ExtIntStruct extint_struct = {0};
+                       extint_struct.gpio_trigger = HELIOS_EDGE_TRIGGER;
+                       extint_struct.gpio_edge = p->press_lvl == HELIOS_LVL_LOW? HELIOS_EDGE_RISING: HELIOS_EDGE_FALLING;
+                       extint_struct.gpio_debounce = HELIOS_DEBOUNCE_EN;
+                       extint_struct.gpio_pull = p->pull;
+                       extint_struct.eint_cb = NULL;
+                       extint_struct.wakeup_eint_cb = key_extint_handler[p->pin];
+
+                       Helios_ExtInt_Init(p->pin, &extint_struct);
+                       //Helios_ExtInt_Enable(p->pin);
 #endif
-               if(p->status != STATUS_INIT)//只有先按下才会产生松开,否则不响应
-               {
-                       if(p->status == STATUS_PRESS_FIRST)//第一次按下,松开
+
+                       if(p->status == STATUS_INIT)//第一次按下
                        {
-                               if((p->press_time*10 >= p->time_parameter.timer_short_press)&&(p->press_time * 10 <= p->time_parameter.timer_long_press*1000))//短按
+                               if(p->timer == 0)
                                {
-                                       //等待双击
-                                       p->press_time = 0;
-                                       p->status = STATUS_WAIT_DOUBLE_CLICK;//进入等待双击阶段
-                                       p->wait_double_click_time = 0;
+                                       p->timer = Helios_Timer_init((void* )timer_isr, (void*)p);
                                }
-                               else if(p->press_time * 10 < p->time_parameter.timer_short_press)//时间太短,可能是抖动,不处理
+                               //开始计时
+                               Helios_Timer_Start(p->timer, TIMER_TIME_10_MS, 1);
+                               p->status = STATUS_PRESS_FIRST;
+                       }
+                       else if(p->status == STATUS_WAIT_DOUBLE_CLICK)//双击动作
+                       {
+                               if(p->wait_double_click_time >= 2)//双击间隔小于20ms 认为是抖动
                                {
+                                       //上报双击事件
+                                       st_CallBack_Key *msg = malloc(sizeof(st_CallBack_Key));
+                                   if(NULL != msg) 
+                                       {
+                                               msg->gpio_number = p->pin;
+                                               msg->key_event = EVENT_DOUBLE_CLICK;
+                                       msg->callback = p->callback;
+                                   qpy_send_msg_to_callback_deal_thread(CALLBACK_TYPE_ID_KEY, msg);
+                               }       
                                        //状态清零
                                        p->status = STATUS_INIT;
-                                       p->press_time = 0;
+                                       p->wait_double_click_time = 0;
                                        Helios_Timer_Stop(p->timer);
                                        //Helios_Timer_Deinit(p->timer);
                                        //p->timer = 0;
                                }
                        }
                }
+               else //松开
+               {
+#ifdef PLAT_EIGEN
+                       Helios_ExtIntStruct extint_struct = {0};
+                       extint_struct.gpio_trigger = HELIOS_EDGE_TRIGGER;
+                       extint_struct.gpio_edge = p->press_lvl == HELIOS_LVL_LOW? HELIOS_EDGE_FALLING: HELIOS_EDGE_RISING;
+                       extint_struct.gpio_debounce = HELIOS_DEBOUNCE_EN;
+                       extint_struct.gpio_pull = p->pull;
+                       extint_struct.eint_cb = NULL;
+                       extint_struct.wakeup_eint_cb = key_extint_handler[p->pin];
+
+                       Helios_ExtInt_Init(p->pin, &extint_struct);
+                       //Helios_ExtInt_Enable(p->pin);
+#endif
+
+                       if(p->status != STATUS_INIT)//只有先按下才会产生松开,否则不响应
+                       {
+                               if(p->status == STATUS_PRESS_FIRST)//第一次按下,松开
+                               {
+                                       if((p->press_time*10 >= p->time_parameter.timer_short_press)&&(p->press_time * 10 <= p->time_parameter.timer_long_press*1000))//短按
+                                       {
+                                               //等待双击
+                                               p->press_time = 0;
+                                               p->status = STATUS_WAIT_DOUBLE_CLICK;//进入等待双击阶段
+                                               p->wait_double_click_time = 0;
+                                       }
+                                       else if(p->press_time * 10 < p->time_parameter.timer_short_press)//时间短于短按时间,不处理
+                                       {
+                                               //状态清零
+                                               p->status = STATUS_INIT;
+                                               p->press_time = 0;
+                                               Helios_Timer_Stop(p->timer);
+                                               //Helios_Timer_Deinit(p->timer);
+                                               //p->timer = 0;
+                                       }
+                               }
+                       }
+               }       
        }
-       
 }
 
-enum {ARG_gpio,ARG_pull,ARG_press_lvl,ARG_timer_long_press,ARG_timer_double_click_int,ARG_callback};
+enum {ARG_gpio,ARG_pull,ARG_press_lvl,ARG_timer_long_press,ARG_timer_double_click_int,ARG_callback,ARG_timer_short_press};
 
 static const mp_arg_t key_allowed_args[] = 
 {
@@ -344,6 +396,9 @@ static const mp_arg_t key_allowed_args[] =
     { MP_QSTR_timer_long_press,        MP_ARG_REQUIRED | MP_ARG_INT, {.u_int = 0} },
        { MP_QSTR_timer_double_click_int,  MP_ARG_REQUIRED | MP_ARG_INT, {.u_int = 0} },
        { MP_QSTR_callback,                MP_ARG_REQUIRED | MP_ARG_OBJ, {.u_obj = MP_OBJ_NULL} },
+       { MP_QSTR_timer_short_press,                       MP_ARG_INT, {.u_int = 50} },
+       
+       
 };
 #define KEY_ARGS_TAB_SIZE MP_ARRAY_SIZE(key_allowed_args)
 const mp_obj_type_t machine_key_type;
@@ -354,7 +409,7 @@ mp_obj_t key_extint_make_new(const mp_obj_type_t *type, size_t n_args, size_t n_
        mp_arg_val_t vals[KEY_ARGS_TAB_SIZE];
        mp_arg_parse_all_kw_array(n_args, n_kw, args, KEY_ARGS_TAB_SIZE, key_allowed_args, vals);
 
-       if (vals[ARG_gpio].u_int <= HELIOS_GPIO0 || vals[ARG_gpio].u_int > PLAT_GPIO_NUM) 
+       if(vals[ARG_gpio].u_int <= HELIOS_GPIO0 || vals[ARG_gpio].u_int > PLAT_GPIO_NUM) 
        {
                mp_raise_ValueError("invalid gpio value");
        }
@@ -376,9 +431,14 @@ mp_obj_t key_extint_make_new(const mp_obj_type_t *type, size_t n_args, size_t n_
        {
                mp_raise_ValueError("invalid press value");
        }
-       self->time_parameter.timer_short_press = 100;
+       
+       self->time_parameter.timer_short_press = vals[ARG_timer_short_press].u_int;
 
        self->time_parameter.timer_long_press = vals[ARG_timer_long_press].u_int;
+       if((self->time_parameter.timer_short_press > self->time_parameter.timer_long_press) || (self->time_parameter.timer_short_press < 30))
+       {
+               self->time_parameter.timer_short_press = 50;
+       }
        if((self->time_parameter.timer_long_press > 10) || (self->time_parameter.timer_long_press * 1000 <= self->time_parameter.timer_short_press))
        {
                mp_raise_ValueError("invalid long press timer");
@@ -408,8 +468,36 @@ mp_obj_t key_extint_make_new(const mp_obj_type_t *type, size_t n_args, size_t n_
        {
                mp_raise_ValueError("Interrupt initialization failed");
        }
-       
-       
+
+       if(key_queue == 0)
+       {
+               key_queue = Helios_MsgQ_Create(256, sizeof(Key_Msg));
+               if(key_queue == 0)
+               {
+                       mp_raise_ValueError("initialization failed");
+               }
+       }
+
+       if(thread_id == 0)
+       {
+               Helios_ThreadAttr ThreadAttr = 
+               {
+               .name = "machine_key",
+               .stack_size = 2048,
+#if defined(PLAT_Unisoc)
+               .priority = 92,
+#else
+                       .priority = 75,
+#endif
+               .entry = key_extint_event_proc,
+               .argv = NULL
+           };
+               thread_id = Helios_Thread_Create(&ThreadAttr);
+               if(thread_id == 0)
+               {
+                       mp_raise_ValueError("initialization failed");
+               }
+       }
     return MP_OBJ_FROM_PTR(self);
 }
 
@@ -483,3 +571,4 @@ const mp_obj_type_t machine_key_type = {
 
 
 
+
index a83b5ed..dd5f26e 100644 (file)
@@ -420,6 +420,16 @@ STATIC mp_obj_t machine_lcd_init_helper(machine_lcd_obj_t *self, mp_uint_t n_arg
        spi_info.CSPin = args[ARG_CSPin].u_int;
        spi_info.DCPin = args[ARG_DCPin].u_int;
        spi_info.RSTPin = args[ARG_RSTPin].u_int;
+
+#if defined(BOARD_EC600MCN_LF_SLPOC)
+       HeliosFILE *fp = Helios_fopen("U:/logo.bin","r");
+       if(fp)
+       {
+               init_data.is_logo_exist = 1;
+               Helios_fclose(fp);
+       }
+#endif
+
        ret = QPY_LCD_Init(&init_data, spi_info);
 
        if (ret != 0)
diff --git a/2.sdk/Helios_SDK/services/microPython/ports/quectel/core/source/machine_one_wire.c b/2.sdk/Helios_SDK/services/microPython/ports/quectel/core/source/machine_one_wire.c
new file mode 100644 (file)
index 0000000..8dfd4b1
--- /dev/null
@@ -0,0 +1,137 @@
+#include <stdio.h>
+#include <stddef.h>
+#include <string.h>
+
+#include "mpconfig.h"
+#include "smallint.h"
+#include "runtime.h"
+#include "gc.h"
+#include "mphal.h"
+
+#if MICROPY_QPY_MACHINE_ONE_WIRE
+#include "helios_debug.h"
+#include "helios_pin.h"
+#include "helios_gpio.h"
+#include "helios_one_wire.h"
+
+
+#define HELIOS_1WIRE_LOG(msg, ...)      custom_log("machine_one_wire", msg, ##__VA_ARGS__)
+/*******************************数据类型定义************************/
+
+typedef struct _machine_1wire_obj_t 
+{
+    mp_obj_base_t base;
+       uint8_t pin;
+    uint8_t  internal_pin;     //used by ql_gpio api
+} machine_one_wire_obj_t;
+
+
+enum {ARG_gpio};
+
+static const mp_arg_t bus_1wire_allowed_args[] = 
+{
+       { MP_QSTR_gpio,                    MP_ARG_REQUIRED | MP_ARG_INT, {.u_int = 0xff} },
+};
+#define KEY_ARGS_TAB_SIZE MP_ARRAY_SIZE(bus_1wire_allowed_args)
+const mp_obj_type_t machine_one_wire_type;
+
+mp_obj_t machine_1wire_make_new(const mp_obj_type_t *type, size_t n_args, size_t n_kw, const mp_obj_t *args) 
+{      
+       unsigned char internal_pin = 0;
+       // parse args
+       mp_arg_val_t vals[KEY_ARGS_TAB_SIZE];
+       mp_arg_parse_all_kw_array(n_args, n_kw, args, KEY_ARGS_TAB_SIZE, bus_1wire_allowed_args, vals);
+
+       if(vals[ARG_gpio].u_int <= HELIOS_GPIO0 || vals[ARG_gpio].u_int > PLAT_GPIO_NUM) 
+       {
+               mp_raise_ValueError("invalid gpio value");
+       }
+       
+       machine_one_wire_obj_t *self = m_new_obj_with_finaliser(machine_one_wire_obj_t);
+       
+       self->base.type = &machine_one_wire_type;
+
+       if(Helios_1wire_Init((Helios_GPIONum)(vals[ARG_gpio].u_int),&internal_pin))
+       {
+               mp_raise_ValueError("initialization failed");
+       }
+       self->pin = vals[ARG_gpio].u_int;
+       self->internal_pin = internal_pin;
+
+    return MP_OBJ_FROM_PTR(self);
+}
+
+STATIC mp_obj_t bus_1wire_reset(mp_obj_t self_in) 
+{
+    machine_one_wire_obj_t *self = MP_OBJ_TO_PTR(self_in);
+    int ret = Helios_1wire_Reset(self->internal_pin);
+    return mp_obj_new_int(ret);
+}
+STATIC MP_DEFINE_CONST_FUN_OBJ_1(bus_1wire_reset_obj, bus_1wire_reset);
+
+
+STATIC mp_obj_t bus_1wire_write_bytes(mp_obj_t self_in,mp_obj_t data) 
+{
+    machine_one_wire_obj_t *self = MP_OBJ_TO_PTR(self_in);
+       mp_buffer_info_t bufinfo;
+       mp_get_buffer_raise(data, &bufinfo, MP_BUFFER_READ);
+       int length = bufinfo.len;
+    Helios_1wire_Write_Bytes(self->internal_pin,(unsigned char*) bufinfo.buf,length);
+    return mp_obj_new_int(0);
+}
+STATIC MP_DEFINE_CONST_FUN_OBJ_2(bus_1wire_write_bytes_obj, bus_1wire_write_bytes);
+
+STATIC mp_obj_t bus_1wire_read_bytes(mp_obj_t self_in,mp_obj_t len) 
+{
+    machine_one_wire_obj_t *self = MP_OBJ_TO_PTR(self_in);
+       int data_len = mp_obj_get_int(len);
+       vstr_t vstr;
+       vstr_init_len(&vstr, data_len);
+    Helio_1wire_Read_Bytes(self->internal_pin,(unsigned char*) vstr.buf,data_len);
+    return mp_obj_new_str_from_vstr(&mp_type_bytes, &vstr);
+}
+STATIC MP_DEFINE_CONST_FUN_OBJ_2(bus_1wire_read_bytes_obj, bus_1wire_read_bytes);
+
+STATIC mp_obj_t machine_1wire_deinit(mp_obj_t self_in) 
+{
+    machine_one_wire_obj_t *self = MP_OBJ_TO_PTR(self_in);
+       
+       int ret = Helios_1wire_Deinit((Helios_GPIONum)self->internal_pin);
+       if (ret != 0)
+       {
+               HELIOS_1WIRE_LOG("1wire deinit failed.\r\n");
+       }
+       return mp_obj_new_int(ret);
+       
+}
+STATIC void machine_1wire_print(const mp_print_t *print, mp_obj_t self_in, mp_print_kind_t kind) 
+{
+    machine_one_wire_obj_t *self = self_in;
+    mp_printf(print, "<GPIO(%u)>", self->pin);
+}
+
+STATIC MP_DEFINE_CONST_FUN_OBJ_1(machine_1wire_deinit_obj, machine_1wire_deinit);
+
+STATIC const mp_rom_map_elem_t bus_one_wire_locals_dict_table[] = 
+{
+    { MP_ROM_QSTR(MP_QSTR___del__),    MP_ROM_PTR(&machine_1wire_deinit_obj) },
+    { MP_ROM_QSTR(MP_QSTR_reset),      MP_ROM_PTR(&bus_1wire_reset_obj) },
+    { MP_ROM_QSTR(MP_QSTR_write),      MP_ROM_PTR(&bus_1wire_write_bytes_obj) },
+    { MP_ROM_QSTR(MP_QSTR_read),       MP_ROM_PTR(&bus_1wire_read_bytes_obj) },    
+       PLAT_GPIO_DEF(PLAT_GPIO_NUM),
+};
+
+STATIC MP_DEFINE_CONST_DICT(bus_one_wire_locals_dict, bus_one_wire_locals_dict_table);
+const mp_obj_type_t machine_one_wire_type = {
+    { &mp_type_type },
+    .name = MP_QSTR_OneWire,
+    .print = machine_1wire_print,
+    .make_new = machine_1wire_make_new,
+    .locals_dict = (mp_obj_dict_t *)&bus_one_wire_locals_dict,
+};
+#endif //end of MICROPY_QPY_MACHINE_1WIRE
+
+
+
+
+
index 6af1bb1..5155ae8 100644 (file)
@@ -375,10 +375,14 @@ STATIC const mp_rom_map_elem_t machine_uart_locals_dict_table[] = {
     { MP_ROM_QSTR(MP_QSTR_UART3), MP_ROM_INT(HELIOS_UART3) },
 #endif
 #endif
-#if defined(PLAT_Qualcomm) || defined (PLAT_Unisoc) || defined(BOARD_EC600GCN_LD) || defined(PLAT_Unisoc_8910_R05)
+#if defined(PLAT_Qualcomm) \
+       || defined (PLAT_Unisoc) \
+       || defined(PLAT_Unisoc_8910_R05) \
+       || defined(BOARD_EC600GCN_LD) \
+       || defined(BOARD_EC600GCN_LD_YM) 
        { MP_ROM_QSTR(MP_QSTR_UART4), MP_ROM_INT(HELIOS_UART4) },
 #endif
-#if defined(BOARD_EC600GCN_LD)
+#if defined(BOARD_EC600GCN_LD) || defined(BOARD_EC600GCN_LD_YM) 
     { MP_ROM_QSTR(MP_QSTR_UART5), MP_ROM_INT(HELIOS_UART5) },
     { MP_ROM_QSTR(MP_QSTR_UART6), MP_ROM_INT(HELIOS_UARTMAX) },
 #else
index ecec924..6e7cb67 100644 (file)
@@ -81,7 +81,7 @@ STATIC mp_obj_t misc_usbnet_close(void)
 }
 STATIC MP_DEFINE_CONST_FUN_OBJ_0(misc_usbnet_close_obj, misc_usbnet_close);
 
-#if defined(PLAT_Unisoc) || defined(PLAT_Unisoc_8910_R05)
+#if defined(PLAT_Unisoc) || defined(PLAT_Unisoc_8910_R05) || defined(PLAT_Unisoc_8850)
 STATIC mp_obj_t misc_usbnet_get_nat(size_t n_args, const mp_obj_t *args)
 {
        if (n_args == 2)
@@ -175,7 +175,7 @@ STATIC const mp_rom_map_elem_t misc_usbnet_locals_dict_table[] = {
        {MP_ROM_QSTR(MP_QSTR_close), MP_ROM_PTR(&misc_usbnet_close_obj)},
        {MP_ROM_QSTR(MP_QSTR_Type_ECM), MP_ROM_INT(HELIOS_USBNET_TYPE_ECM)},
        {MP_ROM_QSTR(MP_QSTR_Type_RNDIS), MP_ROM_INT(HELIOS_USBNET_TYPE_RNDIS)},
-#if defined(PLAT_Unisoc) || defined(PLAT_Unisoc_8910_R05)
+#if defined(PLAT_Unisoc) || defined(PLAT_Unisoc_8910_R05) || defined(PLAT_Unisoc_8850)
        {MP_ROM_QSTR(MP_QSTR_getNat), MP_ROM_PTR(&misc_usbnet_get_nat_obj)},
        {MP_ROM_QSTR(MP_QSTR_setNat), MP_ROM_PTR(&misc_usbnet_set_nat_obj)},
 #endif
index a983f02..6a4a51f 100644 (file)
@@ -131,14 +131,25 @@ unsigned char SL_SC7A20_I2c_Spi_Write(bool sl_spi_iic,unsigned char reg, unsigne
 {
        uint8_t reg_addr = reg;
        //SC7A20_LOG("SC7A20 iic write reg = %d, buf is %d\n", reg_addr, data);
-       HELIOS_I2C_Write((Helios_I2CEnum)0, SC7A20_IIC_ADDRESS, &reg_addr, 1, &data, 1);
-       return 1;
+       if(HELIOS_I2C_Write((Helios_I2CEnum)0, SC7A20_IIC_ADDRESS, &reg_addr, 1, &data, 1) == 0)
+               return 1;
+       else
+       {
+               SC7A20_LOG("SL_SC7A20_I2c_Spi_Write error!!!!!!!\r\n");
+               return 0;
+       }
+               
 }
 unsigned char SL_SC7A20_I2c_Spi_Read(bool sl_spi_iic,unsigned char reg, unsigned char len, unsigned char *buf)
 {
        uint8_t reg_addr = reg;
-       HELIOS_I2C_Read((Helios_I2CEnum)0, SC7A20_IIC_ADDRESS, &reg_addr, 1, (void*)buf, len, 0);
-       return 1;
+       if(HELIOS_I2C_Read((Helios_I2CEnum)0, SC7A20_IIC_ADDRESS, &reg_addr, 1, (void*)buf, len, 0)==0)
+               return 1;
+       else
+       {
+               SC7A20_LOG("SL_SC7A20_I2c_Spi_Read error!!!!!!!\r\n");
+               return 0;
+       }
        
 }
 //  Description:    read chip register content
index 36bad18..dbdc0f7 100644 (file)
@@ -60,13 +60,15 @@ static unsigned char s_gh3018_wear_status = 0;//佩戴状态
 unsigned char s_gh3018_heart_rate_buff[HEART_RATE_BUFF_LEN]={0};
 unsigned short s_gh3018_heart_rate_buff_count = 0;
 void sensor_thread_entry(void * argv);
-
+char GH3018_sleep_flag =  0;
 #include "helios_extint.h"
 Helios_Thread_t sensor_thread_id = 0;
 int sensor_timer = 0;
 #define TIMER_TIME_MS  100 //10ms
 #define IS_CYCLICAL 1
 uint8_t GH3018_irq_flag = 0;
+uint32_t gh3018_run_mode =RUN_MODE_INVALID;
+#define RUN_MODE_CLOSE 0xffff
 static uint32_t timer_Gsensor_count = 0;
 int SC7A20_init(void);
 extern signed char SL_SC7A20_PEDO_KCAL_WRIST_SLEEP_SWAY_L_ALGO(void);
@@ -79,7 +81,7 @@ char GH3018_irq_lock = 0;
 void sensor_timerout_cb(void);
 Helios_ThreadAttr ThreadAttr = {
         .name = "GH3018",
-        .stack_size = 1024*10,
+        .stack_size = 1024*20,
         .priority = 100,
         .entry = sensor_thread_entry,
         .argv = NULL
@@ -159,8 +161,8 @@ STATIC mp_obj_t GH3018_make_new(const mp_obj_type_t *type,
 STATIC mp_obj_t mp_GH3018_init(mp_obj_t self_in);
 STATIC mp_obj_t mp_GH3018_deinit(mp_obj_t self_in);
 
-
-
+void GH3018_test(uint32_t mode);
+void gh3018_close(void);
 void sensor_thread_entry(void * argv)
 {
        //GH3018_LOG("sensor_thread_entry: 11111111!!!!!!!!\r\n");
@@ -168,6 +170,20 @@ void sensor_thread_entry(void * argv)
        
        while(1)
        {
+               
+               if(gh3018_run_mode == RUN_MODE_CLOSE)
+               {
+                       gh3018_close();
+                       //GH3018_LOG("GH3018_irq_cb: 1111111111111!!!!!!!!\r\n");
+                       gh3018_run_mode = RUN_MODE_INVALID;
+                       GH3018_irq_flag = 0;
+                       continue;
+               }
+               if(gh3018_run_mode != RUN_MODE_INVALID )
+               {
+                       GH3018_test(gh3018_run_mode);
+                       gh3018_run_mode = RUN_MODE_INVALID;
+               }
                if(is_gh3018 == 1 && is_open_gh3018 == 1)//处理Hsensor中断数据
                {
                        if(GH3018_irq_flag)
@@ -175,12 +191,14 @@ void sensor_thread_entry(void * argv)
                                GH3018_irq_lock = 1;
                                hal_gh30x_int_handler();
                                GH3018_irq_lock = 0;
+                               //GH3018_LOG("GH3018_irq_cb: 1111111111111!!!!!!!!\r\n");
                                //GH3018_LOG("hal_gh30x_int_handler:test_count1:%d test_count2:%d\r\n",test_count1,test_count2);
                                GH3018_irq_flag = 0;
                        }
                        if(timer_Gsensor_count>(1000/TIMER_TIME_MS))//1秒定时,轮询更新Gsensor数据
                        {
                                timer_Gsensor_count = 0;
+                               Helios_msleep(5);
                                SL_SC7A20_PEDO_KCAL_WRIST_SLEEP_SWAY_L_ALGO();
                        }
                }
@@ -188,8 +206,13 @@ void sensor_thread_entry(void * argv)
                {
                        SL_SC7A20_PEDO_KCAL_WRIST_SLEEP_SWAY_L_ALGO();
                        Helios_msleep(1000);
+                       if(GH3018_sleep_flag == 1)
+                       {
+                               GH3018_sleep_flag = 0;
+                               Helios_msleep(3000);
+                       }
                }
-               Helios_msleep(1);
+               Helios_msleep(5);
        }
 }
 
@@ -308,7 +331,7 @@ STATIC mp_obj_t mp_GH3018_deinit(mp_obj_t self_in)
 
     return mp_const_none;
 }
-void GH3018_test(mp_obj_t self_in,uint32_t mode)
+void GH3018_test(uint32_t mode)
 {
        s_gh3018_heart_rate = 0x0;
        s_gh3018_heart_rate_buff_count = 0; 
@@ -319,18 +342,18 @@ void GH3018_test(mp_obj_t self_in,uint32_t mode)
        s_gh3018_blood_oxygen = 0x0;
        
        
-       GH3018_obj_t *self = MP_OBJ_TO_PTR(self_in);
+       //GH3018_obj_t *self = MP_OBJ_TO_PTR(self_in);
        // Helios_GPIO_SetLevel(self->power, HELIOS_LVL_LOW);
        // Helios_msleep(10);
        // Helios_GPIO_SetLevel(self->power, HELIOS_LVL_HIGH);
        // Helios_GPIO_SetLevel(31, HELIOS_LVL_LOW);//复位脚
        // Helios_msleep(20);
        // Helios_GPIO_SetLevel(31, HELIOS_LVL_HIGH);//复位脚
-       int ret = gh30x_module_init();
-       GH3018_LOG("mp_GH3018_open_heart gh30x_module_init:ret:%d\r\n",ret);
-       if(ret == 1)
+       //int ret = gh30x_module_init();
+       //GH3018_LOG("mp_GH3018_open_heart gh30x_module_init:ret:%d\r\n",ret);
+       //if(ret == 1)
        {
-               //gh30x_module_stop();
+               gh30x_module_stop();
                Helios_msleep(10);
                gh30x_module_start_without_adt(mode);
                //gh30x_module_start(gh3018_run_mode);
@@ -342,37 +365,38 @@ void GH3018_test(mp_obj_t self_in,uint32_t mode)
                
                Helios_Timer_Start(sensor_timer, TIMER_TIME_MS, IS_CYCLICAL);
        }
-       //gh3018_run_mode = GH30X_RUN_MODE_HB;
+       
 }
 //打开心律测试
 STATIC mp_obj_t mp_GH3018_open_heart(mp_obj_t self_in)
 {
-       GH3018_test(self_in,GH30X_RUN_MODE_HB);
+       gh3018_run_mode = GH30X_RUN_MODE_HB;
+       //GH3018_test(self_in,GH30X_RUN_MODE_HB);
     return mp_obj_new_int(1);
 }
 //打开血氧测试
 STATIC mp_obj_t mp_GH3018_open_blood_oxygen(mp_obj_t self_in)
 {
-       GH3018_test(self_in,GH30X_RUN_MODE_SPO2);       
+       gh3018_run_mode = GH30X_RUN_MODE_SPO2;
+       //GH3018_test(self_in,GH30X_RUN_MODE_SPO2);     
     return mp_obj_new_int(1);
 }
 //打开HRV测试
 STATIC mp_obj_t mp_GH3018_open_hrv(mp_obj_t self_in)
 {
-       GH3018_test(self_in,GH30X_RUN_MODE_HRV);
+       gh3018_run_mode = GH30X_RUN_MODE_HRV;
+       //GH3018_test(self_in,GH30X_RUN_MODE_HRV);
     return mp_obj_new_int(1);
 }
-//关闭hsensor
-STATIC mp_obj_t mp_GH3018_close(mp_obj_t self_in)
+void gh3018_close(void)
 {
-    GH3018_obj_t *self = MP_OBJ_TO_PTR(self_in);
        if(is_open_gh3018 == 1)
        {
 
-               while(GH3018_irq_lock)
-               {
-                       Helios_msleep(1);
-               }
+               // while(GH3018_irq_lock)
+               // {
+               //      Helios_msleep(1);
+               // }
                gh30x_module_stop();
                if(sensor_timer != 0)
                {
@@ -380,11 +404,18 @@ STATIC mp_obj_t mp_GH3018_close(mp_obj_t self_in)
                }
        }
        is_open_gh3018 = 0;
-       Helios_GPIO_SetLevel(self->power, HELIOS_LVL_LOW);
+       Helios_GPIO_SetLevel(g_GH3018->power, HELIOS_LVL_LOW);
        Helios_msleep(5);
-       Helios_GPIO_SetLevel(self->power, HELIOS_LVL_HIGH);
+       Helios_GPIO_SetLevel(g_GH3018->power, HELIOS_LVL_HIGH);
        Helios_msleep(20);
        gh30x_module_init();
+}
+//关闭hsensor
+STATIC mp_obj_t mp_GH3018_close(mp_obj_t self_in)
+{
+    GH3018_obj_t *self = MP_OBJ_TO_PTR(self_in);
+       
+       gh3018_run_mode = RUN_MODE_CLOSE;
        //Helios_GPIO_SetLevel(self->power, HELIOS_LVL_LOW);
     return mp_obj_new_int(1);
 }
@@ -422,7 +453,13 @@ STATIC mp_obj_t mp_GH3018_get_all_data(mp_obj_t self_in)
                                                                   mp_obj_new_int((int)s_gh3018_HRV),mp_obj_new_int((int)s_gh3018_wear_status)};
     return mp_obj_new_list(6, coordinate_list);
 }
-
+//设置sleep
+STATIC mp_obj_t mp_GH3018_set_sleep(mp_obj_t self_in)
+{
+       GH3018_sleep_flag = 1;
+       GH3018_LOG("mp_GH3018_set_sleep\r\n");
+    return mp_obj_new_int(1);
+}
 STATIC MP_DEFINE_CONST_FUN_OBJ_1(mp_init_GH3018_obj, mp_GH3018_init);//初始化
 STATIC MP_DEFINE_CONST_FUN_OBJ_1(mp_deinit_GH3018_obj, mp_GH3018_deinit);//
 STATIC MP_DEFINE_CONST_FUN_OBJ_1(mp_activate_GH3018_obj, mp_activate_GH3018);//
@@ -436,6 +473,7 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_1(mp_GH3018_open_hrv_obj, mp_GH3018_open_hrv);//
 STATIC MP_DEFINE_CONST_FUN_OBJ_1(mp_GH3018_get_hrv_obj, mp_GH3018_get_hrv);//
 STATIC MP_DEFINE_CONST_FUN_OBJ_1(mp_GH3018_get_all_data_obj, mp_GH3018_get_all_data);//
 STATIC MP_DEFINE_CONST_FUN_OBJ_1(mp_GH3018_close_obj, mp_GH3018_close);//
+STATIC MP_DEFINE_CONST_FUN_OBJ_1(mp_GH3018_set_sleep_obj, mp_GH3018_set_sleep);//
 
 STATIC const mp_rom_map_elem_t GH3018_locals_dict_table[] = {
     { MP_ROM_QSTR(MP_QSTR_init), MP_ROM_PTR(&mp_init_GH3018_obj) },
@@ -451,6 +489,7 @@ STATIC const mp_rom_map_elem_t GH3018_locals_dict_table[] = {
        { MP_ROM_QSTR(MP_QSTR_get_hrv), MP_ROM_PTR(&mp_GH3018_get_hrv_obj)},
        { MP_ROM_QSTR(MP_QSTR_get_all_data), MP_ROM_PTR(&mp_GH3018_get_all_data_obj)},
        { MP_ROM_QSTR(MP_QSTR_close), MP_ROM_PTR(&mp_GH3018_close_obj)},
+       { MP_ROM_QSTR(MP_QSTR_set_sleep), MP_ROM_PTR(&mp_GH3018_set_sleep_obj)},
 };
 
 STATIC MP_DEFINE_CONST_DICT(GH3018_locals_dict, GH3018_locals_dict_table);
index 8f1934e..86c2a21 100644 (file)
@@ -884,7 +884,26 @@ STATIC mp_obj_t id2_init(mp_obj_t self_in)
     (void)self_in;
     return mp_obj_new_int(Helios_upay_id2_init());
 }
-
+STATIC mp_obj_t id2_clean_data(mp_obj_t self_in)
+{
+    (void)self_in;
+    char data[512] = {0xff};
+    int i = 0,ret = 0;
+    QPY_ALIPAY_LOG("id2_clean_data:!!!!!\n");
+    //int id2_hal_write_rsvd_part(int fd, uint32_t offset, void *data, uint32_t data_len)
+    //Helios_upay_id2_write_rsvd_part(fd, offset, datainfo.buf, data_len)
+    for(i=0;i<(2048/sizeof(data));i++)
+    {
+        ret = Helios_upay_id2_write_rsvd_part(0,i*sizeof(data),data,sizeof(data));
+        QPY_ALIPAY_LOG("Helios_upay_id2_write_rsvd_part:%d\n",ret);
+    }
+    for(i=0;i<(512/sizeof(data));i++)
+    {
+        ret = Helios_upay_factory_partition_write(0,i*sizeof(data),data,sizeof(data));
+        QPY_ALIPAY_LOG("Helios_upay_factory_partition_write:%d\n",ret);
+    }    
+    return mp_obj_new_int(ret);
+}
 /*STATIC mp_obj_t id2_check_status(mp_obj_t self_in, mp_obj_t id2_st)
 {
     (void)self_in;
@@ -954,6 +973,7 @@ STATIC mp_obj_t id2_load_opt_data(mp_obj_t self_in, mp_obj_t otp_data, mp_obj_t
     return mp_obj_new_int(Helios_upay_id2_load_opt_data(_otp_data, _len));
 }
 
+#ifdef BOARD_EG810MCN_GA_ALIPAY
 STATIC mp_obj_t id2_write_rsvd_part(size_t n_args, const mp_obj_t *args)
 {        
     ALIPAY_obj_t *self = (ALIPAY_obj_t *)MP_OBJ_TO_PTR(args[0]);
@@ -973,6 +993,7 @@ STATIC mp_obj_t id2_write_rsvd_part(size_t n_args, const mp_obj_t *args)
 
     return mp_obj_new_int(Helios_upay_id2_write_rsvd_part(fd, offset, datainfo.buf, data_len));
 }
+#endif
 
 /*
 *以下七个接口库中暂无
@@ -1142,10 +1163,13 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_3(production_line_get_secure_id_obj, production_l
 STATIC MP_DEFINE_CONST_FUN_OBJ_1(factory_reset_obj, factory_reset);
 STATIC MP_DEFINE_CONST_FUN_OBJ_1(hw_factory_reset_obj, hw_factory_reset);
 STATIC MP_DEFINE_CONST_FUN_OBJ_1(id2_init_obj, id2_init);
+STATIC MP_DEFINE_CONST_FUN_OBJ_1(id2_clean_data_obj,id2_clean_data);
 STATIC MP_DEFINE_CONST_FUN_OBJ_2(id2_check_status_obj, id2_check_status);
 STATIC MP_DEFINE_CONST_FUN_OBJ_KW(id2_get_opt_auth_code_obj, 5, id2_get_opt_auth_code);
 STATIC MP_DEFINE_CONST_FUN_OBJ_3(id2_load_opt_data_obj, id2_load_opt_data);
+#ifdef BOARD_EG810MCN_GA_ALIPAY
 STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(id2_write_rsvd_part_obj, 5, 5, id2_write_rsvd_part);
+#endif
 #if 0
 STATIC MP_DEFINE_CONST_FUN_OBJ_1(transit_pre_check_obj, transit_pre_check);
 STATIC MP_DEFINE_CONST_FUN_OBJ_1(transit_update_activity_status_obj, transit_update_activity_status);
@@ -1193,10 +1217,14 @@ STATIC const mp_rom_map_elem_t ALIPAY_locals_dict_table[] = {
     { MP_ROM_QSTR(MP_QSTR_factory_reset), MP_ROM_PTR(&factory_reset_obj) },
     { MP_ROM_QSTR(MP_QSTR_hw_factory_reset), MP_ROM_PTR(&hw_factory_reset_obj) },
     { MP_ROM_QSTR(MP_QSTR_id2_init), MP_ROM_PTR(&id2_init_obj) },
+    { MP_ROM_QSTR(MP_QSTR_id2_clean_data), MP_ROM_PTR(&id2_clean_data_obj) },
+    
     { MP_ROM_QSTR(MP_QSTR_id2_check_status), MP_ROM_PTR(&id2_check_status_obj) },
     { MP_ROM_QSTR(MP_QSTR_id2_get_opt_auth_code), MP_ROM_PTR(&id2_get_opt_auth_code_obj) },
     { MP_ROM_QSTR(MP_QSTR_id2_load_opt_data), MP_ROM_PTR(&id2_load_opt_data_obj) },
+#ifdef BOARD_EG810MCN_GA_ALIPAY
     { MP_ROM_QSTR(MP_QSTR_id2_write_rsvd_part), MP_ROM_PTR(&id2_write_rsvd_part_obj) },
+#endif
 #if 0
     { MP_ROM_QSTR(MP_QSTR_transit_pre_check), MP_ROM_PTR(&transit_pre_check_obj) },
     { MP_ROM_QSTR(MP_QSTR_transit_update_activity_status), MP_ROM_PTR(&transit_update_activity_status_obj) },
index 89b0e81..75fe06f 100644 (file)
@@ -117,7 +117,7 @@ static AudioChannelSupport_t audio_channel_tab = {
        {1, 1, 1}
 #elif defined(BOARD_EC600UEU_AB) || defined(BOARD_EC600UEU_AB_VOLTE)|| defined(BOARD_EC600UEU_AB_POC)
        {1, 1, 1}
-#elif defined(BOARD_EG915UEU_AB) || defined(BOARD_EG915UEU_AB_HYT)
+#elif defined(BOARD_EG915UEU_AB) || defined(BOARD_EG915UEU_AB_HYT) || defined(BOARD_EG915ULA_AB)
        {1, 1, 0}
 #elif defined(BOARD_EG912UGL_AA) || defined(BOARD_EG912UGL_AA_YL)
        {1, 0, 0}
@@ -135,6 +135,8 @@ static AudioChannelSupport_t audio_channel_tab = {
        || defined(BOARD_EC800GCN_LD_HRXM) \
        || defined(BOARD_EC800GCN_LB)
        {0, 0, 0}
+#elif defined(BOARD_EC600GCN_LD_YM)
+       {1, 1, 1}
 #elif defined(BOARD_EC600ECN_LC) || defined(BOARD_EC600ECN_LC_AEF) || defined(BOARD_EC800ECN_LC_AEF) || defined(BOARD_EC800ECN_LC_AUD) || defined(BOARD_EC600ECN_LC_AUD)
 
 #elif defined(BOARD_EC200AAU_HA_CPE)
index 09fb573..b4d1e3e 100644 (file)
@@ -278,6 +278,7 @@ STATIC const mp_rom_map_elem_t DM9051_locals_dict_table[] = {
     { MP_ROM_QSTR(MP_QSTR_dhcp), MP_ROM_PTR(&start_dhcp_obj) },
     { MP_ROM_QSTR(MP_QSTR_ipconfig), MP_ROM_PTR(&ipconfig_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_default_network_card), MP_ROM_PTR(&set_default_network_card_obj) },
+    { MP_ROM_QSTR(MP_QSTR_set_default_NIC), MP_ROM_PTR(&set_default_network_card_obj) },
 };
 
 /* 把DM9051_locals_dict_table注册到DM9051_locals_dict里面去 */
diff --git a/2.sdk/Helios_SDK/services/microPython/ports/quectel/core/source/modextgpio_aw9523.c b/2.sdk/Helios_SDK/services/microPython/ports/quectel/core/source/modextgpio_aw9523.c
new file mode 100644 (file)
index 0000000..e6dd0d4
--- /dev/null
@@ -0,0 +1,431 @@
+#include <stdint.h>
+#include <stdio.h>
+#include <string.h>
+
+#include "obj.h"
+#include "runtime.h"
+#include "mperrno.h"
+
+#if MICROPY_QPY_MODULE_EXTGPIO_AW9523  //aw9523
+
+#include "helios_debug.h"
+#include "helios_extint.h"
+#include "helios_pin.h"
+#include "helios_iic.h"
+#include "helios_gpio.h"
+#include "modextgpio_aw9523.h"
+#include "callbackdeal.h"
+
+#define HELIOS_AW9523_LOG(msg, ...)      custom_log("_AW9523_", msg, ##__VA_ARGS__)
+/* 定义aw9523_obj_t结构体 */
+typedef struct _aw9523_obj_t
+{
+    mp_obj_base_t base;   //定义的对象结构体要包含该成员
+    uint32_t i2c_id;
+       uint32_t addr;
+       uint32_t  int_pin;
+       c_callback_t callback;
+}aw9523_obj_t;
+
+const mp_obj_type_t extgpio_aw9523_type;
+static aw9523_obj_t * aw9523_obj[4] = {NULL};
+
+static Helios_Thread_t int_thread_id = 0;
+static Helios_MsgQ_t key_queue = 0;
+typedef struct 
+{
+    uint8_t pin;
+       uint8_t level;
+}Key_Msg;
+
+//for callback
+static int default_level = 0x081F;
+static uint8_t cb_reg_output = _AW9523_REG_INPUT0;
+static uint8_t cb_reg_output_1 = _AW9523_REG_INPUT1;
+static uint8_t cb_reg_enable_flag = 0xff;
+
+typedef void(*aw_eint_handler_t)(void);
+
+#define AW9523_EXTINT_CALLBACK_OP(X, pin, level)   do{                                                                                   \
+                                                                                                       st_CallBack_AW9523 *extint = malloc(sizeof(st_CallBack_AW9523));              \
+                                                                                                       if(NULL != extint) {                                                          \
+                                                                                                               extint->pin_no = pin;                                                     \
+                                                                                                               extint->pin_level = level;                                                \
+                                                                                                               extint->callback = aw9523_obj[X]->callback;                               \
+                                                                                                               qpy_send_msg_to_callback_deal_thread(CALLBACK_TYPE_ID_AW9523, extint);    \
+                                                                                                               }                                                                         \
+                                                                                               }while(0)
+
+
+//外部中断发生时调用
+static void aw9523_key_extint_event(void * argv)
+{
+       Key_Msg msg;
+       while(1)
+               {
+                       Helios_MsgQ_Get(key_queue, (void *)&msg, sizeof(Key_Msg), HELIOS_WAIT_FOREVER);
+
+                       aw9523_obj_t *self = NULL;
+                       self = aw9523_obj[msg.pin];
+
+                       uint8_t read_buf = 0;
+                       uint8_t read_buf_1 = 0;
+                       HELIOS_I2C_Read((Helios_I2CEnum) self->i2c_id, self->addr, &cb_reg_output, 1, &read_buf, 1, 5);
+                       HELIOS_I2C_Read((Helios_I2CEnum) self->i2c_id, self->addr, &cb_reg_output_1, 1, &read_buf_1, 1, 5);
+
+                       //port0和port1的电平
+                       uint16_t reg_level = (read_buf_1 << 8) | read_buf;
+                       int level_change = (default_level ^ reg_level);
+                       default_level = reg_level;
+
+                       uint16_t pin = 0;
+                       uint8_t pin_level = 0;
+                       //判断两组寄存器的电平是否有变化
+                       if (level_change != 0)
+                       {
+                               //获取触发引脚和电平
+                               while (pin < 16){
+                                       if (level_change & (1 << pin)){
+                                               break;
+                                       }else{
+                                               pin = pin + 1;
+                                       }
+                               }
+                               if (reg_level & (1 << pin)){
+                                       pin_level = 1;
+                               }else{
+                                       pin_level = 0;
+                               }
+                               // 判断是否使能
+                               if (!(cb_reg_enable_flag & (1 << pin))){
+                                       AW9523_EXTINT_CALLBACK_OP(msg.pin, pin, pin_level);
+                               }
+                       }       
+               }
+}
+
+
+#define HANDLER_FUN(X)                                                                                                                                         \
+static void handler##X(void)                                                                   \
+{                                                                                                                                                                              \
+       if (mp_sched_num_pending() < MICROPY_SCHEDULER_DEPTH)                                                                   \
+       {                                                                                                                                                                               \
+               if(key_queue && int_thread_id)                                                                          \
+                       {                                                                                                                                                               \
+                               Key_Msg msg;                                                                                                                            \
+                               msg.pin = X;                                                                                            \
+                               Helios_MsgQ_Put(key_queue, (void *)&msg, sizeof(Key_Msg), HELIOS_NO_WAIT);      \
+                       }                                                                                                                                                               \
+       }                                                                                                                                                                               \
+}
+
+HANDLER_FUN(0)
+HANDLER_FUN(1)
+HANDLER_FUN(2)
+HANDLER_FUN(3)
+
+aw_eint_handler_t aw_eint_handler[4] = {
+       handler0,
+       handler1,
+       handler2,
+       handler3,
+};
+
+enum { ARG_i2c_id, ARG_addr, ARG_int_pin, ARG_callback};
+static const mp_arg_t allowed_args[] = {
+       { MP_QSTR_i2c,          MP_ARG_REQUIRED | MP_ARG_INT, {.u_int = 0} },
+       { MP_QSTR_addr,         MP_ARG_REQUIRED | MP_ARG_INT, {.u_int = 0} },
+       { MP_QSTR_int_pin,                                        MP_ARG_INT, {.u_int = 0} },
+       { MP_QSTR_callback,                               MP_ARG_OBJ, {.u_obj = MP_OBJ_NULL} },
+};
+#define AW9523_ARGS_TAB_SIZE MP_ARRAY_SIZE(allowed_args)
+
+STATIC mp_obj_t aw9523_make_new(const mp_obj_type_t *type, size_t n_args, size_t n_kw, const mp_map_t *kw_args) {
+       // parse args
+       mp_arg_val_t vals[AW9523_ARGS_TAB_SIZE];
+       mp_arg_parse_all_kw_array(n_args, n_kw, kw_args, AW9523_ARGS_TAB_SIZE, allowed_args, vals);
+
+       // AW9523B 提供2bits地址引脚 AD1 AD0(低两位), 这允许一个I2C总线最多可同时使用 4个AW9523B器件
+       int a = (vals[ARG_addr].u_int) & 0x03;
+       
+    aw9523_obj_t *self = NULL;
+
+       if (aw9523_obj[a] == NULL)
+       {
+               aw9523_obj[a] = m_new_obj_with_finaliser(aw9523_obj_t);
+       }
+    self = aw9523_obj[a];
+
+    self->base.type = &extgpio_aw9523_type;
+       self->i2c_id = vals[ARG_i2c_id].u_int;
+       self->addr = vals[ARG_addr].u_int;
+       self->int_pin = vals[ARG_int_pin].u_int;
+
+       // //初始化IIC读AW9523设备ID前需要把rst拉高
+       // Helios_GPIOInitStruct _struct = {0};
+       // _struct.dir = HELIOS_GPIO_OUTPUT;
+       // _struct.pull = HELIOS_PULL_NONE;
+       // _struct.value = HELIOS_LVL_HIGH;
+       // Helios_GPIO_Init(17, &_struct);
+
+       // init I2C
+       if(0 != Helios_I2C_Init((Helios_I2CEnum) self->i2c_id, HELIOS_FAST_MODE)) {
+               mp_raise_ValueError("I2C initialization failed");
+       }
+       // init extint
+       if (self->int_pin != 0 && vals[ARG_callback].u_obj != NULL)
+       {
+
+               //Register callback
+               mp_sched_schedule_callback_register(&self->callback, vals[ARG_callback].u_obj);
+
+               Helios_ExtIntStruct extint_struct = {0};
+               extint_struct.gpio_trigger = HELIOS_EDGE_TRIGGER;
+               extint_struct.gpio_edge = HELIOS_EDGE_BOTH;
+               extint_struct.gpio_debounce = HELIOS_DEBOUNCE_EN;
+               extint_struct.gpio_pull = HELIOS_PULL_UP;
+               extint_struct.eint_cb = NULL;
+               extint_struct.wakeup_eint_cb = aw_eint_handler[a];
+               if(0 != Helios_ExtInt_Init((Helios_GPIONum)self->int_pin,  &extint_struct)) {
+                       mp_raise_ValueError("Interrupt initialization failed");
+               }
+               Helios_ExtInt_Enable((Helios_GPIONum)self->int_pin);
+
+               if(key_queue == 0)
+               {
+                       key_queue = Helios_MsgQ_Create(10, sizeof(Key_Msg));
+                       if(key_queue == 0)
+                       {
+                               mp_raise_ValueError("create aw9523 queue initialization failed");
+                       }
+               }
+
+               if(int_thread_id == 0)
+               {
+                       Helios_ThreadAttr attr = {0};
+                       attr.name = "extgpio_aw9523";
+                       attr.stack_size = 2048;
+                       attr.priority = 90;
+                       attr.entry = aw9523_key_extint_event;
+
+                       int_thread_id = Helios_Thread_Create(&attr);
+                               if(int_thread_id == 0)
+                               {
+                                       mp_raise_ValueError("create extgpio_aw9523 interrupt handle task failed");
+                               }
+               }
+       }
+
+       // init aw9523
+       uint8_t read_buf = 0;
+       uint8_t reg = _AW9523_REG_CHIPID;
+    if(0 == HELIOS_I2C_Read((Helios_I2CEnum) self->i2c_id, self->addr, &reg, 1, &read_buf, 1, 5)){
+               if (read_buf != 0x23){
+                       mp_raise_ValueError("Cannot find AW9523!!!");
+               }
+       }
+       else{
+               mp_raise_ValueError("I2C read CHIPID failed!");
+       }
+    return MP_OBJ_FROM_PTR(self);
+}
+
+
+static int set_mode(aw9523_obj_t * self, int pin,int mode)
+{
+       uint8_t reg_config;
+    if (pin<8){
+       reg_config = _AW9523_REG_CONFIG0;
+       }
+    else{
+               reg_config = _AW9523_REG_CONFIG1;
+       }
+
+       uint8_t read_buf = 0;
+    HELIOS_I2C_Read((Helios_I2CEnum) self->i2c_id, self->addr, &reg_config, 1, &read_buf, 1, 5);
+       
+       HELIOS_AW9523_LOG("AW9523mode = 0x%x\n", read_buf);
+       int bit = (1 << (pin % 8));
+       if (mode){
+               read_buf = read_buf | bit;
+       }
+       else{
+               read_buf = read_buf & ~bit;
+       }
+       int ret = HELIOS_I2C_Write((Helios_I2CEnum) self->i2c_id,  self->addr, &reg_config, 1, &read_buf, 1);
+
+       return ret;
+}
+static int set_enable(aw9523_obj_t * self, int pin,int interrupt_enable)
+{
+       uint8_t reg_intenable;
+    if (pin<8){
+       reg_intenable = _AW9523_REG_INTENABLE0;
+       }
+    else{
+               reg_intenable = _AW9523_REG_INTENABLE1;
+       }
+
+       uint8_t read_buf = 0;
+    HELIOS_I2C_Read((Helios_I2CEnum) self->i2c_id, self->addr, &reg_intenable, 1, &read_buf, 1, 5);
+
+       int bit = (1 << (pin % 8));
+       // # Register for enabling interrupt = 1: Disables GPIO input pin for interrupt-on-change event
+       // # Register for enabling interrupt = 0: Enables GPIO input pin for interrupt-on-change event
+       if (!interrupt_enable){
+               read_buf = read_buf | bit;
+       }
+       else{
+               read_buf = read_buf & ~bit;
+       }
+       int ret = HELIOS_I2C_Write((Helios_I2CEnum) self->i2c_id,  self->addr, &reg_intenable, 1, &read_buf, 1);
+
+       //每次操作完enable register,记录到cb_reg_enable_flag
+       uint8_t read_buf_1 = 0;
+       uint8_t reg_intenable_flag = _AW9523_REG_INTENABLE0;
+       uint8_t reg_intenable_flag_1 = _AW9523_REG_INTENABLE1;
+       HELIOS_I2C_Read((Helios_I2CEnum) self->i2c_id, self->addr, &reg_intenable_flag, 1, &read_buf, 1, 5);
+       HELIOS_I2C_Read((Helios_I2CEnum) self->i2c_id, self->addr, &reg_intenable_flag_1, 1, &read_buf_1, 1, 5);
+       cb_reg_enable_flag = (read_buf_1 << 8) | read_buf;
+
+       return ret;
+}
+static int set_value(aw9523_obj_t * self, int pin,int value)
+{
+       uint8_t reg_output;
+    if (pin<8){
+       reg_output = _AW9523_REG_OUTPUT0;
+       }
+    else{
+               reg_output = _AW9523_REG_OUTPUT1;
+       }
+
+       uint8_t read_buf = 0;
+    HELIOS_I2C_Read((Helios_I2CEnum) self->i2c_id, self->addr, &reg_output, 1, &read_buf, 1, 5);
+
+       int bit = (1 << (pin % 8));
+       if (value){
+               read_buf = read_buf | bit;
+       }
+       else{
+               read_buf = read_buf & ~bit;
+       }
+       int ret = HELIOS_I2C_Write((Helios_I2CEnum) self->i2c_id,  self->addr, &reg_output, 1, &read_buf, 1);
+
+       return ret;
+}
+
+
+enum { ARG_pin_obj, ARG_mode_obj, ARG_value_obj, ARG_interrupt_enable_obj };
+STATIC const mp_arg_t aw9523_obj_pin_allowed_args[] = {
+       { MP_QSTR_pin,   MP_ARG_REQUIRED | MP_ARG_INT, {.u_int = 0} },
+    { MP_QSTR_mode,  MP_ARG_REQUIRED | MP_ARG_INT, {.u_int = 0} },
+    { MP_QSTR_value,                              MP_ARG_INT, {.u_int = 0} },
+    { MP_QSTR_interrupt_enable,                   MP_ARG_INT, {.u_int = 0} },
+};
+
+STATIC mp_obj_t aw9523_obj_pin_init_helper(mp_obj_t self_in,size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args)
+{
+       mp_arg_val_t args[MP_ARRAY_SIZE(aw9523_obj_pin_allowed_args)];
+    mp_arg_parse_all(n_args, pos_args, kw_args,MP_ARRAY_SIZE(aw9523_obj_pin_allowed_args), aw9523_obj_pin_allowed_args, args);
+
+    aw9523_obj_t *self = MP_OBJ_TO_PTR(self_in);
+
+       int pin = args[ARG_pin_obj].u_int;
+       int mode = args[ARG_mode_obj].u_int;
+       int value = args[ARG_value_obj].u_int;
+       int interrupt_enable = args[ARG_interrupt_enable_obj].u_int;
+
+       if (pin <0 || pin >15)
+       {
+               mp_raise_ValueError("invalid pin!!!! pin must be between 0 and 15");
+       }
+       // # mode = 0: Pin is configured as an output
+       // # mode = 1: Pin is configured as an input
+       // # interrupt_enable = 0: Disables GPIO input pin for interrupt-on-change event
+       // # interrupt_enable = 1: Enables GPIO input pin for interrupt-on-change event
+       // # value = 0: pin set to low
+       // # value = 1: pin set to high
+       set_mode(self,pin,mode);
+       if (mode){
+       set_enable(self,pin,interrupt_enable);
+       }{
+       set_value(self,pin,value);
+       }
+    return mp_obj_new_int(0);
+}
+
+STATIC mp_obj_t aw9523_obj_pin(size_t n_args, const mp_obj_t *args, mp_map_t *kw_args) {
+    aw9523_obj_t *self = MP_OBJ_TO_PTR(args[0]);
+
+    return aw9523_obj_pin_init_helper(self, n_args - 1, args + 1, kw_args);
+}
+
+STATIC MP_DEFINE_CONST_FUN_OBJ_KW(aw9523_obj_pin_obj, 1,aw9523_obj_pin);
+
+
+STATIC mp_obj_t aw9523_obj_read(mp_obj_t self_in,mp_obj_t pin)
+{
+
+    aw9523_obj_t *self = MP_OBJ_TO_PTR(self_in);
+    int _pin = mp_obj_get_int(pin);
+       if (_pin <0 || _pin >15)
+       {
+               mp_raise_ValueError("invalid pin!!!! pin must be between 0 and 15");
+       }
+
+    uint8_t    reg_output = _AW9523_REG_INPUT0;
+       uint8_t reg_output_1 = _AW9523_REG_INPUT1;
+
+       uint8_t read_buf = 0;
+       uint8_t read_buf_1 = 0;
+    HELIOS_I2C_Read((Helios_I2CEnum) self->i2c_id, self->addr, &reg_output, 1, &read_buf, 1, 5);
+    HELIOS_I2C_Read((Helios_I2CEnum) self->i2c_id, self->addr, &reg_output_1, 1, &read_buf_1, 1, 5);
+
+       uint8_t reg = (read_buf_1 << 8) | read_buf;
+       int pin_level = -1;
+       if (reg & (1 << _pin)){
+        pin_level = 1;
+       }
+    else{
+        pin_level = 0;
+       }
+    return mp_obj_new_int(pin_level);
+}
+
+STATIC MP_DEFINE_CONST_FUN_OBJ_2(aw9523_obj_read_obj, aw9523_obj_read);
+
+STATIC mp_obj_t aw9523_delete(mp_obj_t self_in)
+{
+    aw9523_obj_t *self = MP_OBJ_TO_PTR(self_in);
+
+       int ret = 0;
+       if(self->int_pin != 0){
+               if((0 != Helios_ExtInt_Disable(self->int_pin)) && (0 == Helios_ExtInt_Deinit(self->int_pin))){
+                       ret = -1;
+               }       
+       }
+       return mp_obj_new_int(ret);     
+}
+
+STATIC MP_DEFINE_CONST_FUN_OBJ_1(aw9523_delete_obj, aw9523_delete);
+
+/* 定义type的本地字典 */
+STATIC const mp_rom_map_elem_t aw9523_locals_dict_table[] = {
+       { MP_OBJ_NEW_QSTR(MP_QSTR___name__),MP_ROM_QSTR(MP_QSTR_AW9523) },
+    { MP_ROM_QSTR(MP_QSTR_pin),                MP_ROM_PTR(&aw9523_obj_pin_obj) },
+       { MP_ROM_QSTR(MP_QSTR_read),            MP_ROM_PTR(&aw9523_obj_read_obj) },
+       { MP_ROM_QSTR(MP_QSTR___del__),         MP_ROM_PTR(&aw9523_delete_obj) },
+};
+
+STATIC MP_DEFINE_CONST_DICT(aw9523_locals_dict, aw9523_locals_dict_table);
+
+/* 定义mp_obj_type_t类型的结构体;注意这里和定义module使用的类型是不一样的 */
+const mp_obj_type_t extgpio_aw9523_type = {
+    .base={ &mp_type_type },
+    .name = MP_QSTR_AW9523, //type类的name属性是放在这里定义,而不是放在DICT中
+    .make_new = aw9523_make_new, //添加的make new属性
+    .locals_dict = (mp_obj_dict_t*)&aw9523_locals_dict, //注册aw9523_locals_dict
+};
+
+#endif /* MICROPY_QPY_MODULE_EXTGPIO_AW9523 */
diff --git a/2.sdk/Helios_SDK/services/microPython/ports/quectel/core/source/modextgpio_aw9523.h b/2.sdk/Helios_SDK/services/microPython/ports/quectel/core/source/modextgpio_aw9523.h
new file mode 100644 (file)
index 0000000..89c89ec
--- /dev/null
@@ -0,0 +1,43 @@
+/*
+ * Copyright (c) Quectel Wireless Solution, Co., Ltd.All Rights Reserved.
+ *  
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *  
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *  
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef MICROPY_INCLUDED_AW9523_H
+#define MICROPY_INCLUDED_AW9523_H
+
+#define     _AW9523_DEFAULT_ADDR
+#define     _AW9523_REG_CHIPID          0x10      // Register for hardcode chip ID
+#define     _AW9523_REG_SOFTRESET       0x7F       // Register for soft 
+
+#define     _AW9523_REG_INPUT0          0x00      // Register for reading input values
+#define     _AW9523_REG_INPUT1          0x01      // Register for reading input values
+#define     _AW9523_REG_OUTPUT0         0x02     // Register for writing output values
+#define     _AW9523_REG_OUTPUT1         0x03     // Register for writing output values
+#define     _AW9523_REG_CONFIG0         0x04     // Register for configuring direction
+#define     _AW9523_REG_CONFIG1         0x05     // Register for configuring direction
+#define     _AW9523_REG_INTENABLE0      0x06      // Register for enabling interrupt
+#define     _AW9523_REG_INTENABLE1      0x07      // Register for enabling interrupt
+// #define     _AW9523_REG_GCR              0x11     // Register for general configuration
+// #define     _AW9523_REG_LEDMODE          0x12     // Register for configuring  current
+
+
+
+
+
+
+
+
+#endif // MICROPY_INCLUDED_AW9523_H
+
diff --git a/2.sdk/Helios_SDK/services/microPython/ports/quectel/core/source/modextuart_wk2114.c b/2.sdk/Helios_SDK/services/microPython/ports/quectel/core/source/modextuart_wk2114.c
new file mode 100644 (file)
index 0000000..91bb369
--- /dev/null
@@ -0,0 +1,702 @@
+#include <stdint.h>
+#include <stdio.h>
+#include <string.h>
+
+#include "obj.h"
+#include "runtime.h"
+#include "mperrno.h"
+
+
+#if MICROPY_QPY_MODULE_EXTUART_WK2114
+
+#include "helios_uart.h"
+#include "helios_debug.h"
+#include "helios_extint.h"
+#include "helios_ringbuf.h"
+#include "helios_gpio.h"
+#include "modextuart_wk2114.h"
+#include "callbackdeal.h"
+
+#define HELIOS_WK2114_LOG(msg, ...)      custom_log("ext_uart wk2114", msg, ##__VA_ARGS__)
+
+#define READ_BUFFER_SIZE       4*1024
+
+/* 定义wk2114_obj_t结构体 */
+typedef struct _wk2114_obj_t
+{
+    mp_obj_base_t base;   //定义的对象结构体要包含该成员
+    uint32_t port;
+       uint32_t int_pin;
+       uint32_t rst_pin;
+       uint32_t level_en_pin;
+       uint32_t baudrate;              // 主串口波特率
+       uint8_t int_type;
+       uint8_t sub_enable;
+}wk2114_obj_t;
+const mp_obj_type_t extuart_wk2114_type;
+wk2114_obj_t * wk2114_obj = NULL;
+
+helios_ring_buf_t *wk2114_read_ring_bufer[5] = {NULL};
+static c_callback_t *usr_callback[5] = {NULL};
+static c_callback_t cb[5] = {0};
+
+Helios_Mutex_t main_uart_mutex = 0;
+static Helios_MsgQ_t int_happen_q = 0;
+static Helios_Thread_t int_handle_task_id = 0;
+
+int read_main_uart(wk2114_obj_t * self, uint8_t * data, uint32_t nbytes, uint32_t timeout) {
+       if (nbytes == 0) {
+               return 0;
+       }
+
+       uint32_t read_cnt = 0;
+       while (Helios_UART_Any(self->port) == 0)
+       {
+               read_cnt++;
+               if (read_cnt > 100000) {
+                       HELIOS_WK2114_LOG("read_main_uart read uart timeout\r\n");
+                       return 0;
+               }
+       }
+       return Helios_UART_Read(self->port, data, nbytes);
+}
+
+int write_global_reg(wk2114_obj_t * self, uint8_t reg, uint8_t data) {
+       uint8_t send_data[2] = {0};
+
+       send_data[0] = reg;
+       send_data[1] = data;
+       Helios_Mutex_Lock(main_uart_mutex, HELIOS_WAIT_FOREVER);
+       int ret = Helios_UART_Write(self->port, send_data, 2);
+       Helios_Mutex_Unlock(main_uart_mutex);
+       return ret;
+}
+
+int read_global_reg(wk2114_obj_t * self, uint8_t reg) {
+       uint8_t send_data = 0;
+       uint8_t read_data = 0;
+
+       send_data = reg | 0x40;
+       Helios_Mutex_Lock(main_uart_mutex, HELIOS_WAIT_FOREVER);
+       if (Helios_UART_Write(self->port, &send_data, 1) < 0) {
+               HELIOS_WK2114_LOG("Helios_UART_Write fail:%d\r\n", self->port);
+               return -1;
+       }
+
+       if (read_main_uart(self, &read_data, 1, 5) == 1) {
+               Helios_Mutex_Unlock(main_uart_mutex);
+               return read_data;
+       }
+       else {
+               HELIOS_WK2114_LOG("read_main_uart fail\r\n");
+               Helios_Mutex_Unlock(main_uart_mutex);
+               return -1;
+       }
+}
+
+int write_s_reg(wk2114_obj_t * self, uint8_t slave_port, uint8_t reg, uint8_t data) {
+       uint8_t send_data[2] = {0};
+
+       send_data[0] = reg | ((slave_port-1)<<4);
+       send_data[1] = data;
+       Helios_Mutex_Lock(main_uart_mutex, HELIOS_WAIT_FOREVER);
+       int ret = Helios_UART_Write(self->port, send_data, 2);
+       Helios_Mutex_Unlock(main_uart_mutex);
+       return ret;
+}
+
+int read_s_reg(wk2114_obj_t * self, uint8_t slave_port, uint8_t reg) {
+       uint8_t cmd = 0;
+       uint8_t read_data = 0;
+
+       uint8_t send_data = reg | 0x40 | ((slave_port-1)<<4);
+       Helios_Mutex_Lock(main_uart_mutex, HELIOS_WAIT_FOREVER);
+       if (Helios_UART_Write(self->port, &send_data, 1) < 0) {
+               HELIOS_WK2114_LOG("Helios_UART_Write fail:%d\r\n", self->port);
+               return -1;
+       }
+
+       if (read_main_uart(self, &read_data, 1, 5) == 1) {
+               Helios_Mutex_Unlock(main_uart_mutex);
+               return read_data;
+       }
+       else {
+               HELIOS_WK2114_LOG("read_main_uart fail\r\n");
+               Helios_Mutex_Unlock(main_uart_mutex);
+               return -1;
+       }
+}
+
+// Send data to sub uart send fifo
+int write_s_fifo(wk2114_obj_t * self, uint8_t slave_port, uint8_t *data, uint32_t lenth) {
+       if (lenth > 16) {
+               return -1;      // The length of the sent data must be less than 16 bytes 
+       }
+       uint8_t *sbuf = (uint8_t *)malloc(lenth+1);
+       if (sbuf == NULL) {
+               return -1;
+       }
+       sbuf[0] = 0x80 | ((slave_port-1)<<4) | (lenth-1);
+       memcpy(&sbuf[1], data, lenth);
+
+       Helios_Mutex_Lock(main_uart_mutex, HELIOS_WAIT_FOREVER);
+       int ret = Helios_UART_Write(self->port, sbuf, lenth+1);
+       Helios_Mutex_Unlock(main_uart_mutex);
+       free(sbuf);
+       return ret;
+}
+
+// Read data from sub uart read fifo
+int read_s_fifo(wk2114_obj_t * self, uint8_t slave_port, uint8_t *data, uint32_t lenth) {
+       if (lenth > 16) {
+               return -1;      // The length of the read data must be less than 16 bytes 
+       }
+       uint8_t send_data = 0xc0 | ((slave_port-1)<<4) | (lenth-1);
+       Helios_Mutex_Lock(main_uart_mutex, HELIOS_WAIT_FOREVER);
+       if (Helios_UART_Write(self->port, &send_data, 1) < 0) {
+               return -1;
+       }
+
+       if (read_main_uart(self, data, lenth, 10) == lenth) {
+               Helios_Mutex_Unlock(main_uart_mutex);
+               return lenth;
+       }
+       else {
+               Helios_Mutex_Unlock(main_uart_mutex);
+               return -1;
+       }
+}
+
+#include <math.h>
+int set_baudrate(wk2114_obj_t * self, uint8_t slave_port, uint32_t baudrate) {
+       uint32_t pres=0, baud_reg=0;
+
+       double integer_data;
+       double decimal_data = modf(((double)11059200/(baudrate*16)), &integer_data);
+       baud_reg = (int)integer_data - 1;
+       pres = round(decimal_data*16);
+       HELIOS_WK2114_LOG("set_baudrate baudrate:%d,baud_reg:%d,pres:%d\r\n", baudrate, baud_reg, pres);
+
+       uint8_t s_cr = read_s_reg(self, slave_port, WK2XXX_SCR);
+       if (s_cr < 0) {
+               HELIOS_WK2114_LOG("Read WK2XXX_SCR register failed");
+               return -1;
+       }
+       write_s_reg(self, slave_port, WK2XXX_SCR, 0);
+       // Set baudrate reg
+       write_s_reg(self, slave_port, WK2XXX_SPAGE, 1);
+       write_s_reg(self, slave_port, WK2XXX_BAUD0, (baud_reg&0xFF));
+       write_s_reg(self, slave_port, WK2XXX_BAUD1, (baud_reg&0xFF00));
+       write_s_reg(self, slave_port, WK2XXX_PRES, pres);
+       write_s_reg(self, slave_port, WK2XXX_SPAGE, 0);
+       // Eable sub uart read and write
+       write_s_reg(self, slave_port, WK2XXX_SCR, s_cr);
+       return 0;
+}
+
+int read_sub_uart_data(wk2114_obj_t * self, uint8_t slave_port) {
+       int lenth = 0;
+       int num = 0;
+       uint8_t read_data[16] = {0};
+       int ret = 0;
+
+       int s_ifr = read_s_reg(self, slave_port, WK2XXX_SIFR);
+       self->int_type = s_ifr;
+       if (s_ifr < 0) {
+               HELIOS_WK2114_LOG("Read WK2XXX_SIFR register failed");
+               return -1;
+       }
+       if ((s_ifr&WK2XXX_RFTRIG_INT) || (s_ifr&WK2XXX_RXOVT_INT)) {
+               int fsr = read_s_reg(self, slave_port, WK2XXX_FSR);
+               if (fsr < 0) {
+                       HELIOS_WK2114_LOG("Read WK2XXX_FSR register failed");
+                       return -1;
+               }
+               int rfcnt = read_s_reg(self, slave_port, WK2XXX_RFCNT);
+               if (rfcnt < 0) {
+                       HELIOS_WK2114_LOG("Read WK2XXX_RFCNT register failed");
+                       return -1;
+               }
+               if (fsr & WK2XXX_RDAT) {
+                       lenth = (rfcnt==0 ? 256 : rfcnt);
+               }
+               else {
+                       lenth = 0;
+               }
+               num = lenth;
+               while (lenth > 0)
+               {
+                       if (lenth >= 16) {
+                               ret = read_s_fifo(self, slave_port, read_data, 16);
+                               if ((helios_rb_free_space(wk2114_read_ring_bufer[slave_port]) >= ret) && (ret > 0))
+                               {
+                                       helios_rb_write(wk2114_read_ring_bufer[slave_port], read_data, ret);
+                               }
+                               lenth -= 16;
+                       }
+                       else {
+                               ret = read_s_fifo(self, slave_port, read_data, lenth);
+                               if ((helios_rb_free_space(wk2114_read_ring_bufer[slave_port]) >= ret) && (ret > 0))
+                               {
+                                       helios_rb_write(wk2114_read_ring_bufer[slave_port], read_data, ret);
+                               }
+                               lenth = 0;
+                       }
+               }
+       }
+       else {
+               num = 0;
+       }
+       return num;
+}
+
+
+
+void extuart_irq_handler(void)
+{
+       uint8_t int_happen = 1;
+       Helios_MsgQ_Put(int_happen_q, (const void *)&int_happen, sizeof(uint8_t), HELIOS_NO_WAIT);
+       Helios_ExtInt_Enable(wk2114_obj->int_pin);
+}
+
+void extint_handle(void * argv) {
+       uint8_t int_happen = 0;
+       int ret = -1;
+
+       while (1) {
+               ret = Helios_MsgQ_Get(int_happen_q, (void *)&int_happen, sizeof(uint8_t), HELIOS_WAIT_FOREVER);
+               if (ret != 0)
+               {
+                       HELIOS_WK2114_LOG("interrupt handle thread failed to get queue\n");
+                       continue;
+               }
+               if (int_happen == 1) {
+                       uint8_t port = 0;
+                       // Software reset sub uart
+                       int g_ifr = read_global_reg(wk2114_obj, WK2XXX_GIFR);
+                       if (g_ifr < 0) {
+                               HELIOS_WK2114_LOG("Read WK2XXX_GIFR register failed");
+                               return;
+                       }
+                       while (g_ifr & 0x0F) {
+                               if (g_ifr & WK2XXX_UT1IE) {
+                                       read_sub_uart_data(wk2114_obj, 1);
+                                       port = 1;
+                               }
+                               if (g_ifr & WK2XXX_UT2IE) {
+                                       read_sub_uart_data(wk2114_obj, 2);
+                                       port = 2;
+                               }
+                               if (g_ifr & WK2XXX_UT3IE) {
+                                       read_sub_uart_data(wk2114_obj, 3);
+                                       port = 3;
+                               }
+                               if (g_ifr & WK2XXX_UT4IE) {
+                                       read_sub_uart_data(wk2114_obj, 4);
+                                       port = 4;
+                               }
+                               if (usr_callback[port]) {
+                                       st_CallBack_Wk2114 *wk2114_int = malloc(sizeof(st_CallBack_Wk2114));
+                                       if(NULL != wk2114_int) { 
+                                               wk2114_int->int_type = wk2114_obj->int_type;
+                                               wk2114_int->port = port;
+                                               wk2114_int->read_lenth = helios_rb_data_len(wk2114_read_ring_bufer[port]);
+                                               wk2114_int->callback = cb[port];
+                                               qpy_send_msg_to_callback_deal_thread(CALLBACK_TYPE_ID_WK2114, wk2114_int);
+                                       }
+                               }
+                               g_ifr = read_global_reg(wk2114_obj, WK2XXX_GIFR);
+                               if (g_ifr < 0) {
+                                       HELIOS_WK2114_LOG("Read WK2XXX_GIFR register failed");
+                                       break;
+                               }
+                       }
+               }
+       }
+}
+
+void main_uart_baud_adapt(wk2114_obj_t * self) {
+       Helios_GPIO_SetLevel((Helios_GPIONum) self->rst_pin, (Helios_LvlMode) HELIOS_LVL_HIGH);
+       Helios_msleep(10);
+       Helios_GPIO_SetLevel((Helios_GPIONum) self->rst_pin, (Helios_LvlMode) HELIOS_LVL_LOW);
+       Helios_msleep(10);
+       Helios_GPIO_SetLevel((Helios_GPIONum) self->rst_pin, (Helios_LvlMode) HELIOS_LVL_HIGH);
+       Helios_msleep(20);
+       uint8_t send_data = 0x55;
+       int bytes_written = Helios_UART_Write((Helios_UARTNum) self->port, (void*)&send_data, 1);
+    if (bytes_written < 0) {
+        mp_raise_ValueError("Uart send data failed");
+    }
+       Helios_msleep(100);
+}
+
+
+
+mp_obj_t wk2114_make_new(const mp_obj_type_t *type, size_t n_args, size_t n_kw, const mp_obj_t *all_args) {
+    enum { ARG_int_pin, ARG_rst_pin, ARG_level_en_pin, ARG_main_uart_port, ARG_baudrate, ARG_databits, ARG_parity, ARG_stopbits };
+    static const mp_arg_t allowed_args[] = {
+               { MP_QSTR_int_pin, MP_ARG_REQUIRED | MP_ARG_INT, {.u_int = 0} },
+               { MP_QSTR_rst_pin, MP_ARG_REQUIRED | MP_ARG_INT, {.u_int = 0} },
+               { MP_QSTR_level_en_pin, MP_ARG_REQUIRED | MP_ARG_INT, {.u_int = 0} },
+               { MP_QSTR_main_uart_port, MP_ARG_REQUIRED | MP_ARG_INT, {.u_int = 0} },
+        { MP_QSTR_baudrate, MP_ARG_REQUIRED | MP_ARG_INT, {.u_int = 0} },
+        { MP_QSTR_databits, MP_ARG_REQUIRED | MP_ARG_INT, {.u_int = 0} },
+               { MP_QSTR_parity, MP_ARG_REQUIRED | MP_ARG_INT, {.u_int = 0} },
+               { MP_QSTR_stopbits, MP_ARG_REQUIRED | MP_ARG_INT, {.u_int = 0} },
+    };
+
+    mp_arg_val_t args[MP_ARRAY_SIZE(allowed_args)];
+    mp_arg_parse_all_kw_array(n_args, n_kw, all_args, MP_ARRAY_SIZE(allowed_args), allowed_args, args);
+
+       int int_pin = args[ARG_int_pin].u_int;
+       int rst_pin = args[ARG_rst_pin].u_int;
+       int level_en_pin = args[ARG_level_en_pin].u_int;
+       int port = args[ARG_main_uart_port].u_int;
+       int baudrate = args[ARG_baudrate].u_int;
+       int databits = args[ARG_databits].u_int;
+       int parity = args[ARG_parity].u_int;
+       int stopbits = args[ARG_stopbits].u_int;
+
+    int ret=-1;
+       // init extint
+       Helios_ExtIntStruct extint_struct = {0};
+       extint_struct.gpio_trigger = HELIOS_EDGE_TRIGGER;
+       extint_struct.gpio_edge = HELIOS_EDGE_FALLING;
+       extint_struct.gpio_debounce = HELIOS_DEBOUNCE_EN;
+       extint_struct.gpio_pull = HELIOS_PULL_UP;
+       extint_struct.eint_cb = NULL;
+       extint_struct.wakeup_eint_cb = extuart_irq_handler;
+       if((0 == Helios_ExtInt_Disable((Helios_GPIONum)int_pin)) && (0 == Helios_ExtInt_Deinit((Helios_GPIONum)int_pin))) {
+               ret = 0;
+       }
+       if(0 != Helios_ExtInt_Init((Helios_GPIONum)int_pin,  &extint_struct)) {
+               mp_raise_ValueError("Interrupt initialization failed");
+       }
+       Helios_ExtInt_Enable((Helios_GPIONum)int_pin);
+
+       // init level en pin
+       Helios_GPIOInitStruct gpio_struct = {0};
+       gpio_struct.dir = HELIOS_GPIO_OUTPUT;
+       gpio_struct.pull = HELIOS_PULL_UP;
+       gpio_struct.value = HELIOS_LVL_HIGH;
+       if(0 != Helios_GPIO_Init((Helios_GPIONum) level_en_pin, &gpio_struct)) {
+               mp_raise_ValueError("Level en pin initialization failed");
+       }
+
+       // init reset pin
+       gpio_struct.dir = HELIOS_GPIO_OUTPUT;
+       gpio_struct.pull = HELIOS_PULL_DOWN;
+       gpio_struct.value = HELIOS_LVL_HIGH;
+       if(0 != Helios_GPIO_Init((Helios_GPIONum) rst_pin, &gpio_struct)) {
+               mp_raise_ValueError("Reset pin initialization failed");
+       }
+
+       // init uart 
+       Helios_UARTInitStruct uart_para = {0};
+       Helios_UARTConfig uart_config = {baudrate, databits, stopbits, parity, HELIOS_UART_FC_NONE};
+       uart_para.uart_config = &uart_config;
+       Helios_UART_Deinit((Helios_UARTNum) port);
+       if(Helios_UART_Init((Helios_UARTNum) port, &uart_para) != 0) {
+               mp_raise_msg_varg(&mp_type_ValueError, "UART(%d) init fail", port);
+       }
+
+    wk2114_obj_t *self = m_new_obj(wk2114_obj_t);
+       wk2114_obj = self;
+    self->base.type = &extuart_wk2114_type;
+       self->port = port;
+       self->int_pin = int_pin;
+       self->rst_pin = rst_pin;
+       self->level_en_pin = level_en_pin;
+       self->baudrate = baudrate;
+       self->sub_enable = 0;
+
+       main_uart_mutex = Helios_Mutex_Create();
+       Helios_ThreadAttr attr = {0};
+       if (int_happen_q == 0) {
+               int_happen_q = Helios_MsgQ_Create(1, sizeof(uint8_t));
+       }
+       if(int_handle_task_id == 0)
+       {
+           attr.name = "int_handle";
+        attr.stack_size = 1024*2;
+        attr.priority = 95;
+        attr.entry = extint_handle;
+
+        int_handle_task_id = Helios_Thread_Create(&attr);
+        if (0 == int_handle_task_id)
+        {
+            mp_raise_ValueError("create interrupt handle task failed\n");
+        }
+       }
+
+       main_uart_baud_adapt(self);
+       
+    return MP_OBJ_FROM_PTR(self);
+}
+
+
+STATIC mp_obj_t slave_uart_init(mp_obj_t self_in, mp_obj_t port_obj, mp_obj_t baudrate_obj) {
+       int slave_port = mp_obj_get_int(port_obj);
+       int baudrate = mp_obj_get_int(baudrate_obj);
+       wk2114_obj_t *self = MP_OBJ_TO_PTR(self_in);
+
+       if (wk2114_read_ring_bufer[slave_port] == NULL)
+       {
+               wk2114_read_ring_bufer[slave_port] = helios_rb_create(READ_BUFFER_SIZE);
+               HELIOS_WK2114_LOG("wk2114_read_ring_bufer[%d] creat", slave_port);
+       }
+
+       // Eable sub uart clock
+       int g_ena = read_global_reg(self, WK2XXX_GENA);
+       if (g_ena < 0) {
+               HELIOS_WK2114_LOG("Read WK2XXX_GENA register failed");
+               return mp_obj_new_int(-1);
+       }
+       g_ena = g_ena | (1<<(slave_port-1));
+       write_global_reg(self, WK2XXX_GENA, g_ena);
+       // Software reset sub uart
+       int g_rst = read_global_reg(self, WK2XXX_GRST);
+       if (g_rst < 0) {
+               HELIOS_WK2114_LOG("Read WK2XXX_GRST register failed");
+               return mp_obj_new_int(-1);
+       }
+       g_rst = g_rst | (1<<(slave_port-1));
+       write_global_reg(self, WK2XXX_GRST, g_rst);
+       // Eable sub uart general interrupt
+       int g_int = read_global_reg(self, WK2XXX_GIER);
+       if (g_int < 0) {
+               HELIOS_WK2114_LOG("Read WK2XXX_GIER register failed");
+               return mp_obj_new_int(-1);
+       }
+       g_int = g_int | (1<<(slave_port-1));
+       write_global_reg(self, WK2XXX_GIER, g_int);
+       // Eable sub uart watermark interrupt and timeout interrupt
+       int s_int = read_s_reg(self, slave_port, WK2XXX_SIER);
+       if (s_int < 0) {
+               HELIOS_WK2114_LOG("Read WK2XXX_SIER register failed");
+               return mp_obj_new_int(-1);
+       }
+       s_int = s_int | WK2XXX_RFTRIG_IEN | WK2XXX_RXOUT_IEN;
+       write_s_reg(self, slave_port, WK2XXX_SIER, s_int);
+       // Eable read write fifo and set water level
+       write_s_reg(self, slave_port, WK2XXX_FCR, 0xFF);
+       write_s_reg(self, slave_port, WK2XXX_SPAGE, 1);
+       if (slave_port == 2) {
+               write_s_reg(self, slave_port, WK2XXX_RFTL, 0xC8); // 设置接收触点为200个字节
+       } else {
+               write_s_reg(self, slave_port, WK2XXX_RFTL, 0x40); // 设置接收触点为64个字节
+       }
+       write_s_reg(self, slave_port, WK2XXX_TFTL, 0x10); // 设置发送触点为16个字节
+       write_s_reg(self, slave_port, WK2XXX_SPAGE, 0);
+
+       // set buadrate
+       int ret = set_baudrate(self, slave_port, baudrate);
+
+       // Eable sub uart read and write
+       int s_cr = read_s_reg(self, slave_port, WK2XXX_SCR);
+       if (s_cr < 0) {
+               HELIOS_WK2114_LOG("Read WK2XXX_SCR register failed");
+               return mp_obj_new_int(-1);
+       }
+       s_cr = s_cr | WK2XXX_RXEN | WK2XXX_TXEN;
+       write_s_reg(self, slave_port, WK2XXX_SCR, s_cr);
+       self->sub_enable |= 1 << (slave_port - 1);
+
+       return mp_obj_new_int(ret);
+}
+STATIC MP_DEFINE_CONST_FUN_OBJ_3(wk2114_slave_uart_init_obj, slave_uart_init);
+
+STATIC mp_obj_t set_callback(mp_obj_t self_in, mp_obj_t port_obj, const mp_obj_t handler)
+{
+       int port = mp_obj_get_int(port_obj);
+       wk2114_obj_t *self = MP_OBJ_TO_PTR(self_in);
+
+    usr_callback[port] = &cb[port];
+    mp_sched_schedule_callback_register(usr_callback[port], handler);
+
+    return mp_obj_new_int(1);
+}
+STATIC MP_DEFINE_CONST_FUN_OBJ_3(set_callback_obj, set_callback);
+
+STATIC mp_obj_t tx_available_len(mp_obj_t self_in, mp_obj_t port_obj)
+{
+    int port = mp_obj_get_int(port_obj);
+       wk2114_obj_t *self = MP_OBJ_TO_PTR(self_in);
+
+       if (port > 4) {
+               mp_raise_ValueError("Slave port illegal");
+       }
+
+       int lenth = 0;
+       int fsr = read_s_reg(self, port, WK2XXX_FSR);
+       if (fsr < 0) {
+               HELIOS_WK2114_LOG("Read WK2XXX_FSR register failed");
+               return mp_obj_new_int(-1);
+       }
+       int tfcnt = read_s_reg(self, port, WK2XXX_TFCNT);
+       if (tfcnt < 0) {
+               HELIOS_WK2114_LOG("Read WK2XXX_TFCNT register failed");
+               return mp_obj_new_int(-1);
+       }
+       if (fsr & WK2XXX_TFULL) {
+               lenth = 0;
+       }
+       else {
+               lenth = 256 - tfcnt;
+       }
+    return mp_obj_new_int(lenth);
+}
+STATIC MP_DEFINE_CONST_FUN_OBJ_2(tx_available_len_obj, tx_available_len);
+
+STATIC mp_obj_t slave_uart_disable(mp_obj_t self_in, mp_obj_t port_obj) {
+       int port = mp_obj_get_int(port_obj);
+       wk2114_obj_t *self = MP_OBJ_TO_PTR(self_in);
+
+       if (port > 4) {
+               mp_raise_ValueError("Slave port illegal");
+       }
+
+       int g_ena = read_global_reg(self, WK2XXX_GENA);
+       if (g_ena < 0) {
+               HELIOS_WK2114_LOG("Read WK2XXX_GENA register failed");
+               return mp_obj_new_int(0);
+       }
+       g_ena = g_ena & (~(1 << (port - 1)));
+       write_global_reg(self, WK2XXX_GENA, g_ena);
+       helios_rb_clear(wk2114_read_ring_bufer[port]);
+       self->sub_enable &= ~(1 << (port - 1));
+       return mp_obj_new_int(1);
+}
+STATIC MP_DEFINE_CONST_FUN_OBJ_2(slave_uart_disable_obj, slave_uart_disable);
+
+STATIC mp_obj_t slave_uart_enable(mp_obj_t self_in, mp_obj_t port_obj) {
+       int port = mp_obj_get_int(port_obj);
+       wk2114_obj_t *self = MP_OBJ_TO_PTR(self_in);
+
+       if (port > 4) {
+               mp_raise_ValueError("Slave port illegal");
+       }
+
+       int g_ena = read_global_reg(self, WK2XXX_GENA);
+       if (g_ena < 0) {
+               HELIOS_WK2114_LOG("Read WK2XXX_GENA register failed");
+               return mp_obj_new_int(0);
+       }
+       g_ena = g_ena | (1<<(port-1));
+       write_global_reg(self, WK2XXX_GENA, g_ena);
+       self->sub_enable |= 1 << (port - 1);
+       return mp_obj_new_int(1);
+}
+STATIC MP_DEFINE_CONST_FUN_OBJ_2(slave_uart_enable_obj, slave_uart_enable);
+
+STATIC mp_obj_t sub_port_state(mp_obj_t self_in, mp_obj_t port_obj) {
+       int port = mp_obj_get_int(port_obj);
+       wk2114_obj_t *self = MP_OBJ_TO_PTR(self_in);
+
+       if (port > 4) {
+               mp_raise_ValueError("Slave port illegal");
+       }
+       int ret = (self->sub_enable & (1 << (port - 1))) >> (port - 1);
+       return mp_obj_new_int(ret);
+}
+STATIC MP_DEFINE_CONST_FUN_OBJ_2(sub_port_state_obj, sub_port_state);
+
+STATIC mp_obj_t slave_uart_any(mp_obj_t self_in, mp_obj_t port_obj) {
+       int port = mp_obj_get_int(port_obj);
+       wk2114_obj_t *self = MP_OBJ_TO_PTR(self_in);
+
+       if (port > 4) {
+               mp_raise_ValueError("Slave port illegal");
+       }
+       int ret = helios_rb_data_len(wk2114_read_ring_bufer[port]);
+       return mp_obj_new_int(ret);
+}
+STATIC MP_DEFINE_CONST_FUN_OBJ_2(slave_uart_any_obj, slave_uart_any);
+
+STATIC mp_obj_t wk2114_obj_write(mp_obj_t self_in, mp_obj_t port_obj, mp_obj_t data) {
+       int port = mp_obj_get_int(port_obj);
+       wk2114_obj_t *self = MP_OBJ_TO_PTR(self_in);
+       // get the buffer to read the data into
+       mp_buffer_info_t writebuf;
+    mp_get_buffer_raise(data, &writebuf, MP_BUFFER_READ);
+       int length = writebuf.len;
+       uint8_t * buffer = (uint8_t *)writebuf.buf;
+       while(length > 0) {
+               if (length > 16) {
+                       if(write_s_fifo(self, port, buffer, 16) != 17) {
+                               HELIOS_WK2114_LOG("uart write data failed");
+                               return mp_obj_new_int(0);
+                       }
+                       else {
+                               buffer += 16;
+                               length -= 16;
+                       }
+               }
+               else {
+                       if(write_s_fifo(self, port, buffer, length) != (length+1)) {
+                               HELIOS_WK2114_LOG("uart write data failed");
+                               return mp_obj_new_int(0);
+                       }
+                       else {
+                               length = 0;
+                       }
+               }
+       }
+       return mp_obj_new_int(writebuf.len);
+}
+STATIC MP_DEFINE_CONST_FUN_OBJ_3(wk2114_obj_write_obj, wk2114_obj_write);
+
+
+STATIC mp_obj_t wk2114_obj_read(mp_obj_t self_in, mp_obj_t port_obj, mp_obj_t read_num_obj) {
+    wk2114_obj_t *self = MP_OBJ_TO_PTR(self_in);
+       int port = mp_obj_get_int(port_obj);
+       int read_num = mp_obj_get_int(read_num_obj);
+       int remain_data_num = 0;
+
+       if(read_num == 0) {
+               mp_raise_ValueError("read_num can not be 0");
+       } 
+       
+       remain_data_num = helios_rb_data_len(wk2114_read_ring_bufer[port]);
+       read_num = (read_num > remain_data_num) ? remain_data_num : read_num;
+       uint8_t *read_buffer = (uint8_t *)malloc(read_num);
+       if (read_buffer == NULL) {
+               mp_raise_ValueError("Uart read malloc failed");
+       }
+       int ret = helios_rb_read(wk2114_read_ring_bufer[port], read_buffer, read_num);
+       mp_obj_t read_byte = mp_obj_new_bytes(read_buffer, read_num);
+       free(read_buffer);
+
+    return read_byte;
+}
+STATIC MP_DEFINE_CONST_FUN_OBJ_3(wk2114_obj_read_obj, wk2114_obj_read);
+
+
+/* 定义type的本地字典 */
+STATIC const mp_rom_map_elem_t wk2114_locals_dict_table[] = {
+       { MP_OBJ_NEW_QSTR(MP_QSTR___name__),MP_ROM_QSTR(MP_QSTR_WK2114) },
+    { MP_ROM_QSTR(MP_QSTR_slave_uart_init), MP_ROM_PTR(&wk2114_slave_uart_init_obj) },
+    { MP_ROM_QSTR(MP_QSTR_set_callback), MP_ROM_PTR(&set_callback_obj) },
+       { MP_ROM_QSTR(MP_QSTR_read), MP_ROM_PTR(&wk2114_obj_read_obj) },
+    { MP_ROM_QSTR(MP_QSTR_write), MP_ROM_PTR(&wk2114_obj_write_obj) },
+       { MP_ROM_QSTR(MP_QSTR_any), MP_ROM_PTR(&slave_uart_any_obj) },
+       { MP_ROM_QSTR(MP_QSTR_slave_uart_disable), MP_ROM_PTR(&slave_uart_disable_obj) },
+       { MP_ROM_QSTR(MP_QSTR_slave_uart_enable), MP_ROM_PTR(&slave_uart_enable_obj) },
+       { MP_ROM_QSTR(MP_QSTR_sub_port_state), MP_ROM_PTR(&sub_port_state_obj) },
+    { MP_ROM_QSTR(MP_QSTR_tx_available_len), MP_ROM_PTR(&tx_available_len_obj) },
+};
+
+STATIC MP_DEFINE_CONST_DICT(wk2114_locals_dict, wk2114_locals_dict_table);
+
+/* 定义mp_obj_type_t类型的结构体;注意这里和定义module使用的类型是不一样的 */
+const mp_obj_type_t extuart_wk2114_type = {
+    .base={ &mp_type_type }, 
+    .name = MP_QSTR_WK2114, //type类的name属性是放在这里定义,而不是放在DICT中
+    .make_new = wk2114_make_new, //添加的make new属性
+    .locals_dict = (mp_obj_dict_t*)&wk2114_locals_dict, //注册wk2114_locals_dict
+};
+
+
+
+#endif /* MICROPY_QPY_MODULE_EXTUART_WK2114 */
+
diff --git a/2.sdk/Helios_SDK/services/microPython/ports/quectel/core/source/modextuart_wk2114.h b/2.sdk/Helios_SDK/services/microPython/ports/quectel/core/source/modextuart_wk2114.h
new file mode 100644 (file)
index 0000000..9ce926d
--- /dev/null
@@ -0,0 +1,144 @@
+/*
+ * Copyright (c) Quectel Wireless Solution, Co., Ltd.All Rights Reserved.
+ *  
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *  
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *  
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef MICROPY_INCLUDED_WK2114_H
+#define MICROPY_INCLUDED_WK2114_H
+
+#include "helios_os.h"
+
+#include <stdint.h>
+
+
+#define        WK2XXX_GENA     0X00
+#define        WK2XXX_GRST     0X01
+#define                WK2XXX_GMUT     0X02
+#define        WK2XXX_GIER     0X10
+#define        WK2XXX_GIFR     0X11
+#define        WK2XXX_GPDIR    0X21
+#define        WK2XXX_GPDAT    0X31
+#define        WK2XXX_GPORT    1//     /wkxxxx  Global rigister of PORT
+//wkxxxx  slave uarts  rigister address defines
+
+#define        WK2XXX_SPAGE    0X03
+//PAGE0
+#define        WK2XXX_SCR      0X04
+#define        WK2XXX_LCR      0X05
+#define        WK2XXX_FCR      0X06
+#define        WK2XXX_SIER     0X07
+#define        WK2XXX_SIFR     0X08
+#define        WK2XXX_TFCNT    0X09
+#define        WK2XXX_RFCNT    0X0A
+#define        WK2XXX_FSR      0X0B
+#define        WK2XXX_LSR      0X0C
+#define        WK2XXX_FDAT     0X0D
+#define        WK2XXX_FWCR     0X0E
+#define        WK2XXX_RS485    0X0F
+//PAGE1
+#define        WK2XXX_BAUD1    0X04
+#define        WK2XXX_BAUD0    0X05
+#define        WK2XXX_PRES     0X06
+#define        WK2XXX_RFTL     0X07
+#define        WK2XXX_TFTL     0X08
+#define        WK2XXX_FWTH     0X09
+#define        WK2XXX_FWTL     0X0A
+#define        WK2XXX_XON1     0X0B
+#define        WK2XXX_XOFF1    0X0C
+#define        WK2XXX_SADR     0X0D
+#define        WK2XXX_SAEN     0X0E
+#define        WK2XXX_RRSDLY   0X0F
+
+//WK串口扩展芯片的寄存器的位定义
+//wkxxx register bit defines
+// GENA
+#define        WK2XXX_UT4EN    0x08
+#define        WK2XXX_UT3EN    0x04
+#define        WK2XXX_UT2EN    0x02
+#define        WK2XXX_UT1EN    0x01
+//GRST
+#define        WK2XXX_UT4SLEEP 0x80
+#define        WK2XXX_UT3SLEEP 0x40
+#define        WK2XXX_UT2SLEEP 0x20
+#define        WK2XXX_UT1SLEEP 0x10
+#define        WK2XXX_UT4RST   0x08
+#define        WK2XXX_UT3RST   0x04
+#define        WK2XXX_UT2RST   0x02
+#define        WK2XXX_UT1RST   0x01
+//GIER
+#define        WK2XXX_UT4IE    0x08
+#define        WK2XXX_UT3IE    0x04
+#define        WK2XXX_UT2IE    0x02
+#define        WK2XXX_UT1IE    0x01
+//GIFR
+#define        WK2XXX_UT4INT   0x08
+#define        WK2XXX_UT3INT   0x04
+#define        WK2XXX_UT2INT   0x02
+#define        WK2XXX_UT1INT   0x01
+//SPAGE
+#define        WK2XXX_SPAGE0     0x00
+#define        WK2XXX_SPAGE1   0x01
+//SCR
+#define        WK2XXX_SLEEPEN  0x04
+#define        WK2XXX_TXEN     0x02
+#define        WK2XXX_RXEN     0x01
+//LCR
+#define        WK2XXX_BREAK      0x20
+#define        WK2XXX_IREN     0x10
+#define        WK2XXX_PAEN     0x08
+#define        WK2XXX_PAM1     0x04
+#define        WK2XXX_PAM0     0x02
+#define        WK2XXX_STPL     0x01
+//FCR
+//SIER
+#define        WK2XXX_FERR_IEN      0x80
+#define        WK2XXX_CTS_IEN       0x40
+#define        WK2XXX_RTS_IEN       0x20
+#define        WK2XXX_XOFF_IEN      0x10
+#define        WK2XXX_TFEMPTY_IEN   0x08
+#define        WK2XXX_TFTRIG_IEN    0x04
+#define        WK2XXX_RXOUT_IEN     0x02
+#define        WK2XXX_RFTRIG_IEN    0x01
+//SIFR
+#define        WK2XXX_FERR_INT      0x80
+#define        WK2XXX_CTS_INT       0x40
+#define        WK2XXX_RTS_INT       0x20
+#define        WK2XXX_XOFF_INT      0x10
+#define        WK2XXX_TFEMPTY_INT   0x08
+#define        WK2XXX_TFTRIG_INT    0x04
+#define        WK2XXX_RXOVT_INT     0x02
+#define        WK2XXX_RFTRIG_INT    0x01
+
+
+//TFCNT
+//RFCNT
+//FSR
+#define        WK2XXX_RFOE     0x80
+#define        WK2XXX_RFBI     0x40
+#define        WK2XXX_RFFE     0x20
+#define        WK2XXX_RFPE     0x10
+#define        WK2XXX_RDAT     0x08
+#define        WK2XXX_TDAT     0x04
+#define        WK2XXX_TFULL    0x02
+#define        WK2XXX_TBUSY    0x01
+//LSR
+#define        WK2XXX_OE       0x08
+#define        WK2XXX_BI       0x04
+#define        WK2XXX_FE       0x02
+#define        WK2XXX_PE       0x01
+
+
+
+#endif // MICROPY_INCLUDED_WK2114_H
+
index dce44a7..02fe4d8 100644 (file)
@@ -113,7 +113,9 @@ STATIC mp_obj_t mp_gnss_switch(mp_obj_t opt)
        {
                mp_raise_ValueError("invalid value, opt should be in [0,2].");
        }
+       MP_THREAD_GIL_EXIT();
        ret = Helios_GNSS_Switch((Helios_GnssSW)gnss_enable);
+       MP_THREAD_GIL_ENTER();
        return mp_obj_new_int(ret);
 }
 STATIC MP_DEFINE_CONST_FUN_OBJ_1(mp_gnss_switch_obj, mp_gnss_switch);
@@ -152,7 +154,10 @@ STATIC mp_obj_t mp_gnss_nmea_read(mp_obj_t size)
                return mp_obj_new_int(-1);
        }
 
+       MP_THREAD_GIL_EXIT();
        int ret = Helios_GNSS_GetNmea(recbuff, recbuff_len_max);
+       MP_THREAD_GIL_ENTER();
+
        if (ret != 0)
        {
                free(recbuff);
index c106a24..5ab3ce9 100644 (file)
@@ -4013,28 +4013,28 @@ STATIC const mp_rom_map_elem_t LV_STYLE_locals_dict_table[] = {
     { MP_ROM_QSTR(MP_QSTR_PAD_ROW), MP_ROM_PTR(MP_ROM_INT(LV_STYLE_PAD_ROW)) },
     { MP_ROM_QSTR(MP_QSTR_PAD_COLUMN), MP_ROM_PTR(MP_ROM_INT(LV_STYLE_PAD_COLUMN)) },
     { MP_ROM_QSTR(MP_QSTR_BG_COLOR), MP_ROM_PTR(MP_ROM_INT(LV_STYLE_BG_COLOR)) },
-    { MP_ROM_QSTR(MP_QSTR_BG_COLOR_FILTERED), MP_ROM_PTR(MP_ROM_INT(LV_STYLE_BG_COLOR_FILTERED)) },
+    // { MP_ROM_QSTR(MP_QSTR_BG_COLOR_FILTERED), MP_ROM_PTR(MP_ROM_INT(LV_STYLE_BG_COLOR_FILTERED)) },
     { MP_ROM_QSTR(MP_QSTR_BG_OPA), MP_ROM_PTR(MP_ROM_INT(LV_STYLE_BG_OPA)) },
     { MP_ROM_QSTR(MP_QSTR_BG_GRAD_COLOR), MP_ROM_PTR(MP_ROM_INT(LV_STYLE_BG_GRAD_COLOR)) },
-    { MP_ROM_QSTR(MP_QSTR_BG_GRAD_COLOR_FILTERED), MP_ROM_PTR(MP_ROM_INT(LV_STYLE_BG_GRAD_COLOR_FILTERED)) },
+    // { MP_ROM_QSTR(MP_QSTR_BG_GRAD_COLOR_FILTERED), MP_ROM_PTR(MP_ROM_INT(LV_STYLE_BG_GRAD_COLOR_FILTERED)) },
     { MP_ROM_QSTR(MP_QSTR_BG_GRAD_DIR), MP_ROM_PTR(MP_ROM_INT(LV_STYLE_BG_GRAD_DIR)) },
     { MP_ROM_QSTR(MP_QSTR_BG_MAIN_STOP), MP_ROM_PTR(MP_ROM_INT(LV_STYLE_BG_MAIN_STOP)) },
     { MP_ROM_QSTR(MP_QSTR_BG_GRAD_STOP), MP_ROM_PTR(MP_ROM_INT(LV_STYLE_BG_GRAD_STOP)) },
     { MP_ROM_QSTR(MP_QSTR_BG_IMG_SRC), MP_ROM_PTR(MP_ROM_INT(LV_STYLE_BG_IMG_SRC)) },
     { MP_ROM_QSTR(MP_QSTR_BG_IMG_OPA), MP_ROM_PTR(MP_ROM_INT(LV_STYLE_BG_IMG_OPA)) },
     { MP_ROM_QSTR(MP_QSTR_BG_IMG_RECOLOR), MP_ROM_PTR(MP_ROM_INT(LV_STYLE_BG_IMG_RECOLOR)) },
-    { MP_ROM_QSTR(MP_QSTR_BG_IMG_RECOLOR_FILTERED), MP_ROM_PTR(MP_ROM_INT(LV_STYLE_BG_IMG_RECOLOR_FILTERED)) },
+    // { MP_ROM_QSTR(MP_QSTR_BG_IMG_RECOLOR_FILTERED), MP_ROM_PTR(MP_ROM_INT(LV_STYLE_BG_IMG_RECOLOR_FILTERED)) },
     { MP_ROM_QSTR(MP_QSTR_BG_IMG_RECOLOR_OPA), MP_ROM_PTR(MP_ROM_INT(LV_STYLE_BG_IMG_RECOLOR_OPA)) },
     { MP_ROM_QSTR(MP_QSTR_BG_IMG_TILED), MP_ROM_PTR(MP_ROM_INT(LV_STYLE_BG_IMG_TILED)) },
     { MP_ROM_QSTR(MP_QSTR_BORDER_COLOR), MP_ROM_PTR(MP_ROM_INT(LV_STYLE_BORDER_COLOR)) },
-    { MP_ROM_QSTR(MP_QSTR_BORDER_COLOR_FILTERED), MP_ROM_PTR(MP_ROM_INT(LV_STYLE_BORDER_COLOR_FILTERED)) },
+    // { MP_ROM_QSTR(MP_QSTR_BORDER_COLOR_FILTERED), MP_ROM_PTR(MP_ROM_INT(LV_STYLE_BORDER_COLOR_FILTERED)) },
     { MP_ROM_QSTR(MP_QSTR_BORDER_OPA), MP_ROM_PTR(MP_ROM_INT(LV_STYLE_BORDER_OPA)) },
     { MP_ROM_QSTR(MP_QSTR_BORDER_WIDTH), MP_ROM_PTR(MP_ROM_INT(LV_STYLE_BORDER_WIDTH)) },
     { MP_ROM_QSTR(MP_QSTR_BORDER_SIDE), MP_ROM_PTR(MP_ROM_INT(LV_STYLE_BORDER_SIDE)) },
     { MP_ROM_QSTR(MP_QSTR_BORDER_POST), MP_ROM_PTR(MP_ROM_INT(LV_STYLE_BORDER_POST)) },
     { MP_ROM_QSTR(MP_QSTR_OUTLINE_WIDTH), MP_ROM_PTR(MP_ROM_INT(LV_STYLE_OUTLINE_WIDTH)) },
     { MP_ROM_QSTR(MP_QSTR_OUTLINE_COLOR), MP_ROM_PTR(MP_ROM_INT(LV_STYLE_OUTLINE_COLOR)) },
-    { MP_ROM_QSTR(MP_QSTR_OUTLINE_COLOR_FILTERED), MP_ROM_PTR(MP_ROM_INT(LV_STYLE_OUTLINE_COLOR_FILTERED)) },
+    // { MP_ROM_QSTR(MP_QSTR_OUTLINE_COLOR_FILTERED), MP_ROM_PTR(MP_ROM_INT(LV_STYLE_OUTLINE_COLOR_FILTERED)) },
     { MP_ROM_QSTR(MP_QSTR_OUTLINE_OPA), MP_ROM_PTR(MP_ROM_INT(LV_STYLE_OUTLINE_OPA)) },
     { MP_ROM_QSTR(MP_QSTR_OUTLINE_PAD), MP_ROM_PTR(MP_ROM_INT(LV_STYLE_OUTLINE_PAD)) },
     { MP_ROM_QSTR(MP_QSTR_SHADOW_WIDTH), MP_ROM_PTR(MP_ROM_INT(LV_STYLE_SHADOW_WIDTH)) },
@@ -4042,27 +4042,27 @@ STATIC const mp_rom_map_elem_t LV_STYLE_locals_dict_table[] = {
     { MP_ROM_QSTR(MP_QSTR_SHADOW_OFS_Y), MP_ROM_PTR(MP_ROM_INT(LV_STYLE_SHADOW_OFS_Y)) },
     { MP_ROM_QSTR(MP_QSTR_SHADOW_SPREAD), MP_ROM_PTR(MP_ROM_INT(LV_STYLE_SHADOW_SPREAD)) },
     { MP_ROM_QSTR(MP_QSTR_SHADOW_COLOR), MP_ROM_PTR(MP_ROM_INT(LV_STYLE_SHADOW_COLOR)) },
-    { MP_ROM_QSTR(MP_QSTR_SHADOW_COLOR_FILTERED), MP_ROM_PTR(MP_ROM_INT(LV_STYLE_SHADOW_COLOR_FILTERED)) },
+    // { MP_ROM_QSTR(MP_QSTR_SHADOW_COLOR_FILTERED), MP_ROM_PTR(MP_ROM_INT(LV_STYLE_SHADOW_COLOR_FILTERED)) },
     { MP_ROM_QSTR(MP_QSTR_SHADOW_OPA), MP_ROM_PTR(MP_ROM_INT(LV_STYLE_SHADOW_OPA)) },
     { MP_ROM_QSTR(MP_QSTR_IMG_OPA), MP_ROM_PTR(MP_ROM_INT(LV_STYLE_IMG_OPA)) },
     { MP_ROM_QSTR(MP_QSTR_IMG_RECOLOR), MP_ROM_PTR(MP_ROM_INT(LV_STYLE_IMG_RECOLOR)) },
-    { MP_ROM_QSTR(MP_QSTR_IMG_RECOLOR_FILTERED), MP_ROM_PTR(MP_ROM_INT(LV_STYLE_IMG_RECOLOR_FILTERED)) },
+    // { MP_ROM_QSTR(MP_QSTR_IMG_RECOLOR_FILTERED), MP_ROM_PTR(MP_ROM_INT(LV_STYLE_IMG_RECOLOR_FILTERED)) },
     { MP_ROM_QSTR(MP_QSTR_IMG_RECOLOR_OPA), MP_ROM_PTR(MP_ROM_INT(LV_STYLE_IMG_RECOLOR_OPA)) },
     { MP_ROM_QSTR(MP_QSTR_LINE_WIDTH), MP_ROM_PTR(MP_ROM_INT(LV_STYLE_LINE_WIDTH)) },
     { MP_ROM_QSTR(MP_QSTR_LINE_DASH_WIDTH), MP_ROM_PTR(MP_ROM_INT(LV_STYLE_LINE_DASH_WIDTH)) },
     { MP_ROM_QSTR(MP_QSTR_LINE_DASH_GAP), MP_ROM_PTR(MP_ROM_INT(LV_STYLE_LINE_DASH_GAP)) },
     { MP_ROM_QSTR(MP_QSTR_LINE_ROUNDED), MP_ROM_PTR(MP_ROM_INT(LV_STYLE_LINE_ROUNDED)) },
     { MP_ROM_QSTR(MP_QSTR_LINE_COLOR), MP_ROM_PTR(MP_ROM_INT(LV_STYLE_LINE_COLOR)) },
-    { MP_ROM_QSTR(MP_QSTR_LINE_COLOR_FILTERED), MP_ROM_PTR(MP_ROM_INT(LV_STYLE_LINE_COLOR_FILTERED)) },
+    // { MP_ROM_QSTR(MP_QSTR_LINE_COLOR_FILTERED), MP_ROM_PTR(MP_ROM_INT(LV_STYLE_LINE_COLOR_FILTERED)) },
     { MP_ROM_QSTR(MP_QSTR_LINE_OPA), MP_ROM_PTR(MP_ROM_INT(LV_STYLE_LINE_OPA)) },
     { MP_ROM_QSTR(MP_QSTR_ARC_WIDTH), MP_ROM_PTR(MP_ROM_INT(LV_STYLE_ARC_WIDTH)) },
     { MP_ROM_QSTR(MP_QSTR_ARC_ROUNDED), MP_ROM_PTR(MP_ROM_INT(LV_STYLE_ARC_ROUNDED)) },
     { MP_ROM_QSTR(MP_QSTR_ARC_COLOR), MP_ROM_PTR(MP_ROM_INT(LV_STYLE_ARC_COLOR)) },
-    { MP_ROM_QSTR(MP_QSTR_ARC_COLOR_FILTERED), MP_ROM_PTR(MP_ROM_INT(LV_STYLE_ARC_COLOR_FILTERED)) },
+    // { MP_ROM_QSTR(MP_QSTR_ARC_COLOR_FILTERED), MP_ROM_PTR(MP_ROM_INT(LV_STYLE_ARC_COLOR_FILTERED)) },
     { MP_ROM_QSTR(MP_QSTR_ARC_OPA), MP_ROM_PTR(MP_ROM_INT(LV_STYLE_ARC_OPA)) },
     { MP_ROM_QSTR(MP_QSTR_ARC_IMG_SRC), MP_ROM_PTR(MP_ROM_INT(LV_STYLE_ARC_IMG_SRC)) },
     { MP_ROM_QSTR(MP_QSTR_TEXT_COLOR), MP_ROM_PTR(MP_ROM_INT(LV_STYLE_TEXT_COLOR)) },
-    { MP_ROM_QSTR(MP_QSTR_TEXT_COLOR_FILTERED), MP_ROM_PTR(MP_ROM_INT(LV_STYLE_TEXT_COLOR_FILTERED)) },
+    // { MP_ROM_QSTR(MP_QSTR_TEXT_COLOR_FILTERED), MP_ROM_PTR(MP_ROM_INT(LV_STYLE_TEXT_COLOR_FILTERED)) },
     { MP_ROM_QSTR(MP_QSTR_TEXT_OPA), MP_ROM_PTR(MP_ROM_INT(LV_STYLE_TEXT_OPA)) },
     { MP_ROM_QSTR(MP_QSTR_TEXT_FONT), MP_ROM_PTR(MP_ROM_INT(LV_STYLE_TEXT_FONT)) },
     { MP_ROM_QSTR(MP_QSTR_TEXT_LETTER_SPACE), MP_ROM_PTR(MP_ROM_INT(LV_STYLE_TEXT_LETTER_SPACE)) },
@@ -6180,7 +6180,7 @@ STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_obj_get_style_bg_color_obj, 2, mp_lv
     
 /* Reusing lv_obj_get_style_bg_color for lv_obj_get_style_bg_color_filtered */
 
-STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_obj_get_style_bg_color_filtered_obj, 2, mp_lv_obj_get_style_bg_color, lv_obj_get_style_bg_color_filtered);
+// STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_obj_get_style_bg_color_filtered_obj, 2, mp_lv_obj_get_style_bg_color, lv_obj_get_style_bg_color_filtered);
     
 /* Reusing lv_obj_get_style_opa for lv_obj_get_style_bg_opa */
 
@@ -6192,7 +6192,7 @@ STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_obj_get_style_bg_grad_color_obj, 2,
     
 /* Reusing lv_obj_get_style_bg_color for lv_obj_get_style_bg_grad_color_filtered */
 
-STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_obj_get_style_bg_grad_color_filtered_obj, 2, mp_lv_obj_get_style_bg_color, lv_obj_get_style_bg_grad_color_filtered);
+// STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_obj_get_style_bg_grad_color_filtered_obj, 2, mp_lv_obj_get_style_bg_color, lv_obj_get_style_bg_grad_color_filtered);
     
 
 /*
@@ -6250,7 +6250,7 @@ STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_obj_get_style_bg_img_recolor_obj, 2,
     
 /* Reusing lv_obj_get_style_bg_color for lv_obj_get_style_bg_img_recolor_filtered */
 
-STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_obj_get_style_bg_img_recolor_filtered_obj, 2, mp_lv_obj_get_style_bg_color, lv_obj_get_style_bg_img_recolor_filtered);
+// STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_obj_get_style_bg_img_recolor_filtered_obj, 2, mp_lv_obj_get_style_bg_color, lv_obj_get_style_bg_img_recolor_filtered);
     
 /* Reusing lv_obj_get_style_opa for lv_obj_get_style_bg_img_recolor_opa */
 
@@ -6266,7 +6266,7 @@ STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_obj_get_style_border_color_obj, 2, m
     
 /* Reusing lv_obj_get_style_bg_color for lv_obj_get_style_border_color_filtered */
 
-STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_obj_get_style_border_color_filtered_obj, 2, mp_lv_obj_get_style_bg_color, lv_obj_get_style_border_color_filtered);
+// STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_obj_get_style_border_color_filtered_obj, 2, mp_lv_obj_get_style_bg_color, lv_obj_get_style_border_color_filtered);
     
 /* Reusing lv_obj_get_style_opa for lv_obj_get_style_border_opa */
 
@@ -6305,7 +6305,7 @@ STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_obj_get_style_text_color_obj, 2, mp_
     
 /* Reusing lv_obj_get_style_bg_color for lv_obj_get_style_text_color_filtered */
 
-STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_obj_get_style_text_color_filtered_obj, 2, mp_lv_obj_get_style_bg_color, lv_obj_get_style_text_color_filtered);
+// STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_obj_get_style_text_color_filtered_obj, 2, mp_lv_obj_get_style_bg_color, lv_obj_get_style_text_color_filtered);
     
 /* Reusing lv_obj_get_style_opa for lv_obj_get_style_text_opa */
 
@@ -6616,7 +6616,7 @@ STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_obj_get_style_img_recolor_obj, 2, mp
     
 /* Reusing lv_obj_get_style_bg_color for lv_obj_get_style_img_recolor_filtered */
 
-STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_obj_get_style_img_recolor_filtered_obj, 2, mp_lv_obj_get_style_bg_color, lv_obj_get_style_img_recolor_filtered);
+// STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_obj_get_style_img_recolor_filtered_obj, 2, mp_lv_obj_get_style_bg_color, lv_obj_get_style_img_recolor_filtered);
     
 /* Reusing lv_obj_get_style_opa for lv_obj_get_style_img_recolor_opa */
 
@@ -6632,7 +6632,7 @@ STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_obj_get_style_outline_color_obj, 2,
     
 /* Reusing lv_obj_get_style_bg_color for lv_obj_get_style_outline_color_filtered */
 
-STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_obj_get_style_outline_color_filtered_obj, 2, mp_lv_obj_get_style_bg_color, lv_obj_get_style_outline_color_filtered);
+// STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_obj_get_style_outline_color_filtered_obj, 2, mp_lv_obj_get_style_bg_color, lv_obj_get_style_outline_color_filtered);
     
 /* Reusing lv_obj_get_style_opa for lv_obj_get_style_outline_opa */
 
@@ -6664,7 +6664,7 @@ STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_obj_get_style_shadow_color_obj, 2, m
     
 /* Reusing lv_obj_get_style_bg_color for lv_obj_get_style_shadow_color_filtered */
 
-STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_obj_get_style_shadow_color_filtered_obj, 2, mp_lv_obj_get_style_bg_color, lv_obj_get_style_shadow_color_filtered);
+// STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_obj_get_style_shadow_color_filtered_obj, 2, mp_lv_obj_get_style_bg_color, lv_obj_get_style_shadow_color_filtered);
     
 /* Reusing lv_obj_get_style_opa for lv_obj_get_style_shadow_opa */
 
@@ -6692,7 +6692,7 @@ STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_obj_get_style_line_color_obj, 2, mp_
     
 /* Reusing lv_obj_get_style_bg_color for lv_obj_get_style_line_color_filtered */
 
-STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_obj_get_style_line_color_filtered_obj, 2, mp_lv_obj_get_style_bg_color, lv_obj_get_style_line_color_filtered);
+// STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_obj_get_style_line_color_filtered_obj, 2, mp_lv_obj_get_style_bg_color, lv_obj_get_style_line_color_filtered);
     
 /* Reusing lv_obj_get_style_opa for lv_obj_get_style_line_opa */
 
@@ -6712,7 +6712,7 @@ STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_obj_get_style_arc_color_obj, 2, mp_l
     
 /* Reusing lv_obj_get_style_bg_color for lv_obj_get_style_arc_color_filtered */
 
-STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_obj_get_style_arc_color_filtered_obj, 2, mp_lv_obj_get_style_bg_color, lv_obj_get_style_arc_color_filtered);
+// STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_obj_get_style_arc_color_filtered_obj, 2, mp_lv_obj_get_style_bg_color, lv_obj_get_style_arc_color_filtered);
     
 /* Reusing lv_obj_get_style_opa for lv_obj_get_style_arc_opa */
 
@@ -9055,7 +9055,7 @@ STATIC void mp_lv_style_t_attr(mp_obj_t self_in, qstr attr, mp_obj_t *dest)
         {
             case MP_QSTR_v_p: dest[0] = mp_read_byref_lv_style_v_p_t(data->v_p); break; // converting from lv_style_v_p_t;
             case MP_QSTR_prop1: dest[0] = mp_obj_new_int_from_uint(data->prop1); break; // converting from uint16_t;
-            case MP_QSTR_is_const: dest[0] = mp_obj_new_int_from_uint(data->is_const); break; // converting from uint16_t;
+            // case MP_QSTR_is_const: dest[0] = mp_obj_new_int_from_uint(data->is_const); break; // converting from uint16_t;
             case MP_QSTR_has_group: dest[0] = mp_obj_new_int_from_uint(data->has_group); break; // converting from uint8_t;
             case MP_QSTR_prop_cnt: dest[0] = mp_obj_new_int_from_uint(data->prop_cnt); break; // converting from uint8_t;
             default: call_parent_methods(self_in, attr, dest); // fallback to locals_dict lookup
@@ -9068,7 +9068,7 @@ STATIC void mp_lv_style_t_attr(mp_obj_t self_in, qstr attr, mp_obj_t *dest)
             {
                 case MP_QSTR_v_p: data->v_p = mp_write_lv_style_v_p_t(dest[1]); break; // converting to lv_style_v_p_t;
                 case MP_QSTR_prop1: data->prop1 = (uint16_t)mp_obj_get_int(dest[1]); break; // converting to uint16_t;
-                case MP_QSTR_is_const: data->is_const = (uint16_t)mp_obj_get_int(dest[1]); break; // converting to uint16_t;
+                // case MP_QSTR_is_const: data->is_const = (uint16_t)mp_obj_get_int(dest[1]); break; // converting to uint16_t;
                 case MP_QSTR_has_group: data->has_group = (uint8_t)mp_obj_get_int(dest[1]); break; // converting to uint8_t;
                 case MP_QSTR_prop_cnt: data->prop_cnt = (uint8_t)mp_obj_get_int(dest[1]); break; // converting to uint8_t;
                 default: return;
@@ -9622,7 +9622,7 @@ STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_obj_set_style_bg_color_obj, 3, mp_lv
     
 /* Reusing lv_obj_set_style_bg_color for lv_obj_set_style_bg_color_filtered */
 
-STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_obj_set_style_bg_color_filtered_obj, 3, mp_lv_obj_set_style_bg_color, lv_obj_set_style_bg_color_filtered);
+// STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_obj_set_style_bg_color_filtered_obj, 3, mp_lv_obj_set_style_bg_color, lv_obj_set_style_bg_color_filtered);
     
 /* Reusing lv_obj_set_style_opa for lv_obj_set_style_bg_opa */
 
@@ -9634,7 +9634,7 @@ STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_obj_set_style_bg_grad_color_obj, 3,
     
 /* Reusing lv_obj_set_style_bg_color for lv_obj_set_style_bg_grad_color_filtered */
 
-STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_obj_set_style_bg_grad_color_filtered_obj, 3, mp_lv_obj_set_style_bg_color, lv_obj_set_style_bg_grad_color_filtered);
+// STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_obj_set_style_bg_grad_color_filtered_obj, 3, mp_lv_obj_set_style_bg_color, lv_obj_set_style_bg_grad_color_filtered);
     
 
 /*
@@ -9694,7 +9694,7 @@ STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_obj_set_style_bg_img_recolor_obj, 3,
     
 /* Reusing lv_obj_set_style_bg_color for lv_obj_set_style_bg_img_recolor_filtered */
 
-STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_obj_set_style_bg_img_recolor_filtered_obj, 3, mp_lv_obj_set_style_bg_color, lv_obj_set_style_bg_img_recolor_filtered);
+// STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_obj_set_style_bg_img_recolor_filtered_obj, 3, mp_lv_obj_set_style_bg_color, lv_obj_set_style_bg_img_recolor_filtered);
     
 /* Reusing lv_obj_set_style_opa for lv_obj_set_style_bg_img_recolor_opa */
 
@@ -9710,7 +9710,7 @@ STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_obj_set_style_border_color_obj, 3, m
     
 /* Reusing lv_obj_set_style_bg_color for lv_obj_set_style_border_color_filtered */
 
-STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_obj_set_style_border_color_filtered_obj, 3, mp_lv_obj_set_style_bg_color, lv_obj_set_style_border_color_filtered);
+// STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_obj_set_style_border_color_filtered_obj, 3, mp_lv_obj_set_style_bg_color, lv_obj_set_style_border_color_filtered);
     
 /* Reusing lv_obj_set_style_opa for lv_obj_set_style_border_opa */
 
@@ -9750,7 +9750,7 @@ STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_obj_set_style_text_color_obj, 3, mp_
     
 /* Reusing lv_obj_set_style_bg_color for lv_obj_set_style_text_color_filtered */
 
-STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_obj_set_style_text_color_filtered_obj, 3, mp_lv_obj_set_style_bg_color, lv_obj_set_style_text_color_filtered);
+// STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_obj_set_style_text_color_filtered_obj, 3, mp_lv_obj_set_style_bg_color, lv_obj_set_style_text_color_filtered);
     
 /* Reusing lv_obj_set_style_opa for lv_obj_set_style_text_opa */
 
@@ -9834,7 +9834,7 @@ STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_obj_set_style_img_recolor_obj, 3, mp
     
 /* Reusing lv_obj_set_style_bg_color for lv_obj_set_style_img_recolor_filtered */
 
-STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_obj_set_style_img_recolor_filtered_obj, 3, mp_lv_obj_set_style_bg_color, lv_obj_set_style_img_recolor_filtered);
+// STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_obj_set_style_img_recolor_filtered_obj, 3, mp_lv_obj_set_style_bg_color, lv_obj_set_style_img_recolor_filtered);
     
 /* Reusing lv_obj_set_style_opa for lv_obj_set_style_img_recolor_opa */
 
@@ -9850,7 +9850,7 @@ STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_obj_set_style_outline_color_obj, 3,
     
 /* Reusing lv_obj_set_style_bg_color for lv_obj_set_style_outline_color_filtered */
 
-STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_obj_set_style_outline_color_filtered_obj, 3, mp_lv_obj_set_style_bg_color, lv_obj_set_style_outline_color_filtered);
+// STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_obj_set_style_outline_color_filtered_obj, 3, mp_lv_obj_set_style_bg_color, lv_obj_set_style_outline_color_filtered);
     
 /* Reusing lv_obj_set_style_opa for lv_obj_set_style_outline_opa */
 
@@ -9882,7 +9882,7 @@ STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_obj_set_style_shadow_color_obj, 3, m
     
 /* Reusing lv_obj_set_style_bg_color for lv_obj_set_style_shadow_color_filtered */
 
-STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_obj_set_style_shadow_color_filtered_obj, 3, mp_lv_obj_set_style_bg_color, lv_obj_set_style_shadow_color_filtered);
+// STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_obj_set_style_shadow_color_filtered_obj, 3, mp_lv_obj_set_style_bg_color, lv_obj_set_style_shadow_color_filtered);
     
 /* Reusing lv_obj_set_style_opa for lv_obj_set_style_shadow_opa */
 
@@ -9910,7 +9910,7 @@ STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_obj_set_style_line_color_obj, 3, mp_
     
 /* Reusing lv_obj_set_style_bg_color for lv_obj_set_style_line_color_filtered */
 
-STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_obj_set_style_line_color_filtered_obj, 3, mp_lv_obj_set_style_bg_color, lv_obj_set_style_line_color_filtered);
+// STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_obj_set_style_line_color_filtered_obj, 3, mp_lv_obj_set_style_bg_color, lv_obj_set_style_line_color_filtered);
     
 /* Reusing lv_obj_set_style_opa for lv_obj_set_style_line_opa */
 
@@ -9930,7 +9930,7 @@ STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_obj_set_style_arc_color_obj, 3, mp_l
     
 /* Reusing lv_obj_set_style_bg_color for lv_obj_set_style_arc_color_filtered */
 
-STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_obj_set_style_arc_color_filtered_obj, 3, mp_lv_obj_set_style_bg_color, lv_obj_set_style_arc_color_filtered);
+// STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_obj_set_style_arc_color_filtered_obj, 3, mp_lv_obj_set_style_bg_color, lv_obj_set_style_arc_color_filtered);
     
 /* Reusing lv_obj_set_style_opa for lv_obj_set_style_arc_opa */
 
@@ -11711,27 +11711,27 @@ STATIC const mp_rom_map_elem_t obj_locals_dict_table[] = {
     { MP_ROM_QSTR(MP_QSTR_get_style_layout), MP_ROM_PTR(&mp_lv_obj_get_style_layout_obj) },
     { MP_ROM_QSTR(MP_QSTR_get_style_base_dir), MP_ROM_PTR(&mp_lv_obj_get_style_base_dir_obj) },
     { MP_ROM_QSTR(MP_QSTR_get_style_bg_color), MP_ROM_PTR(&mp_lv_obj_get_style_bg_color_obj) },
-    { MP_ROM_QSTR(MP_QSTR_get_style_bg_color_filtered), MP_ROM_PTR(&mp_lv_obj_get_style_bg_color_filtered_obj) },
+    // { MP_ROM_QSTR(MP_QSTR_get_style_bg_color_filtered), MP_ROM_PTR(&mp_lv_obj_get_style_bg_color_filtered_obj) },
     { MP_ROM_QSTR(MP_QSTR_get_style_bg_opa), MP_ROM_PTR(&mp_lv_obj_get_style_bg_opa_obj) },
     { MP_ROM_QSTR(MP_QSTR_get_style_bg_grad_color), MP_ROM_PTR(&mp_lv_obj_get_style_bg_grad_color_obj) },
-    { MP_ROM_QSTR(MP_QSTR_get_style_bg_grad_color_filtered), MP_ROM_PTR(&mp_lv_obj_get_style_bg_grad_color_filtered_obj) },
+    // { MP_ROM_QSTR(MP_QSTR_get_style_bg_grad_color_filtered), MP_ROM_PTR(&mp_lv_obj_get_style_bg_grad_color_filtered_obj) },
     { MP_ROM_QSTR(MP_QSTR_get_style_bg_grad_dir), MP_ROM_PTR(&mp_lv_obj_get_style_bg_grad_dir_obj) },
     { MP_ROM_QSTR(MP_QSTR_get_style_bg_main_stop), MP_ROM_PTR(&mp_lv_obj_get_style_bg_main_stop_obj) },
     { MP_ROM_QSTR(MP_QSTR_get_style_bg_grad_stop), MP_ROM_PTR(&mp_lv_obj_get_style_bg_grad_stop_obj) },
     { MP_ROM_QSTR(MP_QSTR_get_style_bg_img_src), MP_ROM_PTR(&mp_lv_obj_get_style_bg_img_src_obj) },
     { MP_ROM_QSTR(MP_QSTR_get_style_bg_img_opa), MP_ROM_PTR(&mp_lv_obj_get_style_bg_img_opa_obj) },
     { MP_ROM_QSTR(MP_QSTR_get_style_bg_img_recolor), MP_ROM_PTR(&mp_lv_obj_get_style_bg_img_recolor_obj) },
-    { MP_ROM_QSTR(MP_QSTR_get_style_bg_img_recolor_filtered), MP_ROM_PTR(&mp_lv_obj_get_style_bg_img_recolor_filtered_obj) },
+    // { MP_ROM_QSTR(MP_QSTR_get_style_bg_img_recolor_filtered), MP_ROM_PTR(&mp_lv_obj_get_style_bg_img_recolor_filtered_obj) },
     { MP_ROM_QSTR(MP_QSTR_get_style_bg_img_recolor_opa), MP_ROM_PTR(&mp_lv_obj_get_style_bg_img_recolor_opa_obj) },
     { MP_ROM_QSTR(MP_QSTR_get_style_bg_img_tiled), MP_ROM_PTR(&mp_lv_obj_get_style_bg_img_tiled_obj) },
     { MP_ROM_QSTR(MP_QSTR_get_style_border_color), MP_ROM_PTR(&mp_lv_obj_get_style_border_color_obj) },
-    { MP_ROM_QSTR(MP_QSTR_get_style_border_color_filtered), MP_ROM_PTR(&mp_lv_obj_get_style_border_color_filtered_obj) },
+    // { MP_ROM_QSTR(MP_QSTR_get_style_border_color_filtered), MP_ROM_PTR(&mp_lv_obj_get_style_border_color_filtered_obj) },
     { MP_ROM_QSTR(MP_QSTR_get_style_border_opa), MP_ROM_PTR(&mp_lv_obj_get_style_border_opa_obj) },
     { MP_ROM_QSTR(MP_QSTR_get_style_border_width), MP_ROM_PTR(&mp_lv_obj_get_style_border_width_obj) },
     { MP_ROM_QSTR(MP_QSTR_get_style_border_side), MP_ROM_PTR(&mp_lv_obj_get_style_border_side_obj) },
     { MP_ROM_QSTR(MP_QSTR_get_style_border_post), MP_ROM_PTR(&mp_lv_obj_get_style_border_post_obj) },
     { MP_ROM_QSTR(MP_QSTR_get_style_text_color), MP_ROM_PTR(&mp_lv_obj_get_style_text_color_obj) },
-    { MP_ROM_QSTR(MP_QSTR_get_style_text_color_filtered), MP_ROM_PTR(&mp_lv_obj_get_style_text_color_filtered_obj) },
+    // { MP_ROM_QSTR(MP_QSTR_get_style_text_color_filtered), MP_ROM_PTR(&mp_lv_obj_get_style_text_color_filtered_obj) },
     { MP_ROM_QSTR(MP_QSTR_get_style_text_opa), MP_ROM_PTR(&mp_lv_obj_get_style_text_opa_obj) },
     { MP_ROM_QSTR(MP_QSTR_get_style_text_font), MP_ROM_PTR(&mp_lv_obj_get_style_text_font_obj) },
     { MP_ROM_QSTR(MP_QSTR_get_style_text_letter_space), MP_ROM_PTR(&mp_lv_obj_get_style_text_letter_space_obj) },
@@ -11740,11 +11740,11 @@ STATIC const mp_rom_map_elem_t obj_locals_dict_table[] = {
     { MP_ROM_QSTR(MP_QSTR_get_style_text_align), MP_ROM_PTR(&mp_lv_obj_get_style_text_align_obj) },
     { MP_ROM_QSTR(MP_QSTR_get_style_img_opa), MP_ROM_PTR(&mp_lv_obj_get_style_img_opa_obj) },
     { MP_ROM_QSTR(MP_QSTR_get_style_img_recolor), MP_ROM_PTR(&mp_lv_obj_get_style_img_recolor_obj) },
-    { MP_ROM_QSTR(MP_QSTR_get_style_img_recolor_filtered), MP_ROM_PTR(&mp_lv_obj_get_style_img_recolor_filtered_obj) },
+    // { MP_ROM_QSTR(MP_QSTR_get_style_img_recolor_filtered), MP_ROM_PTR(&mp_lv_obj_get_style_img_recolor_filtered_obj) },
     { MP_ROM_QSTR(MP_QSTR_get_style_img_recolor_opa), MP_ROM_PTR(&mp_lv_obj_get_style_img_recolor_opa_obj) },
     { MP_ROM_QSTR(MP_QSTR_get_style_outline_width), MP_ROM_PTR(&mp_lv_obj_get_style_outline_width_obj) },
     { MP_ROM_QSTR(MP_QSTR_get_style_outline_color), MP_ROM_PTR(&mp_lv_obj_get_style_outline_color_obj) },
-    { MP_ROM_QSTR(MP_QSTR_get_style_outline_color_filtered), MP_ROM_PTR(&mp_lv_obj_get_style_outline_color_filtered_obj) },
+    // { MP_ROM_QSTR(MP_QSTR_get_style_outline_color_filtered), MP_ROM_PTR(&mp_lv_obj_get_style_outline_color_filtered_obj) },
     { MP_ROM_QSTR(MP_QSTR_get_style_outline_opa), MP_ROM_PTR(&mp_lv_obj_get_style_outline_opa_obj) },
     { MP_ROM_QSTR(MP_QSTR_get_style_outline_pad), MP_ROM_PTR(&mp_lv_obj_get_style_outline_pad_obj) },
     { MP_ROM_QSTR(MP_QSTR_get_style_shadow_width), MP_ROM_PTR(&mp_lv_obj_get_style_shadow_width_obj) },
@@ -11752,19 +11752,19 @@ STATIC const mp_rom_map_elem_t obj_locals_dict_table[] = {
     { MP_ROM_QSTR(MP_QSTR_get_style_shadow_ofs_y), MP_ROM_PTR(&mp_lv_obj_get_style_shadow_ofs_y_obj) },
     { MP_ROM_QSTR(MP_QSTR_get_style_shadow_spread), MP_ROM_PTR(&mp_lv_obj_get_style_shadow_spread_obj) },
     { MP_ROM_QSTR(MP_QSTR_get_style_shadow_color), MP_ROM_PTR(&mp_lv_obj_get_style_shadow_color_obj) },
-    { MP_ROM_QSTR(MP_QSTR_get_style_shadow_color_filtered), MP_ROM_PTR(&mp_lv_obj_get_style_shadow_color_filtered_obj) },
+    // { MP_ROM_QSTR(MP_QSTR_get_style_shadow_color_filtered), MP_ROM_PTR(&mp_lv_obj_get_style_shadow_color_filtered_obj) },
     { MP_ROM_QSTR(MP_QSTR_get_style_shadow_opa), MP_ROM_PTR(&mp_lv_obj_get_style_shadow_opa_obj) },
     { MP_ROM_QSTR(MP_QSTR_get_style_line_width), MP_ROM_PTR(&mp_lv_obj_get_style_line_width_obj) },
     { MP_ROM_QSTR(MP_QSTR_get_style_line_dash_width), MP_ROM_PTR(&mp_lv_obj_get_style_line_dash_width_obj) },
     { MP_ROM_QSTR(MP_QSTR_get_style_line_dash_gap), MP_ROM_PTR(&mp_lv_obj_get_style_line_dash_gap_obj) },
     { MP_ROM_QSTR(MP_QSTR_get_style_line_rounded), MP_ROM_PTR(&mp_lv_obj_get_style_line_rounded_obj) },
     { MP_ROM_QSTR(MP_QSTR_get_style_line_color), MP_ROM_PTR(&mp_lv_obj_get_style_line_color_obj) },
-    { MP_ROM_QSTR(MP_QSTR_get_style_line_color_filtered), MP_ROM_PTR(&mp_lv_obj_get_style_line_color_filtered_obj) },
+    // { MP_ROM_QSTR(MP_QSTR_get_style_line_color_filtered), MP_ROM_PTR(&mp_lv_obj_get_style_line_color_filtered_obj) },
     { MP_ROM_QSTR(MP_QSTR_get_style_line_opa), MP_ROM_PTR(&mp_lv_obj_get_style_line_opa_obj) },
     { MP_ROM_QSTR(MP_QSTR_get_style_arc_width), MP_ROM_PTR(&mp_lv_obj_get_style_arc_width_obj) },
     { MP_ROM_QSTR(MP_QSTR_get_style_arc_rounded), MP_ROM_PTR(&mp_lv_obj_get_style_arc_rounded_obj) },
     { MP_ROM_QSTR(MP_QSTR_get_style_arc_color), MP_ROM_PTR(&mp_lv_obj_get_style_arc_color_obj) },
-    { MP_ROM_QSTR(MP_QSTR_get_style_arc_color_filtered), MP_ROM_PTR(&mp_lv_obj_get_style_arc_color_filtered_obj) },
+    // { MP_ROM_QSTR(MP_QSTR_get_style_arc_color_filtered), MP_ROM_PTR(&mp_lv_obj_get_style_arc_color_filtered_obj) },
     { MP_ROM_QSTR(MP_QSTR_get_style_arc_opa), MP_ROM_PTR(&mp_lv_obj_get_style_arc_opa_obj) },
     { MP_ROM_QSTR(MP_QSTR_get_style_arc_img_src), MP_ROM_PTR(&mp_lv_obj_get_style_arc_img_src_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_style_pad_all), MP_ROM_PTR(&mp_lv_obj_set_style_pad_all_obj) },
@@ -11916,27 +11916,27 @@ STATIC const mp_rom_map_elem_t obj_locals_dict_table[] = {
     { MP_ROM_QSTR(MP_QSTR_set_style_layout), MP_ROM_PTR(&mp_lv_obj_set_style_layout_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_style_base_dir), MP_ROM_PTR(&mp_lv_obj_set_style_base_dir_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_style_bg_color), MP_ROM_PTR(&mp_lv_obj_set_style_bg_color_obj) },
-    { MP_ROM_QSTR(MP_QSTR_set_style_bg_color_filtered), MP_ROM_PTR(&mp_lv_obj_set_style_bg_color_filtered_obj) },
+    // { MP_ROM_QSTR(MP_QSTR_set_style_bg_color_filtered), MP_ROM_PTR(&mp_lv_obj_set_style_bg_color_filtered_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_style_bg_opa), MP_ROM_PTR(&mp_lv_obj_set_style_bg_opa_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_style_bg_grad_color), MP_ROM_PTR(&mp_lv_obj_set_style_bg_grad_color_obj) },
-    { MP_ROM_QSTR(MP_QSTR_set_style_bg_grad_color_filtered), MP_ROM_PTR(&mp_lv_obj_set_style_bg_grad_color_filtered_obj) },
+    // { MP_ROM_QSTR(MP_QSTR_set_style_bg_grad_color_filtered), MP_ROM_PTR(&mp_lv_obj_set_style_bg_grad_color_filtered_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_style_bg_grad_dir), MP_ROM_PTR(&mp_lv_obj_set_style_bg_grad_dir_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_style_bg_main_stop), MP_ROM_PTR(&mp_lv_obj_set_style_bg_main_stop_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_style_bg_grad_stop), MP_ROM_PTR(&mp_lv_obj_set_style_bg_grad_stop_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_style_bg_img_src), MP_ROM_PTR(&mp_lv_obj_set_style_bg_img_src_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_style_bg_img_opa), MP_ROM_PTR(&mp_lv_obj_set_style_bg_img_opa_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_style_bg_img_recolor), MP_ROM_PTR(&mp_lv_obj_set_style_bg_img_recolor_obj) },
-    { MP_ROM_QSTR(MP_QSTR_set_style_bg_img_recolor_filtered), MP_ROM_PTR(&mp_lv_obj_set_style_bg_img_recolor_filtered_obj) },
+    // { MP_ROM_QSTR(MP_QSTR_set_style_bg_img_recolor_filtered), MP_ROM_PTR(&mp_lv_obj_set_style_bg_img_recolor_filtered_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_style_bg_img_recolor_opa), MP_ROM_PTR(&mp_lv_obj_set_style_bg_img_recolor_opa_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_style_bg_img_tiled), MP_ROM_PTR(&mp_lv_obj_set_style_bg_img_tiled_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_style_border_color), MP_ROM_PTR(&mp_lv_obj_set_style_border_color_obj) },
-    { MP_ROM_QSTR(MP_QSTR_set_style_border_color_filtered), MP_ROM_PTR(&mp_lv_obj_set_style_border_color_filtered_obj) },
+    // { MP_ROM_QSTR(MP_QSTR_set_style_border_color_filtered), MP_ROM_PTR(&mp_lv_obj_set_style_border_color_filtered_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_style_border_opa), MP_ROM_PTR(&mp_lv_obj_set_style_border_opa_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_style_border_width), MP_ROM_PTR(&mp_lv_obj_set_style_border_width_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_style_border_side), MP_ROM_PTR(&mp_lv_obj_set_style_border_side_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_style_border_post), MP_ROM_PTR(&mp_lv_obj_set_style_border_post_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_style_text_color), MP_ROM_PTR(&mp_lv_obj_set_style_text_color_obj) },
-    { MP_ROM_QSTR(MP_QSTR_set_style_text_color_filtered), MP_ROM_PTR(&mp_lv_obj_set_style_text_color_filtered_obj) },
+    // { MP_ROM_QSTR(MP_QSTR_set_style_text_color_filtered), MP_ROM_PTR(&mp_lv_obj_set_style_text_color_filtered_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_style_text_opa), MP_ROM_PTR(&mp_lv_obj_set_style_text_opa_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_style_text_font), MP_ROM_PTR(&mp_lv_obj_set_style_text_font_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_style_text_letter_space), MP_ROM_PTR(&mp_lv_obj_set_style_text_letter_space_obj) },
@@ -11945,11 +11945,11 @@ STATIC const mp_rom_map_elem_t obj_locals_dict_table[] = {
     { MP_ROM_QSTR(MP_QSTR_set_style_text_align), MP_ROM_PTR(&mp_lv_obj_set_style_text_align_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_style_img_opa), MP_ROM_PTR(&mp_lv_obj_set_style_img_opa_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_style_img_recolor), MP_ROM_PTR(&mp_lv_obj_set_style_img_recolor_obj) },
-    { MP_ROM_QSTR(MP_QSTR_set_style_img_recolor_filtered), MP_ROM_PTR(&mp_lv_obj_set_style_img_recolor_filtered_obj) },
+    // { MP_ROM_QSTR(MP_QSTR_set_style_img_recolor_filtered), MP_ROM_PTR(&mp_lv_obj_set_style_img_recolor_filtered_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_style_img_recolor_opa), MP_ROM_PTR(&mp_lv_obj_set_style_img_recolor_opa_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_style_outline_width), MP_ROM_PTR(&mp_lv_obj_set_style_outline_width_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_style_outline_color), MP_ROM_PTR(&mp_lv_obj_set_style_outline_color_obj) },
-    { MP_ROM_QSTR(MP_QSTR_set_style_outline_color_filtered), MP_ROM_PTR(&mp_lv_obj_set_style_outline_color_filtered_obj) },
+    // { MP_ROM_QSTR(MP_QSTR_set_style_outline_color_filtered), MP_ROM_PTR(&mp_lv_obj_set_style_outline_color_filtered_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_style_outline_opa), MP_ROM_PTR(&mp_lv_obj_set_style_outline_opa_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_style_outline_pad), MP_ROM_PTR(&mp_lv_obj_set_style_outline_pad_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_style_shadow_width), MP_ROM_PTR(&mp_lv_obj_set_style_shadow_width_obj) },
@@ -11957,19 +11957,19 @@ STATIC const mp_rom_map_elem_t obj_locals_dict_table[] = {
     { MP_ROM_QSTR(MP_QSTR_set_style_shadow_ofs_y), MP_ROM_PTR(&mp_lv_obj_set_style_shadow_ofs_y_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_style_shadow_spread), MP_ROM_PTR(&mp_lv_obj_set_style_shadow_spread_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_style_shadow_color), MP_ROM_PTR(&mp_lv_obj_set_style_shadow_color_obj) },
-    { MP_ROM_QSTR(MP_QSTR_set_style_shadow_color_filtered), MP_ROM_PTR(&mp_lv_obj_set_style_shadow_color_filtered_obj) },
+    // { MP_ROM_QSTR(MP_QSTR_set_style_shadow_color_filtered), MP_ROM_PTR(&mp_lv_obj_set_style_shadow_color_filtered_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_style_shadow_opa), MP_ROM_PTR(&mp_lv_obj_set_style_shadow_opa_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_style_line_width), MP_ROM_PTR(&mp_lv_obj_set_style_line_width_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_style_line_dash_width), MP_ROM_PTR(&mp_lv_obj_set_style_line_dash_width_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_style_line_dash_gap), MP_ROM_PTR(&mp_lv_obj_set_style_line_dash_gap_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_style_line_rounded), MP_ROM_PTR(&mp_lv_obj_set_style_line_rounded_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_style_line_color), MP_ROM_PTR(&mp_lv_obj_set_style_line_color_obj) },
-    { MP_ROM_QSTR(MP_QSTR_set_style_line_color_filtered), MP_ROM_PTR(&mp_lv_obj_set_style_line_color_filtered_obj) },
+    // { MP_ROM_QSTR(MP_QSTR_set_style_line_color_filtered), MP_ROM_PTR(&mp_lv_obj_set_style_line_color_filtered_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_style_line_opa), MP_ROM_PTR(&mp_lv_obj_set_style_line_opa_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_style_arc_width), MP_ROM_PTR(&mp_lv_obj_set_style_arc_width_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_style_arc_rounded), MP_ROM_PTR(&mp_lv_obj_set_style_arc_rounded_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_style_arc_color), MP_ROM_PTR(&mp_lv_obj_set_style_arc_color_obj) },
-    { MP_ROM_QSTR(MP_QSTR_set_style_arc_color_filtered), MP_ROM_PTR(&mp_lv_obj_set_style_arc_color_filtered_obj) },
+    // { MP_ROM_QSTR(MP_QSTR_set_style_arc_color_filtered), MP_ROM_PTR(&mp_lv_obj_set_style_arc_color_filtered_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_style_arc_opa), MP_ROM_PTR(&mp_lv_obj_set_style_arc_opa_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_style_arc_img_src), MP_ROM_PTR(&mp_lv_obj_set_style_arc_img_src_obj) },
     { MP_ROM_QSTR(MP_QSTR_init_draw_rect_dsc), MP_ROM_PTR(&mp_lv_obj_init_draw_rect_dsc_obj) },
@@ -26624,7 +26624,7 @@ STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_style_set_bg_color_obj, 2, mp_lv_sty
     
 /* Reusing lv_style_set_bg_color for lv_style_set_bg_color_filtered */
 
-STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_style_set_bg_color_filtered_obj, 2, mp_lv_style_set_bg_color, lv_style_set_bg_color_filtered);
+// STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_style_set_bg_color_filtered_obj, 2, mp_lv_style_set_bg_color, lv_style_set_bg_color_filtered);
     
 /* Reusing lv_style_set_opa for lv_style_set_bg_opa */
 
@@ -26636,7 +26636,7 @@ STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_style_set_bg_grad_color_obj, 2, mp_l
     
 /* Reusing lv_style_set_bg_color for lv_style_set_bg_grad_color_filtered */
 
-STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_style_set_bg_grad_color_filtered_obj, 2, mp_lv_style_set_bg_color, lv_style_set_bg_grad_color_filtered);
+// STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_style_set_bg_grad_color_filtered_obj, 2, mp_lv_style_set_bg_color, lv_style_set_bg_grad_color_filtered);
     
 
 /*
@@ -26694,7 +26694,7 @@ STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_style_set_bg_img_recolor_obj, 2, mp_
     
 /* Reusing lv_style_set_bg_color for lv_style_set_bg_img_recolor_filtered */
 
-STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_style_set_bg_img_recolor_filtered_obj, 2, mp_lv_style_set_bg_color, lv_style_set_bg_img_recolor_filtered);
+// STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_style_set_bg_img_recolor_filtered_obj, 2, mp_lv_style_set_bg_color, lv_style_set_bg_img_recolor_filtered);
     
 /* Reusing lv_style_set_opa for lv_style_set_bg_img_recolor_opa */
 
@@ -26710,7 +26710,7 @@ STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_style_set_border_color_obj, 2, mp_lv
     
 /* Reusing lv_style_set_bg_color for lv_style_set_border_color_filtered */
 
-STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_style_set_border_color_filtered_obj, 2, mp_lv_style_set_bg_color, lv_style_set_border_color_filtered);
+// STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_style_set_border_color_filtered_obj, 2, mp_lv_style_set_bg_color, lv_style_set_border_color_filtered);
     
 /* Reusing lv_style_set_opa for lv_style_set_border_opa */
 
@@ -26749,7 +26749,7 @@ STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_style_set_text_color_obj, 2, mp_lv_s
     
 /* Reusing lv_style_set_bg_color for lv_style_set_text_color_filtered */
 
-STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_style_set_text_color_filtered_obj, 2, mp_lv_style_set_bg_color, lv_style_set_text_color_filtered);
+// STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_style_set_text_color_filtered_obj, 2, mp_lv_style_set_bg_color, lv_style_set_text_color_filtered);
     
 /* Reusing lv_style_set_opa for lv_style_set_text_opa */
 
@@ -27395,7 +27395,7 @@ STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_style_set_img_recolor_obj, 2, mp_lv_
     
 /* Reusing lv_style_set_bg_color for lv_style_set_img_recolor_filtered */
 
-STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_style_set_img_recolor_filtered_obj, 2, mp_lv_style_set_bg_color, lv_style_set_img_recolor_filtered);
+// STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_style_set_img_recolor_filtered_obj, 2, mp_lv_style_set_bg_color, lv_style_set_img_recolor_filtered);
     
 /* Reusing lv_style_set_opa for lv_style_set_img_recolor_opa */
 
@@ -27411,7 +27411,7 @@ STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_style_set_outline_color_obj, 2, mp_l
     
 /* Reusing lv_style_set_bg_color for lv_style_set_outline_color_filtered */
 
-STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_style_set_outline_color_filtered_obj, 2, mp_lv_style_set_bg_color, lv_style_set_outline_color_filtered);
+// STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_style_set_outline_color_filtered_obj, 2, mp_lv_style_set_bg_color, lv_style_set_outline_color_filtered);
     
 /* Reusing lv_style_set_opa for lv_style_set_outline_opa */
 
@@ -27443,7 +27443,7 @@ STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_style_set_shadow_color_obj, 2, mp_lv
     
 /* Reusing lv_style_set_bg_color for lv_style_set_shadow_color_filtered */
 
-STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_style_set_shadow_color_filtered_obj, 2, mp_lv_style_set_bg_color, lv_style_set_shadow_color_filtered);
+// STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_style_set_shadow_color_filtered_obj, 2, mp_lv_style_set_bg_color, lv_style_set_shadow_color_filtered);
     
 /* Reusing lv_style_set_opa for lv_style_set_shadow_opa */
 
@@ -27471,7 +27471,7 @@ STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_style_set_line_color_obj, 2, mp_lv_s
     
 /* Reusing lv_style_set_bg_color for lv_style_set_line_color_filtered */
 
-STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_style_set_line_color_filtered_obj, 2, mp_lv_style_set_bg_color, lv_style_set_line_color_filtered);
+// STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_style_set_line_color_filtered_obj, 2, mp_lv_style_set_bg_color, lv_style_set_line_color_filtered);
     
 /* Reusing lv_style_set_opa for lv_style_set_line_opa */
 
@@ -27492,7 +27492,7 @@ STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_style_set_arc_color_obj, 2, mp_lv_st
     
 /* Reusing lv_style_set_bg_color for lv_style_set_arc_color_filtered */
 
-STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_style_set_arc_color_filtered_obj, 2, mp_lv_style_set_bg_color, lv_style_set_arc_color_filtered);
+// STATIC MP_DEFINE_CONST_LV_FUN_OBJ_VAR(mp_lv_style_set_arc_color_filtered_obj, 2, mp_lv_style_set_bg_color, lv_style_set_arc_color_filtered);
     
 /* Reusing lv_style_set_opa for lv_style_set_arc_opa */
 
@@ -27689,27 +27689,27 @@ STATIC const mp_rom_map_elem_t mp_lv_style_t_locals_dict_table[] = {
     { MP_ROM_QSTR(MP_QSTR_set_layout), MP_ROM_PTR(&mp_lv_style_set_layout_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_base_dir), MP_ROM_PTR(&mp_lv_style_set_base_dir_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_bg_color), MP_ROM_PTR(&mp_lv_style_set_bg_color_obj) },
-    { MP_ROM_QSTR(MP_QSTR_set_bg_color_filtered), MP_ROM_PTR(&mp_lv_style_set_bg_color_filtered_obj) },
+    // { MP_ROM_QSTR(MP_QSTR_set_bg_color_filtered), MP_ROM_PTR(&mp_lv_style_set_bg_color_filtered_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_bg_opa), MP_ROM_PTR(&mp_lv_style_set_bg_opa_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_bg_grad_color), MP_ROM_PTR(&mp_lv_style_set_bg_grad_color_obj) },
-    { MP_ROM_QSTR(MP_QSTR_set_bg_grad_color_filtered), MP_ROM_PTR(&mp_lv_style_set_bg_grad_color_filtered_obj) },
+    // { MP_ROM_QSTR(MP_QSTR_set_bg_grad_color_filtered), MP_ROM_PTR(&mp_lv_style_set_bg_grad_color_filtered_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_bg_grad_dir), MP_ROM_PTR(&mp_lv_style_set_bg_grad_dir_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_bg_main_stop), MP_ROM_PTR(&mp_lv_style_set_bg_main_stop_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_bg_grad_stop), MP_ROM_PTR(&mp_lv_style_set_bg_grad_stop_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_bg_img_src), MP_ROM_PTR(&mp_lv_style_set_bg_img_src_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_bg_img_opa), MP_ROM_PTR(&mp_lv_style_set_bg_img_opa_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_bg_img_recolor), MP_ROM_PTR(&mp_lv_style_set_bg_img_recolor_obj) },
-    { MP_ROM_QSTR(MP_QSTR_set_bg_img_recolor_filtered), MP_ROM_PTR(&mp_lv_style_set_bg_img_recolor_filtered_obj) },
+    // { MP_ROM_QSTR(MP_QSTR_set_bg_img_recolor_filtered), MP_ROM_PTR(&mp_lv_style_set_bg_img_recolor_filtered_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_bg_img_recolor_opa), MP_ROM_PTR(&mp_lv_style_set_bg_img_recolor_opa_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_bg_img_tiled), MP_ROM_PTR(&mp_lv_style_set_bg_img_tiled_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_border_color), MP_ROM_PTR(&mp_lv_style_set_border_color_obj) },
-    { MP_ROM_QSTR(MP_QSTR_set_border_color_filtered), MP_ROM_PTR(&mp_lv_style_set_border_color_filtered_obj) },
+    // { MP_ROM_QSTR(MP_QSTR_set_border_color_filtered), MP_ROM_PTR(&mp_lv_style_set_border_color_filtered_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_border_opa), MP_ROM_PTR(&mp_lv_style_set_border_opa_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_border_width), MP_ROM_PTR(&mp_lv_style_set_border_width_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_border_side), MP_ROM_PTR(&mp_lv_style_set_border_side_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_border_post), MP_ROM_PTR(&mp_lv_style_set_border_post_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_text_color), MP_ROM_PTR(&mp_lv_style_set_text_color_obj) },
-    { MP_ROM_QSTR(MP_QSTR_set_text_color_filtered), MP_ROM_PTR(&mp_lv_style_set_text_color_filtered_obj) },
+    // { MP_ROM_QSTR(MP_QSTR_set_text_color_filtered), MP_ROM_PTR(&mp_lv_style_set_text_color_filtered_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_text_opa), MP_ROM_PTR(&mp_lv_style_set_text_opa_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_text_font), MP_ROM_PTR(&mp_lv_style_set_text_font_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_text_font_v2), MP_ROM_PTR(&mp_lv_style_set_text_font_v2_obj) },
@@ -27719,11 +27719,11 @@ STATIC const mp_rom_map_elem_t mp_lv_style_t_locals_dict_table[] = {
     { MP_ROM_QSTR(MP_QSTR_set_text_align), MP_ROM_PTR(&mp_lv_style_set_text_align_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_img_opa), MP_ROM_PTR(&mp_lv_style_set_img_opa_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_img_recolor), MP_ROM_PTR(&mp_lv_style_set_img_recolor_obj) },
-    { MP_ROM_QSTR(MP_QSTR_set_img_recolor_filtered), MP_ROM_PTR(&mp_lv_style_set_img_recolor_filtered_obj) },
+    // { MP_ROM_QSTR(MP_QSTR_set_img_recolor_filtered), MP_ROM_PTR(&mp_lv_style_set_img_recolor_filtered_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_img_recolor_opa), MP_ROM_PTR(&mp_lv_style_set_img_recolor_opa_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_outline_width), MP_ROM_PTR(&mp_lv_style_set_outline_width_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_outline_color), MP_ROM_PTR(&mp_lv_style_set_outline_color_obj) },
-    { MP_ROM_QSTR(MP_QSTR_set_outline_color_filtered), MP_ROM_PTR(&mp_lv_style_set_outline_color_filtered_obj) },
+    // { MP_ROM_QSTR(MP_QSTR_set_outline_color_filtered), MP_ROM_PTR(&mp_lv_style_set_outline_color_filtered_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_outline_opa), MP_ROM_PTR(&mp_lv_style_set_outline_opa_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_outline_pad), MP_ROM_PTR(&mp_lv_style_set_outline_pad_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_shadow_width), MP_ROM_PTR(&mp_lv_style_set_shadow_width_obj) },
@@ -27731,20 +27731,20 @@ STATIC const mp_rom_map_elem_t mp_lv_style_t_locals_dict_table[] = {
     { MP_ROM_QSTR(MP_QSTR_set_shadow_ofs_y), MP_ROM_PTR(&mp_lv_style_set_shadow_ofs_y_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_shadow_spread), MP_ROM_PTR(&mp_lv_style_set_shadow_spread_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_shadow_color), MP_ROM_PTR(&mp_lv_style_set_shadow_color_obj) },
-    { MP_ROM_QSTR(MP_QSTR_set_shadow_color_filtered), MP_ROM_PTR(&mp_lv_style_set_shadow_color_filtered_obj) },
+    // { MP_ROM_QSTR(MP_QSTR_set_shadow_color_filtered), MP_ROM_PTR(&mp_lv_style_set_shadow_color_filtered_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_shadow_opa), MP_ROM_PTR(&mp_lv_style_set_shadow_opa_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_line_width), MP_ROM_PTR(&mp_lv_style_set_line_width_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_line_dash_width), MP_ROM_PTR(&mp_lv_style_set_line_dash_width_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_line_dash_gap), MP_ROM_PTR(&mp_lv_style_set_line_dash_gap_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_line_rounded), MP_ROM_PTR(&mp_lv_style_set_line_rounded_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_line_color), MP_ROM_PTR(&mp_lv_style_set_line_color_obj) },
-    { MP_ROM_QSTR(MP_QSTR_set_line_color_filtered), MP_ROM_PTR(&mp_lv_style_set_line_color_filtered_obj) },
+    // { MP_ROM_QSTR(MP_QSTR_set_line_color_filtered), MP_ROM_PTR(&mp_lv_style_set_line_color_filtered_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_line_opa), MP_ROM_PTR(&mp_lv_style_set_line_opa_obj) },
 #if LV_USE_ARC != 0
     { MP_ROM_QSTR(MP_QSTR_set_arc_width), MP_ROM_PTR(&mp_lv_style_set_arc_width_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_arc_rounded), MP_ROM_PTR(&mp_lv_style_set_arc_rounded_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_arc_color), MP_ROM_PTR(&mp_lv_style_set_arc_color_obj) },
-    { MP_ROM_QSTR(MP_QSTR_set_arc_color_filtered), MP_ROM_PTR(&mp_lv_style_set_arc_color_filtered_obj) },
+    // { MP_ROM_QSTR(MP_QSTR_set_arc_color_filtered), MP_ROM_PTR(&mp_lv_style_set_arc_color_filtered_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_arc_opa), MP_ROM_PTR(&mp_lv_style_set_arc_opa_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_arc_img_src), MP_ROM_PTR(&mp_lv_style_set_arc_img_src_obj) },
 #endif
index d7fdad0..ef9b65f 100644 (file)
@@ -545,7 +545,6 @@ int lwm2m_set_config(Helios_Config_t *config,Helios_Config_Type config_type,mp_o
                        if ( config_type == config_list[iloop_num].config_type){
                                if ( config_list[iloop_num].func != NULL )
                                {
-                                       LWM2M_CONFIG_DEAL_TYPE deal_type = LWM2M_CREATE;
                                        return config_list[iloop_num].func(config,args,deal_type);
                                }else{  // no config func
                                        return -1;
index 7b3ac86..5b9d86b 100644 (file)
@@ -160,6 +160,10 @@ STATIC const mp_rom_map_elem_t machine_module_globals_table[] = {
        { MP_ROM_QSTR(MP_QSTR_Key), MP_ROM_PTR(&machine_key_type) },
 #endif
 
+#if MICROPY_QPY_MACHINE_ONE_WIRE
+               { MP_ROM_QSTR(MP_QSTR_OneWire), MP_ROM_PTR(&machine_one_wire_type) },
+#endif
+
 #if MICROPY_QPY_MACHINE_IOV0LTSET
     { MP_ROM_QSTR(MP_QSTR_IOVoltSet), MP_ROM_PTR(&IOVoltSet_obj) }, 
        { MP_ROM_QSTR(MP_QSTR_AONIO), MP_ROM_INT(AONIO) },
index 5929bca..33eae8a 100644 (file)
@@ -44,7 +44,7 @@ extern const mp_obj_type_t machine_simulation_spi_type;
 #if defined(PLAT_ASR) || defined(PLAT_Unisoc) ||defined(PLAT_ASR_1606) || defined(PLAT_Unisoc_8910_R05)
 extern const mp_obj_type_t machine_keypad_type;
 #endif
-
+extern const mp_obj_type_t machine_one_wire_type;
 
 #if defined(PLAT_ASR_1606) || defined(PLAT_EIGEN) || defined(PLAT_Unisoc) || defined(PLAT_Unisoc_8910_R05)
 extern const mp_obj_type_t machine_key_type;
index 80b6885..920315c 100644 (file)
@@ -134,8 +134,9 @@ STATIC mp_obj_t qpy_net_get_csq(void)
     {
         return mp_obj_new_int(-1);
     }
-
+       MP_THREAD_GIL_EXIT();
        csq = Helios_Nw_GetCSQ(cur_simid);
+       MP_THREAD_GIL_ENTER();
        if(csq != -1)
        {
                return mp_obj_new_int(csq);
@@ -319,7 +320,9 @@ STATIC mp_obj_t qpy_net_get_selection(void)
     memset(&info, 0, sizeof(Helios_NwSelectionInfoStruct));
 
     int cur_simid = _get_current_simid();
+       MP_THREAD_GIL_EXIT();
        ret = Helios_Nw_GetSelection(cur_simid, &info);
+       MP_THREAD_GIL_ENTER();
        if (ret == 0)
        {
                mp_obj_t tuple[4] = {
@@ -352,7 +355,9 @@ STATIC mp_obj_t qpy_net_get_reg_status(void)
     memset(&info, 0, sizeof(Helios_NwRegisterStatusInfoStruct));
 
     int cur_simid = _get_current_simid();
+       MP_THREAD_GIL_EXIT();
        ret = Helios_Nw_GetRegisterStatus(cur_simid, &info);
+       MP_THREAD_GIL_ENTER();
        if (ret == 0)
        {
                mp_obj_t voice_list[6] = {
@@ -1586,6 +1591,58 @@ STATIC mp_obj_t qpy_module_net_deinit(void)
 }
 STATIC MP_DEFINE_CONST_FUN_OBJ_0(qpy_module_net_deinit_obj, qpy_module_net_deinit);
 
+#if MICROPY_QPY_MODULE_FTM_MODE
+#include "helios_ftm.h"
+#include "helios_os.h"
+STATIC mp_obj_t qpy_ftm_mode_switch(mp_obj_t mode)
+{
+       int ret = -1;
+       uint8_t ftm_mode = (uint8_t)mp_obj_get_int(mode);
+       if(ftm_mode > 1) return mp_obj_new_int(-1);
+
+       MP_THREAD_GIL_EXIT();
+       if(ftm_mode)
+       {
+               ret = Helios_Dev_SetModemFunction(!ftm_mode, 0);
+               Helios_sleep(1);
+               ret = (!ret) ? helios_ftm_mode_switch(ftm_mode) : -1;
+       }
+       else
+       {
+               ret = helios_ftm_mode_switch(ftm_mode);
+               Helios_sleep(1);
+               ret = (!ret) ? Helios_Dev_SetModemFunction(!ftm_mode, 0) : -1;
+       }
+       MP_THREAD_GIL_ENTER();  
+
+       return mp_obj_new_int(ret);
+}
+STATIC MP_DEFINE_CONST_FUN_OBJ_1(qpy_ftm_mode_switch_obj, qpy_ftm_mode_switch);
+
+STATIC mp_obj_t qpy_ftm_mode_start(mp_obj_t band, mp_obj_t channel, mp_obj_t power)
+{
+       int ret = -1;
+
+       MP_THREAD_GIL_EXIT();
+       ret = helios_ftm_test_start((uint16_t)mp_obj_get_int(band), (uint32_t)mp_obj_get_int(channel), (uint8_t)mp_obj_get_int(power));
+       MP_THREAD_GIL_ENTER();  
+
+       return mp_obj_new_int(ret);
+}
+STATIC MP_DEFINE_CONST_FUN_OBJ_3(qpy_ftm_mode_start_obj, qpy_ftm_mode_start);
+
+STATIC mp_obj_t qpy_ftm_mode_stop(void)
+{
+       int ret = -1;
+       MP_THREAD_GIL_EXIT();
+       //uint16_t band, uint32_t tx_channel,uint8_t tx_power
+       ret = helios_ftm_test_stop();
+       MP_THREAD_GIL_ENTER();  
+
+       return mp_obj_new_int(ret);
+}
+STATIC MP_DEFINE_CONST_FUN_OBJ_0(qpy_ftm_mode_stop_obj, qpy_ftm_mode_stop);
+#endif
 
 STATIC const mp_rom_map_elem_t net_module_globals_table[] = {
        { MP_OBJ_NEW_QSTR(MP_QSTR___name__),    MP_ROM_QSTR(MP_QSTR_net)                                        },
@@ -1624,6 +1681,12 @@ STATIC const mp_rom_map_elem_t net_module_globals_table[] = {
     { MP_ROM_QSTR(MP_QSTR_bandRst),         MP_ROM_PTR(&qpy_net_band_restore_obj) },
 #endif
 
+#if MICROPY_QPY_MODULE_FTM_MODE
+       { MP_ROM_QSTR(MP_QSTR_ftmModeSwitch),         MP_ROM_PTR(&qpy_ftm_mode_switch_obj) },
+       { MP_ROM_QSTR(MP_QSTR_ftmTestStart),         MP_ROM_PTR(&qpy_ftm_mode_start_obj) },
+       { MP_ROM_QSTR(MP_QSTR_ftmTestStop),         MP_ROM_PTR(&qpy_ftm_mode_stop_obj) },
+#endif
+
 };
 
 STATIC MP_DEFINE_CONST_DICT(net_module_globals, net_module_globals_table);
index e6e7b91..61564c6 100644 (file)
@@ -100,6 +100,9 @@ typedef struct _poc_obj_t
     #if defined(CONFIG_POC_ZZD) || defined(CONFIG_POC_YDWL)
     c_callback_t notify_spker_callback;
     #endif
+    #if defined(CONFIG_POC_YDWL)
+    c_callback_t tts_init_callback;
+    #endif
 } poc_obj_t;
 
 static poc_obj_t poc_obj = {0};
@@ -867,10 +870,10 @@ STATIC mp_obj_t qpy_poc_init(mp_obj_t arg)
     poc_ops->register_request_lbs_info_cb(qpy_poc_register_request_lbs_info_callback);
        poc_ops->register_error_cb(qpy_poc_register_error_callback);
     poc_ops->register_member_audio_enable_cb(qpy_poc_register_member_audio_enable_callback);
-    poc_ops->register_sos_status_cb(qpy_poc_register_member_audio_enable_callback);
-    poc_ops->register_sos_map_cb(qpy_poc_register_member_audio_enable_callback);
-    poc_ops->register_recv_sos_info_cb(qpy_poc_register_member_audio_enable_callback);
-    poc_ops->register_recv_enclosure_alarm_cb(qpy_poc_register_member_audio_enable_callback);
+    poc_ops->register_sos_status_cb(qpy_poc_register_sos_status_callback);
+    poc_ops->register_sos_map_cb(qpy_poc_register_sos_map_callback);
+    poc_ops->register_recv_sos_info_cb(qpy_poc_register_recv_sos_info_callback);
+    poc_ops->register_recv_enclosure_alarm_cb(qpy_poc_register_recv_enclosure_alarm_callback);
     poc_ops->register_recv_broadcast_info_cb(qpy_poc_register_recv_broadcast_info_callback);
     #endif  //CONFIG_POC_BND_XIN
     #endif   // CONFIG_POC_QS
@@ -1256,7 +1259,7 @@ STATIC void qpy_poc_register_recv_enclosure_alarm_callback(int alarm, char *tips
 #endif
 
 //tone switch
-#if !defined(CONFIG_POC_QS) && !defined(CONFIG_POC_ZZD) && !defined(CONFIG_POC_YDWL)
+#if !defined(CONFIG_POC_ZZD) && !defined(CONFIG_POC_YDWL)
 STATIC mp_obj_t qpy_poc_set_tone_switch(mp_obj_t value) 
 {
        poc_ops_t *poc_ops = poc_get_ops();
@@ -1870,6 +1873,41 @@ STATIC mp_obj_t qpy_poc_set_account(mp_obj_t ip, mp_obj_t id, mp_obj_t pwd)
 }
 STATIC MP_DEFINE_CONST_FUN_OBJ_3(qpy_poc_set_account_obj, qpy_poc_set_account);
 
+void qpy_poc_tts_init_callback(int id, int status) {
+    POC_LOG("qpy_poc_tts_init_callback start \n");
+    if(poc_obj.tts_init_callback.cb) {
+        st_CallBack_POC *poc_para = qpy_poc_pushCallBack(2);
+        poc_para->para[0].type = POC_CAL_ELEM_INT;
+        poc_para->para[0].data = calloc(1, sizeof(int));
+        poc_para->para[1].type = POC_CAL_ELEM_INT;
+        poc_para->para[1].data = calloc(1, sizeof(int));
+        *(int*)poc_para->para[0].data = id;
+        *(int*)poc_para->para[1].data = status;
+        poc_para->callback = poc_obj.tts_init_callback;
+        POC_LOG("qpy_poc_tts_init_callback id:%d,status:%d \n", id, status);
+        qpy_send_msg_to_callback_deal_thread(CALLBACK_TYPE_ID_POC, poc_para);
+    }
+}
+
+STATIC mp_obj_t qpy_poc_tts_init(mp_obj_t callback)
+{
+    poc_ops_t *poc_ops = poc_get_ops();
+    mp_sched_schedule_callback_register(&(poc_obj.tts_init_callback), callback);
+    POC_LOG("tts_init \n");
+    poc_ops->tts_init(qpy_poc_tts_init_callback);
+       return mp_const_none;
+}
+STATIC MP_DEFINE_CONST_FUN_OBJ_1(qpy_poc_tts_init_obj, qpy_poc_tts_init);
+
+STATIC mp_obj_t qpy_poc_tts_play(mp_obj_t data_obj) {
+    mp_buffer_info_t bufinfo;
+    mp_get_buffer_raise(data_obj, &bufinfo, MP_BUFFER_READ);
+    poc_ops_t *poc_ops = poc_get_ops();
+    poc_ops->tts_play(bufinfo.buf, bufinfo.len);
+    return mp_const_none;
+}
+STATIC MP_DEFINE_CONST_FUN_OBJ_1(qpy_poc_tts_play_obj, qpy_poc_tts_play);
+
 #endif
 
 #if defined(CONFIG_POC_ZZD) || defined(CONFIG_POC_YDWL)
@@ -2174,7 +2212,7 @@ STATIC mp_obj_t qpy_poc_record_get_list(void) {
         int i;
         for(i = 0; i < actual_read_num; i++) {
             record_list_py[i*3] = mp_obj_new_str(ydwl_record_list->ucUserName[i],strlen(ydwl_record_list->ucUserName[i]));
-            record_list_py[i*3+1] = mp_obj_new_str(ydwl_record_list->ucFolderName[i],strlen(ydwl_record_list->ucFolderName[i]));
+            record_list_py[i*3+1] = mp_obj_new_str(ydwl_record_list->FolderName[i],strlen(ydwl_record_list->FolderName[i]));
             record_list_py[i*3+2] = mp_obj_new_str(ydwl_record_list->ucFileName[i],strlen(ydwl_record_list->ucFileName[i]));
             tuple_return[i] = mp_obj_new_list(3, record_list_py+3*i);
         }
@@ -2867,6 +2905,168 @@ STATIC mp_obj_t qpy_poc_request_flush_member(mp_obj_t args)
 STATIC MP_DEFINE_CONST_FUN_OBJ_1(qpy_poc_request_flush_member_obj, qpy_poc_request_flush_member);
 
 
+STATIC mp_obj_t qpy_poc_get_is_support_location()
+{
+    poc_ops_t *poc_ops = poc_get_ops();
+    int ret = poc_ops->get_is_support_location();
+       return mp_obj_new_int(ret);
+}
+STATIC MP_DEFINE_CONST_FUN_OBJ_0(qpy_poc_get_is_support_location_obj, qpy_poc_get_is_support_location);
+
+STATIC mp_obj_t qpy_poc_set_dev_location_type(mp_obj_t location_type,mp_obj_t isenable)
+{
+    poc_ops_t *poc_ops = poc_get_ops();
+    if (!mp_obj_is_int(location_type) || !mp_obj_is_int(isenable) ){
+        return mp_obj_new_int(-1);
+    }
+    LOCATION_TYPE type = (LOCATION_TYPE)mp_obj_get_int(location_type);
+    LOCATION_TYPE is_enable = (LOCATION_TYPE)mp_obj_get_int(isenable);
+    poc_ops->set_dev_location_type(type,is_enable);
+       return mp_obj_new_int(0);
+}
+STATIC MP_DEFINE_CONST_FUN_OBJ_2(qpy_poc_set_dev_location_type_obj, qpy_poc_set_dev_location_type);
+
+STATIC mp_obj_t qpy_poc_get_is_support_gps()
+{
+    poc_ops_t *poc_ops = poc_get_ops();
+    int ret = poc_ops->get_is_support_gps();
+       return mp_obj_new_int(ret);
+}
+STATIC MP_DEFINE_CONST_FUN_OBJ_0(qpy_poc_get_is_support_gps_obj, qpy_poc_get_is_support_gps);
+
+STATIC mp_obj_t qpy_poc_get_is_support_wifi()
+{
+    poc_ops_t *poc_ops = poc_get_ops();
+    int ret = poc_ops->get_is_support_wifi();
+       return mp_obj_new_int(ret);
+}
+STATIC MP_DEFINE_CONST_FUN_OBJ_0(qpy_poc_get_is_support_wifi_obj, qpy_poc_get_is_support_wifi);
+
+STATIC mp_obj_t qpy_poc_open_gps()
+{
+    poc_ops_t *poc_ops = poc_get_ops();
+    poc_ops->open_gps();
+       return mp_const_none;
+}
+STATIC MP_DEFINE_CONST_FUN_OBJ_0(qpy_poc_open_gps_obj, qpy_poc_open_gps);
+STATIC mp_obj_t qpy_poc_close_gps()
+{
+    poc_ops_t *poc_ops = poc_get_ops();
+    poc_ops->close_gps();
+       return mp_const_none;
+}
+STATIC MP_DEFINE_CONST_FUN_OBJ_0(qpy_poc_close_gps_obj, qpy_poc_close_gps);
+
+
+STATIC mp_obj_t qpy_poc_get_gps_set_value()
+{
+    poc_ops_t *poc_ops = poc_get_ops();
+    int ret = poc_ops->get_gps_set_value();
+       return mp_obj_new_int(ret);
+}
+STATIC MP_DEFINE_CONST_FUN_OBJ_0(qpy_poc_get_gps_set_value_obj, qpy_poc_get_gps_set_value);
+
+STATIC mp_obj_t qpy_poc_play_tts_request_location_permission()
+{
+    poc_ops_t *poc_ops = poc_get_ops();
+    poc_ops->play_tts_request_location_permission();
+       return mp_const_none;
+}
+STATIC MP_DEFINE_CONST_FUN_OBJ_0(qpy_poc_play_tts_request_location_permission_obj, qpy_poc_play_tts_request_location_permission);
+
+STATIC mp_obj_t qpy_poc_is_in_gps_information_ui()
+{
+    poc_ops_t *poc_ops = poc_get_ops();
+    int ret = poc_ops->is_in_gps_information_ui();
+       return mp_obj_new_int(ret);
+}
+STATIC MP_DEFINE_CONST_FUN_OBJ_0(qpy_poc_is_in_gps_information_ui_obj, qpy_poc_is_in_gps_information_ui);
+
+STATIC mp_obj_t qpy_poc_update_network_mcc_mnc_lac_cid_infomation()
+{
+    poc_ops_t *poc_ops = poc_get_ops();
+
+    int pMobileCountryCode;
+    int pMobileNetworkCode;
+    int pLocationAreaCode;
+       int pCellTowerId;
+    int pRssi;
+    MP_THREAD_GIL_EXIT();
+    poc_ops->update_network_mcc_mnc_lac_cid_infomation(&pMobileCountryCode,&pMobileNetworkCode,&pLocationAreaCode,&pCellTowerId,&pRssi);
+    MP_THREAD_GIL_ENTER();
+    mp_obj_t tuple[5] = {
+        mp_obj_new_int(pMobileCountryCode),
+        mp_obj_new_int(pMobileNetworkCode),
+        mp_obj_new_int(pLocationAreaCode),
+        mp_obj_new_int(pCellTowerId),
+        mp_obj_new_int(pRssi),
+    };
+    return mp_obj_new_tuple(5, tuple);
+}
+STATIC MP_DEFINE_CONST_FUN_OBJ_0(qpy_poc_update_network_mcc_mnc_lac_cid_infomation_obj, qpy_poc_update_network_mcc_mnc_lac_cid_infomation);
+
+STATIC mp_obj_t qpy_poc_upload_gps_data(mp_obj_t longitude_in, mp_obj_t latitude_in, mp_obj_t accuracy_in)
+{
+    int ret = 0;
+    double longitude = 0.0;
+    double latitude  = 0.0;
+    double accuracy  = 0.0;
+    if ( !mp_obj_is_float(longitude_in) || !mp_obj_is_float(latitude_in) || !mp_obj_is_float(accuracy_in)  ){
+        return mp_obj_new_int(-1);
+    }
+    longitude = (double)mp_obj_float_get(longitude_in);
+    latitude  = (double)mp_obj_float_get(latitude_in);
+    accuracy  = (double)mp_obj_float_get(accuracy_in);
+    poc_ops_t *poc_ops = poc_get_ops();
+    poc_ops->upload_gps_data(longitude, latitude, accuracy);
+       return mp_const_none;
+}
+STATIC MP_DEFINE_CONST_FUN_OBJ_3(qpy_poc_upload_gps_data_obj, qpy_poc_upload_gps_data);
+
+STATIC mp_obj_t qpy_poc_start_scan_wifi(void)
+{
+    poc_ops_t *poc_ops = poc_get_ops();
+    poc_ops->start_scan_wifi();
+    return mp_const_none;
+}
+STATIC MP_DEFINE_CONST_FUN_OBJ_0(qpy_poc_start_scan_wifi_obj,qpy_poc_start_scan_wifi);
+
+STATIC mp_obj_t qpy_poc_upload_wifi_data(mp_obj_t lcoationwifimac, mp_obj_t localtionwifirssi,mp_obj_t wificount)
+{
+
+    char pLocationWifi[6][32];
+    int  pLocationWifi_len = 0;
+    int localtionwifi[6];
+    int localtionwifi_len = 0;
+    
+    memset(pLocationWifi,0x00,sizeof(pLocationWifi));
+    memset(localtionwifi,0x00,sizeof(localtionwifi));
+
+    int wifi_count = (int)mp_obj_get_int(wificount);
+    poc_ops_t *poc_ops = poc_get_ops();
+    mp_buffer_info_t bufinfo_pLocationWifi={0};
+    mp_buffer_info_t bufinfo_localtionwifirssi={0};
+    mp_get_buffer_raise(lcoationwifimac, &bufinfo_pLocationWifi, MP_BUFFER_READ);
+    mp_get_buffer_raise(localtionwifirssi, &bufinfo_localtionwifirssi, MP_BUFFER_READ);
+
+    pLocationWifi_len = bufinfo_pLocationWifi.len;
+    localtionwifi_len = bufinfo_pLocationWifi.len;
+    memcpy(pLocationWifi,bufinfo_pLocationWifi.buf,pLocationWifi_len);
+    memcpy(localtionwifi,bufinfo_localtionwifirssi.buf,localtionwifi_len);
+    poc_ops->upload_wifi_data(pLocationWifi,pLocationWifi_len, localtionwifi, localtionwifi_len,wifi_count);
+    return mp_const_none;
+}
+STATIC MP_DEFINE_CONST_FUN_OBJ_3(qpy_poc_upload_wifi_data_obj,qpy_poc_upload_wifi_data);
+
+STATIC mp_obj_t qpy_poc_send_heart_package(void)
+{
+    poc_ops_t *poc_ops = poc_get_ops();
+    poc_ops->send_heart_package();
+    return mp_const_none;
+}
+STATIC MP_DEFINE_CONST_FUN_OBJ_0(qpy_poc_send_heart_package_obj,qpy_poc_send_heart_package);
+
+
 #endif // only CONFIG_POC_QS
 
 #endif // !CONFIG_POC_QS
@@ -3064,8 +3264,15 @@ STATIC const mp_rom_map_elem_t mp_module_poc_globals_table[] = {
     { MP_ROM_QSTR(MP_QSTR_record_stop_play), MP_ROM_PTR(&qpy_poc_record_stop_play_obj) },
     // { MP_ROM_QSTR(MP_QSTR_record_save_flash), MP_ROM_PTR(&qpy_poc_record_save_flash_obj) },
     { MP_ROM_QSTR(MP_QSTR_record_get_state), MP_ROM_PTR(&qpy_poc_record_get_state_obj) },
+    { MP_ROM_QSTR(MP_QSTR_tts_init), MP_ROM_PTR(&qpy_poc_tts_init_obj) },
+    { MP_ROM_QSTR(MP_QSTR_tts_play), MP_ROM_PTR(&qpy_poc_tts_play_obj) },
 #endif
 
+#if defined(CONFIG_POC_QS)
+       { MP_ROM_QSTR(MP_QSTR_Set_Tone_Switch),  MP_ROM_PTR(&qpy_poc_set_tone_switch_obj) },
+#endif
+
+
 #if !defined(CONFIG_POC_QS) && !defined(CONFIG_POC_ZZD) && !defined(CONFIG_POC_YDWL)
        { MP_ROM_QSTR(MP_QSTR_log), MP_ROM_PTR(&qpy_poc_log_obj) },
     { MP_ROM_QSTR(MP_QSTR_get_audiostate), MP_ROM_PTR(&qpy_poc_get_audiostate_obj) },
@@ -3166,6 +3373,25 @@ STATIC const mp_rom_map_elem_t mp_module_poc_globals_table[] = {
     { MP_ROM_QSTR(MP_QSTR_get_isenable_friend), MP_ROM_PTR(&qpy_poc_get_isenable_friend_obj) },
     { MP_ROM_QSTR(MP_QSTR_request_flush_member), MP_ROM_PTR(&qpy_poc_request_flush_member_obj) },
     { MP_ROM_QSTR(MP_QSTR_set_ptt_status), MP_ROM_PTR(&qpy_poc_set_ptt_status_obj) },
+
+    { MP_ROM_QSTR(MP_QSTR_get_is_support_localtion), MP_ROM_PTR(&qpy_poc_get_is_support_location_obj) },
+    { MP_ROM_QSTR(MP_QSTR_get_is_support_gps), MP_ROM_PTR(&qpy_poc_get_is_support_gps_obj) },
+    { MP_ROM_QSTR(MP_QSTR_get_is_support_wifi), MP_ROM_PTR(&qpy_poc_get_is_support_wifi_obj) },
+    { MP_ROM_QSTR(MP_QSTR_open_gps), MP_ROM_PTR(&qpy_poc_open_gps_obj) },
+    { MP_ROM_QSTR(MP_QSTR_close_gps), MP_ROM_PTR(&qpy_poc_close_gps_obj) },
+    { MP_ROM_QSTR(MP_QSTR_get_gps_set_value), MP_ROM_PTR(&qpy_poc_get_gps_set_value_obj) },
+    { MP_ROM_QSTR(MP_QSTR_play_tts_request_location_permission), MP_ROM_PTR(&qpy_poc_play_tts_request_location_permission_obj) },
+    { MP_ROM_QSTR(MP_QSTR_is_in_gps_information_ui), MP_ROM_PTR(&qpy_poc_is_in_gps_information_ui_obj) },
+    { MP_ROM_QSTR(MP_QSTR_update_network_mcc_mnc_lac_cid_infomation), MP_ROM_PTR(&qpy_poc_update_network_mcc_mnc_lac_cid_infomation_obj) },
+    { MP_ROM_QSTR(MP_QSTR_upload_gps_data), MP_ROM_PTR(&qpy_poc_upload_gps_data_obj) },
+    { MP_ROM_QSTR(MP_QSTR_start_scan_wifi), MP_ROM_PTR(&qpy_poc_start_scan_wifi_obj) },
+    { MP_ROM_QSTR(MP_QSTR_upload_wifi_data), MP_ROM_PTR(&qpy_poc_upload_wifi_data_obj) },
+    { MP_ROM_QSTR(MP_QSTR_send_heart_package), MP_ROM_PTR(&qpy_poc_send_heart_package_obj) },
+    { MP_ROM_QSTR(MP_QSTR_set_dev_location_type), MP_ROM_PTR(&qpy_poc_set_dev_location_type_obj) },
+    { MP_ROM_QSTR(MP_QSTR_LOCATION_TYPE_GPS), MP_ROM_INT(LOCATION_TYPE_GPS) },
+    { MP_ROM_QSTR(MP_QSTR_LOCATION_TYPE_CELL), MP_ROM_INT(LOCATION_TYPE_CELL) },
+    { MP_ROM_QSTR(MP_QSTR_LOCATION_TYPE_WIFI), MP_ROM_INT(LOCATION_TYPE_WIFI) },
+
     #endif
 
     { MP_ROM_QSTR(MP_QSTR_set_login_account), MP_ROM_PTR(&qpy_poc_set_login_account_obj) },
index 4378031..1bf85fc 100644 (file)
@@ -34,10 +34,12 @@ int _get_current_simid(void)
     #if defined(PLAT_ASR_1606)
         cur_simid = Helios_SIM_Get_Current_Simid();
     #endif
+
        if(cur_simid < 0)
        {
                cur_simid = 0;
        }
+
     return cur_simid;
 }
 /*=============================================================================*/
index f15717f..4de4992 100644 (file)
@@ -1586,7 +1586,7 @@ STATIC mp_obj_t socket_getstate(const mp_obj_t self_in)
 STATIC MP_DEFINE_CONST_FUN_OBJ_1(socket_getstate_obj, socket_getstate);
 /*[Jayceon][2021/03/18][end]add this api to get socket state*/
 
-#if defined (PLAT_ASR_1803s) || defined (PLAT_Unisoc) || defined (PLAT_ASR) || defined(PLAT_Unisoc_8910_R05)
+#if defined (PLAT_ASR_1803s) || defined (PLAT_Unisoc) || defined (PLAT_ASR) || defined(PLAT_Unisoc_8910_R05) || defined(PLAT_EIGEN)
 /*[xjin.gao][2023/03/16][start]add this api to get socket send data server ack has been received normally*/
 STATIC mp_obj_t socket_getsendacksize(const mp_obj_t self_in) 
 {
@@ -1598,7 +1598,7 @@ STATIC mp_obj_t socket_getsendacksize(const mp_obj_t self_in)
 #if defined (PLAT_ASR_1803s) || defined (PLAT_ASR)
     int optlen = sizeof(int);
     int32_t ret = lwip_getsockopt(self->fd, IPPROTO_TCP, TCP_TXB_ACKED, &tcpacksize, (socklen_t *)&optlen);
-#elif defined (PLAT_Unisoc) || defined(PLAT_Unisoc_8910_R05)
+#elif defined (PLAT_Unisoc) || defined(PLAT_Unisoc_8910_R05) || defined(PLAT_EIGEN)
     tcpacksize = lwip_getAckedSize(self->fd);
 #endif
 
@@ -1734,7 +1734,7 @@ STATIC const mp_rom_map_elem_t socket_locals_dict_table[] = {
     { MP_ROM_QSTR(MP_QSTR_makefile), MP_ROM_PTR(&socket_makefile_obj) },
     { MP_ROM_QSTR(MP_QSTR_fileno), MP_ROM_PTR(&socket_fileno_obj) },
     { MP_ROM_QSTR(MP_QSTR_getsocketsta), MP_ROM_PTR(&socket_getstate_obj) },
-#if defined (PLAT_ASR_1803s) || defined (PLAT_Unisoc) || defined (PLAT_ASR) || defined(PLAT_Unisoc_8910_R05)
+#if defined (PLAT_ASR_1803s) || defined (PLAT_Unisoc) || defined (PLAT_ASR) || defined(PLAT_Unisoc_8910_R05) || defined(PLAT_EIGEN)
     { MP_ROM_QSTR(MP_QSTR_getsendacksize), MP_ROM_PTR(&socket_getsendacksize_obj) },
 #endif
     { MP_ROM_QSTR(MP_QSTR_read), MP_ROM_PTR(&mp_stream_read_obj) },
index 6157502..94ccbbc 100644 (file)
@@ -179,6 +179,7 @@ STATIC mp_obj_t wlan_5803W_make_new(const mp_obj_type_t *type, size_t n_args, si
        }
 
        self->wlan_5803_config.mode = mode;
+       MP_THREAD_GIL_EXIT();
        get_wifi_last_config(&self->wlan_5803_config);
 
        if(n_args > 1)
@@ -194,6 +195,7 @@ STATIC mp_obj_t wlan_5803W_make_new(const mp_obj_type_t *type, size_t n_args, si
                Helios_WLAN_5803W_InitDriver();
                QPY_WLAN_5803W_Init_Flag += 1;
        }
+    MP_THREAD_GIL_ENTER();
 
     return MP_OBJ_FROM_PTR(self);                 //返回对象的指针
 }
@@ -208,6 +210,11 @@ STATIC mp_obj_t wlan_5803w_ap_config(size_t n_args, const mp_obj_t *args, mp_map
        
        int ret = HELIOS_WLAN_5803W_OK;
 
+       #define RC_TYPE_NC      1
+       #define RC_TYPE_INT     2
+       #define RC_TYPE_STR     3
+       uint8_t rc_type = RC_TYPE_NC;
+
        if(kwargs->used != 0)
        {
                for(size_t i = 0; i < kwargs->alloc; i++)
@@ -354,60 +361,88 @@ STATIC mp_obj_t wlan_5803w_ap_config(size_t n_args, const mp_obj_t *args, mp_map
        mp_obj_t val = mp_const_none;
        char ostr[HELIOS_MAX_PASSWORD+1] = {0};
        uint8_t oint = 0;
+ 
+       MP_THREAD_GIL_EXIT();
        switch (mp_obj_str_get_qstr(args[1]))
        {
                case MP_QSTR_ssid:
                {
                        ret = Helios_WLAN_5803W_AP_GetSSID(ostr);
-                       goto out_str;
+                       rc_type = RC_TYPE_STR;
+                       break;
                }
                case MP_QSTR_authmode:
                {
                        ret = Helios_WLAN_5803W_AP_GetAuth(&oint);
+                       rc_type = RC_TYPE_INT;
                        break;
                }
                case MP_QSTR_security:
                {
                        ret = Helios_WLAN_5803W_AP_GetSecurity(&oint);
+                       rc_type = RC_TYPE_INT;
                        break;
                }
                case MP_QSTR_key:
                case MP_QSTR_password:
                {
                        ret = Helios_WLAN_5803W_AP_GetPassword(ostr);
-                       goto out_str;
+                       rc_type = RC_TYPE_STR;
+                       break;
                }
                case MP_QSTR_protocol:
                {
                        ret = Helios_WLAN_5803W_AP_GetChannelMode(&oint);
+                       rc_type = RC_TYPE_INT;
                        break;
                }
                case MP_QSTR_channel:
                {
                        ret = Helios_WLAN_5803W_AP_GetChannel(&oint);
+                       rc_type = RC_TYPE_INT;
                        break;
                }
                case MP_QSTR_b40acs:
                {
                        ret = Helios_WLAN_5803W_AP_Getb40acsStatus(&oint);
+                       rc_type = RC_TYPE_INT;
                        break;
                }
                case MP_QSTR_MAC:
                case MP_QSTR_mac:
                {
-                       ret = Helios_WLAN_5803W_AP_GetMAC(&ostr);
+                       ret = Helios_WLAN_5803W_AP_GetMAC(ostr);
                        snprintf(ostr, 16, "%02X%02X%02X%02X%02X%02X",ostr[0], ostr[1], ostr[2], ostr[3], ostr[4], ostr[5]);
-                       goto out_str;
+                       rc_type = RC_TYPE_STR;
+                       break;
                }
                default:
                        ret = HELIOS_WLAN_5803W_FAIL;
-            goto unknown;
+            break;
        }
-       
-       return mp_obj_new_int(oint);
 
-       out_str:
-       return mp_obj_new_str(ostr,strlen(ostr));
+       MP_THREAD_GIL_ENTER();
+
+    if(HELIOS_WLAN_5803W_OK == ret)
+    {
+       if(rc_type == RC_TYPE_INT)
+       {
+           return mp_obj_new_int(oint);
+       }
+       else if(rc_type == RC_TYPE_STR)
+       {
+            return mp_obj_new_str(ostr, strlen(ostr));
+       }
+       else
+       {
+            return mp_obj_new_int(HELIOS_WLAN_5803W_FAIL);
+       }
+       }
+       else
+       {
+         return mp_obj_new_int(ret);
+       }
+       
 }
 STATIC MP_DEFINE_CONST_FUN_OBJ_KW(wlan_5803w_ap_config_obj, 1, wlan_5803w_ap_config);
 
@@ -418,22 +453,26 @@ STATIC mp_obj_t wlan_5803w_active(size_t n_args, const mp_obj_t *args)
 
        if (n_args > 1) {
         bool active = mp_obj_is_true(args[1]);
-
+        MP_THREAD_GIL_EXIT();
                if( active ) {
                        ret += Helios_WLAN_5803W_AP_SetSSID(self->wlan_5803_config.ssid);
                        ret += Helios_WLAN_5803W_AP_SetAuthConfig(self->wlan_5803_config.secmode, self->wlan_5803_config.encmode, self->wlan_5803_config.pass);
                        ret += Helios_WLAN_5803W_AP_SetChannelConfig(self->wlan_5803_config.chan_mode, self->wlan_5803_config.channel, self->wlan_5803_config.b40acs);
             ret += Helios_WLAN_5803W_SetMAC(self->wlan_5803_config.mac);
                        if(ret != HELIOS_WLAN_5803W_OK) {
+                           MP_THREAD_GIL_ENTER();
                                return mp_obj_new_int(HELIOS_WLAN_5803W_FAIL);
                        }
                        ret = Helios_WLAN_5803W_ENABLE(HELIOS_WLAN_TURN_ON);
                } else {
                        ret = Helios_WLAN_5803W_ENABLE(HELIOS_WLAN_SHUT_DOWN);
                }
+               MP_THREAD_GIL_ENTER();
     } else {
        int status = 0;
+       MP_THREAD_GIL_EXIT();
                ret = Helios_WLAN_5803W_GetStatus(&status);
+               MP_THREAD_GIL_ENTER();
                if( ret == HELIOS_WLAN_5803W_OK ) {
                        ret = status;
                }
@@ -447,7 +486,9 @@ STATIC mp_obj_t wlan_5803w_isconnected(mp_obj_t self_in)
     wlan_5803_obj_t *self = (wlan_5803_obj_t *)MP_OBJ_TO_PTR(self_in);
 
        uint8_t type = 0;
+       MP_THREAD_GIL_EXIT();
     Helios_WLAN_5803W_IsConnected(&type);
+    MP_THREAD_GIL_ENTER();
        return mp_obj_new_bool(type);
 }
 STATIC MP_DEFINE_CONST_FUN_OBJ_1(wlan_5803w_isconnected_obj, wlan_5803w_isconnected);
@@ -467,14 +508,17 @@ STATIC mp_obj_t wlan_5803w_status(size_t n_args, const mp_obj_t *args)
        if (n_args == 1) {
         // no arguments: return link status
         uint8_t type = 0;
+        MP_THREAD_GIL_EXIT();
                Helios_WLAN_5803W_IsConnected(&type);
+               MP_THREAD_GIL_ENTER();
         return mp_obj_new_bool(type);
     }
        
     int device_num = 0;
     Helios_WLAN_5803W_DeviceInfo_t *device_list_ptr;
-       
+       MP_THREAD_GIL_EXIT();
     Helios_WLAN_5803W_Get_ConnectionList(&device_num, &device_list_ptr);
+    MP_THREAD_GIL_ENTER();
 
        // one argument: return status based on query parameter
        switch (mp_obj_str_get_qstr(args[1]))
@@ -510,7 +554,9 @@ STATIC mp_obj_t wlan_5803w_status(size_t n_args, const mp_obj_t *args)
                case MP_QSTR_speed:
                {
                        uint32_t rx = 0, tx = 0;
+                       MP_THREAD_GIL_EXIT();
                        Helios_WLAN_5803W_Get_DataSpeed(&rx, &tx);
+                       MP_THREAD_GIL_ENTER();
                        
                        mp_obj_t data_speed[2] = {
                                mp_obj_new_int_from_uint(rx),
index f055775..1ddebe4 100644 (file)
@@ -15,7 +15,7 @@
  */
 
 #include <stdint.h>
-#if defined(PLAT_Unisoc)
+#if defined(PLAT_Unisoc) || defined(PLAT_Unisoc_8910_R05)
 #include "quec_proj_config.h"
 #endif
 #include "mpconfigboard.h"
@@ -75,7 +75,7 @@
 #elif defined(PLAT_ECR6600)
 #define MP_QPY_TASK_STACK_SIZE      (8 * 1024)
 #elif defined(PLAT_Unisoc_8850)
-       #if defined(BOARD_EC600GCN_LD) ||  defined(BOARD_EC800GCN_LD)  || defined(BOARD_EC800GCN_LD_HRXM)
+       #if defined(BOARD_EC600GCN_LD) || defined(BOARD_EC800GCN_LD) || defined(BOARD_EC800GCN_LD_HRXM) || defined(BOARD_EC600GCN_LD_YM)
                #define MP_QPY_TASK_STACK_SIZE      (16 * 1024)
        #else
                #define MP_QPY_TASK_STACK_SIZE      (64 * 1024)
 #endif
 #define MICROPY_PY_IO_FILEIO                           (1)
 #define MICROPY_PY_BUILTINS_INPUT              (1)
+
+#if defined(PLAT_ASR_1803s) && MICROPY_QPY_MODULE_VFS_FAT_EMMC
+
+#define MICROPY_VFS_FAT_EMMC                           (1)
+
+#endif
+
 // <begin>jaxsen 2021-09-11
 #if !defined(PLAT_RDA)
 #define MICROPY_PY_UASYNCIO                    (MICROPY_QPY_PY_UASYNCIO)
@@ -668,6 +675,20 @@ extern const struct _mp_obj_type_t can_mcp2515_type;
 #define MICROPY_PORT_BUILTIN_MODULES_CAN_MCP2515
 #endif
 
+#if MICROPY_QPY_MODULE_EXTUART_WK2114
+extern const struct _mp_obj_type_t extuart_wk2114_type;
+#define MICROPY_PORT_BUILTIN_MODULES_EXTUART_WK2114            { MP_OBJ_NEW_QSTR(MP_QSTR_WK2114), (mp_obj_t)&extuart_wk2114_type},
+#else
+#define MICROPY_PORT_BUILTIN_MODULES_EXTUART_WK2114
+#endif
+
+#if MICROPY_QPY_MODULE_EXTGPIO_AW9523
+extern const struct _mp_obj_type_t extgpio_aw9523_type;
+#define MICROPY_PORT_BUILTIN_MODULES_EXTGPIO_AW9523            { MP_OBJ_NEW_QSTR(MP_QSTR_AW9523), (mp_obj_t)&extgpio_aw9523_type},
+#else
+#define MICROPY_PORT_BUILTIN_MODULES_EXTGPIO_AW9523
+#endif
+
 #if MICROPY_QPY_MODULE_ALIPAY
 extern const struct _mp_obj_type_t ALIPAY_type;
 #define MICROPY_PORT_BUILTIN_MODULES_ALIPAY            { MP_OBJ_NEW_QSTR(MP_QSTR_ALIPAY), (mp_obj_t)&ALIPAY_type},
@@ -691,7 +712,7 @@ extern const struct _mp_obj_module_t mp_module_Hsensor;
 
 
 extern const struct _mp_obj_module_t mp_module_code128;
-#define MICROPY_PORT_BUILTIN_MODULES_code128           { MP_OBJ_NEW_QSTR(MP_QSTR_code128), (mp_obj_t)&mp_module_code128 }, /* 注册`code128`模块 */ 
+#define MICROPY_PORT_BUILTIN_MODULES_code128           { MP_OBJ_NEW_QSTR(MP_QSTR_code128), (mp_obj_t)&mp_module_code128 }, /* ×¢²á`code128`Ä£¿é */ 
 #if MICROPY_QPY_MODULE_NETWORK
 extern const struct _mp_obj_module_t mp_module_network;
 #define MICROPY_PORT_BUILTIN_MODULES_NETWORK       { MP_OBJ_NEW_QSTR(MP_QSTR_network), (mp_obj_t)&mp_module_network },
@@ -749,6 +770,8 @@ extern const struct _mp_obj_module_t mp_module_network;
                MICROPY_PORT_BUILTIN_MODULES_WEBSERVER \
                MICROPY_PORT_BUILTIN_MODULES_G711 \
                MICROPY_PORT_BUILTIN_MODULES_CAN_MCP2515 \
+               MICROPY_PORT_BUILTIN_MODULES_EXTUART_WK2114 \
+               MICROPY_PORT_BUILTIN_MODULES_EXTGPIO_AW9523 \
                MICROPY_PORT_BUILTIN_MODULES_ALIPAY \
                MICROPY_PORT_BUILTIN_MODULES_G729 \
                MICROPY_PORT_BUILTIN_MODULES_Gsensor \
index 16c7d96..e4387c2 100644 (file)
@@ -234,6 +234,20 @@ bool mp_is_python_thread(void) {
     return false;
 }
 
+//返回当前python线程栈的大小
+uint32_t mp_python_thread_get_stacksize(void) {
+       Helios_Thread_t curr_id = Helios_Thread_GetID(); 
+    mp_thread_mutex_lock(&thread_mutex, 1);
+    for (thread_t *th = thread; th != NULL; th = th->next) {
+        if (th->id == curr_id) {
+               mp_thread_mutex_unlock(&thread_mutex);
+            return th->stack_len;
+        }
+    }
+    mp_thread_mutex_unlock(&thread_mutex);
+    return false;
+}
+
 //返回当前线程对应的task_node地址
 int mp_thread_get_current_tsknode(void) {
     Helios_Thread_t curr_id = Helios_Thread_GetID(); 
index 1e72b48..7726078 100644 (file)
@@ -67,76 +67,85 @@ typedef struct {
 handmic_obj_t * handmic_saml_obj = NULL;
 
 #define IS_IN_RANGE(value, standard_value, range) ((value>=standard_value-range) && (value<=standard_value+range))
+#define ADC0_VALUE1 869
+#define ADC0_VALUE2 1607
+#define ADC0_VALUE3 2398
+#define ADC0_VALUE4 3248
+#define ADC1_VALUE1 491
+#define ADC1_VALUE2 1122
+#define ADC1_VALUE3 1813
+#define ADC1_VALUE4 2551
+#define ADC1_VALUE5 3251
 
 key_value get_key_value(int adc0, int adc1, int range_value) {
        key_value ret = key_illega;
 
-       if (IS_IN_RANGE(adc0, 1209, range_value)) {
-               if (IS_IN_RANGE(adc1, 1390, range_value)) {
+       if (IS_IN_RANGE(adc0, ADC0_VALUE1, range_value)) {
+               if (IS_IN_RANGE(adc1, ADC1_VALUE2, range_value)) {
                        ret = key_asterisk;
                }
-               else if (IS_IN_RANGE(adc1, 2370, range_value)) {
+               else if (IS_IN_RANGE(adc1, ADC1_VALUE3, range_value)) {
                        ret = key_7;
                }
-               else if (IS_IN_RANGE(adc1, 3448, range_value)) {
+               else if (IS_IN_RANGE(adc1, ADC1_VALUE4, range_value)) {
                        ret = key_4;
                }
-               else if (IS_IN_RANGE(adc1, 4280, range_value)) {
+               else if (IS_IN_RANGE(adc1, ADC1_VALUE5, range_value)) {
                        ret = key_1;
                }
        }
-       else if (IS_IN_RANGE(adc0, 2220, range_value)) {
-               if (IS_IN_RANGE(adc1, 489, range_value)) {
+       else if (IS_IN_RANGE(adc0, ADC0_VALUE2, range_value)) {
+               if (IS_IN_RANGE(adc1, ADC1_VALUE1, range_value)) {
                        ret = key_F;
                }
-               else if (IS_IN_RANGE(adc1, 1390, range_value)) {
+               else if (IS_IN_RANGE(adc1, ADC1_VALUE2, range_value)) {
                        ret = key_0;
                }
-               else if (IS_IN_RANGE(adc1, 2370, range_value)) {
+               else if (IS_IN_RANGE(adc1, ADC1_VALUE3, range_value)) {
                        ret = key_8;
                }
-               else if (IS_IN_RANGE(adc1, 3448, range_value)) {
+               else if (IS_IN_RANGE(adc1, ADC1_VALUE4, range_value)) {
                        ret = key_5;
                }
-               else if (IS_IN_RANGE(adc1, 4280, range_value)) {
+               else if (IS_IN_RANGE(adc1, ADC1_VALUE5, range_value)) {
                        ret = key_2;
                }
        }
-       else if (IS_IN_RANGE(adc0, 3330, range_value)) {
-               if (IS_IN_RANGE(adc1, 489, range_value)) {
+       else if (IS_IN_RANGE(adc0, ADC0_VALUE3, range_value)) {
+               if (IS_IN_RANGE(adc1, ADC1_VALUE1, range_value)) {
                        ret = key_up;
                }
-               else if (IS_IN_RANGE(adc1, 1390, range_value)) {
+               else if (IS_IN_RANGE(adc1, ADC1_VALUE2, range_value)) {
                        ret = key_pound;
                }
-               else if (IS_IN_RANGE(adc1, 2370, range_value)) {
+               else if (IS_IN_RANGE(adc1, ADC1_VALUE3, range_value)) {
                        ret = key_9;
                }
-               else if (IS_IN_RANGE(adc1, 3448, range_value)) {
+               else if (IS_IN_RANGE(adc1, ADC1_VALUE4, range_value)) {
                        ret = key_6;
                }
-               else if (IS_IN_RANGE(adc1, 4280, range_value)) {
+               else if (IS_IN_RANGE(adc1, ADC1_VALUE5, range_value)) {
                        ret = key_3;
                }
        }
-       else if (IS_IN_RANGE(adc0, 4283, range_value)) {
-               if (IS_IN_RANGE(adc1, 489, range_value)) {
+       else if (IS_IN_RANGE(adc0, ADC0_VALUE4, range_value)) {
+               if (IS_IN_RANGE(adc1, ADC1_VALUE1, range_value)) {
                        ret = key_down;
                }
-               else if (IS_IN_RANGE(adc1, 1390, range_value)) {
+               else if (IS_IN_RANGE(adc1, ADC1_VALUE2, range_value)) {
                        ret = key_call;
                }
-               else if (IS_IN_RANGE(adc1, 2370, range_value)) {
+               else if (IS_IN_RANGE(adc1, ADC1_VALUE3, range_value)) {
                        ret = key_handshake;
                }
-               else if (IS_IN_RANGE(adc1, 3448, range_value)) {
+               else if (IS_IN_RANGE(adc1, ADC1_VALUE4, range_value)) {
                        ret = key_call_user;
                }
-               else if (IS_IN_RANGE(adc1, 4280, range_value)) {
+               else if (IS_IN_RANGE(adc1, ADC1_VALUE5, range_value)) {
                        ret = key_call_group;
                }
        }
-       else if ((IS_IN_RANGE(adc0, 1875, range_value)) && (IS_IN_RANGE(adc0, 1875, range_value))) {
+       else if ((IS_IN_RANGE(adc0, 4012, range_value)) && (IS_IN_RANGE(adc0, 4012, range_value))) {
                ret = key_none;
        }
        return ret;
index 274b89d..2e8eedc 100644 (file)
@@ -220,7 +220,7 @@ void CST816_RD_Reg(uint8_t reg,uint8_t *buf,uint8_t len)
 uint8_t CST816_WR_Reg(uint8_t reg,uint8_t *buf,uint8_t len)
 {
     uint8_t reg_addr = reg;
-       CST816_LOG("cst816 iic write reg = %d, buf is %d\n", reg_addr, *buf);
+       //CST816_LOG("cst816 iic write reg = %d, buf is %d\n", reg_addr, *buf);
        return HELIOS_I2C_Write((Helios_I2CEnum)g_cst816->i2c_no, CST816_ADDR, &reg_addr, 1, buf, len);
 }
 
index 85e5110..91906f5 100644 (file)
@@ -226,7 +226,8 @@ class BaseMqtt(object):
         assert resp[0] == 0x20 and resp[1] == 0x02
         if resp[3] != 0:
             raise MQTTException(resp[3])
-        self.last_time = utime.mktime(utime.localtime())
+        # self.last_time = utime.mktime(utime.localtime())
+        self.last_time = utime.ticks_ms() / 1000
         self.connSta = True
         self.clean_session = clean_session
         global ALIYDEVREGISTER, PING
@@ -278,7 +279,8 @@ class BaseMqtt(object):
 
     def ping(self):
         global PING
-        self.last_time = utime.mktime(utime.localtime())
+        # self.last_time = utime.mktime(utime.localtime())
+        self.last_time = utime.ticks_ms() / 1000
         self.sock.write(b"\xc0\0")
         PING = True
 
@@ -306,8 +308,9 @@ class BaseMqtt(object):
         # self.last_time = utime.mktime(utime.localtime())
         if qos == 0:
             if self.keepalive >= 30:
-                time = utime.mktime(utime.localtime())
-                if time - self.last_time > 15:
+                # time = utime.mktime(utime.localtime())
+                time = utime.ticks_ms() / 1000
+                if (time - self.last_time) > (self.keepalive - 15):
                     self.last_time = time - self.keepalive
             return True
 
@@ -318,7 +321,8 @@ class BaseMqtt(object):
                 mqtt_log.warning("publish Pid[%s] QOS1 message was not received correctly"%pid)
                 return False
             else:
-                self.last_time = utime.mktime(utime.localtime())
+                # self.last_time = utime.mktime(utime.localtime())
+                self.last_time = utime.ticks_ms() / 1000
                 return True
         elif qos == 2:
             mqtt_log.warning("publish QOS2 Not Support")
@@ -678,7 +682,8 @@ class MQTTClient(BaseMqtt):
                         self.mqttsendlock.release()
                     LOOPTASKID = None
                     break
-                time = utime.mktime(utime.localtime())
+                # time = utime.mktime(utime.localtime())
+                time = utime.ticks_ms() / 1000
 
                 if time - self.last_time > keepalive:
                     if self.mqttlock.locked():
index 1b3f592..abc2cc5 100644 (file)
@@ -353,12 +353,23 @@ void gc_collect_start(void) {
     gc_collect_root(ptrs, (MP_STATE_THREAD(pystack_cur) - MP_STATE_THREAD(pystack_start)) / sizeof(void *));
     #endif
 
+    #if 0
     #if MICROPY_ENABLE_CALLBACK_DEAL
+    #if defined(PLAT_ASR) || defined(PLAT_ASR_1606) || defined(PLAT_ASR_1803s)
+    int rc = Helios_Critical_Enter();
+    #endif
     st_CallBack_LoadBoundMeth *loadmeth_para_head = (st_CallBack_LoadBoundMeth *)MP_STATE_PORT(loadmeth_para);
     for(;loadmeth_para_head != NULL; loadmeth_para_head = loadmeth_para_head->next)
     {
-        gc_collect_root((void **)&loadmeth_para_head->arg, 1);
+        if(NULL != loadmeth_para_head->arg)
+        {
+            gc_collect_root((void **)&loadmeth_para_head->arg, 1);
+        }
     }
+    #if defined(PLAT_ASR) || defined(PLAT_ASR_1606) || defined(PLAT_ASR_1803s)
+    Helios_Critical_Exit(rc);
+    #endif
+    #endif
     #endif
 }
 
index 9a7eff1..5d0d883 100644 (file)
@@ -211,7 +211,7 @@ STATIC mp_obj_t mod_thread_delete_semphore(mp_obj_t args_in) {
 
     mp_obj_thread_semphore_t *sem = MP_OBJ_TO_PTR(args_in);
     if((mp_thread_semphore_t)NULL != sem->semphore) {
-        mp_thread_mutex_del(&sem->semphore);
+        mp_thread_semphore_del(&sem->semphore);
         sem->count = 0;
         sem->maxcount = 0;
         sem->semphore = (mp_thread_semphore_t)NULL;
@@ -315,6 +315,8 @@ STATIC void *thread_entry(void *args_in) {
 
     MP_THREAD_GIL_ENTER();
 
+    // extern void heios_mem_check(void);
+    // if(args->stack_size == 13376) helios_mem_check();//stack_size为某一特殊值时,运行mem_check
     // signal that we are set up and running
     mp_thread_start();
 
@@ -536,6 +538,16 @@ STATIC mp_obj_t mp_thread_is_running(mp_obj_t th_in) {
 }
 STATIC MP_DEFINE_CONST_FUN_OBJ_1(mp_thread_is_running_obj, mp_thread_is_running);
 
+//MEMORY CHECK
+#ifdef PLAT_ASR_1606
+STATIC mp_obj_t mod_thread_mem_check(void)
+{
+    // extern void helios_mem_check(void);
+    // helios_mem_check();
+    return mp_obj_new_int(0);
+}
+STATIC MP_DEFINE_CONST_FUN_OBJ_0(mod_thread_mem_check_obj, mod_thread_mem_check);
+#endif
 
 STATIC const mp_rom_map_elem_t mp_module_thread_globals_table[] = {
     { MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR__thread) },
@@ -546,11 +558,16 @@ STATIC const mp_rom_map_elem_t mp_module_thread_globals_table[] = {
     { MP_ROM_QSTR(MP_QSTR_exit), MP_ROM_PTR(&mod_thread_exit_obj) },
     { MP_ROM_QSTR(MP_QSTR_allocate_lock), MP_ROM_PTR(&mod_thread_allocate_lock_obj) },
     { MP_ROM_QSTR(MP_QSTR_allocate_semphore), MP_ROM_PTR(&mod_thread_allocate_semphore_obj) },
+       { MP_ROM_QSTR(MP_QSTR_allocate_semaphore), MP_ROM_PTR(&mod_thread_allocate_semphore_obj) },
     { MP_ROM_QSTR(MP_QSTR_delete_lock), MP_ROM_PTR(&mod_thread_delete_lock_obj) },
     { MP_ROM_QSTR(MP_QSTR_delete_semphore), MP_ROM_PTR(&mod_thread_delete_semphore_obj) },
+       { MP_ROM_QSTR(MP_QSTR_delete_semaphore), MP_ROM_PTR(&mod_thread_delete_semphore_obj) },
     { MP_ROM_QSTR(MP_QSTR_get_heap_size), MP_ROM_PTR(&mod_thread_get_heap_size_obj) },
     { MP_ROM_QSTR(MP_QSTR_stop_thread), MP_ROM_PTR(&mod_thread_stop_thread_obj) },
     { MP_ROM_QSTR(MP_QSTR_threadIsRunning), MP_ROM_PTR(&mp_thread_is_running_obj) },
+#ifdef PLAT_ASR_1606
+    { MP_ROM_QSTR(MP_QSTR_mem_check), MP_ROM_PTR(&mod_thread_mem_check_obj) },
+#endif    
 };
 
 STATIC MP_DEFINE_CONST_DICT(mp_module_thread_globals, mp_module_thread_globals_table);
index 2cd24b6..6dc2b84 100644 (file)
@@ -284,10 +284,17 @@ STATIC mp_obj_t fun_bc_call(mp_obj_t self_in, size_t n_args, size_t n_kw, const
 
     INIT_CODESTATE(code_state, self, n_state, n_args, n_kw, args);
 
+    // extern void helios_mem_check(void);
+    // extern uint32_t mp_python_thread_get_stacksize(void);
+
+    // uint32 temp_mp_stack = mp_python_thread_get_stacksize() * 4;
+    // if(temp_mp_stack == 13376) helios_mem_check();
     // execute the byte code with the correct globals context
+
     mp_globals_set(self->globals);
     mp_vm_return_kind_t vm_return_kind = mp_execute_bytecode(code_state, MP_OBJ_NULL);
     mp_globals_set(code_state->old_globals);
+    // if(temp_mp_stack == 13376) helios_mem_check();
 
     #if MICROPY_DEBUG_VM_STACK_OVERFLOW
     if (vm_return_kind == MP_VM_RETURN_NORMAL) {
index ef5a72a..8ee9ca0 100644 (file)
@@ -192,11 +192,25 @@ bool mp_sched_schedule_ex(c_callback_t *callback, mp_obj_t arg)
 
     #if MICROPY_ENABLE_CALLBACK_DEAL
         if( false == qpy_is_callback_deal_thread()) {
-            st_CallBack_LoadBoundMeth *loadboundmet_msg = malloc(sizeof(st_CallBack_LoadBoundMeth));
+            st_CallBack_LoadBoundMeth *loadboundmet_msg = calloc(1, sizeof(st_CallBack_LoadBoundMeth));
+            if(NULL == loadboundmet_msg)
+            {
+                return false;
+            }
+            #if 0
+            #if defined(PLAT_ASR) || defined(PLAT_ASR_1606) || defined(PLAT_ASR_1803s)
+            int rc = Helios_Critical_Enter();
+            #endif
             loadboundmet_msg->next = (st_CallBack_LoadBoundMeth *)MP_STATE_PORT(loadmeth_para);
             MP_STATE_PORT(loadmeth_para) = (void *)loadboundmet_msg;
+            #endif
             loadboundmet_msg->callback = callback;
             loadboundmet_msg->arg = arg;
+            #if 0
+            #if defined(PLAT_ASR) || defined(PLAT_ASR_1606) || defined(PLAT_ASR_1803s)
+            Helios_Critical_Exit(rc);
+            #endif
+            #endif
                qpy_send_msg_to_callback_deal_thread(CALLBACK_TYPE_ID_LOAD_BOUNDMETH, loadboundmet_msg);
                return true;
        }
index 3bbca76..793fc71 100644 (file)
@@ -957,8 +957,12 @@ helios_pay_rc_t Helios_upay_id2_get_opt_auth_code(const uint8_t * token, uint32_
 */
 helios_pay_rc_t Helios_upay_id2_load_opt_data(const uint8_t * otp_data, uint32_t len);
 
+#ifdef BOARD_EG810MCN_GA_ALIPAY
 int Helios_upay_id2_write_rsvd_part(int fd, uint32_t offset, void *data, uint32_t data_len);
 
+int Helios_upay_factory_partition_write(int fd, uint32_t offset, void *buffer, uint32_t write_len);
+#endif
+
 /*
 *以下八个接口库中暂无
 */
index d86c344..269501c 100644 (file)
@@ -27,6 +27,10 @@ void Helios_Debug_Disable(void);
 int Helios_Debug_Output(const char *fmt, ...);
 void Helios_Assert(const char      *cond, const char *file, int line, const char* fmt, ...);
 
+#if CONFIG_POC_SLPOC
+void Helios_USB_Log_Enable(void);
+#endif
+
 #if defined(BOARD_EC600MCN_CC_EXT) || defined(BOARD_EC600MCN_LF_SLPOC)
 #define helios_debug(fmt, ...)
 #define custom_log(tag, fmt, ...)
index 5660f1b..4f2b442 100644 (file)
@@ -130,7 +130,8 @@ typedef enum
        HELIOS_AUD_PLAYER_RESUME,      //resume player from pause
        HELIOS_AUD_PLAYER_MOREDATA,
        HELIOS_AUD_PLAYER_NODATA_STRAT,
-       HELIOS_AUD_PLAYER_DATA_RESUME
+       HELIOS_AUD_PLAYER_DATA_RESUME,
+       HELIOS_AUD_PLAYER_REQURST_CLOSE
 }Helios_EnumAudPlayerState;
 
 typedef enum
@@ -737,6 +738,24 @@ int Helios_Aud_PWM_Set_Volume(int vol);
 int Helios_Aud_PWM_Get_Volume();
 int Helios_Aud_PWM_Set_Gain_Value(float min, float max);
 
+#ifdef BOARD_EC600UCN_LB_YDWL
+typedef enum {
+    YDWL_TTS_EVT_INIT         = 0,
+    YDWL_TTS_EVT_DEINIT,
+    YDWL_TTS_EVT_PLAY_START,
+    YDWL_TTS_EVT_COMPOSITE_OVER,      //语音合成完成,但播放未完成
+    YDWL_TTS_EVT_PLAY_STOP,           //not used
+    YDWL_TTS_EVT_PLAY_FINISH,         //TTS语音播放完成
+    YDWL_TTS_EVT_PLAY_FAILED,         //not used
+    YDWL_TTS_EVT_PLAY_INTERRUPT,
+
+}YDWL_TTS_ENVENT_E;
+
+typedef void (*ydwl_tts_cb_type)(int id, YDWL_TTS_ENVENT_E status);
+
+void Helios_ydwl_tts_init(ydwl_tts_cb_type usr_cb);
+void Helios_ydwl_tts_play(const char* string, unsigned int len);
+#endif
 
 #ifdef __cplusplus
 } /*"C" */
diff --git a/2.sdk/Helios_SDK/system/hal/helios_one_wire.h b/2.sdk/Helios_SDK/system/hal/helios_one_wire.h
new file mode 100644 (file)
index 0000000..96832f8
--- /dev/null
@@ -0,0 +1,16 @@
+#ifndef _HELIOS_1WIRE_H
+#define _HELIOS_1WIRE_H
+
+#if defined(PLAT_Unisoc) || defined(PLAT_ASR_1606)
+extern int Helios_1wire_Reset(unsigned char gpio_num);
+extern void Helio_1wire_Read_Bytes(unsigned char gpio_num,unsigned char * buf,unsigned int len);
+extern void Helios_1wire_Write_Bytes(unsigned char gpio_num,unsigned char *data,unsigned int len);
+extern int Helios_1wire_Init(Helios_GPIONum gpio_num,unsigned char *internal_pin);
+extern int Helios_1wire_Deinit(unsigned char gpio_num);
+
+
+
+
+#endif
+#endif
+
index 54fb840..ff9db97 100644 (file)
@@ -180,7 +180,7 @@ extern "C" {
        || defined(BOARD_EC200UAU_AB_VOLTE) \
        || defined(BOARD_EC200UAU_AA))
 #define PLAT_GPIO_NUM 47
-#elif defined(BOARD_EG915UEU_AB) || defined(BOARD_EG915UEU_AB_HYT)
+#elif defined(BOARD_EG915UEU_AB) || defined(BOARD_EG915UEU_AB_HYT) || defined(BOARD_EG915ULA_AB)
 #define PLAT_GPIO_NUM 41
 #elif defined(BOARD_EG912UGL_AA) || defined(BOARD_EG912UGL_AA_YL)
 #define PLAT_GPIO_NUM 41
@@ -196,7 +196,7 @@ extern "C" {
        || defined(BOARD_EC800GCN_LB) \
        || defined(BOARD_EC800GCN_GA_VOLTE) 
 #define PLAT_GPIO_NUM 50
-#elif defined(BOARD_EC600GCN_LD) || defined(BOARD_EC600GCN_LA)
+#elif defined(BOARD_EC600GCN_LD) || defined(BOARD_EC600GCN_LA) || defined(BOARD_EC600GCN_LD_YM)
 #define PLAT_GPIO_NUM 46
 #else
 #error "Please confirm the unisoc_8850 platform"
@@ -216,7 +216,7 @@ extern "C" {
     || defined(BOARD_EC800MCN_LA_VOLTE) || defined(BOARD_EC800MCN_GC) || defined(BOARD_EC800MCN_LC) \
     || defined(BOARD_EC800MCN_LF) || defined(BOARD_EC800MCN_GD)\
     || defined(BOARD_EC800MCN_GA_MS) || defined(BOARD_EC800MCN_GA_VOLTE) || defined(BOARD_EC800MCN_LA_POC_XBND) \
-    || defined(BOARD_EC800MCN_LE_POC_XBND) || defined(BOARD_EC800MCN_GA_ALIPAY) || defined(BOARD_EG810MCN_GA) || defined(BOARD_EG810MCN_GA_ALIPAY)\
+    || defined(BOARD_EC800MCN_LE_POC_XBND) || defined(BOARD_EC800MCN_GA_ALIPAY) || defined(BOARD_EG810MCN_GA) \
     || defined(BOARD_EC800MCN_CC) || defined(BOARD_EC800MCN_LE_VOLTE) || defined(BOARD_EC800MCN_GA_SPISD) \
     || defined(BOARD_EG810MCN_GA_ALIPAY) || defined(BOARD_EC800MCN_GA_VOEXT) || defined(BOARD_EG810MCN_GA_VOEXT)
 #define PLAT_GPIO_NUM 44
index 375e6a6..ba9e92e 100644 (file)
@@ -67,7 +67,7 @@ extern "C" {
        || defined(BOARD_EC800GCN_LB) \
        || defined(BOARD_EC800GCN_GA_VOLTE)
 #define PLAT_PWM_NUMMAX 28
-#elif defined(BOARD_EC600GCN_LD) || defined(BOARD_EC600GCN_LA)
+#elif defined(BOARD_EC600GCN_LD) || defined(BOARD_EC600GCN_LA) || defined(BOARD_EC600GCN_LD_YM)
 #define PLAT_PWM_NUMMAX 3
 #else
 #error "Please confirm the unisoc_8850 platform"
index 9ed6936..da7a9c0 100644 (file)
@@ -66,7 +66,7 @@ int Helios_USBNET_GetType(Helios_USBNET_Type_e *type);
 
 int Helios_USBNET_GetStatus(uint8_t *status);
 
-#if defined(PLAT_Unisoc) || defined(PLAT_Unisoc_8910_R05)
+#if defined(PLAT_Unisoc) || defined(PLAT_Unisoc_8910_R05) || defined(PLAT_Unisoc_8850)
        int Helios_USBNET_GetNat(uint8_t sim_id, uint8_t profile_id);
 
        int Helios_USBNET_SetNat(uint8_t sim_id, uint8_t profile_id, uint8_t nat);
index c1a7352..2881b63 100644 (file)
@@ -539,6 +539,8 @@ int lwip_get_socket_info_by_fd(int fd, ip_addr_t *local_ip, ip_addr_t *remote_ip
 #endif
 
 int lwip_getTcpState(int nSocket);
+int lwip_getAckedSize(int nSocket);
+
 int get_error();
 
 #if 1
diff --git a/2.sdk/Helios_SDK/system/network/helios_ftm.h b/2.sdk/Helios_SDK/system/network/helios_ftm.h
new file mode 100644 (file)
index 0000000..962d098
--- /dev/null
@@ -0,0 +1,11 @@
+#include <stdlib.h>
+#include <stdio.h>
+#include <stdint.h>
+#include <string.h>
+
+// #include "quec_ftm.h"
+
+int helios_ftm_mode_switch(uint8_t mode);
+int helios_ftm_mode_get(void);
+int helios_ftm_test_start(uint16_t band, uint32_t tx_channel,uint8_t tx_power);
+int helios_ftm_test_stop(void);
\ No newline at end of file
index 916f83b..79a175a 100644 (file)
@@ -41,7 +41,8 @@
                "EC600UCN_LB_YDWL",
                "EC600UEC_AC",
                "EC600UEC_AC_WS",
-               "EC600UEC_AC_VOLTE"
+               "EC600UEC_AC_VOLTE",
+               "EG915ULA_AB"
        ],
 
        "ASR": [
         "EC200AAU_HA",
                "EC200ACN_DA",
                "EC200ACN_LA",
+               "EC200ACN_LA_BQZ",
                "EC200ACN_HA",
                "EC200AEU_HA_SANX",
                "EC200AEU_HA_SANXIR",
                "EC800GCN_GA_VOLTE",
                "EC600GCN_LA",
                "EC600GCN_LD",
+               "EC600GCN_LD_YM",
                "EC800GCN_LD",
                "EC800GCN_LD_HRXM",
                "EC800GCN_LB"
index 3979809..8728792 100644 (file)
@@ -81,6 +81,13 @@ unsigned int helios_rb_free_space(helios_ring_buf_t *rb)
        return (rb->size - (rb->wpos - rb->rpos));
 }
 
+void helios_rb_clear(helios_ring_buf_t *rb)
+{
+       rb->wpos = rb->rpos = 0;
+       memset(rb->data, 0, rb->size);
+       return;
+}
+
 unsigned int helios_rb_write(helios_ring_buf_t *rb, unsigned char *data, unsigned int len)
 {
        unsigned int w_size = 0, w_free_size = 0;
index 085b80b..0250f09 100644 (file)
@@ -50,6 +50,8 @@ unsigned int helios_rb_write(helios_ring_buf_t *rb, unsigned char *data, unsigne
 
 unsigned int helios_rb_read(helios_ring_buf_t *rb, unsigned char *data, unsigned int len);
 
+void helios_rb_clear(helios_ring_buf_t *rb);
+
 #ifdef __cplusplus
 } /*"C" */
 #endif
index da6ccf1..dc2e937 100644 (file)
Binary files a/2.sdk/project/K5/font/ext_font.bin and b/2.sdk/project/K5/font/ext_font.bin differ
index 6f8fe8a..8445fd2 100644 (file)
@@ -2,7 +2,7 @@
 
 md images
 del images /q
-..\..\Helios_SDK\tools\ASR_1606\win32\mklfs.exe -c ext -b 4096 -r 4096 -p 4096 -s 2097152 -i .\images\ext_fs.bin
+..\..\Helios_SDK\tools\ASR_1606\win32\mklfs.exe -c ext -b 4096 -r 4096 -p 4096 -s 1572864 -i .\images\ext_fs.bin
 if errorlevel 1 (
     echo "ext_fs.binÉú³Éʧ°Ü !!!!!!!!!!!!!!! "
     goto exit
index de780d5..d0b6d1c 100644 (file)
@@ -62,7 +62,11 @@ QSTR_DEFS_COLLECTED = $(HEADER_BUILD)/qstrdefs.collected.h
 endif
 QSTR_GLOBAL_DEPENDENCIES += $(PY_SRC)/mpconfig.h source/mpconfigport.h
 CSUPEROPT = -O3
+ifeq ($(strip $(PLAT)),ECR6600)
+MPY_CROSS_FLAGS += -march=xtensa
+else
 MPY_CROSS_FLAGS += -march=armv7m
+endif
 # Enable building 32-bit code on 64-bit host.
 ifeq ($(MICROPY_FORCE_32BIT),1)
 CC += -m32
@@ -254,7 +258,7 @@ PY_EXTMOD_O_BASENAME += \
        extmod/vfs_efs_file.o
 endif
 
-ifeq ($(strip $(PLAT)),Unisoc)
+ifeq ($(strip $(PLAT)), $(filter $(PLAT),Unisoc Unisoc_8910_R05))
 PY_EXTMOD_O_BASENAME += \
        extmod/vfs_temp.o \
        extmod/vfs_temp_file.o
@@ -361,6 +365,8 @@ SRC_QSTR += \
                        source/modG711.c \
                        source/modG729.c \
                        source/modcan_mcp2515.c \
+                       source/modextuart_wk2114.c \
+                       source/modextgpio_aw9523.c \
                        source/machine_key.c \
                        source/lpm_wakeup.c \
                        source/sensor_handmic_key.c     \
@@ -368,8 +374,9 @@ SRC_QSTR += \
                        source/modwlan_ASR5803.c \
                        source/machine_soft_spi.c \
                        source/code128_p.c \
-                       source/modwlan.c
-
+                       source/modwlan.c\
+                       source/modwlan.c \
+                       source/machine_one_wire.c
 
 
 ifeq ($(strip $(PLAT)),RDA)
@@ -378,18 +385,18 @@ else
 SRC_QSTR += $(ROOT)/components/quecsdk/cloud/python/modquecIot.c
 endif
 
-ifeq ($(strip $(PLAT)),Unisoc)
-SRC_QSTR += $(ROOT)/components/usqlite/usqlite_connection.c
-SRC_QSTR += $(ROOT)/components/usqlite/usqlite_cursor.c
-SRC_QSTR += $(ROOT)/components/usqlite/usqlite_row.c
-SRC_QSTR += $(ROOT)/components/usqlite/usqlite_file.c
-SRC_QSTR += $(ROOT)/components/usqlite/usqlite_mem.c
-SRC_QSTR += $(ROOT)/components/usqlite/usqlite_vfs.c
-SRC_QSTR += $(ROOT)/components/usqlite/usqlite_utils.c
-SRC_QSTR += $(ROOT)/components/usqlite/usqlite.c
-SRC_QSTR += $(ROOT)/components/usqlite/usqlite_module.c
-
-INC += -I$(ROOT)/components/usqlite
+ifeq ($(CONFIG_USQLITE), y)
+SRC_QSTR += lib/usqlite/usqlite_connection.c \
+                       lib/usqlite/usqlite_cursor.c \
+                       lib/usqlite/usqlite_row.c \
+                       lib/usqlite/usqlite_file.c \
+                       lib/usqlite/usqlite_mem.c \
+                       lib/usqlite/usqlite_vfs.c \
+                       lib/usqlite/usqlite_utils.c \
+                       lib/usqlite/usqlite.c \
+                       lib/usqlite/usqlite_module.c
+
+INC += -Ilib/usqlite
 endif
 
 $(BUILD)/%.pp: %.c
@@ -503,6 +510,25 @@ INC += -I$(ROOT)/system/lwip/$(strip $(PLAT))/src/include/posix/sys
 INC += -I$(ROOT)/system/at
 endif
 
+ifeq ($(strip $(PLAT)),Unisoc_8910_R05)
+INC += -I$(ROOT)/system/lwip/$(strip $(PLAT))
+INC += -I$(ROOT)/system/lwip/$(strip $(PLAT))/include
+INC += -I$(ROOT)/system/lwip/$(strip $(PLAT))/src/include
+INC += -I$(ROOT)/system/lwip/$(strip $(PLAT))/src/include/lwip
+INC += -I$(ROOT)/system/lwip/$(strip $(PLAT))/src/include/lwip/apps
+INC += -I$(ROOT)/system/lwip/$(strip $(PLAT))/src/include/lwip/priv
+INC += -I$(ROOT)/system/lwip/$(strip $(PLAT))/src/include/lwip/prot
+INC += -I$(ROOT)/system/lwip/$(strip $(PLAT))/src/include/netif
+INC += -I$(ROOT)/system/lwip/$(strip $(PLAT))/src/include/netif/ppp
+INC += -I$(ROOT)/system/lwip/$(strip $(PLAT))/src/include/netif/ppp/polarssl
+INC += -I$(ROOT)/system/lwip/$(strip $(PLAT))/src/include/compat/posix
+INC += -I$(ROOT)/system/lwip/$(strip $(PLAT))/src/include/compat/posix/arpa
+INC += -I$(ROOT)/system/lwip/$(strip $(PLAT))/src/include/compat/posix/net
+INC += -I$(ROOT)/system/lwip/$(strip $(PLAT))/src/include/compat/posix/netinet
+INC += -I$(ROOT)/system/lwip/$(strip $(PLAT))/src/include/compat/posix/sys
+INC += -I$(ROOT)/system/lwip/$(strip $(PLAT))/src/include/compat/stdc
+endif
+
 ifeq ($(strip $(PLAT)),EIGEN)
 INC += -I$(ROOT)/system/lwip/$(strip $(PLAT))
 INC += -I$(ROOT)/system/lwip/$(strip $(PLAT))/include
@@ -558,6 +584,11 @@ INC += -I$(ROOT)/system/lwip/$(strip $(PLAT))/include
 INC += -I$(ROOT)/system/at
 endif
 
+ifeq ($(strip $(PLAT)),ECR6600)
+INC += -I$(ROOT)/system/lwip/$(strip $(PLAT))
+INC += -I$(ROOT)/system/lwip/$(strip $(PLAT))/include
+endif
+
 ifeq (y, $(CONFIG_MBEDTLS))
 INC += -I$(ROOT)/system/mbedtls
 INC += -I$(ROOT)/system/mbedtls/include
@@ -839,7 +870,7 @@ frozen_mpy_list =   $(BUILD)/_boot_Qualcomm.mpy \
                                        $(BUILD)/ymodem.mpy \
 
 else ifeq ($(strip $(PLAT)),ASR_1606)
-ifeq ($(strip $(BOARD)),$(filter $(strip $(BOARD)),EC600MCN_CC EC800MCN_CC EC600MCN_CC_EXT))
+ifeq ($(strip $(BOARD)),$(filter $(strip $(BOARD)),EC600MCN_CC EC800MCN_CC EC600MCN_CC_EXT EC600MCN_LF_SLPOC))
 frozen_mpy_list =      $(BUILD)/_boot.mpy \
                                        $(BUILD)/system.mpy \
                                        $(BUILD)/dataCall.mpy \
@@ -919,7 +950,7 @@ frozen_mpy_list =   $(BUILD)/_boot.mpy \
 endif
 
 else ifeq ($(strip $(PLAT)),Unisoc_8850)
-ifeq ($(strip $(BOARD)),$(filter $(strip $(BOARD)),EC600GCN_LD EC800GCN_LD EC800GCN_LD_HRXM))
+ifeq ($(strip $(BOARD)),$(filter $(strip $(BOARD)),EC600GCN_LD EC600GCN_LD_YM EC800GCN_LD EC800GCN_LD_HRXM))
 frozen_mpy_list =      $(BUILD)/_boot.mpy \
                                        $(BUILD)/umqtt.mpy \
                                        $(BUILD)/ntptime.mpy \
@@ -1042,9 +1073,34 @@ frozen_mpy_list =        $(BUILD)/_boot.mpy \
 endif
 
 else ifeq ($(strip $(PLAT)),ECR6600)
-frozen_mpy_list =      $(BUILD)/_boot.mpy \
+frozen_mpy_list =      $(BUILD)/_boot_WIFI.mpy \
+                                       $(BUILD)/umqtt.mpy \
+                                       $(BUILD)/request.mpy \
+                                       $(BUILD)/ql_fs.mpy \
+                                       $(BUILD)/queue.mpy \
+                                       $(BUILD)/sys_bus.mpy \
 
 else
+ifeq ($(strip $(BOARD)),$(filter $(strip $(BOARD)),EC600UEU_AB_POC))
+frozen_mpy_list =      $(BUILD)/_boot.mpy \
+                                       $(BUILD)/ntptime.mpy \
+                                       $(BUILD)/log.mpy \
+                                       $(BUILD)/file_sha256.mpy \
+                                       $(BUILD)/checksum.mpy \
+                                       $(BUILD)/checkNet.mpy \
+                                       $(BUILD)/dataCall.mpy \
+                                       $(BUILD)/ql_fs.mpy \
+                                       $(BUILD)/app_fota_mount.mpy \
+                                       $(BUILD)/app_fota_download.mpy\
+                                       $(BUILD)/app_fota_updater.mpy \
+                                       $(BUILD)/app_fota.mpy \
+                                       $(BUILD)/backup_restore.mpy \
+                                       $(BUILD)/file_crc32.mpy \
+                                       $(BUILD)/system.mpy \
+                                       $(BUILD)/queue.mpy \
+                                       $(BUILD)/bak_util.mpy \
+                                       $(BUILD)/ymodem.mpy 
+else
 frozen_mpy_list =      $(BUILD)/_boot.mpy \
                                        $(BUILD)/umqtt.mpy \
                                        $(BUILD)/ntptime.mpy \
@@ -1079,8 +1135,8 @@ frozen_mpy_list =         $(BUILD)/_boot.mpy \
                                        $(BUILD)/ftplibtls.mpy \
                                        $(BUILD)/uwebsocket.mpy \
                                        $(BUILD)/uping.mpy \
-                                       $(BUILD)/ymodem.mpy \
-
+                                       $(BUILD)/ymodem.mpy 
+endif
 endif
 
 $(BUILD)/_frozen_mpy.c: $(frozen_mpy_list) $(HEADER_BUILD)/qstrdefs.generated.h
index 4e67da3..b20c2f8 100644 (file)
@@ -624,21 +624,25 @@ class ClockManager(Abstract):
                 with open("/ext/static/storage_file/alarm_msg.json", 'w+',encoding='utf-8') as fd:
                     ujson.dump(alarm_list,fd)
 
-        #设置下一个闹钟
-        msg_data = EventMesh.publish("get_boot_off_time")
-        msg_tmp = msg_data[0]
-        off_tmp2  = msg_tmp[2]
-        msg_tmp2 = off_tmp2.split(':')
-        end_min = int(msg_tmp2[0])*60+int(msg_tmp2[1])
-
-        rtc_now_time = self.rtc.datetime()
-        current = rtc_now_time[4]*60+rtc_now_time[5]
-        EventMesh.publish("set_rtc_alarm")
-        print("end_min:{} current:{} off_tmp2:{}".format(end_min,current,off_tmp2))
-        if end_min == current:#结束的时间分钟等于关机时间分钟数则关机
+        #设置下一个闹钟,定时开关机功能
+        if 0 :
+            msg_data = EventMesh.publish("get_boot_off_time")
+            print("msg_tmp:{}".format(msg_data))
             
-            EventMesh.publish("load_screen", {"screen": "poweroff_comfirm"})
-            return
+            msg_tmp = msg_data[0]
+            off_tmp2  = msg_tmp[2]
+            msg_tmp2 = off_tmp2.split(':')
+            end_min = int(msg_tmp2[0])*60+int(msg_tmp2[1])
+
+            rtc_now_time = self.rtc.datetime()
+            current = rtc_now_time[4]*60+rtc_now_time[5]
+            EventMesh.publish("set_rtc_alarm")
+            print("end_min:{} current:{} off_tmp2:{}".format(end_min,current,off_tmp2))
+            if end_min == current:#结束的时间分钟等于关机时间分钟数则关机
+                
+                EventMesh.publish("load_screen", {"screen": "poweroff_comfirm"})
+                return
+        
 
         
         get_hr_state = EventMesh.publish("get_hr_state")
index 92798fc..9619f3d 100644 (file)
@@ -56,7 +56,7 @@ class Alipay(Abstract):
         self.ps_aliyun = "TxPFIJ5F1kwa0zO3"
         self.product_type = 0
         self.timer_Alipay = osTimer()
- 
+        self.Alipay_Ui_isOpen = 0
  
         self.is_simcard_identify = 255
         self.is_init = 255
@@ -64,6 +64,7 @@ class Alipay(Abstract):
         self.alipay = ALIPAY(self.imei, self.iccid,self.imsi, self.mac, self.sn,self.vendor, self.product_name, self. product_model, self.pk_alipay , self.pk_aliyun, self.ps_aliyun,0)
         #self.alipay = ALIPAY("867387060319491", "898604293619F0549750","460044917509047", "123456", "P1Q22I80C0007530P","ZHIHUISHIXUN", "ZHIHUISHIXUN", "EC800M", "uHTfYqOlGlA" , "a15PcyZ3IHA", "kOGGPhtXAg1Lz1vg",0)
         self.alipay.register_print()
+        #self.alipay.set_log_limit(5)
         self.alipay.set_log_limit(0)
         if  self.is_init != 0:
             id2_st = bytearray([0])
@@ -80,7 +81,10 @@ class Alipay(Abstract):
                 print("self.is_pay_init:%d"%self.is_init)
                 if self.is_init == 0 :
                     self.alipay.enable_collectioncode(1)
-        self.timer_Alipay.start(20000, 1, self.timeout_Alipay)
+        if EventMesh.publish(constants.EVENT.GET_CONNECT) == 1 and self.alipay != None and (self.is_simcard_identify != 0 ):#or time[3] == 0 or time[3] == 12):
+            self.is_simcard_identify = self.alipay.start_simcard_identify()
+            print("is_simcard_identify:%d"%self.is_simcard_identify)
+        #self.timer_Alipay.start(20000, 1, self.timeout_Alipay)
     def post_processor_after_instantiation(self):
         print("post_processor_after_instantiation")
         
@@ -93,8 +97,15 @@ class Alipay(Abstract):
         EventMesh.subscribe("get_parent_code", self.get_parent_code)
         EventMesh.subscribe("get_alipay_init", self.get_alipay_init)
         EventMesh.subscribe("alipay_exit", self.alipay_exit)
-        
-    def timeout_Alipay(self, *args, **kwargs):
+        EventMesh.subscribe("id2_clean_data", self.id2_clean_data)
+        EventMesh.subscribe("Alipay_init", self.Alipay_init)
+        EventMesh.subscribe("get_Alipay_Ui_isOpen",self.get_Alipay_Ui_isOpen)
+        EventMesh.subscribe("set_Alipay_Ui_isOpen",self.set_Alipay_Ui_isOpen)
+    def get_Alipay_Ui_isOpen(self, event, msg):
+        return self.Alipay_Ui_isOpen
+    def set_Alipay_Ui_isOpen(self, event, msg):
+        self.Alipay_Ui_isOpen = msg
+    def Alipay_init(self, event, msg):
         #print("timeout_Alipay1:{}".format(EventMesh.publish(constants.EVENT.GET_CONNECT)))
         #time = utime.localtime()
 
@@ -119,6 +130,8 @@ class Alipay(Abstract):
                 
                 if self.is_init == 0 :
                     self.alipay.enable_collectioncode(1)
+            else :
+                print("id2_st:",str(id2_st))
             print("self.is_pay_init:%d"%self.is_init)
 
     def upay_display_notify_cb(self,arg):
@@ -128,13 +141,15 @@ class Alipay(Abstract):
         result = arg[2]
         result_len = arg[3]
         userdata = arg[4]
+        if EventMesh.publish("get_Alipay_Ui_isOpen") == 0:
+            return
         print("upay_display_notify_cb:\r\ncmd:{}\r\nrsp_code:{}".format(cmd,rsp_code))
 
         if rsp_code == 4 :
             # 打印获取到的绑定码 
             print("bindcode[%d]: %s\n"%(result_len, result))
             #查询绑定结果 
-            utime.sleep_ms(1000);              
+            utime.sleep_ms(1000)               
             cmd_t = 2 #UPAY_MSG_GET_BINDING_RESULT;
             userdata_t = None
             args = None
@@ -295,7 +310,8 @@ class Alipay(Abstract):
             userdata = ""
             ret = self.alipay.msg_send(11,args,userdata) #发送退出程序命令
             print("alipay_exit")
-    
+    def id2_clean_data(self, event, msg):
+        return self.alipay.id2_clean_data()
     def alipay_1(self, event, msg):
         #本地判断是否绑定
         check_bind = self.alipay.check_bind_status()
@@ -357,22 +373,33 @@ class AlipayOpenScreen(Screen):
         super().__init__()
         self.meta = alipay_open_screen
         self.timer_AlipayOpen = osTimer()
+        self.timer_AlipayOpen_count = 0
         self.flag = 0
+
+        
     def initialization(self):
         print("AlipayOpenScreen:initialization")
         self.flag = 0
+        EventMesh.publish("Alipay_init")
         self.timer_AlipayOpen.start(1000, 1, self.timeout_AlipayOpen)
-        pass
+        EventMesh.publish("set_Alipay_Ui_isOpen",1)
 
     def timeout_AlipayOpen(self, *args, **kwargs):
-        print("timeout_AlipayOpen:")
+        #print("timeout_AlipayOpen:")
+        
         EventMesh.publish("system_sleep_rest")#防止黑屏
         if EventMesh.publish("get_alipay_init") == 0:
             if self.flag == 0:
                 self.flag = 1
                 EventMesh.publish("alipay_1")
+        else :
             
-            #self.timer_AlipayOpen.stop()
+            if(self.timer_AlipayOpen_count>10 or self.timer_AlipayOpen_count == 0 ):
+                EventMesh.publish("Alipay_init")
+                self.timer_AlipayOpen_count = 1
+            self.timer_AlipayOpen_count+=1
+            # self.timer_AlipayOpen.stop()
+            # self.timer_AlipayOpen.start(10000, 1, self.timeout_AlipayOpen)
 
     def post_processor_after_initialization(self):
         pass
@@ -382,7 +409,7 @@ class AlipayOpenScreen(Screen):
     def Close(self):
         self.flag = 0
         self.timer_AlipayOpen.stop()
-        EventMesh.publish("alipay_exit")
+        EventMesh.publish("set_Alipay_Ui_isOpen",0)
 
         pass
         
@@ -439,10 +466,10 @@ class Alipay_1_1(Screen):
                                      lv.EVENT.PRESSED, None)
        
     def initialization(self):
-        pass
+        EventMesh.publish("set_Alipay_Ui_isOpen",1)
     
     def Close(self):
-        EventMesh.publish("alipay_exit")
+        EventMesh.publish("set_Alipay_Ui_isOpen",0)
         pass
         
     def alipay_paycode(self,e):
@@ -507,6 +534,7 @@ class Alipay_invite(Screen):
 
     def initialization(self):
         self.alipay_invite.start(1000, 1, self.alipay_invite)
+        EventMesh.publish("set_Alipay_Ui_isOpen",1)
 
     def alipay_invite(self, *args, **kwargs):
         print("alipay_invite:")
@@ -523,7 +551,7 @@ class Alipay_invite(Screen):
     def Close(self):
         print("alipay_exit:")
         self.alipay_invite.stop()
-        EventMesh.publish("alipay_exit")
+        EventMesh.publish("set_Alipay_Ui_isOpen",0)
         pass
 
     def done_return(self):
@@ -557,13 +585,13 @@ class Alipay_inviting(Screen):
         self.meta = alipay_inviting_screen
         
     def initialization(self):
-        pass
+        EventMesh.publish("set_Alipay_Ui_isOpen",1)
    
     def post_processor_after_initialization(self):
         pass
     
     def Close(self):
-        EventMesh.publish("alipay_exit")
+        EventMesh.publish("set_Alipay_Ui_isOpen",0)
         pass
                 
     def btn1_release(self):
@@ -603,7 +631,8 @@ class Alipay_success(Screen):
 
     def initialization(self):
         self.timer_Alipay_success.start(1000, 0, self.timeout_Alipay_success)
-   
+        EventMesh.publish("set_Alipay_Ui_isOpen",1)
+
     def post_processor_after_initialization(self):
         pass
 
@@ -614,7 +643,7 @@ class Alipay_success(Screen):
 
     def Close(self):
         self.timer_Alipay_success.stop()
-        EventMesh.publish("alipay_exit")
+        EventMesh.publish("set_Alipay_Ui_isOpen",0)
         pass
                 
     def btn1_release(self):
@@ -785,13 +814,13 @@ class Alipay_paycode(Screen):
         code_128_generate_barcode(alipay_paycode_screen,self.alipay_qr_data,240,100)
     def initialization(self):
         self.timer.start(10*1000,1,self.update_alipy)
-
+        EventMesh.publish("set_Alipay_Ui_isOpen",1)
     def update_alipy(self,e):
         EventMesh.publish("get_payment_code")
 
     def Close(self):
         self.timer.stop()
-        EventMesh.publish("alipay_exit")
+        EventMesh.publish("set_Alipay_Ui_isOpen",0)
         pass
     def done_click(self):
         EventMesh.publish("get_payment_code")
@@ -854,10 +883,10 @@ class Alipay_pay_success(Screen):
         EventMesh.publish("load_screen", {"screen": "main_menu"})
 
     def initialization(self):
-        pass
+        EventMesh.publish("set_Alipay_Ui_isOpen",1)
       
     def Close(self):
-        EventMesh.publish("alipay_exit")
+        EventMesh.publish("set_Alipay_Ui_isOpen",0)
         pass
                 
     def btn1_release(self):
@@ -899,7 +928,7 @@ class Alipay_collect(Screen):
 
   
     def initialization(self):
-        pass
+        EventMesh.publish("set_Alipay_Ui_isOpen",1)
    
     def post_processor_after_initialization(self):
         self.alipay_qr_data = str(self.meta_info)
@@ -907,7 +936,7 @@ class Alipay_collect(Screen):
         alipay_collect_alipay_qr.update(self.alipay_qr_data,len(self.alipay_qr_data))
     
     def Close(self):
-        EventMesh.publish("alipay_exit")
+        EventMesh.publish("set_Alipay_Ui_isOpen",0)
         pass
 
     def done_return(self):
@@ -977,7 +1006,7 @@ class Alipay_parent(Screen):
 
    
     def initialization(self):
-        pass
+        EventMesh.publish("set_Alipay_Ui_isOpen",1)
    
     def post_processor_after_initialization(self):
         self.alipay_qr_data = str(self.meta_info)
@@ -985,7 +1014,7 @@ class Alipay_parent(Screen):
         alipay_parent_alipay_qr.update(self.alipay_qr_data,len(self.alipay_qr_data))
     
     def Close(self):
-        EventMesh.publish("alipay_exit")
+        EventMesh.publish("set_Alipay_Ui_isOpen",0)
         pass
                 
     def done_return(self):
index 68f54ee..005a8df 100644 (file)
@@ -9,8 +9,9 @@ import audio
 from machine import Pin
 from ui import style_screen,style_font_youyuan_20,style_btn,style_img,Screen,style_contact_btn
 import audio
-
-
+import utime
+import ALIPAY
+from misc import Power
 factorymode_cont_y = 0
 factorymode_screen = lv.obj()
 factorymode_screen.center()
@@ -55,13 +56,25 @@ factorymode_location_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.ST
 factorymode_location.add_style(style_btn, lv.PART.MAIN | lv.STATE.DEFAULT)
 factorymode_cont_y+=60
 
+factorymode_alipay_init = lv.btn(factorymode_cont)
+factorymode_alipay_init.set_pos(0, factorymode_cont_y)
+factorymode_alipay_init.set_size(240, 60)
+factorymode_alipay_init_label = lv.label(factorymode_alipay_init)
+factorymode_alipay_init_label.set_text("支付宝初始化")
+factorymode_alipay_init.set_style_pad_all(0, lv.STATE.DEFAULT)
+factorymode_alipay_init_label.align(lv.ALIGN.LEFT_MID, 70, 0)
+factorymode_alipay_init_label.set_style_text_color(lv.color_make(0xff, 0xff, 0xff), lv.STATE.DEFAULT)
+factorymode_alipay_init_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+factorymode_alipay_init.add_style(style_btn, lv.PART.MAIN | lv.STATE.DEFAULT)
+factorymode_cont_y+=60
+
 class FactoryModeScreen(Screen):
     NAME = "factorymode"
     def __init__(self):
         super().__init__()
         self.meta = factorymode_screen
         factorymode_location.add_event_cb(lambda e: EventMesh.callback_wrapper(self.load_screen(e, {"screen": "FactoryModeLocation"})), lv.EVENT.CLICKED, None)
-    
+        factorymode_alipay_init.add_event_cb(lambda e: EventMesh.callback_wrapper(self.load_screen(e, {"screen": "FactoryModeAlipayInit"})), lv.EVENT.CLICKED, None)
 
     def done_return(self):
         EventMesh.publish("load_screen", {"screen": "main_menu"})
@@ -72,6 +85,41 @@ class FactoryModeScreen(Screen):
     def btn8_press(self):
         EventMesh.publish("load_screen", {"screen": "main_menu"})
 
+FactoryModeAlipayInit_screen = lv.obj()
+FactoryModeAlipayInit_screen.center()
+FactoryModeAlipayInit_screen.set_size(240, 320)
+FactoryModeAlipayInit_screen.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+FactoryModeLocation_WIFI_label = lv.label(FactoryModeAlipayInit_screen)
+FactoryModeLocation_WIFI_label.set_text("支付宝初始化成功")
+FactoryModeLocation_WIFI_label.set_size(240, 100)
+FactoryModeLocation_WIFI_label.set_pos(50, 100)
+FactoryModeLocation_WIFI_label.set_style_text_color(lv.color_make(0xff, 0xff, 0xff), lv.STATE.DEFAULT)
+FactoryModeLocation_WIFI_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+class FactoryModeAlipayInitScreen(Screen):
+    NAME = "FactoryModeAlipayInit"
+    def __init__(self):
+        super().__init__()
+        self.meta = FactoryModeAlipayInit_screen
+        
+    def initialization(self):
+        ret =EventMesh.publish("id2_clean_data")
+        print("id2_clean_data:ret:{}".format(ret))
+
+    def post_processor_after_initialization(self):
+        utime.sleep(3)
+        Power.powerRestart()
+    def Close(self):
+        pass
+
+    def done_return(self):
+        EventMesh.publish("load_screen", {"screen": "factorymode"})
+
+    def btn1_release(self):
+        EventMesh.publish("load_screen", {"screen": "factorymode"})
+        
+    def btn8_press(self):
+        EventMesh.publish("load_screen", {"screen": "main_menu"})
 
 FactoryModeLocation_screen = lv.obj()
 FactoryModeLocation_screen.center()
@@ -79,23 +127,23 @@ FactoryModeLocation_screen.set_size(240, 320)
 FactoryModeLocation_screen.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
 
 FactoryModeLocation_WIFI_label = lv.label(FactoryModeLocation_screen)
-FactoryModeLocation_WIFI_label.set_text("WIFI:\n")
-FactoryModeLocation_WIFI_label.set_size(240, 80)
+FactoryModeLocation_WIFI_label.set_text("WIFI:")
+FactoryModeLocation_WIFI_label.set_size(240, 100)
 FactoryModeLocation_WIFI_label.set_pos(0, 0)
 FactoryModeLocation_WIFI_label.set_style_text_color(lv.color_make(0xff, 0xff, 0xff), lv.STATE.DEFAULT)
 FactoryModeLocation_WIFI_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
 
 FactoryModeLocation_CALL_label = lv.label(FactoryModeLocation_screen)
-FactoryModeLocation_CALL_label.set_text("CALL:\n")
-FactoryModeLocation_CALL_label.set_size(240, 40)
-FactoryModeLocation_CALL_label.set_pos(0, 80)
+FactoryModeLocation_CALL_label.set_text("CALL:")
+FactoryModeLocation_CALL_label.set_size(240, 60)
+FactoryModeLocation_CALL_label.set_pos(0, 100)
 FactoryModeLocation_CALL_label.set_style_text_color(lv.color_make(0xff, 0xff, 0xff), lv.STATE.DEFAULT)
 FactoryModeLocation_CALL_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
 
 FactoryModeLocation_GNSS_label = lv.label(FactoryModeLocation_screen)
 FactoryModeLocation_GNSS_label.set_text("GNSS:\n")
 FactoryModeLocation_GNSS_label.set_size(240, 200)
-FactoryModeLocation_GNSS_label.set_pos(0, 120)
+FactoryModeLocation_GNSS_label.set_pos(0, 160)
 FactoryModeLocation_GNSS_label.set_style_text_color(lv.color_make(0xff, 0xff, 0xff), lv.STATE.DEFAULT)
 FactoryModeLocation_GNSS_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
 
@@ -104,25 +152,34 @@ class FactoryModeLocationScreen(Screen):
     def __init__(self):
         super().__init__()
         self.meta = FactoryModeLocation_screen
-
-    def post_processor_after_initialization(self):
         EventMesh.subscribe("PUSH_LOCATION_DATA",self.GET_LOCATION_DATA)
-        EventMesh.publish(constants.EVENT.START_LOCATION, 1) #测试模式
+        self.timer_FactoryModeLocation = osTimer()
+
+    def initialization(self):
         FactoryModeLocation_GNSS_label.set_text("GNSS:\n") 
-        FactoryModeLocation_WIFI_label.set_text("WIFI:\n")
+        FactoryModeLocation_WIFI_label.set_text("WIFI:")
         FactoryModeLocation_CALL_label.set_text("CALL:")
+        self.timer_FactoryModeLocation.start(1000, 1, self.timer_FactoryModeLocation_cb)
+
+    def post_processor_after_initialization(self):
+        #utime.sleep_ms(1000)
+        EventMesh.publish(constants.EVENT.START_LOCATION, 1) #测试模式
+
+    def timer_FactoryModeLocation_cb(self, *args, **kwargs):
+        EventMesh.publish("system_sleep_rest")#防止黑屏    
+
     def GET_LOCATION_DATA(self, event, msg):
-        #print("GPS:{}".format(msg[0]))
+        print("GPS:{}".format(msg[0]))
         print("WIFI:{}".format(msg[1]))
         print("CALL:{}".format(msg[2]))
         EventMesh.publish("system_sleep_rest")#防止黑屏
         if msg[1] != [] : #WIFI
             WIFI_len = len(msg[1][1])
-            WIFI_DATA = "WIFI:\n"
+            WIFI_DATA = "WIFI:"
             if WIFI_len > 3:
                 WIFI_len = 3
             for i in range(WIFI_len) :
-                WIFI_DATA += "{}\n".format(msg[1][1][i])
+                WIFI_DATA += "{}".format(msg[1][1][i])
             FactoryModeLocation_WIFI_label.set_text(WIFI_DATA)
         
         if len(msg[0]) > 1 : #GPS
@@ -149,17 +206,22 @@ class FactoryModeLocationScreen(Screen):
                         break 
             count = 0
             for key in GSV_dict :
-                GNSS_DATA+="        {}:[{}]\n".format(key,GSV_dict[key])
-                count+=1
-                if count > 9:
+                if GSV_dict[key] != [] :
+                    GNSS_DATA+=" {}:[{}] ".format(key,GSV_dict[key])
+                    count+=1
+                if count%2 == 0:
+                    GNSS_DATA+="\n"
+                if count > 14:
                     break
             print("GxGSV:{}".format(GNSS_DATA))
             FactoryModeLocation_GNSS_label.set_text(GNSS_DATA)  
         if msg[2] != [] :#基站
+            #print("CALL data:".format(msg[2][0]))
             if len(msg[2]) > 2 :
                 FactoryModeLocation_CALL_label.set_text("CALL:{}".format(msg[2][0]))      
     def Close(self):
         EventMesh.publish(constants.EVENT.CLOSE_LOCATION) 
+        self.timer_FactoryModeLocation.stop()
 
     def done_return(self):
         EventMesh.publish("load_screen", {"screen": "factorymode"})
index 70baa11..7d24b9f 100644 (file)
@@ -10,6 +10,8 @@ from machine import Pin
 from ui import style_font_youyuan_20,style_screen,Screen,style_font_youyuan_20_black,style_img
 import audio
 from machine import Pin
+import utime
+import _thread
 from protocol import ProtoCol,UnicodeHexStr_To_Utf8Str
 
 style_wechat_r_btn =  lv.style_t()
@@ -132,21 +134,38 @@ class WechatScreen(Screen):
             self.volum_size = 8
         self.aud.setVolume(self.volum_size)
         self.meta = wechat_screen
-        wechat_press_btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.talking(e)),
+        wechat_press_btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.talking_cb(e)),
                                      lv.EVENT.LONG_PRESSED, None)
-        wechat_press_btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.sending(e)),
+        wechat_press_btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.sending_cb(e)),
                                      lv.EVENT.RELEASED, None)
         self.timer = osTimer()
         self.second_timer = osTimer()
         self.play_timer = osTimer()
-        
+
         
 
         self.startY = 0
         self.startWidth = 0
         self.check_json = 0
-        self.wechat_list = lv.obj(wechat_screen)
+        self.wechat_list = lv.obj(wechat_screen_list_screen)
+        self.wechat_list.set_pos(0, 0)
+        self.wechat_list.set_size(240, 261)
+        self.wechat_list.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
         self.wechat_list.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
+        
+        #建立控件
+        self.wechat_list_dict = []
+        for i in range(self.MXA_MSG):
+            wechat_btn = lv.btn(self.wechat_list)
+            wechat_btn.add_style(style_wechat_s_btn, lv.PART.MAIN | lv.STATE.DEFAULT)
+            _btn_label1 = lv.label(wechat_btn)
+            _btn_label1.add_style(style_font_youyuan_20_black, lv.PART.MAIN | lv.STATE.DEFAULT)
+            _btn_label2 = lv.label(wechat_btn)
+            _btn_img = lv.img(wechat_btn)
+            wechat_btn.add_flag(lv.obj.FLAG.HIDDEN)
+            wechat_btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.play_label_cb(e)),
+            lv.EVENT.CLICKED, None)
+            self.wechat_list_dict.append({"num":i,"wechat_btn":wechat_btn,"_btn_label1":_btn_label1,"_btn_label2":_btn_label2,"_btn_img":_btn_img})
 
         EventMesh.subscribe("wechat_updata_list_show", self.wechat_updata_list_show)
         EventMesh.subscribe("get_wechat_data", self.get_wechat_data)
@@ -157,7 +176,8 @@ class WechatScreen(Screen):
 
         self.countdown = 1
         self.count_img = 0
-        self.play_img_cnt = None
+        self.paay_btn_count = 0
+        self.paay_btn_old_count = 99999
         self.play_text = None
         self.play_sec = 0
         self.sec_num = 0
@@ -167,7 +187,26 @@ class WechatScreen(Screen):
         self.wechat_show = 0
         self.wechat_show_list = 0
         #self.old_num = self.wechat_num
-        self.updata_list_show_lock =0
+
+
+    def initialization(self):
+        self.aud.setVolume(11)#设置最大声录音
+        wechat_label.set_text(" ")
+        wechat_label.add_flag(lv.obj.FLAG.HIDDEN)
+        wechat_press_label_countdown.add_flag(lv.obj.FLAG.HIDDEN)
+        self.wechat_list.clear_flag(lv.obj.FLAG.HIDDEN)
+        #读取json文件中的字典放到self.phonebook中
+        #创建btn
+        #self.updata_list_show(1)
+        EventMesh.publish("publish_message_event_ui",{"func":self.updata_list_show,"data":2})
+        utime.sleep_ms(50)
+        EventMesh.publish("publish_message_event_ui",{"func":self.updata_list_show,"data":0})
+        self.count_img = 0
+        self.play_sec = 0
+        self.ble_send = 0
+        # utime.sleep(1)
+        # for j in range( 200):
+        #     self.updata_list_show(1)
 
     def get_wechat_data(self,event, msg): 
         return [self.MXA_MSG ,self.wechat_recode_list]
@@ -185,16 +224,28 @@ class WechatScreen(Screen):
         print("set_wechat_data:{} ".format(self.wechat_num))
         # with open("/ext/static/storage_file/wechat_num.txt","w") as fd:
         #         fd.write("{}".format(self.wechat_num))
-       
 
+    def reciving(self,e):
+        #self.updata_list_show(0)
+        EventMesh.publish("publish_message_event_ui",{"func":self.updata_list_show,"data":0})   
+    #接收到新的消息,刷新界面
     def wechat_updata_list_show(self, event, msg): 
         if (self.wechat_list.has_flag(lv.obj.FLAG.HIDDEN)) == False:
-            wechat_label.clear_flag(lv.obj.FLAG.HIDDEN)
-            wechat_label.set_text("接收中")
-            self.updata_list_show(2)
-            self.timer.start(1 * 1000, 0, self.reciving)
+            # wechat_label.clear_flag(lv.obj.FLAG.HIDDEN)
+            # wechat_label.set_text("接收中")
+            #self.updata_list_show(2)
+            EventMesh.publish("publish_message_event_ui",{"func":self.updata_list_show,"data":2})
+            self.timer.start(200, 0, self.reciving)
+            self.paay_btn_count -= 1
+            # if self.paay_btn_count <= 0:
+            #     self.paay_btn_count = 0
+            if self.paay_btn_count >= 0:
+                self.paay_btn_old_count = self.paay_btn_count
     
-           
+    # def handle_message_event(self,data):
+    #     if data[0] == "updata_list_show":
+    #        self.updata_list_show(data[1])
+    #        return 1        
 
     #index=0 不改变列表控件显示到lcd上;index=2只更新列表控件,不显示;index=1更新列表并显示控件
     def updata_list_show(self,index):
@@ -205,40 +256,28 @@ class WechatScreen(Screen):
                     self.wechat_list.clear_flag(lv.obj.FLAG.HIDDEN)
                     wechat_label.add_flag(lv.obj.FLAG.HIDDEN)
                 elif index == 2 or index == 1:
-                    if self.updata_list_show_lock == 0:
-                        self.updata_list_show_lock = 1
-                    else :
-                        return
-                    #读取json文件中的键作为label文本;
-                    #print("self.wechat_list.self.wechat_num:{}".format(self.wechat_num))
                     
+                    #读取json文件中的键作为label文本;                 
                     print("self.wechat_recode_list:{}".format(self.wechat_recode_list))
-                    self.wechat_list.delete()#先删除一次控件
-                    self.wechat_list = lv.obj(wechat_screen_list_screen)
-                    self.wechat_list.set_pos(0, 0)
-                    self.wechat_list.set_size(240, 261)
-                    self.wechat_list.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
-                    self.wechat_list.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
-                    self.play_img_cnt = lv.img(self.wechat_list)
-                    self.play_img_cnt.set_size(30, 30)
+
                     if index == 2:
                         self.wechat_list.add_flag(lv.obj.FLAG.HIDDEN)
                     j = 1
                     if len(self.wechat_recode_list)-1 == self.MXA_MSG:
                         j = self.wechat_num+1
-                    
+                    wechat_btn_end = 0
                     for i in range(self.MXA_MSG):
                         if j > self.MXA_MSG:
                             j = 1
                         key = "%02d"%(j)
-                        
                         if j > len(self.wechat_recode_list) -1:
-                            break
+                            self.wechat_list_dict[i]["wechat_btn"].add_flag(lv.obj.FLAG.HIDDEN)
+                            continue
                         j+=1
-
+                        
+                        #print("wechat_list_dict:num:{}".format(self.wechat_list_dict[i]["num"]))
                         value = self.wechat_recode_list[key]
                         
-
                         self.startY = 56*i
                         
                         if value.find("S:") != -1 or value.find("R:") != -1:
@@ -250,73 +289,69 @@ class WechatScreen(Screen):
                             self.msg_tmp = value[2:] 
                             self.startWidth = 230
                         
-                        wechat_btn = lv.btn(self.wechat_list)
-                        # if value.find("R:") != -1:
-                        wechat_btn.set_size(self.startWidth,54)
+                        #wechat_btn = lv.btn(self.wechat_list)
+                        # if value.find("R:") != -1:self.wechat_list_dict[i]
+                        self.wechat_list_dict[i]["wechat_btn"].set_size(self.startWidth,54)
                         if value.find("R:") != -1 or value.find("T:") != -1 :#显示文字:
-                            wechat_btn.set_pos(10,self.startY )
-                            wechat_btn.add_style(style_wechat_s_btn, lv.PART.MAIN | lv.STATE.DEFAULT)
+                            self.wechat_list_dict[i]["wechat_btn"].set_pos(10,self.startY )
+                            #self.wechat_list_dict[i]["wechat_btn"].add_style(style_wechat_s_btn, lv.PART.MAIN | lv.STATE.DEFAULT)
+                            self.wechat_list_dict[i]["wechat_btn"].set_style_bg_color(lv.color_make(0xff, 0xff, 0xff), lv.PART.MAIN | lv.STATE.DEFAULT)
                         elif value.find("S:") != -1 :
-                            wechat_btn.set_pos(230-self.startWidth,self.startY )
-                            wechat_btn.add_style(style_wechat_r_btn, lv.PART.MAIN | lv.STATE.DEFAULT)
-                        if value.find("R:") != -1 or value.find("S:") != -1:
-                            wechat_btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.play_label(e)),
-                                lv.EVENT.CLICKED, None)
+                            self.wechat_list_dict[i]["wechat_btn"].set_pos(230-self.startWidth,self.startY )
+                            #for k in range(100):
+                            #self.wechat_list_dict[i]["wechat_btn"].add_style(style_wechat_r_btn, lv.PART.MAIN | lv.STATE.DEFAULT)
+                            self.wechat_list_dict[i]["wechat_btn"].set_style_bg_color(lv.color_make(0x00, 0xff, 0x2a), lv.PART.MAIN | lv.STATE.DEFAULT)
                         
-                        _btn_label1 = lv.label(wechat_btn)
+
+                        #_btn_label1 = lv.label(wechat_btn)
                         if value.find("R:") != -1:
-                            _btn_label1.set_size(0, 0)
-                            _btn_label1.set_pos(35, 8)
-                            _btn_label1.set_text(str(self.msg_tmp)+'\"')
+                            self.wechat_list_dict[i]["_btn_label1"].set_size(0, 0)
+                            self.wechat_list_dict[i]["_btn_label1"].set_pos(35, 8)
+                            self.wechat_list_dict[i]["_btn_label1"].set_text(str(self.msg_tmp)+'\"')
                             
                         elif value.find("S:") != -1:
-                            _btn_label1.set_size(0, 0)
-                            _btn_label1.set_pos(self.startWidth-78, 8)
-                            _btn_label1.set_text(str(self.msg_tmp)+'\"')
+                            self.wechat_list_dict[i]["_btn_label1"].set_size(0, 0)
+                            self.wechat_list_dict[i]["_btn_label1"].set_pos(self.startWidth-78, 8)
+                            self.wechat_list_dict[i]["_btn_label1"].set_text(str(self.msg_tmp)+'\"')
                         elif value.find("T:") != -1:
-                           
-                            _btn_label1.set_size(216, 66)
-                            _btn_label1.set_pos(0, 0)
-                            _btn_label1.set_text(str(self.msg_tmp))
-                            _btn_label1.set_long_mode(lv.label.LONG.DOT)
-
-                        _btn_label1.add_style(style_font_youyuan_20_black, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-                        _btn_label2 = lv.label(wechat_btn)
-                        _btn_label2.set_size(0, 0)
+                            self.wechat_list_dict[i]["_btn_label1"].set_size(216, 66)
+                            self.wechat_list_dict[i]["_btn_label1"].set_pos(0, 0)
+                            self.wechat_list_dict[i]["_btn_label1"].set_text(str(self.msg_tmp))
+                            self.wechat_list_dict[i]["_btn_label1"].set_long_mode(lv.label.LONG.DOT)
+                        #self.wechat_list_dict[i]["_btn_label1"].add_style(style_font_youyuan_20_black, lv.PART.MAIN | lv.STATE.DEFAULT)
+                        #_btn_label2 = lv.label(wechat_btn)
+                        self.wechat_list_dict[i]["_btn_label2"].set_size(0, 0)
                         if value.find("R:") != -1:
-                            _btn_label2.set_text('R:'+key)
+                            self.wechat_list_dict[i]["_btn_label2"].set_text('R:'+key)
                         elif value.find("S:") != -1:
-                            _btn_label2.set_text('S:'+key)
+                            self.wechat_list_dict[i]["_btn_label2"].set_text('S:'+key)
                         elif value.find("T:") != -1:
-                            _btn_label2.set_text('T:'+key)
-
+                            self.wechat_list_dict[i]["_btn_label2"].set_text('T:'+key)
                         if value.find("R:") != -1 or value.find("S:") != -1:
-                            _btn_img = lv.img(wechat_btn)
-                            _btn_img.set_size(30, 30)
+                            #_btn_img = lv.img(wechat_btn)
+                            self.wechat_list_dict[i]["_btn_img"].set_size(30, 30)
                             if value.find("R:") != -1:
-                                _btn_img.set_pos(5, 0)
-                                _btn_img.set_src("E:/static/APP/wechat/R_3.png")
+                                self.wechat_list_dict[i]["_btn_img"].set_pos(5, 0)
+                                self.wechat_list_dict[i]["_btn_img"].set_src("E:/static/APP/wechat/R_3.png")
                             elif value.find("S:") != -1:
-                                _btn_img.set_pos(self.startWidth-50, 0)
-                                _btn_img.set_src("E:/static/APP/wechat/S_3.png")
-                            _btn_img.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
-                    bottom_btn1 = self.wechat_list.get_child(-1)
-                    bottom_btn1.scroll_to_view(lv.ANIM.OFF)
-                    self.updata_list_show_lock = 0    
-
-    def initialization(self):
-        self.aud.setVolume(11)#设置最大声录音
-        wechat_label.set_text(" ")
-        wechat_label.add_flag(lv.obj.FLAG.HIDDEN)
-        wechat_press_label_countdown.add_flag(lv.obj.FLAG.HIDDEN)
-        self.wechat_list.clear_flag(lv.obj.FLAG.HIDDEN)
-        #读取json文件中的字典放到self.phonebook中
-        #创建btn
-        self.updata_list_show(1)
-        self.count_img = 0
-        self.play_sec = 0
-        self.ble_send = 0
+                                self.wechat_list_dict[i]["_btn_img"].set_pos(self.startWidth-50, 0)
+                                self.wechat_list_dict[i]["_btn_img"].set_src("E:/static/APP/wechat/S_3.png")
+                            #self.wechat_list_dict[i]["_btn_img"].add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
+                            self.wechat_list_dict[i]["_btn_img"].clear_flag(lv.obj.FLAG.HIDDEN)
+                        else :
+                            self.wechat_list_dict[i]["_btn_img"].add_flag(lv.obj.FLAG.HIDDEN)
+                        self.wechat_list_dict[i]["wechat_btn"].clear_flag(lv.obj.FLAG.HIDDEN)
+                        
+                        wechat_btn_end = i
+                    self.wechat_list_dict[wechat_btn_end]["wechat_btn"].scroll_to_view(lv.ANIM.OFF)
+                        
+                    # bottom_btn1 = self.wechat_list.get_child(-1)
+                    # bottom_btn1.scroll_to_view(lv.ANIM.ON)
+                    
+        
+    def talking_cb(self,e):
+        EventMesh.publish("publish_message_event_ui",{"func":self.talking,"data":e})
+        
     #按下录音
     def talking(self,e):
         self.play_timer.stop()
@@ -329,27 +364,37 @@ class WechatScreen(Screen):
         wechat_press_label_countdown.set_text("{}S".format(str(self.countdown)))
         
 
-        self.updata_list_show(2)#不需要显示语音列表
+        #self.updata_list_show(2)#不需要显示语音列表
         #按下说话
         if self.wechat_num >= self.MXA_MSG:
             self.wechat_num = 0 
         self.wechat_num += 1 
         self.wechat_show = self.wechat_num
         self.wechat_recode_list["num"] = self.wechat_num
-        print("talking self.wechat_num ...:{} self.MXA_MSG:{}".format(self.wechat_num,self.MXA_MSG))
         self.record_test.start("/ext/static/storage_file/{}.amr".format(self.wechat_num),16) 
         self.second_timer.start(1000, 1, self.reduce_second)
         self.press_state = 1
         self.ble_send = 1
         #松开发送   
-    def reciving(self,e):
-        self.updata_list_show(0)
+    
+   
+
+    def sending_cb(self,e):
+        #EventMesh.publish("publish_message_event_ui",{"func":self.sending,"data":e})
+        self.sending(e)
 
+    #松手0.2秒后显示
+    def hide_label(self,*args):
+        if self.ble_send != 1:
+            wechat_label.add_flag(lv.obj.FLAG.HIDDEN)
+            wechat_label.set_text(" ")
+            #self.updata_list_show(0)
+            EventMesh.publish("publish_message_event_ui",{"func":self.updata_list_show,"data":0})    
      #松开发送   
     def sending(self,e):
         if self.press_state == 1:
-            wechat_label.clear_flag(lv.obj.FLAG.HIDDEN)
-            wechat_label.set_text("发送中")
+            # wechat_label.clear_flag(lv.obj.FLAG.HIDDEN)
+            # wechat_label.set_text("发送中")
             wechat_press_label_countdown.add_flag(lv.obj.FLAG.HIDDEN)
             wechat_press_label_countdown.set_text(" ")
 
@@ -372,7 +417,7 @@ class WechatScreen(Screen):
             #修改或添加词典键值
             self.press_state = 0
             self.ble_send = 0
-            self.timer.start(2 * 1000, 0, self.hide_label)
+            self.timer.start(200, 0, self.hide_label)
             with open("/ext/static/storage_file/wechat_record.json","w+",encoding="utf-8") as fd:
                 ujson.dump(self.wechat_recode_list,fd)
             print("send wechat data!!!!!!!!!!!!!!!!!!!!!")
@@ -383,20 +428,28 @@ class WechatScreen(Screen):
                 senddata = [self.countdown_old,buf]
                 EventMesh.publish(constants.PROTOCOL.TK_SEND,senddata)
             #隐藏显示文本 显示列表显示框
-            self.updata_list_show(2)
-            
+            #self.updata_list_show(2)
+            EventMesh.publish("publish_message_event_ui",{"func":self.updata_list_show,"data":2})
 
 
     def play_img_cb(self,*args):
+        EventMesh.publish("publish_message_event_ui",{"func":self.play_img,"data":args})
+    def play_img(self,*args):    
+        if self.paay_btn_count < 0 or self.paay_btn_count>= self.MXA_MSG:
+            self.play_timer.stop()
+            return
         EventMesh.publish("system_sleep_rest")#防止黑屏
         # print("self.count_img :{} self.play_text:{}".format(self.count_img,self.play_text))
         self.count_img+=1
         if self.count_img > 3:
             self.count_img = 1
+
+        text = self.wechat_list_dict[self.paay_btn_count]["_btn_label2"].get_text()
+        self.play_text = text[0:2] #区分左右喇叭动画显示 "R":左边 "S:"右边 "T:":左边
         if self.play_text == "R:":
-            self.play_img_cnt.set_src("E:/static/APP/wechat/R_{}.png".format(self.count_img))
+            self.wechat_list_dict[self.paay_btn_count]["_btn_img"].set_src("E:/static/APP/wechat/R_{}.png".format(self.count_img))
         elif self.play_text == "S:":
-            self.play_img_cnt.set_src("E:/static/APP/wechat/S_{}.png".format(self.count_img))
+            self.wechat_list_dict[self.paay_btn_count]["_btn_img"].set_src("E:/static/APP/wechat/S_{}.png".format(self.count_img))
 
         self.sec_num+=1
         if self.sec_num % 2 == 0:
@@ -406,62 +459,71 @@ class WechatScreen(Screen):
                 if self.play_sec == 0:
                     self.play_timer.stop()
                     if self.play_text == "R:":
-                        self.play_img_cnt.set_src("E:/static/APP/wechat/R_3.png")
+                        self.wechat_list_dict[self.paay_btn_count]["_btn_img"].set_src("E:/static/APP/wechat/R_3.png")
                     elif self.play_text == "S:":
-                        self.play_img_cnt.set_src("E:/static/APP/wechat/S_3.png") 
+                        self.wechat_list_dict[self.paay_btn_count]["_btn_img"].set_src("E:/static/APP/wechat/S_3.png") 
         get_play = EventMesh.publish("get_audio_state")
         if get_play != None:
             if get_play == 0:
-                if self.play_text == "R:" and self.play_sec > 0:
-                    self.play_timer.stop()
-    
-    #点击播放
-    def play_label(self,e):
-        code = e.get_code()
-        if code == lv.EVENT.CLICKED:
-            self.sec_num = 0
-            # print("play_label self.play_text:{}".format(self.play_text))
-            if self.play_text != None and self.play_img_cnt != None: #停止东画还原到3图标
+                self.play_timer.stop()
                 if self.play_text == "R:":
-                    self.play_img_cnt.set_src("E:/static/APP/wechat/R_3.png")
+                    self.wechat_list_dict[self.paay_btn_count]["_btn_img"].set_src("E:/static/APP/wechat/R_3.png")
                 elif self.play_text == "S:":
-                    self.play_img_cnt.set_src("E:/static/APP/wechat/S_3.png")
-
-            self.count_img = 0 #喇叭动画显示的数量
-            play_img = e.get_target()
-            self.play_img_cnt = play_img.get_child(2)
-            text = play_img.get_child(1).get_text()
-            self.play_text = text[0:2] #区分左右喇叭动画显示 "R":左边 "S:"右边 "T:":左边
-
-            play_img_s = play_img.get_child(0).get_text()
-            play_img_s = play_img_s.split('"')
-            play_img_s = play_img_s[0]#获取实际显示秒数 '"'前面实际的秒数
+                    self.wechat_list_dict[self.paay_btn_count]["_btn_img"].set_src("E:/static/APP/wechat/S_3.png") 
+
+    def play_label_cb(self,e): #lvgl按钮回调
+        #print("play_label_cb.0:e:{}".format(e.get_code()))
+        paay_btn = e.get_target()
+        for i in range(self.MXA_MSG):
+            if(self.wechat_list_dict[i]["wechat_btn"] == paay_btn):
+                print("play_label_cb:wechat_btn = e.get_target():i:{}".format(i))
+                self.paay_btn_count = i
+                break
+        EventMesh.publish("publish_message_event_ui",{"func":self.play_label,"data":paay_btn})#发到另外一个线程执行更改ui
+        #utime.sleep_ms(1000)
+    #点击播放
+    def play_label(self,play_btn):#另外一个线程实际执行的地方
 
-            if self.play_text == "R:" or self.play_text == "S:":
-                if self.play_text == "R:":
-                    self.play_sec = 15
-                else:
-                    self.play_sec = int(play_img_s)
+        self.sec_num = 0
+        # print("play_label self.play_text:{}".format(self.play_text)) 
+        if self.paay_btn_old_count <= self.MXA_MSG: #停止东画还原到3图标
+            text = self.wechat_list_dict[self.paay_btn_old_count]["_btn_label2"].get_text()
+            self.play_text = text[0:2]
+            if self.play_text == "R:":
+                self.wechat_list_dict[self.paay_btn_old_count]["_btn_img"].set_src("E:/static/APP/wechat/R_3.png")
+            elif self.play_text == "S:":
+                self.wechat_list_dict[self.paay_btn_old_count]["_btn_img"].set_src("E:/static/APP/wechat/S_3.png")
+
+        self.count_img = 0 #喇叭动画显示的数量
+  
+
+        text = self.wechat_list_dict[self.paay_btn_count]["_btn_label2"].get_text()
+        self.play_text = text[0:2] #区分左右喇叭动画显示 "R":左边 "S:"右边 "T:":左边
+        print("self.play_text2:{}".format(self.play_text))
+        play_img_s = self.wechat_list_dict[self.paay_btn_count]["_btn_label1"].get_text()
+        play_img_s = play_img_s.split('"')
+        play_img_s = play_img_s[0]#获取实际显示秒数 '"'前面实际的秒数
+
+        if self.play_text == "R:" or self.play_text == "S:":
+            if self.play_text == "R:":
+                self.play_sec = 15
+            else:
+                self.play_sec = int(play_img_s)
 
-                self.play_timer.start(500, 1, self.play_img_cb)
-            # print("play_label self.count_img :{} self.play_text:{} play_img_s:{} self.play_sec:{}".format(self.count_img,self.play_text,play_img_s,self.play_sec))
-            
-            num_amr = play_img.get_child(1).get_text()
-            num_amr = num_amr.split(':')
-            num_amr = num_amr[1]#获取实际秒数
-            i = int(num_amr)
-            # print("num:{}".format(i))
-            if self.play_text == "R:" or self.play_text == "S:":#过滤掉文字显示 不需要播放音频文件
-                self.aud = audio.Audio(0)
-                self.aud.stop()#
-                self.aud.play(1, 1, '/ext/static/storage_file/{}.amr'.format(i))  #文件名前面要加上路径
-
-    #松手2秒后发送数据
-    def hide_label(self,*args):
-        if self.ble_send != 1:
-            wechat_label.add_flag(lv.obj.FLAG.HIDDEN)
-            wechat_label.set_text(" ")
-            self.updata_list_show(0)
+            self.play_timer.start(500, 1, self.play_img_cb)
+        # print("play_label self.count_img :{} self.play_text:{} play_img_s:{} self.play_sec:{}".format(self.count_img,self.play_text,play_img_s,self.play_sec))
+        
+        num_amr = self.wechat_list_dict[self.paay_btn_count]["_btn_label2"].get_text()
+        num_amr = num_amr.split(':')
+        num_amr = num_amr[1]#获取实际秒数
+        i = int(num_amr)
+        # print("num:{}".format(i))
+        if self.play_text == "R:" or self.play_text == "S:":#过滤掉文字显示 不需要播放音频文件
+            self.aud = audio.Audio(0)
+            self.aud.stop()#
+            self.aud.play(1, 1, '/ext/static/storage_file/{}.amr'.format(i))  #文件名前面要加上路径
+        self.paay_btn_old_count = self.paay_btn_count
+    
 
      #获取是否在录音
     def get_aduio_state(self, event, msg): 
@@ -469,7 +531,8 @@ class WechatScreen(Screen):
 
     def get_send_state(self, event, msg): 
         return self.ble_send
-    
+
+
     def Close(self):
         self.play_timer.stop()
         self.record_test.stop() #停止錄音
@@ -519,25 +582,25 @@ class NewWechatPopupScreen(Screen):
     def __init__(self):
         super().__init__()
         self.meta = wechat_popup_screen
-
+        self.meta_type = "popup"
     def done_left_to_right(self):
         # EventMesh.publish("wechat_updata_list_show")
-        EventMesh.publish("load_screen", {"screen": "wechat"})
+        EventMesh.publish("return_prev_screen")
 
     def done_right_to_left(self):
         # EventMesh.publish("wechat_updata_list_show")
-        EventMesh.publish("load_screen", {"screen": "wechat"})
+        EventMesh.publish("return_prev_screen")
 
     def done_bottom_to_top(self):
         # EventMesh.publish("wechat_updata_list_show")
-        EventMesh.publish("load_screen", {"screen": "wechat"})
+        EventMesh.publish("return_prev_screen")
 
     def done_top_to_bottom(self):
         # EventMesh.publish("wechat_updata_list_show")
-        EventMesh.publish("load_screen", {"screen": "wechat"})
+        EventMesh.publish("return_prev_screen")
 
     def done_return(self):
-        EventMesh.publish("load_screen", {"screen": "main_menu"})
+        EventMesh.publish("return_prev_screen")
     def done_click(self):
         # EventMesh.publish("wechat_updata_list_show")
         EventMesh.publish("load_screen", {"screen": "wechat"})
index 99e95d9..2f997a0 100644 (file)
@@ -1,4 +1,8 @@
 import sms
+import atcmd
+# resp=bytearray(50)
+# atcmd.sendSync('AT+log=52,1\r\n',resp,'',20)
+# print("AT+log=52,1:{}".format(resp))
 
 class App(object):
     def __init__(self):
@@ -52,7 +56,7 @@ if __name__ == '__main__':
     from ui_main_menu import MainMenuScreen
     # from ui_WatchFaceScreen import WatchFaceScreen
     
-    from appFactoryMode import  FactoryModeLocationScreen,FactoryModeScreen 
+    from appFactoryMode import  FactoryModeLocationScreen,FactoryModeScreen ,FactoryModeAlipayInitScreen
     import ui as _ui
     # import ui as _ui
     print("init4:{}".format(utime.localtime()))
@@ -75,7 +79,7 @@ if __name__ == '__main__':
     ui.add_screen(_ui.Spo2Screen()) 
     ui.add_screen(_ui.TemperatureScreen()) 
     ui.add_screen(_ui.ContactsScreen()) 
-    from appWechat import WechatScreen,TK_ProtoCol,MESSAGE_ProtoCol,NewWechatPopupScreen
+    from usr.appWechat import WechatScreen,TK_ProtoCol,MESSAGE_ProtoCol,NewWechatPopupScreen
     ui.add_screen(WechatScreen()) 
     from alarm import ClkListScreen,ClockManager,NewEditClk,CLKTimeScreen,ClkPeriod,PopupAlarmScreen
     from ui_health import HealthScreen
@@ -122,6 +126,7 @@ if __name__ == '__main__':
     # ui.add_screen(_ui.PowerOnScreen())
     ui.add_screen(FactoryModeLocationScreen())
     ui.add_screen(FactoryModeScreen())
+    ui.add_screen(FactoryModeAlipayInitScreen())
     ui.add_screen(PopupAlarmScreen())
     ui.add_screen(_ui.LowPowerScreen())
     ui.add_screen(_ui.NewMessageScreen())
@@ -133,12 +138,12 @@ if __name__ == '__main__':
 
     from protocol import LK_ProtoCol,PING_ProtoCol,HEART_ProtoCol,OXYGEN_ProtoCol,OXYGEN_One_ProtoCol,HRSTART_ProtoCol,CENTER_ProtoCol,UPLOAD_ProtoCol,\
         TEMP_ProtoCol,DLT_ProtoCol,WT_ProtoCol,UD_ProtoCol,REMIND_ProtoCol, CR_ProtoCol,KA_ProtoCol,FIND_ProtoCol,POWEROFF_ProtoCol,\
-            ProtoColResolver,PHL_ProtoCol,MONITOR_ProtoCol,bootoff_ProtoCol,WDSTART_ProtoCol,LOWBAT_ProtoCol,sosHome_dial_ProtoCol
+            ProtoColResolver,PHL_ProtoCol,MONITOR_ProtoCol,bootoff_ProtoCol,WDSTART_ProtoCol,LOWBAT_ProtoCol,sosHome_dial_ProtoCol,SockManager,NetManager
     import mgr as mgr
     print("init7:{}".format(utime.localtime()))
     
-    from mgr import ConfigStoreManager,getBootOffManager,getSosFlagManager, LocationManager, SockManager,getVolumSizeManager,gethistoryDataManager,getUpLoadDataManager, getplayAudiodStateManager,\
-    NetManager,AddrBookManager,MsgdetailManager,PhoneCallingManager,getOldTimeManager,getStorageDataManager,getBrightnessManager,getHrTimeManager,getTempTimeManager,getLowBatManager
+    from mgr import ConfigStoreManager,getBootOffManager,getSosFlagManager,CountdownManager, LocationManager, getVolumSizeManager,gethistoryDataManager,getUpLoadDataManager, getplayAudiodStateManager,\
+    AddrBookManager,MsgdetailManager,PhoneCallingManager,getOldTimeManager,getStorageDataManager,getBrightnessManager,getHrTimeManager,getTempTimeManager,getLowBatManager
     print("init8:{}".format(utime.localtime()))
     
     
@@ -187,6 +192,7 @@ if __name__ == '__main__':
     app.append_manager(getBootOffManager())
     app.append_manager(getOldTimeManager())
     app.append_manager(getSosFlagManager())
+    app.append_manager(CountdownManager())
 
     print("init21:{}".format(utime.localtime()))    
     
@@ -222,6 +228,7 @@ if __name__ == '__main__':
     sm = SockManager()
     sm.add_support_resolver(pcr)
     app.append_manager(sm)
+    print("init11.0:{}".format(utime.localtime()))   
     app.start()
     sms_data = sms.getSaveLoc()
     sms_lacv = sms_data[0][0]
index 3a3e886..c6bfef1 100644 (file)
@@ -1,5 +1,4 @@
-
-
+import sms
 
 class App(object):
     def __init__(self):
@@ -50,10 +49,10 @@ if __name__ == '__main__':
     from lcd import tp_cst816
     print("init3:{}".format(utime.localtime()))
 
-    from ui_main_menu import MainMenuScreen
+    from usr.ui_main_menu import MainMenuScreen
     # from ui_WatchFaceScreen import WatchFaceScreen
     
-    from appFactoryMode import  FactoryModeLocationScreen,FactoryModeScreen 
+    from appFactoryMode import  FactoryModeLocationScreen,FactoryModeScreen ,FactoryModeAlipayInitScreen
     import ui as _ui
     # import ui as _ui
     print("init4:{}".format(utime.localtime()))
@@ -76,9 +75,10 @@ if __name__ == '__main__':
     ui.add_screen(_ui.Spo2Screen()) 
     ui.add_screen(_ui.TemperatureScreen()) 
     ui.add_screen(_ui.ContactsScreen()) 
-    from ext.appWechat import WechatScreen,TK_ProtoCol,MESSAGE_ProtoCol,NewWechatPopupScreen
+    from appWechat import WechatScreen,TK_ProtoCol,MESSAGE_ProtoCol,NewWechatPopupScreen
     ui.add_screen(WechatScreen()) 
     from alarm import ClkListScreen,ClockManager,NewEditClk,CLKTimeScreen,ClkPeriod,PopupAlarmScreen
+    from ui_health import HealthScreen
     ui.add_screen(ClkListScreen()) 
     ui.add_screen(_ui.CountdownEndScreen()) 
     ui.add_screen(NewEditClk()) 
@@ -122,22 +122,24 @@ if __name__ == '__main__':
     # ui.add_screen(_ui.PowerOnScreen())
     ui.add_screen(FactoryModeLocationScreen())
     ui.add_screen(FactoryModeScreen())
+    ui.add_screen(FactoryModeAlipayInitScreen())
     ui.add_screen(PopupAlarmScreen())
     ui.add_screen(_ui.LowPowerScreen())
     ui.add_screen(_ui.NewMessageScreen())
     ui.add_screen(NewWechatPopupScreen())
+    ui.add_screen(HealthScreen())
     # ui.add_screen(_ui.Setting3Screen())  
     print("init6:{}".format(utime.localtime()))
     
 
     from protocol import LK_ProtoCol,PING_ProtoCol,HEART_ProtoCol,OXYGEN_ProtoCol,OXYGEN_One_ProtoCol,HRSTART_ProtoCol,CENTER_ProtoCol,UPLOAD_ProtoCol,\
         TEMP_ProtoCol,DLT_ProtoCol,WT_ProtoCol,UD_ProtoCol,REMIND_ProtoCol, CR_ProtoCol,KA_ProtoCol,FIND_ProtoCol,POWEROFF_ProtoCol,\
-            ProtoColResolver,PHL_ProtoCol,MONITOR_ProtoCol,bootoff_ProtoCol
-    import ext.mgr as mgr
+            ProtoColResolver,PHL_ProtoCol,MONITOR_ProtoCol,bootoff_ProtoCol,WDSTART_ProtoCol,LOWBAT_ProtoCol,sosHome_dial_ProtoCol,SockManager,NetManager
+    import mgr as mgr
     print("init7:{}".format(utime.localtime()))
     
-    from ext.mgr import ConfigStoreManager, LocationManager, SockManager,getVolumSizeManager,gethistoryDataManager,getUpLoadDataManager, \
-    NetManager,AddrBookManager,MsgdetailManager,PhoneCallingManager,getStorageDataManager,getBrightnessManager,getHrTimeManager
+    from mgr import ConfigStoreManager,getBootOffManager,getSosFlagManager,CountdownManager, LocationManager, getVolumSizeManager,gethistoryDataManager,getUpLoadDataManager, getplayAudiodStateManager,\
+    AddrBookManager,MsgdetailManager,PhoneCallingManager,getOldTimeManager,getStorageDataManager,getBrightnessManager,getHrTimeManager,getTempTimeManager,getLowBatManager
     print("init8:{}".format(utime.localtime()))
     
     
@@ -180,7 +182,16 @@ if __name__ == '__main__':
     app.append_manager(getStorageDataManager())
     app.append_manager(getUpLoadDataManager())
     app.append_manager(getVolumSizeManager())
-
+    app.append_manager(getTempTimeManager())
+    app.append_manager(getplayAudiodStateManager())
+    app.append_manager(getLowBatManager())
+    app.append_manager(getBootOffManager())
+    app.append_manager(getOldTimeManager())
+    app.append_manager(getSosFlagManager())
+    app.append_manager(CountdownManager())
+
+    print("init21:{}".format(utime.localtime()))    
+    
     print("init11:{}".format(utime.localtime()))    
     pcr = ProtoColResolver()
     pcr.add_support(LK_ProtoCol())
@@ -206,11 +217,23 @@ if __name__ == '__main__':
     # pcr.add_support(CENTER_ProtoCol())
     pcr.add_support(CENTER_ProtoCol())
     pcr.add_support(bootoff_ProtoCol())
+    pcr.add_support(WDSTART_ProtoCol())
+    pcr.add_support(LOWBAT_ProtoCol())
+    pcr.add_support(sosHome_dial_ProtoCol())
+
     sm = SockManager()
     sm.add_support_resolver(pcr)
     app.append_manager(sm)
+    print("init11.0:{}".format(utime.localtime()))   
     app.start()
+    sms_data = sms.getSaveLoc()
+    sms_lacv = sms_data[0][0]
+    if sms_lacv != 'SM':#每次开机设置一下短信的存储位置
+        sms.setSaveLoc('SM', 'SM', 'SM')
     print("init12:{}".format(utime.localtime()))
-    
+    import atcmd
+    resp=bytearray(50)
+    atcmd.sendSync('AT+log=52,1\r\n',resp,'',20)
+    print("AT+log=52,1:{}".format(resp))
 
 
index bd63bd1..343e110 100644 (file)
@@ -685,6 +685,7 @@ class DeviceInfoManager(Abstract):
         EventMesh.subscribe(constants.EVENT.STOP_HEART, self.stop_heart)
         EventMesh.subscribe(constants.EVENT.GET_BLOOD_OXYGEN, self.get_blood_oxygen)
         EventMesh.subscribe(constants.EVENT.GET_HEART, self.get_heart)
+        EventMesh.subscribe("Hsensor_set_sleep", self.Hsensor_set_sleep)
 
         EventMesh.subscribe(constants.EVENT.START_TEMP, self.start_temp)
         EventMesh.subscribe(constants.EVENT.STOP_TEMP, self.stop_temp)
@@ -749,7 +750,7 @@ class DeviceInfoManager(Abstract):
         # print("date_tmp......01....{} time_tmp:{}\r\n".format(date_tmp,time_tmp))
         EventMesh.publish("countdown_end_cb")
         gnss_state = quecgnss.get_state()
-        get_location_flag = EventMesh.publish("get_location_thread_flag")
+        get_location_flag = EventMesh.publish("get_location_flag")
         if get_location_flag != None:
             if gnss_state == 2 and get_location_flag == 0:
                 EventMesh.publish(constants.EVENT.GPSCLOSE)
@@ -840,13 +841,14 @@ class DeviceInfoManager(Abstract):
         
         #消息已满
         msg_nums = sms.getMsgNums() #获取短信条数
-        self.sms_full_flag+=10
-        if self.sms_full_flag >= 120:
-            self.sms_full_flag=0
-            sms_data = sms.getSaveLoc()
-            sms_max = sms_data[0][2]
-            if msg_nums >= sms_max:
-                EventMesh.publish("load_screen", {"screen": "message_full"})
+        if(msg_nums != -1):
+            self.sms_full_flag+=10
+            if self.sms_full_flag >= 120:
+                self.sms_full_flag=0
+                sms_data = sms.getSaveLoc()
+                sms_max = sms_data[0][2]
+                if msg_nums >= sms_max:
+                    EventMesh.publish("load_screen", {"screen": "message_full"})
 
         get_temp_time  = EventMesh.publish("get_temp_time")
         get_temp_state  = EventMesh.publish("get_temp_state")
@@ -1203,9 +1205,10 @@ class DeviceInfoManager(Abstract):
                             self.HR_OneTime = 0
         else:
             if self.get_hr_state != None and self.get_spo2_state != None:
-                if self.get_hr_state != 0 or self.get_spo2_state != 0:#3单次测量
+                if self.get_hr_state ==3 or self.get_spo2_state ==3:#3单次测量
                     if self.get_hr_state != 0:
                         EventMesh.publish("set_hr_state",0)#2代表后台进入测试,定时测心率 1ui界面测试洗心率 
+                        print("stop debug8")
                         EventMesh.publish(constants.EVENT.STOP_HEART) 
                     elif self.get_spo2_state != 0:
                         EventMesh.publish("set_spo2_state",0)#2代表后台进入测试
@@ -1464,6 +1467,8 @@ class DeviceInfoManager(Abstract):
         data = self.hsensor.get_all_data()
         return data[0]
     
+    def Hsensor_set_sleep(self, topic, msg):
+        self.hsensor.set_sleep()
 
     def start_temp(self, topic, msg):
         WHO_AM_I = bytearray([0x01, 0])
@@ -1516,137 +1521,6 @@ class DeviceInfoManager(Abstract):
             state = 0
         return state
     
-class SockManager(Abstract):
-    #END = "]"
-
-    def __init__(self):
-        self.sock = None
-        self.resolver = None
-        self.run_flag = False
-        self.lost_conn_check_time = 5 * 60 * 30
-        self.monitor_timer = osTimer()
-        self.connect_tmp = 0
-
-    def post_processor_after_instantiation(self):
-        EventMesh.subscribe(constants.EVENT.CHANNEL_SOCKET_SEND, self.send)
-        self.monitor_timer.start(7 * 60 * 1000, 1, self.check)
-
-    def add_support_resolver(self, resolver):
-        self.resolver = resolver
-
-    def initialization(self, *args, **kwargs):
-        self.connect()
-
-    def connect(self):
-        print("tcp connect:api.xcloudtech.com")
-        try:
-            if(self.sock != None) :
-                self.sock.close()
-            self.sock = usocket.socket(usocket.AF_INET, usocket.SOCK_STREAM)
-            self.sock.connect(("api.xcloudtech.com", 9000))
-            _thread.stack_size(24*1024)
-            _thread.start_new_thread(self.recv, ())
-            _thread.stack_size(8*1024)
-            utime.sleep(1)
-            #  发送数据
-            EventMesh.publish(constants.PROTOCOL.LK_SEND)
-        except Exception as e:
-            print(e)
-            self.run_flag = False
-        else:
-            self.run_flag = True
-
-    def check(self, *args):
-        if (not self.run_flag) or (self.connect_tmp == 0) : #7分钟无数据读取,则认为是掉线了
-            print("tcp reconnect!!!!!!!!!!!!!!!!!!")
-            EventMesh.publish(constants.EVENT.SET_CONNECT,0) #标记断网
-            if(self.sock != None) :
-                    self.sock.close()
-            _thread.stack_size(24*1024)
-            _thread.start_new_thread(self.reconnect, ()) #重连
-            _thread.stack_size(8*1024)
-
-        self.connect_tmp = 0
-
-    def reconnect(self, *args):
-        self.connect()
-
-    def send(self, topic, msg):
-        # print("TCP:send data:{}".format(msg))
-        self.sock.send(msg)
-
-    def recv(self):
-        data = b''
-        while True:
-            try:
-                r = self.sock.recv(512)
-            
-                if not r:
-                    self.run_flag = False
-                    if(self.sock != None) :
-                        self.sock.close()
-                    _thread.stack_size(24*1024)
-                    _thread.start_new_thread(self.reconnect, ())
-                    _thread.stack_size(8*1024)
-                    break
-                data = data + r
-                if data[-1] != 0x5d and len(data)<20*1024: #']':
-                    continue
-                self.connect_tmp = 1 #有数据,就认为是连接状态
-                print("TCP recv: data:len:{}".format(len(data)))
-                EventMesh.publish(constants.EVENT.SET_CONNECT, 1)
-                data_str = data.decode('ascii')
-                data_str = data_str.split(']')
-                if len(data_str) < 3 :
-                    self.resolver.handler(data)
-                else :
-                    for i in range(len(data_str)):
-                        self.resolver.handler(data_str[i].decode("utf-8"))
-                data = b''
-            except Exception as e:
-                self.run_flag = False
-                if(self.sock != None) :
-                    self.sock.close()
-                _thread.stack_size(24*1024)
-                _thread.start_new_thread(self.reconnect, ())
-                _thread.stack_size(8*1024)
-                break
-
-class NetManager(Abstract):
-    THRESHOLD = 10
-
-    def __init__(self):
-        self.__data_call = dataCall
-        self.__net = net
-        self.check_net = checkNet.CheckNetwork("QuecPython_Helios_Framework", "this latest version")
-        self.timer = osTimer()
-        self.check_net_timeout = 100 * 1000
-
-    def post_processor_after_instantiation(self, *args, **kwargs):
-        count = 0
-        while True:
-            count += 1
-            if count > 5 :
-                return
-            data = dataCall.getInfo(1, 0)
-            print("data call INFO {}".format(data))
-            if data[2][0]:
-                break
-            utime.sleep(1)
-        self.__data_call.start(2, 0, "", "", "", 0)
-        self.__data_call.setCallback(self.__datacall_cb)
-
-    def __datacall_cb(self, args):
-        pdp = args[0]
-        nw_sta = args[1]
-        if nw_sta == 1:
-            state = 2
-            print("*** network %d connected! ***" % pdp)
-            EventMesh.publish('network_state', state)
-        else:
-            state = 3
-            print("*** network %d not connected! ***" % pdp)
-            EventMesh.publish('network_state', state)
 
 def wifiScan_cb(args):
         EventMesh.publish(constants.EVENT.WIFIINFO, args)
@@ -1663,8 +1537,12 @@ class LocationManager(Abstract):
         self.location_timer_count = 0
         self.location_check_data_timer_count = 0
         self.location_type = 0 #定位类型,0:正常定位,有gps数据或60秒关闭;1:测试模式,只有发CLOSE_LOCATION消息才关闭
-        self.location_thread_flag = 0
+        self.location_flag = 0
+        self.start_location_flag = 0
         self.location_thread_id = 0
+        self.location_thread_id  = _thread.start_new_thread(self.location_thread, ())
+        #quecgnss.init()
+        #quecgnss.gnssEnable(0)
     @staticmethod
     def get_date():
         return "{:04d}-{:02d}-{:02d}".format(*utime.localtime()[0:3])
@@ -1694,37 +1572,32 @@ class LocationManager(Abstract):
         EventMesh.subscribe(constants.EVENT.WIFIINFO, self.WIFI_INFO)
         EventMesh.subscribe(constants.EVENT.WIFISCANOPEN,self.WIFI_scan_open)
         EventMesh.subscribe(constants.EVENT.CLOSE_LOCATION,self.close_location)
-        EventMesh.subscribe("get_location_thread_flag",self.get_location_thread_flag)
+        EventMesh.subscribe("get_location_flag",self.get_location_flag)
         
         #EventMesh.subscribe(constants.EVENT.GPSCLOSE, self.gps_close)
-    def get_location_thread_flag(self, event, msg):
-        return self.location_thread_flag
+    def get_location_flag(self, event, msg):
+        return self.location_flag
     def start_location(self, event, msg):
-        #self.gps_open(event, msg)
-        # print("start_location")
-        EventMesh.publish(constants.EVENT.GPSOPEN)
-        self.location_timer_count = 0
+        print("start_location")
         self.timer_read_GPS_info.start(1000, 1, self.location_timer)
-        if self.location_thread_flag == 0:
-            self.location_thread_id  = _thread.start_new_thread(self.location_thread, ())
-        self.wifi_data = []
-        self.gps_data = []
-        self.cell_data = []
-        EventMesh.publish(constants.EVENT.WIFISCANOPEN)
+        if( self.location_flag == 1):
+            return
+        self.location_timer_count = 0
+        self.location_flag = 1
+        #self.gps_open(event, msg)
+        
         if msg != None :
             self.location_type = msg
         else :
             self.location_type = 0
-                    
+        self.start_location_flag = 1
+           
     def close_location(self, event, msg):
+        self.location_flag = 0
         self.gps.power_switch(0)
         wifiScan.control(0)
         self.timer_read_GPS_info.stop()
-        self.location_timer_count = 5*60 #让线程结束
-        self.location_thread_flag = 0
-        if(self.location_thread_id  != 0):
-            _thread.stop_thread(self.location_thread_id)
-            self.location_thread_id = 0
+
 
     def WIFI_INFO(self, event, msg):
         self.wifi_data = msg
@@ -1749,6 +1622,7 @@ class LocationManager(Abstract):
     def gps_open(self, event, msg):
         #print("publish:gps_open")
         quecgnss.init()
+        #quecgnss.gnssEnable(1)
         self.gps.__gps_nmea_data_clean()
         
 
@@ -1763,80 +1637,95 @@ class LocationManager(Abstract):
 
     def location_thread(self):
         data = ""
-        self.location_thread_flag = 1
         
         while True:
             try :
-                match_gga_data = []
-                match_gsv_data = []
-
-                if self.location_check_data_timer_count > 3 :#5秒查一次
-                    self.location_check_data_timer_count = 0
-                    #print(self.location_timer_count)
-                    #检查wifi数据
-                    if self.wifi_data == [] or (self.wifi_data != [] and self.wifi_data[0] == 0):#and self.wifi_data[0] <= 0:
+                if self.location_flag == 1 :
+                    if self.start_location_flag == 1 :
+                        self.start_location_flag = 0
+                        self.wifi_data = []
+                        self.gps_data = []
+                        self.cell_data = []
+                        EventMesh.publish(constants.EVENT.GPSOPEN)
                         EventMesh.publish(constants.EVENT.WIFISCANOPEN)
-                    #检查GNSS数据
-                    if self.gps_data == [] and quecgnss.get_state() == 2:
-                        self.gps.__gps_nmea_data_clean()
-                        data = quecgnss.read(4096)
-                        #print(data[1].decode())
-                        if data[0] > 0 : #有数据
-                            match_gga_data = self.match.GxGGA(data[1]).split(",")
-                            match_gsv_data = self.match.GxGSV(data[1]).split(",")
-                            if self.gps.__check_gps_valid(data[1].decode()): #数据齐全
-                                match_gmc_data = self.match.GxRMC(data[1]).split(",")
-                                match_vtg_data = self.match.GxVTG(data[1]).split(",")
+                    match_gga_data = []
+                    match_gsv_data = []
+
+                    if self.location_check_data_timer_count > 3 :#5秒查一次
+                        self.location_check_data_timer_count = 0
+                        #print(self.location_timer_count)
+                        #检查wifi数据
+                        if self.wifi_data == [] or (self.wifi_data != [] and self.wifi_data[0] == 0):#and self.wifi_data[0] <= 0:
+                            EventMesh.publish(constants.EVENT.WIFISCANOPEN)
+                        #检查GNSS数据
+                        if (self.gps_data == [] or self.location_type == 1) and quecgnss.get_state() == 2:
+                            self.gps.__gps_nmea_data_clean()
+                            data = quecgnss.read(4096)
+                            #print(data[1].decode())
+                            if data[0] > 0 : #有数据
                                 match_gga_data = self.match.GxGGA(data[1]).split(",")
-                                data = self.gps.read_coordinates(data[1])
-                                latitude_tmp = str(data[1]).split(".")
-                                if len(latitude_tmp) >= 2 and len(latitude_tmp[1])>=5:
-                                    latitude = "%s.%s"%(latitude_tmp[0],latitude_tmp[1][:6])
-                                latitude = "%s,%s"%(latitude,match_gmc_data[4] )
-                                longitude_tmp = str(data[0]).split(".")
-                                if len(longitude_tmp) >= 2 and len(longitude_tmp[1])>=5:
-                                    longitude = "%s.%s"%(longitude_tmp[0],longitude_tmp[1][:6])
-                                longitude = "%s,%s"%(longitude,match_gmc_data[6] ) #match_gmc_data[6] + str(data[1])
-                                high = str(data[2])
-                                self.gps_data = {
-                                    "latitude": latitude,
-                                    "longitude": longitude,
-                                    "high": high,
-                                    "direction": match_vtg_data[1],
-                                    "speed": match_vtg_data[5],
-                                    "number": match_gga_data[7],   
-                                }
-                    #检查基站数据
-                    if self.cell_data == []:   
-                        self.cell_data = net.getCellInfo()
-                        for cell in self.cell_data:
-                            if cell and cell[0][0] == 0 :
-                                self.cell_data = cell
-                                break
-                if self.location_timer_count >= 60*4 : #4分钟关闭线程
-                    EventMesh.publish(constants.EVENT.CLOSE_LOCATION)#关闭定位
-                    break
-                if self.location_type == 1: #测试模式
-                    EventMesh.publish("PUSH_LOCATION_DATA", [data,self.wifi_data,self.cell_data]) 
-                elif self.location_type == 0: #正常模式     
-                    if self.gps_data  != [] or self.location_timer_count > 40: #or( self.wifi_data != [] and self.cell_data != []): 
-                        #print("publish:READ_LOCATION")
-                        EventMesh.publish(constants.EVENT.READ_LOCATION, [self.gps_data,self.wifi_data,self.cell_data])
+                                match_gsv_data = self.match.GxGSV(data[1]).split(",")
+                                if self.gps.__check_gps_valid(data[1].decode()): #数据齐全
+                                    match_gmc_data = self.match.GxRMC(data[1]).split(",")
+                                    match_vtg_data = self.match.GxVTG(data[1]).split(",")
+                                    match_gga_data = self.match.GxGGA(data[1]).split(",")
+                                    gps_data_tmp = self.gps.read_coordinates(data[1])
+                                    latitude_tmp = str(gps_data_tmp[1]).split(".")
+                                    if len(latitude_tmp) >= 2 and len(latitude_tmp[1])>=5:
+                                        latitude = "%s.%s"%(latitude_tmp[0],latitude_tmp[1][:6])
+                                    latitude = "%s,%s"%(latitude,match_gmc_data[4] )
+                                    longitude_tmp = str(gps_data_tmp[0]).split(".")
+                                    if len(longitude_tmp) >= 2 and len(longitude_tmp[1])>=5:
+                                        longitude = "%s.%s"%(longitude_tmp[0],longitude_tmp[1][:6])
+                                    longitude = "%s,%s"%(longitude,match_gmc_data[6] ) #match_gmc_data[6] + str(data[1])
+                                    high = str(gps_data_tmp[2])
+                                    self.gps_data = {
+                                        "latitude": latitude,
+                                        "longitude": longitude,
+                                        "high": high,
+                                        "direction": match_vtg_data[1],
+                                        "speed": match_vtg_data[5],
+                                        "number": match_gga_data[7],   
+                                    }
+                        #检查基站数据
+                        if self.cell_data == []:   
+                            data_tmp = net.getCellInfo()
+                            for cell in data_tmp:
+                                if cell and cell[0][0] == 0 and len(cell[0]) > 1:
+                                    self.cell_data = cell
+                                    break
+                    if self.location_timer_count >= 60*4 : #4分钟关闭
                         EventMesh.publish(constants.EVENT.CLOSE_LOCATION)#关闭定位
-                        break
-                    if len(match_gsv_data) >= 3:
-                        #print("match_gsv_data[3]:{}".format(match_gsv_data[3]))  
-                        if (int(match_gsv_data[3]) < 3 and self.wifi_data != [] and self.cell_data != [] and self.location_timer_count > 10): #超过10秒且卫星个数少于3
+                        #break
+                    if self.location_type == 1: #测试模式
+                        EventMesh.publish("PUSH_LOCATION_DATA", [data,self.wifi_data,self.cell_data]) 
+                    elif self.location_type == 0: #正常模式     
+                        if self.gps_data  != [] or self.location_timer_count > 40: #or( self.wifi_data != [] and self.cell_data != []): 
                             #print("publish:READ_LOCATION")
                             EventMesh.publish(constants.EVENT.READ_LOCATION, [self.gps_data,self.wifi_data,self.cell_data])
-                            EventMesh.publish(constants.EVENT.CLOSE_LOCATION)#关闭定位    
-                            break
-                utime.sleep_ms(1000)
+                            EventMesh.publish(constants.EVENT.CLOSE_LOCATION)#关闭定位
+                            #break
+                        if len(match_gsv_data) >= 3:
+                            #print("match_gsv_data[3]:{}".format(match_gsv_data[3]))
+                            #if  (self.wifi_data != [] and self.cell_data != [] and self.location_timer_count > 10): #超过10秒且卫星个数少于3  
+                            if (int(match_gsv_data[3]) < 3 and self.wifi_data != [] and self.cell_data != [] and self.location_timer_count > 10): #超过10秒且卫星个数少于3
+                                #print("publish:READ_LOCATION")
+                                EventMesh.publish(constants.EVENT.READ_LOCATION, [self.gps_data,self.wifi_data,self.cell_data])
+                                EventMesh.publish(constants.EVENT.CLOSE_LOCATION)#关闭定位    
+                                #break
+                    utime.sleep_ms(1000)
+                    #print("location_timer_count:{}".format(self.location_timer_count))
+                else :
+                    utime.sleep_ms(2000)
             except Exception as e:
+                utime.sleep_ms(1000)
                 print("location_thread:ERROR:{}\r\n{}".format(e,Exception))
-                #break
+                print("self.gps_data{},self.wifi_data{},self.cell_data{}".format(self.gps_data,self.wifi_data,self.cell_data))
+                EventMesh.publish(constants.EVENT.READ_LOCATION, [self.gps_data,self.wifi_data,self.cell_data])
+                EventMesh.publish(constants.EVENT.CLOSE_LOCATION)#关闭定位 
+
                 
-        self.location_thread_flag = 0
+
             
 
 # class AddrBookManager(Abstract):
index 148e3d9..46b53af 100644 (file)
@@ -10,6 +10,12 @@ import audio
 from machine import Pin
 import ujson
 import ql_fs
+import dataCall
+import checkNet
+import net
+import usocket
+import osTimer
+import _thread
 def unicode_to_utf8(src):
     ref = 0xe08080
     result = ref
@@ -63,13 +69,176 @@ def UnicodeHexStr_To_Utf8Str(str):
             odata = 0 
         i+=1
     return result.decode('utf-8') #返回utf8的str
+class SockManager(Abstract):
+    #END = "]"
+    server_addr = "api.xcloudtech.com"
+    server_port = 9000
+    # server_addr = "8.134.68.15"
+    # server_port = 30346
+    def __init__(self):
+        self.sock = None
+        self.resolver = None
+        self.run_flag = False
+        self.lost_conn_check_time = 5 * 60 * 30
+        self.monitor_timer = osTimer()
+        self.publish_timer = osTimer()
+        self.reconnect_timer = osTimer()
+        self.reconnect_time = 1000
+        self.reconnect_flag = 0
+        self.connect_tmp = 0
+        _thread.stack_size(24*1024)
+        _thread.start_new_thread(self.recv, ())
+        _thread.stack_size(8*1024)
+
+    def post_processor_after_instantiation(self):
+        EventMesh.subscribe(constants.EVENT.CHANNEL_SOCKET_SEND, self.send)
+        self.monitor_timer.start(7 * 60 * 1000, 1, self.check)
+
+    def add_support_resolver(self, resolver):
+        self.resolver = resolver
+
+    def initialization(self, *args, **kwargs):
+        self.connect()
+
+    def connect(self):
+
+        print(str((self.server_addr, self.server_port)))
+        try:
+            if(self.sock != None) :
+                self.sock.close()
+            self.sock = usocket.socket(usocket.AF_INET, usocket.SOCK_STREAM)
+            self.sock.connect((self.server_addr, self.server_port))
+            
+            #utime.sleep_ms(500)
+            #  发送数据
+            self.publish_timer.start(1000, 0, self.publish_timer_cb)
+            
+        except Exception as e:
+            print(e)
+            self.run_flag = False
+        else:
+            self.run_flag = True
+    def publish_timer_cb(self, *args):
+        EventMesh.publish(constants.PROTOCOL.LK_SEND)
+    def check(self, *args):
+        if (not self.run_flag) or (self.connect_tmp == 0) : #7分钟无数据读取,则认为是掉线了
+            print("tcp reconnect!!!!!!!!!!!!!!!!!!")
+            EventMesh.publish(constants.EVENT.SET_CONNECT,0) #标记断网
+            self.reconnect()
+        self.connect_tmp = 0
+
+    def reconnect(self):
+        if(self.reconnect_flag == 1):
+            return
+        self.reconnect_flag = 1
+        self.reconnect_timer.start(self.reconnect_time, 0, self.reconnect_timer_cb)
+        if self.reconnect_time < 7*1000:
+            self.reconnect_time += 30*1000
+
+    def reconnect_timer_cb(self, *args):    
+        self.connect()
+        self.reconnect_flag = 0
+
+    def send(self, topic, msg):
+        #print("TCP:send data:{}".format(msg))
+        print("TCP:send data len:{}".format(len(msg)))
+        try:
+            if(self.sock != None):
+                self.sock.send(msg)
+            
+        except Exception as e:
+            #print("TCP:ERROR:send:{}".format(e))    
+            self.reconnect()
+            # self.run_flag = False
+            
+
+            # self.sock = usocket.socket(usocket.AF_INET, usocket.SOCK_STREAM)
+            # self.sock.connect(("api.xcloudtech.com", 9000))    
+            # _thread.stack_size(24*1024)
+            # _thread.start_new_thread(self.reconnect, ())
+            # _thread.stack_size(8*1024)
+    def recv(self):
+        data = b''
+        while True:
+            try:
+                r =  b''
+                r = self.sock.recv(1024*5)
+
+                if not r:
+                    self.run_flag = False
+                    self.reconnect()
+   
+                data = data + r
+                print("TCP recv: data:len:{}".format(len(data)))
+                #print("TCP recv: data:{}".format(data))
+                if data[-1] != 0x5d and len(data)<20*1024: #']':
+                    continue
+                self.connect_tmp = 1 #有数据,就认为是连接状态
+                
+                EventMesh.publish(constants.EVENT.SET_CONNECT, 1)
+                data_str = data.decode('ascii')
+                data_str = data_str.split(']')
+                if len(data_str) < 3 :
+                    self.resolver.handler(data)
+                else :
+                    for i in range(len(data_str)):
+                        self.resolver.handler(data_str[i])
+                
+                data = b''
+            except Exception as e:
+                print("TCP:ERROR:recv:{}".format(e))
+                self.run_flag = False
+                self.reconnect()
+                
+                data = b''
+                utime.sleep(2)
+
+
+
+class NetManager(Abstract):
+    THRESHOLD = 10
+
+    def __init__(self):
+        self.__data_call = dataCall
+        self.__net = net
+        self.check_net = checkNet.CheckNetwork("QuecPython_Helios_Framework", "this latest version")
+        
+
+    def post_processor_after_instantiation(self, *args, **kwargs):
+        count = 0
+        while True:
+            count += 1
+            if count > 5 :
+                return
+            data = dataCall.getInfo(1, 0)
+            print("data call INFO {}".format(data))
+            if data[2][0]:
+                break
+            utime.sleep(1)
+        self.__data_call.start(2, 0, "", "", "", 0)
+        self.__data_call.setCallback(self.__datacall_cb)
+
+    def __datacall_cb(self, args):
+        pdp = args[0]
+        nw_sta = args[1]
+        if nw_sta == 1:
+            state = 2
+            print("*** network %d connected! ***" % pdp)
+            EventMesh.publish('network_state', state)
+        else:
+            state = 3
+            print("*** network %d not connected! ***" % pdp)
+            EventMesh.publish('network_state', state)
 
 class ProtoCol(Abstract):
     TYPE = ""
     HEADER = "#@{}@#;"
     SEPARATOR = ";"
     END = ";" + chr(0x01)
-
+    PID = "SZKW"
+    md5_key = "bZld0ALsZTt15tKEZhOlLPgbsO75BLTP"
+    # PID = "qAELPTKmFanR4RHe"
+    # md5_key = "3JyCjsw4ryXKzjzudayY"
     def __init__(self):
         self.content = None
         self.check_sum = None
@@ -124,16 +293,16 @@ class ProtoCol(Abstract):
         return self.HEADER.encode() + self.content.encode() + self.SEPARATOR.encode() + int(self.check_sum).to_bytes(1,'little') + self.END.encode()
     
     def pack_MD5_head(self,data):                                                                                                                 
-        key = "bZld0ALsZTt15tKEZhOlLPgbsO75BLTP"
+        #key = "bZld0ALsZTt15tKEZhOlLPgbsO75BLTP"
         
         MD5_head = ""
-        hash_obj = uhashlib.md5(data+key)
+        hash_obj = uhashlib.md5(data+self.md5_key)
         res = hash_obj.digest()
 
         # 转成十六进制表示
         MD5_head = ubinascii.hexlify(res)
         MD5_head = MD5_head.decode('ascii')
-        #print("pack_MD5_head:")
+        #print("data+self.md5_key:{}".format(data+self.md5_key))
         #print(res)
         #print(MD5_head)
         return MD5_head
@@ -145,7 +314,7 @@ class LK_ProtoCol(ProtoCol):
     def send(self, event, msg):
         #[SZKW*334588000000156*0002*LK]
         #print('self.imei:%s'%(self.imei))
-        send_data = "SZKW*%s*0002*LK"%(self.imei)
+        send_data = self.PID+"*%s*0002*LK"%(self.imei)
         MD5_SIGN = self.pack_MD5_head(send_data)
         data = "[%s%s]"%(str(MD5_SIGN),send_data)
         # print("LK_ProtoCol:send:%s"%(data))
@@ -171,7 +340,7 @@ class PING_ProtoCol(ProtoCol):
 
     def send(self, event, msg):
         #[SZKWT*YYYYYYYYYYYYYYY*LEN*PING]
-        send_data = "SZKW*%s*0004*PING"%(self.imei)
+        send_data = self.PID+"*%s*0004*PING"%(self.imei)
         MD5_SIGN = self.pack_MD5_head(send_data)
         data = "[%s%s]"%(str(MD5_SIGN),send_data)
         #print("PING_ProtoCol:send:%s"%(data))
@@ -226,8 +395,10 @@ class KA_ProtoCol(ProtoCol):
         send_data = "KA,%s,%d,%d,%d"%(date,step,0,battery_caption)
         send_len = len(send_data)
 
-        send_data = "SZKW*%s*%04X*%s"%(self.imei,send_len,send_data)
-        MD5_SIGN = self.pack_MD5_head(send_data)
+        send_data = self.PID+"*%s*%04X*%s"%(self.imei,send_len,send_data)
+        MD5_head_data = self.PID+"*%s*%04X*%s"%(self.imei,send_len,"KA")
+
+        MD5_SIGN = self.pack_MD5_head(MD5_head_data)
         data = "[%s%s]"%(str(MD5_SIGN),send_data)
         #print("KA_ProtoCol:send:%s"%(data))
 
@@ -344,8 +515,9 @@ class UD_ProtoCol(ProtoCol):
 
         send_len = len(send_data)
         wt_data = "%s"%(send_data)
-        send_data = "SZKW*%s*%04X*%s"%(self.imei,send_len,send_data)
-        MD5_SIGN = self.pack_MD5_head(send_data)
+        send_data = self.PID+"*%s*%04X*%s"%(self.imei,send_len,send_data)
+        MD5_head_data = self.PID+"*%s*%04X*%s"%(self.imei,send_len,"UD")
+        MD5_SIGN = self.pack_MD5_head(MD5_head_data)
         data = "[%s%s]"%(str(MD5_SIGN),send_data)
 
 
@@ -354,7 +526,7 @@ class UD_ProtoCol(ProtoCol):
         msg_tmp = wt_data.split('UD,')
         msg_tmp = msg_tmp[1]
         # print("WT_ProtoCol:msg_tmp:%s"%(msg_tmp))
-        send_data_1 = "SZKW*%s*%04x*WT"%(self.imei,len(msg_tmp))
+        send_data_1 = self.PID+"*%s*%04x*WT"%(self.imei,len(msg_tmp))
         MD5_SIGN_1 = self.pack_MD5_head(send_data_1)
         data_1 = "[%s%s,%s]"%(str(MD5_SIGN_1),send_data_1,msg_tmp)
         # print("WT_ProtoCol:send:%s"%(data_1))
@@ -378,7 +550,7 @@ class CR_ProtoCol(ProtoCol):
 
     def send(self, event, msg):
         #[SZKWT*YYYYYYYYYYYYYYY*LEN*PING]
-        send_data = "SZKW*%s*0002*CR"%(self.imei)
+        send_data = self.PID+"*%s*0002*CR"%(self.imei)
         MD5_SIGN = self.pack_MD5_head(send_data)
         data = "[%s%s]"%(str(MD5_SIGN),send_data)
         #print("CR_ProtoCol:send:%s"%(data))
@@ -401,7 +573,7 @@ class FIND_ProtoCol(ProtoCol):
 
     def send(self, event, msg):
         #[SZKWT*YYYYYYYYYYYYYYY*LEN*PING]
-        send_data = "SZKW*%s*0004*FIND"%(self.imei)
+        send_data = self.PID+"*%s*0004*FIND"%(self.imei)
         MD5_SIGN = self.pack_MD5_head(send_data)
         data = "[%s%s]"%(str(MD5_SIGN),send_data)
         #print("FIND_ProtoCol:send:%s"%(data))
@@ -429,7 +601,7 @@ class POWEROFF_ProtoCol(ProtoCol):
 
     def send(self, event, msg):
         # [SZKW*867387060319491*0008*POWEROFF]
-        send_data = "SZKW*%s*0008*POWEROFF"%(self.imei)
+        send_data = self.PID+"*%s*0008*POWEROFF"%(self.imei)
         MD5_SIGN = self.pack_MD5_head(send_data)
         data = "[%s%s]"%(str(MD5_SIGN),send_data)
         #print("POWEROFF_ProtoCol:send:%s"%(data))
@@ -453,7 +625,7 @@ class PHL_ProtoCol(ProtoCol):
 
     def send(self, event, msg):
         # [SZKW*867387060319491*0008*PHL]
-        send_data = "SZKW*%s*0003*PHL"%(self.imei)
+        send_data = self.PID+"*%s*0003*PHL"%(self.imei)
         MD5_SIGN = self.pack_MD5_head(send_data)
         data = "[%s%s]"%(str(MD5_SIGN),send_data)
         #print("POWEROFF_ProtoCol:send:%s"%(data))
@@ -509,7 +681,7 @@ class WT_ProtoCol(ProtoCol):
 
     def send(self, event, msg):
         # [SZKW*867387060319491*0008*WT]
-        send_data = "SZKW*%s*003*WT"%(self.imei)
+        send_data = self.PID+"*%s*003*WT"%(self.imei)
         MD5_SIGN = self.pack_MD5_head(send_data)
         data = "[%s%s]"%(str(MD5_SIGN),send_data)
         # print("WT_ProtoCol:send:%s"%(data))
@@ -558,7 +730,7 @@ class REMIND_ProtoCol(ProtoCol):
 
     def send(self, event, msg):
         # [SZKW*867387060319491*0008*REMIND]
-        send_data = "SZKW*%s*006*REMIND"%(self.imei)
+        send_data = self.PID+"*%s*006*REMIND"%(self.imei)
         MD5_SIGN = self.pack_MD5_head(send_data)
         data = "[%s%s]"%(str(MD5_SIGN),send_data)
         # print("REMIND_ProtoCol:send:%s"%(data))
@@ -661,7 +833,7 @@ class HRSTART_ProtoCol(ProtoCol):
 
     def send(self, event, msg):
         # [SZKW*867387060319491*0008*hrtstart]
-        send_data = "SZKW*%s*008*hrtstart"%(self.imei)
+        send_data = self.PID+"*%s*008*hrtstart"%(self.imei)
         MD5_SIGN = self.pack_MD5_head(send_data)
         data = "[%s%s]"%(str(MD5_SIGN),send_data)
         # print("HRSTART_ProtoCol:send:%s"%(data))
@@ -712,8 +884,9 @@ class HEART_ProtoCol(ProtoCol):
         # [SZKW*334588000000156*len*heart,x]
         # print("HEART:send:{}".format(msg))
         len_size = len(str(msg))+6
-        send_data = "SZKW*%s*%04X*heart"%(self.imei,len_size)
-        MD5_SIGN = self.pack_MD5_head(send_data)
+        send_data = self.PID+"*%s*%04X*heart"%(self.imei,len_size)
+        MD5_head_data = self.PID+"*%s*%04X*%s"%(self.imei,len_size,"heart")
+        MD5_SIGN = self.pack_MD5_head(MD5_head_data)
         data = "[%s%s,%d]"%(str(MD5_SIGN),send_data,msg)
         # print("HEART_ProtoCol:data:%s"%(data))
         # 通过socket发送到服务器端
@@ -733,8 +906,9 @@ class OXYGEN_ProtoCol(ProtoCol):
         # [SZKW*334588000000156*len*heart,x]
         # print("oxstart:send:{}".format(msg))
         len_size = len(str(msg))+6
-        send_data = "SZKW*%s*%04X*oxygen"%(self.imei,len_size)
-        MD5_SIGN = self.pack_MD5_head(send_data)
+        send_data = self.PID+"*%s*%04X*oxygen"%(self.imei,len_size)
+        MD5_head_data = self.PID+"*%s*%04X*%s"%(self.imei,len_size,"oxygen")
+        MD5_SIGN = self.pack_MD5_head(MD5_head_data)
         data = "[%s%s,%d]"%(str(MD5_SIGN),send_data,msg)
         # print("HEART_ProtoCol:data:%s"%(data))
         # 通过socket发送到服务器端
@@ -760,7 +934,7 @@ class OXYGEN_One_ProtoCol(ProtoCol):#单次测量
     def send(self, event, msg):
         # [SZKW*334588000000156*len*heart,x]
         print("oxstart:")
-        send_data = "SZKW*%s*0007*oxstart"%(self.imei)
+        send_data = self.PID+"*%s*0007*oxstart"%(self.imei)
         MD5_SIGN = self.pack_MD5_head(send_data)
         data = "[%s%s]"%(str(MD5_SIGN),send_data)
         # print("HEART_ProtoCol:data:%s"%(data))
@@ -796,8 +970,9 @@ class TEMP_ProtoCol(ProtoCol):
         # 代表终端的温度为:36.2
         # 平台回复:
         # [XT*334588000000156*0004*temp]
-        send_data = "SZKW*%s*%04X*temp"%(self.imei,len_size)
-        MD5_SIGN = self.pack_MD5_head(send_data)
+        send_data = self.PID+"*%s*%04X*temp"%(self.imei,len_size)
+        MD5_head_data = self.PID+"*%s*%04X*%s"%(self.imei,len_size,"temp")
+        MD5_SIGN = self.pack_MD5_head(MD5_head_data)
         data = "[%s%s,%d.%d]"%(str(MD5_SIGN),send_data,msg[0],msg[1])
         # print("temp:data:%s"%(data))
         # 通过socket发送到服务器端
@@ -816,7 +991,7 @@ class WDSTART_ProtoCol(ProtoCol):
     TYPE = "wdstart"
     def send(self, event, msg):
         #[XT*334588000000156*len*wdstart,300]
-        send_data = "SZKW*%s*0007*wdstart"%(self.imei)
+        send_data = self.PID+"*%s*0007*wdstart"%(self.imei)
         MD5_SIGN = self.pack_MD5_head(send_data)
         data = "[%s%s]"%(str(MD5_SIGN),send_data)
         # print("temp:data:%s"%(data))
@@ -867,7 +1042,7 @@ class DLT_ProtoCol(ProtoCol):
     TYPE = "DLT"
     def send(self, event, msg):
         # [XT*334588000000156*0004*temp]
-        send_data = "SZKW*%s*0003*DLT"%(self.imei)
+        send_data = self.PID+"*%s*0003*DLT"%(self.imei)
         MD5_SIGN = self.pack_MD5_head(send_data)
         data = "[%s%s]"%(str(MD5_SIGN),send_data)
         print("temp:data:%s"%(data))
@@ -888,7 +1063,7 @@ class UPLOAD_ProtoCol(ProtoCol):
     TYPE = "UPLOAD"
     def send(self, event, msg):
         # [XT*334588000000156*0004*temp]
-        send_data = "SZKW*%s*0006*UPLOAD"%(self.imei)
+        send_data = self.PID+"*%s*0006*UPLOAD"%(self.imei)
         MD5_SIGN = self.pack_MD5_head(send_data)
         data = "[%s%s]"%(str(MD5_SIGN),send_data)
         
@@ -921,7 +1096,7 @@ class CENTER_ProtoCol(ProtoCol):
     TYPE = "CENTER"
     def send(self, event, msg):
         # [XT*334588000000156*0004*temp]
-        send_data = "SZKW*%s*0006*CENTER"%(self.imei)
+        send_data = self.PID+"*%s*0006*CENTER"%(self.imei)
         MD5_SIGN = self.pack_MD5_head(send_data)
         data = "[%s%s]"%(str(MD5_SIGN),send_data)
         print("UPLOAD:data:%s"%(data))
@@ -955,7 +1130,7 @@ class MONITOR_ProtoCol(ProtoCol):
     TYPE = "MONITOR"
     def send(self, event, msg):
         # [XT*334588000000156*0004*MONITOR]
-        send_data = "SZKW*%s*0007*MONITOR"%(self.imei)
+        send_data = self.PID+"*%s*0007*MONITOR"%(self.imei)
         MD5_SIGN = self.pack_MD5_head(send_data)
         data = "[%s%s]"%(str(MD5_SIGN),send_data)
         print("MONITOR:data:%s"%(data))
@@ -987,7 +1162,7 @@ class bootoff_ProtoCol(ProtoCol):
     TYPE = "BOOTOFF"
     def send(self, event, msg):
         # [XT*334588000000156*0004*MONITOR]
-        send_data = "SZKW*%s*0007*BOOTOFF"%(self.imei)
+        send_data = self.PID+"*%s*0007*BOOTOFF"%(self.imei)
         MD5_SIGN = self.pack_MD5_head(send_data)
         data = "[%s%s]"%(str(MD5_SIGN),send_data)
         print("BOOTOFF:data:%s"%(data))
@@ -1017,7 +1192,7 @@ class sosHome_dial_ProtoCol(ProtoCol):
     TYPE = "SOS"
     def send(self, event, msg):
         # [XT*334588000000156*0004*MONITOR]
-        send_data = "SZKW*%s*0003*SOS"%(self.imei)
+        send_data = self.PID+"*%s*0003*SOS"%(self.imei)
         MD5_SIGN = self.pack_MD5_head(send_data)
         data = "[%s%s]"%(str(MD5_SIGN),send_data)
         print("sosHome_dial_ProtoCol:data:%s"%(data))
@@ -1068,7 +1243,7 @@ class LOWBAT_ProtoCol(ProtoCol):
     TYPE = "LOWBAT"
     def send(self, event, msg):
         # [XT*334588000000156*0006*LOWBAT]
-        send_data = "SZKW*%s*0006*LOWBAT"%(self.imei)
+        send_data = self.PID+"*%s*0006*LOWBAT"%(self.imei)
         MD5_SIGN = self.pack_MD5_head(send_data)
         data = "[%s%s]"%(str(MD5_SIGN),send_data)
         print("LOWBAT:data:%s"%(data))
index 4c47c04..454a7c5 100644 (file)
@@ -18,9 +18,26 @@ from machine import Pin
 from lcd import lcd,lcd_ctrl,tp_cst816,lcd_ctrl
 from misc import PWM
 import uos
+from machine import I2C
 from Hsensor import GH3018
+from Gsensor import SC7A20
 btn_device = BtnDevice(tp_cst816)
 btn_device.start()
+i2c0 = I2C(I2C.I2C0, I2C.FAST_MODE)
+WHO_AM_I = bytearray([0x01, 0])
+I2C_SLAVE_ADDR = 0x49
+r_data = bytearray(2)
+data = bytearray([0x60A0, 0])   #休眠
+i2c0.write(I2C_SLAVE_ADDR, WHO_AM_I, 1, data, 2)
+def gsensor_cb(self, para):
+        print("gsensor_cb:{}".format(para))
+gsensor = SC7A20()
+print("DeviceInfoManager:1.0")
+gsensor.activate()
+print("DeviceInfoManager:1.1")
+gsensor.init()
+print("DeviceInfoManager:2")
+gsensor.set_callback(gsensor_cb)
 hsensor = GH3018()
 hsensor.activate()
 hsensor.init()
index 0e783d2..584425a 100644 (file)
@@ -18,6 +18,8 @@ from lcd import lcd,lcd_ctrl,tp_cst816
 from misc import PWM
 import uos
 import gc
+import _thread
+from queue import Queue
 
 def audio_cb(event):
     if event == 0:
@@ -26,7 +28,7 @@ def audio_cb(event):
     elif event == 7:
         EventMesh.publish("set_audio_state", 0)
         print('audio-play finish.')
-
+CALL_LOG_MAX = 50
 aud = audio.Audio(0)
 aud.setCallback(audio_cb)
 # -----------------------------------------style create--------------------------------------
@@ -141,16 +143,17 @@ style_circle.set_radius(0x7FFF)
 from common import Abstract
 
 class Screen(Abstract):
+    meta_type = "UI"
     def __init__(self):
         self.meta = None
         self.meta_info = None
-        self.last_screen_info = None
-        self.bg_img = None
+        
+    #     self.bg_img = None
 
-    def set_bg_img(self, _fp):
-        print("bg _fp = {} NAME = {} bg_img = {}".format(_fp, self.NAME, self.bg_img))
-        if self.bg_img:
-            self.bg_img.set_src(_fp)
+    # def set_bg_img(self, _fp):
+    #     print("bg _fp = {} NAME = {} bg_img = {}".format(_fp, self.NAME, self.bg_img))
+    #     if self.bg_img:
+    #         self.bg_img.set_src(_fp)
   
     def load_screen(self, e, msg):
         print("msg = {}".format(msg))
@@ -190,6 +193,10 @@ class Screen(Abstract):
 
     def done_error(self):
         pass
+    def handle_message_event(self,data):
+        pass
+    def publish_message_event(self,data):
+        EventMesh.publish("publish_message_event_ui", data)
 
 PHONE_CALL_MAX_DATA = 22
 
@@ -623,12 +630,13 @@ class CallLogScreen(Screen):
 
     def __init__(self):
         super().__init__()
+        self.CALL_LOG_MAX = CALL_LOG_MAX
         self.meta = None
         self.log_list = []
         self.read_call_log = {}
         self.check_json = 0
         self.call_log_detail_list = None
-        self.btn_create_lock = 0
+        self.call_log_detail_list_dict = []
         self.timer = osTimer()
         EventMesh.subscribe("call_log_update_show_list", self.call_log_update_show_list)
 
@@ -680,7 +688,24 @@ class CallLogScreen(Screen):
             none_call_log_title.set_text(" ")
             none_call_log_title.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
             none_call_log_title.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
-            self.call_log_detail_list = lv.obj(call_log_screen)
+            #self.call_log_detail_list = lv.obj(call_log_screen)
+            self.call_log_detail_list = lv.obj(call_log_cont_list_screen)
+            self.call_log_detail_list.set_pos(0, 0)
+            self.call_log_detail_list.set_size(240, 271)
+            self.call_log_detail_list.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
+            self.call_log_detail_list.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
+            for i in range(self.CALL_LOG_MAX):
+                _btn = lv.btn(self.call_log_detail_list)
+                _btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.calling(e)),
+                                        lv.EVENT.CLICKED, None)
+                _btn.add_flag(lv.obj.FLAG.HIDDEN)
+                _btn_label2 = lv.label(_btn)
+                _btn_label3 = lv.label(_btn)
+                _btn_label4 = lv.label(_btn)
+                _btn_label5 = lv.label(_btn)
+                _btn_label6 = lv.label(_btn)
+                self.call_log_detail_list_dict.append({"_btn":_btn,"_btn_label2":_btn_label2,"_btn_label3":_btn_label3,
+                                              "_btn_label4":_btn_label4,"_btn_label5":_btn_label5,"_btn_label6":_btn_label6})
             self.meta = call_log_screen
 
         
@@ -700,21 +725,19 @@ class CallLogScreen(Screen):
         h = 0
         if call_log_screen != None:
             if self.check_json == True and len(self.read_call_log) != 0:
-                if self.btn_create_lock == 0:
-                    self.btn_create_lock = 1
-                else :
-                    return
+                
                 none_call_log_title.set_text(" ")
-                self.call_log_detail_list.delete()#先删除一次控件
-                self.call_log_detail_list = lv.obj(call_log_cont_list_screen)
-                self.call_log_detail_list.set_pos(0, 0)
-                self.call_log_detail_list.set_size(240, 271)
-                self.call_log_detail_list.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
-                self.call_log_detail_list.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+                # self.call_log_detail_list.delete()#先删除一次控件
+                # self.call_log_detail_list = lv.obj(call_log_cont_list_screen)
+                # self.call_log_detail_list.set_pos(0, 0)
+                # self.call_log_detail_list.set_size(240, 271)
+                # self.call_log_detail_list.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
+                # self.call_log_detail_list.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
                 sort_tmp = self.read_call_log.values()
                 sort_new = sorted(sort_tmp, key = lambda i: i['timesec'],reverse = True)#按照时间戳进行排序 去掉最旧的一次数据如果满了五十条
                 # print("self.call_log :{} \r\n sort_new:{}\r\n".format(self.read_call_log,sort_new))
-                
+ 
                 for sort_new_tmp in sort_new: #字典 key value
                     num_count = sort_new_tmp["count"]#获取通话次数
                     num_name = sort_new_tmp["name"]#获取名称
@@ -722,46 +745,51 @@ class CallLogScreen(Screen):
                     num_time = sort_new_tmp["time"]#获取电话号码
 
                     # print("num_count :{} num_name:{} num_time:{}".format(num_count,num_name,num_time))
-                    _btn = lv.btn(self.call_log_detail_list)
-                    _btn.set_size(240,80)
-                    _btn.set_pos(0,82*h)
-                    _btn.add_style(style_contact_btn, lv.PART.MAIN | lv.STATE.DEFAULT)
-                    _btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.calling(e)),
+                    #_btn = lv.btn(self.call_log_detail_list)
+                    self.call_log_detail_list_dict[h]["_btn"].set_size(240,80)
+                    self.call_log_detail_list_dict[h]["_btn"].set_pos(0,82*h)
+                    self.call_log_detail_list_dict[h]["_btn"].add_style(style_contact_btn, lv.PART.MAIN | lv.STATE.DEFAULT)
+                    self.call_log_detail_list_dict[h]["_btn"].add_event_cb(lambda e: EventMesh.callback_wrapper(self.calling(e)),
                                             lv.EVENT.CLICKED, None)
 
 
-                    _btn_label2 = lv.label(_btn)
-                    _btn_label2.set_pos(0, 5)
-                    _btn_label2.set_size(0, 25)
-                    _btn_label2.set_text(num_phonnum)
+                    #_btn_label2 = lv.label(_btn)
+                    self.call_log_detail_list_dict[h]["_btn_label2"].set_pos(0, 5)
+                    self.call_log_detail_list_dict[h]["_btn_label2"].set_size(0, 25)
+                    self.call_log_detail_list_dict[h]["_btn_label2"].set_text(num_phonnum)
                     #_btn_label2.add_style(style_font_youyuan_20_black, lv.PART.MAIN | lv.STATE.DEFAULT)
                     #
-                    _btn_label3 = lv.label(_btn)
-                    _btn_label3.set_pos(0, 0)
-                    _btn_label3.set_size(0, 0)
-                    _btn_label3.set_text("(" + str(num_count) + ")")
+                    #_btn_label3 = lv.label(_btn)
+                    self.call_log_detail_list_dict[h]["_btn_label3"].set_pos(0, 0)
+                    self.call_log_detail_list_dict[h]["_btn_label3"].set_size(0, 0)
+                    self.call_log_detail_list_dict[h]["_btn_label3"].set_text("(" + str(num_count) + ")")
                     # _btn_label3.add_style(style_font_youyuan_20_black, lv.PART.MAIN | lv.STATE.DEFAULT)
 
-                    _btn_label4 = lv.label(_btn)
-                    _btn_label4.set_pos(0, 38)
-                    _btn_label4.set_size(230, 30)
-                    _btn_label4.set_text(num_phonnum)
-                    _btn_label4.add_style(style_font_youyuan_20_black, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-                    _btn_label4 = lv.label(_btn)
-                    _btn_label4.set_pos(0, 5)
-                    _btn_label4.set_size(0, 0)
-                    _btn_label4.set_text(num_name)
-                    # _btn_label4.set_long_mode(lv.obj.LONG.DOT)
-                    # _btn_label4.add_style(style_font_youyuan_20_black, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-                    _btn_label5 = lv.label(_btn)
-                    _btn_label5.set_pos(0, 5)
-                    _btn_label5.set_size(230, 28)
-                    _btn_label5.set_text(num_name)
-                    _btn_label5.add_style(style_font_youyuan_20_black, lv.PART.MAIN | lv.STATE.DEFAULT)
+                    #_btn_label4 = lv.label(_btn)
+                    self.call_log_detail_list_dict[h]["_btn_label4"].set_pos(0, 38)
+                    self.call_log_detail_list_dict[h]["_btn_label4"].set_size(230, 30)
+                    self.call_log_detail_list_dict[h]["_btn_label4"].set_text(num_phonnum)
+                    self.call_log_detail_list_dict[h]["_btn_label4"].add_style(style_font_youyuan_20_black, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+                    #_btn_label5 = lv.label(_btn)
+                    self.call_log_detail_list_dict[h]["_btn_label5"].set_pos(0, 5)
+                    self.call_log_detail_list_dict[h]["_btn_label5"].set_size(0, 0)
+                    self.call_log_detail_list_dict[h]["_btn_label5"].set_text(num_name)
+                    # _btn_label5.set_long_mode(lv.obj.LONG.DOT)
+                    # _btn_label5.add_style(style_font_youyuan_20_black, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+                    #_btn_label6 = lv.label(_btn)
+                    self.call_log_detail_list_dict[h]["_btn_label6"].set_pos(0, 5)
+                    self.call_log_detail_list_dict[h]["_btn_label6"].set_size(230, 28)
+                    self.call_log_detail_list_dict[h]["_btn_label6"].set_text(num_name)
+                    self.call_log_detail_list_dict[h]["_btn_label6"].add_style(style_font_youyuan_20_black, lv.PART.MAIN | lv.STATE.DEFAULT)
+                    
+                    self.call_log_detail_list_dict[h]["_btn"].clear_flag(lv.obj.FLAG.HIDDEN)
+                    #self.call_log_detail_list_dict[h]["_btn"].scroll_to_view(lv.ANIM.OFF)
                     h = h + 1
-                    self.btn_create_lock = 0
+                for i in range(self.CALL_LOG_MAX):
+                    if i >= h :
+                        self.call_log_detail_list_dict[i]["_btn"].add_flag(lv.obj.FLAG.HIDDEN)#隐藏多余
             else:
                 if call_log_cont_list_screen != None:
                     none_call_log_title.set_text("暂无记录")
@@ -830,7 +858,7 @@ class CallLogScreen(Screen):
 
 
 # ------------------------------拨打电话-------------dialing screen----------------------------------------------------------
-CALL_LOG_MAX = 50
+
 dialing_screen = None
 dialing_img = None
 dialing_name = None
@@ -846,7 +874,7 @@ class DialingScreen(Screen):
         self.call_log_value = {}
         self.read_call_log = {}
         self.number_tmp = {}
-
+        self.CALL_LOG_MAX = CALL_LOG_MAX
     def initialization(self):
         EventMesh.publish("set_UI_high_priority", 1)
         global dialing_screen,dialing_img,dialing_name ,hangup_imgbtn 
@@ -915,10 +943,10 @@ class DialingScreen(Screen):
 
         i = 0
         # 49 50 
-        if len(self.read_call_log) >= CALL_LOG_MAX:
+        if len(self.read_call_log) >= self.CALL_LOG_MAX:
             for sort_new_tmp in sort_new: #字典 key value
                 i+=1 # 1 
-                if i >= CALL_LOG_MAX:#大于50条把最后一条删除掉只保留前面50调最新的数据
+                if i >= self.CALL_LOG_MAX:#大于50条把最后一条删除掉只保留前面50调最新的数据
                     key_tmp = sort_new_tmp["number"]
                     del self.read_call_log[key_tmp]
         tmp = {}
@@ -964,6 +992,7 @@ class NewMessageScreen(Screen):
     def __init__(self):
         super().__init__()
         self.meta = None
+        self.meta_type = "popup"
 
     def initialization(self):
         global message_popup_screen,message_popup_title 
@@ -982,19 +1011,19 @@ class NewMessageScreen(Screen):
         EventMesh.publish("set_sms_clear_all_data",10)
 
     def done_left_to_right(self):
-        EventMesh.publish("load_screen", {"screen": "popup"})
+        EventMesh.publish("return_prev_screen")
 
     def done_right_to_left(self):
-        EventMesh.publish("load_screen", {"screen": "popup"})
+        EventMesh.publish("return_prev_screen")
 
     def done_bottom_to_top(self):
-        EventMesh.publish("load_screen", {"screen": "popup"})
+        EventMesh.publish("return_prev_screen")
 
     def done_top_to_bottom(self):
-        EventMesh.publish("load_screen", {"screen": "popup"})
+        EventMesh.publish("return_prev_screen")
 
     def done_return(self):
-        EventMesh.publish("load_screen", {"screen": "main_menu"})
+        EventMesh.publish("return_prev_screen")
     def done_click(self):
         EventMesh.publish("load_screen", {"screen": "popup"})
 
@@ -1015,7 +1044,7 @@ class MessageFullScreen(Screen):
     def __init__(self):
         super().__init__()
         self.meta = None
-        
+        self.meta_type = "popup"
     def initialization(self):
         global message_full_screen,message_full_label,message_full_confirm,message_full_cancel
         if message_full_screen == None :
@@ -1059,22 +1088,22 @@ class MessageFullScreen(Screen):
         EventMesh.publish("load_screen", {"screen": "popup"})
 
     def concel(self, e):
-        EventMesh.publish("load_screen", {"screen": "popup"})
+        EventMesh.publish("return_prev_screen")
 
     def done_left_to_right(self):
-        EventMesh.publish("load_screen", {"screen": "popup"})
+        EventMesh.publish("return_prev_screen")
 
     def done_right_to_left(self):
-        EventMesh.publish("load_screen", {"screen": "popup"})
+        EventMesh.publish("return_prev_screen")
 
     def done_bottom_to_top(self):
-        EventMesh.publish("load_screen", {"screen": "popup"})
+        EventMesh.publish("return_prev_screen")
 
     def done_top_to_bottom(self):
-        EventMesh.publish("load_screen", {"screen": "popup"})
+        EventMesh.publish("return_prev_screen")
 
     def done_return(self):
-        EventMesh.publish("load_screen", {"screen": "main_menu"})
+        EventMesh.publish("return_prev_screen")
     def done_click(self):
         EventMesh.publish("load_screen", {"screen": "popup"})
 
@@ -1126,7 +1155,7 @@ class PopupScreen(Screen):
         self.msg_detail = {}
         self.msg_nums = 0
         self.sms_detail_list = None
-        self.btn_create_lock = 0
+        self.sms_detail_list_dict = []
 
     def post_processor_before_initialization(self):
         self.msg_nums = sms.getMsgNums() #获取短信条数
@@ -1170,7 +1199,22 @@ class PopupScreen(Screen):
             no_msg_text.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
             no_msg_text.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
 
-            self.sms_detail_list = lv.obj(msg_list_screen)
+            self.sms_detail_list = lv.obj(msg_cont_list_screen)
+            self.sms_detail_list.set_pos(0, 0)
+            self.sms_detail_list.set_size(230, 271)
+            self.sms_detail_list.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
+            self.sms_detail_list.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
+            for i in range(MSG_MAX):
+                msg_btn = lv.btn(self.sms_detail_list)
+                msg_btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.sms_cb(e)),
+                                        lv.EVENT.CLICKED, None)
+                msg_btn.add_flag(lv.obj.FLAG.HIDDEN)
+                _btn_label2 = lv.label(msg_btn)
+                _btn_label3 = lv.label(msg_btn)
+                _btn_label4 = lv.label(msg_btn)
+                _btn_label5 = lv.label(msg_btn)
+                self.sms_detail_list_dict.append({"msg_btn":msg_btn,"_btn_label2":_btn_label2,"_btn_label3":_btn_label3,
+                                              "_btn_label4":_btn_label4,"_btn_label5":_btn_label5})
             self.meta = msg_list_screen
 
         
@@ -1188,70 +1232,74 @@ class PopupScreen(Screen):
         j = 0
         print("self.msg_nums:{}".format(self.msg_nums))
         if self.msg_nums > 0 :
-            if self.btn_create_lock == 0 :
-                self.btn_create_lock = 1
-            else :
-                return
+            
             msg_list_t_done_img.add_flag(lv.obj.FLAG.HIDDEN)
             no_msg_text.add_flag(lv.obj.FLAG.HIDDEN)
-            self.sms_detail_list.delete()#先删除一次控件
-            self.sms_detail_list = lv.obj(msg_cont_list_screen)
-            self.sms_detail_list.set_pos(0, 0)
-            self.sms_detail_list.set_size(230, 271)
-            self.sms_detail_list.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
-            self.sms_detail_list.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
+            # self.sms_detail_list.delete()#先删除一次控件
+            # self.sms_detail_list = lv.obj(msg_cont_list_screen)
+            # self.sms_detail_list.set_pos(0, 0)
+            # self.sms_detail_list.set_size(230, 271)
+            # self.sms_detail_list.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
+            # self.sms_detail_list.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
             if self.msg_nums > MSG_MAX:
                 j = self.msg_nums-MSG_MAX
             for i in range(MSG_MAX):
-                if count > (MSG_MAX-1):#j = 12 -5 7 6 5 4 3 2 1
-                    break
+                # if count > (MSG_MAX-1):#j = 12 -5 7 6 5 4 3 2 1
+                #     break
+                if i >= self.msg_nums :
+                    self.sms_detail_list_dict[i]["msg_btn"].add_flag(lv.obj.FLAG.HIDDEN)
+                    continue
                 tmp = sms.searchTextMsg(j)
- 
                 if tmp != -1:
-                    msg_btn = lv.btn(self.sms_detail_list)
-                    msg_btn.set_size(230,65)
-                    msg_btn.set_pos(0,67*count)
-                    msg_btn.add_style(style_sms_bg_btn, lv.PART.MAIN | lv.STATE.DEFAULT)
-                    msg_btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.sms_cb(e)),
+                    #msg_btn = lv.btn(self.sms_detail_list)
+                    self.sms_detail_list_dict[i]["msg_btn"].set_size(230,65)
+                    self.sms_detail_list_dict[i]["msg_btn"].set_pos(0,67*count)
+                    self.sms_detail_list_dict[i]["msg_btn"].add_style(style_sms_bg_btn, lv.PART.MAIN | lv.STATE.DEFAULT)
+                    self.sms_detail_list_dict[i]["msg_btn"].add_event_cb(lambda e: EventMesh.callback_wrapper(self.sms_cb(e)),
                                             lv.EVENT.CLICKED, None)
                 
                     title = tmp[0] 
                     # print("title:{}".format(title))
-                    _btn_label2 = lv.label(msg_btn)
-                    _btn_label2.set_pos(0, 0)
-                    _btn_label2.set_size(0, 0)
-                    _btn_label2.set_text(title)
+                    #_btn_label2 = lv.label(msg_btn)
+                    self.sms_detail_list_dict[i]["_btn_label2"].set_pos(0, 0)
+                    self.sms_detail_list_dict[i]["_btn_label2"].set_size(0, 0)
+                    self.sms_detail_list_dict[i]["_btn_label2"].set_text(title)
                     # _btn_label2.set_long_mode(lv.label.LONG.DOT)
                     # _btn_label2.add_style(style_font_youyuan_20_black, lv.PART.MAIN | lv.STATE.DEFAULT)
                     #
                     detail = tmp[1]
-                    _btn_label3 = lv.label(msg_btn)
-                    _btn_label3.set_pos(0, 0)
-                    _btn_label3.set_size(0, 0)
-                    _btn_label3.set_text(detail)
+                    #_btn_label3 = lv.label(msg_btn)
+                    self.sms_detail_list_dict[i]["_btn_label3"].set_pos(0, 0)
+                    self.sms_detail_list_dict[i]["_btn_label3"].set_size(0, 0)
+                    self.sms_detail_list_dict[i]["_btn_label3"].set_text(detail)
                     # _btn_label3.add_style(style_font_youyuan_20_black, lv.PART.MAIN | lv.STATE.DEFAULT)
 
                     detail1 = tmp[1]
-                    _btn_label4 = lv.label(msg_btn)
-                    _btn_label4.set_pos(0, 34)
-                    _btn_label4.set_size(180, 28)
-                    _btn_label4.set_text(detail1)
-                    _btn_label4.set_long_mode(lv.label.LONG.DOT)
-                    _btn_label4.add_style(style_font_youyuan_20_black, lv.PART.MAIN | lv.STATE.DEFAULT)
+                    #_btn_label4 = lv.label(msg_btn)
+                    self.sms_detail_list_dict[i]["_btn_label4"].set_pos(0, 34)
+                    self.sms_detail_list_dict[i]["_btn_label4"].set_size(180, 28)
+                    self.sms_detail_list_dict[i]["_btn_label4"].set_text(detail1)
+                    self.sms_detail_list_dict[i]["_btn_label4"].set_long_mode(lv.label.LONG.DOT)
+                    self.sms_detail_list_dict[i]["_btn_label4"].add_style(style_font_youyuan_20_black, lv.PART.MAIN | lv.STATE.DEFAULT)
 
                     title1 = tmp[0]
-                    _btn_label5 = lv.label(msg_btn)
-                    _btn_label5.set_pos(0, 5)
-                    _btn_label5.set_size(180, 25)
-                    _btn_label5.set_text(title1)
-                    _btn_label5.set_long_mode(lv.label.LONG.DOT)
-                    _btn_label5.add_style(style_font_youyuan_20_black, lv.PART.MAIN | lv.STATE.DEFAULT)
+                    #_btn_label5 = lv.label(msg_btn)
+                    self.sms_detail_list_dict[i]["_btn_label5"].set_pos(0, 5)
+                    self.sms_detail_list_dict[i]["_btn_label5"].set_size(180, 25)
+                    self.sms_detail_list_dict[i]["_btn_label5"].set_text(title1)
+                    self.sms_detail_list_dict[i]["_btn_label5"].set_long_mode(lv.label.LONG.DOT)
+                    self.sms_detail_list_dict[i]["_btn_label5"].add_style(style_font_youyuan_20_black, lv.PART.MAIN | lv.STATE.DEFAULT)
+                    
+                    self.sms_detail_list_dict[i]["msg_btn"].clear_flag(lv.obj.FLAG.HIDDEN)
+                    #if msg == 1:
+                    self.sms_detail_list_dict[i]["msg_btn"].scroll_to_view(lv.ANIM.OFF)
+
                     count = count + 1
+                else :
+                    self.sms_detail_list_dict[i]["msg_btn"].add_flag(lv.obj.FLAG.HIDDEN)
                 j = j + 1
-            if msg == 1:
-                bottom_btn = self.sms_detail_list.get_child(-1)
-                bottom_btn.scroll_to_view(lv.ANIM.OFF)   
-            self.btn_create_lock = 0
+                
+            
         else:
             if msg_cont_list_screen != None:
                 msg_list_t_done_img.clear_flag(lv.obj.FLAG.HIDDEN)
@@ -1592,12 +1640,13 @@ incoming_call_img = None
 incoming_call_name_label = None
 incoming_call_answer = None
 incoming_call_hangup = None
-CALL_LOG_MAX = 50
+# CALL_LOG_MAX = 50
 class IncomingCallScreen(Screen):
     NAME = "incoming_call"
 
     def __init__(self):
         super().__init__()
+        self.CALL_LOG_MAX = CALL_LOG_MAX
         self.read_data = {}
         self.volum_size = 8
         check_volum = ql_fs.path_exists("/ext/static/storage_file/config.json")
@@ -1628,6 +1677,7 @@ class IncomingCallScreen(Screen):
         self.call_log_value = {}
         self.read_call_log = {}
         self.number_tmp = {}
+        
     def initialization(self):
         global incoming_call_screen,incoming_call_img,incoming_call_name_label,incoming_call_answer ,incoming_call_hangup  
         if incoming_call_screen == None :
@@ -1754,10 +1804,10 @@ class IncomingCallScreen(Screen):
         sort_new = {}
         sort_new = sorted(sort_tmp, key = lambda i: i['timesec'],reverse = True)#按照时间戳进行排序 去掉最旧的一次数据如果满了五十条
         i = 0
-        if len(self.read_call_log) >= CALL_LOG_MAX:
+        if len(self.read_call_log) >= self.CALL_LOG_MAX:
             for sort_new_tmp in sort_new: #字典 key value
                 i+=1 # 1 
-                if i >= CALL_LOG_MAX:#大于50条把最后一条删除掉只保留前面50调最新的数据
+                if i >= self.CALL_LOG_MAX:#大于50条把最后一条删除掉只保留前面50调最新的数据
                     key_tmp = sort_new_tmp["number"]
                     del self.read_call_log[key_tmp]
 
@@ -2163,9 +2213,9 @@ class ContactsScreen(Screen):
         self.check_json = 0
         self.timer = osTimer()
         self.contact_detail_list = None
-        self.btn_create_list_show_lock = 0
         EventMesh.subscribe("contact_updata_list_show", self.btn_create_list)
-        
+        self.MXA_phone_num = 50 #最大显示号码个数
+        self.contact_detail_listt_dict = []
 
     def post_processor_before_initialization(self):
         data = EventMesh.publish("get_phonebook_list")
@@ -2204,10 +2254,21 @@ class ContactsScreen(Screen):
             contact_none_label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
             contact_none_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
 
-            self.contact_detail_list = lv.obj(contacts_screen)
+            self.contact_detail_list = lv.obj(contacts_screen_list_screen)
+            self.contact_detail_list.set_pos(0, 0)
+            self.contact_detail_list.set_size(240, 271)
+            self.contact_detail_list.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
+            self.contact_detail_list.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
+            for i in range(self.MXA_phone_num):
+                contact_btn = lv.btn(self.contact_detail_list)
+                contact_btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.calling(e)),
+                                        lv.EVENT.CLICKED, None)
+                contact_btn.add_flag(lv.obj.FLAG.HIDDEN)
+                contact_btn_label_1 = lv.label(contact_btn)
+                contact_btn_label_2 = lv.label(contact_btn)
+                contact_btn_label_3 = lv.label(contact_btn)
+                self.contact_detail_listt_dict.append({"contact_btn":contact_btn,"contact_btn_label_1":contact_btn_label_1,"contact_btn_label_2":contact_btn_label_2,"contact_btn_label_3":contact_btn_label_3})
             self.meta = contacts_screen
-
-        
         self.count = 0
         self.btn_create_list_show(0)
 
@@ -2220,66 +2281,70 @@ class ContactsScreen(Screen):
 
     def btn_create_list_show(self,state):
         global contacts_screen,contacts_cont,contacts_top_title,contact_none_label,contacts_screen_list_screen
+        print("btn_create_list_show!!!!!!!!!!!")
+        if contacts_screen == None:
+            return
         #读取json文件中的键作为label文本;
         if self.check_json == True and len(self.phonebook) != 0:
-            if self.btn_create_list_show_lock == 0:
-                self.btn_create_list_show_lock = 1
-            else :
-                return
+            self.contact_detail_list.clear_flag(lv.obj.FLAG.HIDDEN)
             contact_none_label.add_flag(lv.obj.FLAG.HIDDEN)#隐藏空文本
             j =0
-            i = 0 
-            # print("self.phonebook sorted :{} len(self.phonebook) :{}".format(sorted(self.phonebook.keys()),len(self.phonebook)))
+            print("self.phonebook sorted :{} len(self.phonebook) :{}".format(sorted(self.phonebook.keys()),len(self.phonebook)))
             phonebook_keys = sorted(self.phonebook.keys())
 
-            self.contact_detail_list.delete()#先删除一次控件
-            self.contact_detail_list = lv.obj(contacts_screen_list_screen)
-            self.contact_detail_list.set_pos(0, 0)
-            self.contact_detail_list.set_size(240, 271)
-            self.contact_detail_list.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
-            self.contact_detail_list.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
+            # self.contact_detail_list.delete()#先删除一次控件
+            # self.contact_detail_list = lv.obj(contacts_screen_list_screen)
+            # self.contact_detail_list.set_pos(0, 0)
+            # self.contact_detail_list.set_size(240, 271)
+            # self.contact_detail_list.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
+            # self.contact_detail_list.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
             # print("self.phonebook sorted :{}".format(len(self.phonebook)))
-            for i in range(len(self.phonebook)): #字典 key value
-                if j > 50:
-                    j = 0
-                j+=1
-                name = self.phonebook[phonebook_keys[j-1]]
-                key_tmp = phonebook_keys[j-1]
-
-                # print("name :{} key_tmp:{}".format(name,key_tmp))
-
-                contact_btn = lv.btn(self.contact_detail_list)
-                contact_btn.set_size(230,80)
-                contact_btn.set_pos(0,82*i )
-                contact_btn.add_style(style_contact_btn, lv.PART.MAIN | lv.STATE.DEFAULT)
+            if len(self.phonebook) > self.MXA_phone_num:
+                    j = len(self.phonebook) - self.MXA_phone_num
+            for i in range(self.MXA_phone_num): #字典 key value
+                if(j >= len(self.phonebook)):
+                    self.contact_detail_listt_dict[i]["contact_btn"].add_flag(lv.obj.FLAG.HIDDEN)
+                    continue
+                name = self.phonebook[phonebook_keys[j]]
+                key_tmp = phonebook_keys[j]
+
+                print("name :{} key_tmp:{}".format(name,key_tmp))
+                
+                #contact_btn = lv.btn(self.contact_detail_list)
+                self.contact_detail_listt_dict[i]["contact_btn"].set_size(230,80)
+                self.contact_detail_listt_dict[i]["contact_btn"].set_pos(0,82*i )
+                self.contact_detail_listt_dict[i]["contact_btn"].add_style(style_contact_btn, lv.PART.MAIN | lv.STATE.DEFAULT)
                 # contact_btn.add_style(style_contact_btn_pressed, lv.PART.MAIN | lv.STATE.PRESSED)
-                contact_btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.calling(e)),
-                                        lv.EVENT.CLICKED, None)
-
-                contact_btn_label_1 = lv.label(contact_btn)
-                contact_btn_label_1.set_pos(0, 5)
-                contact_btn_label_1.set_size(180, 25)
-                contact_btn_label_1.set_text(key_tmp[4:])
-                contact_btn_label_1.set_long_mode(lv.label.LONG.DOT)
-                contact_btn_label_1.add_style(style_font_youyuan_20_black, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-                contact_btn_label_1 = lv.label(contact_btn)
-                contact_btn_label_1.set_pos(0, 5)
-                contact_btn_label_1.set_size(0, 0)
-                contact_btn_label_1.set_text(key_tmp)
+                # self.contact_detail_listt_dict[i]["contact_btn"].add_event_cb(lambda e: EventMesh.callback_wrapper(self.calling(e)),
+                #                         lv.EVENT.CLICKED, None)
+
+                #contact_btn_label_1 = lv.label(contact_btn)
+                self.contact_detail_listt_dict[i]["contact_btn_label_1"].set_pos(0, 5)
+                self.contact_detail_listt_dict[i]["contact_btn_label_1"].set_size(180, 25)
+                self.contact_detail_listt_dict[i]["contact_btn_label_1"].set_text(key_tmp[4:])
+                self.contact_detail_listt_dict[i]["contact_btn_label_1"].set_long_mode(lv.label.LONG.DOT)
+                self.contact_detail_listt_dict[i]["contact_btn_label_1"].add_style(style_font_youyuan_20_black, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+                #contact_btn_label_2 = lv.label(contact_btn)
+                self.contact_detail_listt_dict[i]["contact_btn_label_2"].set_pos(0, 5)
+                self.contact_detail_listt_dict[i]["contact_btn_label_2"].set_size(0, 0)
+                self.contact_detail_listt_dict[i]["contact_btn_label_2"].set_text(key_tmp)
                 
 
-                contact_btn_label_2 = lv.label(contact_btn)
-                contact_btn_label_2.set_pos(0, 30)
-                contact_btn_label_2.set_size(220, 35)
-                contact_btn_label_2.set_text(name)
-                contact_btn_label_2.add_style(style_font_youyuan_20_black, lv.PART.MAIN | lv.STATE.DEFAULT)
+                #contact_btn_label_3 = lv.label(contact_btn)
+                self.contact_detail_listt_dict[i]["contact_btn_label_3"].set_pos(0, 30)
+                self.contact_detail_listt_dict[i]["contact_btn_label_3"].set_size(220, 35)
+                self.contact_detail_listt_dict[i]["contact_btn_label_3"].set_text(name)
+                self.contact_detail_listt_dict[i]["contact_btn_label_3"].add_style(style_font_youyuan_20_black, lv.PART.MAIN | lv.STATE.DEFAULT)
+                
                 
-                i += 1
-            if state == 1:
-                bottom_btn = self.contact_detail_list.get_child(-1)
-                bottom_btn.scroll_to_view(lv.ANIM.OFF)  
-            self.btn_create_list_show_lock = 1  
+                self.contact_detail_listt_dict[i]["contact_btn"].clear_flag(lv.obj.FLAG.HIDDEN)
+                #self.contact_detail_listt_dict[i]["contact_btn"].scroll_to_view(lv.ANIM.OFF)
+                j+=1
+
+                if state == 1:
+                    self.contact_detail_listt_dict[i]["contact_btn"].scroll_to_view(lv.ANIM.OFF)  
+             
         else:
             if contacts_screen_list_screen != None:
                 contact_none_label.clear_flag(lv.obj.FLAG.HIDDEN) #显示空文本
@@ -3625,8 +3690,13 @@ class UI(object):
     def __init__(self):
         #self.screen = WatchFaceScreen()
         #self.screen_old = self.screen
+        self.ui_queue = Queue()
+        _thread.stack_size(13*1024+64)
+        _thread.start_new_thread(self.ui_queue_thread, ())
+        _thread.stack_size(8*1024)
         self.screen = None
         self.screen_old = None
+        self.screen_prev = None
         self.screen_list = []
         self.lv = lv
         self.system_sleep_timer = osTimer()
@@ -3700,11 +3770,35 @@ class UI(object):
         EventMesh.subscribe("set_interrup_incall", self.set_interrup_incall)
         EventMesh.subscribe("get_interrup_incall", self.get_interrup_incall)
         EventMesh.subscribe("get_screen_NAME",self.get_screen_NAME)
+        EventMesh.subscribe("publish_message_event_ui",self.publish_message_event_ui)
+        EventMesh.subscribe("return_prev_screen",self.return_prev_screen)
+
         self.system_sleep_timer.start(1000, 1, self.system_sleep_timer_cb)
 
+    def publish_message_event_ui(self,event,msg):
+        
+        self.ui_queue.put(msg)
+
+    #ui的消息队列处理,防止内存越界,handle_message_event处理消息,返回1表示消息处理完data格式:{函数名,数据}
+    def ui_queue_thread(self):
+        while True:
+            data = self.ui_queue.get()
+            #print("ui_queue_thread:data = {}".format(data))
+            if data != None:
+                try:
+                    data["func"](data["data"])
+                except Exception as e:
+                    print("ui_queue_thread:ERROR:{}".format(e))
+            # for scr in self.screen_list:
+            #     if scr.handle_message_event(data) == 1 :
+            #         break
+    def return_prev_screen(self, event, msg):
+        if self.screen_prev != None:
+            EventMesh.publish("load_screen", {"screen": self.screen_prev.NAME})
+
     def set_interrup_incall(self, event, msg):
         self.set_interrup_flag = msg
-
+        
     def get_interrup_incall(self, event, msg):
         return self.set_interrup_flag
     
@@ -3722,6 +3816,7 @@ class UI(object):
         self.sleep_flag = key
     
     def system_sleep_rest(self, event, key):
+        #print("system_sleep_rest!!!!!")
         self.system_sleep_timeout_rest()
 
     def ui_press(self, event, key):
@@ -3793,12 +3888,15 @@ class UI(object):
             
             #lcd_ctrl.write(1)
             #utime.sleep(10)
+            self.screen.lcd_on()
+            self.system_sleep_timer.start(1000, 1, self.system_sleep_timer_cb)
+            EventMesh.publish("set_lcd_state",self.sleep_flag)
             tp_cst816.resume()
             lcd.lcd_display_on()
             lv.autoSleep(0)
             pm.autosleep(0)
+            pm.sclkEx_set(0, 1, 5)
             utime.sleep_ms(100)
-            EventMesh.publish("set_lcd_state",self.sleep_flag)
             self.level = EventMesh.publish("get_brightness_level")
             if self.level == None:
                 self.level = 6 
@@ -3809,8 +3907,7 @@ class UI(object):
             self.PWM_backlight = PWM(PWM.PWM1, PWM.ABOVE_MS, self.level, 10)
             self.PWM_backlight.open()
             self.sleep_lock = 0
-            self.screen.lcd_on()
-            self.system_sleep_timer.start(1000, 1, self.system_sleep_timer_cb)
+            
 
     def publish_call_in(self, event, msg):
         EventMesh.publish("load_screen", {"screen": "dialing", "meta": msg})
@@ -3831,11 +3928,13 @@ class UI(object):
             lcd.lcd_display_off()
             lv.autoSleep(1)
             pm.autosleep(1)
+            pm.sclkEx_set(1, 1, 5)
             utime.sleep_ms(100)
             EventMesh.publish("set_lcd_state",self.sleep_flag)
             self.sleep_lock = 0
             self.screen.lcd_off()
             self.system_sleep_timer.stop()
+            EventMesh.publish("Hsensor_set_sleep") #让系统更快休眠
 
     def system_sleep(self, event, msg) :
         self.__lcd_off()
@@ -3844,6 +3943,7 @@ class UI(object):
         self.__lcd_on()
 
     def system_sleep_timer_cb(self, *args):
+        #print("system_sleep_timer_count:{}".format(self.system_sleep_timer_count))
         time = EventMesh.publish("get_brightness_time")
         if time == None:
             time = 10
@@ -3892,6 +3992,8 @@ class UI(object):
                     self.screen_old.Close() #先关闭上一次界面
                     self.lv.img.cache_invalidate_src(None) #清img cache
                     self.lv.img.cache_set_size(16) #开img cache
+                    if self.screen_old.meta_type != "popup": #不是弹窗,保存上一个界面,用来返回
+                        self.screen_prev = self.screen_old #
                 self.screen_old = self.screen
                 if msg.get("meta"):
                     self.screen.meta_info = msg.get("meta")
index 07bffaa..ca19a63 100644 (file)
@@ -8,7 +8,7 @@ from ui import Screen,style_screen
 import ql_fs
 import ujson
 from machine import RTC
-from ui_main_menu import MainMenu2_Watchface
+
 
 
 # style_font_youyuan_20 = lv.style_t()
@@ -170,14 +170,14 @@ watchface1_SPO2_span.add_style(style_font_youyuan_28, lv.PART.MAIN|lv.STATE.DEFA
 class WatchFace1():
     NAME = "Watchface1"
     # # #表盘1
-    def __init__(self): 
+    def __init__(self,main_menu): 
         print("Watchface1:__init__")
         self.meta = Watchface1
-        
+        Watchface1.set_parent(main_menu)#设置父控件
         
     def initialization(self,main_menu):   
         print("Watchface1:initialization") 
-        Watchface1.set_parent(main_menu)#设置父控件
+        
         #获取信号
         signal = EventMesh.publish("screen_get_sig")
         if signal:
@@ -403,14 +403,14 @@ watchface2_step_txt.add_style(style_font_youyuan_28, lv.PART.MAIN|lv.STATE.DEFAU
 class WatchFace2():
     NAME = "Watchface2"
     # # #表盘2
-    def __init__(self): 
+    def __init__(self,main_menu): 
         print("Watchface2:__init__")
         self.meta = Watchface2
-
+        Watchface2.set_parent(main_menu)#设置父控件 
 
     def initialization(self,main_menu):  
         print("Watchface2:initialization")
-        Watchface2.set_parent(main_menu)#设置父控件  
+         
         #获取信号
         signal = EventMesh.publish("screen_get_sig")
         if signal:
@@ -551,13 +551,13 @@ class WatchFace():
 
     def initialization(self,main_menu):
         if self.watchface_list == [] : #第一次初始化
-            self.watchface_list.append( WatchFace1())
-            self.watchface_list.append( WatchFace2())
+            self.watchface_list.append( WatchFace1(main_menu))
+            self.watchface_list.append( WatchFace2(main_menu))
         print("watchface INIT !!!!!!!!:",self.watchface_style_num)
         for wat in self.watchface_list:
             if wat.NAME == self.watchface_style_num :
                 self.watchface_style = wat
-                wat.meta.add_flag(lv.obj.FLAG.HIDDEN)    #隐藏
+            wat.meta.add_flag(lv.obj.FLAG.HIDDEN)    #隐藏
         self.watchface_style.initialization(main_menu)
         self.meta = self.watchface_style.meta
         self.watchface_style.meta.clear_flag(lv.obj.FLAG.HIDDEN)#显示
@@ -571,7 +571,8 @@ class WatchFace():
         self.watchface_style_num = str(msg)
 
         EventMesh.publish("load_screen", {"screen": "main_menu"})
-
+        
+    
     # def done_left_to_right(self):
     #     EventMesh.publish("load_screen", {"screen": "main_menu"})
 
index dc9ce5e..d569636 100644 (file)
@@ -10,6 +10,7 @@ import constants
 from misc import Power
 import pm
 from ui import Screen
+from ui_WatchFaceScreen import WatchFace
 style_MainMenu_screen_default = lv.style_t()
 style_MainMenu_screen_default.init()
 style_MainMenu_screen_default.set_radius(0)
@@ -101,6 +102,7 @@ label_text.set_size(0, 0)
 label_text.set_text("0")
 #支付宝
 MainMenu2_alipay = MainMenu2_til.add_tile(0, 0,  lv.DIR.LEFT | lv.DIR.RIGHT)
+#MainMenu2_alipay.set_tile_act(7,0,lv.ANIM.ON)#设置拼接
 label_text = lv.label(MainMenu2_alipay)
 label_text.set_pos(0, 240)
 label_text.set_size(0, 0)
@@ -277,6 +279,7 @@ MainMenu2_img_toolbox_txt.add_style(style_font_youyuan_font_60, lv.PART.MAIN|lv.
 
 #设置
 MainMenu2_setting = MainMenu2_til.add_tile(7, 0,  lv.DIR.LEFT | lv.DIR.RIGHT)
+#MainMenu2_setting.set_tile_act(0,0,lv.ANIM.ON)
 label_text = lv.label(MainMenu2_setting)
 label_text.set_pos(0, 240)
 label_text.set_size(0, 0)
@@ -302,7 +305,7 @@ MainMenu2_img_setting_txt.add_style(style_font_youyuan_font_60, lv.PART.MAIN|lv.
 
 
 
-from ui_WatchFaceScreen import WatchFace
+
 #主菜单风格2,单页
 class MainMenuScreen(Screen):
     NAME = "main_menu"
@@ -311,6 +314,8 @@ class MainMenuScreen(Screen):
         self.watchface = WatchFace()
         self.menu_id = "0"
         print("MainMenu1:__init__")    
+        #MainMenu2_til.add_event_cb(lambda e: EventMesh.callback_wrapper(self.scroll_begin_event(e)),lv.EVENT.SCROLL_END,None)
+        #lv_obj_add_event_cb(lv_tabview_get_content(tabview), scroll_begin_event, LV_EVENT_SCROLL_END, NULL);
         MainMenu2_img_phone.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e,  "Phone")), lv.EVENT.CLICKED, None)
         MainMenu2_img_toolbox.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e, "toolbox")), lv.EVENT.CLICKED, None)
         MainMenu2_img_setting.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e, "setting")), lv.EVENT.CLICKED, None)
@@ -331,13 +336,26 @@ class MainMenuScreen(Screen):
         # if self.meta_info in globals() :
         #     MainMenu2_til.set_tile_id(self.meta_info[0],self.meta_info[1],lv.ANIM.OFF)    
         pass#
-
+    
+    def scroll_begin_event(self, e):
+        print("MainMenu2:scroll_begin_event!")
+        MainMenu = e.get_target()
+        code = e.get_code()
+        if code == lv.EVENT.SCROLL_END:
+            pass
     def watch_top_show(self, event, msg): #
         MainMenu2_til.set_tile_id(0,1,lv.ANIM.OFF)  
         
     def img_cb(self, e, msg):
         print("MainMenu2:img_cb:{}".format(msg))
         EventMesh.publish("load_screen", {"screen": "{}".format(msg)})
+        
+    def lcd_on(self):
+        self.watchface.watchface_style.timerout_update()
+        self.watchface.timer_update.start(10000, 1, self.watchface.timerout_update)
+
+    def lcd_off(self):
+        self.watchface.timer_update.stop()
 
     def done_return(self):
         MainMenu2_til.set_tile_id(0,1,lv.ANIM.OFF)
index 8e952df..384631a 100644 (file)
@@ -35,4 +35,4 @@
 #define CONFIG_LVGL_SPINBOX 1
 #define CONFIG_LVGL_QRCODE 1
 #define CONFIG_LVGL_TILEVIEW 1
-#define CONFIG_LVGL_HANDLER_TASK_PRIORITY 90
+#define CONFIG_LVGL_HANDLER_TASK_PRIORITY 80
index 34a8792..aa98ec6 100644 (file)
@@ -44,7 +44,7 @@ CONFIG_LVGL_MSGBOX=y
 # CONFIG_LVGL_COLORWHEEL is not set
 CONFIG_LVGL_KEYBOARD=y
 CONFIG_LVGL_SPAN=y
-CONFIG_LVGL_HANDLER_TASK_PRIORITY=90
+CONFIG_LVGL_HANDLER_TASK_PRIORITY=80
 # CONFIG_QRCODE is not set
 # CONFIG_CAMERA is not set
 # CONFIG_QUECTHING is not set
index 8c45d43..52c52aa 100644 (file)
Binary files a/2.sdk/project/K5/sdk/system/platform/ASR_1606/boards/EG810MCN_GA_ALIPAY/images/DBG.7z and b/2.sdk/project/K5/sdk/system/platform/ASR_1606/boards/EG810MCN_GA_ALIPAY/images/DBG.7z differ
index c98defe..d9f5c5a 100644 (file)
Binary files a/2.sdk/project/K5/sdk/system/platform/ASR_1606/boards/EG810MCN_GA_ALIPAY/images/firmware_base_release_pack.zip and b/2.sdk/project/K5/sdk/system/platform/ASR_1606/boards/EG810MCN_GA_ALIPAY/images/firmware_base_release_pack.zip differ
index 5423a18..7566931 100644 (file)
@@ -1,11 +1,10 @@
-
 #ifndef __APP_LINK_START_ADDR_H__
 #define __APP_LINK_START_ADDR_H__
 
 #define APP_LINK_START_ADDR  0x805DB000
-#define APP_FLASH_MAX_SIZE 0x17A000
+#define APP_FLASH_MAX_SIZE 0x17a000
 
 #define APP_RAM_START 0x7E3E0000
-#define APP_RAM_MAX_SIZE 0x180000
+#define APP_RAM_MAX_SIZE 0x150000
 
 #endif
index 61a2ee1..912992f 100644 (file)
Binary files a/2.sdk/project/K5/sdk/system/platform/ASR_1606/boards/EG810MCN_GA_ALIPAY/libraries/libHeliosAPI.lib and b/2.sdk/project/K5/sdk/system/platform/ASR_1606/boards/EG810MCN_GA_ALIPAY/libraries/libHeliosAPI.lib differ
index c7500cf..0fc04e5 100644 (file)
Binary files a/2.sdk/project/K5/sdk/system/platform/ASR_1606/boards/EG810MCN_GA_ALIPAY/libraries/ql_common_api.lib and b/2.sdk/project/K5/sdk/system/platform/ASR_1606/boards/EG810MCN_GA_ALIPAY/libraries/ql_common_api.lib differ
index a69ce08..6df2076 100644 (file)
@@ -1,4 +1,8 @@
 import sms
+import atcmd
+# resp=bytearray(50)
+# atcmd.sendSync('AT+log=52,1\r\n',resp,'',20)
+# print("AT+log=52,1:{}".format(resp))
 
 class App(object):
     def __init__(self):
@@ -52,7 +56,7 @@ if __name__ == '__main__':
     from ui_main_menu import MainMenuScreen
     # from ui_WatchFaceScreen import WatchFaceScreen
     
-    from appFactoryMode import  FactoryModeLocationScreen,FactoryModeScreen 
+    from appFactoryMode import  FactoryModeLocationScreen,FactoryModeScreen ,FactoryModeAlipayInitScreen
     import ui as _ui
     # import ui as _ui
     print("init4:{}".format(utime.localtime()))
@@ -122,6 +126,7 @@ if __name__ == '__main__':
     # ui.add_screen(_ui.PowerOnScreen())
     ui.add_screen(FactoryModeLocationScreen())
     ui.add_screen(FactoryModeScreen())
+    ui.add_screen(FactoryModeAlipayInitScreen())
     ui.add_screen(PopupAlarmScreen())
     ui.add_screen(_ui.LowPowerScreen())
     ui.add_screen(_ui.NewMessageScreen())
@@ -133,12 +138,12 @@ if __name__ == '__main__':
 
     from protocol import LK_ProtoCol,PING_ProtoCol,HEART_ProtoCol,OXYGEN_ProtoCol,OXYGEN_One_ProtoCol,HRSTART_ProtoCol,CENTER_ProtoCol,UPLOAD_ProtoCol,\
         TEMP_ProtoCol,DLT_ProtoCol,WT_ProtoCol,UD_ProtoCol,REMIND_ProtoCol, CR_ProtoCol,KA_ProtoCol,FIND_ProtoCol,POWEROFF_ProtoCol,\
-            ProtoColResolver,PHL_ProtoCol,MONITOR_ProtoCol,bootoff_ProtoCol,WDSTART_ProtoCol,LOWBAT_ProtoCol,sosHome_dial_ProtoCol
+            ProtoColResolver,PHL_ProtoCol,MONITOR_ProtoCol,bootoff_ProtoCol,WDSTART_ProtoCol,LOWBAT_ProtoCol,sosHome_dial_ProtoCol,SockManager,NetManager
     import mgr as mgr
     print("init7:{}".format(utime.localtime()))
     
-    from mgr import ConfigStoreManager,getBootOffManager,getSosFlagManager,CountdownManager, LocationManager, SockManager,getVolumSizeManager,gethistoryDataManager,getUpLoadDataManager, getplayAudiodStateManager,\
-    NetManager,AddrBookManager,MsgdetailManager,PhoneCallingManager,getOldTimeManager,getStorageDataManager,getBrightnessManager,getHrTimeManager,getTempTimeManager,getLowBatManager
+    from mgr import ConfigStoreManager,getBootOffManager,getSosFlagManager,CountdownManager, LocationManager, getVolumSizeManager,gethistoryDataManager,getUpLoadDataManager, getplayAudiodStateManager,\
+    AddrBookManager,MsgdetailManager,PhoneCallingManager,getOldTimeManager,getStorageDataManager,getBrightnessManager,getHrTimeManager,getTempTimeManager,getLowBatManager
     print("init8:{}".format(utime.localtime()))
     
     
@@ -223,6 +228,7 @@ if __name__ == '__main__':
     sm = SockManager()
     sm.add_support_resolver(pcr)
     app.append_manager(sm)
+    print("init11.0:{}".format(utime.localtime()))   
     app.start()
     sms_data = sms.getSaveLoc()
     sms_lacv = sms_data[0][0]